[med-svn] [Git][med-team/libbio-db-ncbihelper-perl][upstream] New upstream version 1.7.6
Michael R. Crusoe
gitlab at salsa.debian.org
Sat Jan 4 11:53:54 GMT 2020
Michael R. Crusoe pushed to branch upstream at Debian Med / libbio-db-ncbihelper-perl
Commits:
620c9401 by Michael R. Crusoe at 2020-01-04T12:44:49+01:00
New upstream version 1.7.6
- - - - -
16 changed files:
- Changes
- META.json
- META.yml
- Makefile.PL
- dist.ini
- lib/Bio/DB/EntrezGene.pm
- lib/Bio/DB/GenBank.pm
- lib/Bio/DB/GenPept.pm
- lib/Bio/DB/NCBIHelper.pm
- lib/Bio/DB/Query/GenBank.pm
- lib/Bio/DB/Taxonomy/entrez.pm
- t/EntrezGene.t
- t/GenBank.t
- t/GenPept.t
- t/Query-Genbank.t
- t/Taxonomy.t
Changes:
=====================================
Changes
=====================================
@@ -1,6 +1,15 @@
Summary of important user-visible changes for Bio-DB-NCBIHelper
---------------------------------------------------------------
+1.7.6 2019-12-07 16:11:22-06:00 America/Chicago
+ * Requires Bio::DB::WebDBSeqI v1.7.7
+
+1.7.5 2019-11-29 16:55:33-06:00 America/Chicago
+ * Explicitly add Bio::SeqIO::entrezgene and LWP::Protocol::https as dependencies
+ * Actually get '-email' to work which requires overriding get_seq_stream
+ * Fix remaining delay settings in tests which are causing issues during peak
+ NCBI times
+
1.7.4 2019-03-10 21:29:52-05:00 America/Chicago
* Switch away from Bio::Root::Test
* Add '-email' parameter, which allows lower delay interval at NCBI (currently
=====================================
META.json
=====================================
@@ -30,18 +30,20 @@
},
"runtime" : {
"requires" : {
- "Bio::DB::Query::WebQuery" : "0",
+ "Bio::DB::Query::WebQuery" : "v1.7.7",
"Bio::DB::Taxonomy" : "0",
"Bio::DB::WebDBSeqI" : "0",
"Bio::Root::IO" : "0",
"Bio::Root::Root" : "0",
"Bio::SeqIO" : "0",
+ "Bio::SeqIO::entrezgene" : "0",
"Bio::Taxon" : "0",
"Bio::WebAgent" : "0",
"CGI" : "0",
"Cache::FileCache" : "0",
"Getopt::Long" : "0",
"HTTP::Request::Common" : "0",
+ "LWP::Protocol::https" : "0",
"LWP::UserAgent" : "0",
"URI" : "0",
"URI::Escape" : "0",
@@ -79,7 +81,7 @@
"web" : "https://github.com/bioperl/bio-db-ncbihelper"
}
},
- "version" : "1.7.4",
+ "version" : "1.7.6",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.028001"
@@ -294,7 +296,7 @@
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "Bio-DB-NCBIHelper-v1.7.4",
+ "tag" : "Bio-DB-NCBIHelper-v1.7.6",
"tag_format" : "%N-v%v",
"tag_message" : "%N-v%v"
},
@@ -309,6 +311,17 @@
"name" : "@BioPerl/Git::Tag",
"version" : "2.045"
},
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "runtime",
+ "type" : "requires"
+ }
+ },
+ "name" : "Prereqs",
+ "version" : "6.012"
+ },
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
=====================================
META.yml
=====================================
@@ -24,18 +24,20 @@ meta-spec:
version: '1.4'
name: Bio-DB-NCBIHelper
requires:
- Bio::DB::Query::WebQuery: '0'
+ Bio::DB::Query::WebQuery: v1.7.7
Bio::DB::Taxonomy: '0'
Bio::DB::WebDBSeqI: '0'
Bio::Root::IO: '0'
Bio::Root::Root: '0'
Bio::SeqIO: '0'
+ Bio::SeqIO::entrezgene: '0'
Bio::Taxon: '0'
Bio::WebAgent: '0'
CGI: '0'
Cache::FileCache: '0'
Getopt::Long: '0'
HTTP::Request::Common: '0'
+ LWP::Protocol::https: '0'
LWP::UserAgent: '0'
URI: '0'
URI::Escape: '0'
@@ -49,7 +51,7 @@ resources:
bugtracker: https://github.com/bioperl/bio-db-ncbihelper/issues
homepage: https://metacpan.org/release/Bio-DB-NCBIHelper
repository: git://github.com/bioperl/bio-db-ncbihelper.git
-version: 1.7.4
+version: 1.7.6
x_Dist_Zilla:
perl:
version: '5.028001'
@@ -218,7 +220,7 @@ x_Dist_Zilla:
branch: ~
changelog: Changes
signed: 0
- tag: Bio-DB-NCBIHelper-v1.7.4
+ tag: Bio-DB-NCBIHelper-v1.7.6
tag_format: '%N-v%v'
tag_message: '%N-v%v'
Dist::Zilla::Role::Git::Repo:
@@ -228,6 +230,14 @@ x_Dist_Zilla:
time_zone: local
name: '@BioPerl/Git::Tag'
version: '2.045'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: runtime
+ type: requires
+ name: Prereqs
+ version: '6.012'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
=====================================
Makefile.PL
=====================================
@@ -22,18 +22,20 @@ my %WriteMakefileArgs = (
"MIN_PERL_VERSION" => "5.006",
"NAME" => "Bio::DB::NCBIHelper",
"PREREQ_PM" => {
- "Bio::DB::Query::WebQuery" => 0,
+ "Bio::DB::Query::WebQuery" => "1.7.7",
"Bio::DB::Taxonomy" => 0,
"Bio::DB::WebDBSeqI" => 0,
"Bio::Root::IO" => 0,
"Bio::Root::Root" => 0,
"Bio::SeqIO" => 0,
+ "Bio::SeqIO::entrezgene" => 0,
"Bio::Taxon" => 0,
"Bio::WebAgent" => 0,
"CGI" => 0,
"Cache::FileCache" => 0,
"Getopt::Long" => 0,
"HTTP::Request::Common" => 0,
+ "LWP::Protocol::https" => 0,
"LWP::UserAgent" => 0,
"URI" => 0,
"URI::Escape" => 0,
@@ -53,7 +55,7 @@ my %WriteMakefileArgs = (
"Test::Most" => 0,
"Test::RequiresInternet" => 0
},
- "VERSION" => "1.7.4",
+ "VERSION" => "1.7.6",
"test" => {
"TESTS" => "t/*.t"
}
@@ -61,12 +63,13 @@ my %WriteMakefileArgs = (
my %FallbackPrereqs = (
- "Bio::DB::Query::WebQuery" => 0,
+ "Bio::DB::Query::WebQuery" => "1.7.7",
"Bio::DB::Taxonomy" => 0,
"Bio::DB::WebDBSeqI" => 0,
"Bio::Root::IO" => 0,
"Bio::Root::Root" => 0,
"Bio::SeqIO" => 0,
+ "Bio::SeqIO::entrezgene" => 0,
"Bio::Taxon" => 0,
"Bio::WebAgent" => 0,
"CGI" => 0,
@@ -76,6 +79,7 @@ my %FallbackPrereqs = (
"HTTP::Request::Common" => 0,
"IO::Handle" => 0,
"IPC::Open3" => 0,
+ "LWP::Protocol::https" => 0,
"LWP::UserAgent" => 0,
"Test::Exception" => 0,
"Test::More" => 0,
=====================================
dist.ini
=====================================
@@ -1,5 +1,5 @@
name = Bio-DB-NCBIHelper
-version = 1.7.4
+version = 1.7.6
author = Aaron Mackey <amackey at virginia.edu>
author = Brian Osborne <bosborne at alum.mit.edu>
author = Jason Stajich <jason at bioperl.org>
@@ -13,3 +13,8 @@ license = Perl_5
-remove = PodWeaver
-remove = Test::EOL
-remove = Test::NoTabs
+
+[Prereqs]
+Bio::DB::Query::WebQuery = 1.7.7
+Bio::SeqIO::entrezgene = 0
+LWP::Protocol::https = 0
=====================================
lib/Bio/DB/EntrezGene.pm
=====================================
@@ -93,7 +93,7 @@ methods. Internal methods are usually preceded with a _
# Let the code begin...
package Bio::DB::EntrezGene;
-$Bio::DB::EntrezGene::VERSION = '1.7.4';
+$Bio::DB::EntrezGene::VERSION = '1.7.6';
use strict;
use vars qw($DEFAULTFORMAT $DEFAULTMODE %PARAMSTRING);
=====================================
lib/Bio/DB/GenBank.pm
=====================================
@@ -165,7 +165,7 @@ preceded with a _
# Let the code begin...
package Bio::DB::GenBank;
-$Bio::DB::GenBank::VERSION = '1.7.4';
+$Bio::DB::GenBank::VERSION = '1.7.6';
use strict;
use vars qw(%PARAMSTRING $DEFAULTFORMAT $DEFAULTMODE);
=====================================
lib/Bio/DB/GenPept.pm
=====================================
@@ -93,7 +93,7 @@ methods. Internal methods are usually preceded with a _
# Let the code begin...
package Bio::DB::GenPept;
-$Bio::DB::GenPept::VERSION = '1.7.4';
+$Bio::DB::GenPept::VERSION = '1.7.6';
use strict;
use vars qw($DEFAULTFORMAT $DEFAULTMODE %PARAMSTRING);
=====================================
lib/Bio/DB/NCBIHelper.pm
=====================================
@@ -85,7 +85,7 @@ preceded with a _
# Let the code begin...
package Bio::DB::NCBIHelper;
-$Bio::DB::NCBIHelper::VERSION = '1.7.4';
+$Bio::DB::NCBIHelper::VERSION = '1.7.6';
use strict;
use Bio::DB::Query::GenBank;
@@ -261,6 +261,7 @@ sub get_request {
'-format' => $format,
'-email' => $email
);
+ $self->_sleep();
return $self->get_request(%qualifiers);
}
else {
@@ -269,6 +270,116 @@ sub get_request {
}
}
+=head2 get_seq_stream
+
+ Title : get_seq_stream
+ Usage : my $seqio = $self->get_seq_stream(%qualifiers)
+ Function: builds a url and queries a web db
+ Returns : a Bio::SeqIO stream capable of producing sequence
+ Args : %qualifiers = a hash qualifiers that the implementing class
+ will process to make a url suitable for web querying
+
+=cut
+
+sub get_seq_stream {
+ my ($self, %qualifiers) = @_;
+ my ($rformat, $ioformat) = $self->request_format();
+ my $seen = 0;
+ foreach my $key ( keys %qualifiers ) {
+ if( $key =~ /format/i ) {
+ $rformat = $qualifiers{$key};
+ $seen = 1;
+ }
+ }
+ $qualifiers{'-format'} = $rformat if( !$seen);
+ ($rformat, $ioformat) = $self->request_format($rformat);
+ # These parameters are implemented for Bio::DB::GenBank objects only
+ if($self->isa('Bio::DB::GenBank')) {
+ $self->seq_start() && ($qualifiers{'-seq_start'} = $self->seq_start());
+ $self->seq_stop() && ($qualifiers{'-seq_stop'} = $self->seq_stop());
+ $self->strand() && ($qualifiers{'-strand'} = $self->strand());
+ $self->email() && ($qualifiers{'-email'} = $self->email());
+ defined $self->complexity() && ($qualifiers{'-complexity'} = $self->complexity());
+ }
+ my $request = $self->get_request(%qualifiers);
+ $request->proxy_authorization_basic($self->authentication)
+ if ( $self->authentication);
+ $self->debug("request is ". $request->as_string(). "\n");
+
+ # workaround for MSWin systems
+ $self->retrieval_type('io_string') if $self->retrieval_type =~ /pipeline/ && $^O =~ /^MSWin/;
+
+ if ($self->retrieval_type =~ /pipeline/) {
+ # Try to create a stream using POSIX fork-and-pipe facility.
+ # this is a *big* win when fetching thousands of sequences from
+ # a web database because we can return the first entry while
+ # transmission is still in progress.
+ # Also, no need to keep sequence in memory or in a temporary file.
+ # If this fails (Windows, MacOS 9), we fall back to non-pipelined access.
+
+ # fork and pipe: _stream_request()=><STREAM>
+ my ($result,$stream) = $self->_open_pipe();
+
+ if (defined $result) {
+ $DB::fork_TTY = File::Spec->devnull; # prevents complaints from debugger
+ if (!$result) { # in child process
+ $self->_stream_request($request,$stream);
+ POSIX::_exit(0); #prevent END blocks from executing in this forked child
+ }
+ else {
+ return Bio::SeqIO->new('-verbose' => $self->verbose,
+ '-format' => $ioformat,
+ '-fh' => $stream);
+ }
+ }
+ else {
+ $self->retrieval_type('io_string');
+ }
+ }
+
+ if ($self->retrieval_type =~ /temp/i) {
+ my $dir = $self->io->tempdir( CLEANUP => 1);
+ my ( $fh, $tmpfile) = $self->io()->tempfile( DIR => $dir );
+ close $fh;
+ my $resp = $self->_request($request, $tmpfile);
+ if( ! -e $tmpfile || -z $tmpfile || ! $resp->is_success() ) {
+ $self->throw("WebDBSeqI Error - check query sequences!\n");
+ }
+ $self->postprocess_data('type' => 'file',
+ 'location' => $tmpfile);
+ # this may get reset when requesting batch mode
+ ($rformat,$ioformat) = $self->request_format();
+ if( $self->verbose > 0 ) {
+ open my $ERR, '<', $tmpfile or $self->throw("Could not read file '$tmpfile': $!");
+ while(<$ERR>) { $self->debug($_);}
+ close $ERR;
+ }
+
+ return Bio::SeqIO->new('-verbose' => $self->verbose,
+ '-format' => $ioformat,
+ '-file' => $tmpfile);
+ }
+
+ if ($self->retrieval_type =~ /io_string/i ) {
+ my $resp = $self->_request($request);
+ my $content = $resp->content_ref;
+ $self->debug( "content is $$content\n");
+ if (!$resp->is_success() || length($$content) == 0) {
+ $self->throw("WebDBSeqI Error - check query sequences!\n");
+ }
+ ($rformat,$ioformat) = $self->request_format();
+ $self->postprocess_data('type'=> 'string',
+ 'location' => $content);
+ $self->debug( "str is $$content\n");
+ return Bio::SeqIO->new('-verbose' => $self->verbose,
+ '-format' => $ioformat,
+ '-fh' => new IO::String($$content));
+ }
+
+ # if we got here, we don't know how to handle the retrieval type
+ $self->throw("retrieval type " . $self->retrieval_type .
+ " unsupported\n");
+}
=head2 get_Stream_by_batch
=====================================
lib/Bio/DB/Query/GenBank.pm
=====================================
@@ -1,7 +1,7 @@
#
# BioPerl module for Bio::DB::Query::GenBank.pm
#
-# Please direct questions and support issues to <bioperl-l at bioperl.org>
+# Please direct questions and support issues to <bioperl-l at bioperl.org>
#
# Cared for by Lincoln Stein <lstein at cshl.org>
#
@@ -62,15 +62,15 @@ is much appreciated.
bioperl-l at bioperl.org - General discussion
http://bioperl.org/wiki/Mailing_lists - About the mailing lists
-=head2 Support
+=head2 Support
Please direct usage questions or support issues to the mailing list:
I<bioperl-l at bioperl.org>
-rather than to the module maintainer directly. Many experienced and
-reponsive experts will be able look at the problem and quickly
-address it. Please include a thorough description of the problem
+rather than to the module maintainer directly. Many experienced and
+reponsive experts will be able look at the problem and quickly
+address it. Please include a thorough description of the problem
with code and data examples if at all possible.
=head2 Reporting Bugs
@@ -96,7 +96,7 @@ preceded with a _
# Let the code begin...
package Bio::DB::Query::GenBank;
-$Bio::DB::Query::GenBank::VERSION = '1.7.4';
+$Bio::DB::Query::GenBank::VERSION = '1.7.6';
use strict;
use URI::Escape 'uri_unescape';
use Bio::DB::NCBIHelper;
@@ -104,7 +104,7 @@ use Bio::DB::NCBIHelper;
#use constant EPOST => $Bio::DB::NCBIHelper::HOSTBASE . '/entrez/eutils/epost.fcgi';
#use constant ESEARCH => $Bio::DB::NCBIHelper::HOSTBASE . '/entrez/eutils/esearch.fcgi';
-# the reference to the our variable of the $Bio::DB::NCBIHelper::HOSTBASE doesn't seem to work in
+# the reference to the our variable of the $Bio::DB::NCBIHelper::HOSTBASE doesn't seem to work in
# the constant definition in perl 5.10.1 or 5.16.3
use constant EPOST => '/entrez/eutils/epost.fcgi';
use constant ESEARCH => '/entrez/eutils/esearch.fcgi';
@@ -112,11 +112,12 @@ use constant DEFAULT_DB => 'protein';
use constant MAXENTRY => 100;
use vars qw(@ATTRIBUTES);
+our $REQUEST_DELAY = 4;
use base qw(Bio::DB::Query::WebQuery);
BEGIN {
- @ATTRIBUTES = qw(db reldate mindate maxdate datetype maxids);
+ @ATTRIBUTES = qw(db reldate mindate maxdate datetype maxids email);
for my $method (@ATTRIBUTES) {
eval <<END;
sub $method {
@@ -144,6 +145,10 @@ END
-ids array ref of gids (overrides query)
-maxids the maximum number of IDs you wish to collect
(defaults to 100)
+ -email Email address; required if you want to decrease
+ delay time between queries
+ -delay Delay time (in seconds). Note NCBI policy requires 4
+ seconds between requests unless an email is provided
This method creates a new query object. Typically you will specify a
-db and a -query argument, possibly modified by -mindate, -maxdate, or
@@ -189,13 +194,15 @@ receive when you generate a SeqIO stream from the query.
sub new {
my $class = shift;
my $self = $class->SUPER::new(@_);
- my ($query,$db,$reldate,$mindate,$maxdate,$datetype,$ids,$maxids)
- = $self->_rearrange([qw(QUERY DB RELDATE MINDATE MAXDATE DATETYPE IDS MAXIDS)], at _);
+ my ($query,$db,$reldate,$mindate,$maxdate,$datetype,$ids,$maxids,$email,$delay)
+ = $self->_rearrange([qw(QUERY DB RELDATE MINDATE MAXDATE DATETYPE IDS
+ MAXIDS EMAIL DELAY)], at _);
$self->db($db || DEFAULT_DB);
$reldate && $self->reldate($reldate);
$mindate && $self->mindate($mindate);
$maxdate && $self->maxdate($maxdate);
$maxids && $self->maxids($maxids);
+ $email && $self->email($email);
$datetype ||= 'mdat';
$datetype && $self->datetype($datetype);
$self;
@@ -222,6 +229,7 @@ sub cookie {
}
else {
+ $self->_sleep();
$self->_run_query;
@{$self}{qw(_cookie _querynum)};
}
@@ -243,11 +251,14 @@ sub _request_parameters {
my @params = map {eval("\$self->$_") ? ($_ => eval("\$self->$_")) : () } @ATTRIBUTES;
push @params,('usehistory'=>'y','tool'=>'bioperl');
$method = 'get';
-
+
$base = $Bio::DB::NCBIHelper::HOSTBASE.ESEARCH; # this seems to need to be dynamic
push @params,('term' => $self->query);
# Providing 'retmax' limits queries to 500 sequences ?? I don't think so LS
push @params,('retmax' => $self->maxids || MAXENTRY);
+ if ($self->email) {
+ push @params,('email' => $self->email);
+ }
# And actually, it seems that we need 'retstart' equal to 0 ?? I don't think so LS
# push @params, ('retstart' => 0);
@@ -276,6 +287,7 @@ sub count {
return $d;
}
else {
+ $self->_sleep();
$self->_run_query;
return $self->{'_count'};
}
@@ -357,4 +369,22 @@ sub _generate_id_string {
} @$ids));
}
+=head2 delay_policy
+
+ Title : delay_policy
+ Usage : $secs = $self->delay_policy
+ Function: NCBI requests a delay of 4 seconds between requests unless email is
+ provided. This method implements a 4 second delay; use 'delay()' to
+ override, though understand if no email is provided we are not
+ responsible for users being IP-blocked by NCBI
+ Returns : number of seconds to delay
+ Args : none
+
+=cut
+
+sub delay_policy {
+ my $self = shift;
+ return $REQUEST_DELAY;
+}
+
1;
=====================================
lib/Bio/DB/Taxonomy/entrez.pm
=====================================
@@ -101,7 +101,7 @@ Internal methods are usually preceded with a _
# Let the code begin...
package Bio::DB::Taxonomy::entrez;
-$Bio::DB::Taxonomy::entrez::VERSION = '1.7.4';
+$Bio::DB::Taxonomy::entrez::VERSION = '1.7.6';
use vars qw($EntrezLocation $UrlParamSeparatorValue %EntrezParams
$EntrezGet $EntrezSummary $EntrezFetch %SequenceParams
$XMLTWIG $DATA_CACHE $RELATIONS);
@@ -168,7 +168,7 @@ sub _initialize {
$self->SUPER::_initialize(@_);
- my ($location,$params) = $self->_rearrange([qw(LOCATION PARAMS)], at _);
+ my ($location,$params,$email) = $self->_rearrange([qw(LOCATION PARAMS EMAIL)], at _);
if( $params ) {
if( ref($params) !~ /HASH/i ) {
@@ -178,6 +178,9 @@ sub _initialize {
} else {
$params = \%EntrezParams;
}
+ if ($email) {
+ $params->{email} = $email;
+ }
$self->entrez_params($params);
$self->entrez_url($location || $EntrezLocation );
}
@@ -593,7 +596,6 @@ sub entrez_params{
return %$f;
}
-
=head2 Bio::DB::WebBase methods
=head2 proxy_string
@@ -667,6 +669,7 @@ sub _run_query {
# Given an eutil url, run the eutil query and parse the response into an
# XML Twig object
my ($self, $url) = @_;
+ $self->sleep();
my $response = $self->get($url);
if ($response->is_success) {
$response = $response->content;
=====================================
t/EntrezGene.t
=====================================
@@ -10,8 +10,18 @@ BEGIN {
use_ok('Bio::DB::EntrezGene');
}
+my %params;
+
+if (defined $ENV{BIOPERLEMAIL}) {
+ $params{'-email'} = $ENV{BIOPERLEMAIL};
+ $params{'-delay'} = 2;
+}
+
+$params{'-verbose'} = $ENV{BIOPERLDEBUG};
+
+
my ($gb, $seq, $seqio);
-ok $gb = Bio::DB::EntrezGene->new(-retrievaltype => 'tempfile', -delay => 0);
+ok $gb = Bio::DB::EntrezGene->new(-retrievaltype => 'tempfile', %params);
#
# Bio::DB::EntrezGene
=====================================
t/GenBank.t
=====================================
@@ -21,11 +21,20 @@ my %expected_lengths = (
my ($gb, $seq, $seqio, $seqin);
+my %params;
+
+if (defined $ENV{BIOPERLEMAIL}) {
+ $params{'-email'} = $ENV{BIOPERLEMAIL};
+ $params{'-delay'} = 2;
+}
+
+$params{'-verbose'} = $ENV{BIOPERLDEBUG};
+
#
# Bio::DB::GenBank
#
-ok $gb = Bio::DB::GenBank->new(), 'Bio::DB::GenBank';
+ok $gb = Bio::DB::GenBank->new(%params), 'Bio::DB::GenBank';
# get a single seq
SKIP: {
@@ -48,7 +57,7 @@ $seq = $seqio = undef;
# batch mode
SKIP: {
eval {$seqio = $gb->get_Stream_by_id([qw(J00522 AF303112 2981014)]);};
- skip "Batch access test failed for Genbank. Skipping those tests", 4 if $@;
+ skip "Batch access test failed for Genbank. Skipping those tests: $@", 4 if $@;
my $done = 0;
while (my $s = $seqio->next_seq) {
is $s->length, $expected_lengths{$s->display_id}, $s->display_id;
@@ -61,23 +70,24 @@ SKIP: {
$seq = $seqio = undef;
# test the temporary file creation and fasta
-ok $gb = Bio::DB::GenBank->new('-format' => 'fasta', '-retrievaltype' => 'tempfile', '-delay' => 0);
+ok $gb = Bio::DB::GenBank->new('-format' => 'fasta', '-retrievaltype' => 'tempfile', %params),
+ "Tempfile tests";
SKIP: {
eval {$seq = $gb->get_Seq_by_id('J00522');};
- skip "Couldn't connect to complete GenBank tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests", 6 if $@;
+ skip "Couldn't connect to complete GenBank tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests: $@", 6 if $@;
# last part of id holds the key
- is $seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}, $seq->display_id;
+ is $seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}, "Check tmpfile: get_Seq_by_id:".$seq->display_id;
eval {$seq = $gb->get_Seq_by_acc('AF303112');};
- skip "Couldn't connect to complete GenBank tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests", 5 if $@;
+ skip "Couldn't connect to complete GenBank tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests: $@", 5 if $@;
# last part of id holds the key
- is $seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}, $seq->display_id;
+ is $seq->length, $expected_lengths{(split(/\|/,$seq->display_id))[-1]}, "Check tmpfile: get_Seq_by_acc:".$seq->display_id;
# batch mode requires genbank format
$gb->request_format("gb");
eval {$seqio = $gb->get_Stream_by_id([qw(J00522 AF303112 2981014)]);};
- skip "Couldn't connect to complete GenBank batch tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests", 4 if $@;
+ skip "Couldn't connect to complete GenBank batch tests with a tempfile with Bio::DB::GenBank.pm. Skipping those tests: $@", 4 if $@;
my $done = 0;
while (my $s = $seqio->next_seq) {
- is $s->length, $expected_lengths{$s->display_id};
+ is $s->length, $expected_lengths{$s->display_id}, "Check tmpfile: get_Stream_by_id:".$s->display_id;
undef $gb; # test the case where the db is gone,
# but a temp file should remain until seqio goes away.
$done++;
@@ -89,19 +99,19 @@ SKIP: {
$seq = $seqio = undef;
# test pipeline creation
-ok $gb = Bio::DB::GenBank->new('-retrievaltype' => 'pipeline', '-delay' => 0);
+ok $gb = Bio::DB::GenBank->new('-retrievaltype' => 'pipeline', %params), "Pipeline tests";
SKIP: {
eval {$seq = $gb->get_Seq_by_id('J00522');};
- skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests", 6 if $@;
- is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
+ skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests: $@", 6 if $@;
+ is $seq->length, $expected_lengths{$seq->display_id}, "Check pipeline: get_Seq_by_id:".$seq->display_id;
eval {$seq = $gb->get_Seq_by_acc('AF303112');};
- skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests", 5 if $@;
- is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
+ skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests: $@", 5 if $@;
+ is $seq->length, $expected_lengths{$seq->display_id}, "Check pipeline: get_Seq_by_acc:".$seq->display_id;
eval {$seqio = $gb->get_Stream_by_id([qw(J00522 AF303112 2981014)]);};
- skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests", 4 if $@;
+ skip "Couldn't connect to complete GenBank tests with a pipeline with Bio::DB::GenBank.pm. Skipping those tests: $@", 4 if $@;
my $done = 0;
while (my $s = $seqio->next_seq) {
- is $s->length, $expected_lengths{$s->display_id}, $s->display_id;
+ is $s->length, $expected_lengths{$s->display_id}, "Check pipeline: get_Stream_by_id:".$s->display_id;
undef $gb; # test the case where the db is gone,
# but the pipeline should remain until seqio goes away
$done++;
@@ -113,32 +123,32 @@ SKIP: {
$seq = $seqio = undef;
# test contig retrieval
-ok $gb = Bio::DB::GenBank->new('-delay' => 0, '-format' => 'gbwithparts');
+ok $gb = Bio::DB::GenBank->new('-format' => 'gbwithparts', %params);
SKIP: {
eval {$seq = $gb->get_Seq_by_id('JH374761');};
- skip "Couldn't connect to GenBank with Bio::DB::GenBank.pm. Skipping those tests", 3 if $@;
- is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
+ skip "Couldn't connect to GenBank with Bio::DB::GenBank.pm. Skipping those tests: $@", 3 if $@;
+ is $seq->length, $expected_lengths{$seq->display_id}, "Check contig: get_Seq_by_id:".$seq->display_id;
# now to check that postprocess_data in NCBIHelper catches CONTIG...
- ok $gb = Bio::DB::GenBank->new('-delay' => 0, '-format' => 'gb');
+ ok $gb = Bio::DB::GenBank->new('-format' => 'gb',%params);
eval {$seq = $gb->get_Seq_by_id('JH374761');};
- skip "Couldn't connect to GenBank with Bio::DB::GenBank.pm. Skipping those tests", 1 if $@;
- is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
+ skip "Couldn't connect to GenBank with Bio::DB::GenBank.pm. Skipping those tests: $@", 1 if $@;
+ is $seq->length, $expected_lengths{$seq->display_id}, "Check contig: get_Seq_by_acc".$seq->display_id;
}
$seq = $seqio = undef;
# bug 1405
my @result;
-ok $gb = Bio::DB::GenBank->new(-format => 'Fasta', -seq_start => 2, -seq_stop => 7);
+ok $gb = Bio::DB::GenBank->new(-format => 'Fasta', -seq_start => 2, -seq_stop => 7, %params);
SKIP: {
eval {$seq = $gb->get_Seq_by_acc("A11111");};
- skip "Couldn't connect to complete GenBank tests. Skipping those tests", 15 if $@;
+ skip "Couldn't connect to complete GenBank tests. Skipping those tests: $@", 15 if $@;
is $seq->length, 6;
# complexity tests
- ok $gb = Bio::DB::GenBank->new(-format => 'fasta', -complexity => 0);
+ ok $gb = Bio::DB::GenBank->new(-format => 'fasta', -complexity => 0, %params);
eval {$seqin = $gb->get_Stream_by_acc("21614549");};
- skip "Couldn't connect to complete GenBank tests. Skipping those tests", 13 if $@;
+ skip "Couldn't connect to complete GenBank tests. Skipping those tests: $@", 13 if $@;
my @result = (4366, 'dna', 620, 'protein');
# Test number is labile (dependent on remote results)
@@ -152,9 +162,9 @@ SKIP: {
# Real batch retrieval using epost/efetch
# these tests may change if integrated further into Bio::DB::Gen*
# Currently only useful for retrieving GI's via get_seq_stream
- $gb = Bio::DB::GenBank->new();
+ $gb = Bio::DB::GenBank->new(%params);
eval {$seqin = $gb->get_seq_stream(-uids => [4887706 ,431229, 147460], -mode => 'batch');};
- skip "Couldn't connect to complete GenBank batchmode epost/efetch tests. Skipping those tests", 8 if $@;
+ skip "Couldn't connect to complete GenBank batchmode epost/efetch tests. Skipping those tests: $@", 8 if $@;
my %result = ('M59757' => 12611 ,'X76083'=> 3140, 'J01670'=> 1593);
my $ct = 0;
=====================================
t/GenPept.t
=====================================
@@ -16,12 +16,21 @@ my %expected_lengths = (
'2AAA_YEAST' => 635
);
+my %params;
+
+if (defined $ENV{BIOPERLEMAIL}) {
+ $params{'-email'} = $ENV{BIOPERLEMAIL};
+ $params{'-delay'} = 2;
+}
+
+$params{'-verbose'} = $ENV{BIOPERLDEBUG};
+
my ($gb, $seq, $seqio);
#
# Bio::DB::GenPept
#
-ok $gb = Bio::DB::GenPept->new();
+ok $gb = Bio::DB::GenPept->new(%params);
SKIP: {
eval {$seqio = $gb->get_seq_stream(-uids => [2981015, 1621261, 195055], -mode => 'batch');};
skip "Couldn't connect to complete GenPept tests. Skipping those tests", 8 if $@;
@@ -41,7 +50,7 @@ SKIP: {
$seq = $seqio = undef;
-ok $gb = Bio::DB::GenPept->new('-delay' => 0);
+ok $gb = Bio::DB::GenPept->new(%params);
SKIP: {
eval {$seq = $gb->get_Seq_by_id('195055');};
skip "Couldn't connect to Genbank with Bio::DB::GenPept.pm. Skipping those tests: $@", 10 if $@;
=====================================
t/Query-Genbank.t
=====================================
@@ -23,17 +23,27 @@ my %expected_lengths = (
my ($gb, $seq, $seqio, $seqin, $query);
+my %params;
+
+if (defined $ENV{BIOPERLEMAIL}) {
+ $params{'-email'} = $ENV{BIOPERLEMAIL};
+ $params{'-delay'} = 2;
+}
+
+$params{'-verbose'} = $ENV{BIOPERLDEBUG};
+
# test query facility
ok $query = Bio::DB::Query::GenBank->new('-db' => 'nucleotide',
'-query' => 'Onchocerca volvulus[Organism]',
'-mindate' => '2002/1/1',
- '-maxdate' => '2002/12/31'), 'Bio::DB::Query::GenBank';
+ '-maxdate' => '2002/12/31', %params), 'Bio::DB::Query::GenBank';
+
SKIP: {
cmp_ok $query->count, '>', 0;
my @ids = $query->ids;
cmp_ok @ids, '>', 0;
is @ids, $query->count;
- ok $gb = Bio::DB::GenBank->new('-delay' => 0);
+ ok $gb = Bio::DB::GenBank->new(%params);
eval {$seqio = $gb->get_Stream_by_query($query);};
skip "Couldn't connect to complete GenBank query tests. Skipping those tests", 5 if $@;
my $done = 0;
@@ -51,13 +61,14 @@ $seq = $seqio = undef;
# test query facility (again)
ok $query = Bio::DB::Query::GenBank->new('-db' => 'nucleotide',
- '-ids' => [qw(J00522 AF303112 2981014)]);
+ '-ids' => [qw(J00522 AF303112 2981014)],
+ %params);
SKIP: {
cmp_ok $query->count, '>', 0;
my @ids = $query->ids;
cmp_ok @ids, '>', 0;
is @ids, $query->count;
- $gb = Bio::DB::GenBank->new('-delay' => 0);
+ $gb = Bio::DB::GenBank->new(%params);
eval {$seqio = $gb->get_Stream_by_query($query);};
skip "Couldn't connect to complete GenBank query tests. Skipping those tests: $@", 4 if $@;
my $done = 0;
@@ -74,5 +85,6 @@ $seq = $seqio = undef;
# and yet again, for bug 2133
$query = Bio::DB::Query::GenBank->new('-query' => 'AF303112',
- '-ids' => [qw(J00522 AF303112 2981014)]);
+ '-ids' => [qw(J00522 AF303112 2981014)],
+ %params);
is $query->query, 'J00522[PACC]|AF303112[PACC]|2981014[UID]';
=====================================
t/Taxonomy.t
=====================================
@@ -7,14 +7,21 @@ use Test::RequiresInternet;
use_ok('Bio::DB::Taxonomy');
+my %params;
+
+if (defined $ENV{BIOPERLEMAIL}) {
+ $params{'-email'} = $ENV{BIOPERLEMAIL};
+ $params{'-delay'} = 1;
+}
+
{
- ok my $db = Bio::DB::Taxonomy->new(-source => 'entrez');
+ ok my $db = Bio::DB::Taxonomy->new(-source => 'entrez', %params);
isa_ok $db, 'Bio::DB::Taxonomy::entrez';
isa_ok $db, 'Bio::DB::Taxonomy';
}
{
- my $db = Bio::DB::Taxonomy->new(-source => 'entrez');
+ my $db = Bio::DB::Taxonomy->new(-source => 'entrez', %params);
my $id;
my $n;
@@ -106,7 +113,6 @@ use_ok('Bio::DB::Taxonomy');
@ids = $db->get_taxonids('Rhodotorula');
cmp_ok @ids, '>=' , 1;
- diag(join(",", @ids));
# From NCBI: Taxid 592558 was merged into taxid 5533 on June 16, 2017
is( (grep { $_ == 592558 } @ids), 0, 'Value no longer found');
ok grep { $_ == 5533 } @ids;
@@ -115,7 +121,7 @@ use_ok('Bio::DB::Taxonomy');
# we can recursively fetch all descendents of a taxon
{
- my $db = Bio::DB::Taxonomy->new(-source=>"entrez");
+ my $db = Bio::DB::Taxonomy->new(-source=>"entrez", %params);
$db->get_taxon(10090);
my $lca = $db->get_taxon(314146);
@@ -126,7 +132,7 @@ use_ok('Bio::DB::Taxonomy');
# tests for #182
{
- my $db = Bio::DB::Taxonomy->new(-source=>"entrez");
+ my $db = Bio::DB::Taxonomy->new(-source=>"entrez", %params);
my @taxa = qw(viruses Deltavirus unclassified plasmid);
@@ -151,7 +157,7 @@ use_ok('Bio::DB::Taxonomy');
# tests for #212
{
- my $db = Bio::DB::Taxonomy->new( -source => "entrez" );
+ my $db = Bio::DB::Taxonomy->new( -source => "entrez", %params);
# String | What I expect | What I get
# ---------------------- | ------------- | ----------
View it on GitLab: https://salsa.debian.org/med-team/libbio-db-ncbihelper-perl/commit/620c940138d1a5d0483014bfd1fbb9388b35b25f
--
View it on GitLab: https://salsa.debian.org/med-team/libbio-db-ncbihelper-perl/commit/620c940138d1a5d0483014bfd1fbb9388b35b25f
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200104/62d6acb9/attachment-0001.html>
More information about the debian-med-commit
mailing list