The MEME Suite consists of several command line programs and an optional web server. Installing the command line programs is very straight-forward. See the 'Quick Install' links below to get started.
Installing the web server requires more detailed configuration information and requires that you install the MEME Suite from source code. The MEME Suite web server is implemented using static HTML pages, Java servlets, and SOAP services. The SOAP services are provided through Tomcat and Opal, and you should consult the Tomcat and Opal documentation if you wish to install a MEME Suite web server. In addition, the web server requires that a batch scheduler be installed, and SGE and PBS are known to work.
The MEME Suite no longer offically supports Cygwin. To run the MEME Suite on Windows we recommend using the MEME Suite Docker image, or installing and building from the MEME Suite source using Windows Subsystem for Linux (WSL)./opt/local/bin
and
/opt/local/libexec/meme-
to your shell's path. This can often be done by editing the file named
.profile
to add the following line:
open /opt/local/share/meme-/doc/overview.html
$HOME/meme/bin
and $HOME/meme/libexec/meme-
to your shell's path. This can often be done by editing the file named
.profile
to add the following line:
--enable-build-libxml2 --enable-build-libxslt
flags use the
bundled versions of libxml2, libxslt and libexslt. You can omit these flags
and use the system installed copies but ensure that they are compatible as
otherwise linker errors will occur.
dependencies.pl
script as described there to see what you may be missing.
Most of the software mentioned here is standard on many UNIX-like systems. To build MEME Suite with just the command-line tools you will need:
Optional software includes:
Additionally if you want to install MEME Suite web server you will also need:
The MEME Suite makes heavy use of Perl, using it for stand-alone tools and webservice wrappers.
Most UNIX-like systems will already have a modern version of Perl but if that is not the case you can get Perl from www.perl.org. If you are working on a system where you don't have administrative rights to install Perl the normal way, or you need to manage multiple versions of Perl then you could also use perlbrew.
Once Perl is installed run the script
dependencies.pl in the scripts
directory of the MEME Suite installation files.
This will check for the existence of the required and optional Perl modules directly used by the MEME Suite. If it can't find a module it will display a warning giving the module name and a description of the tasks that require it. For example the output might look like this:
In this case all the modules required for running the MEME Suite command line tools have already been installed with the minor exception of Math::CDF which is only needed for a script which probably won't be used anyway.
To install any missing modules simply run Perl's cpan program with the name of the module following. If this is a system installation of Perl you will also need to use sudo.
TROUBLESHOOTING: On Linux, the Perl modules related to XML
parsing may also require a system library installed. The Debian package
required is called libexpat1-dev
so on Ubuntu and related
distributions the install command is:
The MEME Suite uses Python for a few tools and scripts like DREME and fasta-dinucleotide-shuffle. Two versions of Python scripts are provided: one for Python 2.7.3 and one for Python 3.x.
Most UNIX-like system will already have Python installed though it possibly won't be the correct version. If you need to install Python the official source is www.python.org however Pypy available from pypy.org is also compatible with the MEME Suite and may offer a speed boost to long running programs like DREME.
The zlib library (http://www.zlib.net/) is used to handle compressed files.
On Apple computers if MacPorts is installed then the developer required tools can be installed with the command:
On Ubuntu and related distributions it can be installed with the command (Note: that is a "1" not an "l" in in "b1g"):
Ghostscript is used to create PNG (portable network graphic) images from EPS (encapsulated postscript) images. Most of the more recent programs in the MEME Suite have the capability to show images in their HTML output even when no PNG images are available.
If you are installing the MEME Suite on an Apple computer and have installed MacPorts (see above), to install Ghostscript you would simply use the following command and MacPorts would do all the work:Alternatively the MEME Suite can make use of the convert program from the ImageMagick package to convert from EPS to PNG format.
The MEME suite makes use of a number of common utilities. In the case of linux these should already be installed but OS X users should follow these instructions.
The tools that most users need are:
Additionally, installers of the web server will need:
and developers will also need:
On Apple computers if MacPorts is installed then the developer required tools can be installed with these commands:
Ubuntu and related distributions can use the install commands:
If you are installing the MEME Suite on an Apple computer, you may want to install the MacPorts software. MacPorts will make it much easier to install many other software packages such as Ghostscript, OpenMPI and Tomcat. You can get MacPorts from https://www.macports.org/install.php. To see if MacPorts can install a package for you, just enter a command like
If you want to run the high-speed, parallel version of MEME you will need one of the following MPI implementations:
If you are installing the MEME Suite on an Apple computer and have installed MacPorts (see above), to install OpenMPI you would simply use the following command and MacPorts would do all the work:
Make sure you then execute the command printed out by the install command, which will look something like:
The MEME Suite includes the code for libxml2, libxslt and the extensions in libexslt however it can detect and use these libraries if they are already installed on your computer and this will speed up the build process.
Be warned that the libxslt library is dependent on features in the libxml2 library, so linking errors will occur if you try to use two incompatible versions. If this occurs simply use the configure flags "--enable-build-libxml2" and "--enable-build-libxslt".
Java is used to compile and run the MEME Suite website and the sequence database updater.
The JDK can be retrieved from the Java downloads website. Linux users can alternatively use the OpenJDK.
Ubuntu and related distributions can use the install command:
Ant is Java's equivalent of a Make and is used to build the Java
code used by the website. Additionally Ant is used to create a list
of the website files when the developer only bootstrap
script is run.
On Apple computers if MacPorts is installed then the developer required tools can be installed with the command:
Ubuntu and related distributions can use the install command:
Apache Tomcat is used because it supports Java servlets and can also act as a normal web server.
The Opal toolkit is used to provide web services for the MEME Suite. You should download and install the latest version of Opal.
TROUBLESHOOTING: At the time of writing Opal 2.5 was newly released and the most visible link was still to the previous version. Do not get Opal 2.4 as it is incompatible.
A MEME Suite web server will work without a Batch Scheduler but if too many jobs are submitted performance will be very poor. To avoid this problem, you can install a MEME Suite web server on a compute cluster, which requires one of following batch schedulers:
[ Top ]
Releases of the MEME Suite are available from https://meme-suite.org/doc/download.html/ (the link opens in an inline frame to provide navigation).
The releases are listed with the most recent at the top. For each release we make available:
We recommend downloading the pre-patched distribution as it makes the installation process easier but if for some reason you want to use the original distribution and apply patches to it please refer to the distribution specific readme.
[ Top ]
The distribution may have one or more patches associated with it. Where possible we recommend you use the pre-patched version as it is often easier, however if you wish to install the patches they are available from https://meme-suite.org/doc/download.html/ (the link opens in an inline frame to provide navigation).
With each release there will be a readme and this file will link to any patches and give instructions on the correct installation process. Patches must be installed in release order because a later patch may rely on changes made by an earlier patch.
The most common series of commands needed to install a patch are as follows:
If you have more than one patch to install simply group all the patch commands together and only run the make commands once.
Some patches will require "-p0" to be passed as an argument instead of "-p1" but the readme will specify which to use.
[ Top ]
Installation of MEME Suite will create the following directories:
bin/ db/ doc/ etc/ lib/ LOGS/
The directories contain:
motif_databases
which contains the motif databases, a folder gomo_databases
which contains the gomo databases and a folder fasta_databases
which contains the sequence databases.When installing the website the MEME Suite will put
the web archive meme-.war
in the directory $CATALINA_BASE/webapps
and the SQLite library
sqlite-jdbc-x.x.x.jar
in the directory $CATALINA_BASE/lib
.
[ Top ]
If you're setting up a web-accessible install, it is recommended to create a meme user prior to installation.
Put the tarball you obtained from the web site in a directory where you want to build the software. If the software distribution was obtained via Git access please see section Installing from an Git repository.
Four steps are required to install the MEME Suite from a distribution tarball:
configure
make
make test
.make test TFLAGS='--comprehensive'
make install
For example for release you should use the commands:
to expand the tarball and move to the root directory of the distribution.
If there are patches associated with the distribution please see section Getting and installing the patches that explains how to download and install the patches.
The configure script is found in the root directory of the distribution and used to set installation parameters. For a list of all available configuration parameters see section Customizing configuration below. Here we will discuss the most common configuration settings. The general form of the configure command is:
When invoked without any parameters, only the command-line versions of the MEME Suite tools will be installed and none of the web components. The MEME Suite directories will be created under $HOME. The buttons and hyperlinks in the HTML output of the tools will not work. This is safe because you won't be able to send your data over the internet accidentally but it's not very useful. However, if this is what you want the simplest command is:
MEME Suite tool output files contain buttons that will send your results over the Internet when clicked. This is a very useful and powerful feature of the MEME Suite tools. If you want the buttons and hyperlinks in the HTML output of the tools to access the MEME Suite web server at https://meme-suite.org/meme, the simplest configuration command is:
The installation root directory can be specified using the parameter prefix. For example,
This will install only the command-line versions of the MEME Suite tools and none of the web components. The MEME Suite directories will be created under the directory specified by the prefix option. The buttons and hyperlinks in the HTML output of the tools will link to the MEME Suite web server at https://meme-suite.org/meme. This is probably the most common use of configure.
The MEME Suite depends on the libraries libxml2 and libxslt. If these libraries are already installed, MEME will use try to use the installed versions. Otherwise, MEME will build its own copies of these libraries. If for some reason you want to force MEME Suite to build its own copies of libxml2 and libxslt, you can do so by using the --enable-build-libxml2 and --enable-build-libxslt options. For example,
This will cause the MEME Suite to build its own copies of libxml2 and xslt.
Three parameters are needed to completely configure the MEME Suite web application:
In many cases you will be able to take advantage of the default values for these parameters.
The parameter with-url was introduced in the previous section. It sets the URL for the web site hosting the static HTML pages and CGI scripts. If you are installing your own MEME Suite web application you will need to set this parameter.
The parameter enable-web turns on installation of the MEME Suite web site. It can also be used to specify the URL for the MEME Suite SOAP services. The default URL for the MEME Suite SOAP services is https://meme-suite.org/meme/opal2/services. For example,
would install the MEME Suite command line tools and the web application under your install path. The web application would use the MEME Suite SOAP services at https://meme-suite.org/meme/opal2/services to process requests.
An explicit value can also be passed for the enable-web parameter. For example, to explicitly specify the value for the MEME Suite SOAP services on the https://meme-suite.org/meme server:
If you wish to build and install your own MEME Suite SOAP services you must have successfully installed and configured Opal.
You must set the environment variable CATALINA_BASE
to the path to the root directory of your
Tomcat instance.
The environment variable CATALINA_HOME must be set
to the root of the Tomcat installation directory.
This can typically be done by editing the file
named .profile
in the home directory to add the following lines:
The parameter enable-webservice is used to specify the location
of the webservice deploy folder for Opal.
The value may be relative to CATALINA_BASE or absolute. If no value is
provided then it will point to a folder called deploy
in CATALINA_BASE.
For example, to install the web server and build and provide using your own MEME Suite SOAP services:
To build simply type while at the top directory:
You can run tests to make sure the MEME Suite programs are working correctly. The test will check MEME Suite output against known valid output:
If there are errors, the output files from each test will be kept in
tests/results/
and can be compared to files in tests/
.
When a test passes without errors the output files are removed automatically.
To install the software in the directory tree specified by prefix
run the command:
To use the MEME Suite on the command-line you should set the environment variable PATH
so that your shell can find the newly installed tools.
The primary MEME Suite tools, meme
, dreme
,
meme-chip
, mast
, fimo
, etc.,
will be stored in the bin
subdirectory of the
installation. Supporting utilities are stored in the directory named
libexec/meme-version #
(e.g., $HOME/meme/libexec/meme-
)
subdirectory.
The steps to set your PATH will depend on the shell you use.
For the Bash shell you should edit the file called
.bash_profile
or .profile
in your home directory.
Add the following line to include the primary MEME Suite tools in your search PATH:
For C shell (aka csh and the similar tcsh) you should edit the file called
.cshrc
(or .tcshrc
, if you use tcsh) in your home directory to add the following line:
[ Top ]
The process of configuring, building, and installing MEME Suite from a Git
repository is the same as installing from a tarball,
but with two extra, initial steps: you must check out the repository, and
you must run the bootstrap
script.
Access to the Git repository is granted at this point only to the MEME developers. We provide the tarball distribution of the latest version on the ftp site.
If you have Git access and have added your public key to your bitbucket profile, you can check out the source code with the command:
Once you've checked out the source code you need to run the bootstrap
script:
The bootstrap script does a number of tasks like:
You can now follow the configuration, building and install steps from installing from a tarball.
[ Top ]
By default, configure
will establish if your system has the right software to
produce parallel version of MEME. Parallel compilation is disabled if MPI is not found or if
you specify the --enable-serial
option.
To compile the parallel version of MEME, 'configure' looks for mpicc
,
openmpicc
or mpcc
. For running the parallel version of MEME,
configure' looks on your PATH for MPI programs mpirun
or openmpirun
.
If your MPI is installed in non-standard place, use
--with-mpidir=MPI directory
option when
running 'configure' to specify the MPI installation directory.
The parallel version of MEME is compiled and installed automatically via
commands make
and make install
.
On some versions of Linux (e.g., Ubuntu), you may need to set the environment
variable OMPI_MCA_btl_base_warn_component_unused
to zero to avoid
an MPI warning message (about the point-to-point messaging module) when running MEME.
You should initialize that variable in your shell. For example, if using the bash
shell,
add the following line to your .bashrc
shell configuration file in your home directory:
MPI distributions |
---|
MPICH |
OpenMPI |
[ Top ]
Customization is done via the command line arguments to configure.
The general syntax for all the options is one of the following:
The following table provides a list of parameters
available for configure
:
Option | Needed for | Default value |
---|---|---|
--prefix=install path | Provide the installation location path. | $HOME |
--enable-build-libxml2 | Forces MEME Suite to build and use libxml2 code included in MEME Suite distribution. | disabled |
--enable-build-libxslt | Forces MEME Suite to build and use libxslt code included in MEME Suite distribution. | disabled |
--enable-debug | Produce an executable with debugging symbols. | no debug |
--enable-opt | Produce an executable with optimization. | compiler and OS dependent. |
--enable-serial | Produce only serial version of MEME, do not build parallel version. | disabled |
--enable-web=opal services url | Build web site applications. Must point it to MEME Suite web services exposed via Opal. Defaults to https://meme-suite.org/meme/opal2/services when the URL is not provided. | disabled |
--enable-webservice=opal deploy folder | Deploy MEME Suite web services utilizing an existing Opal installation.
The path to the deploy folder can be relative to CATALINA_BASE or
absolute. If it is not specified than it is set to the folder deploy
in CATALINA_BASE. |
disabled |
--with-contact=site administrator email | Set email of web site administrator. | No site contact. |
--with-dev-contact=developers email | Set email of developers. | The current email address of the MEME Suite developers (given in configure.ac) |
--with-convert=path to convert binary | Set location of ImageMagick convert application. This is only used if Ghostscript can not be used. See also "--with-gs". | As found in PATH |
--with-db=database directory | Set path to databases. | install path/db/ |
--with-gs=path to gs binary | Set location of Ghostscript application. | As found in PATH |
--with-logs=logs directory | Set path to logs. | install path/LOGS/ |
--with-drmaa-queue=qsub command | Set the parameters for qsub for the DRMAA queue for normal jobs.
The variables @maxtime@ and @maxmemory@ should be used. Example: noble-meme-long.q -l h_rt=@maxtime@,m_mem_free=@maxmemory@ |
No DRMAA qsub command is given |
--with-drmaa-queue-short=qsub command | Set the parameters for qsub for the DRMAA queue for short jobs.
The variables @maxtime_short@ and @maxmemory_short@ should be used. Example: noble-meme-short.q -l h_rt=@maxtime_short@,m_mem_free=@maxmemory_short@ |
No DRMAA qsub command is given |
--with-maxtime=max job time | Set wall time limit (sec) a normal web-submitted job may use. | 14400 (4 hours) |
--with-maxtime-short=max job time | Set wall time limit (sec) a short web-submitted job may use. | 300 (5 minutes) |
--with-maxmemory=max resident memory | Set memory limit (GB) a normal web-submitted job may use. | 4 (4GB) |
--with-maxmemory-short=max resident memory | Set memory limit (GB) a short web-submitted job may use. | 1 (1GB) |
--with-streme-length-factor=factor | Set STREME input size limit per GB of max resident memory (see --with-maxmemory, above). | 1e6 |
--with-mpidir=mpi directory | Set MPI installation path. See Parallel MEME section. | Path of found mpicc |
--with-mpi-nprocs=nprocs | Set the number of parallel processors for MEME running on a web server. | MEME will run on all available processors. |
--with-perl=path to perl binary | Set location of Perl interpreter. | As found in PATH |
--with-python=path to python binary | Set location of Python interpreter. | As found in PATH |
--with-source-url=url | Set URL for the MEME SUITE source code and databases. Links to the source code and example input files in the website input forms, documentation, and in the output files generated by the MEME SUITE tools will point here. | Default is the current location of the MEME SUITE source code and databases (given in configure.ac). |
--with-url=url | Set URL for the MEME Suite web site. Links in the output HTML files and in the website input forms and documentation will point here. | No URL is used. |
--with-alt-url=url | Set URL for the alternate website for users to access if the main website is not operational. | Default is there is no alternate website. |
--with-prev-url=url | Set URL pointing to an install of the previous release. This will create a link in the menu allowing users to easily navigate to the previous release. The option --with-prev-ver must also be provided. | No link is created. |
--with-prev-ver=version number | Set the version number of the previous release. This will create a link in the menu allowing users to easily navigate to the previous release. The option --with-prev-url must also be provided. | No link is created. |
--with-goserver-url=url | Set URL for the GO term details page. The identifier will be substituted for GO_TERM_ID. | http://amigo.geneontology.org/cgi-bin/amigo/term_details?term=GO_TERM_ID |
--with-quota=COUNT/TIME | Set the quota limit for job submissions through the website as a COUNT of submissions during TIME seconds. | No quota limits. |
--with-notices=notices file name | Sets the URL of the notices file relative to the top directory of the
webapp.
http://host/meme-/notices file name
The notices file is intended to contain important information and is
displayed to users when they visit the MEME Suite
site. The user can click a button to hide the notices until the next
session or until the notices file is updated.
The default location for the notices file is in the top directory of
the installation, but any file placed there will be deleted if
the MEME Suite is reinstalled. To prevent this, you can instead place it
in a servable directory named webapps/messages
and specify notices.txt as the notices file name.
If you have more than one version of MEME Suite
installed, you can specify a different notices file for each one (e.g.,
notices_.txt ).
The notices file is written in the dialect of
Markdown known as
PageDown. |
The notices file is expected to be called notices.txt
and is in the top directory of the webapp.
http://host/meme-/notices.txt
|
--with-news=news file name | Sets the URL of the news file relative to the top directory of the
webapp.
http://host/meme-/news file name
The news file is intended to contain non-essential news and is
displayed to users when they visit the MEME Suite
site and there are no notices to display. The user can click a button
to hide the news until it is updated.
The default location for the news file is in the top directory of
the installation, but any file placed there will be deleted if
the MEME Suite is reinstalled. To prevent this, you can instead place it
in the servable directory webapps/messages
and specify news.txt as the news file name.
If you have more than one version of MEME Suite
installed, you can specify a different news file for each one (e.g.,
news_.txt ).
The news file is written in the dialect of
Markdown known as
PageDown. |
The news file is expected to be called news.txt
and is in the top directory of the webapp.
http://host/meme-/news.txt
|
--with-expiry=days output retained | This value should be set to the number of days that Opal retains
a job after it has been submitted. Check the Opal configuration value
opal.datalifetime in the file
$OPAL_HOME/etc/opal.properties to determine how long Opal
is set to retain data. |
The job expiry is set to 4 days. |
[ Top ]
Installing MEME command line programs without any web components in /opt/meme. Buttons in the tool outputs will not work.
Installing MEME command line programs without any web components in /opt/meme. Buttons in
the tool outputs will submit to the URL: https://meme-suite.org/meme
.
Installing MEME command line programs and the website, but not the SOAP services.
Note that while the compiled tools will be installed to /opt/meme
the website will be installed to $CATALINA_BASE/webapps
in
the form of a Java web archive
(meme-.war
).
The URL for the MEME web site will be http://host/meme
and buttons in the program outputs will submit to that URL. This
installation will use the MEME SOAP services on
https://meme-suite.org/meme/opal2/services.
Installing the full MEME Suite including all the command line
programs, the website, and the SOAP services. The website, and SOAP
services will all be served by an installation of Tomcat with
Opal.
This assumes that Opal is
configured to deploy services with configuration files in the default
location (check opal.deploy.path
in
opal distribtion/etc/opal.properties
).
Installing the full MEME Suite as in example 4 but setting the database source to a folder where it can be shared among multiple MEME Suite installs. Additionally the URL to the previous version is set and the notices and news URLs are set to a location in the website root where they can be share by multiple installs.
[ Top ]
You can uninstall MEME Suite by giving the command:
in the root of the build directory. This will remove all the files installed for the MEME Suite, but won't remove any directories that may have been created.
[ Top ]
There is a suit of tests that can be run to test MEME Suite output against known output. These tests can be run during the installation process. A quick "smoke test" can be run using the command:
[ Top ]
If you have installed MEME Suite web site and services then you can
make it more useful by also installing sequence databases downloaded
from FTP sites.
The MEME Suite provides a tool update‑sequence‑db
for
downloading these databases.
You can install a single group of sequence databases (e.g., Ensembl vertebrate genomes and proteins) by specifying the correct switch on your command line, e.g.:
To get a list of the command-line options for specifying particular database groups, use the command:
If you are installing multiple versions of the MEME Suite then you will
probably want to use a single set of sequence databases. By using the
configure option ‑‑with‑db=path to databases
you can point multiple MEME installs at the same folder.
Note: there is a known bug with some older versions of the
MEME Suite where the --with-db
configure option does not work, in these cases we
suggest removing the your install path/db
folder and replacing it with a symbolic link to your preferred location after
installation.
Additionally to be backwards compatible with releases older than 4.10.0
you will need to generate a CSV index listing the downloaded databases. This
can be achieved with the --csv
option.
After the CSV and index files are generated you need to move the index
files to the etc
folders of all your < 4.10.0 MEME Suite
installs. Copying the CSV is not strictly required but putting it in the
etc
folder of the distribution ensures that you don't
accidentally overwrite the index file when doing a make install
at a later date.
[ Top ]
Tomtom, MEME-ChIP, SpaMo, CentriMo and AME can make use of motif databases.
db
folder in the installation or another location if the
‑‑with‑db=path to databases
configure option was specified.
On a split install you should install the motif databases on both servers.
Note: releases prior to 4.10.0 also require the
motif_db.csv
file to be copied into the distribution's
etc
directory and the rerunning of make install
to generate and install the motif_db.index
file.
After updating the databases you should restart the all the MEME Suite web applications.
[ Top ]
GOMO uses additional databases which need to be downloaded and installed.
db
folder in the installation or another location if the
‑‑with‑db=path to databases
configure option was specified. On a split install this only needs to
be done on the services install.
gomo_databases/gomo_db.csv
to the etc folder of the website install.Note: releases prior to 4.10.0 require copying the gomo_db.csv
file into the distribution's etc
directory and rerunning
make install
to generate and install the gomo_db.index
file.
After updating the databases you should restart the all the MEME Suite web applications.
[ Top ]
Make sure first that you really have a problem.
Did you change it recently? Did you upgrade to a new version? Is your operating system supported? Are you using latest versions of tools required?
Check the frequently asked questions. Check the MEME Suite Q&A forum to see if your problem has been reported and there was a solution. Check the release notes for possible bug fixes and other version-dependent changes.
If your problems are related to the prerequisite software installation, your OS, or compiler, check relevant mailing lists, do a Google search or talk to your system administrator.
Often, the problem is a result of the wrong execution of the commands or typos in the commands. Check if you executed the commands in the right order and if they were typed properly. Sometimes the command-line tools will require details you don't need for a web submission like the sequence alphabet so check that you have included them.
If all fails and you still have the problem, go ahead and send an email to meme-suite@uw.edu.
Here is a guiding list of what to put in your email:
If you are reporting a problem with the web server you should also tell us:
If you are reporting a problem with a copy of the MEME Suite you have installed (or are installing) you should also tell us:
config.log
which is created by the configure scriptmake
stage, attach
make.log
created by the following commands (assuming bash shell):
make test
stage, attach test.log
created by the following command (assuming bash shell):
make install
stage, attach install.log
created by the following command (assuming
bash shell):
[ Top ]