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:
-
MemeClient.pl
demonstrates calling the MEME web application from a Perl script.
-
FimoClient.pl
demonstrates calling the FIMO web application from a Perl script.
-
MemeClient.py
demonstrates calling the MEME web application from a Python script.
-
FimoCient.py
demonstrates calling the FIMO web application from a Python script.
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.