Bio::Das::Lite(3pm)
π Bio::Das::Lite π
okay so bestie, meet Bio::Das::Lite β a Perl extension for the DAS (HTTP+XML) Protocol and yes it's over at http://biodas.org/ π¦
β¨ VERSION β¨
See $Bio::Das::Lite::VERSION π
πΈ SYNOPSIS πΈ
use Bio::Das::Lite;
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('http://das.ensembl.org/das/ensembl1834');
my $das = Bio::Das::Lite->new({
'timeout' => 60,
'dsn' => 'http://user:pass@das.ensembl.org/das/ensembl1834',
'http_proxy' => 'http://user:pass@webcache.local.com:3128/',
});
the options you can pass are literally these, no cap:
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
defaults to 'http://das.sanger.ac.uk/registry/services/das')
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
it's giving new but with β¨registry energyβ¨ β same as new up there, except it also supports capability and category in the hashref you hand it, and it uses those to go query the DAS registry and set up the DSNs accordingly. slay π
my $das = Bio::Das::Lite->new_from_registry({
'capability' => ['features'],
'category' => ['Protein Sequence'],
});
so the options are all of the above, PLUS:
Options are as above, plus
capability OR capabilities (optional arrayref of capabilities)
category (optional arrayref of categories)
for the full list of capabilities and categories, go look here bestie:
http://das.sanger.ac.uk/registry/
and plot twist: category can optionally be a full coordinate system name, which lets you restrict things even further by authority, version and species. like:
'Protein Sequence' OR
'UniProt,Protein Sequence' OR
'GRCh_37,Chromosome,Homo sapiens'
π http_proxy : Get/Set http_proxy
$das->http_proxy('http://user:pass@squid.myco.com:3128/');
π proxy_user : Get/Set proxy username for authenticating forward-proxies
you only need this if you didn't already put the username in when you set http_proxy, iykyk π«Ά
$das->proxy_user('myusername');
π proxy_pass : Get/Set proxy password for authenticating forward-proxies
and you only need this one if you didn't already drop the password in when you set 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, periodt β¨
π user_agent : Get/Set user-agent for request headers
$das->user_agent('GroovyDAS/1.0');
π timeout : Get/Set timeout
$das->timeout(30);
π caching : Get/Set caching
$das->caching(1);
π callback : Get/Set callback code ref
$das->callback(sub { });
π basename : Get base URL(s) of service
$das->basename(optional $dsn);
π dsn : Get/Set DSN
$das->dsn('http://das.ensembl.org/das/ensembl1834/'); # give dsn (scalar or arrayref) here if not specified in new()
or, if you wanna add to the dsn list you already got and you're feeling sneaky about itβ¦ π
push @{$das->dsn}, 'http://my.server/das/additionalsource';
π dsns : Retrieve information about other sources served from this server.
heads up: this one is dsns (with the s, bestie), which is a whole different thing from dsn, aka the source you've currently got configured. the way that they're literally one letter apartβ¦ π
my $src_data = $das->dsns();
π entry_points : Retrieve the list of entry_points for this source
like chromosomes and all their little details (sequence length, version, the whole vibe) π§¬
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',
},
]
for other parameters, check the DAS specifications π
π types : Find out about different data types available from this source
my $types = $das->types(); # takes optional args - see DAS specs
retrieves the types of data available for this source β think 32k_cloneset, karyotype, swissprot π¦
π features : Retrieve features from a segment
like clones on a chromosome, iconic behaviour honestly:
#########
# Different ways to fetch features -
#
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',
# optional args - see DAS Spec
});
my $feature_data4 = $das->features([
{'segment' => '1:1,1000000','type' => 'karyotype',},
{'segment' => '2:1,1000000',},
{'group_id' => 'OTTHUMG00000036084',},
]);
and now, the feature fetch with callback version β¨
#########
# Feature fetch with callback
#
my $callback = sub {
my $struct = shift;
print {*STDERR} Dumper($struct);
};
# then:
$das->callback($callback);
$das->features('1:1,1000000');
# or:
$das->features('1:1,1000000', $callback);
# or:
$das->features(['1:1,1000000', '2:1,1000000', '3:1,1000000'], $callback);
# or:
$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'});
π sources : Retrieves the list of sources form the DAS registry, via a DAS call.
my $sources = $das->source;
π sequence : Retrieve sequence data for a segment (probably dna or protein)
my $sequence = $das->sequence('2:1,1000'); # segment:start,stop (e.g. chromosome 2, bases 1 to 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); # e.g. 1.53, 1.6, 1.6E
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
$biodaslite->registry('http://www.dasregistry.org/das');
my $registry_arrayref = $biodaslite->registry();
π registry_sources : Arrayref of dassource objects from the configured registry services
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). fr fr that's the whole vibe π§¬β¨
π DEPENDENCIES π
strict
warnings
WWW::Curl
HTTP::Response
Carp
English
Readonly
π¦ DIAGNOSTICS π¦
Set $Bio::Das::Lite::DEBUG = 1;
π CONFIGURATION AND ENVIRONMENT π
(nothing here bestie, it's literally an empty section and we respect that)
π INCOMPATIBILITIES π
(also empty, no drama here)
π BUGS AND LIMITATIONS π
Themax_reqandmax_hostsmethods 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::Dassuite (CPAN andhttp://www.biodas.org/download/Bio::Das/). - The DAS Registry at:
http://das.sanger.ac.uk/registry/
πΈ AUTHOR πΈ
Roger Pettett, <rpettett@cpan.org> β the icon, the moment, the legend π«Ά
π 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.
okay that's the whole page bestie, no notes π
β¨ this was perl v5.32.0 energy, dated 2020-11-27, and it's the Bio::Das::Lite(3pm) manual β go forth and query some DAS sources, you've got this π¦ππ
π¦ where this page comes from
- debian bookworm: libbio-das-lite-perl 2.11-8 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu jammy: libbio-das-lite-perl 2.11-8 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libbio-das-lite-perl 2.11-8 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms