sequenceserver 2.0.0.rc7 → 2.0.0.rc8
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sequenceserver might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/chromedriver +0 -0
- data/bin/geckodriver +0 -0
- data/bin/sequenceserver +31 -4
- data/lib/sequenceserver.rb +6 -1
- data/lib/sequenceserver/database.rb +7 -42
- data/lib/sequenceserver/exceptions.rb +14 -0
- data/lib/sequenceserver/makeblastdb.rb +121 -41
- data/lib/sequenceserver/routes.rb +1 -1
- data/lib/sequenceserver/version.rb +1 -1
- data/public/css/sequenceserver.css +8 -2
- data/public/css/sequenceserver.min.css +1 -1
- data/public/js/jquery_world.js +1 -1
- data/public/js/report.js +1 -2
- data/public/js/search.js +40 -18
- data/public/js/sidebar.js +50 -26
- data/public/sequenceserver-report.min.js +17 -17
- data/public/sequenceserver-search.min.js +2 -2
- data/views/layout.erb +1 -1
- data/views/report.erb +1 -1
- data/views/search.erb +1 -1
- metadata +4 -510
- data/.bootstrap/config.json +0 -433
- data/.codeclimate.yml +0 -31
- data/.csslintrc +0 -2
- data/.dockerignore +0 -1
- data/.eslintignore +0 -1
- data/.eslintrc.json +0 -36
- data/.gitignore +0 -56
- data/.mailmap +0 -5
- data/.rspec +0 -3
- data/.rubocop.yml +0 -61
- data/.travis.yml +0 -74
- data/AppImage/recipe.yml +0 -15
- data/AppImage/sequenceserver.desktop +0 -8
- data/AppImage/sequenceserver.png +0 -0
- data/AppImage/sequenceserver.sh +0 -16
- data/Dockerfile +0 -25
- data/LICENSE.txt +0 -661
- data/LICENSE/Apache.txt +0 -176
- data/LICENSE/d3.txt +0 -26
- data/README.md +0 -161
- data/package.json +0 -48
- data/public/vendor/.dependencies.json +0 -18
- data/public/vendor/.loaderversions +0 -1
- data/public/vendor/github/components/jquery@2.1.4/.gitignore +0 -1
- data/public/vendor/github/components/jquery@2.1.4/.jspm-hash +0 -1
- data/public/vendor/github/components/jquery@2.1.4/.jspm.json +0 -37
- data/public/vendor/github/components/jqueryui@1.11.4/.gitignore +0 -4
- data/public/vendor/github/components/jqueryui@1.11.4/.jspm-hash +0 -1
- data/public/vendor/github/components/jqueryui@1.11.4/.jspm.json +0 -136
- data/public/vendor/github/components/jqueryui@1.11.4/ui/.jshintrc +0 -24
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.0/.jspm.json +0 -10
- data/public/vendor/github/jspm/nodelibs-events@0.1.1/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-events@0.1.1/.jspm.json +0 -10
- data/public/vendor/github/jspm/nodelibs-fs@0.1.2/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0/.jspm.json +0 -3
- data/public/vendor/github/jspm/nodelibs-path@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-path@0.1.0/.jspm.json +0 -10
- data/public/vendor/github/jspm/nodelibs-process@0.1.1/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-stream@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-stream@0.1.0/.jspm.json +0 -10
- data/public/vendor/github/jspm/nodelibs-util@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/jspm/nodelibs-util@0.1.0/.jspm.json +0 -10
- data/public/vendor/github/mbostock/d3@3.5.6/.jspm-hash +0 -1
- data/public/vendor/github/mbostock/d3@3.5.6/.jspm.json +0 -76
- data/public/vendor/github/nicgirault/circosJs@1.7.0/.gitignore +0 -10
- data/public/vendor/github/nicgirault/circosJs@1.7.0/.jspm-hash +0 -1
- data/public/vendor/github/systemjs/plugin-css@0.1.15/.gitignore +0 -1
- data/public/vendor/github/systemjs/plugin-css@0.1.15/.jspm-hash +0 -1
- data/public/vendor/github/systemjs/plugin-css@0.1.15/.jspm.json +0 -4
- data/public/vendor/github/systemjs/plugin-json@0.1.0/.jspm-hash +0 -1
- data/public/vendor/github/twbs/bootstrap@3.3.5/.jspm-hash +0 -1
- data/public/vendor/github/twbs/bootstrap@3.3.5/.jspm.json +0 -100
- data/public/vendor/npm/amdefine@1.0.0/.jspm-hash +0 -1
- data/public/vendor/npm/amdefine@1.0.0/.jspm.json +0 -55
- data/public/vendor/npm/babel-core@5.8.23/.jspm-hash +0 -1
- data/public/vendor/npm/babel-runtime@5.8.20/.jspm-hash +0 -1
- data/public/vendor/npm/babel-runtime@5.8.20/.npmignore +0 -2
- data/public/vendor/npm/base62@0.1.1/.jspm-hash +0 -1
- data/public/vendor/npm/base62@0.1.1/.jspm.json +0 -49
- data/public/vendor/npm/base62@0.1.1/.travis.yml +0 -4
- data/public/vendor/npm/base64-js@0.0.8/.jspm-hash +0 -1
- data/public/vendor/npm/base64-js@0.0.8/.jspm.json +0 -77
- data/public/vendor/npm/base64-js@0.0.8/.travis.yml +0 -5
- data/public/vendor/npm/buffer@3.4.3/.jspm-hash +0 -1
- data/public/vendor/npm/buffer@3.4.3/.jspm.json +0 -105
- data/public/vendor/npm/buffer@3.4.3/.npmignore +0 -1
- data/public/vendor/npm/buffer@3.4.3/.travis.yml +0 -8
- data/public/vendor/npm/buffer@3.4.3/.zuul.yml +0 -20
- data/public/vendor/npm/core-js@1.1.2/.eslintrc +0 -36
- data/public/vendor/npm/core-js@1.1.2/.gitattributes +0 -1
- data/public/vendor/npm/core-js@1.1.2/.jspm-hash +0 -1
- data/public/vendor/npm/core-js@1.1.2/.npmignore +0 -10
- data/public/vendor/npm/core-js@1.1.2/.travis.yml +0 -3
- data/public/vendor/npm/core-util-is@1.0.1/.jspm-hash +0 -1
- data/public/vendor/npm/core-util-is@1.0.1/.jspm.json +0 -58
- data/public/vendor/npm/envify@3.4.0/.jspm-hash +0 -1
- data/public/vendor/npm/envify@3.4.0/.jspm.json +0 -72
- data/public/vendor/npm/envify@3.4.0/.npmignore +0 -2
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/.jspm-hash +0 -1
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/.jspm.json +0 -102
- data/public/vendor/npm/events@1.0.2/.jspm-hash +0 -1
- data/public/vendor/npm/events@1.0.2/.jspm.json +0 -67
- data/public/vendor/npm/events@1.0.2/.npmignore +0 -1
- data/public/vendor/npm/events@1.0.2/.travis.yml +0 -7
- data/public/vendor/npm/events@1.0.2/.zuul.yml +0 -12
- data/public/vendor/npm/font-awesome@4.4.0/.jspm-hash +0 -1
- data/public/vendor/npm/font-awesome@4.4.0/.jspm.json +0 -81
- data/public/vendor/npm/font-awesome@4.4.0/.npmignore +0 -42
- data/public/vendor/npm/ieee754@1.1.6/.jspm-hash +0 -1
- data/public/vendor/npm/ieee754@1.1.6/.jspm.json +0 -70
- data/public/vendor/npm/ieee754@1.1.6/.travis.yml +0 -7
- data/public/vendor/npm/ieee754@1.1.6/.zuul.yml +0 -20
- data/public/vendor/npm/inherits@2.0.1/.jspm-hash +0 -1
- data/public/vendor/npm/inherits@2.0.1/.jspm.json +0 -60
- data/public/vendor/npm/is-array@1.0.1/.jepso-ci.json +0 -3
- data/public/vendor/npm/is-array@1.0.1/.jspm-hash +0 -1
- data/public/vendor/npm/is-array@1.0.1/.jspm.json +0 -42
- data/public/vendor/npm/is-array@1.0.1/.npmignore +0 -0
- data/public/vendor/npm/isarray@0.0.1/.jspm-hash +0 -1
- data/public/vendor/npm/isarray@0.0.1/.jspm.json +0 -51
- data/public/vendor/npm/jstransform@10.1.0/.jshintrc +0 -28
- data/public/vendor/npm/jstransform@10.1.0/.jspm-hash +0 -1
- data/public/vendor/npm/jstransform@10.1.0/.jspm.json +0 -95
- data/public/vendor/npm/jstransform@10.1.0/.npmignore +0 -4
- data/public/vendor/npm/jstransform@10.1.0/.travis.yml +0 -8
- data/public/vendor/npm/path-browserify@0.0.0/.jspm-hash +0 -1
- data/public/vendor/npm/path-browserify@0.0.0/.jspm.json +0 -56
- data/public/vendor/npm/process@0.10.1/.jspm-hash +0 -1
- data/public/vendor/npm/react@0.13.3/.jspm-hash +0 -1
- data/public/vendor/npm/react@0.13.3/.jspm.json +0 -77
- data/public/vendor/npm/readable-stream@1.1.13/.jspm-hash +0 -1
- data/public/vendor/npm/readable-stream@1.1.13/.jspm.json +0 -95
- data/public/vendor/npm/readable-stream@1.1.13/.npmignore +0 -5
- data/public/vendor/npm/source-map@0.1.31/.jspm-hash +0 -1
- data/public/vendor/npm/source-map@0.1.31/.jspm.json +0 -133
- data/public/vendor/npm/source-map@0.1.31/.npmignore +0 -2
- data/public/vendor/npm/source-map@0.1.31/.travis.yml +0 -4
- data/public/vendor/npm/stream-browserify@1.0.0/.jspm-hash +0 -1
- data/public/vendor/npm/stream-browserify@1.0.0/.jspm.json +0 -77
- data/public/vendor/npm/stream-browserify@1.0.0/.travis.yml +0 -4
- data/public/vendor/npm/string_decoder@0.10.31/.jspm-hash +0 -1
- data/public/vendor/npm/string_decoder@0.10.31/.jspm.json +0 -58
- data/public/vendor/npm/string_decoder@0.10.31/.npmignore +0 -2
- data/public/vendor/npm/through@2.3.8/.jspm-hash +0 -1
- data/public/vendor/npm/through@2.3.8/.jspm.json +0 -72
- data/public/vendor/npm/through@2.3.8/.travis.yml +0 -5
- data/public/vendor/npm/underscore@1.8.3/.jspm-hash +0 -1
- data/public/vendor/npm/underscore@1.8.3/.jspm.json +0 -74
- data/public/vendor/npm/util@0.10.3/.jspm-hash +0 -1
- data/public/vendor/npm/util@0.10.3/.jspm.json +0 -58
- data/public/vendor/npm/util@0.10.3/.npmignore +0 -1
- data/public/vendor/npm/util@0.10.3/.travis.yml +0 -8
- data/public/vendor/npm/util@0.10.3/.zuul.yml +0 -10
- data/public/vendor/npm/webshim@1.15.8/.gitattributes +0 -12
- data/public/vendor/npm/webshim@1.15.8/.jspm-hash +0 -1
- data/public/vendor/npm/webshim@1.15.8/.jspm.json +0 -92
- data/public/vendor/npm/webshim@1.15.8/.npmignore +0 -16
- data/public/vendor/npm/webshim@1.15.8/.project +0 -12
- data/public/vendor/npm/webshim@1.15.8/demos/demos/filereader/upload/.keep +0 -0
- data/sequenceserver.gemspec +0 -55
- data/spec/blast_versions/blast_2.2.30/blast_2.2.30_spec.rb +0 -228
- data/spec/blast_versions/blast_2.2.30/import_spec_capybara_local_2.2.30.rb +0 -583
- data/spec/blast_versions/blast_2.2.31/blast_2.2.31_spec.rb +0 -228
- data/spec/blast_versions/blast_2.2.31/import_spec_capybara_local_2.2.31.rb +0 -587
- data/spec/blast_versions/blast_2.3.0/blast_2.3.0_spec.rb +0 -229
- data/spec/blast_versions/blast_2.3.0/import_spec_capybara_local_2.3.0.rb +0 -587
- data/spec/blast_versions/blast_2.4.0/blast_2.4.0_spec.rb +0 -228
- data/spec/blast_versions/blast_2.4.0/import_spec_capybara_local_2.4.0.rb +0 -588
- data/spec/blast_versions/blast_2.5.0/blast_2.5.0_spec.rb +0 -228
- data/spec/blast_versions/blast_2.5.0/import_spec_capybara_local_2.5.0.rb +0 -587
- data/spec/blast_versions/blast_2.6.0/blast_2.6.0_spec.rb +0 -228
- data/spec/blast_versions/blast_2.6.0/import_spec_capybara_local_2.6.0.rb +0 -587
- data/spec/blast_versions/blast_2.7.1/blast_2.7.1_spec.rb +0 -228
- data/spec/blast_versions/blast_2.7.1/import_spec_capybara_local_2.7.1.rb +0 -587
- data/spec/blast_versions/blast_2.8.1/blast_2.8.1_spec.rb +0 -228
- data/spec/blast_versions/blast_2.8.1/import_spec_capybara_local_2.8.1.rb +0 -587
- data/spec/blast_versions/blast_2.9.0/blast_2.9.0_spec.rb +0 -228
- data/spec/blast_versions/blast_2.9.0/import_spec_capybara_local_2.9.0.rb +0 -585
- data/spec/blast_versions/diamond_0.9.24/diamond_0.9.24_spec.rb +0 -176
- data/spec/blast_versions/diamond_0.9.24/import_spec_capybara_local_0.9.24.rb +0 -237
- data/spec/capybara_spec.rb +0 -345
- data/spec/config_spec.rb +0 -87
- data/spec/database/funky_ids/funky_ids.fa +0 -16
- data/spec/database/funky_ids/v4/funky_ids.fa.nhd +0 -8
- data/spec/database/funky_ids/v4/funky_ids.fa.nhi +0 -0
- data/spec/database/funky_ids/v4/funky_ids.fa.nhr +0 -0
- data/spec/database/funky_ids/v4/funky_ids.fa.nin +0 -0
- data/spec/database/funky_ids/v4/funky_ids.fa.nog +0 -0
- data/spec/database/funky_ids/v4/funky_ids.fa.nsd +0 -15
- data/spec/database/funky_ids/v4/funky_ids.fa.nsi +0 -0
- data/spec/database/funky_ids/v4/funky_ids.fa.nsq +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.ndb +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nhd +0 -8
- data/spec/database/funky_ids/v5/funky_ids.fa.nhi +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nhr +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nin +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nog +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nos +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.not +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nsq +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.ntf +0 -0
- data/spec/database/funky_ids/v5/funky_ids.fa.nto +0 -0
- data/spec/database/funky_sequences/README.md +0 -14
- data/spec/database/funky_sequences/funky_aa_sequences.fa +0 -7
- data/spec/database/funky_sequences/funky_aa_sequences.fa.phd +0 -3
- data/spec/database/funky_sequences/funky_aa_sequences.fa.phi +0 -0
- data/spec/database/funky_sequences/funky_aa_sequences.fa.phr +0 -0
- data/spec/database/funky_sequences/funky_aa_sequences.fa.pin +0 -0
- data/spec/database/funky_sequences/funky_aa_sequences.fa.pog +0 -0
- data/spec/database/funky_sequences/funky_aa_sequences.fa.psd +0 -6
- data/spec/database/funky_sequences/funky_aa_sequences.fa.psi +0 -0
- data/spec/database/funky_sequences/funky_aa_sequences.fa.psq +0 -0
- data/spec/database/funky_sequences/funky_na_sequences.fa +0 -2
- data/spec/database/funky_sequences/funky_na_sequences.fa.nhr +0 -0
- data/spec/database/funky_sequences/funky_na_sequences.fa.nin +0 -0
- data/spec/database/funky_sequences/funky_na_sequences.fa.nog +0 -0
- data/spec/database/funky_sequences/funky_na_sequences.fa.nsd +0 -2
- data/spec/database/funky_sequences/funky_na_sequences.fa.nsi +0 -0
- data/spec/database/funky_sequences/funky_na_sequences.fa.nsq +0 -0
- data/spec/database/ox_parse_error/query.fa +0 -1
- data/spec/database/ox_parse_error/rand1.fa +0 -2
- data/spec/database/ox_parse_error/rand1.fa.nhd +0 -1
- data/spec/database/ox_parse_error/rand1.fa.nhi +0 -0
- data/spec/database/ox_parse_error/rand1.fa.nhr +0 -0
- data/spec/database/ox_parse_error/rand1.fa.nin +0 -0
- data/spec/database/ox_parse_error/rand1.fa.nog +0 -0
- data/spec/database/ox_parse_error/rand1.fa.nsd +0 -2
- data/spec/database/ox_parse_error/rand1.fa.nsi +0 -0
- data/spec/database/ox_parse_error/rand1.fa.nsq +0 -0
- data/spec/database/ox_parse_error/rand2.fa +0 -2
- data/spec/database/ox_parse_error/rand2.fa.nhd +0 -1
- data/spec/database/ox_parse_error/rand2.fa.nhi +0 -0
- data/spec/database/ox_parse_error/rand2.fa.nhr +0 -0
- data/spec/database/ox_parse_error/rand2.fa.nin +0 -0
- data/spec/database/ox_parse_error/rand2.fa.nog +0 -0
- data/spec/database/ox_parse_error/rand2.fa.nsd +0 -2
- data/spec/database/ox_parse_error/rand2.fa.nsi +0 -0
- data/spec/database/ox_parse_error/rand2.fa.nsq +0 -0
- data/spec/database/ox_parse_error_unique_ids/query.fa +0 -1
- data/spec/database/ox_parse_error_unique_ids/rand1.fa +0 -2
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhd +0 -1
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhi +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhr +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nin +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nog +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsd +0 -2
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsi +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsq +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa +0 -2
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhd +0 -1
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhi +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhr +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nin +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nog +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsd +0 -2
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsi +0 -0
- data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsq +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa +0 -6
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhd +0 -1
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhi +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhr +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nin +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nog +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsd +0 -2
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsi +0 -0
- data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsq +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.ndb +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhd +0 -8
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhi +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhr +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nin +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nog +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nos +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.not +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsq +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.ntf +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nto +0 -0
- data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.txt +0 -8
- data/spec/database/sample/links.rb +0 -23
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta +0 -6449
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pdb +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phd +0 -1189
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phi +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pos +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pot +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.ptf +0 -0
- data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pto +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pdb +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phd +0 -9140
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phi +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phr +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pin +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pog +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pos +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pot +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psq +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.ptf +0 -0
- data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pto +0 -0
- data/spec/database/sample/proteins/uniprot/URL +0 -1
- data/spec/database/sample/si_uniprot_idmap.yml +0 -14180
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta +0 -5486
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.ndb +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhd +0 -473
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhi +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nos +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.not +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.ntf +0 -0
- data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nto +0 -0
- data/spec/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa +0 -148303
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhd +0 -8
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhi +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhr +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nin +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nog +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsd +0 -16
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsi +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsq +0 -0
- data/spec/database/v4/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.txt +0 -8
- data/spec/database/v4/links.rb +0 -23
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta +0 -6449
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phd +0 -1189
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phi +0 -0
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog +0 -0
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd +0 -2378
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi +0 -0
- data/spec/database/v4/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phd +0 -9140
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phi +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phr +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pin +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pog +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psd +0 -18280
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psi +0 -0
- data/spec/database/v4/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psq +0 -0
- data/spec/database/v4/proteins/uniprot/URL +0 -1
- data/spec/database/v4/si_uniprot_idmap.yml +0 -14180
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta +0 -5486
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhd +0 -473
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhi +0 -0
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog +0 -0
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd +0 -946
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi +0 -0
- data/spec/database/v4/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
- data/spec/database/without_parse_seqids/without_parse_seqids.fa +0 -10
- data/spec/database/without_parse_seqids/without_parse_seqids.fa.phr +0 -0
- data/spec/database/without_parse_seqids/without_parse_seqids.fa.pin +0 -0
- data/spec/database/without_parse_seqids/without_parse_seqids.fa.psq +0 -0
- data/spec/database_spec.rb +0 -51
- data/spec/doctor_spec.disabled.rb +0 -107
- data/spec/dotdir/blast_2.2.30/blastn/BLASTN_XML_2.2.30.xml +0 -1201
- data/spec/dotdir/blast_2.2.30/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.30/blastn_nohits/BLASTN_NO_HITS_XML_2.2.30.xml +0 -866
- data/spec/dotdir/blast_2.2.30/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.30/blastp/BLASTP_XML_2.2.30.xml +0 -1181
- data/spec/dotdir/blast_2.2.30/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.30/blastx/BLASTX_XML_2.2.30.xml +0 -1181
- data/spec/dotdir/blast_2.2.30/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.30/tblastn/TBLASTN_XML_2.2.30.xml +0 -1181
- data/spec/dotdir/blast_2.2.30/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.30/tblastx/TBLASTX_XML_2.2.30.xml +0 -8857
- data/spec/dotdir/blast_2.2.30/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/blastn/BLASTN_XML_2.2.31.xml +0 -1201
- data/spec/dotdir/blast_2.2.31/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/blastn_nohits/BLASTN_NO_HITS_XML_2.2.31.xml +0 -866
- data/spec/dotdir/blast_2.2.31/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/blastp/BLASTP_XML_2.2.31.xml +0 -1181
- data/spec/dotdir/blast_2.2.31/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/blastx/BLASTX_XML_2.2.31.xml +0 -1181
- data/spec/dotdir/blast_2.2.31/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/tblastn/TBLASTN_XML_2.2.31.xml +0 -1181
- data/spec/dotdir/blast_2.2.31/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.2.31/tblastx/TBLASTX_XML_2.2.31.xml +0 -8857
- data/spec/dotdir/blast_2.2.31/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/blastn/BLASTN_XML_2.3.0.xml +0 -1201
- data/spec/dotdir/blast_2.3.0/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/blastn_nohits/BLASTN_NO_HITS_XML_2.3.0.xml +0 -866
- data/spec/dotdir/blast_2.3.0/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/blastp/BLASTP_XML_2.3.0.xml +0 -1181
- data/spec/dotdir/blast_2.3.0/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/blastx/BLASTX_XML_2.3.0.xml +0 -1181
- data/spec/dotdir/blast_2.3.0/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/tblastn/TBLASTN_XML_2.3.0.xml +0 -1181
- data/spec/dotdir/blast_2.3.0/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.3.0/tblastx/TBLASTX_XML_2.3.0.xml +0 -8857
- data/spec/dotdir/blast_2.3.0/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/blastn/BLASTN_XML_2.4.0.xml +0 -1201
- data/spec/dotdir/blast_2.4.0/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/blastn_nohits/BLASTN_NO_HITS_XML_2.4.0.xml +0 -866
- data/spec/dotdir/blast_2.4.0/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/blastp/BLASTP_XML_2.4.0.xml +0 -1181
- data/spec/dotdir/blast_2.4.0/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/blastx/BLASTX_XML_2.4.0.xml +0 -1181
- data/spec/dotdir/blast_2.4.0/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/tblastn/TBLASTN_XML_2.4.0.xml +0 -1181
- data/spec/dotdir/blast_2.4.0/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.4.0/tblastx/TBLASTX_XML_2.4.0.xml +0 -8857
- data/spec/dotdir/blast_2.4.0/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/blastn/BLASTN_XML_2.5.0.xml +0 -1201
- data/spec/dotdir/blast_2.5.0/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/blastn_nohits/BLASTN_NO_HITS_XML_2.5.0.xml +0 -866
- data/spec/dotdir/blast_2.5.0/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/blastp/BLASTP +0 -2161
- data/spec/dotdir/blast_2.5.0/blastp/BLASTP_XML_2.5.0.xml +0 -1181
- data/spec/dotdir/blast_2.5.0/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/blastx/BLASTX +0 -28080
- data/spec/dotdir/blast_2.5.0/blastx/BLASTX_XML_2.5.0.xml +0 -1181
- data/spec/dotdir/blast_2.5.0/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/tblastn/TBLASTN +0 -29486
- data/spec/dotdir/blast_2.5.0/tblastn/TBLASTN_XML_2.5.0.xml +0 -1181
- data/spec/dotdir/blast_2.5.0/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.5.0/tblastx/TBLASTX +0 -180859
- data/spec/dotdir/blast_2.5.0/tblastx/TBLASTX_XML_2.5.0.xml +0 -8857
- data/spec/dotdir/blast_2.5.0/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/blastn/BLASTN_XML_2.6.0.xml +0 -1201
- data/spec/dotdir/blast_2.6.0/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/blastn_nohits/BLASTN_NO_HITS_XML_2.6.0.xml +0 -866
- data/spec/dotdir/blast_2.6.0/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/blastp/BLASTP_XML_2.6.0.xml +0 -1181
- data/spec/dotdir/blast_2.6.0/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/blastx/BLASTX_XML_2.6.0.xml +0 -1181
- data/spec/dotdir/blast_2.6.0/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/tblastn/TBLASTN_XML_2.6.0.xml +0 -1181
- data/spec/dotdir/blast_2.6.0/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.6.0/tblastx/TBLASTX_XML_2.6.0.xml +0 -8857
- data/spec/dotdir/blast_2.6.0/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/blastn/BLASTN_XML_2.7.1.xml +0 -1201
- data/spec/dotdir/blast_2.7.1/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/blastn_nohits/BLASTN_NO_HITS_XML_2.7.1.xml +0 -866
- data/spec/dotdir/blast_2.7.1/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/blastp/BLASTP_XML_2.7.1.xml +0 -1181
- data/spec/dotdir/blast_2.7.1/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/blastx/BLASTX_XML_2.7.1.xml +0 -1181
- data/spec/dotdir/blast_2.7.1/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/tblastn/TBLASTN_XML_2.7.1.xml +0 -1181
- data/spec/dotdir/blast_2.7.1/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.7.1/tblastx/TBLASTX_XML_2.7.1.xml +0 -8857
- data/spec/dotdir/blast_2.7.1/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/blastn/BLASTN_XML_2.8.1.xml +0 -1201
- data/spec/dotdir/blast_2.8.1/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/blastn_nohits/BLASTN_NO_HITS_XML_2.8.1.xml +0 -866
- data/spec/dotdir/blast_2.8.1/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/blastp/BLASTP_XML_2.8.1.xml +0 -1181
- data/spec/dotdir/blast_2.8.1/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/blastx/BLASTX_XML_2.8.1.xml +0 -1181
- data/spec/dotdir/blast_2.8.1/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/tblastn/TBLASTN_XML_2.8.1.xml +0 -1181
- data/spec/dotdir/blast_2.8.1/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.8.1/tblastx/TBLASTX_XML_2.8.1.xml +0 -8857
- data/spec/dotdir/blast_2.8.1/tblastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/blastn/BLASTN_XML_2.9.0.xml +0 -1201
- data/spec/dotdir/blast_2.9.0/blastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/blastn_nohits/BLASTN_NO_HITS_XML_2.9.0.xml +0 -866
- data/spec/dotdir/blast_2.9.0/blastn_nohits/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/blastp/BLASTP_XML_2.9.0.xml +0 -1181
- data/spec/dotdir/blast_2.9.0/blastp/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/blastx/BLASTX_XML_2.9.0.xml +0 -1181
- data/spec/dotdir/blast_2.9.0/blastx/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/tblastn/TBLASTN_XML_2.9.0.xml +0 -1181
- data/spec/dotdir/blast_2.9.0/tblastn/job.yaml +0 -8
- data/spec/dotdir/blast_2.9.0/tblastx/TBLASTX_XML_2.9.0.xml +0 -8857
- data/spec/dotdir/blast_2.9.0/tblastx/job.yaml +0 -8
- data/spec/dotdir/diamond_0.9.24/blastp/DIAMOND_BLASTP_0.9.24.xml +0 -1040
- data/spec/dotdir/diamond_0.9.24/blastp/job.yaml +0 -8
- data/spec/dotdir/diamond_0.9.24/blastx/DIAMOND_BLASTX_0.9.24.xml +0 -1040
- data/spec/dotdir/diamond_0.9.24/blastx/job.yaml +0 -8
- data/spec/dotdir/diamond_0.9.24/blastx_nohits/DIAMOND_BLASTX_NOHITS_0.9.24.xml +0 -41
- data/spec/dotdir/diamond_0.9.24/blastx_nohits/job.yaml +0 -8
- data/spec/download_helper.rb +0 -35
- data/spec/empty_config.yml +0 -0
- data/spec/makeblastdb_spec.rb +0 -121
- data/spec/routes_spec.rb +0 -93
- data/spec/sample.conf +0 -2
- data/spec/sequence_spec.rb +0 -99
- data/spec/sequences/MH011443_1_gi_1486783306_gb_MH011443_1.txt +0 -6
- data/spec/sequences/MH011443_1_gi_1486783307_gb_AYF55702_1.txt +0 -6
- data/spec/sequences/MH011443_1_gi_1528997474_gb_MH447967_1.txt +0 -30
- data/spec/sequences/MH011443_1_sp_P04637_P53_HUMAN.txt +0 -6
- data/spec/sequences/Nucleotide_TP53_COX41.fasta +0 -15
- data/spec/sequences/Protein_TP53_COX41.fasta +0 -12
- data/spec/sequences/Query_1_SI2_2_0_06267.txt +0 -6
- data/spec/sequences/alignment-2_hits.txt +0 -12
- data/spec/sequences/alignment-35_hits_diamond_blastp.txt +0 -210
- data/spec/sequences/alignment-35_hits_diamond_blastx.txt +0 -210
- data/spec/sequences/alignment-3_hits.txt +0 -18
- data/spec/sequences/alignment-40_hits_blastn.txt +0 -246
- data/spec/sequences/alignment-40_hits_blastp.txt +0 -240
- data/spec/sequences/alignment-40_hits_blastp_2.2.30.txt +0 -240
- data/spec/sequences/alignment-40_hits_blastx.txt +0 -240
- data/spec/sequences/alignment-40_hits_tblastn.txt +0 -240
- data/spec/sequences/alignment-40_hits_tblastn_2.2.30.txt +0 -240
- data/spec/sequences/alignment-40_hits_tblastx.txt +0 -2664
- data/spec/sequences/alignment-4_hits.txt +0 -24
- data/spec/sequences/alignment-4_hits_blastn.txt +0 -24
- data/spec/sequences/alignment-4_hits_blastp.txt +0 -24
- data/spec/sequences/alignment-4_hits_blastp_2.2.30.txt +0 -24
- data/spec/sequences/alignment-4_hits_blastx.txt +0 -24
- data/spec/sequences/alignment-4_hits_diamond_blastp.txt +0 -24
- data/spec/sequences/alignment-4_hits_diamond_blastx.txt +0 -24
- data/spec/sequences/alignment-4_hits_tblastn.txt +0 -24
- data/spec/sequences/alignment-4_hits_tblastn_2.2.30.txt +0 -24
- data/spec/sequences/alignment-4_hits_tblastx.txt +0 -318
- data/spec/sequences/nucleotide_query.fa +0 -21
- data/spec/sequences/problematic_query.fa +0 -5
- data/spec/sequences/protein_query.fa +0 -9
- data/spec/sequences/sample_query_fire_ant_obps.fa +0 -44
- data/spec/sequences/sequenceserver-2_hits.fa +0 -10
- data/spec/sequences/sequenceserver-SI2.2.0_06267.fa +0 -5
- data/spec/sequences/sp_P04637_P53_HUMAN_gi_1099170394_ref_XP_018868681_1.txt +0 -6
- data/spec/sequences/sp_P04637_P53_HUMAN_gi_120407068_ref_NP_000537_3.txt +0 -6
- data/spec/sequences/sp_P04637_P53_HUMAN_gi_1484127324_gb_MG595988_1.txt +0 -6
- data/spec/sequences/sp_P04637_P53_HUMAN_gi_395440626_gb_JQ694049_1.txt +0 -6
- data/spec/sequences/sp_P04637_P53_HUMAN_sp_P04637_P53_HUMAN.txt +0 -6
- data/spec/sequenceserver_spec.rb +0 -90
- data/spec/spec_helper.rb +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 449efaa2619fd2c83a4116480c78ae6b892804f2f9bc23c3d074b8b0493985c5
|
4
|
+
data.tar.gz: 393f9da8bd3df53bff3ed3a137a5d9484ad5ec9cfa1de3c7b15c3f1a6833f092
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de2fdcef61a8fcdbe8907935a1f0b545219698fe9d37fcad6cd40aaa50e779010b7e91a9158eb76590baed78ce3743cdc173b664ff5d0969dfaca42eb6bd621c
|
7
|
+
data.tar.gz: a65c243d19435021b00a360ddfa8f617fa58e5944dd55117a8865f11dec4554a86e577cdfee3013a82638dc45de697a33156da1ba0a2fedd8e2936a7d760d5d9
|
data/bin/chromedriver
ADDED
Binary file
|
data/bin/geckodriver
ADDED
Binary file
|
data/bin/sequenceserver
CHANGED
@@ -40,7 +40,7 @@ def ask_to_join
|
|
40
40
|
"-d ifq -d emailAddress=#{response} -d submit=Submit > /dev/null 2> /dev/null"
|
41
41
|
system post_email_cmd
|
42
42
|
end
|
43
|
-
system "touch #{asked_to_join}"
|
43
|
+
system "mkdir -p #{SequenceServer::DOTDIR} && touch #{asked_to_join}"
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
@@ -279,7 +279,6 @@ begin
|
|
279
279
|
redo
|
280
280
|
rescue SequenceServer::NO_BLAST_DATABASE_FOUND => e
|
281
281
|
unless list_databases? || make_blast_databases?
|
282
|
-
|
283
282
|
# Print error raised.
|
284
283
|
puts
|
285
284
|
puts e
|
@@ -297,8 +296,8 @@ begin
|
|
297
296
|
unless response =~ /^[n]$/i
|
298
297
|
puts
|
299
298
|
puts 'Searching ...'
|
300
|
-
if SequenceServer.makeblastdb.
|
301
|
-
formatted = SequenceServer.makeblastdb.
|
299
|
+
if SequenceServer.makeblastdb.any_unformatted?
|
300
|
+
formatted = SequenceServer.makeblastdb.format
|
302
301
|
exit! if formatted.empty? && !set?
|
303
302
|
redo unless set?
|
304
303
|
else
|
@@ -309,6 +308,34 @@ begin
|
|
309
308
|
exit! unless set?
|
310
309
|
end
|
311
310
|
end
|
311
|
+
rescue SequenceServer::INCOMPATIBLE_BLAST_DATABASES => e
|
312
|
+
unless list_databases? || make_blast_databases?
|
313
|
+
# Print error raised.
|
314
|
+
puts
|
315
|
+
puts e
|
316
|
+
|
317
|
+
# Offer user to format the FASTA files.
|
318
|
+
database_dir = SequenceServer.config[:database_dir]
|
319
|
+
puts
|
320
|
+
puts <<~MSG
|
321
|
+
Incompatible databases can cause BLAST searches and other features of
|
322
|
+
SequenceServer to fail unexpectedly.
|
323
|
+
You can view incompatible databases and choose to reformat them below.
|
324
|
+
Alternatively, please remove them from databases directory.
|
325
|
+
|
326
|
+
View incompatible databases? [y/n] (Default: y).
|
327
|
+
MSG
|
328
|
+
puts
|
329
|
+
print '>> '
|
330
|
+
response = STDIN.gets.to_s.strip
|
331
|
+
unless response =~ /^[n]$/i
|
332
|
+
reformatted = SequenceServer.makeblastdb.reformat
|
333
|
+
exit! if reformatted.empty? && !set?
|
334
|
+
redo unless set?
|
335
|
+
else
|
336
|
+
exit! unless set?
|
337
|
+
end
|
338
|
+
end
|
312
339
|
rescue SequenceServer::ENOENT,
|
313
340
|
SequenceServer::CONFIG_FILE_ERROR,
|
314
341
|
SequenceServer::BLAST_DATABASE_ERROR,
|
data/lib/sequenceserver.rb
CHANGED
@@ -202,7 +202,12 @@ module SequenceServer
|
|
202
202
|
end
|
203
203
|
|
204
204
|
logger.debug("Will look for BLAST+ databases in: #{config[:database_dir]}")
|
205
|
-
|
205
|
+
|
206
|
+
makeblastdb.scan
|
207
|
+
fail NO_BLAST_DATABASE_FOUND, config[:database_dir] if !makeblastdb.any_formatted?
|
208
|
+
fail INCOMPATIBLE_BLAST_DATABASES, config[:database_dir] if makeblastdb.any_incompatible?
|
209
|
+
|
210
|
+
Database.collection = makeblastdb.formatted_fastas
|
206
211
|
Database.each do |database|
|
207
212
|
logger.debug("Found #{database.type} database '#{database.title}'" \
|
208
213
|
" at '#{database.name}'")
|
@@ -80,12 +80,15 @@ module SequenceServer
|
|
80
80
|
@collection ||= {}
|
81
81
|
end
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
def collection=(databases_attrs)
|
84
|
+
databases_attrs.each do |db_attrs|
|
85
|
+
db = Database.new(*db_attrs)
|
86
|
+
collection[db.id] = db
|
87
|
+
end
|
87
88
|
end
|
88
89
|
|
90
|
+
private :collection
|
91
|
+
|
89
92
|
def [](ids)
|
90
93
|
ids = Array ids
|
91
94
|
collection.values_at(*ids)
|
@@ -182,44 +185,6 @@ module SequenceServer
|
|
182
185
|
def clear
|
183
186
|
collection.clear
|
184
187
|
end
|
185
|
-
|
186
|
-
# Recurisvely scan `database_dir` for blast databases.
|
187
|
-
#
|
188
|
-
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
189
|
-
def blastdbcmd
|
190
|
-
cmd = "blastdbcmd -recursive -list #{config[:database_dir]}" \
|
191
|
-
' -list_outfmt "%f %t %p %n %l %d"'
|
192
|
-
out, err = sys(cmd, path: config[:bin])
|
193
|
-
errpat = /BLAST Database error/
|
194
|
-
fail BLAST_DATABASE_ERROR.new(cmd, err) if err.match(errpat)
|
195
|
-
return out
|
196
|
-
rescue CommandFailed => e
|
197
|
-
fail BLAST_DATABASE_ERROR.new(cmd, e.stderr)
|
198
|
-
end
|
199
|
-
|
200
|
-
def scan_databases_dir
|
201
|
-
out = blastdbcmd
|
202
|
-
fail NO_BLAST_DATABASE_FOUND, config[:database_dir] if out.empty?
|
203
|
-
out.each_line do |line|
|
204
|
-
name = line.split(' ')[0]
|
205
|
-
next if multipart_database_name?(name)
|
206
|
-
self << Database.new(*line.split(' '))
|
207
|
-
end
|
208
|
-
end
|
209
|
-
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
210
|
-
|
211
|
-
# Returns true if the database name appears to be a multi-part database
|
212
|
-
# name.
|
213
|
-
#
|
214
|
-
# e.g.
|
215
|
-
# /home/ben/pd.ben/sequenceserver/db/nr.00 => yes
|
216
|
-
# /home/ben/pd.ben/sequenceserver/db/nr => no
|
217
|
-
# /home/ben/pd.ben/sequenceserver/db/img3.5.finished.faa.01 => yes
|
218
|
-
# /home/ben/pd.ben/sequenceserver/db/nr00 => no
|
219
|
-
# /mnt/blast-db/refseq_genomic.100 => yes
|
220
|
-
def multipart_database_name?(db_name)
|
221
|
-
!(db_name.match(%r{.+/\S+\.\d{2,3}$}).nil?)
|
222
|
-
end
|
223
188
|
end
|
224
189
|
end
|
225
190
|
end
|
@@ -113,6 +113,20 @@ module SequenceServer
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
+
class INCOMPATIBLE_BLAST_DATABASES < StandardError
|
117
|
+
def initialize(database_dir)
|
118
|
+
@database_dir = database_dir
|
119
|
+
end
|
120
|
+
|
121
|
+
attr_reader :database_dir
|
122
|
+
|
123
|
+
def to_s
|
124
|
+
<<~MSG
|
125
|
+
One or more databases in #{database_dir} are likely incompatible.
|
126
|
+
MSG
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
116
130
|
# Raised if there was an error determining BLAST+ databases in database_dir.
|
117
131
|
class BLAST_DATABASE_ERROR < StandardError
|
118
132
|
def initialize(cmd, out)
|
@@ -31,6 +31,9 @@ module SequenceServer
|
|
31
31
|
end
|
32
32
|
|
33
33
|
attr_reader :database_dir
|
34
|
+
attr_reader :formatted_fastas
|
35
|
+
attr_reader :fastas_to_format
|
36
|
+
attr_reader :fastas_to_reformat
|
34
37
|
|
35
38
|
# Scans the database directory to determine which FASTA files require
|
36
39
|
# formatting or re-formatting.
|
@@ -46,18 +49,68 @@ module SequenceServer
|
|
46
49
|
# Now determine FASTA files that are unformatted or require reformatting.
|
47
50
|
@fastas_to_format = []
|
48
51
|
determine_unformatted_fastas
|
52
|
+
@fastas_to_reformat = []
|
49
53
|
determine_fastas_to_reformat
|
50
54
|
|
51
55
|
# Return true if there are files to be (re-)formatted or false otherwise.
|
56
|
+
!@fastas_to_format.empty? || !@fastas_to_reformat.empty?
|
57
|
+
end
|
58
|
+
|
59
|
+
# Returns true if at least one database in database directory is formatted.
|
60
|
+
def any_formatted?
|
61
|
+
!@formatted_fastas.empty?
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns true if there is at least one unformatted FASTA in the databases
|
65
|
+
# directory.
|
66
|
+
def any_unformatted?
|
52
67
|
!@fastas_to_format.empty?
|
53
68
|
end
|
54
69
|
|
55
|
-
#
|
56
|
-
#
|
70
|
+
# Returns true if the databases directory contains one or more incompatible
|
71
|
+
# databases.
|
72
|
+
#
|
73
|
+
# Note that it is okay to only use V4 databases or only V5 databases. It is
|
74
|
+
# Incompatibility arises when they are mixed.
|
75
|
+
def any_incompatible?
|
76
|
+
return false if @fastas_to_reformat.empty?
|
77
|
+
# We need to compare @fastas_to_reformat to @formatted_fastas, but the
|
78
|
+
# latter contains extra attributes. However, the first attribute, i.e,
|
79
|
+
# path is common to both and sufficient for our needs.
|
80
|
+
to_reformat = @fastas_to_reformat.map(&:first)
|
81
|
+
formatted = @formatted_fastas.map(&:first)
|
82
|
+
# Check that they are not equal. Using intersection operator ensures
|
83
|
+
# comparison even if their order differs.
|
84
|
+
formatted & to_reformat != formatted
|
85
|
+
end
|
86
|
+
|
87
|
+
# Runs makeblastdb on each file in `@fastas_to_format` and
|
88
|
+
# `@fastas_to_reformat`. Will do nothing unless `#scan`
|
89
|
+
# has been run before.
|
57
90
|
def run
|
58
|
-
|
59
|
-
|
60
|
-
|
91
|
+
format
|
92
|
+
reformat
|
93
|
+
end
|
94
|
+
|
95
|
+
# Format any unformatted FASTA files in database directory. Returns Array
|
96
|
+
# of files that were formatted.
|
97
|
+
def format
|
98
|
+
# Make the intent clear as well as ensure the program won't crash if we
|
99
|
+
# accidentally call format before calling scan.
|
100
|
+
return unless @fastas_to_format
|
101
|
+
@fastas_to_format.select do |path, title, type|
|
102
|
+
make_blast_database('format', path, title, type)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# Re-format databases that require reformatting. Returns Array of files
|
107
|
+
# that were reformatted.
|
108
|
+
def reformat
|
109
|
+
# Make the intent clear as well as ensure the program won't crash if
|
110
|
+
# we accidentally call reformat before calling scan.
|
111
|
+
return unless @fastas_to_reformat
|
112
|
+
@fastas_to_reformat.select do |path, title, type|
|
113
|
+
make_blast_database('reformat', path, title, type)
|
61
114
|
end
|
62
115
|
end
|
63
116
|
|
@@ -67,9 +120,9 @@ module SequenceServer
|
|
67
120
|
# formatted. Adds to @formatted_fastas.
|
68
121
|
def determine_formatted_fastas
|
69
122
|
blastdbcmd.each_line do |line|
|
70
|
-
path, title, type = line.split(' ')
|
123
|
+
path, title, type, *rest = line.split(' ')
|
71
124
|
next if multipart_database_name?(path)
|
72
|
-
@formatted_fastas << [path, title, type.strip.downcase]
|
125
|
+
@formatted_fastas << [path, title, type.strip.downcase, *rest]
|
73
126
|
end
|
74
127
|
end
|
75
128
|
|
@@ -81,7 +134,7 @@ module SequenceServer
|
|
81
134
|
exts = Dir["#{path}.*"].map { |p| p.split('.').last }.sort
|
82
135
|
next if (exts & required_extensions) == required_extensions
|
83
136
|
|
84
|
-
@
|
137
|
+
@fastas_to_reformat << [path, title, type]
|
85
138
|
end
|
86
139
|
end
|
87
140
|
|
@@ -103,46 +156,32 @@ module SequenceServer
|
|
103
156
|
# directory. Returns the output of `blastdbcmd`. This method is called
|
104
157
|
# by `determine_formatted_fastas`.
|
105
158
|
def blastdbcmd
|
106
|
-
cmd = "blastdbcmd -recursive -list #{database_dir}" \
|
107
|
-
' -list_outfmt "%f %t %p"'
|
108
|
-
out,
|
109
|
-
|
159
|
+
cmd = "blastdbcmd -recursive -list #{config[:database_dir]}" \
|
160
|
+
' -list_outfmt "%f %t %p %n %l %d"'
|
161
|
+
out, err = sys(cmd, path: config[:bin])
|
162
|
+
errpat = /BLAST Database error/
|
163
|
+
fail BLAST_DATABASE_ERROR.new(cmd, err) if err.match(errpat)
|
164
|
+
return out
|
165
|
+
rescue CommandFailed => e
|
166
|
+
fail BLAST_DATABASE_ERROR.new(cmd, e.stderr)
|
110
167
|
end
|
111
168
|
|
112
169
|
# Create BLAST database, given FASTA file and sequence type in FASTA file.
|
113
|
-
def make_blast_database(file, title, type)
|
114
|
-
return unless make_blast_database? file, type
|
170
|
+
def make_blast_database(action, file, title, type)
|
171
|
+
return unless make_blast_database?(action, file, type)
|
115
172
|
title = confirm_database_title(title)
|
116
|
-
|
117
|
-
_make_blast_database(file, type, title,
|
118
|
-
end
|
119
|
-
|
120
|
-
def _make_blast_database(file, type, title, taxid)
|
121
|
-
extract_fasta(file) unless File.exist?(file)
|
122
|
-
cmd = "makeblastdb -parse_seqids -hash_index -in #{file} " \
|
123
|
-
"-dbtype #{type.to_s.slice(0, 4)} -title '#{title}'" \
|
124
|
-
" -taxid #{taxid}"
|
125
|
-
out, err = sys(cmd, path: config[:bin])
|
126
|
-
puts out.strip
|
127
|
-
puts err.strip
|
128
|
-
rescue CommandFailed => e
|
129
|
-
puts <<~MSG
|
130
|
-
Could not create BLAST database for: #{file}
|
131
|
-
Tried: #{cmd}
|
132
|
-
stdout: #{e.stdout}
|
133
|
-
stderr: #{e.stderr}
|
134
|
-
MSG
|
135
|
-
exit!
|
173
|
+
taxonomy = taxid_map(file) || taxid
|
174
|
+
_make_blast_database(file, type, title, taxonomy)
|
136
175
|
end
|
137
176
|
|
138
177
|
# Show file path and guessed sequence type to the user and obtain a y/n
|
139
178
|
# response.
|
140
179
|
#
|
141
180
|
# Returns true if the user entered anything but 'n' or 'N'.
|
142
|
-
def make_blast_database?(file, type)
|
181
|
+
def make_blast_database?(action, file, type)
|
143
182
|
puts
|
144
183
|
puts
|
145
|
-
puts "FASTA file to
|
184
|
+
puts "FASTA file to #{action}: #{file}"
|
146
185
|
puts "FASTA type: #{type}"
|
147
186
|
print 'Proceed? [y/n] (Default: y): '
|
148
187
|
response = STDIN.gets.to_s.strip
|
@@ -159,20 +198,47 @@ module SequenceServer
|
|
159
198
|
from_user.empty? && default || from_user
|
160
199
|
end
|
161
200
|
|
201
|
+
# Check if a '.taxid_map.txt' file exists. If not, try getting it
|
202
|
+
# using blastdbcmd.
|
203
|
+
def taxid_map(db)
|
204
|
+
taxid_map = db.sub(/#{File.extname(db)}$/, '.taxid_map.txt')
|
205
|
+
if !File.exist?(taxid_map) || File.zero?(taxid_map)
|
206
|
+
extract_taxid_map(db, taxid_map)
|
207
|
+
end
|
208
|
+
"-taxid_map #{taxid_map}" if !File.zero?(taxid_map)
|
209
|
+
end
|
210
|
+
|
162
211
|
# Get taxid from the user. Returns user input or 0.
|
163
212
|
#
|
164
213
|
# Using 0 as taxid is equivalent to not setting taxid for the database
|
165
214
|
# that will be created.
|
166
|
-
def
|
167
|
-
default = 0
|
215
|
+
def taxid
|
168
216
|
print 'Enter taxid (optional): '
|
169
217
|
user_response = STDIN.gets.strip
|
170
|
-
user_response
|
171
|
-
rescue
|
218
|
+
"-taxid #{user_response ? Integer(user_response) : 0}"
|
219
|
+
rescue ArgumentError # presumably from call to Interger()
|
172
220
|
puts 'taxid should be a number'
|
173
221
|
retry
|
174
222
|
end
|
175
223
|
|
224
|
+
def _make_blast_database(file, type, title, taxonomy)
|
225
|
+
extract_fasta(file) unless File.exist?(file)
|
226
|
+
cmd = "makeblastdb -parse_seqids -hash_index -in #{file} " \
|
227
|
+
"-dbtype #{type.to_s.slice(0, 4)} -title '#{title}'" \
|
228
|
+
" #{taxonomy}"
|
229
|
+
out, err = sys(cmd, path: config[:bin])
|
230
|
+
puts out.strip
|
231
|
+
puts err.strip
|
232
|
+
rescue CommandFailed => e
|
233
|
+
puts <<~MSG
|
234
|
+
Could not create BLAST database for: #{file}
|
235
|
+
Tried: #{cmd}
|
236
|
+
stdout: #{e.stdout}
|
237
|
+
stderr: #{e.stderr}
|
238
|
+
MSG
|
239
|
+
exit!
|
240
|
+
end
|
241
|
+
|
176
242
|
# Extract FASTA file from BLAST database.
|
177
243
|
#
|
178
244
|
# Invoked while reformatting a BLAST database if the corresponding
|
@@ -192,10 +258,24 @@ module SequenceServer
|
|
192
258
|
exit!
|
193
259
|
end
|
194
260
|
|
261
|
+
def extract_taxid_map(db, taxmap_file)
|
262
|
+
cmd = "blastdbcmd -entry all -db #{db} -outfmt '%i %T'"
|
263
|
+
sys(cmd, stdout: taxmap_file, path: config[:bin])
|
264
|
+
rescue CommandFailed => e
|
265
|
+
# silence error
|
266
|
+
end
|
267
|
+
|
195
268
|
# Returns true if the database name appears to be a multi-part database
|
196
269
|
# name.
|
270
|
+
#
|
271
|
+
# e.g.
|
272
|
+
# /home/ben/pd.ben/sequenceserver/db/nr.00 => yes
|
273
|
+
# /home/ben/pd.ben/sequenceserver/db/nr => no
|
274
|
+
# /home/ben/pd.ben/sequenceserver/db/img3.5.finished.faa.01 => yes
|
275
|
+
# /home/ben/pd.ben/sequenceserver/db/nr00 => no
|
276
|
+
# /mnt/blast-db/refseq_genomic.100 => yes
|
197
277
|
def multipart_database_name?(db_name)
|
198
|
-
|
278
|
+
!(db_name.match(%r{.+/\S+\.\d{2,3}$}).nil?)
|
199
279
|
end
|
200
280
|
|
201
281
|
# Returns true if first character of the file is '>'.
|
@@ -330,7 +330,13 @@ td.nowrap-ellipsis {
|
|
330
330
|
.notifications {
|
331
331
|
position: relative;
|
332
332
|
height: 32px;
|
333
|
+
/**
|
334
|
+
* Notifications should appear over the bottom border of the textarea, high
|
335
|
+
* enough that they do not interfere with the database listing below and
|
336
|
+
* narrow enough not to cover the textarea resize handle on the right. */
|
333
337
|
top: -16px;
|
338
|
+
margin-right: 35px;
|
339
|
+
margin-left: 35px;
|
334
340
|
}
|
335
341
|
.notification {
|
336
342
|
height: 32px !important;
|
@@ -403,7 +409,7 @@ input[type=checkbox] {
|
|
403
409
|
}
|
404
410
|
|
405
411
|
.sidebar li a {
|
406
|
-
padding: 3px
|
412
|
+
padding: 3px 2px;
|
407
413
|
}
|
408
414
|
|
409
415
|
.sidebar.affix {
|
@@ -552,4 +558,4 @@ input[type=checkbox] {
|
|
552
558
|
/* CSS class to facilitate the hit header wrapping */
|
553
559
|
.hit-header {
|
554
560
|
display: table-cell;
|
555
|
-
}
|
561
|
+
}
|