# The MEME Suite

## Motif-based sequence analysis tools

# Installation of the MEME Suite

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).

### Table of Contents:

- Quick Install using Docker (for macOS and Windows; command line tools and web server)
- Quick Install using MacPorts (for macOS; command line tools only)
- Quick Install from Source (for macOS, Linux and WSL; command line tools only)
- Prerequisite Software for Installing from Source
- Getting the source
- Getting and installing the patches
- MEME Suite directories
- Installing from a tarball
- Installing from a Git repository
- Parallel MEME
- Customizing configuration
- Installation Examples
- Uninstalling
- Running regression tests
- Installing sequence databases
- Installing motif databases
- Installing GOMO databases
- Reporting problems

## Quick Install using Docker (for macOS and Windows)

Note: This installs all the MEME Suite command line tools and a MEME Suite web server and is the easiest way to install the MEME Suite.

1. Install Docker Desktop for Mac or Docker Desktop for Windows, as appropriate on your machine.
2. Follow the instructions here to install the MEME Suite as a containerized Docker app on your computer.
3. Note: The Docker container includes the current Motif and GOMo databases, but not the T-Gene database or sequence databases.

## Quick Install using MacPorts (for macOS)

Note: This installs only the command line versions of all the MEME Suite tools. If you wish to install a MEME Suite web server as well, you must install using Docker or from a tarball.

1. If MacPorts is not already installed on your Mac, follow the instructions for installing it here.
2. Type the following command to download and install the MEME Suite command line tools port:
   sudo port install memesuite
3. Edit your shell configuration file to add `/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:
   export PATH=/opt/local/bin:/opt/local/libexec/meme-
   :$PATH
4. To view documentation on what has been installed type the following command:
   `open /opt/local/share/meme-
   /doc/overview.html`

## Quick Install from Source (for macOS, Linux and WSL)

Note: This installs only the command line versions of the MEME Suite tools. If you wish to install a MEME Suite web server as well, you must install using Docker or from a tarball.

1. Download the software from https://meme-suite.org/doc/download.html
2. Type the following commands
   tar zxf meme-
   .tar.gz cd meme-
   ./configure --prefix=$HOME/meme --enable-build-libxml2 --enable-build-libxslt make make test make install
3. Edit your shell configuration file to add `$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:
   export PATH=$HOME/meme/bin:$HOME/meme/libexec/meme-
   :$PATH

#### Notes:

