# The MEME Suite

## Motif-based sequence analysis tools

## Scripting Access to MEME Web Services

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:

- crp0.fasta
- crp0.meme.xml

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

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