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.
- 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
|
+
}
|