Catalina Install Command Line Tools

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.

Mac users with macOS Mojave and macOS Catalina, and new operating systems in place can now install Command Line Tools from the Xcode IDE without needing to install the entire Xcode package, or opening an Apple developers account. Did you know: Using Xcode app leaves behind a lot of junk files a.k.a. 'development junk.' Install = Install the command line developer tools: Y. In macOS Catalina the default shell will change to zsh and in time this page will be updated to include that. Yesterday I noted how one of the changed requirements in macOS 10.15 Catalina is that software which isn’t run by LaunchServices, such as command tools, will still need to satisfy new requirements for signature, hardening and notarization. Starting with Catalina, Terminal uses the Z shell (zsh) by default. Note: All instructions in this section were tested on macOS 10.12, although they should still work for OS X 10.11. Installing the Command Line Tools. Terminal provides you with a basic shell. However, most developers supplement it with the Command Line Tools from Apple. How to install the Command Line Tools on macOS Catalina. Build C, C programs from Terminal.

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 (for Linux, OS X and Cygwin systems)

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

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:

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.

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

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.

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.

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.

Catalina Install Command Line Tools

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:

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

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

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:

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:

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
Catalina cannot install command line tools

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]

Catalina Install Command Line Tools

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:

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:

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

Catalina Install Command Line Tools

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:

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:

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:

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:

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
Catalina Install Command Line Tools

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:

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:

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:

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:

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.

Catalina Install Command Line Tools Windows

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:

OptionNeeded forDefault value
--prefix=install pathProvide the installation location path.$HOME
--enable-build-libxml2Forces MEME Suite to build and use libxml2 code included in MEME Suite distribution.disabled
--enable-build-libxsltForces MEME Suite to build and use libxslt code included in MEME Suite distribution.disabled
--enable-debugProduce an executable with debugging symbols.no debug
--enable-optProduce an executable with optimization.compiler and OS dependent.
--enable-serialProduce only serial version of MEME, do not build parallel version.disabled
--enable-web=opal services urlBuild 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 folderDeploy 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 emailSet email of web site administrator.No site contact.
--with-dev-contact=developers emailSet email of developers.meme-suite@uw.edu
--with-convert=path to convert binarySet 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 directorySet path to databases.install path/db/
--with-gs=path to gs binarySet location of Ghostscript application.As found in PATH
--with-logs=logs directorySet path to logs.install path/LOGS/
--with-maxtime=max job timeSet wall time limit (sec) a web-submitted job started by the web server may use.18000 (5 hours)
--with-mpidir=mpi directorySet MPI installation path. See Parallel MEME section.Path of found mpicc
--with-perl=path to perl binarySet location of Perl interpreter.As found in PATH
--with-python=path to python binarySet location of Python interpreter.As found in PATH
--with-url=urlSet URL for the MEME Suite web site used by buttons on the output of MEME Suite tools.No URL is used.
--with-prev-url=urlSet 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 numberSet 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=urlSet 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/TIMESet the quota limit for job submissions through the website as a COUNT of submissions during TIME seconds.No quota limits.
--with-notices=notices file nameSets the URL of the notices file relative to the top directory of the webapp. 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 nameSets the URL of the news file relative to the top directory of the webapp. 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 retainedThis 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:

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:

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

Can't Install Xcode Command Line Tools Catalina

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

Catalina Install Command Line Tools For Xcode

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

Catalina install command line tools for xcode

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

[ Top ]

Programming

Getting Rid of Xcode Command Line Tools

Have you ever uninstalled Xcode Command Line Tools only to have it comes back again when Xcode gets updated or there’s a macOS update? You might have a need for the command line tools at that time but don’t need it any longer — however it seems to find a way to get back into your system.

I experienced this not too long ago. I installed Xcode’s command line tools because I needed an older version of Xcode for use with NVidia’s toolkit. Then when I no longer have the need, I’ve uninstalled it as per Apple’s directions. But strangely during the next macOS update cycle — which also updated Xcode in roughly the same time frame — I was prompted to update the command line tools as well. What’s worse, there’s no way to opt out and I ended up installing the command line tools only to un-install it again. What an annoyance and waste of bandwidth.

Fortunately after much, much googling, I’ve discovered a way to permanently uninstall this command line tools. I’ve also find a way to leverage the Xcode IDE for use by command line applications as well. Interested? Read on.

