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

### Table of Contents:

- Quick Install
- Prerequisite software
- Getting the source
- Getting and installing the patches
- MEME Suite directories
- Installing from a tarball
- Installing from a Mercurial repository
- Parallel MEME
- Customizing configuration
- Installation Examples
- Uninstalling
- Running regression tests
- Installing sequence databases
- Installing motif databases
- Installing GOMO databases
- Reporting problems

## Quick Install (for Linux, OS X and Cygwin systems)

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

#### Notes:

- This installs only the command-line versions of programs. Refer to Installing from a tarball if you wish to install your own MEME Suite Web Application as well.
- 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 http://meme-suite.org 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

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
- 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.
- Ghostscript - for creating PNG files.
- 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:

sudo apt-get install zlib1g-dev

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

### Ghostscript [optional]

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

### 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 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 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
- SGE from http://gridengine.sunsource.net

[ Top ]

## Getting the source

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:

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

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_HOME/webapps` and the SQLite library `sqlite-jdbc-x.x.x.jar` in the directory `$CATALINA_HOME/lib`.

[ Top ]

## Installing from a tarball

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:

1. Unzip and untar the distribution
2. Configure the installation using the `configure` command.
3. Build MEME Suite using the `make` command
4. Test the MEME Suite build by using the `make test` command.
5. Install MEME Suite using the `make install` command.

### 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 meme-suite.org, the simplest configuration command is:

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

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

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

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,

./configure --prefix=$HOME/memeyour 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 http://meme-suite.org/opal2/services. For example,

./configure --prefix=$HOME/memeyour 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 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:

./configure --prefix=$HOME/memeyour install path --with-url="http://"URL for MEME Suite on your web server --enable-web="http://meme-suite.org/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_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:

export CATALINA_HOME=/opt/apache-tomcatTOMCAT path

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:

./configure --prefix=$HOME/memeyour 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 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:

export PATH=your install path/bin:$PATH

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:

setenv PATH your install path/bin:${PATH}

[ Top ]

## Installing from a Mercurial repository

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:

hg clone ssh://hg@bitbucket.org/tlbailey/meme

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

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 superceded 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 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 ]

## 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: `http://meme-suite.org`.

tar zxf meme_
.tar.gz cd meme_
./configure --prefix=/opt/meme_
--with-url=http://meme-suite.org 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_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.

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

update-sequence-db your install path/db/fasta_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.

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

update-sequence-db --no_rsat path to databases/fasta_databases

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 ]

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

- 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 ]