Scripting MEME Web Applications

The MEME Suite web applications are exposed as SOAP Web services through the Opal toolkit. This means that you can access the MEME suite web applications from Perl or Python scripts without having to install the MEME Suite locally.

Four sample scripts that demonstrate how to submit jobs to the MEME Web services are provided:

The scripts expect to find two data files in the working directory:

The MEME client scripts will run MEME on crp0.fasta and store the output in a local directory named meme_out. The FIMO client scripts will run Fimo on crp0.meme.xml and crp0.fasta and store the output in a local directory named fimo_out.

You don't need to have a local copy of MEME Suite installed to access the web applications from your script, but you do need to have the appropriate version of the Opal client libraries installed. To install the Opal client libraries refer to the installation Instructions for Perl or installation instructions for Python.

The Perl Opal client libraries require you to have Perl 5.0.8 or higher, and you must have installed SOAP::Lite 0.69 or higher. You may need to adjust the PERL5LIB environment variable to include the directory containing the Perl Opal client.

The demonstration scripts use the NBCR MEME Web Server but you can use a local MEME web server by changing the service URL. This is specified in the variable $location in the Perl script, and in the variable serviceURL in the Python script.

An important advantage of submitting MEME Suite jobs by script is that you are not limited to the handful of options provided on the HTML forms. You can specify any of the options available for the command-line version of the MEME Suite applications. Note however that the required arguments must come before the optional arguments. This is the reverse of the standard order when using the command-line directly. Read the comments in the scripts for more details.

Important Note

Scripting clients can easily submit enough jobs to overwhelm a MEME server, even one with substantial hardware resources. If you are sending jobs to a shared server, please submit only one job at a time.