Bio-MUST-Drivers
view release on metacpan or search on metacpan
compare_filter_ok $report, file('test', 'ready_report.blastp.m6'),
\&filter, 'wrote expected BLASTP report for pre-existing query file';
$parser->remove;
# 2. temporary query file (queries have to be degapped first)
my $query = $qr_class->new( seqs => file('test', 'protquery.fasta') );
$filename = $query->filename;
explain $filename;
# 2a. HTML format
my $report_html = $db->blast($query, {
-html => undef,
-evalue => 1e-50,
} );
ok $report_html =~ m/\.html\z/xms, "wrote HTML report: $report_html";
# 2b. tabular format
my $tab_parser = $db->blast($query, {
-evalue => 1e-10,
} );
isa_ok($tab_parser, 'Bio::FastParsers::Blast::Table');
$report_m6 = $tab_parser->filename;
explain $report_m6;
compare_filter_ok $report_m6, file('test', 'report.blastp.m6'),
\&filter, 'wrote expected tabular BLASTP report';
$tab_parser->remove;
# 2c. XML format
my $xml_parser = $db->blast($query, {
-evalue => 1e-10,
-outfmt => 5,
} );
isa_ok($xml_parser, 'Bio::FastParsers::Blast::Xml');
cmp_ok $xml_parser->blast_output->count_iterations, '==', 7,
'got expected number of iterations';
$report_xml = $xml_parser->filename;
explain $report_xml;
compare_filter_ok $report_xml, file('test', 'report.blastp.xml'),
\&filter, 'wrote expected XML BLASTP report';
$xml_parser->remove;
# blastdbcmd from temporary database
my @ids = qw(seq2 seq4 seq6);
my $seqs = $db->blastdbcmd( \@ids );
cmp_ok $seqs->count_seqs, '==', 3,
'fetched expected number of seqs from temporary database';
}
ok(!-e "$basename.$_", "deleted db file with expected suffix: $_")
for qw(phr pin psq);
# for qw(pdb phr pin pjs pog pos pot psq ptf pto); # too stringent!
ok(!-e $filename, 'deleted query file');
ok(!-e $report_m6, 'deleted tabular report file');
ok(!-e $report_xml, 'deleted XML report file');
SKIP: {
skip <<"EOT", 5 unless $ENV{$NET_VAR};
remote BLAST tests!
These tests are long to run and can hang if NCBI servers are too busy.
To enable them use:
\$ $NET_VAR=1 make test
EOT
my $db = $db_class->new( file => 'core_nt', remote => 1 );
cmp_ok $db->type, 'eq', 'nucl', 'got expected -db_type';
$basename = $db->filename;
explain $basename;
my $query = $qr_class->new( seqs => file('test', 'nuclquery.fasta') );
$filename = $query->filename;
explain $filename;
my $parser = $db->blast($query, {
'-entrez_query' => q{'Euglenozoa[ORGN]'},
'-evalue' => 1e-250,
'-outfmt' => 7,
} );
isa_ok($parser, 'Bio::FastParsers::Blast::Table');
my $hsp_count = 0;
while ($parser->next_hsp) {
$hsp_count++;
}
cmp_ok $hsp_count, '>', 5, 'got expected number of remote HSPs';
SKIP: {
skip 'due to unstable remote BLASTN results', 2;
cmp_ok $hsp_count, '==', 7, 'got expected number of remote HSPs';
my $report = $parser->filename;
explain $report;
compare_filter_ok $report, file('test', 'report.blastn.m7'),
\&filter, 'wrote expected tabular report after remote BLASTN';
$parser->remove;
}
}
{
my $db = $db_class->new( file => file('test', 'prebuiltdb') );
cmp_ok $db->type, 'eq', 'prot', 'got expected -db_type';
$basename = $db->filename;
ok(-e "$basename.$_", "found db file with expected suffix: $_")
for qw(phr pin psq);
# for qw(pdb phr pin pjs pog pos pot psq ptf pto); # too stringent!
explain $basename;
# blastdbcmd from prebuilt database
my @ids = qw(gnl|Ca|29376464 gnl|Mg|16801896 gnl|Cu|29375460);
my $seqs = $db->blastdbcmd( \@ids );
cmp_ok $seqs->count_seqs, '==', 3,
'fetched expected number of seqs from prebuilt database';
}
# TODO: test other BLAST variants and options?
sub filter {
my $line = shift;
$line =~ s{\t\ +}{\t}xmsg; # normalize whitespace
( run in 2.138 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )