The MEME Suite consists of several command line programs and an optional web server. Building and installing the command line programs is very straight-forward. See the 'Quick Install' link below to get started.
Installing the web server requires more detailed configuration information. 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 webserver. In addition, the web server requires that a batch scheduler be installed, and SGE and PBS are known to work.
$HOME/meme/bin
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:
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
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 avaliable.
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.
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 libaries 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 http://meme-suite.org/doc/download.html/ (the link opens in a inline frame to provide navigation).
The releases are listed with the most recent at the top. For each release we make avaliable:
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 http://meme-suite.org/doc/download.html/ (the link opens in a 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_HOME/webapps
and the SQLite library
sqlite-jdbc-x.x.x.jar
in the directory $CATALINA_HOME/lib
.
[ Top ]
If you're setting up a web accessable 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 Mercurial access please see section Installing from an Mecurial repository.
Four steps are required to install the MEME Suite from a distribution tarball:
configure
command.make
commandmake test
command.make install
command.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 meme-suite.org, 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 meme-suite.org. 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 parameters. 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 http://meme-suite.org/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 http://meme-suite.org/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 meme-suite.org 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_HOME to the path to the root directory of
Tomcat. This can often be done by editing the file
named .profile
to add the following line:
The parameter enable-webservice is used to specify the location
of the webservice deploy folder for Opal.
The value may be relative to CATALINA_HOME or absolute. If no value is
provided then it will point to a folder called deploy
in CATALINA_HOME.
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 your shell can find the newly installed tools. The steps will depend on the shell you use.
For the common Bourne-again shell (aka bash) you should edit the file called
.profile
in your home directory to add the following line:
For C shell (aka csh and the similar tcsh) you should edit the file called
.cshrc
in your home directory to add the following line:
[ Top ]
The process of configuring, building, and installing MEME Suite from a Mercurial
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 Mercurial 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 Mercurial 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
.
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 http://meme-suite.org/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_HOME or
absolute. If it is not specified than it is set to the folder deploy
in CATALINA_HOME. |
disabled |
--with-contact=site administrator email | Set email of web site administrator. | No site contact. |
--with-dev-contact=developers email | Set email of developers. | meme-suite@uw.edu |
--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-maxtime=max job time | Set wall time limit (sec) a web-submitted job started by the web server may use. | 18000 (5 hours) |
--with-mpidir=mpi directory | Set MPI installation path. See Parallel MEME section. | Path of found mpicc |
--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-url=url | Set URL for the MEME Suite web site used by buttons on the output of MEME Suite tools. | No URL is used. |
--with-prev-url=url | Set URL pointing to a 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 another servable directory (e.g, webapps/messages )
and specify ../messages/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.,
../messages/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 another servable directory (e.g, webapps/messages )
and specify ../messages/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.,
../messages/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: http://meme-suite.org
.
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_HOME/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
http://meme-suite.org/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 unistall 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
automatically downloading these databases and keeping them updated to the
latest version.
The most basic way of running the command simply specifies the location to store the databases.
The above command will cause databases to be downloaded from all the default sources.
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 symlink 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
accidently overwrite the index file when doing a make install
at a later date.
If there are any database sources you don't want downloaded you can
disable a source with the --no_source
option.
This command will download from all the available sources except the upstream sequences from Regulatory Sequences Analysis Tools.
It can take a long time to completely download all the sequences but you can stop the process at any point by pressing enter to switch the program to command mode and then typing the command "exit" and pressing enter again.
In order to keep the sequence databases current, you can place one of
the above commands in a chron
job that runs at regular
intervals.
After updating the databases you should restart the all the MEME Suite web applications.
[ 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. That email address is monitored by about 4 of us, and we're based in both Australia and the USA so we can generally answer your queries more quickly than if you emailed us individually.
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 ]