- This will overwrite any previously existing $HOME/meme directory you already may have installed. You can set the directory to something different in the configure command using the --prefix option.
- The HTML output of programs will contain buttons that send your data to https://meme-suite.org/meme for additional processing when clicked. Refer to the Installing from a tarball if you do not want this feature.
- The `--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.
- TROUBLESHOOTING: If you get errors during this install it is probably due to your computer not having the Prerequisite software installed. You will want to read that section of this manual and run the `dependencies.pl` script as described there to see what you may be missing.

[ Top ]

## Prerequisite Software for Installing from Source

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:

- Perl
- Python
- zlib
- Ghostscript - for creating PNG files.
- Assorted common utilities

Optional software includes:

- MacPorts - (Apple computers only) for easily installing prerequisite software.
- MPI - for creating the high-speed, parallel version of MEME.
- libxml2, libxslt & libexslt

Additionally if you want to install MEME Suite web server you will also need:

- Java Development Kit
- Apache Ant
- Apache Tomcat
- Opal
- Batch Scheduler

### Perl (version 5.16 or higher)

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.

cd scripts perl dependencies.pl

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:

Checking Required Perl Modules: Math::CDF missing. Only required for fasta-enriched-center script (which is not called by the web scripts). Checking Optional Modules:

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.

sudo cpan Math::CDF

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:

sudo apt-get install libexpat1-dev

### Python (version 2.7.x or 3.x)

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.

### zlib

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:

sudo port install zlib

On Ubuntu and related distributions it can be installed with the command (Note: that is a "1" not an "l" in in "b1g"):

sudo apt-get install zlib1g-dev

### Ghostscript

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:
sudo port install ghostscript

Alternatively the MEME Suite can make use of the convert program from the ImageMagick package to convert from EPS to PNG format.

### Assorted Common Utilities

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:

- Bourne compatible shell
- C-shell compatible shell
- GNU compatible make
- a C compiler (GCC and Clang are known to work)

Additionally, installers of the web server will need:

- tar
- gzip/gunzip

and developers will also need:

- autoconf
- automake
- libtool
- wget
- ant

On Apple computers if MacPorts is installed then the developer required tools can be installed with these commands:

sudo port install autoconf sudo port install automake sudo port install libtool

Ubuntu and related distributions can use the install commands:

sudo apt-get install autoconf sudo apt-get install automake sudo apt-get install libtool

### Installing command-line tools on OS X

1. Install the Apple software development environment, XCode. XCode is a free download from the Apple App store. If you don't have an App store account it can also be downladed from the Apple developer's web site.
2. Download the command line development tools from within XCode. Under the "XCode" menu choose the "Preference ..." item. You'll be presented with a dialog box with several tabs. Select the "Downloads" tab, and click on the button to download the command line tools.

### MacPorts on OS X [optional]

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

port list 'tomcat*'
and MacPorts will tell you if it can install the package.

### MPI [recommended]

If you want to run the high-speed, parallel version of MEME you will need one of the following MPI implementations:

- OpenMPI from http://www.open-mpi.org
- MPICH from http://www-unix.mcs.anl.gov/mpi/mpich

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:

sudo port install openmpi

Make sure you then execute the command printed out by the install command, which will look something like:

sudo port select --set mpi openmpi-mp-fortran

### libxml2 (version 2.6.0 or later), libxslt (version 1.1 or later) & libexslt [optional]

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 Development Kit Standard Edition (version 6 or higher) [for web server or developer only]

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:

sudo apt-get install default-jdk

### Apache Ant [for web server or developer only]

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:

sudo port install apache-ant

Ubuntu and related distributions can use the install command:

sudo apt-get install ant

### Apache Tomcat (version 7 or higher) [for web server only]

Apache Tomcat is used because it supports Java servlets and can also act as a normal web server.

### Opal (version 2.5) [for web server only]

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.

### Batch Scheduler [for web server on a compute cluster]

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:

- PBS from http://www.openpbs.org
- Grid Engine from http://gridscheduler.sourceforge.net

[ Top ]

## Getting the source

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:

- a README file describing the release and patches,
- a pre-patched distribution so you don't have to apply the patches,
- the original distribution, and
- all of the released patches.

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 ]

## Getting and installing the patches

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:

cd meme-
patch -p1 -i ../PATH_TO_PATCH/patch_
_1 make make test make install

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 ]

## MEME Suite Directories

Installation of MEME Suite will create the following directories:

              bin/    db/    doc/    etc/    lib/    LOGS/

The directories contain:

bin/
  MEME Suite executables and scripts
db/
  this directory or DIR specified by --with-db=DIR option is created. This directory should contain a folder `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.
doc/
  Documentation for the MEME Suite tools. This directory is included in the web archive when the web site is installed.
etc/
  contains the following files
  - prior1.plib, prior30.plib - these files are used by MEME
  - *.xsl - XML style sheets for creating HTML output from XML for some MEME Suite tools.
  - *.html, *.js, *.css - templates used for creating HTML output for some MEME Suite tools.
  - *.eps - templates used for creating images for some MEME Suite tools.
lib/
  contains Perl modules and Python libraries that are included with the MEME Suite.
LOGS/
  directory for temporary files created by webservice scripts when jobs are submitted via the website.

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 ]

## Installing from a tarball

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:

