Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bio::Tools::Run::StandAloneBlastPlus tests failing with latest BLAST+ #29

Open
cjfields opened this issue Oct 8, 2015 · 3 comments
Open

Comments

@cjfields
Copy link
Member

cjfields commented Oct 8, 2015


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.
@cjfields
Copy link
Member Author

cjfields commented Oct 8, 2015


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.

@cjfields
Copy link
Member Author

cjfields commented Oct 8, 2015


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.

@cjfields
Copy link
Member Author

cjfields commented Oct 8, 2015


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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant