Bio-FastParsers
view release on metacpan or search on metacpan
t/hmmer_std.t view on Meta::CPAN
#!/usr/bin/env perl
use Test::Most;
use autodie;
use feature qw(say);
use Path::Class qw(file);
use Bio::FastParsers;
use Smart::Comments;
my $class = 'Bio::FastParsers::Hmmer::Standard';
check_iterations(
file('test', 'hmmer_double_short.stdout'),
2,
);
check_info_and_targets(
file('test', 'hmmer3.stdout'),
[ 'Meredith169AA', 6705 ],
[
[ 0, 12909.9, 47.3, 0, 4943.5, 15.5, 3.0, 3, 'Abrocoma_bennettii', undef ],
],
);
check_domains(
file('test', 'hmmer3.stdout'),
[
[
[ 3876.6, 0 ],
[ 4102.0, 0 ],
[ 4943.5, 0 ],
],
],
);
check_info_and_targets(
file('test', 'hmmer_short.stdout'),
[ 'tmpfile_Qfco', 6705 ],
[
[ 0, 12909.9, 47.3, 0, 4943.5, 15.5, 3.0, 3, 'Abrocoma_bennettii', undef ],
[ 0, 12562.0, 71.7, 0, 11808.5, 45.4, 2.8, 2, 'Aepyprymnus_rufescens', undef ],
[ 0, 12214.1, 81.9, 0, 5245.2, 11.3, 4.0, 4, 'Acrobates_pygmaeus', undef ],
],
);
check_domains(
file('test', 'hmmer_short.stdout'),
[
[
[ 3876.6, 0 ],
[ 4102.0, 0 ],
[ 4943.5, 0 ],
],
[
[ 757.3, 3.1e-231 ],
[ 11808.5, 0 ],
],
[
[ 762.4, 9.3e-233 ],
[ 1351.8, 0 ],
[ 5245.2, 0 ],
[ 4873.3, 0 ],
],,
],
);
check_scoreseq(
file('test', 'hmmer3.stdout'),
[
[
['CSFLPTMSMEYMVFFSFFTWIFIPLVVMCAIYLNIFHVIRNKLSQNLSASKETGAFYGREFRTAKSLFLVLFLFALCWLPLSIINCALYFPDDIMFLGILLSHXXXXXXILGNALGILAVLTSRSLRAPQNLFLVSLAAADILVATLIIPFSLANELLGYWYFRRTWCEVYLALDVLFCTSSIVHLCXISLDRYWAVSRALEYNSKRTPRRIKCIILTVWLIAAVISLPPLVYKGD...
'c+f +m+m+ymv+fsfftwi+iplvvmcaiyl+if+virnklsqn+s+sketgafygref+takslflvlflfal+wlplsiinc++yfp+ +++lgillsh i gnal ilavltsrslrapqnlflvslaaadilvatliipfslanellgywyfrrtwcevylaldvlfctssivhlc isldrywavsraleynskrtprrikciiltvwliaavislppl+ykgdq...
'c+f +m+m+ymv+fsfftwi+iplvvmcaiyl+if+virnklsqn+s+sketgafygref+takslflvlflfal+wlplsiinc++yfp+ +++lgillsh i gnal ilavltsrslrapqnlflvslaaadilvatliipfslanellgywyfrrtwcevylaldvlfctssivhlc isldrywavsraleynskrtprrikciiltvwliaavislppl+ykgdq...
['XXVNEWFSRSDEMETSEDGCDWEXEKTDLKASDPQRAVTCATVRGCPSAGKGSVEDKVFGKTYRRKGSLANLSHSAXVTQECPLTSTVKRKRRTLSCLHPEDFIKKAGLAAAQKTPEKDTQGMKQSSQVTSIPNNN-ENETEGVAVQRXQNPSPVQSLEKESVPGMGTEPQSSSGNSMELEWNVCPPGAPQGNRLRKRSSARQVP--------HLSPPGHPELQIDTSTSSEEKGD...
' vnewfsrsde+ ts+d +d + ek+dl asdp++a++c++ r ++ + + ++edk+fgktyrrk sl nlsh + +tqe+plt+++krkrrt s+lhpedfikk+ la +qktpek ++g++q++qv++i nn+ enet+g vq+ +n++p++slekes+ + +ep+sss ++mele+n++ ap+ nrlr++ss+r+++ + spp h elqid ++sseek+ +...
' vnewfsrsde+ ts+d +d + ek+dl asdp++a++c++ r ++ + + ++edk+fgktyrrk sl nlsh + +tqe+plt+++krkrrt s+lhpedfikk+ la +qktpek ++g++q++qv++i nn+enet+g vq+ +n++p++slekes+ + +ep+sss ++mele+n++ ap+ nrlr++ss+r++++ spp h elqid ++sseek+ +s q++vrh+...
['XXNSSGMKSAFVTVRVLDTPSPPVNLKVTEITKDSVSITWEPPLLDGGSKIKNYIVEKREATRKSYAAVVTNCHKNSWKIDQLQEGCSYYFRVTAENEYGIGLPARTADPIKVAEVPQPPGKITVDDVTRNSVSLSWTKPEHDGGSKIIQYIVEMQAKHSEKWSECARVKSLEAVITNLTQGEEYLFRVVAVNEKGRSDPRSLAVPIIAKDLVIEPDVRPAFSSYSVQVGQDLKIE...
' nssg+ksafvtvrvldtpsppvnlkvteitkdsvsitwepplldggskiknyivekreatrksYaAvvTnchKnsWKidqLqeGcsYyFRVtAeneYGiGlpartadpiKvaeVpqPpgKitvdDVTRnSVSLsWtKPEHDGGSKIiqYiVEMQAKhseKWSeCARVKsLEAVITNLtQGEEYLFRVvAVNEKGRSDPRSLAVPi+AKDLVIEPDVRPaF+sYSvQVGqDLKIEV...
' nssg+ksafvtvrvldtpsppvnlkvteitkdsvsitwepplldggskiknyivekreatrksYaAvvTnchKnsWKidqLqeGcsYyFRVtAeneYGiGlpartadpiKvaeVpqPpgKitvdDVTRnSVSLsWtKPEHDGGSKIiqYiVEMQAKhseKWSeCARVKsLEAVITNLtQGEEYLFRVvAVNEKGRSDPRSLAVPi+AKDLVIEPDVRPaF+sYSvQVGqDLKIEV...
],
],
);
check_info_and_targets(
file('test', 'hmmer_description.stdout'),
[ 'GNTPAN12210_noloxo', 779 ],
[
[ 0, 1563.7, 0, 0, 1563.4, 0, 1.0, 1, 'L', 'oxodonta_africana@ENSLAFP00000006713_that is really long with strange stuff' ],
],
);
check_info_and_targets(
file('test', 'hmmer_domthresh.stdout'),
[ 'tmpfile_IV_h_model', 524 ],
[
[ 4.6e-05, 9.6, 21.6, 0.014, 1.4, 21.6, 3.0, 0, 'Scoe_bact|CAB99155', undef ],
],
);
check_domains(
file('test', 'hmmer_domthresh.stdout'),
[
[],
],
);
sub check_iterations {
my $infile = shift;
my $exp_iterations = shift;
ok my $report = $class->new( file => $infile ),
'Hmmer::Standard constructor';
isa_ok $report, $class, $infile;
cmp_ok $report->count_iterations, '==', $exp_iterations,
'got expected number of iterations';
return;
}
sub check_info_and_targets {
my $infile = shift;
my $exp_info = shift;
my $exp_targets = shift;
ok my $report = $class->new( file => $infile ),
'Hmmer::Standard constructor';
isa_ok $report, $class, $infile;
my $iteration = $report->next_iteration;
isa_ok $iteration, $class . '::Iteration';
my @info_attrs = qw(query query_length);
cmp_deeply [ map { $iteration->$_ } @info_attrs ], $exp_info,
'got expected infos';
my @target_attrs = qw(
evalue score bias
best_dom_evalue best_dom_score best_dom_bias
exp dom
query_name target_description
);
my $n = 0;
while (my $target = $iteration->next_target) {
ok $target, 'Hmmer::Standard::Target constructor';
isa_ok $target, $class . '::Target';
cmp_deeply [ map { $target->$_ } @target_attrs ],
shift @{ $exp_targets },
'got expected values for all methods for target-' . $n++
;
}
return;
}
sub check_domains {
my $infile = shift;
my $exp_targets = shift;
ok my $report = $class->new( file => $infile ),
'Hmmer::Standard constructor';
isa_ok $report, $class, $infile;
my $iteration = $report->next_iteration;
isa_ok $iteration, $class . '::Iteration';
for my $exp_target (@$exp_targets) {
my $target = $iteration->next_target;
ok @$exp_target == $target->count_domains,
'got exp number of domains';
my @dom_attrs = ( qw(score expect) );
( run in 0.415 second using v1.01-cache-2.11-cpan-71847e10f99 )