1. Unzip and untar the distribution
2. Configure the installation using the command: `configure`
3. Build MEME Suite using the command: `make`
4. Test the MEME Suite build by using the command: `make test`.
   Note: You can run more extensive (and much slower) tests using the command: `make test TFLAGS='--comprehensive'`
5. Install MEME Suite using the command: `make install`

### 1. Unzip and untar the distribution:

For example for release
you should use the commands:

tar zxf meme-
.tar.gz cd meme-

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.

### 2. Configuring the installation

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:

./configure parameters here

#### Basic configuration parameters

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:

./configure

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:

./configure --with-url="https://meme-suite.org/meme"

The installation root directory can be specified using the parameter prefix. For example,

./configure --prefix=$HOME/meme your install path --with-url="https://meme-suite.org/meme"

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,

./configure --prefix=$HOME/meme your install path --enable-build-libxml2 --enable-build-libxslt

This will cause the MEME Suite to build its own copies of libxml2 and xslt.

#### Configuring installation of the MEME Suite Web Application

Three parameters are needed to completely configure the MEME Suite web application:

- the URL for the web site hosting the static HTML pages and CGI scripts
- the URL for the web site hosting the MEME Suite SOAP services
- the directory where service configuration files should be put for Opal

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,

./configure --prefix=$HOME/meme your install path --with-url="http://"URL for MEME Suite on your web server --enable-web

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:

./configure --prefix=$HOME/meme your install path --with-url="http://"URL for MEME Suite on your web server --enable-web="https://meme-suite.org/meme/opal2/services"

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:

export CATALINA_BASE=<TOMCAT instance path> export CATALINA_HOME=<TOMCAT installation path>
For most Tomcat installations the instance and the installation will be the same directory. Only if you have a multi-instance Tomcat installation will these be distinct directories.

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:

./configure --prefix=$HOME/meme your install path --enable-web=Opal installation base URL --enable-webservice=path to Opal's deploy folder

### 3. Building

To build simply type while at the top directory:

make

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:

make test

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.

### 4. Installing

To install the software in the directory tree specified by `prefix` run the command:

make install

### 5. Setting PATH

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:

export PATH=your install path/bin:your install path/libexec/meme-version #:$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:

setenv PATH your install path/bin:your install path/libexec/meme-version #:${PATH}

[ Top ]

## Installing from a Git repository

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:

git clone git@bitbucket.org:memesuite/meme-suite.git

Once you've checked out the source code you need to run the `bootstrap` script:

cd meme ./bootstrap

The bootstrap script does a number of tasks like:

- Checks the version of autoconf
- Downloads the output example files and generates a file list for automake.
- Uses ant to generate a file list of the website for automake.
- Builds configure script.
- Builds Makefile.in files from Makefile.am files.
- Creates ARCHIVE_DATE and ARCHIVE_RELEASE files.

You can now follow the configuration, building and install steps from installing from a tarball.

[ Top ]

## Parallel MEME

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:

export OMPI_MCA_btl_base_warn_component_unused=0
Please see section Prerequisite software for information where to get the MPI software. Currently, the parallel version of MEME is known to work with:

MPI distributions
MPICH
OpenMPI

MEME also works with some versions of LAM MPI, but LAM has been superseded by OpenMPI, and is no longer under active development.

[ Top ]

## Customizing configuration

Customization is done via the command line arguments to configure.

The general syntax for all the options is one of the following:

- Include a feature:
  --enable-feature
  or
  --enable-feature=yes
- Do not include a feature:
  --disable-feature
  or
  --enable-feature=no
- Set a specific feature to a value:
  --with-feature=value
or
--enable-feature=optional value
- Text in a dashed rectangle is optional:
  optional text

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 ]

## Installation Examples

### Example 1

Installing MEME command line programs without any web components in /opt/meme. Buttons in the tool outputs will not work.

tar zxf meme-
.tar.gz cd meme-
./configure --prefix=/opt/meme-
make make test sudo make install

