This distribution is the client interface to any implementation of the InterMine Datawarehousing WebService (www.intermine.org). Primarily used for biological genomic databases, the webservice allows the user to easily write and execute structured queries.

This module allows you to interact with one or more webservices by providing a url to an InterMine implementation.

Calling use Webservice::InterMine without any parameters simply means you need to either specify the webservice url on every call, or call the methods on a service directly.

If you pass parameters to import, a default service will be set meaning method calls will not require the webservice url. Unless you are intending to access multiple services, this form is recommended.

If you do not wish to import the standard functions into your namespace, instead choosing to call them as class methods, but still wish to set a default service, you can use the following syntax:

As you can see, queries can be concisely defined, and their results easily accessed. You can process a query's results all at once, or using iteration, as in the example above. Iteration is less memory hungry, as only the current row of data needs to be held in memory at once, which can be important when dealing with large data sets.

Templates are predefined queries that make running queries easier, as you don't have to define the logic yourself. Every mine comes with many predefined searches, and you just have to enter a few parameters:

Lists enable you to collect and manage results and lists of items of interest to you. You can use them in queries, and display their contents, as well as perforing set-logic operations on them. When you are done, you can view the lists in the webservice, where you can use the analysis widgets to assess the data you have processed.

Creates a new list with the content specified by the list arguments. The content key-word parameter will always be required. For a full specification of creating lists, see: Webservice::InterMine::Service.

Parameters:

from => [url, user, pass]

An array ref of arguments to pass to get_service. This information can be used to specify a different service than the one named on import, or to specify one when none was named on import.

%list_args

Key value pairs of arguments to pass to the list constructor in Webservice::InterMine::Service. This methid serves as sugar for the factory method in that class.

returns a webservice object, which is used to construct queries and fetch templates and saved queries. If a url is passed, the webservice for that url is returned, otherwise the service for the url given to use is returned.

InterMine webservices support two authentication mechanisms to provide access to private data. The recommended method is to use API access keys, which have the advantage of eliminating the need to transmit your login details. If compromised, an access key can be easily changed or disabled without needing to change either the associated username or password. However this facility is new, so for backwards compatibility, the older mechanism for passing along username and password credentials has been retained.

If three arguments are supplied, they will be interpreted as ($root, $user, $pass), but if two are supplied, they will be intepreted as ($root, $token).

These arguments may also be passed in a keyword/hash style, either as a list or a hash reference, in which case the full list will be passed to the Webservice::InterMine::Service::new constructor.

If a service for a url has been created previously, that one is returned, even if different login details are provided.

Deletes all automatically created anonymous lists. Any renamed lists will be spared the clean-up. This method is called on system exit, unless the variable $Webservice::InterMine::CLEAN_UP is set to a false value.