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.

Files changed (675) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sequenceserver +7 -2
  3. data/lib/sequenceserver/api_errors.rb +24 -2
  4. data/lib/sequenceserver/blast/formatter.rb +13 -4
  5. data/lib/sequenceserver/blast/job.rb +41 -7
  6. data/lib/sequenceserver/blast/report.rb +69 -33
  7. data/lib/sequenceserver/config.rb +52 -27
  8. data/lib/sequenceserver/job.rb +13 -3
  9. data/lib/sequenceserver/job_remover.rb +25 -29
  10. data/lib/sequenceserver/makeblastdb.rb +80 -72
  11. data/lib/sequenceserver/pool.rb +1 -1
  12. data/lib/sequenceserver/refinements.rb +15 -0
  13. data/lib/sequenceserver/report.rb +1 -5
  14. data/lib/sequenceserver/routes.rb +92 -9
  15. data/lib/sequenceserver/sequence.rb +8 -7
  16. data/lib/sequenceserver/sys.rb +3 -3
  17. data/lib/sequenceserver/version.rb +1 -1
  18. data/lib/sequenceserver/zip_file_generator.rb +56 -0
  19. data/lib/sequenceserver.rb +9 -2
  20. data/public/config.js +149 -143
  21. data/public/css/sequenceserver.css +44 -3
  22. data/public/css/sequenceserver.min.css +3 -3
  23. data/public/js/alignment_exporter.js +16 -8
  24. data/public/js/circos.js +370 -234
  25. data/public/js/cloud_share_modal.js +216 -0
  26. data/public/js/databases.js +144 -0
  27. data/public/js/databases_tree.js +42 -113
  28. data/public/js/dnd.js +164 -0
  29. data/public/js/error_modal.js +4 -11
  30. data/public/js/exporter.js +7 -3
  31. data/public/js/form.js +260 -0
  32. data/public/js/grapher.js +113 -106
  33. data/public/js/hit.js +80 -67
  34. data/public/js/hits_overview.js +2 -2
  35. data/public/js/hsp.js +343 -288
  36. data/public/js/jquery_world.js +4 -4
  37. data/public/js/mailto.js +36 -0
  38. data/public/js/options.js +84 -0
  39. data/public/js/query.js +319 -59
  40. data/public/js/report.js +369 -269
  41. data/public/js/report_root.js +75 -0
  42. data/public/js/search.js +28 -1011
  43. data/public/js/search_button.js +195 -0
  44. data/public/js/sequence.js +2409 -2411
  45. data/public/js/sequence_modal.js +152 -159
  46. data/public/js/share_url.js +23 -0
  47. data/public/js/sidebar.js +262 -83
  48. data/public/js/tests/advanced_parameters.spec.js +36 -0
  49. data/public/js/tests/database.spec.js +60 -0
  50. data/public/js/tests/mock_data/databases.json +91 -0
  51. data/public/js/tests/mock_data/long_response.json +269 -0
  52. data/public/js/tests/mock_data/sequences.js +32 -0
  53. data/public/js/tests/mock_data/short_response.json +2240 -0
  54. data/public/js/tests/report.spec.js +155 -0
  55. data/public/js/tests/search_button.spec.js +14 -0
  56. data/public/js/tests/search_query.spec.js +58 -0
  57. data/public/js/visualisation_helpers.js +1 -1
  58. data/public/packages/circosJS@1.7.0.js +1640 -0
  59. data/public/packages/jquery-ui@1.11.4.js +16624 -0
  60. data/public/sequenceserver-report.min.js +2425 -19
  61. data/public/sequenceserver-search.min.js +2337 -15
  62. data/public/vendor/github/jspm/nodelibs-assert@0.1.0/index.js +2 -0
  63. data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-assert@0.1.0}/package.json +1 -1
  64. data/public/vendor/github/jspm/nodelibs-assert@0.1.0.js +1 -0
  65. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1/package.json +6 -0
  66. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1.js +1 -0
  67. data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/package.json +2 -2
  68. data/public/vendor/github/jspm/nodelibs-process@0.1.2.js +1 -0
  69. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/index.js +2 -0
  70. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/package.json +6 -0
  71. data/public/vendor/github/jspm/nodelibs-vm@0.1.0.js +1 -0
  72. data/public/vendor/npm/assert@1.5.0/CHANGELOG.md +8 -0
  73. data/public/vendor/npm/assert@1.5.0/README.md +105 -0
  74. data/public/vendor/npm/assert@1.5.0/assert.js +327 -0
  75. data/public/vendor/npm/assert@1.5.0/package.json +32 -0
  76. data/public/vendor/npm/assert@1.5.0/test.js +288 -0
  77. data/public/vendor/npm/assert@1.5.0.js +1 -0
  78. data/public/vendor/npm/{base64-js@0.0.8/LICENSE.MIT → base64-js@1.5.1/LICENSE} +1 -1
  79. data/public/vendor/npm/{base64-js@0.0.8 → base64-js@1.5.1}/README.md +10 -7
  80. data/public/vendor/npm/base64-js@1.5.1/base64js.min.js +3 -0
  81. data/public/vendor/npm/base64-js@1.5.1/index.d.ts +3 -0
  82. data/public/vendor/npm/base64-js@1.5.1/index.js +151 -0
  83. data/public/vendor/npm/base64-js@1.5.1/package.json +47 -0
  84. data/public/vendor/npm/base64-js@1.5.1.js +1 -0
  85. data/public/vendor/npm/buffer@5.7.1/AUTHORS.md +70 -0
  86. data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/README.md +111 -41
  87. data/public/vendor/npm/buffer@5.7.1/index.d.ts +186 -0
  88. data/public/vendor/npm/buffer@5.7.1/index.js +1817 -0
  89. data/public/vendor/npm/buffer@5.7.1/package.json +96 -0
  90. data/public/vendor/npm/buffer@5.7.1.js +1 -0
  91. data/public/vendor/npm/core-util-is@1.0.3/LICENSE +19 -0
  92. data/public/vendor/npm/core-util-is@1.0.3/lib/util.js +64 -0
  93. data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/package.json +13 -1
  94. data/public/vendor/npm/core-util-is@1.0.3.js +1 -0
  95. data/public/vendor/npm/events@1.0.2/tests/add-listeners.js +2 -2
  96. data/public/vendor/npm/events@1.0.2/tests/check-listener-leaks.js +3 -3
  97. data/public/vendor/npm/events@1.0.2/tests/common.js +1 -1
  98. data/public/vendor/npm/events@1.0.2/tests/index.js +13 -13
  99. data/public/vendor/npm/events@1.0.2/tests/listeners-side-effects.js +2 -2
  100. data/public/vendor/npm/events@1.0.2/tests/listeners.js +2 -2
  101. data/public/vendor/npm/events@1.0.2/tests/max-listeners.js +2 -2
  102. data/public/vendor/npm/events@1.0.2/tests/modify-in-emit.js +2 -2
  103. data/public/vendor/npm/events@1.0.2/tests/num-args.js +2 -2
  104. data/public/vendor/npm/events@1.0.2/tests/once.js +2 -2
  105. data/public/vendor/npm/events@1.0.2/tests/remove-all-listeners.js +3 -3
  106. data/public/vendor/npm/events@1.0.2/tests/remove-listeners.js +3 -3
  107. data/public/vendor/npm/events@1.0.2/tests/set-max-listeners-side-effects.js +2 -2
  108. data/public/vendor/npm/events@1.0.2/tests/subclass.js +3 -3
  109. data/public/vendor/npm/events@1.0.2.js +1 -1
  110. data/public/vendor/npm/ieee754@1.2.1/LICENSE +11 -0
  111. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/README.md +12 -8
  112. data/public/vendor/npm/ieee754@1.2.1/index.d.ts +10 -0
  113. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/index.js +6 -6
  114. data/public/vendor/npm/ieee754@1.2.1/package.json +52 -0
  115. data/public/vendor/npm/ieee754@1.2.1.js +1 -0
  116. data/public/vendor/npm/{is-array@1.0.1 → indexof@0.0.1}/Makefile +3 -3
  117. data/public/vendor/npm/indexof@0.0.1/Readme.md +15 -0
  118. data/public/vendor/npm/indexof@0.0.1/component.json +10 -0
  119. data/public/vendor/npm/indexof@0.0.1/index.js +11 -0
  120. data/public/vendor/npm/indexof@0.0.1/package.json +12 -0
  121. data/public/vendor/npm/indexof@0.0.1.js +1 -0
  122. data/public/vendor/npm/inherits@2.0.1/inherits.js +1 -1
  123. data/public/vendor/npm/inherits@2.0.1.js +1 -1
  124. data/public/vendor/npm/isarray@0.0.1.js +1 -1
  125. data/public/vendor/npm/js-tokens@4.0.0/index.js +23 -0
  126. data/public/vendor/npm/js-tokens@4.0.0/package.json +30 -0
  127. data/public/vendor/npm/js-tokens@4.0.0.js +1 -0
  128. data/public/vendor/npm/loose-envify@1.4.0/LICENSE +21 -0
  129. data/public/vendor/npm/loose-envify@1.4.0/README.md +45 -0
  130. data/public/vendor/npm/loose-envify@1.4.0/cli.js +12 -0
  131. data/public/vendor/npm/loose-envify@1.4.0/custom.js +3 -0
  132. data/public/vendor/npm/loose-envify@1.4.0/index.js +5 -0
  133. data/public/vendor/npm/loose-envify@1.4.0/loose-envify.js +33 -0
  134. data/public/vendor/npm/loose-envify@1.4.0/package.json +36 -0
  135. data/public/vendor/npm/loose-envify@1.4.0/replace.js +52 -0
  136. data/public/vendor/npm/loose-envify@1.4.0.js +1 -0
  137. data/public/vendor/npm/object-assign@4.1.1/index.js +90 -0
  138. data/public/vendor/npm/object-assign@4.1.1/package.json +42 -0
  139. data/public/vendor/npm/object-assign@4.1.1.js +1 -0
  140. data/public/vendor/npm/path-browserify@0.0.0/index.js +1 -1
  141. data/public/vendor/npm/path-browserify@0.0.0.js +1 -1
  142. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/README.md +4 -1
  143. data/public/vendor/npm/process@0.11.10/browser.js +184 -0
  144. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/package.json +10 -1
  145. data/public/vendor/npm/process@0.11.10/test.js +185 -0
  146. data/public/vendor/npm/process@0.11.10.js +1 -0
  147. data/public/vendor/npm/react-dom@18.0.0/LICENSE +21 -0
  148. data/public/vendor/npm/react-dom@18.0.0/README.md +50 -0
  149. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.development.js +4771 -0
  150. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.production.min.js +85 -0
  151. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.development.js +4813 -0
  152. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.production.min.js +1705 -0
  153. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.development.js +4746 -0
  154. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.production.min.js +90 -0
  155. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.development.js +4714 -0
  156. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.production.min.js +1746 -0
  157. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.development.js +1017 -0
  158. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.production.min.js +617 -0
  159. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.development.js +20092 -0
  160. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.production.min.js +322 -0
  161. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.profiling.min.js +364 -0
  162. data/public/vendor/npm/react-dom@18.0.0/client.js +27 -0
  163. data/public/vendor/npm/react-dom@18.0.0/index.js +23 -0
  164. data/public/vendor/npm/react-dom@18.0.0/package.json +62 -0
  165. data/public/vendor/npm/react-dom@18.0.0/profiling.js +23 -0
  166. data/public/vendor/npm/react-dom@18.0.0/server.browser.js +19 -0
  167. data/public/vendor/npm/react-dom@18.0.0/server.js +3 -0
  168. data/public/vendor/npm/react-dom@18.0.0/server.node.js +19 -0
  169. data/public/vendor/npm/react-dom@18.0.0/test-utils.js +9 -0
  170. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.development.js +4770 -0
  171. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.production.min.js +72 -0
  172. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.development.js +4745 -0
  173. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.production.min.js +74 -0
  174. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.development.js +1013 -0
  175. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.production.min.js +625 -0
  176. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.development.js +20106 -0
  177. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.production.min.js +269 -0
  178. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.profiling.min.js +285 -0
  179. data/public/vendor/npm/react-dom@18.0.0.js +1 -0
  180. data/public/vendor/npm/react@18.0.0/LICENSE +21 -0
  181. data/public/vendor/npm/react@18.0.0/README.md +13 -0
  182. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.development.js +837 -0
  183. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.production.min.js +10 -0
  184. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
  185. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.development.js +849 -0
  186. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.production.min.js +38 -0
  187. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.profiling.min.js +38 -0
  188. data/public/vendor/npm/react@18.0.0/cjs/react.development.js +1746 -0
  189. data/public/vendor/npm/react@18.0.0/cjs/react.production.min.js +26 -0
  190. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.development.js +10 -0
  191. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.production.min.js +12 -0
  192. data/public/vendor/npm/react@18.0.0/index.js +9 -0
  193. data/public/vendor/npm/react@18.0.0/jsx-dev-runtime.js +9 -0
  194. data/public/vendor/npm/react@18.0.0/jsx-runtime.js +9 -0
  195. data/public/vendor/npm/react@18.0.0/package.json +47 -0
  196. data/public/vendor/npm/react@18.0.0/react.shared-subset.js +9 -0
  197. data/public/vendor/npm/react@18.0.0/umd/react.development.js +2186 -0
  198. data/public/vendor/npm/react@18.0.0/umd/react.production.min.js +33 -0
  199. data/public/vendor/npm/react@18.0.0/umd/react.profiling.min.js +33 -0
  200. data/public/vendor/npm/react@18.0.0.js +1 -0
  201. data/public/vendor/npm/readable-stream@1.1.14/LICENSE +18 -0
  202. data/public/vendor/npm/readable-stream@1.1.14/duplex.js +2 -0
  203. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_duplex.js +5 -5
  204. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_passthrough.js +3 -3
  205. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_readable.js +10 -10
  206. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_transform.js +4 -4
  207. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_writable.js +6 -6
  208. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/package.json +1 -1
  209. data/public/vendor/npm/readable-stream@1.1.14/passthrough.js +2 -0
  210. data/public/vendor/npm/readable-stream@1.1.14/readable.js +13 -0
  211. data/public/vendor/npm/readable-stream@1.1.14/transform.js +2 -0
  212. data/public/vendor/npm/readable-stream@1.1.14/writable.js +2 -0
  213. data/public/vendor/npm/readable-stream@1.1.14.js +1 -0
  214. data/public/vendor/npm/scheduler@0.21.0/LICENSE +21 -0
  215. data/public/vendor/npm/scheduler@0.21.0/README.md +9 -0
  216. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.development.js +530 -0
  217. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.production.min.js +20 -0
  218. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.development.js +153 -0
  219. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.production.min.js +14 -0
  220. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.development.js +444 -0
  221. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.production.min.js +19 -0
  222. data/public/vendor/npm/scheduler@0.21.0/index.js +9 -0
  223. data/public/vendor/npm/scheduler@0.21.0/package.json +36 -0
  224. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.development.js +701 -0
  225. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.production.min.js +21 -0
  226. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.development.js +154 -0
  227. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.production.min.js +148 -0
  228. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.profiling.min.js +148 -0
  229. data/public/vendor/npm/scheduler@0.21.0/unstable_mock.js +9 -0
  230. data/public/vendor/npm/scheduler@0.21.0/unstable_post_task.js +9 -0
  231. data/public/vendor/npm/scheduler@0.21.0.js +1 -0
  232. data/public/vendor/npm/stream-browserify@1.0.0/index.js +7 -7
  233. data/public/vendor/npm/stream-browserify@1.0.0/test/buf.js +5 -5
  234. data/public/vendor/npm/stream-browserify@1.0.0.js +1 -1
  235. data/public/vendor/npm/string_decoder@0.10.31/index.js +2 -2
  236. data/public/vendor/npm/string_decoder@0.10.31.js +1 -1
  237. data/public/vendor/npm/util@0.10.3/support/isBuffer.js +1 -1
  238. data/public/vendor/npm/util@0.10.3/test/browser/inspect.js +2 -2
  239. data/public/vendor/npm/util@0.10.3/test/browser/is.js +3 -3
  240. data/public/vendor/npm/util@0.10.3/test/node/debug.js +4 -4
  241. data/public/vendor/npm/util@0.10.3/test/node/format.js +2 -2
  242. data/public/vendor/npm/util@0.10.3/test/node/inspect.js +3 -3
  243. data/public/vendor/npm/util@0.10.3/test/node/log.js +3 -3
  244. data/public/vendor/npm/util@0.10.3/test/node/util.js +3 -3
  245. data/public/vendor/npm/util@0.10.3/util.js +3 -3
  246. data/public/vendor/npm/util@0.10.3.js +1 -1
  247. data/public/vendor/npm/vm-browserify@0.0.4/LICENSE +18 -0
  248. data/public/vendor/npm/vm-browserify@0.0.4/example/run/bundle.js +376 -0
  249. data/public/vendor/npm/vm-browserify@0.0.4/example/run/entry.js +6 -0
  250. data/public/vendor/npm/vm-browserify@0.0.4/example/run/index.html +9 -0
  251. data/public/vendor/npm/vm-browserify@0.0.4/example/run/server.js +6 -0
  252. data/public/vendor/npm/vm-browserify@0.0.4/index.js +139 -0
  253. data/public/vendor/npm/vm-browserify@0.0.4/package.json +46 -0
  254. data/public/vendor/npm/vm-browserify@0.0.4/readme.markdown +67 -0
  255. data/public/vendor/npm/vm-browserify@0.0.4/test/vm.js +34 -0
  256. data/public/vendor/npm/vm-browserify@0.0.4.js +1 -0
  257. data/public/vendor/npm/webshim@1.15.8/Gruntfile.js +4 -4
  258. data/public/vendor/npm/webshim@1.15.8/build/combobuild.js +2 -2
  259. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/color-picker.js +1 -1
  260. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/10.js +1 -1
  261. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/11.js +1 -1
  262. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/17.js +1 -1
  263. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/5.js +1 -1
  264. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/6.js +1 -1
  265. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/9.js +1 -1
  266. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/es6.js +1 -1
  267. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/excanvas.js +1 -1
  268. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/form-number-date-ui.js +1 -1
  269. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-html4.js +1 -1
  270. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-swf.js +1 -1
  271. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/sizzle.js +1 -1
  272. data/public/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/es6.js +1 -1
  273. data/public/vendor/npm/webshim@1.15.8/src/shims/color-picker.js +1 -1
  274. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/10.js +1 -1
  275. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/11.js +1 -1
  276. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/17.js +1 -1
  277. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/5.js +1 -1
  278. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/6.js +1 -1
  279. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/9.js +1 -1
  280. data/public/vendor/npm/webshim@1.15.8/src/shims/es6.js +1 -1
  281. data/public/vendor/npm/webshim@1.15.8/src/shims/excanvas.js +1 -1
  282. data/public/vendor/npm/webshim@1.15.8/src/shims/form-number-date-ui.js +1 -1
  283. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-html4.js +1 -1
  284. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-swf.js +1 -1
  285. data/public/vendor/npm/webshim@1.15.8/src/shims/sizzle.js +1 -1
  286. data/public/vendor/npm/webshim@1.15.8/tests/dist/jquery.js +1 -1
  287. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/core.js +1 -1
  288. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/event.js +1388 -711
  289. data/public/vendor/npm/webshim@1.15.8/tests/qunit/qunit.js +1 -1
  290. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-1-custom.js +1 -1
  291. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-2-custom.js +1 -1
  292. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/punycode.js +1 -1
  293. data/public/vendor/system-polyfills.js +865 -1
  294. data/views/blastn_options.erb +291 -0
  295. data/views/blastp_options.erb +288 -0
  296. data/views/blastx_options.erb +318 -0
  297. data/views/error.erb +12 -0
  298. data/views/layout.erb +2 -30
  299. data/views/report.erb +0 -8
  300. data/views/search.erb +16 -9
  301. data/views/tblastn_options.erb +266 -0
  302. data/views/tblastx_options.erb +291 -0
  303. metadata +320 -439
  304. data/public/vendor/github/jspm/nodelibs-buffer@0.1.0.js +0 -1
  305. data/public/vendor/github/jspm/nodelibs-module@0.1.0/index.js +0 -1
  306. data/public/vendor/github/jspm/nodelibs-module@0.1.0.js +0 -1
  307. data/public/vendor/github/jspm/nodelibs-process@0.1.1.js +0 -1
  308. data/public/vendor/npm/amdefine@1.0.0/LICENSE +0 -58
  309. data/public/vendor/npm/amdefine@1.0.0/README.md +0 -171
  310. data/public/vendor/npm/amdefine@1.0.0/amdefine.js +0 -200
  311. data/public/vendor/npm/amdefine@1.0.0/intercept.js +0 -24
  312. data/public/vendor/npm/amdefine@1.0.0/package.json +0 -16
  313. data/public/vendor/npm/amdefine@1.0.0.js +0 -1
  314. data/public/vendor/npm/base62@0.1.1/LICENSE +0 -20
  315. data/public/vendor/npm/base62@0.1.1/Readme.md +0 -30
  316. data/public/vendor/npm/base62@0.1.1/base62.js +0 -28
  317. data/public/vendor/npm/base62@0.1.1/package.json +0 -21
  318. data/public/vendor/npm/base62@0.1.1/test/test.js +0 -13
  319. data/public/vendor/npm/base62@0.1.1.js +0 -1
  320. data/public/vendor/npm/base64-js@0.0.8/lib/b64.js +0 -125
  321. data/public/vendor/npm/base64-js@0.0.8/package.json +0 -34
  322. data/public/vendor/npm/base64-js@0.0.8/test/convert.js +0 -39
  323. data/public/vendor/npm/base64-js@0.0.8/test/url-safe.js +0 -15
  324. data/public/vendor/npm/base64-js@0.0.8.js +0 -1
  325. data/public/vendor/npm/buffer@3.4.3/index.js +0 -1533
  326. data/public/vendor/npm/buffer@3.4.3/package.json +0 -67
  327. data/public/vendor/npm/buffer@3.4.3/test/_polyfill.js +0 -152
  328. data/public/vendor/npm/buffer@3.4.3/test/base64.js +0 -33
  329. data/public/vendor/npm/buffer@3.4.3/test/basic.js +0 -58
  330. data/public/vendor/npm/buffer@3.4.3/test/compare.js +0 -53
  331. data/public/vendor/npm/buffer@3.4.3/test/constructor.js +0 -132
  332. data/public/vendor/npm/buffer@3.4.3/test/deprecated.js +0 -21
  333. data/public/vendor/npm/buffer@3.4.3/test/from-string.js +0 -105
  334. data/public/vendor/npm/buffer@3.4.3/test/methods.js +0 -109
  335. data/public/vendor/npm/buffer@3.4.3/test/node/README.txt +0 -1
  336. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-ascii.js +0 -20
  337. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-bytelength.js +0 -38
  338. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-concat.js +0 -26
  339. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-indexof.js +0 -78
  340. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-inspect.js +0 -31
  341. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer.js +0 -804
  342. data/public/vendor/npm/buffer@3.4.3/test/node-es6/README.txt +0 -1
  343. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-arraybuffer.js +0 -37
  344. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-iterator.js +0 -32
  345. data/public/vendor/npm/buffer@3.4.3/test/slice.js +0 -33
  346. data/public/vendor/npm/buffer@3.4.3/test/static.js +0 -32
  347. data/public/vendor/npm/buffer@3.4.3/test/to-string.js +0 -106
  348. data/public/vendor/npm/buffer@3.4.3/test/write.js +0 -90
  349. data/public/vendor/npm/buffer@3.4.3.js +0 -1
  350. data/public/vendor/npm/core-util-is@1.0.1/float.patch +0 -604
  351. data/public/vendor/npm/core-util-is@1.0.1/lib/util.js +0 -66
  352. data/public/vendor/npm/core-util-is@1.0.1/util.js +0 -66
  353. data/public/vendor/npm/core-util-is@1.0.1.js +0 -1
  354. data/public/vendor/npm/envify@3.4.0/README.md +0 -145
  355. data/public/vendor/npm/envify@3.4.0/bin/envify +0 -17
  356. data/public/vendor/npm/envify@3.4.0/custom.js +0 -33
  357. data/public/vendor/npm/envify@3.4.0/index.js +0 -4
  358. data/public/vendor/npm/envify@3.4.0/package.json +0 -35
  359. data/public/vendor/npm/envify@3.4.0/visitors.js +0 -33
  360. data/public/vendor/npm/envify@3.4.0.js +0 -1
  361. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esparse.js +0 -90
  362. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esvalidate.js +0 -145
  363. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/esprima.js +0 -6191
  364. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/package.json +0 -72
  365. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/compat.js +0 -167
  366. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/reflect.js +0 -421
  367. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/run.js +0 -34
  368. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/runner.js +0 -418
  369. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/test.js +0 -34730
  370. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb.js +0 -1
  371. data/public/vendor/npm/ieee754@1.1.6/LICENSE +0 -56
  372. data/public/vendor/npm/ieee754@1.1.6/package.json +0 -34
  373. data/public/vendor/npm/ieee754@1.1.6/test/basic.js +0 -20
  374. data/public/vendor/npm/ieee754@1.1.6.js +0 -1
  375. data/public/vendor/npm/is-array@1.0.1/History.md +0 -11
  376. data/public/vendor/npm/is-array@1.0.1/Readme.md +0 -27
  377. data/public/vendor/npm/is-array@1.0.1/component.json +0 -13
  378. data/public/vendor/npm/is-array@1.0.1/index.js +0 -33
  379. data/public/vendor/npm/is-array@1.0.1/package.json +0 -10
  380. data/public/vendor/npm/is-array@1.0.1/test/test.html +0 -46
  381. data/public/vendor/npm/is-array@1.0.1.js +0 -1
  382. data/public/vendor/npm/jstransform@10.1.0/LICENSE +0 -201
  383. data/public/vendor/npm/jstransform@10.1.0/README.md +0 -98
  384. data/public/vendor/npm/jstransform@10.1.0/jestEnvironment.js +0 -3
  385. data/public/vendor/npm/jstransform@10.1.0/jestPreprocessor.js +0 -8
  386. data/public/vendor/npm/jstransform@10.1.0/package.json +0 -52
  387. data/public/vendor/npm/jstransform@10.1.0/polyfill/Object.es6.js +0 -54
  388. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-test.js +0 -246
  389. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-utils-test.js +0 -31
  390. data/public/vendor/npm/jstransform@10.1.0/src/docblock.js +0 -86
  391. data/public/vendor/npm/jstransform@10.1.0/src/jstransform.js +0 -180
  392. data/public/vendor/npm/jstransform@10.1.0/src/utils.js +0 -386
  393. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-arrow-function-visitors-test.js +0 -57
  394. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-call-spread-visitors-test.js +0 -46
  395. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-class-visitors-test.js +0 -463
  396. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-destructuring-visitors-test.js +0 -144
  397. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-es7-object-integration-test.js +0 -40
  398. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-concise-method-visitors-test.js +0 -47
  399. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-short-notation-visitors-test.js +0 -33
  400. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-rest-param-visitors-test.js +0 -119
  401. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-template-visitors-test.js +0 -138
  402. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-rest-property-helpers-test.js +0 -47
  403. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-spread-property-visitors-test.js +0 -90
  404. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/generate-type-syntax-test.js +0 -40
  405. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/type-syntax-test.rec.js +0 -846
  406. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/reserved-words-test.js +0 -40
  407. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-alias-syntax-test.js +0 -34
  408. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-class-syntax-test.js +0 -105
  409. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-function-syntax-test.js +0 -126
  410. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-interface-syntax-test.js +0 -29
  411. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-object-method-syntax-test.js +0 -65
  412. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-pattern-syntax-test.js +0 -45
  413. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-syntax-test.js +0 -46
  414. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-variable-declaration-syntax-test.js +0 -102
  415. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-arrow-function-visitors.js +0 -66
  416. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-call-spread-visitors.js +0 -72
  417. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-class-visitors.js +0 -316
  418. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-destructuring-visitors.js +0 -135
  419. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-concise-method-visitors.js +0 -28
  420. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-short-notation-visitors.js +0 -12
  421. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-rest-param-visitors.js +0 -45
  422. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-template-visitors.js +0 -90
  423. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-rest-property-helpers.js +0 -80
  424. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-spread-property-visitors.js +0 -56
  425. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-helper.js +0 -74
  426. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-visitors.js +0 -30
  427. data/public/vendor/npm/jstransform@10.1.0/visitors/type-syntax.js +0 -118
  428. data/public/vendor/npm/jstransform@10.1.0.js +0 -1
  429. data/public/vendor/npm/process@0.10.1/browser.js +0 -58
  430. data/public/vendor/npm/process@0.10.1.js +0 -1
  431. data/public/vendor/npm/qs@2.4.1/test/stringify.js +0 -162
  432. data/public/vendor/npm/react@0.13.3/README.md +0 -20
  433. data/public/vendor/npm/react@0.13.3/addons.js +0 -2
  434. data/public/vendor/npm/react@0.13.3/dist/JSXTransformer.js +0 -11346
  435. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.js +0 -10483
  436. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.min.js +0 -7297
  437. data/public/vendor/npm/react@0.13.3/dist/react.js +0 -9468
  438. data/public/vendor/npm/react@0.13.3/dist/react.min.js +0 -6764
  439. data/public/vendor/npm/react@0.13.3/lib/AutoFocusMixin.js +0 -9
  440. data/public/vendor/npm/react@0.13.3/lib/BeforeInputEventPlugin.js +0 -197
  441. data/public/vendor/npm/react@0.13.3/lib/CSSCore.js +0 -39
  442. data/public/vendor/npm/react@0.13.3/lib/CSSProperty.js +0 -123
  443. data/public/vendor/npm/react@0.13.3/lib/CSSPropertyOperations.js +0 -103
  444. data/public/vendor/npm/react@0.13.3/lib/CallbackQueue.js +0 -43
  445. data/public/vendor/npm/react@0.13.3/lib/ChangeEventPlugin.js +0 -174
  446. data/public/vendor/npm/react@0.13.3/lib/ClientReactRootIndex.js +0 -23
  447. data/public/vendor/npm/react@0.13.3/lib/DOMChildrenOperations.js +0 -57
  448. data/public/vendor/npm/react@0.13.3/lib/DOMProperty.js +0 -96
  449. data/public/vendor/npm/react@0.13.3/lib/DOMPropertyOperations.js +0 -99
  450. data/public/vendor/npm/react@0.13.3/lib/Danger.js +0 -67
  451. data/public/vendor/npm/react@0.13.3/lib/DefaultEventPluginOrder.js +0 -5
  452. data/public/vendor/npm/react@0.13.3/lib/EnterLeaveEventPlugin.js +0 -69
  453. data/public/vendor/npm/react@0.13.3/lib/EventConstants.js +0 -55
  454. data/public/vendor/npm/react@0.13.3/lib/EventListener.js +0 -34
  455. data/public/vendor/npm/react@0.13.3/lib/EventPluginHub.js +0 -103
  456. data/public/vendor/npm/react@0.13.3/lib/EventPluginRegistry.js +0 -115
  457. data/public/vendor/npm/react@0.13.3/lib/EventPluginUtils.js +0 -121
  458. data/public/vendor/npm/react@0.13.3/lib/EventPropagators.js +0 -62
  459. data/public/vendor/npm/react@0.13.3/lib/ExecutionEnvironment.js +0 -42
  460. data/public/vendor/npm/react@0.13.3/lib/FallbackCompositionState.js +0 -45
  461. data/public/vendor/npm/react@0.13.3/lib/HTMLDOMPropertyConfig.js +0 -155
  462. data/public/vendor/npm/react@0.13.3/lib/LinkedStateMixin.js +0 -8
  463. data/public/vendor/npm/react@0.13.3/lib/LinkedValueUtils.js +0 -74
  464. data/public/vendor/npm/react@0.13.3/lib/LocalEventTrapMixin.js +0 -26
  465. data/public/vendor/npm/react@0.13.3/lib/MobileSafariClickEventPlugin.js +0 -17
  466. data/public/vendor/npm/react@0.13.3/lib/Object.assign.js +0 -47
  467. data/public/vendor/npm/react@0.13.3/lib/PooledClass.js +0 -75
  468. data/public/vendor/npm/react@0.13.3/lib/React.js +0 -93
  469. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserComponentMixin.js +0 -7
  470. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserEventEmitter.js +0 -136
  471. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroup.js +0 -34
  472. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroupChild.js +0 -92
  473. data/public/vendor/npm/react@0.13.3/lib/ReactChildReconciler.js +0 -57
  474. data/public/vendor/npm/react@0.13.3/lib/ReactChildren.js +0 -67
  475. data/public/vendor/npm/react@0.13.3/lib/ReactClass.js +0 -338
  476. data/public/vendor/npm/react@0.13.3/lib/ReactComponent.js +0 -50
  477. data/public/vendor/npm/react@0.13.3/lib/ReactComponentBrowserEnvironment.js +0 -14
  478. data/public/vendor/npm/react@0.13.3/lib/ReactComponentEnvironment.js +0 -19
  479. data/public/vendor/npm/react@0.13.3/lib/ReactComponentWithPureRenderMixin.js +0 -7
  480. data/public/vendor/npm/react@0.13.3/lib/ReactCompositeComponent.js +0 -374
  481. data/public/vendor/npm/react@0.13.3/lib/ReactContext.js +0 -27
  482. data/public/vendor/npm/react@0.13.3/lib/ReactCurrentOwner.js +0 -32
  483. data/public/vendor/npm/react@0.13.3/lib/ReactDOM.js +0 -146
  484. data/public/vendor/npm/react@0.13.3/lib/ReactDOMButton.js +0 -35
  485. data/public/vendor/npm/react@0.13.3/lib/ReactDOMComponent.js +0 -267
  486. data/public/vendor/npm/react@0.13.3/lib/ReactDOMForm.js +0 -21
  487. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIDOperations.js +0 -63
  488. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIframe.js +0 -20
  489. data/public/vendor/npm/react@0.13.3/lib/ReactDOMImg.js +0 -21
  490. data/public/vendor/npm/react@0.13.3/lib/ReactDOMInput.js +0 -94
  491. data/public/vendor/npm/react@0.13.3/lib/ReactDOMOption.js +0 -23
  492. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelect.js +0 -112
  493. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelection.js +0 -103
  494. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextComponent.js +0 -38
  495. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextarea.js +0 -70
  496. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultBatchingStrategy.js +0 -37
  497. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultInjection.js +0 -93
  498. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerf.js +0 -183
  499. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerfAnalysis.js +0 -145
  500. data/public/vendor/npm/react@0.13.3/lib/ReactElement.js +0 -151
  501. data/public/vendor/npm/react@0.13.3/lib/ReactElementValidator.js +0 -218
  502. data/public/vendor/npm/react@0.13.3/lib/ReactEmptyComponent.js +0 -47
  503. data/public/vendor/npm/react@0.13.3/lib/ReactErrorUtils.js +0 -30
  504. data/public/vendor/npm/react@0.13.3/lib/ReactEventEmitterMixin.js +0 -12
  505. data/public/vendor/npm/react@0.13.3/lib/ReactEventListener.js +0 -93
  506. data/public/vendor/npm/react@0.13.3/lib/ReactFragment.js +0 -110
  507. data/public/vendor/npm/react@0.13.3/lib/ReactInjection.js +0 -27
  508. data/public/vendor/npm/react@0.13.3/lib/ReactInputSelection.js +0 -75
  509. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceHandles.js +0 -113
  510. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceMap.js +0 -47
  511. data/public/vendor/npm/react@0.13.3/lib/ReactLifeCycle.js +0 -9
  512. data/public/vendor/npm/react@0.13.3/lib/ReactLink.js +0 -16
  513. data/public/vendor/npm/react@0.13.3/lib/ReactMarkupChecksum.js +0 -17
  514. data/public/vendor/npm/react@0.13.3/lib/ReactMount.js +0 -347
  515. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChild.js +0 -190
  516. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChildUpdateTypes.js +0 -10
  517. data/public/vendor/npm/react@0.13.3/lib/ReactNativeComponent.js +0 -53
  518. data/public/vendor/npm/react@0.13.3/lib/ReactOwner.js +0 -21
  519. data/public/vendor/npm/react@0.13.3/lib/ReactPerf.js +0 -42
  520. data/public/vendor/npm/react@0.13.3/lib/ReactPropTransferer.js +0 -40
  521. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocationNames.js +0 -13
  522. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocations.js +0 -9
  523. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypes.js +0 -225
  524. data/public/vendor/npm/react@0.13.3/lib/ReactPutListenerQueue.js +0 -31
  525. data/public/vendor/npm/react@0.13.3/lib/ReactReconcileTransaction.js +0 -66
  526. data/public/vendor/npm/react@0.13.3/lib/ReactReconciler.js +0 -44
  527. data/public/vendor/npm/react@0.13.3/lib/ReactRef.js +0 -36
  528. data/public/vendor/npm/react@0.13.3/lib/ReactRootIndex.js +0 -29
  529. data/public/vendor/npm/react@0.13.3/lib/ReactServerRendering.js +0 -44
  530. data/public/vendor/npm/react@0.13.3/lib/ReactServerRenderingTransaction.js +0 -47
  531. data/public/vendor/npm/react@0.13.3/lib/ReactStateSetters.js +0 -104
  532. data/public/vendor/npm/react@0.13.3/lib/ReactTestUtils.js +0 -249
  533. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionChildMapping.js +0 -53
  534. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionEvents.js +0 -68
  535. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionGroup.js +0 -140
  536. data/public/vendor/npm/react@0.13.3/lib/ReactUpdateQueue.js +0 -107
  537. data/public/vendor/npm/react@0.13.3/lib/ReactUpdates.js +0 -139
  538. data/public/vendor/npm/react@0.13.3/lib/ReactWithAddons.js +0 -30
  539. data/public/vendor/npm/react@0.13.3/lib/SVGDOMPropertyConfig.js +0 -76
  540. data/public/vendor/npm/react@0.13.3/lib/SelectEventPlugin.js +0 -91
  541. data/public/vendor/npm/react@0.13.3/lib/ServerReactRootIndex.js +0 -29
  542. data/public/vendor/npm/react@0.13.3/lib/SimpleEventPlugin.js +0 -287
  543. data/public/vendor/npm/react@0.13.3/lib/SyntheticClipboardEvent.js +0 -11
  544. data/public/vendor/npm/react@0.13.3/lib/SyntheticCompositionEvent.js +0 -9
  545. data/public/vendor/npm/react@0.13.3/lib/SyntheticDragEvent.js +0 -9
  546. data/public/vendor/npm/react@0.13.3/lib/SyntheticEvent.js +0 -90
  547. data/public/vendor/npm/react@0.13.3/lib/SyntheticFocusEvent.js +0 -9
  548. data/public/vendor/npm/react@0.13.3/lib/SyntheticInputEvent.js +0 -9
  549. data/public/vendor/npm/react@0.13.3/lib/SyntheticKeyboardEvent.js +0 -43
  550. data/public/vendor/npm/react@0.13.3/lib/SyntheticMouseEvent.js +0 -38
  551. data/public/vendor/npm/react@0.13.3/lib/SyntheticTouchEvent.js +0 -19
  552. data/public/vendor/npm/react@0.13.3/lib/SyntheticUIEvent.js +0 -29
  553. data/public/vendor/npm/react@0.13.3/lib/SyntheticWheelEvent.js +0 -18
  554. data/public/vendor/npm/react@0.13.3/lib/Transaction.js +0 -90
  555. data/public/vendor/npm/react@0.13.3/lib/ViewportMetrics.js +0 -27
  556. data/public/vendor/npm/react@0.13.3/lib/accumulateInto.js +0 -26
  557. data/public/vendor/npm/react@0.13.3/lib/adler32.js +0 -32
  558. data/public/vendor/npm/react@0.13.3/lib/camelize.js +0 -30
  559. data/public/vendor/npm/react@0.13.3/lib/camelizeStyleName.js +0 -8
  560. data/public/vendor/npm/react@0.13.3/lib/cloneWithProps.js +0 -20
  561. data/public/vendor/npm/react@0.13.3/lib/containsNode.js +0 -20
  562. data/public/vendor/npm/react@0.13.3/lib/createArrayFromMixed.js +0 -15
  563. data/public/vendor/npm/react@0.13.3/lib/createFullPageComponent.js +0 -22
  564. data/public/vendor/npm/react@0.13.3/lib/createNodesFromMarkup.js +0 -39
  565. data/public/vendor/npm/react@0.13.3/lib/cx.js +0 -20
  566. data/public/vendor/npm/react@0.13.3/lib/dangerousStyleValue.js +0 -19
  567. data/public/vendor/npm/react@0.13.3/lib/emptyFunction.js +0 -32
  568. data/public/vendor/npm/react@0.13.3/lib/emptyObject.js +0 -9
  569. data/public/vendor/npm/react@0.13.3/lib/escapeTextContentForBrowser.js +0 -38
  570. data/public/vendor/npm/react@0.13.3/lib/findDOMNode.js +0 -31
  571. data/public/vendor/npm/react@0.13.3/lib/flattenChildren.js +0 -25
  572. data/public/vendor/npm/react@0.13.3/lib/focusNode.js +0 -27
  573. data/public/vendor/npm/react@0.13.3/lib/forEachAccumulated.js +0 -29
  574. data/public/vendor/npm/react@0.13.3/lib/getActiveElement.js +0 -27
  575. data/public/vendor/npm/react@0.13.3/lib/getEventCharCode.js +0 -50
  576. data/public/vendor/npm/react@0.13.3/lib/getEventKey.js +0 -72
  577. data/public/vendor/npm/react@0.13.3/lib/getEventModifierState.js +0 -45
  578. data/public/vendor/npm/react@0.13.3/lib/getEventTarget.js +0 -29
  579. data/public/vendor/npm/react@0.13.3/lib/getIteratorFn.js +0 -42
  580. data/public/vendor/npm/react@0.13.3/lib/getMarkupWrap.js +0 -73
  581. data/public/vendor/npm/react@0.13.3/lib/getNodeForCharacterOffset.js +0 -73
  582. data/public/vendor/npm/react@0.13.3/lib/getReactRootElementInContainer.js +0 -33
  583. data/public/vendor/npm/react@0.13.3/lib/getTextContentAccessor.js +0 -11
  584. data/public/vendor/npm/react@0.13.3/lib/getUnboundedScrollPosition.js +0 -38
  585. data/public/vendor/npm/react@0.13.3/lib/hyphenate.js +0 -31
  586. data/public/vendor/npm/react@0.13.3/lib/hyphenateStyleName.js +0 -8
  587. data/public/vendor/npm/react@0.13.3/lib/instantiateReactComponent.js +0 -55
  588. data/public/vendor/npm/react@0.13.3/lib/invariant.js +0 -26
  589. data/public/vendor/npm/react@0.13.3/lib/isEventSupported.js +0 -24
  590. data/public/vendor/npm/react@0.13.3/lib/isNode.js +0 -25
  591. data/public/vendor/npm/react@0.13.3/lib/isTextInputElement.js +0 -41
  592. data/public/vendor/npm/react@0.13.3/lib/isTextNode.js +0 -6
  593. data/public/vendor/npm/react@0.13.3/lib/joinClasses.js +0 -39
  594. data/public/vendor/npm/react@0.13.3/lib/keyMirror.js +0 -18
  595. data/public/vendor/npm/react@0.13.3/lib/keyOf.js +0 -34
  596. data/public/vendor/npm/react@0.13.3/lib/mapObject.js +0 -51
  597. data/public/vendor/npm/react@0.13.3/lib/memoizeStringOnly.js +0 -31
  598. data/public/vendor/npm/react@0.13.3/lib/onlyChild.js +0 -11
  599. data/public/vendor/npm/react@0.13.3/lib/performance.js +0 -8
  600. data/public/vendor/npm/react@0.13.3/lib/performanceNow.js +0 -7
  601. data/public/vendor/npm/react@0.13.3/lib/quoteAttributeValueForBrowser.js +0 -7
  602. data/public/vendor/npm/react@0.13.3/lib/setInnerHTML.js +0 -40
  603. data/public/vendor/npm/react@0.13.3/lib/setTextContent.js +0 -16
  604. data/public/vendor/npm/react@0.13.3/lib/shallowEqual.js +0 -42
  605. data/public/vendor/npm/react@0.13.3/lib/shouldUpdateReactComponent.js +0 -51
  606. data/public/vendor/npm/react@0.13.3/lib/toArray.js +0 -21
  607. data/public/vendor/npm/react@0.13.3/lib/traverseAllChildren.js +0 -104
  608. data/public/vendor/npm/react@0.13.3/lib/update.js +0 -78
  609. data/public/vendor/npm/react@0.13.3/lib/warning.js +0 -34
  610. data/public/vendor/npm/react@0.13.3/package.json +0 -34
  611. data/public/vendor/npm/react@0.13.3/react.js +0 -2
  612. data/public/vendor/npm/react@0.13.3.js +0 -1
  613. data/public/vendor/npm/readable-stream@1.1.13/duplex.js +0 -2
  614. data/public/vendor/npm/readable-stream@1.1.13/passthrough.js +0 -2
  615. data/public/vendor/npm/readable-stream@1.1.13/readable.js +0 -8
  616. data/public/vendor/npm/readable-stream@1.1.13/transform.js +0 -2
  617. data/public/vendor/npm/readable-stream@1.1.13/writable.js +0 -2
  618. data/public/vendor/npm/readable-stream@1.1.13.js +0 -1
  619. data/public/vendor/npm/source-map@0.1.31/CHANGELOG.md +0 -112
  620. data/public/vendor/npm/source-map@0.1.31/LICENSE +0 -28
  621. data/public/vendor/npm/source-map@0.1.31/Makefile.dryice.js +0 -89
  622. data/public/vendor/npm/source-map@0.1.31/README.md +0 -434
  623. data/public/vendor/npm/source-map@0.1.31/build/assert-shim.js +0 -58
  624. data/public/vendor/npm/source-map@0.1.31/build/mini-require.js +0 -154
  625. data/public/vendor/npm/source-map@0.1.31/build/prefix-source-map.jsm +0 -20
  626. data/public/vendor/npm/source-map@0.1.31/build/prefix-utils.jsm +0 -18
  627. data/public/vendor/npm/source-map@0.1.31/build/suffix-browser.js +0 -8
  628. data/public/vendor/npm/source-map@0.1.31/build/suffix-source-map.jsm +0 -6
  629. data/public/vendor/npm/source-map@0.1.31/build/suffix-utils.jsm +0 -21
  630. data/public/vendor/npm/source-map@0.1.31/build/test-prefix.js +0 -10
  631. data/public/vendor/npm/source-map@0.1.31/build/test-suffix.js +0 -5
  632. data/public/vendor/npm/source-map@0.1.31/lib/source-map/array-set.js +0 -49
  633. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64-vlq.js +0 -56
  634. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64.js +0 -44
  635. data/public/vendor/npm/source-map@0.1.31/lib/source-map/binary-search.js +0 -83
  636. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-consumer.js +0 -238
  637. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-generator.js +0 -231
  638. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-node.js +0 -234
  639. data/public/vendor/npm/source-map@0.1.31/lib/source-map/util.js +0 -207
  640. data/public/vendor/npm/source-map@0.1.31/lib/source-map.js +0 -4
  641. data/public/vendor/npm/source-map@0.1.31/package.json +0 -52
  642. data/public/vendor/npm/source-map@0.1.31/test/run-tests.js +0 -50
  643. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-api.js +0 -19
  644. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-array-set.js +0 -84
  645. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64-vlq.js +0 -17
  646. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64.js +0 -26
  647. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-binary-search.js +0 -37
  648. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-dog-fooding.js +0 -76
  649. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-consumer.js +0 -426
  650. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-generator.js +0 -480
  651. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-node.js +0 -307
  652. data/public/vendor/npm/source-map@0.1.31/test/source-map/util.js +0 -84
  653. data/public/vendor/npm/source-map@0.1.31.js +0 -1
  654. data/public/vendor/npm/through@2.3.8/LICENSE.APACHE2 +0 -15
  655. data/public/vendor/npm/through@2.3.8/LICENSE.MIT +0 -24
  656. data/public/vendor/npm/through@2.3.8/index.js +0 -93
  657. data/public/vendor/npm/through@2.3.8/package.json +0 -36
  658. data/public/vendor/npm/through@2.3.8/readme.markdown +0 -64
  659. data/public/vendor/npm/through@2.3.8/test/async.js +0 -26
  660. data/public/vendor/npm/through@2.3.8/test/auto-destroy.js +0 -26
  661. data/public/vendor/npm/through@2.3.8/test/buffering.js +0 -57
  662. data/public/vendor/npm/through@2.3.8/test/end.js +0 -37
  663. data/public/vendor/npm/through@2.3.8/test/index.js +0 -98
  664. data/public/vendor/npm/through@2.3.8/test.js +0 -2
  665. data/public/vendor/npm/through@2.3.8.js +0 -1
  666. data/views/_options.erb +0 -156
  667. /data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-buffer@0.1.1}/index.js +0 -0
  668. /data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/index.js +0 -0
  669. /data/public/vendor/npm/{readable-stream@1.1.13 → assert@1.5.0}/LICENSE +0 -0
  670. /data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/LICENSE +0 -0
  671. /data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/README.md +0 -0
  672. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/LICENSE +0 -0
  673. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/index.js +0 -0
  674. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/README.md +0 -0
  675. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/float.patch +0 -0
