NAME
Bio::Das::Lite - Perl extension for the DAS (HTTP+XML) Protocol (http://biodas.org/)
VERSION
See $Bio::Das::Lite::VERSION
|
SYNOPSIS
my $bdl = Bio::Das::Lite->new_from_registry({ 'category' => 'GRCh_37,Chromosome,Homo sapiens' });
my $results = $bdl ->features( '22' );
|
SUBROUTINES/METHODS
new : Constructor
my $das = Bio::Das::Lite->new({
'timeout' => 60,
});
Options can be: dsn (optional scalar or array ref , URLs of DAS services)
timeout (optional int , HTTP fetch timeout in seconds)
http_proxy (optional scalar , web cache or proxy if not set in %ENV )
no_proxy (optional list/ ref , non-proxiable domains if not set in %ENV )
caching (optional bool, primitive caching on/off)
callback (optional code ref , callback for processed XML blocks)
registry (optional array ref containing DAS registry service URLs
proxy_user (optional scalar , username for authenticating forward-proxy)
proxy_pass (optional scalar , password for authenticating forward-proxy)
user_agent (optional scalar , User-Agent HTTP request header value)
|
new_from_registry : Constructor
Similar to 'new' above but supports 'capability' and 'category'
in the given hashref, using them to query the DAS registry and
configuring the DSNs accordingly.
my $das = Bio::Das::Lite->new_from_registry({
'capability' => [ 'features' ],
'category' => [ 'Protein Sequence' ],
});
Options are as above, plus
capability OR capabilities (optional arrayref of capabilities)
category (optional arrayref of categories)
For a complete list of capabilities and categories, see:
The category can optionally be a full coordinate system name,
allowing further restriction by authority, version and species.
For example:
'Protein Sequence' OR
'UniProt,Protein Sequence' OR
'GRCh_37,Chromosome,Homo sapiens'
|
http_proxy : Get/Set http_proxy
proxy_user : Get/Set proxy username for authenticating forward-proxies
This is only required if the username wasn't specified when setting http_proxy
$das ->proxy_user( 'myusername' );
|
proxy_pass : Get/Set proxy password for authenticating forward-proxies
This is only required if the password wasn't specified when setting http_proxy
$das ->proxy_pass( 'secretpassword' );
|
no_proxy : Get/Set domains to not use proxy for
$das ->no_proxy( 'ebi.ac.uk' , 'localhost' );
OR
$das ->no_proxy( [ 'ebi.ac.uk' , 'localhost' ] );
Always returns an arrayref
|
$das ->user_agent( 'GroovyDAS/1.0' );
|
timeout : Get/Set timeout
caching : Get/Set caching
callback : Get/Set callback code ref
basename : Get base URL(s) of service
$das ->basename(optional $dsn );
|
dsn : Get/Set DSN
Or, if you want to add to the existing dsn list and you're feeling sneaky...
|
Note this call is 'dsns' , as differentiated from 'dsn' which is the current configured source
my $src_data = $das ->dsns();
|
entry_points : Retrieve the list of entry_points for this source
e.g. chromosomes and associated information (e.g. sequence length and version)
my $entry_points = $das ->entry_points();
|
Types of argument for 'types', 'features', 'sequence' calls:
Segment Id:
'1'
Segment Id with range:
'1:1,1000'
Segment Id with range and type:
{
'segment' => '1:1,1000' ,
'type' => 'exon' ,
}
Multiple Ids with ranges and types:
[
{
'segment' => '1:1,1000' ,
'type' => 'exon' ,
},
{
'segment' => '2:1,1000' ,
'type' => 'exon' ,
},
]
See DAS specifications for other parameters
|
types : Find out about different data types available from this source
my $types = $das ->types();
Retrieve the types of data available for this source
e.g. 32k_cloneset, karyotype, swissprot
|
features : Retrieve features from a segment
e.g. clones on a chromosome
my $feature_data1 = $das ->features( '1:1,100000' );
my $feature_data2 = $das ->features([ '1:1,100000' , '2:20435000,21435000' ]);
my $feature_data3 = $das ->features({
'segment' => '1:1,1000' ,
'type' => 'karyotype' ,
});
my $feature_data4 = $das ->features([
{ 'segment' => '1:1,1000000' , 'type' => 'karyotype' ,},
{ 'segment' => '2:1,1000000' ,},
{ 'group_id' => 'OTTHUMG00000036084' ,},
]);
my $callback = sub {
my $struct = shift ;
print { *STDERR } Dumper( $struct );
};
$das ->callback( $callback );
$das ->features( '1:1,1000000' );
$das ->features( '1:1,1000000' , $callback );
$das ->features([ '1:1,1000000' , '2:1,1000000' , '3:1,1000000' ], $callback );
$das ->features([{ 'group_id' => 'OTTHUMG00000036084' }, '2:1,1000000' , '3:1,1000000' ], $callback );
|
alignment : Retrieve protein alignment data for a query. This can be a multiple sequence alignment or pairwise alignment. Note - this has not been tested for structural alignments as there is currently no Das source avialable.
my $alignment = $das ->alignment({ query => 'Q01234' });
|
structure : Retrieve known structure (i.e. PDB) for a query
my $structure = $das ->structure({ query => 'pdb_id' });
|
my $sources = $das ->source;
|
sequence : Retrieve sequence data for a segment (probably dna or protein)
my $sequence = $das ->sequence( '2:1,1000' );
|
stylesheet : Retrieve stylesheet data
my $style_data = $das ->stylesheet();
my $style_data2 = $das ->stylesheet( $callback );
|
statuscodes : Retrieve HTTP status codes for request URLs
my $code = $das ->statuscodes( $url );
my $code_hashref = $das ->statuscodes();
|
specversions : Retrieve a server's DAS specification version for a request URL
my $version = $das ->specversions( $url );
my $version_hashref = $das ->specversions();
|
max_hosts set number of running concurrent host connections
THIS METHOD IS NOW DEPRECATED AND HAS NO EFFECT
$das ->max_hosts(7);
print $das ->max_hosts();
|
max_req set number of running concurrent requests per host
THIS METHOD IS NOW DEPRECATED AND HAS NO EFFECT
$das ->max_req(5);
print $das ->max_req();
|
registry : Get/Set accessor for DAS-Registry service URLs
my $registry_arrayref = $biodaslite ->registry();
|
my $sources_ref = $biodaslite ->registry_sources();
my $sources_ref = $biodaslite ->registry_sources({
'capability' => [ 'features' , 'stylesheet' ],
});
my $sources_ref = $biodaslite ->registry_sources({
'category' => [ 'Protein Sequence' ],
});
|
build_queries
Constructs an arrayref of DAS requests including parameters for each call
build_requests
Constructs the WWW::Curl callbacks
postprocess
Applies processing to the result set, e.g. removal of whitespace from sequence responses.
DESCRIPTION
This module is an implementation of a client for the DAS protocol (XML over HTTP primarily for biological-data).
DEPENDENCIES
- strict
-
- warnings
-
- WWW::Curl
-
- HTTP::Response
-
- Carp
-
- English
-
- Readonly
-
DIAGNOSTICS
Set $Bio::Das::Lite::DEBUG = 1;
|
CONFIGURATION AND ENVIRONMENT
INCOMPATIBILITIES
BUGS AND LIMITATIONS
The max_req and max_hosts methods are now deprecated and have no effect.
|
SEE ALSO
DAS Specifications at: http://biodas.org/documents/spec.html
ProServer (A DAS Server implementation also by the author) at: http://www.sanger.ac.uk/proserver/
The venerable Bio::Das suite (CPAN and http://www.biodas.org/download/Bio::Das/).
The DAS Registry at: http://das.sanger.ac.uk/registry/
AUTHOR
Roger Pettett, <rpettett@cpan.org>
LICENSE AND COPYRIGHT
Copyright (C) 2007 GRL, by Roger Pettett
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.