Uninstalling Xcode Command Line Tools

To remove Xcode Command Line Tools (which is, by the way, different than the full Xcode IDE), you will need to go through two steps.

  1. Remove the files consisting the command line tools.
  2. Remove the receipts to prevent it from coming back again.

The first step is easy enough. It’s the second step that’s rather tricky because these receipt files are located in a read-only zone guarded by System Integrity Protection (SIP).

Removing Xcode Command Line Tools

Catalina Install Command Line Tools Download

As per Apple’s document TN2339, removing the command line tools is as simple as deleting a folder.

However in my personal experience, the command line tools would just get installed again the next time it gets updated. Thus you will need to follow the next step to fully remove the command-line tools.

Removing Receipt Files

Another set of files that you would need to remove are the receipt files of Xcode command line tools. These files starts with the name com.apple.pkg.CLTools* and resides in the /System/Library/Receipts/ folder. However since its location is inside one of SIP’s protected folders, removing them is quite involved.

What you need to do is to boot into macOS Recovery and then remove those receipt files from there. There’s really no need to disable SIP and put your system at risk just to remove these few files. Booting from the Recovery OS also means that no other applications are running — which further reduce the risk of any malware modifying your crucial system files.

Follow these steps to remove those pesky command line tools receipt files.

  1. Restart your mac and hold ⌘R to boot into macOS Recovery.
  2. Go through the language selection and select your preferred language.
  3. In the Recovery Tool, open Disk Utility
  4. Select your mac’s internal drive (usually named “Macintosh HD” if you haven’t renamed it) and then click mount.
  5. You probably need to select an administrative user and enter that user’s password to unlock the drive.
  6. Having mounted the internal drive, close the Disk Utility app.
  7. The Recovery Tool should appear again.
  8. This time click Utility option in the menu bar and then Terminal
  9. The Terminal app should open.
  10. Using the Terminal, locate your mounted internal drive in the /Volumes folder and list its files. Again, the name is likely “Macintosh HD”
  11. You should see a familiar macOS boot volume folder structure.
  12. Then go to the System/Library/Receipts folder
  13. Look for the command line tools receipts files.
  14. If they are there, remove them
  15. And that’s it. The command line tools shouldn’t return unless you explicitly downloaded and install them again.

Using the Full Xcode as Command-Line Tools

Really, the command line tools are meant for those who doesn’t need the full Xcode IDE. Maybe they need it just for compiling open-source packages. Perhaps they only do cross-platform Unix development and uses Emacs, VIM, or some other text editors to write code. For those people, the full Xcode is a monstrosity: gigabytes containing IDE and simulators for three operating systems (iOS, tvOS, watchOS) that they are not going to write software for.

But if you really use Xcode to develop Apple-specific software, then the reverse is true: the command-line tools duplicates of what the full Xcode IDE already provide and hence would waste precious space on your startup volume. However, some open-source package’s build systems seems to require the command line tools. Is there a way to make them use the same compilers that Xcode IDE provide?

Yes there is. Read on.

The first step of business is to configure Xcode as the default compiler for the system. This is even more important if you have more than one copy of Xcode installed (the other one would likely be a beta of a future version of Xcode). Follow these steps to configure Xcode in the command line.

  1. Open Xcode IDE
  2. In Xcode’s application menu, select the Preferences menu option.
  3. Activate the “Locations” tab
  4. In the “Command Line Tools” section, select the current version of Xcode as default (you might be asked to enter your password or restart iTunes if you haven’t done this before).
  5. Open Terminal
  6. Enter the following command and ensure that the output points to a location from within Xcode.app’s bundle:

Now that you have setuo Xcode as the default compiler, you might want to setup a few environment variables to let open-source tools know about it. Edit your terminal session’s startup script – usually ~/.bash_profile and add these environment settings in.

2
4
exportCFLAGS='-I${xcode_path}/usr/include'
exportLDFLAGS='-L${xcode_path}/usr/lib'

Those variables would sets the header files needed to build C and C++ applications. Furthermore it also lets linkers know where to find static libraries for these languages.

And that’s just about it. You’ve just saved about 200 megabytes of space on your startup volume. Space that hopefully you can find better use.

Until next time.