data/public/js/search.js CHANGED
@@ -1,1021 +1,38 @@
1
- import './jquery_world';
2
- import React from 'react';
3
- import _ from 'underscore';
4
- import DatabasesTree from './databases_tree';
5
-
1
+ import "./jquery_world";
2
+ import React, { Component } from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ import { DnD } from "./dnd";
5
+ import { Form } from "./form";
6
6
  /**
7
7
  * Load necessary polyfills.
8
8
  */
9
- $.webshims.setOptions('basePath', '/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/');
10
- $.webshims.polyfill('forms');
9
+ $.webshims.setOptions(
10
+ "basePath",
11
+ "/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/"
12
+ );
13
+ $.webshims.polyfill("forms");
11
14
 
12
15
  /**
13
16
  * Clear sessionStorage on reload.
14
- */
17
+ */
15
18
  if (performance.navigation.type == performance.navigation.TYPE_RELOAD) {
16
- sessionStorage.clear();
17
- history.replaceState(null, '', location.href.split('?')[0]);
19
+ sessionStorage.clear();
20
+ history.replaceState(null, "", location.href.split("?")[0]);
18
21
  }
19
22
 
20
- var Page = React.createClass({
21
- render: function () {
22
- return (
23
- <div>
24
- <DnD ref="dnd"/>
25
- <Form ref="form"/>
26
- </div>
27
- );
28
- },
29
-
30
- componentDidMount: function () {
31
- this.refs.dnd.setState({
32
- query: this.refs.form.refs.query
33
- });
34
- }
35
- });
36
-
37
- /** Drag n drop widget.
38
- */
39
- var DnD = React.createClass({
40
-
41
- getInitialState: function () {
42
- return {
43
- query: null
44
- };
45
- },
46
-
47
- render: function () {
48
- return (
49
- <div
50
- className="dnd-overlay"
51
- style={{display: 'none'}}>
52
- <div
53
- className="container dnd-overlay-container">
54
- <div
55
- className="row">
56
- <div
57
- className="col-md-offset-2 col-md-10">
58
- <p
59
- className="dnd-overlay-drop"
60
- style={{display: 'none'}}>
61
- <i className="fa fa-2x fa-file-o"></i>
62
- Drop query sequence file here
63
- </p>
64
- <p
65
- className="dnd-overlay-overwrite"
66
- style={{display: 'none'}}>
67
- <i className="fa fa-2x fa-file-o"></i>
68
- <span style={{color: 'red'}}>Overwrite</span> query sequence file
69
- </p>
70
-
71
- <div
72
- className="dnd-errors">
73
- <div
74
- className="dnd-error row"
75
- id="dnd-multi-notification"
76
- style={{display: 'none'}}>
77
- <div
78
- className="col-md-6 col-md-offset-3">
79
- One file at a time please.
80
- </div>
81
- </div>
82
-
83
- <div
84
- className="dnd-error row"
85
- id="dnd-large-file-notification"
86
- style={{display: 'none'}}>
87
- <div
88
- className="col-md-6 col-md-offset-3">
89
- Too big a file. Can only do less than 10 MB. &gt;_&lt;
90
- </div>
91
- </div>
92
-
93
- <div
94
- className="dnd-error row"
95
- id="dnd-format-notification"
96
- style={{display: 'none'}}>
97
- <div
98
- className="col-md-6 col-md-offset-3">
99
- Only FASTA files please.
100
- </div>
101
- </div>
102
- </div>
103
- </div>
104
- </div>
105
- </div>
106
- </div>
107
- );
108
- },
109
-
110
- componentDidMount: function () {
111
- var self = this;
112
- var FASTA_FORMAT = /^>/;
113
-
114
- $(document).ready(function(){
115
- var tgtMarker = $('.dnd-overlay');
116
-
117
- var dndError = function (id) {
118
- $('.dnd-error').hide();
119
- $('#' + id + '-notification').show();
120
- tgtMarker.effect('fade', 2500);
121
- };
122
-
123
- $(document)
124
- .on('dragenter', function (evt) {
125
- // Do not activate DnD if a modal is active.
126
- if ($.modalActive()) return;
127
-
128
- // Based on http://stackoverflow.com/a/8494918/1205465.
129
- // Contrary to what the above link says, the snippet below can't
130
- // distinguish directories from files. We handle that on drop.
131
- var dt = evt.originalEvent.dataTransfer;
132
- var isFile = dt.types && ((dt.types.indexOf && // Chrome and Safari
133
- dt.types.indexOf('Files') != -1) ||
134
- (dt.types.contains && // Firefox
135
- dt.types.contains('application/x-moz-file')));
136
-
137
- if (!isFile) { return; }
138
-
139
- $('.dnd-error').hide();
140
- tgtMarker.stop(true, true);
141
- tgtMarker.show();
142
- dt.effectAllowed = 'copy';
143
- if (self.state.query.isEmpty()) {
144
- $('.dnd-overlay-overwrite').hide();
145
- $('.dnd-overlay-drop').show('drop', {direction: 'down'}, 'fast');
146
- }
147
- else {
148
- $('.dnd-overlay-drop').hide();
149
- $('.dnd-overlay-overwrite').show('drop', {direction: 'down'}, 'fast');
150
- }
151
- })
152
- .on('dragleave', '.dnd-overlay', function (evt) {
153
- tgtMarker.hide();
154
- $('.dnd-overlay-drop').hide();
155
- $('.dnd-overlay-overwrite').hide();
156
- })
157
- .on('dragover', '.dnd-overlay', function (evt) {
158
- evt.originalEvent.dataTransfer.dropEffect = 'copy';
159
- evt.preventDefault();
160
- })
161
- .on('drop', '.dnd-overlay', function (evt) {
162
- evt.preventDefault();
163
- evt.stopPropagation();
164
-
165
- var indicator = $('#sequence-file');
166
- self.state.query.focus();
167
-
168
- var files = evt.originalEvent.dataTransfer.files;
169
- if (files.length > 1) {
170
- dndError('dnd-multi');
171
- return;
172
- }
173
-
174
- var file = files[0];
175
- if (file.size > 10 * 1048576) {
176
- dndError('dnd-large-file');
177
- return;
178
- }
179
-
180
- var reader = new FileReader();
181
- reader.onload = function (e) {
182
- var content = e.target.result;
183
- if (FASTA_FORMAT.test(content)) {
184
- indicator.text(file.name + ' ');
185
- self.state.query.value(content);
186
- tgtMarker.hide();
187
- } else {
188
- // apparently not FASTA
189
- dndError('dnd-format');
190
- }
191
- };
192
- reader.onerror = function (e) {
193
- // Couldn't read. Means dropped stuff wasn't FASTA file.
194
- dndError('dnd-format');
195
- };
196
- reader.readAsText(file);
197
- });
198
- });
199
- }
200
- });
201
-
202
- /**
203
- * Search form.
204
- *
205
- * Top level component that initialises and holds all other components, and
206
- * facilitates communication between them.
207
- */
208
- var Form = React.createClass({
209
-
210
- getInitialState: function () {
211
- return { databases: [], preDefinedOpts: {}, tree: {} };
212
- },
213
-
214
- componentDidMount: function () {
215
- /* Fetch data to initialise the search interface from the server. These
216
- * include list of databases to search against, advanced options to
217
- * apply when an algorithm is selected, and a query sequence that
218
- * the user may want to search in the databases.
219
- */
220
- var search = location.search.split(/\?|&/).filter(Boolean);
221
- var job_id = sessionStorage.getItem('job_id');
222
- if (job_id) {
223
- search.unshift(`job_id=${job_id}`);
224
- }
225
- $.getJSON(`searchdata.json?${search.join('&')}`, function(data) {
226
- /* Update form state (i.e., list of databases and predefined
227
- * advanced options.
228
- */
229
- this.setState({
230
- tree: data['tree'],
231
- databases: data['database'],
232
- preSelectedDbs: data['preSelectedDbs'],
233
- preDefinedOpts: data['options']
234
- });
235
-
236
- /* Pre-populate the form with server sent query sequences
237
- * (if any).
238
- */
239
- if (data['query']) {
240
- this.refs.query.value(data['query']);
241
- }
242
-
243
- setTimeout(function(){
244
- $('.jstree_div').click();
245
- }, 1000);
246
- }.bind(this));
247
-
248
- /* Enable submitting form on Cmd+Enter */
249
- $(document).on('keydown', (e)=> {
250
- var $button = $('#method');
251
- if (!$button.is(':disabled') &&
252
- e.ctrlKey && e.key === 'Enter') {
253
- $button.trigger('click');
254
- }
255
- });
256
- },
257
-
258
- useTreeWidget: function () {
259
- return !_.isEmpty(this.state.tree);
260
- },
261
-
262
- determineBlastMethod: function () {
263
- var database_type = this.databaseType;
264
- var sequence_type = this.sequenceType;
265
-
266
- if (this.refs.query.isEmpty()) {
267
- return [];
268
- }
269
-
270
- //database type is always known
271
- switch (database_type) {
272
- case 'protein':
273
- switch (sequence_type) {
274
- case undefined:
275
- return ['blastp', 'blastx'];
276
- case 'protein':
277
- return ['blastp'];
278
- case 'nucleotide':
279
- return ['blastx'];
280
- }
281
- break;
282
- case 'nucleotide':
283
- switch (sequence_type) {
284
- case undefined:
285
- return ['tblastn', 'blastn', 'tblastx'];
286
- case 'protein':
287
- return ['tblastn'];
288
- case 'nucleotide':
289
- return ['blastn', 'tblastx'];
290
- }
291
- break;
292
- }
293
-
294
- return [];
295
- },
296
-
297
- handleSequenceTypeChanged: function (type) {
298
- this.sequenceType = type;
299
- this.refs.button.setState({
300
- hasQuery: !this.refs.query.isEmpty(),
301
- hasDatabases: !!this.databaseType,
302
- methods: this.determineBlastMethod()
303
- });
304
- },
305
-
306
- handleDatabaseTypeChanaged: function (type) {
307
- this.databaseType = type;
308
- this.refs.button.setState({
309
- hasQuery: !this.refs.query.isEmpty(),
310
- hasDatabases: !!this.databaseType,
311
- methods: this.determineBlastMethod()
312
- });
313
- },
314
-
315
- handleAlgoChanged: function (algo) {
316
- if (this.state.preDefinedOpts.hasOwnProperty(algo)) {
317
- this.refs.opts.setState({
318
- preOpts: this.state.preDefinedOpts[algo].join(' ')
319
- });
320
- }
321
- else {
322
- this.refs.opts.setState({preOpts: ''});
323
- }
324
- },
325
-
326
- handleNewTabCheckbox: function () {
327
- setTimeout(() => {
328
- if ($('#toggleNewTab').is(':checked')) {
329
- $('#blast').attr('target', '_blank');
330
- }
331
- else {
332
- $('#blast').attr('target', '_self');
333
- }
334
- });
335
- },
336
-
337
- render: function () {
338
- return (
339
- <div className="container">
340
- <form id="blast" method="post" className="form-horizontal">
341
- <div className="form-group query-container">
342
- <Query ref="query" onSequenceTypeChanged={this.handleSequenceTypeChanged}/>
343
- </div>
344
- <div className="notifications" id="notifications">
345
- <NucleotideNotification/>
346
- <ProteinNotification/>
347
- <MixedNotification/>
348
- </div>
349
- {this.useTreeWidget() ?
350
- <DatabasesTree ref="databases"
351
- databases={this.state.databases} tree={this.state.tree}
352
- preSelectedDbs={this.state.preSelectedDbs}
353
- onDatabaseTypeChanged={this.handleDatabaseTypeChanaged} />
354
- :
355
- <Databases ref="databases" databases={this.state.databases}
356
- preSelectedDbs={this.state.preSelectedDbs}
357
- onDatabaseTypeChanged={this.handleDatabaseTypeChanaged} />
358
- }
359
- <div className="form-group">
360
- <Options ref="opts"/>
361
- <div className="col-md-2">
362
- <div className="form-group" style={{'textAlign': 'center', 'padding': '7px 0'}}>
363
- <label>
364
- <input type="checkbox" id="toggleNewTab"
365
- onChange={()=> { this.handleNewTabCheckbox(); }}
366
- /> Open results in new tab
367
- </label>
368
- </div>
369
- </div>
370
- <SearchButton ref="button" onAlgoChanged={this.handleAlgoChanged}/>
371
- </div>
372
- </form>
373
- </div>
374
- );
375
- }
376
- });
377
-
378
- /**
379
- * Query widget.
380
- */
381
- var Query = React.createClass({
382
-
383
- // Kind of public API. //
384
-
385
- /**
386
- * Returns query sequence if no argument is provided (or null or undefined
387
- * is provided as argument). Otherwise, sets query sequenced to the given
388
- * value and returns `this`.
389
- *
390
- * Default/initial state of query sequence is an empty string. Caller must
391
- * explicitly provide empty string as argument to "reset" query sequence.
392
- */
393
- value: function (val) {
394
- if (val == null) {
395
- // i.e., val is null or undefined
396
- return this.state.value;
397
- }
398
- else {
399
- this.setState({
400
- value: val
401
- });
402
- return this;
403
- }
404
- },
405
-
406
- /**
407
- * Clears textarea. Returns `this`.
408
- *
409
- * Clearing textarea also causes it to be focussed.
410
- */
411
- clear: function () {
412
- return this.value('').focus();
413
- },
414
-
415
- /**
416
- * Focuses textarea. Returns `this`.
417
- */
418
- focus: function () {
419
- this.textarea().focus();
420
- return this;
421
- },
422
-
423
- /**
424
- * Returns true if query is absent ('', undefined, null), false otherwise.
425
- */
426
- isEmpty: function () {
427
- return !this.value();
428
- },
429
-
430
-
431
- // Internal helpers. //
432
-
433
- textarea: function () {
434
- return $(this.refs.textarea.getDOMNode());
435
- },
436
-
437
- controls: function () {
438
- return $(this.refs.controls.getDOMNode());
439
- },
440
-
441
- handleInput: function (evt) {
442
- this.value(evt.target.value);
443
- },
444
-
445
- /**
446
- * Hides or shows 'clear sequence' button.
447
- *
448
- * Rendering the 'clear sequence' button takes into account presence or
449
- * absence of a scrollbar.
450
- *
451
- * Called by `componentDidUpdate`.
452
- */
453
- hideShowButton: function () {
454
- if (!this.isEmpty()) {
455
- // Calculation below is based on -
456
- // http://chris-spittles.co.uk/jquery-calculate-scrollbar-width/
457
- // FIXME: can reflow be avoided here?
458
- var textareaNode = this.textarea()[0];
459
- var sequenceControlsRight = textareaNode.offsetWidth - textareaNode.clientWidth;
460
- this.controls().css('right', sequenceControlsRight + 17);
461
- this.controls().removeClass('hidden');
462
- }
463
- else {
464
- // FIXME: what are lines 1, 2, & 3 doing here?
465
- this.textarea().parent().removeClass('has-error');
466
- this.$sequenceFile = $('#sequence-file');
467
- this.$sequenceFile.empty();
468
-
469
- this.controls().addClass('hidden');
470
- }
471
- },
472
-
473
- /**
474
- * Put red border around textarea.
475
- */
476
- indicateError: function () {
477
- this.textarea().parent().addClass('has-error');
478
- },
479
-
480
- /**
481
- * Put normal blue border around textarea.
482
- */
483
- indicateNormal: function () {
484
- this.textarea().parent().removeClass('has-error');
485
- },
486
-
487
- /**
488
- * Returns type of the query sequence (nucleotide, protein, mixed).
489
- *
490
- * Query widget supports executing a callback when the query type changes.
491
- * Components interested in query type should register a callback instead
492
- * of directly calling this method.
493
- */
494
- type: function () {
495
- var sequences = this.value().split(/>.*/);
496
-
497
- var type, tmp;
498
-
499
- for (var i = 0; i < sequences.length; i++) {
500
- tmp = this.guessSequenceType(sequences[i]);
501
-
502
- // could not guess the sequence type; try the next sequence
503
- if (!tmp) { continue; }
504
-
505
- if (!type) {
506
- // successfully guessed the type of atleast one sequence
507
- type = tmp;
508
- }
509
- else if (tmp !== type) {
510
- // user has mixed different type of sequences
511
- return 'mixed';
512
- }
513
- }
514
-
515
- return type;
516
- },
517
-
518
- /**
519
- * Guesses and returns the type of the given sequence (nucleotide,
520
- * protein).
521
- */
522
- guessSequenceType: function (sequence) {
523
- // remove 'noisy' characters
524
- sequence = sequence.replace(/[^A-Z]/gi, ''); // non-letter characters
525
- sequence = sequence.replace(/[NX]/gi, ''); // ambiguous characters
526
-
527
- // can't determine the type of ultrashort queries
528
- if (sequence.length < 10) {
529
- return undefined;
530
- }
531
-
532
- // count the number of putative NA
533
- var putative_NA_count = 0;
534
- for (var i = 0; i < sequence.length; i++) {
535
- if (sequence[i].match(/[ACGTU]/i)) {
536
- putative_NA_count += 1;
537
- }
538
- }
539
-
540
- var threshold = 0.9 * sequence.length;
541
- return putative_NA_count > threshold ? 'nucleotide' : 'protein';
542
- },
543
-
544
- notify: function (type) {
545
- clearTimeout(this.notification_timeout);
546
- this.indicateNormal();
547
- $('.notifications .active').hide().removeClass('active');
548
-
549
- if (type) {
550
- $('#' + type + '-sequence-notification').show('drop', {direction: 'up'}).addClass('active');
551
-
552
- this.notification_timeout = setTimeout(function () {
553
- $('.notifications .active').hide('drop', {direction: 'up'}).removeClass('active');
554
- }, 5000);
555
-
556
- if (type === 'mixed') {
557
- this.indicateError();
558
- }
559
- }
560
- },
561
-
562
-
563
- // Lifecycle methods. //
564
-
565
- getInitialState: function () {
566
- var input_sequence = $('input#input_sequence').val() || '';
567
- return {
568
- value: input_sequence
569
- };
570
- },
571
-
572
- render: function ()
573
- {
574
- return (
575
- <div
576
- className="col-md-12">
577
- <div
578
- className="sequence">
579
- <textarea
580
- id="sequence" ref="textarea"
581
- className="form-control text-monospace"
582
- name="sequence" value={this.state.value}
583
- placeholder="Paste query sequence(s) or drag file
584
- containing query sequence(s) in FASTA format here ..."
585
- spellCheck="false" autoFocus="true"
586
- onChange={this.handleInput}>
587
- </textarea>
588
- </div>
589
- <div
590
- className="hidden"
591
- style={{ position: 'absolute', top: '4px', right: '19px' }}
592
- ref="controls">
593
- <button
594
- type="button"
595
- className="btn btn-sm btn-default" id="btn-sequence-clear"
596
- title="Clear query sequence(s)."
597
- onClick={this.clear}>
598
- <span id="sequence-file"></span>
599
- <i className="fa fa-times"></i>
600
- </button>
601
- </div>
602
- </div>
603
- );
604
- },
605
-
606
- componentDidMount: function () {
607
- $('body').click(function () {
608
- $('.notifications .active').hide('drop', {direction: 'up'}).removeClass('active');
609
- });
610
- },
611
-
612
- componentDidUpdate: function () {
613
- this.hideShowButton();
614
- var type = this.type();
615
- if (!type || type !== this._type) {
616
- this._type = type;
617
- this.notify(type);
618
- this.props.onSequenceTypeChanged(type);
619
- }
620
- }
621
- });
622
-
623
- var ProteinNotification = React.createClass({
624
- render: function () {
625
- return (
626
- <div
627
- className="notification row"
628
- id="protein-sequence-notification"
629
- style={{ display: 'none' }}>
630
- <div
631
- className="alert-info col-md-6 col-md-offset-3">
632
- Detected: amino-acid sequence(s).
633
- </div>
634
- </div>
635
- );
636
- }
637
- });
638
-
639
- var NucleotideNotification = React.createClass({
640
- render: function () {
641
- return (
642
- <div
643
- className="notification row"
644
- id="nucleotide-sequence-notification"
645
- style={{ display: 'none' }}>
646
- <div
647
- className="alert-info col-md-6 col-md-offset-3">
648
- Detected: nucleotide sequence(s).
649
- </div>
650
- </div>
651
- );
652
- }
653
- });
654
-
655
- var MixedNotification = React.createClass({
656
- render: function () {
657
- return (
658
- <div
659
- className="notification row"
660
- id="mixed-sequence-notification"
661
- style={{ display: 'none' }}>
662
- <div
663
- className="alert-danger col-md-10 col-md-offset-1">
664
- Error: mixed nucleotide and amino-acid sequences detected.
665
- </div>
666
- </div>
667
- );
668
- }
669
- });
670
-
671
- var Databases = React.createClass({
672
- getInitialState: function () {
673
- return { type: '' };
674
- },
675
-
676
- databases: function (category) {
677
- var databases = this.props.databases;
678
- if (category) {
679
- databases = _.select(databases, database => database.type === category);
680
- }
681
-
682
- return _.sortBy(databases, 'title');
683
- },
684
-
685
- nselected: function () {
686
- return $('input[name="databases[]"]:checked').length;
687
- },
688
-
689
- categories: function () {
690
- return _.uniq(_.map(this.props.databases,
691
- _.iteratee('type'))).sort();
692
- },
693
-
694
- handleClick: function (database) {
695
- var type = this.nselected() ? database.type : '';
696
- if (type != this.state.type) this.setState({type: type});
697
- },
698
-
699
- handleToggle: function (toggleState, type) {
700
- switch (toggleState) {
701
- case '[Select all]':
702
- $(`.${type} .database input:not(:checked)`).click();
703
- break;
704
- case '[Deselect all]':
705
- $(`.${type} .database input:checked`).click();
706
- break;
707
- }
708
- this.forceUpdate();
709
- },
710
-
711
- render: function () {
712
- return (
713
- <div className="form-group databases-container">
714
- { _.map(this.categories(), this.renderDatabases) }
715
- </div>
716
- );
717
- },
718
-
719
- renderDatabases: function (category) {
720
- // Panel name and column width.
721
- var panelTitle = category[0].toUpperCase() +
722
- category.substring(1).toLowerCase() + ' databases';
723
- var columnClass = this.categories().length === 1 ? 'col-md-12' :
724
- 'col-md-6';
725
-
726
- // Toggle button.
727
- var toggleState = '[Select all]';
728
- var toggleClass = 'btn-link';
729
- var toggleShown = this.databases(category).length > 1 ;
730
- var toggleDisabled = this.state.type && this.state.type !== category;
731
- if (toggleShown && toggleDisabled) toggleClass += ' disabled';
732
- if (!toggleShown) toggleClass += ' hidden';
733
- if (this.nselected() === this.databases(category).length) {
734
- toggleState = '[Deselect all]';
735
- }
736
-
737
- // JSX.
738
- return (
739
- <div className={columnClass} key={'DB_'+category}>
740
- <div className="panel panel-default">
741
- <div className="panel-heading">
742
- <h4 style={{display: 'inline'}}>{panelTitle}</h4> &nbsp;&nbsp;
743
- <button type="button" className={toggleClass} disabled={toggleDisabled}
744
- onClick={ function () { this.handleToggle(toggleState, category); }.bind(this) }>
745
- {toggleState}
746
- </button>
747
- </div>
748
- <ul className={'list-group databases ' + category}>
749
- {
750
- _.map(this.databases(category), _.bind(function (database,index) {
751
- return (
752
- <li className="list-group-item" key={'DB_'+category+index}>
753
- { this.renderDatabase(database) }
754
- </li>
755
- );
756
- }, this))
757
- }
758
- </ul>
759
- </div>
760
- </div>
761
- );
762
- },
763
-
764
- renderDatabase: function (database) {
765
- var disabled = this.state.type && this.state.type !== database.type;
766
-
767
- return (
768
- <label
769
- className={disabled && 'disabled database' || 'database'}>
770
- <input
771
- type="checkbox" name="databases[]" value={database.id}
772
- data-type={database.type} disabled={disabled}
773
- onChange=
774
- {
775
- _.bind(function () {
776
- this.handleClick(database);
777
- }, this)
778
- }/>
779
- {' ' + (database.title || database.name)}
780
- </label>
781
- );
782
- },
783
-
784
- componentDidUpdate: function () {
785
- if (this.databases() && this.databases().length === 1) {
786
- $('.databases').find('input').prop('checked',true);
787
- this.handleClick(this.databases()[0]);
788
- }
789
-
790
- if (this.props.preSelectedDbs) {
791
- var selectors = this.props.preSelectedDbs.map(db => `input[value=${db.id}]`);
792
- $(selectors.join(',')).prop('checked',true);
793
- this.handleClick(this.props.preSelectedDbs[0]);
794
- this.props.preSelectedDbs = null;
795
- }
796
- this.props.onDatabaseTypeChanged(this.state.type);
797
- }
798
- });
799
-
800
- // Component for the advanced params input field.
801
- var Options = React.createClass({
802
- // State of this component is the advanced params text.
803
- getInitialState: function () {
804
- return { preOpts: '' };
805
- },
806
-
807
- updateBox: function (evt) {
808
- this.setState({
809
- preOpts: evt.target.value
810
- });
811
- },
812
-
813
- render: function () {
814
- var classNames = 'form-control';
815
- if (this.state.preOpts.trim()) {
816
- classNames += ' yellow-background';
817
- }
818
- return (
819
- <div className="col-md-7">
820
- <div className="form-group">
821
- <div className="col-md-12">
822
- <div className="input-group">
823
- <label className="control-label" htmlFor="advanced">
824
- Advanced parameters:
825
- </label>
826
- <input type="text" className={classNames} onChange={this.updateBox}
827
- id="advanced" name="advanced" value={this.state.preOpts}
828
- placeholder="eg: -evalue 1.0e-5 -num_alignments 100"
829
- title="View, and enter advanced parameters."
830
- />
831
- <div
832
- className="input-group-addon cursor-pointer"
833
- data-toggle="modal" data-target="#help">
834
- <i className="fa fa-question"></i>
835
- </div>
836
- </div>
837
- </div>
838
- </div>
839
- </div>
840
- );
841
- }
842
- });
843
-
844
- /**
845
- * SearchButton widget.
846
- */
847
- var SearchButton = React.createClass({
848
-
849
- // Internal helpers. //
850
-
851
- /**
852
- * Returns jquery wrapped input group.
853
- */
854
- inputGroup: function () {
855
- return $(React.findDOMNode(this.refs.inputGroup));
856
- },
857
-
858
- /**
859
- * Returns jquery wrapped submit button.
860
- */
861
- submitButton: function () {
862
- return $(React.findDOMNode(this.refs.submitButton));
863
- },
864
-
865
- /**
866
- * Initialise tooltip on input group and submit button.
867
- */
868
- initTooltip: function () {
869
- this.inputGroup().tooltip({
870
- trigger: 'manual',
871
- title: _.bind(function () {
872
- if (!this.state.hasQuery && !this.state.hasDatabases) {
873
- return 'You must enter a query sequence and select one or more databases above before you can run a search!';
874
- }
875
- else if (this.state.hasQuery && !this.state.hasDatabases) {
876
- return 'You must select one or more databases above before you can run a search!';
877
- }
878
- else if (!this.state.hasQuery && this.state.hasDatabases) {
879
- return 'You must enter a query sequence above before you can run a search!';
880
- }
881
- }, this)
882
- });
883
-
884
- this.submitButton().tooltip({
885
- title: _.bind(function () {
886
- var title = 'Click to BLAST or press Ctrl+Enter.';
887
- if (this.state.methods.length > 1) {
888
- title += ' Click dropdown button on the right for other' +
889
- ' BLAST algorithms that can be used.';
890
- }
891
- return title;
892
- }, this)
893
- });
894
- },
895
-
896
- /**
897
- * Show tooltip on input group.
898
- */
899
- showTooltip: function () {
900
- this.inputGroup()._tooltip('show');
901
- },
902
-
903
- /**
904
- * Hide tooltip on input group.
905
- */
906
- hideTooltip: function () {
907
- this.inputGroup()._tooltip('hide');
908
- },
909
-
910
- /**
911
- * Change selected algorithm.
912
- *
913
- * NOTE: Called on click on dropdown menu items.
914
- */
915
- changeAlgorithm: function (method) {
916
- var methods = this.state.methods.slice();
917
- methods.splice(methods.indexOf(method), 1);
918
- methods.unshift(method);
919
- this.setState({
920
- methods: methods
921
- });
922
- },
923
-
924
- /**
925
- * Given, for example 'blastp', returns blast<strong>p</strong>.
926
- */
927
- decorate: function(name) {
928
- return name.match(/(.?)(blast)(.?)/).slice(1).map(function (token, _) {
929
- if (token) {
930
- if (token !== 'blast'){
931
- return (<strong key={token}>{token}</strong>);
932
- }
933
- else {
934
- return token;
935
- }
936
- }
937
- });
938
- },
939
-
940
-
941
- // Lifecycle methods. //
942
-
943
- getInitialState: function () {
944
- return {
945
- methods: [],
946
- hasQuery: false,
947
- hasDatabases: false
948
- };
949
- },
950
-
951
- render: function () {
952
- var methods = this.state.methods;
953
- var method = methods[0];
954
- var multi = methods.length > 1;
955
-
956
- return (
957
- <div className="col-md-3">
958
- <div className="form-group">
959
- <div className="col-md-12">
960
- <div
961
- className={multi && 'input-group'} id="methods" ref="inputGroup"
962
- onMouseOver={this.showTooltip} onMouseOut={this.hideTooltip}>
963
- <button
964
- type="submit" className="btn btn-primary form-control text-uppercase"
965
- id="method" ref="submitButton" name="method" value={method} disabled={!method}>
966
- {this.decorate(method || 'blast')}
967
- </button>
968
- {
969
- multi && <div
970
- className="input-group-btn">
971
- <button
972
- className="btn btn-primary dropdown-toggle"
973
- data-toggle="dropdown">
974
- <span className="caret"></span>
975
- </button>
976
- <ul
977
- className="dropdown-menu dropdown-menu-right">
978
- {
979
- _.map(methods.slice(1), _.bind(function (method) {
980
- return (
981
- <li key={method} className="text-uppercase"
982
- onClick={
983
- _.bind(function () {
984
- this.changeAlgorithm(method);
985
- }, this)
986
- }>
987
- {method}
988
- </li>
989
- );
990
- }, this))
991
- }
992
- </ul>
993
- </div>
994
- }
995
- </div>
996
- </div>
997
- </div>
998
- </div>
999
- );
1000
- },
1001
-
1002
- componentDidMount: function () {
1003
- this.initTooltip();
1004
- },
1005
-
1006
- shouldComponentUpdate: function (props , state) {
1007
- return !(_.isEqual(state.methods, this.state.methods));
1008
- },
1009
-
1010
- componentDidUpdate: function () {
1011
- if (this.state.methods.length > 0) {
1012
- this.inputGroup().wiggle();
1013
- this.props.onAlgoChanged(this.state.methods[0]);
1014
- }
1015
- else {
1016
- this.props.onAlgoChanged('');
1017
- }
1018
- }
1019
- });
23
+ class Page extends Component {
24
+ componentDidMount() {
25
+ this.refs.dnd.setState({ query: this.refs.form.refs.query });
26
+ }
27
+ render() {
28
+ return (
29
+ <div>
30
+ <DnD ref="dnd" />
31
+ <Form ref="form" />
32
+ </div>
33
+ );
34
+ }
35
+ }
1020
36
 
1021
- React.render(<Page/>, document.getElementById('view'));
37
+ const root = createRoot(document.getElementById("view"));
38
+ root.render(<Page />);