Bio::Tools::Run::StandAloneBlastPlus tests failing with latest BLAST+
cjfields opened this issue · 3 comments
Author Name: Chris Fields (@cjfields)
Original Redmine Issue: 3213, https://redmine.open-bio.org/issues/3213
Original Date: 2011-04-20
Original Assignee: Bioperl Guts
Indexing of BLAST databases using makeblastdb
with BLAST+ 2.2.24+ and up fail with duplicated IDs. This is causing t/SABlastPlus.t
tests to fail.
cjfields@pyrimidine:~/bioperl/bioperl-run$ blastp -version
blastp: 2.2.24+
Package: blast 2.2.24, build Aug 12 2010 17:48:12
cjfields@pyrimidine:~/bioperl/bioperl-run$ t t/SABlastPlus.t
t/SABlastPlus.t ..
1..63
ok 1 - use Bio::Tools::Run::StandAloneBlastPlus;
ok 2 - use Bio::Tools::Run::WrapperBase;
ok 3 - use Bio::Tools::Run::WrapperBase::CommandExts;
ok 4 - BlastPlus factory
# DB and mask make tests
ok 5 - make factory
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: /opt/local/blast-plus/bin/makeblastdb call crashed: There was a problem running /opt/local/blast-plus/bin/makeblastdb : BLAST Database creation error: Error: Duplicate seq_ids are found.
STACK: Error::throw
STACK: Bio::Root::Root::throw /home/cjfields/bioperl/bioperl-live/Bio/Root/Root.pm:472
STACK: Bio::Tools::Run::WrapperBase::_run /home/cjfields/bioperl/bioperl-live/Bio/Tools/Run/WrapperBase/CommandExts.pm:1012
STACK: Bio::Tools::Run::StandAloneBlastPlus::make_db /home/cjfields/bioperl/bioperl-run/blib/lib/Bio/Tools/Run/StandAloneBlastPlus.pm:740
STACK: t/SABlastPlus.t:37
-----------------------------------------------------------
# Looks like you planned 63 tests but ran 5.
# Looks like your test exited with 29 just after 5.
Dubious, test returned 29 (wstat 7424, 0x1d00)
Failed 58/63 subtests
Test Summary Report
-------------------
t/SABlastPlus.t (Wstat: 7424 Tests: 5 Failed: 0)
Non-zero exit status: 29
Parse errors: Bad plan. You planned 63 tests but ran 5.
Files=1, Tests=5, 0 wallclock secs ( 0.01 usr 0.02 sys + 0.34 cusr 0.06 csys = 0.43 CPU)
Result: FAIL
Failed 1/1 test programs. 0/5 subtests failed.
Original Redmine Comment
Author Name: Chris Fields
Original Date: 2011-04-20T16:43:09Z
Commit commit:22eb8ef8 fixes tests with BLAST+ v.2.2.23+
, but later versions are failing:
cjfields@pyrimidine:~/bioperl/bioperl-run$ blastp -version
blastp: 2.2.24+
Package: blast 2.2.24, build Aug 12 2010 17:48:12
cjfields@pyrimidine:~/bioperl/bioperl-run$ t t/SABlastPlus.t
t/SABlastPlus.t ..
1..63
ok 1 - use Bio::Tools::Run::StandAloneBlastPlus;
ok 2 - use Bio::Tools::Run::WrapperBase;
ok 3 - use Bio::Tools::Run::WrapperBase::CommandExts;
ok 4 - BlastPlus factory
# DB and mask make tests
ok 5 - make factory
ok 6 - test db made with fasta
ok 7 - temp db
ok 8 - right type
ok 9
ok 10 - named db made
ok 11 - check_db
ok 12 - correct name
ok 13 - dbinfo hash returned
ok 14 - correct type
------------- EXCEPTION: Bio::Root::Exception -------------
MSG: /opt/local/blast-plus/bin/windowmasker call crashed: There was a problem running /opt/local/blast-plus/bin/windowmasker : USAGE
windowmasker [-h] [-help] [-xmlhelp] [-ustat unit_counts]
[-in input_file_name] [-out output_file_name] [-checkdup check_duplicates]
[-window window_size] [-t_extend T_extend] [-t_thres T_threshold]
[-t_high T_high] [-t_low T_low] [-set_t_high score_value]
[-set_t_low score_value] [-infmt input_format] [-parse_seqids]
[-outfmt output_format] [-sformat unit_counts_format] [-mk_counts]
[-convert] [-fa_list input_is_a_list] [-mem available_memory]
[-smem available_memory] [-unit unit_length] [-genome_size genome_size]
[-dust use_dust] [-dust_level dust_level] [-exclude_ids exclude_id_list]
[-ids id_list] [-text_match text_match_ids]
[-use_ba use_bit_array_optimization] [-version-full]
DESCRIPTION
Window based sequence masker
Use '-help' to print detailed descriptions of command line arguments
========================================================================
Error: (106.18)
NCBI C++ Exception:
Error: (CArgException::eSynopsis) Too many positional arguments (1), the offending value: true
Error: (CArgException::eSynopsis) Application's initialization failed
STACK: Error::throw
STACK: Bio::Root::Root::throw /home/cjfields/bioperl/bioperl-live/Bio/Root/Root.pm:472
STACK: Bio::Tools::Run::WrapperBase::_run /home/cjfields/bioperl/bioperl-live/Bio/Tools/Run/WrapperBase/CommandExts.pm:1012
STACK: Bio::Tools::Run::StandAloneBlastPlus::make_mask /home/cjfields/bioperl/bioperl-run/blib/lib/Bio/Tools/Run/StandAloneBlastPlus.pm:855
STACK: t/SABlastPlus.t:51
-----------------------------------------------------------
# Looks like you planned 63 tests but ran 14.
# Looks like your test exited with 29 just after 14.
Dubious, test returned 29 (wstat 7424, 0x1d00)
Failed 49/63 subtests
Test Summary Report
-------------------
t/SABlastPlus.t (Wstat: 7424 Tests: 14 Failed: 0)
Non-zero exit status: 29
Parse errors: Bad plan. You planned 63 tests but ran 14.
Files=1, Tests=14, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.56 cusr 0.12 csys = 0.72 CPU)
Result: FAIL
Failed 1/1 test programs. 0/14 subtests failed.
Original Redmine Comment
Author Name: Chris Fields
Original Date: 2011-04-20T18:11:21Z
Basically, NCBI devs made significant API changes to windowmasker after BLAST+ v 2.2.23 that break this wrapper, with conflicting parameters and changes in parameters from specific boolean values to switches. In particular, it appears that the generation of frequency counts for a database (via -mk_counts
) and generation of the masked database (via outfmt
) now directly conflict. The process to generate the masked database using counts appears to be two-step now. Also, the -mk_counts
parameters now is a switch instead of accepting the ‘true’ flag. My concern is there is no way to find out what other API changes may lurk elsewhere in the code. A bit frustrating to say the least.
Because there are no ways to account for version-specific changes to parameters, any fixes in this module will be backwards-incompatible with BLAST+ versions 2.2.23+ and earlier.
Original Redmine Comment
Author Name: Chris Fields
Original Date: 2011-04-20T21:14:13Z
Mainly fixed to handle the latest BLAST+. There are still some odd changes even between BLAST+ 2.2.24+ and 2.2.25+ (some tests passing, others not).