sequenceserver 2.0.0 → 2.2.0
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/sequenceserver +7 -2
- data/lib/sequenceserver/api_errors.rb +24 -2
- data/lib/sequenceserver/blast/formatter.rb +13 -4
- data/lib/sequenceserver/blast/job.rb +41 -7
- data/lib/sequenceserver/blast/report.rb +69 -33
- data/lib/sequenceserver/config.rb +52 -27
- data/lib/sequenceserver/job.rb +13 -3
- data/lib/sequenceserver/job_remover.rb +25 -29
- data/lib/sequenceserver/makeblastdb.rb +80 -72
- data/lib/sequenceserver/pool.rb +1 -1
- data/lib/sequenceserver/refinements.rb +15 -0
- data/lib/sequenceserver/report.rb +1 -5
- data/lib/sequenceserver/routes.rb +92 -9
- data/lib/sequenceserver/sequence.rb +8 -7
- data/lib/sequenceserver/sys.rb +3 -3
- data/lib/sequenceserver/version.rb +1 -1
- data/lib/sequenceserver/zip_file_generator.rb +56 -0
- data/lib/sequenceserver.rb +9 -2
- data/public/config.js +149 -143
- data/public/css/sequenceserver.css +44 -3
- data/public/css/sequenceserver.min.css +3 -3
- data/public/js/alignment_exporter.js +16 -8
- data/public/js/circos.js +370 -234
- data/public/js/cloud_share_modal.js +216 -0
- data/public/js/databases.js +144 -0
- data/public/js/databases_tree.js +42 -113
- data/public/js/dnd.js +164 -0
- data/public/js/error_modal.js +4 -11
- data/public/js/exporter.js +7 -3
- data/public/js/form.js +260 -0
- data/public/js/grapher.js +113 -106
- data/public/js/hit.js +80 -67
- data/public/js/hits_overview.js +2 -2
- data/public/js/hsp.js +343 -288
- data/public/js/jquery_world.js +4 -4
- data/public/js/mailto.js +36 -0
- data/public/js/options.js +84 -0
- data/public/js/query.js +319 -59
- data/public/js/report.js +369 -269
- data/public/js/report_root.js +75 -0
- data/public/js/search.js +28 -1011
- data/public/js/search_button.js +195 -0
- data/public/js/sequence.js +2409 -2411
- data/public/js/sequence_modal.js +152 -159
- data/public/js/share_url.js +23 -0
- data/public/js/sidebar.js +262 -83
- data/public/js/tests/advanced_parameters.spec.js +36 -0
- data/public/js/tests/database.spec.js +60 -0
- data/public/js/tests/mock_data/databases.json +91 -0
- data/public/js/tests/mock_data/long_response.json +269 -0
- data/public/js/tests/mock_data/sequences.js +32 -0
- data/public/js/tests/mock_data/short_response.json +2240 -0
- data/public/js/tests/report.spec.js +155 -0
- data/public/js/tests/search_button.spec.js +14 -0
- data/public/js/tests/search_query.spec.js +58 -0
- data/public/js/visualisation_helpers.js +1 -1
- data/public/packages/circosJS@1.7.0.js +1640 -0
- data/public/packages/jquery-ui@1.11.4.js +16624 -0
- data/public/sequenceserver-report.min.js +2425 -19
- data/public/sequenceserver-search.min.js +2337 -15
- data/public/vendor/github/jspm/nodelibs-assert@0.1.0/index.js +2 -0
- data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-assert@0.1.0}/package.json +1 -1
- data/public/vendor/github/jspm/nodelibs-assert@0.1.0.js +1 -0
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.1/package.json +6 -0
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.1.js +1 -0
- data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/package.json +2 -2
- data/public/vendor/github/jspm/nodelibs-process@0.1.2.js +1 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0/index.js +2 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0/package.json +6 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0.js +1 -0
- data/public/vendor/npm/assert@1.5.0/CHANGELOG.md +8 -0
- data/public/vendor/npm/assert@1.5.0/README.md +105 -0
- data/public/vendor/npm/assert@1.5.0/assert.js +327 -0
- data/public/vendor/npm/assert@1.5.0/package.json +32 -0
- data/public/vendor/npm/assert@1.5.0/test.js +288 -0
- data/public/vendor/npm/assert@1.5.0.js +1 -0
- data/public/vendor/npm/{base64-js@0.0.8/LICENSE.MIT → base64-js@1.5.1/LICENSE} +1 -1
- data/public/vendor/npm/{base64-js@0.0.8 → base64-js@1.5.1}/README.md +10 -7
- data/public/vendor/npm/base64-js@1.5.1/base64js.min.js +3 -0
- data/public/vendor/npm/base64-js@1.5.1/index.d.ts +3 -0
- data/public/vendor/npm/base64-js@1.5.1/index.js +151 -0
- data/public/vendor/npm/base64-js@1.5.1/package.json +47 -0
- data/public/vendor/npm/base64-js@1.5.1.js +1 -0
- data/public/vendor/npm/buffer@5.7.1/AUTHORS.md +70 -0
- data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/README.md +111 -41
- data/public/vendor/npm/buffer@5.7.1/index.d.ts +186 -0
- data/public/vendor/npm/buffer@5.7.1/index.js +1817 -0
- data/public/vendor/npm/buffer@5.7.1/package.json +96 -0
- data/public/vendor/npm/buffer@5.7.1.js +1 -0
- data/public/vendor/npm/core-util-is@1.0.3/LICENSE +19 -0
- data/public/vendor/npm/core-util-is@1.0.3/lib/util.js +64 -0
- data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/package.json +13 -1
- data/public/vendor/npm/core-util-is@1.0.3.js +1 -0
- data/public/vendor/npm/events@1.0.2/tests/add-listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/check-listener-leaks.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/common.js +1 -1
- data/public/vendor/npm/events@1.0.2/tests/index.js +13 -13
- data/public/vendor/npm/events@1.0.2/tests/listeners-side-effects.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/max-listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/modify-in-emit.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/num-args.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/once.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/remove-all-listeners.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/remove-listeners.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/set-max-listeners-side-effects.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/subclass.js +3 -3
- data/public/vendor/npm/events@1.0.2.js +1 -1
- data/public/vendor/npm/ieee754@1.2.1/LICENSE +11 -0
- data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/README.md +12 -8
- data/public/vendor/npm/ieee754@1.2.1/index.d.ts +10 -0
- data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/index.js +6 -6
- data/public/vendor/npm/ieee754@1.2.1/package.json +52 -0
- data/public/vendor/npm/ieee754@1.2.1.js +1 -0
- data/public/vendor/npm/{is-array@1.0.1 → indexof@0.0.1}/Makefile +3 -3
- data/public/vendor/npm/indexof@0.0.1/Readme.md +15 -0
- data/public/vendor/npm/indexof@0.0.1/component.json +10 -0
- data/public/vendor/npm/indexof@0.0.1/index.js +11 -0
- data/public/vendor/npm/indexof@0.0.1/package.json +12 -0
- data/public/vendor/npm/indexof@0.0.1.js +1 -0
- data/public/vendor/npm/inherits@2.0.1/inherits.js +1 -1
- data/public/vendor/npm/inherits@2.0.1.js +1 -1
- data/public/vendor/npm/isarray@0.0.1.js +1 -1
- data/public/vendor/npm/js-tokens@4.0.0/index.js +23 -0
- data/public/vendor/npm/js-tokens@4.0.0/package.json +30 -0
- data/public/vendor/npm/js-tokens@4.0.0.js +1 -0
- data/public/vendor/npm/loose-envify@1.4.0/LICENSE +21 -0
- data/public/vendor/npm/loose-envify@1.4.0/README.md +45 -0
- data/public/vendor/npm/loose-envify@1.4.0/cli.js +12 -0
- data/public/vendor/npm/loose-envify@1.4.0/custom.js +3 -0
- data/public/vendor/npm/loose-envify@1.4.0/index.js +5 -0
- data/public/vendor/npm/loose-envify@1.4.0/loose-envify.js +33 -0
- data/public/vendor/npm/loose-envify@1.4.0/package.json +36 -0
- data/public/vendor/npm/loose-envify@1.4.0/replace.js +52 -0
- data/public/vendor/npm/loose-envify@1.4.0.js +1 -0
- data/public/vendor/npm/object-assign@4.1.1/index.js +90 -0
- data/public/vendor/npm/object-assign@4.1.1/package.json +42 -0
- data/public/vendor/npm/object-assign@4.1.1.js +1 -0
- data/public/vendor/npm/path-browserify@0.0.0/index.js +1 -1
- data/public/vendor/npm/path-browserify@0.0.0.js +1 -1
- data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/README.md +4 -1
- data/public/vendor/npm/process@0.11.10/browser.js +184 -0
- data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/package.json +10 -1
- data/public/vendor/npm/process@0.11.10/test.js +185 -0
- data/public/vendor/npm/process@0.11.10.js +1 -0
- data/public/vendor/npm/react-dom@18.0.0/LICENSE +21 -0
- data/public/vendor/npm/react-dom@18.0.0/README.md +50 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.development.js +4771 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.production.min.js +85 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.development.js +4813 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.production.min.js +1705 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.development.js +4746 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.production.min.js +90 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.development.js +4714 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.production.min.js +1746 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.development.js +1017 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.production.min.js +617 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.development.js +20092 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.production.min.js +322 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.profiling.min.js +364 -0
- data/public/vendor/npm/react-dom@18.0.0/client.js +27 -0
- data/public/vendor/npm/react-dom@18.0.0/index.js +23 -0
- data/public/vendor/npm/react-dom@18.0.0/package.json +62 -0
- data/public/vendor/npm/react-dom@18.0.0/profiling.js +23 -0
- data/public/vendor/npm/react-dom@18.0.0/server.browser.js +19 -0
- data/public/vendor/npm/react-dom@18.0.0/server.js +3 -0
- data/public/vendor/npm/react-dom@18.0.0/server.node.js +19 -0
- data/public/vendor/npm/react-dom@18.0.0/test-utils.js +9 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.development.js +4770 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.production.min.js +72 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.development.js +4745 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.production.min.js +74 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.development.js +1013 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.production.min.js +625 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.development.js +20106 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.production.min.js +269 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.profiling.min.js +285 -0
- data/public/vendor/npm/react-dom@18.0.0.js +1 -0
- data/public/vendor/npm/react@18.0.0/LICENSE +21 -0
- data/public/vendor/npm/react@18.0.0/README.md +13 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.development.js +837 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.production.min.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.development.js +849 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.production.min.js +38 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.profiling.min.js +38 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.development.js +1746 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.production.min.js +26 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.development.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.production.min.js +12 -0
- data/public/vendor/npm/react@18.0.0/index.js +9 -0
- data/public/vendor/npm/react@18.0.0/jsx-dev-runtime.js +9 -0
- data/public/vendor/npm/react@18.0.0/jsx-runtime.js +9 -0
- data/public/vendor/npm/react@18.0.0/package.json +47 -0
- data/public/vendor/npm/react@18.0.0/react.shared-subset.js +9 -0
- data/public/vendor/npm/react@18.0.0/umd/react.development.js +2186 -0
- data/public/vendor/npm/react@18.0.0/umd/react.production.min.js +33 -0
- data/public/vendor/npm/react@18.0.0/umd/react.profiling.min.js +33 -0
- data/public/vendor/npm/react@18.0.0.js +1 -0
- data/public/vendor/npm/readable-stream@1.1.14/LICENSE +18 -0
- data/public/vendor/npm/readable-stream@1.1.14/duplex.js +2 -0
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_duplex.js +5 -5
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_passthrough.js +3 -3
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_readable.js +10 -10
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_transform.js +4 -4
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_writable.js +6 -6
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/package.json +1 -1
- data/public/vendor/npm/readable-stream@1.1.14/passthrough.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14/readable.js +13 -0
- data/public/vendor/npm/readable-stream@1.1.14/transform.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14/writable.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14.js +1 -0
- data/public/vendor/npm/scheduler@0.21.0/LICENSE +21 -0
- data/public/vendor/npm/scheduler@0.21.0/README.md +9 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.development.js +530 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.production.min.js +20 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.development.js +153 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.production.min.js +14 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.development.js +444 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.production.min.js +19 -0
- data/public/vendor/npm/scheduler@0.21.0/index.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0/package.json +36 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.development.js +701 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.production.min.js +21 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.development.js +154 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.production.min.js +148 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.profiling.min.js +148 -0
- data/public/vendor/npm/scheduler@0.21.0/unstable_mock.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0/unstable_post_task.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0.js +1 -0
- data/public/vendor/npm/stream-browserify@1.0.0/index.js +7 -7
- data/public/vendor/npm/stream-browserify@1.0.0/test/buf.js +5 -5
- data/public/vendor/npm/stream-browserify@1.0.0.js +1 -1
- data/public/vendor/npm/string_decoder@0.10.31/index.js +2 -2
- data/public/vendor/npm/string_decoder@0.10.31.js +1 -1
- data/public/vendor/npm/util@0.10.3/support/isBuffer.js +1 -1
- data/public/vendor/npm/util@0.10.3/test/browser/inspect.js +2 -2
- data/public/vendor/npm/util@0.10.3/test/browser/is.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/debug.js +4 -4
- data/public/vendor/npm/util@0.10.3/test/node/format.js +2 -2
- data/public/vendor/npm/util@0.10.3/test/node/inspect.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/log.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/util.js +3 -3
- data/public/vendor/npm/util@0.10.3/util.js +3 -3
- data/public/vendor/npm/util@0.10.3.js +1 -1
- data/public/vendor/npm/vm-browserify@0.0.4/LICENSE +18 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/bundle.js +376 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/entry.js +6 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/index.html +9 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/server.js +6 -0
- data/public/vendor/npm/vm-browserify@0.0.4/index.js +139 -0
- data/public/vendor/npm/vm-browserify@0.0.4/package.json +46 -0
- data/public/vendor/npm/vm-browserify@0.0.4/readme.markdown +67 -0
- data/public/vendor/npm/vm-browserify@0.0.4/test/vm.js +34 -0
- data/public/vendor/npm/vm-browserify@0.0.4.js +1 -0
- data/public/vendor/npm/webshim@1.15.8/Gruntfile.js +4 -4
- data/public/vendor/npm/webshim@1.15.8/build/combobuild.js +2 -2
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/color-picker.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/10.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/11.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/17.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/5.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/9.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/excanvas.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/form-number-date-ui.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-html4.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-swf.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/sizzle.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/color-picker.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/10.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/11.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/17.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/5.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/9.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/excanvas.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/form-number-date-ui.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-html4.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-swf.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/sizzle.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/dist/jquery.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/core.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/event.js +1388 -711
- data/public/vendor/npm/webshim@1.15.8/tests/qunit/qunit.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-1-custom.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-2-custom.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/punycode.js +1 -1
- data/public/vendor/system-polyfills.js +865 -1
- data/views/blastn_options.erb +291 -0
- data/views/blastp_options.erb +288 -0
- data/views/blastx_options.erb +318 -0
- data/views/error.erb +12 -0
- data/views/layout.erb +2 -30
- data/views/report.erb +0 -8
- data/views/search.erb +16 -9
- data/views/tblastn_options.erb +266 -0
- data/views/tblastx_options.erb +291 -0
- metadata +320 -439
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.0.js +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0/index.js +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0.js +0 -1
- data/public/vendor/github/jspm/nodelibs-process@0.1.1.js +0 -1
- data/public/vendor/npm/amdefine@1.0.0/LICENSE +0 -58
- data/public/vendor/npm/amdefine@1.0.0/README.md +0 -171
- data/public/vendor/npm/amdefine@1.0.0/amdefine.js +0 -200
- data/public/vendor/npm/amdefine@1.0.0/intercept.js +0 -24
- data/public/vendor/npm/amdefine@1.0.0/package.json +0 -16
- data/public/vendor/npm/amdefine@1.0.0.js +0 -1
- data/public/vendor/npm/base62@0.1.1/LICENSE +0 -20
- data/public/vendor/npm/base62@0.1.1/Readme.md +0 -30
- data/public/vendor/npm/base62@0.1.1/base62.js +0 -28
- data/public/vendor/npm/base62@0.1.1/package.json +0 -21
- data/public/vendor/npm/base62@0.1.1/test/test.js +0 -13
- data/public/vendor/npm/base62@0.1.1.js +0 -1
- data/public/vendor/npm/base64-js@0.0.8/lib/b64.js +0 -125
- data/public/vendor/npm/base64-js@0.0.8/package.json +0 -34
- data/public/vendor/npm/base64-js@0.0.8/test/convert.js +0 -39
- data/public/vendor/npm/base64-js@0.0.8/test/url-safe.js +0 -15
- data/public/vendor/npm/base64-js@0.0.8.js +0 -1
- data/public/vendor/npm/buffer@3.4.3/index.js +0 -1533
- data/public/vendor/npm/buffer@3.4.3/package.json +0 -67
- data/public/vendor/npm/buffer@3.4.3/test/_polyfill.js +0 -152
- data/public/vendor/npm/buffer@3.4.3/test/base64.js +0 -33
- data/public/vendor/npm/buffer@3.4.3/test/basic.js +0 -58
- data/public/vendor/npm/buffer@3.4.3/test/compare.js +0 -53
- data/public/vendor/npm/buffer@3.4.3/test/constructor.js +0 -132
- data/public/vendor/npm/buffer@3.4.3/test/deprecated.js +0 -21
- data/public/vendor/npm/buffer@3.4.3/test/from-string.js +0 -105
- data/public/vendor/npm/buffer@3.4.3/test/methods.js +0 -109
- data/public/vendor/npm/buffer@3.4.3/test/node/README.txt +0 -1
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-ascii.js +0 -20
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-bytelength.js +0 -38
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-concat.js +0 -26
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-indexof.js +0 -78
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-inspect.js +0 -31
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer.js +0 -804
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/README.txt +0 -1
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-arraybuffer.js +0 -37
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-iterator.js +0 -32
- data/public/vendor/npm/buffer@3.4.3/test/slice.js +0 -33
- data/public/vendor/npm/buffer@3.4.3/test/static.js +0 -32
- data/public/vendor/npm/buffer@3.4.3/test/to-string.js +0 -106
- data/public/vendor/npm/buffer@3.4.3/test/write.js +0 -90
- data/public/vendor/npm/buffer@3.4.3.js +0 -1
- data/public/vendor/npm/core-util-is@1.0.1/float.patch +0 -604
- data/public/vendor/npm/core-util-is@1.0.1/lib/util.js +0 -66
- data/public/vendor/npm/core-util-is@1.0.1/util.js +0 -66
- data/public/vendor/npm/core-util-is@1.0.1.js +0 -1
- data/public/vendor/npm/envify@3.4.0/README.md +0 -145
- data/public/vendor/npm/envify@3.4.0/bin/envify +0 -17
- data/public/vendor/npm/envify@3.4.0/custom.js +0 -33
- data/public/vendor/npm/envify@3.4.0/index.js +0 -4
- data/public/vendor/npm/envify@3.4.0/package.json +0 -35
- data/public/vendor/npm/envify@3.4.0/visitors.js +0 -33
- data/public/vendor/npm/envify@3.4.0.js +0 -1
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esparse.js +0 -90
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esvalidate.js +0 -145
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/esprima.js +0 -6191
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/package.json +0 -72
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/compat.js +0 -167
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/reflect.js +0 -421
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/run.js +0 -34
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/runner.js +0 -418
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/test.js +0 -34730
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb.js +0 -1
- data/public/vendor/npm/ieee754@1.1.6/LICENSE +0 -56
- data/public/vendor/npm/ieee754@1.1.6/package.json +0 -34
- data/public/vendor/npm/ieee754@1.1.6/test/basic.js +0 -20
- data/public/vendor/npm/ieee754@1.1.6.js +0 -1
- data/public/vendor/npm/is-array@1.0.1/History.md +0 -11
- data/public/vendor/npm/is-array@1.0.1/Readme.md +0 -27
- data/public/vendor/npm/is-array@1.0.1/component.json +0 -13
- data/public/vendor/npm/is-array@1.0.1/index.js +0 -33
- data/public/vendor/npm/is-array@1.0.1/package.json +0 -10
- data/public/vendor/npm/is-array@1.0.1/test/test.html +0 -46
- data/public/vendor/npm/is-array@1.0.1.js +0 -1
- data/public/vendor/npm/jstransform@10.1.0/LICENSE +0 -201
- data/public/vendor/npm/jstransform@10.1.0/README.md +0 -98
- data/public/vendor/npm/jstransform@10.1.0/jestEnvironment.js +0 -3
- data/public/vendor/npm/jstransform@10.1.0/jestPreprocessor.js +0 -8
- data/public/vendor/npm/jstransform@10.1.0/package.json +0 -52
- data/public/vendor/npm/jstransform@10.1.0/polyfill/Object.es6.js +0 -54
- data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-test.js +0 -246
- data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-utils-test.js +0 -31
- data/public/vendor/npm/jstransform@10.1.0/src/docblock.js +0 -86
- data/public/vendor/npm/jstransform@10.1.0/src/jstransform.js +0 -180
- data/public/vendor/npm/jstransform@10.1.0/src/utils.js +0 -386
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-arrow-function-visitors-test.js +0 -57
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-call-spread-visitors-test.js +0 -46
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-class-visitors-test.js +0 -463
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-destructuring-visitors-test.js +0 -144
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-es7-object-integration-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-concise-method-visitors-test.js +0 -47
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-short-notation-visitors-test.js +0 -33
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-rest-param-visitors-test.js +0 -119
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-template-visitors-test.js +0 -138
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-rest-property-helpers-test.js +0 -47
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-spread-property-visitors-test.js +0 -90
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/generate-type-syntax-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/type-syntax-test.rec.js +0 -846
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/reserved-words-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-alias-syntax-test.js +0 -34
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-class-syntax-test.js +0 -105
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-function-syntax-test.js +0 -126
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-interface-syntax-test.js +0 -29
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-object-method-syntax-test.js +0 -65
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-pattern-syntax-test.js +0 -45
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-syntax-test.js +0 -46
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-variable-declaration-syntax-test.js +0 -102
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-arrow-function-visitors.js +0 -66
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-call-spread-visitors.js +0 -72
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-class-visitors.js +0 -316
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-destructuring-visitors.js +0 -135
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-concise-method-visitors.js +0 -28
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-short-notation-visitors.js +0 -12
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-rest-param-visitors.js +0 -45
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-template-visitors.js +0 -90
- data/public/vendor/npm/jstransform@10.1.0/visitors/es7-rest-property-helpers.js +0 -80
- data/public/vendor/npm/jstransform@10.1.0/visitors/es7-spread-property-visitors.js +0 -56
- data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-helper.js +0 -74
- data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-visitors.js +0 -30
- data/public/vendor/npm/jstransform@10.1.0/visitors/type-syntax.js +0 -118
- data/public/vendor/npm/jstransform@10.1.0.js +0 -1
- data/public/vendor/npm/process@0.10.1/browser.js +0 -58
- data/public/vendor/npm/process@0.10.1.js +0 -1
- data/public/vendor/npm/qs@2.4.1/test/stringify.js +0 -162
- data/public/vendor/npm/react@0.13.3/README.md +0 -20
- data/public/vendor/npm/react@0.13.3/addons.js +0 -2
- data/public/vendor/npm/react@0.13.3/dist/JSXTransformer.js +0 -11346
- data/public/vendor/npm/react@0.13.3/dist/react-with-addons.js +0 -10483
- data/public/vendor/npm/react@0.13.3/dist/react-with-addons.min.js +0 -7297
- data/public/vendor/npm/react@0.13.3/dist/react.js +0 -9468
- data/public/vendor/npm/react@0.13.3/dist/react.min.js +0 -6764
- data/public/vendor/npm/react@0.13.3/lib/AutoFocusMixin.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/BeforeInputEventPlugin.js +0 -197
- data/public/vendor/npm/react@0.13.3/lib/CSSCore.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/CSSProperty.js +0 -123
- data/public/vendor/npm/react@0.13.3/lib/CSSPropertyOperations.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/CallbackQueue.js +0 -43
- data/public/vendor/npm/react@0.13.3/lib/ChangeEventPlugin.js +0 -174
- data/public/vendor/npm/react@0.13.3/lib/ClientReactRootIndex.js +0 -23
- data/public/vendor/npm/react@0.13.3/lib/DOMChildrenOperations.js +0 -57
- data/public/vendor/npm/react@0.13.3/lib/DOMProperty.js +0 -96
- data/public/vendor/npm/react@0.13.3/lib/DOMPropertyOperations.js +0 -99
- data/public/vendor/npm/react@0.13.3/lib/Danger.js +0 -67
- data/public/vendor/npm/react@0.13.3/lib/DefaultEventPluginOrder.js +0 -5
- data/public/vendor/npm/react@0.13.3/lib/EnterLeaveEventPlugin.js +0 -69
- data/public/vendor/npm/react@0.13.3/lib/EventConstants.js +0 -55
- data/public/vendor/npm/react@0.13.3/lib/EventListener.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/EventPluginHub.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/EventPluginRegistry.js +0 -115
- data/public/vendor/npm/react@0.13.3/lib/EventPluginUtils.js +0 -121
- data/public/vendor/npm/react@0.13.3/lib/EventPropagators.js +0 -62
- data/public/vendor/npm/react@0.13.3/lib/ExecutionEnvironment.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/FallbackCompositionState.js +0 -45
- data/public/vendor/npm/react@0.13.3/lib/HTMLDOMPropertyConfig.js +0 -155
- data/public/vendor/npm/react@0.13.3/lib/LinkedStateMixin.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/LinkedValueUtils.js +0 -74
- data/public/vendor/npm/react@0.13.3/lib/LocalEventTrapMixin.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/MobileSafariClickEventPlugin.js +0 -17
- data/public/vendor/npm/react@0.13.3/lib/Object.assign.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/PooledClass.js +0 -75
- data/public/vendor/npm/react@0.13.3/lib/React.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactBrowserComponentMixin.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/ReactBrowserEventEmitter.js +0 -136
- data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroup.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroupChild.js +0 -92
- data/public/vendor/npm/react@0.13.3/lib/ReactChildReconciler.js +0 -57
- data/public/vendor/npm/react@0.13.3/lib/ReactChildren.js +0 -67
- data/public/vendor/npm/react@0.13.3/lib/ReactClass.js +0 -338
- data/public/vendor/npm/react@0.13.3/lib/ReactComponent.js +0 -50
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentBrowserEnvironment.js +0 -14
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentEnvironment.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentWithPureRenderMixin.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/ReactCompositeComponent.js +0 -374
- data/public/vendor/npm/react@0.13.3/lib/ReactContext.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/ReactCurrentOwner.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/ReactDOM.js +0 -146
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMButton.js +0 -35
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMComponent.js +0 -267
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMForm.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMIDOperations.js +0 -63
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMIframe.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMImg.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMInput.js +0 -94
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMOption.js +0 -23
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelect.js +0 -112
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelection.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextComponent.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextarea.js +0 -70
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultBatchingStrategy.js +0 -37
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultInjection.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerf.js +0 -183
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerfAnalysis.js +0 -145
- data/public/vendor/npm/react@0.13.3/lib/ReactElement.js +0 -151
- data/public/vendor/npm/react@0.13.3/lib/ReactElementValidator.js +0 -218
- data/public/vendor/npm/react@0.13.3/lib/ReactEmptyComponent.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactErrorUtils.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/ReactEventEmitterMixin.js +0 -12
- data/public/vendor/npm/react@0.13.3/lib/ReactEventListener.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactFragment.js +0 -110
- data/public/vendor/npm/react@0.13.3/lib/ReactInjection.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/ReactInputSelection.js +0 -75
- data/public/vendor/npm/react@0.13.3/lib/ReactInstanceHandles.js +0 -113
- data/public/vendor/npm/react@0.13.3/lib/ReactInstanceMap.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactLifeCycle.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/ReactLink.js +0 -16
- data/public/vendor/npm/react@0.13.3/lib/ReactMarkupChecksum.js +0 -17
- data/public/vendor/npm/react@0.13.3/lib/ReactMount.js +0 -347
- data/public/vendor/npm/react@0.13.3/lib/ReactMultiChild.js +0 -190
- data/public/vendor/npm/react@0.13.3/lib/ReactMultiChildUpdateTypes.js +0 -10
- data/public/vendor/npm/react@0.13.3/lib/ReactNativeComponent.js +0 -53
- data/public/vendor/npm/react@0.13.3/lib/ReactOwner.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactPerf.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTransferer.js +0 -40
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocationNames.js +0 -13
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocations.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypes.js +0 -225
- data/public/vendor/npm/react@0.13.3/lib/ReactPutListenerQueue.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/ReactReconcileTransaction.js +0 -66
- data/public/vendor/npm/react@0.13.3/lib/ReactReconciler.js +0 -44
- data/public/vendor/npm/react@0.13.3/lib/ReactRef.js +0 -36
- data/public/vendor/npm/react@0.13.3/lib/ReactRootIndex.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/ReactServerRendering.js +0 -44
- data/public/vendor/npm/react@0.13.3/lib/ReactServerRenderingTransaction.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactStateSetters.js +0 -104
- data/public/vendor/npm/react@0.13.3/lib/ReactTestUtils.js +0 -249
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionChildMapping.js +0 -53
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionEvents.js +0 -68
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionGroup.js +0 -140
- data/public/vendor/npm/react@0.13.3/lib/ReactUpdateQueue.js +0 -107
- data/public/vendor/npm/react@0.13.3/lib/ReactUpdates.js +0 -139
- data/public/vendor/npm/react@0.13.3/lib/ReactWithAddons.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/SVGDOMPropertyConfig.js +0 -76
- data/public/vendor/npm/react@0.13.3/lib/SelectEventPlugin.js +0 -91
- data/public/vendor/npm/react@0.13.3/lib/ServerReactRootIndex.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/SimpleEventPlugin.js +0 -287
- data/public/vendor/npm/react@0.13.3/lib/SyntheticClipboardEvent.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/SyntheticCompositionEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticDragEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticEvent.js +0 -90
- data/public/vendor/npm/react@0.13.3/lib/SyntheticFocusEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticInputEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticKeyboardEvent.js +0 -43
- data/public/vendor/npm/react@0.13.3/lib/SyntheticMouseEvent.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/SyntheticTouchEvent.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/SyntheticUIEvent.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/SyntheticWheelEvent.js +0 -18
- data/public/vendor/npm/react@0.13.3/lib/Transaction.js +0 -90
- data/public/vendor/npm/react@0.13.3/lib/ViewportMetrics.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/accumulateInto.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/adler32.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/camelize.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/camelizeStyleName.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/cloneWithProps.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/containsNode.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/createArrayFromMixed.js +0 -15
- data/public/vendor/npm/react@0.13.3/lib/createFullPageComponent.js +0 -22
- data/public/vendor/npm/react@0.13.3/lib/createNodesFromMarkup.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/cx.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/dangerousStyleValue.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/emptyFunction.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/emptyObject.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/escapeTextContentForBrowser.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/findDOMNode.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/flattenChildren.js +0 -25
- data/public/vendor/npm/react@0.13.3/lib/focusNode.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/forEachAccumulated.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/getActiveElement.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/getEventCharCode.js +0 -50
- data/public/vendor/npm/react@0.13.3/lib/getEventKey.js +0 -72
- data/public/vendor/npm/react@0.13.3/lib/getEventModifierState.js +0 -45
- data/public/vendor/npm/react@0.13.3/lib/getEventTarget.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/getIteratorFn.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/getMarkupWrap.js +0 -73
- data/public/vendor/npm/react@0.13.3/lib/getNodeForCharacterOffset.js +0 -73
- data/public/vendor/npm/react@0.13.3/lib/getReactRootElementInContainer.js +0 -33
- data/public/vendor/npm/react@0.13.3/lib/getTextContentAccessor.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/getUnboundedScrollPosition.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/hyphenate.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/hyphenateStyleName.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/instantiateReactComponent.js +0 -55
- data/public/vendor/npm/react@0.13.3/lib/invariant.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/isEventSupported.js +0 -24
- data/public/vendor/npm/react@0.13.3/lib/isNode.js +0 -25
- data/public/vendor/npm/react@0.13.3/lib/isTextInputElement.js +0 -41
- data/public/vendor/npm/react@0.13.3/lib/isTextNode.js +0 -6
- data/public/vendor/npm/react@0.13.3/lib/joinClasses.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/keyMirror.js +0 -18
- data/public/vendor/npm/react@0.13.3/lib/keyOf.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/mapObject.js +0 -51
- data/public/vendor/npm/react@0.13.3/lib/memoizeStringOnly.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/onlyChild.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/performance.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/performanceNow.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/quoteAttributeValueForBrowser.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/setInnerHTML.js +0 -40
- data/public/vendor/npm/react@0.13.3/lib/setTextContent.js +0 -16
- data/public/vendor/npm/react@0.13.3/lib/shallowEqual.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/shouldUpdateReactComponent.js +0 -51
- data/public/vendor/npm/react@0.13.3/lib/toArray.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/traverseAllChildren.js +0 -104
- data/public/vendor/npm/react@0.13.3/lib/update.js +0 -78
- data/public/vendor/npm/react@0.13.3/lib/warning.js +0 -34
- data/public/vendor/npm/react@0.13.3/package.json +0 -34
- data/public/vendor/npm/react@0.13.3/react.js +0 -2
- data/public/vendor/npm/react@0.13.3.js +0 -1
- data/public/vendor/npm/readable-stream@1.1.13/duplex.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/passthrough.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/readable.js +0 -8
- data/public/vendor/npm/readable-stream@1.1.13/transform.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/writable.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13.js +0 -1
- data/public/vendor/npm/source-map@0.1.31/CHANGELOG.md +0 -112
- data/public/vendor/npm/source-map@0.1.31/LICENSE +0 -28
- data/public/vendor/npm/source-map@0.1.31/Makefile.dryice.js +0 -89
- data/public/vendor/npm/source-map@0.1.31/README.md +0 -434
- data/public/vendor/npm/source-map@0.1.31/build/assert-shim.js +0 -58
- data/public/vendor/npm/source-map@0.1.31/build/mini-require.js +0 -154
- data/public/vendor/npm/source-map@0.1.31/build/prefix-source-map.jsm +0 -20
- data/public/vendor/npm/source-map@0.1.31/build/prefix-utils.jsm +0 -18
- data/public/vendor/npm/source-map@0.1.31/build/suffix-browser.js +0 -8
- data/public/vendor/npm/source-map@0.1.31/build/suffix-source-map.jsm +0 -6
- data/public/vendor/npm/source-map@0.1.31/build/suffix-utils.jsm +0 -21
- data/public/vendor/npm/source-map@0.1.31/build/test-prefix.js +0 -10
- data/public/vendor/npm/source-map@0.1.31/build/test-suffix.js +0 -5
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/array-set.js +0 -49
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64-vlq.js +0 -56
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64.js +0 -44
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/binary-search.js +0 -83
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-consumer.js +0 -238
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-generator.js +0 -231
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-node.js +0 -234
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/util.js +0 -207
- data/public/vendor/npm/source-map@0.1.31/lib/source-map.js +0 -4
- data/public/vendor/npm/source-map@0.1.31/package.json +0 -52
- data/public/vendor/npm/source-map@0.1.31/test/run-tests.js +0 -50
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-api.js +0 -19
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-array-set.js +0 -84
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64-vlq.js +0 -17
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64.js +0 -26
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-binary-search.js +0 -37
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-dog-fooding.js +0 -76
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-consumer.js +0 -426
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-generator.js +0 -480
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-node.js +0 -307
- data/public/vendor/npm/source-map@0.1.31/test/source-map/util.js +0 -84
- data/public/vendor/npm/source-map@0.1.31.js +0 -1
- data/public/vendor/npm/through@2.3.8/LICENSE.APACHE2 +0 -15
- data/public/vendor/npm/through@2.3.8/LICENSE.MIT +0 -24
- data/public/vendor/npm/through@2.3.8/index.js +0 -93
- data/public/vendor/npm/through@2.3.8/package.json +0 -36
- data/public/vendor/npm/through@2.3.8/readme.markdown +0 -64
- data/public/vendor/npm/through@2.3.8/test/async.js +0 -26
- data/public/vendor/npm/through@2.3.8/test/auto-destroy.js +0 -26
- data/public/vendor/npm/through@2.3.8/test/buffering.js +0 -57
- data/public/vendor/npm/through@2.3.8/test/end.js +0 -37
- data/public/vendor/npm/through@2.3.8/test/index.js +0 -98
- data/public/vendor/npm/through@2.3.8/test.js +0 -2
- data/public/vendor/npm/through@2.3.8.js +0 -1
- data/views/_options.erb +0 -156
- /data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-buffer@0.1.1}/index.js +0 -0
- /data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/index.js +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → assert@1.5.0}/LICENSE +0 -0
- /data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/LICENSE +0 -0
- /data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/README.md +0 -0
- /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/LICENSE +0 -0
- /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/index.js +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/README.md +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/float.patch +0 -0
@@ -8,7 +8,8 @@ module SequenceServer
|
|
8
8
|
# Example usage:
|
9
9
|
#
|
10
10
|
# makeblastdb = MAKEBLASTDB.new(database_dir)
|
11
|
-
# makeblastdb.
|
11
|
+
# makeblastdb.run # formats and re-formats databases in database_dir
|
12
|
+
# makeblastdb.formatted_fastas # lists formatted databases
|
12
13
|
#
|
13
14
|
class MAKEBLASTDB
|
14
15
|
extend Forwardable
|
@@ -20,56 +21,17 @@ module SequenceServer
|
|
20
21
|
end
|
21
22
|
|
22
23
|
attr_reader :database_dir
|
23
|
-
attr_reader :formatted_fastas
|
24
|
-
attr_reader :fastas_to_format
|
25
|
-
attr_reader :fastas_to_reformat
|
26
24
|
|
27
|
-
# Scans the database directory to determine which FASTA files require
|
28
|
-
# formatting or re-formatting.
|
29
|
-
#
|
30
|
-
# Returns `true` if there are files to (re-)format, `false` otherwise.
|
31
|
-
def scan
|
32
|
-
# We need to know the list of formatted FASTAs as reported by blastdbcmd
|
33
|
-
# first. This is required to determine both unformatted FASTAs and those
|
34
|
-
# that require reformatting.
|
35
|
-
@formatted_fastas = []
|
36
|
-
determine_formatted_fastas
|
37
|
-
|
38
|
-
# Now determine FASTA files that are unformatted or require reformatting.
|
39
|
-
@fastas_to_format = []
|
40
|
-
determine_unformatted_fastas
|
41
|
-
@fastas_to_reformat = []
|
42
|
-
determine_fastas_to_reformat
|
43
|
-
|
44
|
-
# Return true if there are files to be (re-)formatted or false otherwise.
|
45
|
-
!@fastas_to_format.empty? || !@fastas_to_reformat.empty?
|
46
|
-
end
|
47
|
-
|
48
|
-
# Returns true if at least one database in database directory is formatted.
|
49
25
|
def any_formatted?
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
# Returns true if there is at least one unformatted FASTA in the databases
|
54
|
-
# directory.
|
55
|
-
def any_unformatted?
|
56
|
-
!@fastas_to_format.empty?
|
26
|
+
formatted_fastas.any?
|
57
27
|
end
|
58
28
|
|
59
|
-
|
60
|
-
|
61
|
-
#
|
62
|
-
# Note that it is okay to only use V4 databases or only V5 databases.
|
63
|
-
# Incompatibility arises when they are mixed.
|
64
|
-
def any_incompatible?
|
65
|
-
return false if @formatted_fastas.all? { |ff| ff.v4? || ff.alias? }
|
66
|
-
return false if @formatted_fastas.all? { |ff| ff.v5? || ff.alias? }
|
67
|
-
true
|
29
|
+
def any_to_format_or_reformat?
|
30
|
+
any_to_format? || any_to_reformat?
|
68
31
|
end
|
69
32
|
|
70
|
-
# Runs makeblastdb on each file in
|
71
|
-
#
|
72
|
-
# has been run before.
|
33
|
+
# Runs makeblastdb on each file in `fastas_to_format` and
|
34
|
+
# `fastas_to_reformat`.
|
73
35
|
def run
|
74
36
|
format
|
75
37
|
reformat
|
@@ -80,8 +42,9 @@ module SequenceServer
|
|
80
42
|
def format
|
81
43
|
# Make the intent clear as well as ensure the program won't crash if we
|
82
44
|
# accidentally call format before calling scan.
|
83
|
-
return unless
|
84
|
-
|
45
|
+
return unless any_to_format?
|
46
|
+
|
47
|
+
fastas_to_format.select do |path, title, type|
|
85
48
|
make_blast_database('format', path, title, type)
|
86
49
|
end
|
87
50
|
end
|
@@ -91,50 +54,75 @@ module SequenceServer
|
|
91
54
|
def reformat
|
92
55
|
# Make the intent clear as well as ensure the program won't crash if
|
93
56
|
# we accidentally call reformat before calling scan.
|
94
|
-
return unless
|
95
|
-
|
57
|
+
return unless any_to_reformat?
|
58
|
+
|
59
|
+
fastas_to_reformat.select do |path, title, type, non_parse_seqids|
|
96
60
|
make_blast_database('reformat', path, title, type, non_parse_seqids)
|
97
61
|
end
|
98
62
|
end
|
99
63
|
|
100
|
-
private
|
101
|
-
|
102
64
|
# Determines which FASTA files in the database directory are already
|
103
|
-
# formatted.
|
104
|
-
def
|
65
|
+
# formatted.
|
66
|
+
def formatted_fastas
|
67
|
+
return @formatted_fastas if defined?(@formatted_fastas)
|
68
|
+
|
69
|
+
@formatted_fastas = []
|
70
|
+
|
105
71
|
blastdbcmd.each_line do |line|
|
106
72
|
path, *rest = line.chomp.split("\t")
|
107
73
|
next if multipart_database_name?(path)
|
74
|
+
|
108
75
|
rest << get_categories(path)
|
109
76
|
@formatted_fastas << Database.new(path, *rest)
|
110
77
|
end
|
78
|
+
|
79
|
+
@formatted_fastas
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
|
84
|
+
def any_to_format?
|
85
|
+
fastas_to_format.any?
|
86
|
+
end
|
87
|
+
|
88
|
+
def any_to_reformat?
|
89
|
+
fastas_to_reformat.any?
|
111
90
|
end
|
112
91
|
|
113
92
|
# Determines which FASTA files in the database directory require
|
114
|
-
# reformatting.
|
115
|
-
def
|
116
|
-
@
|
117
|
-
|
118
|
-
|
119
|
-
|
93
|
+
# reformatting.
|
94
|
+
def fastas_to_reformat
|
95
|
+
return @fastas_to_reformat if defined?(@fastas_to_reformat)
|
96
|
+
|
97
|
+
@fastas_to_reformat = []
|
98
|
+
formatted_fastas.each do |ff|
|
99
|
+
@fastas_to_reformat << [ff.path, ff.title, ff.type, ff.non_parse_seqids?] if ff.v4? || ff.non_parse_seqids?
|
120
100
|
end
|
101
|
+
|
102
|
+
@fastas_to_reformat
|
121
103
|
end
|
122
104
|
|
123
105
|
# Determines which FASTA files in the database directory are
|
124
|
-
# unformatted.
|
125
|
-
def
|
106
|
+
# unformatted.
|
107
|
+
def fastas_to_format
|
108
|
+
return @fastas_to_format if defined?(@fastas_to_format)
|
109
|
+
|
110
|
+
@fastas_to_format = []
|
111
|
+
|
126
112
|
# Add a trailing slash to database_dir - Find.find doesn't work as
|
127
113
|
# expected without the trailing slash if database_dir is a symlink
|
128
114
|
# inside a docker container.
|
129
115
|
Find.find(database_dir + '/') do |path|
|
130
116
|
next if File.directory?(path)
|
131
117
|
next unless probably_fasta?(path)
|
132
|
-
next if
|
118
|
+
next if formatted_fastas.any? { |f| f[0] == path }
|
133
119
|
|
134
120
|
@fastas_to_format << [path,
|
135
|
-
|
136
|
-
|
121
|
+
make_db_title(path),
|
122
|
+
guess_sequence_type_in_fasta(path)]
|
137
123
|
end
|
124
|
+
|
125
|
+
@fastas_to_format
|
138
126
|
end
|
139
127
|
|
140
128
|
# Runs `blastdbcmd` to determine formatted FASTA files in the database
|
@@ -146,14 +134,16 @@ module SequenceServer
|
|
146
134
|
out, err = sys(cmd, path: config[:bin])
|
147
135
|
errpat = /BLAST Database error/
|
148
136
|
fail BLAST_DATABASE_ERROR.new(cmd, err) if err.match(errpat)
|
149
|
-
|
137
|
+
|
138
|
+
out
|
150
139
|
rescue CommandFailed => e
|
151
|
-
|
140
|
+
raise BLAST_DATABASE_ERROR.new(cmd, e.stderr)
|
152
141
|
end
|
153
142
|
|
154
143
|
# Create BLAST database, given FASTA file and sequence type in FASTA file.
|
155
144
|
def make_blast_database(action, file, title, type, non_parse_seqids = false)
|
156
145
|
return unless make_blast_database?(action, file, type)
|
146
|
+
|
157
147
|
title = confirm_database_title(title)
|
158
148
|
extract_fasta(file) unless File.exist?(file)
|
159
149
|
taxonomy = taxid_map(file, non_parse_seqids) || taxid
|
@@ -188,9 +178,10 @@ module SequenceServer
|
|
188
178
|
# using blastdbcmd.
|
189
179
|
def taxid_map(db, non_parse_seqids)
|
190
180
|
return if non_parse_seqids
|
181
|
+
|
191
182
|
taxid_map = db.sub(/#{File.extname(db)}$/, '.taxid_map.txt')
|
192
|
-
extract_taxid_map(db, taxid_map)
|
193
|
-
"-taxid_map #{taxid_map}"
|
183
|
+
extract_taxid_map(db, taxid_map) unless File.exist?(taxid_map)
|
184
|
+
"-taxid_map #{taxid_map}" unless File.zero?(taxid_map)
|
194
185
|
end
|
195
186
|
|
196
187
|
# Get taxid from the user. Returns user input or 0.
|
@@ -211,10 +202,24 @@ module SequenceServer
|
|
211
202
|
cmd = "makeblastdb -parse_seqids -hash_index -in '#{file}'" \
|
212
203
|
" -dbtype #{type.to_s.slice(0, 4)} -title '#{title}'" \
|
213
204
|
" #{taxonomy}"
|
214
|
-
|
205
|
+
|
206
|
+
output = if File.directory?(file)
|
207
|
+
File.join(file, 'makeblastdb')
|
208
|
+
else
|
209
|
+
"#{file}.makeblastdb"
|
210
|
+
end
|
211
|
+
|
212
|
+
out, err = sys(
|
213
|
+
cmd,
|
214
|
+
path: config[:bin],
|
215
|
+
stderr: [output, 'stderr'].join,
|
216
|
+
stdout: [output, 'stdout'].join
|
217
|
+
)
|
218
|
+
|
215
219
|
puts out.strip
|
216
220
|
puts err.strip
|
217
|
-
|
221
|
+
|
222
|
+
true
|
218
223
|
rescue CommandFailed => e
|
219
224
|
puts <<~MSG
|
220
225
|
Could not create BLAST database for: #{file}
|
@@ -261,7 +266,7 @@ module SequenceServer
|
|
261
266
|
# /home/ben/pd.ben/sequenceserver/db/nr00 => no
|
262
267
|
# /mnt/blast-db/refseq_genomic.100 => yes
|
263
268
|
def multipart_database_name?(db_name)
|
264
|
-
!
|
269
|
+
!db_name.match(%r{.+/\S+\.\d{2,3}$}).nil?
|
265
270
|
end
|
266
271
|
|
267
272
|
def get_categories(path)
|
@@ -273,7 +278,10 @@ module SequenceServer
|
|
273
278
|
|
274
279
|
# Returns true if first character of the file is '>'.
|
275
280
|
def probably_fasta?(file)
|
276
|
-
|
281
|
+
unless file.match(/((cdna)|(cds)|(dna)|(fa)|(faa)|(fas)|(fasta)|(fna)|(genome)|(nt)|(nuc)|(pep)|(prot))$/i)
|
282
|
+
return false
|
283
|
+
end
|
284
|
+
|
277
285
|
File.read(file, 1) == '>'
|
278
286
|
end
|
279
287
|
|
data/lib/sequenceserver/pool.rb
CHANGED
@@ -7,11 +7,8 @@ module SequenceServer
|
|
7
7
|
# own report subclass.
|
8
8
|
class Report
|
9
9
|
class << self
|
10
|
-
# Generates report for the given job. Returns generated report object.
|
11
|
-
#
|
12
|
-
# TODO: Dynamic dispatch.
|
13
10
|
def generate(job)
|
14
|
-
BLAST::Report.new(job)
|
11
|
+
BLAST::Report.new(job).generate
|
15
12
|
end
|
16
13
|
end
|
17
14
|
|
@@ -23,7 +20,6 @@ module SequenceServer
|
|
23
20
|
def initialize(job)
|
24
21
|
@job = job
|
25
22
|
yield if block_given?
|
26
|
-
generate
|
27
23
|
end
|
28
24
|
|
29
25
|
attr_reader :job
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'tilt/erb'
|
3
3
|
require 'sinatra/base'
|
4
|
+
require 'rest-client'
|
4
5
|
|
5
6
|
require 'sequenceserver/job'
|
6
7
|
require 'sequenceserver/blast'
|
@@ -79,9 +80,7 @@ module SequenceServer
|
|
79
80
|
options: SequenceServer.config[:options]
|
80
81
|
}
|
81
82
|
|
82
|
-
if SequenceServer.config[:databases_widget] == 'tree'
|
83
|
-
searchdata.update(tree: Database.tree)
|
84
|
-
end
|
83
|
+
searchdata.update(tree: Database.tree) if SequenceServer.config[:databases_widget] == 'tree'
|
85
84
|
|
86
85
|
# If a job_id is specified, update searchdata from job meta data (i.e.,
|
87
86
|
# query, pre-selected databases, advanced options used). Query is only
|
@@ -107,7 +106,28 @@ module SequenceServer
|
|
107
106
|
get '/:jid.json' do |jid|
|
108
107
|
job = Job.fetch(jid)
|
109
108
|
halt 202 unless job.done?
|
110
|
-
|
109
|
+
|
110
|
+
report = Report.generate(job)
|
111
|
+
halt 202 unless report.done?
|
112
|
+
|
113
|
+
display_large_result_warning =
|
114
|
+
SequenceServer.config[:large_result_warning_threshold].to_i.positive? &&
|
115
|
+
params[:bypass_file_size_warning] != 'true' &&
|
116
|
+
report.xml_file_size > SequenceServer.config[:large_result_warning_threshold]
|
117
|
+
|
118
|
+
if display_large_result_warning
|
119
|
+
halt 200,
|
120
|
+
{
|
121
|
+
user_warning: 'LARGE_RESULT',
|
122
|
+
download_links: [
|
123
|
+
{ name: 'Standard Tabular Report', url: "download/#{jid}.std_tsv" },
|
124
|
+
{ name: 'Full Tabular Report', url: "/download/#{jid}.full_tsv" },
|
125
|
+
{ name: 'Results in XML', url: "/download/#{jid}.xml" }
|
126
|
+
]
|
127
|
+
}.to_json
|
128
|
+
end
|
129
|
+
|
130
|
+
report.to_json
|
111
131
|
end
|
112
132
|
|
113
133
|
# Returns base HTML. Rest happens client-side: polling for and rendering
|
@@ -138,7 +158,7 @@ module SequenceServer
|
|
138
158
|
database_ids = params['database_ids'].split(',')
|
139
159
|
sequences = Sequence::Retriever.new(sequence_ids, database_ids, true)
|
140
160
|
send_file(sequences.file.path,
|
141
|
-
type:
|
161
|
+
type: sequences.mime,
|
142
162
|
filename: sequences.filename)
|
143
163
|
end
|
144
164
|
|
@@ -146,7 +166,58 @@ module SequenceServer
|
|
146
166
|
get '/download/:jid.:type' do |jid, type|
|
147
167
|
job = Job.fetch(jid)
|
148
168
|
out = BLAST::Formatter.new(job, type)
|
149
|
-
send_file out.
|
169
|
+
send_file out.filepath, filename: out.filename, type: out.mime
|
170
|
+
end
|
171
|
+
|
172
|
+
post '/cloud_share' do
|
173
|
+
content_type :json
|
174
|
+
request_params = JSON.parse(request.body.read)
|
175
|
+
job = Job.fetch(request_params['job_id'])
|
176
|
+
|
177
|
+
unless job.done?
|
178
|
+
status 422
|
179
|
+
{ errors: ["Job #{request_params['job_id']} is not finished yet."] }.to_json
|
180
|
+
end
|
181
|
+
|
182
|
+
unless SequenceServer.config[:cloud_share_url]
|
183
|
+
status 503
|
184
|
+
{ errors: ['Sorry, cloud sharing is not enabled on this server.'] }.to_json
|
185
|
+
end
|
186
|
+
|
187
|
+
begin
|
188
|
+
job.as_archived_file do |archived_job_file|
|
189
|
+
cloud_share_response = RestClient.post(
|
190
|
+
SequenceServer.config[:cloud_share_url],
|
191
|
+
{
|
192
|
+
shared_job: {
|
193
|
+
sender: {
|
194
|
+
email: request_params['sender_email']
|
195
|
+
},
|
196
|
+
archived_job_file: archived_job_file,
|
197
|
+
original_job_id: job.id
|
198
|
+
}
|
199
|
+
}
|
200
|
+
)
|
201
|
+
|
202
|
+
return cloud_share_response.body
|
203
|
+
end
|
204
|
+
rescue RestClient::ExceptionWithResponse => e
|
205
|
+
cloud_share_response = e.response
|
206
|
+
|
207
|
+
case cloud_share_response.code
|
208
|
+
when 413
|
209
|
+
halt 413,
|
210
|
+
{ errors: ['Sorry, the results are too large to share, please consider \
|
211
|
+
using https://sequenceserver.com/cloud'] }.to_json
|
212
|
+
when 422
|
213
|
+
halt 422, JSON.parse(cloud_share_response.body).to_json
|
214
|
+
else
|
215
|
+
error cloud_share_response.code,
|
216
|
+
{ errors: ["Unexpected Cloudshare response: #{cloud_share_response.code}"] }.to_json
|
217
|
+
end
|
218
|
+
rescue Errno::ECONNREFUSED
|
219
|
+
error 503, { errors: ['Sorry, the cloud sharing server may not be running. Try again later.'] }.to_json
|
220
|
+
end
|
150
221
|
end
|
151
222
|
|
152
223
|
# Catches any exception raised within the app and returns JSON
|
@@ -173,6 +244,7 @@ module SequenceServer
|
|
173
244
|
# more_info.
|
174
245
|
error 400..500 do
|
175
246
|
error = env['sinatra.error']
|
247
|
+
return unless error
|
176
248
|
|
177
249
|
# All errors will have a message.
|
178
250
|
error_data = { message: error.message }
|
@@ -193,7 +265,13 @@ module SequenceServer
|
|
193
265
|
error_data[:more_info] = error.backtrace.join("\n")
|
194
266
|
end
|
195
267
|
|
196
|
-
|
268
|
+
if request.env['HTTP_ACCEPT'].to_s.include?('application/json')
|
269
|
+
content_type :json
|
270
|
+
error_data.to_json
|
271
|
+
else
|
272
|
+
content_type :html
|
273
|
+
erb :error, locals: { error_data: error_data }, layout: true
|
274
|
+
end
|
197
275
|
end
|
198
276
|
|
199
277
|
# Get the query sequences, selected databases, and advanced params used.
|
@@ -202,7 +280,7 @@ module SequenceServer
|
|
202
280
|
return if job.imported_xml_file
|
203
281
|
|
204
282
|
# Only read job.qfile if we are not going to use Database.retrieve.
|
205
|
-
searchdata[:query] = File.read(job.qfile)
|
283
|
+
searchdata[:query] = File.read(job.qfile) unless params[:query]
|
206
284
|
|
207
285
|
# Which databases to pre-select.
|
208
286
|
searchdata[:preSelectedDbs] = job.databases
|
@@ -213,7 +291,12 @@ module SequenceServer
|
|
213
291
|
# default advanced parameters from the advanced params input field. In
|
214
292
|
# this case, we do want the advanced params input field to be empty when
|
215
293
|
# the user hits the back button. Thus we do not test for empty string.
|
216
|
-
|
294
|
+
method = job.method.to_sym
|
295
|
+
if job.advanced && job.advanced !=
|
296
|
+
searchdata[:options][method][:default].join(' ')
|
297
|
+
searchdata[:options] = searchdata[:options].deep_copy
|
298
|
+
searchdata[:options][method]['last search'] = [job.advanced]
|
299
|
+
end
|
217
300
|
end
|
218
301
|
end
|
219
302
|
end
|
@@ -136,6 +136,7 @@ module SequenceServer
|
|
136
136
|
# Returns a file name to use for the temporary file.
|
137
137
|
def filename
|
138
138
|
return @filename if @filename
|
139
|
+
|
139
140
|
name = sequence_ids.first if sequence_ids.length == 1
|
140
141
|
name = "#{sequence_ids.length}_hits" if sequence_ids.length >= 2
|
141
142
|
@filename = "sequenceserver-#{name}.fa"
|
@@ -182,14 +183,12 @@ module SequenceServer
|
|
182
183
|
validate && run
|
183
184
|
end
|
184
185
|
|
185
|
-
attr_reader :sequence_ids, :database_ids, :in_file
|
186
|
-
|
187
|
-
attr_reader :sequences
|
186
|
+
attr_reader :sequence_ids, :database_ids, :in_file, :sequences
|
188
187
|
|
189
|
-
def to_json
|
188
|
+
def to_json(*_args)
|
190
189
|
{
|
191
190
|
error_msgs: error_msgs,
|
192
|
-
sequences:
|
191
|
+
sequences: sequences.map(&:info)
|
193
192
|
}.to_json
|
194
193
|
end
|
195
194
|
|
@@ -224,13 +223,15 @@ module SequenceServer
|
|
224
223
|
ids = Database.ids
|
225
224
|
return true if database_ids.is_a?(Array) && !database_ids.empty? &&
|
226
225
|
(ids & database_ids).length == database_ids.length
|
227
|
-
|
228
|
-
|
226
|
+
|
227
|
+
fail DatabaseUnreachableError, 'Database id should be one of:' \
|
228
|
+
" #{ids.join("\n")}"
|
229
229
|
end
|
230
230
|
|
231
231
|
# rubocop:disable Metrics/MethodLength
|
232
232
|
def error_msgs
|
233
233
|
return [] if sequences.length == sequence_ids.length
|
234
|
+
|
234
235
|
[
|
235
236
|
['ERROR: incorrect number of sequences found.',
|
236
237
|
<<~MSG
|
data/lib/sequenceserver/sys.rb
CHANGED
@@ -47,8 +47,8 @@ module SequenceServer
|
|
47
47
|
|
48
48
|
# Execute the shell command, redirect stdout and stderr to the
|
49
49
|
# temporary files.
|
50
|
-
exec(
|
51
|
-
|
50
|
+
exec(command, out: temp_files[:stdout].path.to_s, \
|
51
|
+
err: temp_files[:stderr].path.to_s)
|
52
52
|
end
|
53
53
|
|
54
54
|
# Wait for the termination of the child process.
|
@@ -67,7 +67,7 @@ module SequenceServer
|
|
67
67
|
|
68
68
|
# Now move the temporary file to the given path.
|
69
69
|
# TODO: don't we need to explicitly close the temp file here?
|
70
|
-
FileUtils.
|
70
|
+
FileUtils.cp(temp_files[channel], filename)
|
71
71
|
end
|
72
72
|
|
73
73
|
# Read the remaining temp files into memory. For large outputs,
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Source: https://github.com/rubyzip/rubyzip/blob/9d891f7353e66052283562d3e252fe380bb4b199/samples/example_recursive.rb
|
2
|
+
|
3
|
+
require 'zip'
|
4
|
+
|
5
|
+
# This is a simple example which uses rubyzip to
|
6
|
+
# recursively generate a zip file from the contents of
|
7
|
+
# a specified directory. The directory itself is not
|
8
|
+
# included in the archive, rather just its contents.
|
9
|
+
#
|
10
|
+
# Usage:
|
11
|
+
# directory_to_zip = "/tmp/input"
|
12
|
+
# output_file = "/tmp/out.zip"
|
13
|
+
# zf = ZipFileGenerator.new(directory_to_zip, output_file)
|
14
|
+
# zf.write()
|
15
|
+
class ZipFileGenerator
|
16
|
+
# Initialize with the directory to zip and the location of the output archive.
|
17
|
+
def initialize(input_dir, output_file)
|
18
|
+
@input_dir = input_dir
|
19
|
+
@output_file = output_file
|
20
|
+
end
|
21
|
+
|
22
|
+
# Zip the input directory.
|
23
|
+
def write
|
24
|
+
entries = Dir.entries(@input_dir) - %w[. ..]
|
25
|
+
|
26
|
+
::Zip::File.open(@output_file, ::Zip::File::CREATE) do |zipfile|
|
27
|
+
write_entries entries, '', zipfile
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
# A helper method to make the recursion work.
|
34
|
+
def write_entries(entries, path, zipfile)
|
35
|
+
entries.each do |e|
|
36
|
+
zipfile_path = path == '' ? e : File.join(path, e)
|
37
|
+
disk_file_path = File.join(@input_dir, zipfile_path)
|
38
|
+
|
39
|
+
if File.directory? disk_file_path
|
40
|
+
recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)
|
41
|
+
else
|
42
|
+
put_into_archive(disk_file_path, zipfile, zipfile_path)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def recursively_deflate_directory(disk_file_path, zipfile, zipfile_path)
|
48
|
+
zipfile.mkdir zipfile_path
|
49
|
+
subdir = Dir.entries(disk_file_path) - %w[. ..]
|
50
|
+
write_entries subdir, zipfile_path, zipfile
|
51
|
+
end
|
52
|
+
|
53
|
+
def put_into_archive(disk_file_path, zipfile, zipfile_path)
|
54
|
+
zipfile.add(zipfile_path, disk_file_path)
|
55
|
+
end
|
56
|
+
end
|
data/lib/sequenceserver.rb
CHANGED
@@ -24,6 +24,7 @@ module SequenceServer
|
|
24
24
|
require 'sequenceserver/job_remover'
|
25
25
|
require 'sequenceserver/exceptions'
|
26
26
|
require 'sequenceserver/sys'
|
27
|
+
require 'sequenceserver/refinements'
|
27
28
|
|
28
29
|
# The singleton methods defined below constitute the "runtime" environment of
|
29
30
|
# SequenceServer.
|
@@ -61,6 +62,9 @@ module SequenceServer
|
|
61
62
|
|
62
63
|
# SequenceServer initialisation routine.
|
63
64
|
def init(config = {})
|
65
|
+
# Reset makeblastdb cache, because configuration may have changed.
|
66
|
+
@makeblastdb = nil
|
67
|
+
|
64
68
|
# Use default config file if caller didn't specify one.
|
65
69
|
config[:config_file] ||= DEFAULT_CONFIG_FILE
|
66
70
|
|
@@ -200,10 +204,13 @@ module SequenceServer
|
|
200
204
|
|
201
205
|
logger.debug("Will look for BLAST+ databases in: #{config[:database_dir]}")
|
202
206
|
|
203
|
-
makeblastdb.
|
204
|
-
fail NO_BLAST_DATABASE_FOUND, config[:database_dir] if !makeblastdb.any_formatted?
|
207
|
+
fail NO_BLAST_DATABASE_FOUND, config[:database_dir] unless makeblastdb.any_formatted?
|
205
208
|
|
206
209
|
Database.collection = makeblastdb.formatted_fastas
|
210
|
+
check_database_compatibility unless config[:optimistic].to_s == 'true'
|
211
|
+
end
|
212
|
+
|
213
|
+
def check_database_compatibility
|
207
214
|
Database.each do |database|
|
208
215
|
logger.debug "Found #{database.type} database '#{database.title}' at '#{database.path}'"
|
209
216
|
if database.non_parse_seqids?
|