[bioNMF] [help]

Web Services User Guide (version 1.0)



1. Description

The Web Service provides an API to utilize the services provided by the system in a programmatic way. The functionality mirrors that of the web page, but with some minor differences to simplify its use. The API is basically asynchronous. All the actual analysis methods launch jobs on the server that get registered, and an identifier is returned to the client so that it can query the status of the job and gather the results when the job is done.

The results for the job are provided in two ways, the main one only deals with the essential results for each job. The actual results that are produced depend on the analysis performed itself and the parameters used. To gather the results you first query the server for a list of results identifiers, with this identifiers you can gather the actual contents of the results. The description of the methods bellow go into details on what are these results specifically in each case.

When using the web interface you are provided with more results than just the essentials, including images used to asses of validate these results. Because many times these results will probably not be the ones consumed directly by the clients software, but intended for user viewing. We don't provide them by the same means as the essential results, however we provide a method that allows the client to download a file bundle in tar.gz format, so they are still accessible via the Web Service.



2. Conecting to the server

The easiest way to connect to the server is to load the bioNMF's WSDL file located at http://bionmf.dacya.ucm.es/1.0/WebService/BioNMFWS.wsdl. This will prepare the driver with all the functions in the API.

For example, this can be done in Ruby Language as follow:

require 'soap/wsdlDriver'

wsdl_url = "http://bionmf.dacya.ucm.es/1.0/WebService/BioNMFWS.wsdl"

driver = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver



3. Data formats

bioNMF accepts as input TAB separated text files, which might or might not contain row labels and/or column headers as well as a short description string at the beginning of the file. Each header, label or the description string might be composed by several space-separated words and/or numbers, but it is limited up to 31 characters.

See an example of input file formats: with labels and without labels (if you use any of these matrices, please use one of the preprocessing methods listed below in order to set all their values as positive).

Important note: Please fill all matrix entries with numbers or labels since "empty values" are not supported (ie. consecutive TAB characters will be processed as a single one).

In addition, bioNMF also accepts data binary files encoded using IEEE little-endian byte ordering, as well as UTF-8 for labels. Data must be written in the following order:

See an example of how to save a file in this format with this simple Matlab script.
Please note that newline (\n) characters are mandatory if any of headers, labels or the name fields is set.



4. Web Service API

Performing analysis using the web service usually entails uploading a matrix and setting the preprocessing defaults for it; then calling any of the three methods that perform the analysis you need, and query the status until the job is finished; after that you can retrieve the list of results, which are just the identifiers, and gather those you are interested on; or even retrieve the whole list of output files, which include the results and other useful information for the user.



5. Examples

Here you can find some example scripts.



6. How to cite bioNMF

If you use this software, please cite the following work: