Skip to content

whichdb() method causes error when blasting versus multiple DB #529

@jvera888

Description

@jvera888

Hi,
I'm having errors pop up when attempting to use the whichdb() method in the links.rb script and I am beginning to suspect that it may be a bug rather than user error (maybe), despite my limited experience with Ruby.

  • I'm using SequenceServer v2 rc8 with multiple bacterial Blast DBs that I've formatted myself using makeblastdb and the -parse_seqids.

  • I've given the blast DB titles.
    e.g. "WildTypes : LR0019: Lactobacillus reuteri LR0019", "References : RS00003: Curtobacterium sp Leaf183", etc.

  • All of the DB FASTA files have unique sequence headers.

e.g. >LR0019_chr1, >RS00003_chr1, etc.

  • I've experimented with different versions of Blast (2.9.0, 2.10.1, and 2.11.0), being careful not to mix DB versions.

  • Unless I'm misunderstanding something from the documentation (happens frequently!), the whichdb() method should allow me to determine the origin DB for each Blast hit when used in the links.rb script.
    e.g. dbObjectList = whichdb()

  • This works great when I'm blasting versus a single DB and allows me to generate a functional Jbrowse link, but it produces the following error message when Blasting versus multiple DBs:

/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/sys.rb:83:in `sys'
/home/cris/miniconda3/envs/sstest/lib/ruby/2.7.0/forwardable.rb:235:in `sys'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/database.rb:53:in `include?'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:54:in `block in whichdb'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:54:in `select'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:54:in `whichdb'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/links.rb:79:in `jbrowse'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:40:in `block in links'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:40:in `map'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:40:in `links'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:26:in `block in to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:26:in `each'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:26:in `inject'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/hit.rb:26:in `to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/query.rb:28:in `to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/query.rb:28:in `to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/report.rb:45:in `to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/blast/report.rb:45:in `to_json'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver/routes.rb:106:in `block in <class:Routes>'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1674:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1674:in `block in compile!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1013:in `block (3 levels) in route!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1032:in `route_eval'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1013:in `block (2 levels) in route!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1061:in `block in process_route'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1059:in `catch'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1059:in `process_route'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1011:in `block in route!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1008:in `each'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1008:in `route!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1129:in `block in dispatch!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `block in invoke'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `catch'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `invoke'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1124:in `dispatch!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:939:in `block in call!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `block in invoke'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `catch'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1101:in `invoke'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:939:in `call!'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:929:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/rack-2.2.3/lib/rack/deflater.rb:44:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:216:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1991:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1542:in `block in call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1769:in `synchronize'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sinatra-2.1.0/lib/sinatra/base.rb:1542:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/sequenceserver-2.0.0.rc8/lib/sequenceserver.rb:114:in `call'
/home/cris/miniconda3/envs/sstest/share/rubygems/gems/rack-2.2.3/lib/rack/handler/webrick.rb:95:in `service'
/home/cris/miniconda3/envs/sstest/lib/ruby/2.7.0/webrick/httpserver.rb:140:in `service'
/home/cris/miniconda3/envs/sstest/lib/ruby/2.7.0/webrick/httpserver.rb:96:in `run'
/home/cris/miniconda3/envs/sstest/lib/ruby/2.7.0/webrick/server.rb:307:in `block in start_thread'
  • I should probably mention that I'm running Sequenceserver from within Conda in the above example (super simple to set up!), but I've tried running it from a standard Sequenceserver installation as well as an installation running through Apache2 with the same results.
  • Finally, I should also mention that this error does not occur in Sequenceserver version 1.0.14, but I would really like to upgrade to to version 2 to take advantage of the nice new features!

Thanks for your time and please let me know what obviously necessary additional info you need that I failed to provide.
Cheers,
Cris

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions