Installing MEME

(version 3.5.0 or later)

Table of Contents:


Prerequisite software

Most of the software mentioned here is standard on many UNIX systems. To build MEME/MAST you will need:

Optional software:

[ Top ]


Getting the source

The current version of MEME is 3.5.7 and is available from http://meme.nbcr.net/downloads/.

Note: Starting with version 3.5.0, MEME has undergone a lot of changes. It is optimized and configured for running on Linux servers. It hasn't been fully tested on other platforms, and your feedback is greatly appreciated. If you'd like to wait until all the kinks to be worked out before trying the current release, please use the previous version (use version 3.0.14) from http://meme.nbcr.net/downloads/old_versions. Installation instructions for version 3.0.14 are different and are specified in the README file included in the release distribution meme_3.0.14.tar.gz.

The software is distributed as a source tarball meme_VERSION.tar.gz. For each file there is a corresponding file with the MD5 checksum: meme_VERSION.md5sum. When downloading the software, please make sure you download the corresponding checksum file and verify that the checksum information is correct. Depending on a platform and available software, the verification command can be different. Here there are 3 possible ways to do verification:

  1. Using md5sum command, usually available on Linux.
    $ md5sum meme_VERSION.tar.gz

  2. Using md5 command, usually available on Solaris.
    $ md5 meme_VERSION.tar.gz

  3. Using openssl command, usually available on any UNIX.
    $ openssl dgst -md5 meme_VERSION.tar.gz

The output of the command (numerical part) should be exactly the same as one provided in the checksum file. Here is the checksum information for available MEME versions:

File md5sum
meme_3.5.7.tar.gz please see meme_3.5.7.md5sum
meme_3.5.4.tar.gz please see meme_3.5.4.md5sum
meme_3.5.1.tar.gz please see meme_3.5.1.md5sum
meme_3.5.0.tar.gz cb552052c82c40ce3111c95f1e9697eb
meme_3.0.14.tar.gz f18bacdce60c11bff4cde650da296228

[ Top ]


Getting and installing the patches

The distribution may have patches associated with it. They are available from http://meme.nbcr.net/downloads/. Patch files are located in a directory named VERSION.patches, for example, meme_3.5.4.patches. Patch file have names like: VERSION.patch_SERIAL_NO, for example, meme_3.5.4.patch_3.

To install a patch, download the patch file from the URL given above. Then perform the following commands to install it:
$ cp PATCH_FILE VERSION
$ cd VERSION
$ patch -p1 < PATCH_FILE
$ make install
$ make test

For example, to install the first patch to version meme_3.5.4, you would perform the following commands:
$ cp meme_3.5.4.patch_1 meme_3.5.4
$ cd meme_3.5.4
$ patch -p1 < meme_3.5.4.patch_1
$ make install
$ make test

You must install all of the patches for a specific version in serial number order. For example, if you wish to install patch number 3, you must first have installed patches number 1 and 2 for that version. This is easy to do. Just download all the patches for your current version, copy them to your current versions's directory, and then install them in order by repeating the patch, command above, with each patch file. You only need to run the install and make test commands once, after the last patch command.

[ Top ]


System Requirements

MEME has been used successfully on the following platforms

Disk and memory use:

[ Top ]


Installing from a tarball

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 SVN access please see section Installing from an SVN repository

0. On UNIX systems unzip and untar the distribution:

$ gunzip -c meme_VERSION.tar.gz | tar xvf -
$ cd meme_VERSION

If there are patches associated with the VERSION please see section Getting and installing the patches that explains how to download and install the patches.

1. Configuring

Run configure with specific parameters, see section Customizing configuration below.
$ ./configure [parameters here]

The most common configure command creates only command-line versions of MEME and MAST (no web servers or clients) and connects the hyperlinks on the MEME HTML output to the web server at NBCR. The parameter prefix is required, and specifies the installation directory.
$ ./configure --prefix=your-install-path --with-url=http://meme.nbcr.net/meme --disable-server --disable-client

Without any optional parameters, command-line versions for MEME and MAST will be installed.
$ ./configure --prefix=your-install-path

Another configuration includes installing a web site. This site can utilize either a remote MEME web service (which has been exposed via Opal), or it can use a pre-existing Opal installation to deploy MEME as a webservice. In the latter case, all queries will be sent through this webservice.

To install the website utilizing the NBCR MEME Web Service:
$ ./configure --enable-web --prefix=your-install-path

To install the website utilizing a remote MEME Web Wervice (this example points to the NBCR MEME Web Service explicitly):
$ ./configure --enable-web=http://ws.nbcr.net:8080/axis-1.2.1/services/MEME --prefix=your-install-path

To install the website and automatically deploy MEME as an Opal Web Service:
$ ./configure --enable-web=http://<base url for your Opal installation>/MEMEOpalService --enable-webservice=path-to-your-build-opal.xml --prefix=your-install-path

2. Compiling and installing

To compile simply type while at the top directory:
$ make

If there are no errors make a test. The test will check MEME and MAST output against known 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 tests pass without errors the results/ with the output files is removed automatically.

To install the software in the directory specified by prefix do:
$ make install

3. Installing mast databases

The resulting files in the databases directory will be around 26Gb. It can take time to download all the databases, and the connections to some sites from which files are downloaded may be not always available. The result of the download will be emailed to the address specified by yourmail@your.address. If there are errors, they will be noted in the email, and the command to install the databases will need to be repeated.

4. Configuring apache web access

This part requires root access to create a symbolic link from the document root directory to the web directory in MEME installation. For example, if meme software is installed in /home/meme, and the HTTP DocumentRoot is /var/www/html, then create a link:
$ ln -s /var/www/html/meme <install.path.here>/web

The URL for web access is typically http://your.host.name/meme/. Virtual hosts may be configured accordingly.

[ Top ]


Installing from a SVN repository

The read-write access to the SVN 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 the SVN access, you can check out the source code by:
$ svn checkout svn+ssh://meme@summit.ucsd.edu/meme/SVNROOT/trunk

To start working with the distribution one needs to create a configure script:
$ cd trunk
$ ./bootstrap

The MEME SVN repository contains the source code for both MEME and Meta-MEME. If you are only interested in working with MEME you may proceed with the installation as outlined in section Installing from a tarball step 1. If you only wish to work with Meta-MEME the configure command is:
$ ./configure --enable-metameme --prefix=your-install-path --with-url=http://metameme.nbcr.net

If you wish to work with both MEME and Meta-MEME, the configure command is:
$ ./configure --enable-both --prefix=your-install-path --with-url=http://meme.nbcr.net/meme --disable-server --disable-client

If you are installing the web site MEME and Meta-MEME will share the same web directory, URL, and contact information by default. If you wish to provide distinct directories, URL, or contact information for MEME and Meta-MEME, you can do so by providing the --metameme-webdir, --metameme-url, --metameme-contact options to configure.
$ ./configure --enable-web=url-to-MEME-service --enable-both --prefix=your-install-path --with-metamame-wedir --with-url=http://<domain>/meme