### Example 2

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`.

tar zxf meme-
.tar.gz cd meme-
./configure --prefix=/opt/meme-
--with-url=https://meme-suite.org/meme make make test sudo make install

### Example 3

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.

tar zxf meme-
.tar.gz cd meme-
./configure \ --prefix=/opt/meme-
\ --enable-web \ --with-url=http://host/meme-
make make test make install

### Example 4

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` ).

tar zxf meme-
.tar.gz cd meme-
./configure \ --prefix=/opt/meme-
\ --enable-web=http://host/opal2/services \ --enable-webservice \ --with-url=http://host/meme-
make make test make install

### Example 5

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.

tar zxf meme-
.tar.gz cd meme-
./configure \ --prefix=/opt/meme-
\ --enable-web=http://host/opal2/services \ --enable-webservice \ --with-url=http://host/meme-
\ --with-prev-url=http://host/meme_4.9.1 \ --with-prev-ver=4.9.1 \ --with-db=/opt/meme_db \ --with-notices=../notices.txt \ --with-news=../news.txt make make test make install

[ Top ]

## Uninstalling

You can uninstall MEME Suite by giving the command:

make uninstall

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 ]

## Running regression tests

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:

make test

[ Top ]

## Installing sequence databases

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.:

update-sequence-db --ensemblvertebrates your install path/db/fasta_databases

To get a list of the command-line options for specifying particular database groups, use the command:

update-sequence-db --help

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.

update-sequence-db --csv path to databases/fasta_databases cp path to databases/fasta_databases/fasta_db.csv path to old distribution/etc/ cp path to databases/fasta_databases/fasta_db.index path to old install/etc/

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 ]

## Installing motif databases

Tomtom, MEME-ChIP, SpaMo, CentriMo and AME can make use of motif databases.

1. Download the motif databases from here.
2. Extract the databases from the gzipped tar:
   tar xzf motif_databases.X.tgz
   where "X" is the version number of the motif databases file
3. Move the extracted databases folder:
   mv motif_databases path to databases/motif_databases
   Where the path to databases may just be the `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 ]

## Installing GOMO databases

GOMO uses additional databases which need to be downloaded and installed.

1. Download databases for GOMO from here.
2. Extract the databases from the gzipped tar:
   tar xzf motif_databases.X.tgz
   where "X" is the version number of the GOMO databases file
3. Move the extracted databases folder:
   mv gomo_databases path to databases/gomo_databases
   Where the path to databases may just be the `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.
4. In a split install copy the file `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 ]

## Reporting problems

Make sure first that you really have a problem.

### Check your environment

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?

### Look for the answers.

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.

### Are you asking in the right place?

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.

### Verify what you did.

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.

### Report the problem.

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:

- Use a meaningful and specific subject.
- Write clearly and be precise about your problem.
- Attach any files required to recreate the problem if they are small enough to email (≤ 5MB in total).

If you are reporting a problem with the web server you should also tell us:

- The Web browser you are using (eg. Firefox, Chrome, Safari, Opera or Internet Explorer) including the version.
- A link to the page with the problem. This is especially useful for failed web-service jobs as we can then lookup related logs.

If you are reporting a problem with a copy of the MEME Suite you have installed (or are installing) you should also tell us:

- the MEME Suite version,
- the OS version,
- the autoconf version,
- the compiler version,
- the Perl version, and
- the Python version, as well as,
- attach the file `config.log` which is created by the configure script
- if there are any errors or warnings output during the `make` stage, attach `make.log` created by the following commands (assuming bash shell):
  make clean make &> make.log
- if any tests fail in the `make test` stage, attach `test.log` created by the following command (assuming bash shell):
  make test &> test.log
- if there are any errors or warnings output during the `make install` stage, attach `install.log` created by the following command (assuming bash shell):
  make install &> install.log

[ Top ]