NAME
Webservice::InterMine::Query::Roles::Runnable - Composable behaviour for runnable queries
DESCRIPTION
This module provides composable behaviour for running a query against a webservice and getting the results.
METHODS
results_iterator
Returns a results iterator for use with a query.
The following options are available:
as => $format
Possible values: (rr|ro|objects|string|jsonobjects|jsonrows|count)
The format to request results in.
rr
ResultRows (default)ResultRows are objects that represent a row of results, allowing both hash-ref and array-ref access to their results. See Webservice::InterMine::ResultRow.
ro
ResultObjectsInflated Webservice::InterMine::ResultObjects will be returned (it is a synonym for
as => "jsonobjects", json => "inflate"
).objects
Instantiated InterMine::Model objects.Fully instantiated objects will be returned (see InterMine::Model::make_new).
string
Unparsed TSV rowsIf "string" is selected, then the results will be unparsed tab delimited rows.
json[objects|rows] - raw data structures
The two json formats allow low-level access to the data-structures returned by the webservice.
count - a single row containing the count
In preference to using the iterator, it is recommended you use Webservice::InterMine::Query::Roles::Runnable::count instead.
size => $size
The number of results to return. Leave undefined for "all" (default).
start => $start
The first result to return (starting at 0). The default is 0.
columnheaders => 0/1/friendly/path
Whether to return the column headers at the top of TSV/CSV results. The default is false. There are two styles - friendly: "Gene > pathways > name" and path: "Gene.pathways.name". The default style is friendly if a true value is entered and it is not "path".
json => $json_processor
Possible values: (inflate|instantiate|raw|perl)
What to do with JSON results. The results can be returned as inflated objects, full instantiated Moose objects, a raw json string, or as a perl data structure. (default is
perl
).summaryPath => $path
The path of the query to summarise (see summarise).
If a value for this is supplied, then
(as => 'jsonrows')
is implied. Also, unlike the " summarise " method, this option will return a list of item/count pairs, as below:[ { item => "the-best", count => 100 }, { item => "the-runner-up", count => 99 }, { item => "the-wooden-spoon", count => 98 }, ]
This is best when you care more about the top of the summary list, or which value is at the top than what the value of particular item is. If you are using this method with a big result set it is best to use
size
as well.
summarise($path, <%opts>) / summarize($path, <%opts>)
Get a column summary for a path in the query. For numerical values this returns a hash reference with four keys: average
, stdev
, min
, and max
. These may be accessed as so:
my $average = $query->summarise("length")->{average};
For non-numerical paths, the summary provides a hash from item => count, so the number of occurrences of an item may be accessed as so:
my $no_on_chr2 = $query->summarise("chromosome.primaryIdentifier")->{2};
Obviously you can sort the hash yourself, but if you want this information in order, or just a particular subset (the top 100 perhaps), then you should use results()
instead.
Any further options will be passed along to the result-iterator as is, although the one that makes the most sense is size
, when you don't want all the results from a very large result set.
iterator
A synonym for results_iterator. See Webservice::InterMine::Query::Roles::Runnable::results_iterator.
results( %options )
returns the results from a query in the result format specified.
This method supports all the options of results_iterator, but returns a list (in list context) or an array-reference (in scalar context) of results instead.
all(%options)
Return all rows of results. This method takes the same options as results
, but any start and size arguments given are ignored. Note that the server code limits result-sets to 10,000,000 rows in size, no matter what.
first(%options)
Return the first result (row or object). This method takes the same options as results
, but any size arguments given are ignored. May return undef
if there are no results.
one(%options)
Return one result (row or result object), throwing an error if more than one is received.
get_count
A convenience method that returns the number of result rows a query returns.
count
Alias for get_count
url
Get the url for a webservice resource.
get_upload_url
get the url to use to upload queries to the webservice.
save
Save this query in the user's history in the connected webservice. For queries this will be saved into query history, and templates will be saved into your personal collection of private templates.
SEE ALSO
Webservice::InterMine::Cookbook for guide on how to use these modules.
AUTHOR
Alex Kalderimis <dev@intermine.org>
BUGS
Please report any bugs or feature requests to dev@intermine.org
.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Webservice::InterMine::Query::Roles::Runnable
You can also look for information at:
Webservice::InterMine
Documentation
COPYRIGHT AND LICENSE
Copyright 2006 - 2011 FlyMine, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 133:
L<> starts or ends with whitespace