[ 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 mpicc is not found or if queue status program qstat (part of the SGE or PGS scheduler) is not found. Both must be present on the system. Please see section Prerequisite software for information where to get the software. Currently, parallel version of MEME is known to work with:

MPI distributions Batch Schedulers
LAM MPI SGE
MPICH PBS

Once mpicc and qsub are located by configure, the parallel version of MEME, called meme_p is compiled and installed automatically via commands make and make install.

[ Top ]


Customizing configuration

Customization is done via the command line arguments to configure. To find out a list and the syntax of the configurable arguments, execute:

$ ./configure --help

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

The following table provides a list of required an optional parameters available for configure. Options in color are required, the rest are optional:

Option Needed for Default value
--prefix Provide the installation location path $HOME
--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 executables parallel and serial
--enable-server Produce server executables enabled
--enable-client Produce client executables enabled
--enable-webservice=/path/to/build-opal.xml Deploy MEME as a Web Service utilizing an existing Opal installtion. Meme will be deployed at <OPAL_SPECIFIC_URL_STRUCTURE>/MemeOpalService disabled
--enable-web[=http://url.to.meme/webservice] Build web site applications. Must point it to a MEME Web Service exposed via Opal. Defaults to ws.nbcr.net:8080/axis-1.2.1/services/MEME disabled
--enable-metameme Produce Meta-MEME and Tomtom executables disabled
--enable-both Produces MEME, Meta-MEME, and Tomtom executables disabled
--with-queue=QUEUE QUEUE type ("sge" or "pbs" or "shell"); "shell" runs each submitted MEME job as a background process and should be used if the MEME server is running on a host without a batch scheduler. determined by running qstat
--with-mpicc=MPICC Set MPICC to use found mpicc
--with-mpidir=MPIDIR Set MPI installation path path of found mpicc
--with-url=URL Set url for the web site http://fqdn/meme
--with-metameme-url=URL Set url for the Meta-MEME web site http://fqdn/meme
--with-user=USER Set user for starting the servers uid
--with-contact=EMAIL Set email of web site administrator uid@fqdn
--with-metameme-contact=EMAIL Set email of web site administrator for Meta-MEME uid@fqdn
--with-webdir=DIR Set path to web site part install-path/web/
--with-metameme-webdir=DIR Set path to Meta-MEME web site part install-path/web/
--with-db=DBDIR Set path to databases install-path/db/
--with-logs=LOGDIR Set path to logs install-path/LOGS/
--with-meme-port=PORT Set port to use for MEME web server 3012
--with-mast-port=PORT Set port to use for MAST web server 3013
--with-procs=PROCS Set number of processes that each MEME job started by the web server will use; does not affect jobs started from the command line. Use "1" if the MEME server is running on a host without a batch scheduler. 2
--with-maxtime=TIME Set wall time limit (sec) a job started by the web server may use 7200
--with-qname=NAME Set queue name (needed only for PBS scheduler) web server jobs will use none
--with-opal=URL Set the service url to use with Opal none

Note 1: see Parallel MEME section for details.

Note 2: in the table above uid refers to the UID of the user doing installation.

Note 3: in the table above fqdn refers to the fully qualified hostname.

[ Top ]


Installation Examples

  1. Example 1: installing MEME servers and clients, including the web services in /home/meme.
    $ gunzip -c meme_3.5.1.tar.gz | tar xvf -
    $ cd meme_3.5.1
    $ ./configure --prefix=/home/meme --enable-web
    $ make
    $ make test
    $ make install

    After execution of these commands, provided none resulted in error, the following directory structure will be created in /home/meme:

        bin/    db/    etc/    lib/    LOGS/    tests/    web/
    
  2. Example 2: installing MEME servers and clients without the web services in /opt/meme.
    $ gunzip -c meme_3.5.1.tar.gz | tar xvf -
    $ cd meme_3.5.1
    $ ./configure --prefix=/opt/meme
    $ make
    $ make check
    $ make install

    After execution of these commands, provided none resulted in error, the following structure will be created in /opt/meme:

        bin/    db/    etc/    lib/    LOGS/    tests/
    
  3. Example 3: When installing MEME servers and clients without the web services it is still possible to use web access to a remote server in order to submit meme output. In this case the users do not install the web services on a local machine. Instead, they can specify a remote known server which will be used in MEME output form. Using a remote known server will allow users to use buttons on a MEME output form (once this output is loaded in the web browser) and submit the MEME results for additional processing if desired. We specify a remote server during configuration step, and the rest of the installation is as in Example 2 above.
    $ ./configure --prefix=/opt/meme --with-url=http://meme.nbcr.net/meme

Directories contents:

bin/
MEME and MAST executables and scripts
db/
this directory or DIR specified by --with-db=DIR option is created. Initially, the database directory is empty, and is filled with the databases after running update_mast_databases command.
etc/
contains the following files
lib/
contains common Perl modules
LOGS/
directory for temporary files created by mast or MEME when jobs are submitted via web
tests/
known correct output of MEME and MAST for specific sequences and databases. These files are used when running make test during installation or bin/runtests
web/
contains files necessary to setup up a web-based access to MEME/MAST servers.

[ Top ]


Using MEME/MAST

Before using MEME and MAST, users must add a few environment variables. All needed variables are defined in meme.csh and meme.sh files.

  1. If using csh or tcsh, execute the following command:
    $ source install-path/etc/meme.csh

    To make the addition of these variables automatic upon login, add a line to your .cshrc or .tcshrc file:
    $ source install-path/etc/meme.csh

  2. If using sh or bash, execute the following command:
    $ . install-path/etc/meme.sh

    To make the addition of these variables automatic add a line to your .profile or .bash_profile file:
    $ . install-path/etc/meme.sh

The install-path should be a full path to the installation directory. To find out how to use MEME or MAST execute respectively:
$ meme
$ mast

Both commands print usage on stdout.

[ Top ]


Running regression tests

There is a suit of tests that can be run to test MEME and MAST output against known output. These tests can be run at any time after the installation of newly compiled MEME and MAST binaries (meme.bin and mast.bin). These tests can take a long time. The output files from the tests go into the newly created directory install-path/tests/results/. If the tests pass without errors this directory with its output files will be deleted. If there are errors the output files are kept and can be compared to files in install-path/tests/. To run the regression tests do:

$ install-path/bin/runtests

[ Top ]


Known issues

Version 3.5.0

  1. Fully tested on Rocks Linux (Redhat and Cent OS). Some users have reported configure issues with Sun and SGI platforms.
  2. Some users have reported confusion over the difference between

            bin/meme          and           bin/meme.csh 
    
    and the difference between
            etc/meme.csh      and           bin/meme.csh
    

    When refactoring was taking place, a decision has been made to keep a distinction between binary program and the shell script. In the previous versions they had the same name meme. In 3.5.0, the binary is meme, and the shell script that parses the arguments and calls the binary is meme.csh. This requires a change in the command line execution, namely typing meem.csh in place of meme. This was deemed undesirable by some users, others pointed out that their parsing scripts would have to change. In order to maintain compatibility with the previous versions of MEME, the old behavior will be restored in the next release.

    The files etc/meme.csh and etc/meme.sh are newly introduced. They are created for setting user environment in a simple and uniform way. Please see section Using MEME/MAST for a reference.

  3. Option --enable-web is currently required to install perl modules properly and to create LOGS/ directory.
  4. The file bin/mast-client contains a typo. Patch and installation instructions are available. See section Getting and installing the patches

Fixes to these bugs and problems will be available in the next release, version 3.5.1.

[ Top ]


Reporting problems

Make sure first that you really have a problem:

[ Top ]


Copyright © 1994-2006 The Regents of the University of California. All rights Reserved.