NEW The DynaMine predictor is also available as a command line tool (Beta – python 2) or a JSON API that you can use to integrate DynaMine in your application.

In both cases, an api key is required to obtain the predictions from the DynaMine server. You can obtain your API key from the form below:

e-mail address:  
You will receive a personal API key at the mail address you specified. Add it to the config.txt file of the command line tool, or specify it as json_api_key in your requests to the Dynamine predictor via the JSON API.

You can download now the DynaMine command line tool or follow the instructions below on how to integrate the DynaMine predictor into your own application.

Note that the DynaMine server accepts batch requests of jobs containing a maximum of 100 sequences.

Dynamine JSON API

Thanks to its JSON API, DynaMine can be easily integrated with third-party applications or into your daily workflow to predict backbone dynamics. JSON stands for JavaScript Object Notation, and is a popular open standard for exchanging information between applications. The JSON format consists of a series of attribute-values pairs, it is text-based, and human-readable. Due to its simplicity, it is extremely easy to construct JSON objects; nevertheless, there are libraries available for most programming languages that allow to directly serialise objects in JSON format and use them for communicating with the DynaMine predictor. At the end of this page, there is a small python script that exemplifies a typical use case.

In the following, we will give a complete specification of the DynaMine JSON API v1.0 by means of simple examples.

Submitting a job

To submit a job with up to 100 protein sequences, there are two possible requests, one where the sequences are given explicitly:

and one where the protein are specified by their Uniprot identifier:

In both examples above, you have to specify the API protocol version (which actually defines the format of the request and responses when communicating with the DynaMine predictor), the json_api_key you have received in your mail inbox, and a boolean value predictions_only that specifies if you only want to get the predictions from the server or if you also want the DynaMine predictor to generate plots and graphical representations of the results. The list of sequences in your job can be specified alternatively as a list of uniprot_ids, or as set of sequences in which you can specify a protein identifier and a string containing the sequence. The protein identifier in this case does not need to correspond to a specific identifier in Uniprot or any other database.

To this request, the DynaMine predictor will answer with a status message indicating your job_id and that either the status of your job is queued, meaning it will be processed soon:

or that there was an error in the processing of your request. The field message will contain a human-readable description of the issue encountered:

Polling the status of the current job

The communication with the DynaMine predictor is asynchronous, therefor you should poll regularly the server to see if your job is still queued, or if it is actually being processed ( running). To poll for the status of a job you have to send the following JSON request:

there are four possible status for the specified job_id: 1. queued, 2. error, 3. running, and 4. completed. The first two have been already described above, the answer for a running job is:

and completed will be detailed in the next section.

Getting the results

When the job is complete, the answer to the poll request will have as status the value completed and a data structure containing the predictions:

The field predictor is a string representation of the version of the DynaMine predictor used to compute the backbone dynamics. The field predictions contains the RCI-S2 predictions, while url points to a zip file containing all DynaMine results.

Sample client code

The following python code allows to submit proteins as sequences or Uniprot identifiers, poll for the results, and print on the terminal a python hash table containing the backbone dynamics predictions. Please note that the code is for illustrative purposes only, it is neither complete nor guaranteed to be correct.