TypeError... any solution????

TypeError - can't convert Hash into String:
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/formatter.rb:44:in `system'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/formatter.rb:44:in `run'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/formatter.rb:20:in `initialize'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/report.rb:36:in `run'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/report.rb:36:in `generate'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast/report.rb:21:in `initialize'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast.rb:96:in `new'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/blast.rb:96:in `run'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/routes.rb:125:in `POST /'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1609:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1609:in `compile!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `[]'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:993:in `route_eval'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:974:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1014:in `process_route'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `catch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1012:in `process_route'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:972:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `each'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:971:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1084:in `dispatch!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1081:in `dispatch!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `call!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `catch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1066:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:906:in `call!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:894:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:181:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:2021:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1795:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.4.6/lib/sinatra/base.rb:1486:in `call'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver.rb:90:in `call'
/usr/lib/ruby/gems/1.8/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/server.rb:26:in `start'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver/server.rb:9:in `run'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/lib/sequenceserver.rb:55:in `run'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/bin/sequenceserver:417
/usr/lib/ruby/gems/1.8/gems/slop-3.6.0/lib/slop.rb:260:in `call'
/usr/lib/ruby/gems/1.8/gems/slop-3.6.0/lib/slop.rb:260:in `parse!'
/usr/lib/ruby/gems/1.8/gems/slop-3.6.0/lib/slop.rb:65:in `parse!'
/usr/lib/ruby/gems/1.8/gems/sequenceserver-1.0.4/bin/sequenceserver:24
/usr/bin/sequenceserver:19:in `load'
/usr/bin/sequenceserver:19

Sorry should have looked earlier… found a solution here https://groups.google.com/forum/?fromgroups#!searchin/sequenceserver/typeerror/sequenceserver/2BIbpk9sgrE/ikyg4csdxWIJ

Right. Also, I have fixed this in the repository, but haven’t been able to get around to making a release – soonish, I hope.

– Priyam

Thanks Priyam,
I had few more question about the interface…

  1. We have 50 odd genomes each with 2-3 versions of assemblies, set of sequencing reads and separately assembled cdna data for them. By default sequenceserver would create a “laundry” list on the default index page. Is there a way to make the lists collapsable? Say put all assembly versions of a species together, then put all species of the same genus together, and so on.
  2. Rather than having a single box for advanced commands at the bottom, can we have a separate box for e-value, matrix and a few other commonly requested options. The microbiologist we cater do not care of other options at all and don’t want to enter stuff in a “command-line” fashion.
    3.When we get a hit, the current interface gives us an option to download the entire subject. Is there a way to change this to download the aligned part of the subject, i.e., extract sequence from the subject by start and end alignment positions? Right now we are doing this through gbrowse.
  3. We want to make sequenceserver website secure via username/password. What is the best way to achieve this?
    Thank you in advance.

Vishal Koparde, Ph.D.
Bioinformatics Scientist
Virginia Commonwealth University

Hey Vishal,

Perhaps you could make use of the fact that SequenceServer lists the databases in alphabetical order. So you can have the databases ordered by genus, species, version and reads, but each category won’t be foldable. See, for example - http://antgenomes.org/sequenceserver/. (I have been experimenting a bit with alternate ways to present database selection. So there are chances to see something new here in the long run).

I’m not convinced about introducing dedicated input fields for any advanced param, no matter how commonly used they might be. I would like to experiment with auto-completion first.

Downloading HSPs is in work. Not promising a release date, but hopefully soonish.

Simplest password protection would be to put Apache / Nginx’s basic auth in front of SequenceServer. Additionally serve things over HTTPs, so the passwords can’t be sniffed. Here’s a guide for Nginx - https://www.digitalocean.com/community/tutorials/how-to-set-up-http-authentication-with-nginx-on-ubuntu-12-10. (Only steps 3 & 4 will change for Apache.) Basic auth, or more advanced auth system can also be set directly from config.ru file by using appropriate Ruby libraries.

– Priyam