sequenceserver 2.0.0.rc3 → 2.0.0.rc8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (473) hide show
  1. checksums.yaml +4 -4
  2. data/bin/chromedriver +0 -0
  3. data/bin/geckodriver +0 -0
  4. data/bin/sequenceserver +39 -29
  5. data/lib/sequenceserver.rb +48 -22
  6. data/lib/sequenceserver/blast/job.rb +11 -1
  7. data/lib/sequenceserver/database.rb +7 -168
  8. data/lib/sequenceserver/exceptions.rb +14 -0
  9. data/lib/sequenceserver/makeblastdb.rb +323 -0
  10. data/lib/sequenceserver/routes.rb +6 -1
  11. data/lib/sequenceserver/sequence.rb +1 -1
  12. data/lib/sequenceserver/version.rb +1 -1
  13. data/public/css/sequenceserver.css +10 -3
  14. data/public/css/sequenceserver.min.css +1 -1
  15. data/public/js/error_modal.js +27 -29
  16. data/public/js/hit.js +14 -5
  17. data/public/js/jquery_world.js +1 -1
  18. data/public/js/query.js +31 -15
  19. data/public/js/report.js +13 -6
  20. data/public/js/search.js +44 -24
  21. data/public/js/sequence_modal.js +10 -5
  22. data/public/js/sidebar.js +52 -28
  23. data/public/sequenceserver-report.min.js +17 -17
  24. data/public/sequenceserver-search.min.js +2 -2
  25. data/views/layout.erb +5 -1
  26. data/views/report.erb +1 -1
  27. data/views/search.erb +1 -1
  28. metadata +9 -450
  29. data/.bootstrap/config.json +0 -433
  30. data/.codeclimate.yml +0 -31
  31. data/.csslintrc +0 -2
  32. data/.eslintignore +0 -1
  33. data/.eslintrc.json +0 -36
  34. data/.gitignore +0 -56
  35. data/.mailmap +0 -5
  36. data/.rspec +0 -3
  37. data/.rubocop.yml +0 -61
  38. data/.travis.yml +0 -74
  39. data/AppImage/recipe.yml +0 -15
  40. data/AppImage/sequenceserver.desktop +0 -8
  41. data/AppImage/sequenceserver.png +0 -0
  42. data/AppImage/sequenceserver.sh +0 -16
  43. data/Dockerfile +0 -23
  44. data/LICENSE.txt +0 -661
  45. data/LICENSE/Apache.txt +0 -176
  46. data/LICENSE/d3.txt +0 -26
  47. data/README.md +0 -161
  48. data/package.json +0 -48
  49. data/public/vendor/.dependencies.json +0 -18
  50. data/public/vendor/.loaderversions +0 -1
  51. data/public/vendor/github/components/jquery@2.1.4/.gitignore +0 -1
  52. data/public/vendor/github/components/jquery@2.1.4/.jspm-hash +0 -1
  53. data/public/vendor/github/components/jquery@2.1.4/.jspm.json +0 -37
  54. data/public/vendor/github/components/jqueryui@1.11.4/.gitignore +0 -4
  55. data/public/vendor/github/components/jqueryui@1.11.4/.jspm-hash +0 -1
  56. data/public/vendor/github/components/jqueryui@1.11.4/.jspm.json +0 -136
  57. data/public/vendor/github/components/jqueryui@1.11.4/ui/.jshintrc +0 -24
  58. data/public/vendor/github/jspm/nodelibs-buffer@0.1.0/.jspm-hash +0 -1
  59. data/public/vendor/github/jspm/nodelibs-buffer@0.1.0/.jspm.json +0 -10
  60. data/public/vendor/github/jspm/nodelibs-events@0.1.1/.jspm-hash +0 -1
  61. data/public/vendor/github/jspm/nodelibs-events@0.1.1/.jspm.json +0 -10
  62. data/public/vendor/github/jspm/nodelibs-fs@0.1.2/.jspm-hash +0 -1
  63. data/public/vendor/github/jspm/nodelibs-module@0.1.0/.jspm-hash +0 -1
  64. data/public/vendor/github/jspm/nodelibs-module@0.1.0/.jspm.json +0 -3
  65. data/public/vendor/github/jspm/nodelibs-path@0.1.0/.jspm-hash +0 -1
  66. data/public/vendor/github/jspm/nodelibs-path@0.1.0/.jspm.json +0 -10
  67. data/public/vendor/github/jspm/nodelibs-process@0.1.1/.jspm-hash +0 -1
  68. data/public/vendor/github/jspm/nodelibs-stream@0.1.0/.jspm-hash +0 -1
  69. data/public/vendor/github/jspm/nodelibs-stream@0.1.0/.jspm.json +0 -10
  70. data/public/vendor/github/jspm/nodelibs-util@0.1.0/.jspm-hash +0 -1
  71. data/public/vendor/github/jspm/nodelibs-util@0.1.0/.jspm.json +0 -10
  72. data/public/vendor/github/mbostock/d3@3.5.6/.jspm-hash +0 -1
  73. data/public/vendor/github/mbostock/d3@3.5.6/.jspm.json +0 -76
  74. data/public/vendor/github/nicgirault/circosJs@1.7.0/.gitignore +0 -10
  75. data/public/vendor/github/nicgirault/circosJs@1.7.0/.jspm-hash +0 -1
  76. data/public/vendor/github/systemjs/plugin-css@0.1.15/.gitignore +0 -1
  77. data/public/vendor/github/systemjs/plugin-css@0.1.15/.jspm-hash +0 -1
  78. data/public/vendor/github/systemjs/plugin-css@0.1.15/.jspm.json +0 -4
  79. data/public/vendor/github/systemjs/plugin-json@0.1.0/.jspm-hash +0 -1
  80. data/public/vendor/github/twbs/bootstrap@3.3.5/.jspm-hash +0 -1
  81. data/public/vendor/github/twbs/bootstrap@3.3.5/.jspm.json +0 -100
  82. data/public/vendor/npm/amdefine@1.0.0/.jspm-hash +0 -1
  83. data/public/vendor/npm/amdefine@1.0.0/.jspm.json +0 -55
  84. data/public/vendor/npm/babel-core@5.8.23/.jspm-hash +0 -1
  85. data/public/vendor/npm/babel-runtime@5.8.20/.jspm-hash +0 -1
  86. data/public/vendor/npm/babel-runtime@5.8.20/.npmignore +0 -2
  87. data/public/vendor/npm/base62@0.1.1/.jspm-hash +0 -1
  88. data/public/vendor/npm/base62@0.1.1/.jspm.json +0 -49
  89. data/public/vendor/npm/base62@0.1.1/.travis.yml +0 -4
  90. data/public/vendor/npm/base64-js@0.0.8/.jspm-hash +0 -1
  91. data/public/vendor/npm/base64-js@0.0.8/.jspm.json +0 -77
  92. data/public/vendor/npm/base64-js@0.0.8/.travis.yml +0 -5
  93. data/public/vendor/npm/buffer@3.4.3/.jspm-hash +0 -1
  94. data/public/vendor/npm/buffer@3.4.3/.jspm.json +0 -105
  95. data/public/vendor/npm/buffer@3.4.3/.npmignore +0 -1
  96. data/public/vendor/npm/buffer@3.4.3/.travis.yml +0 -8
  97. data/public/vendor/npm/buffer@3.4.3/.zuul.yml +0 -20
  98. data/public/vendor/npm/core-js@1.1.2/.eslintrc +0 -36
  99. data/public/vendor/npm/core-js@1.1.2/.gitattributes +0 -1
  100. data/public/vendor/npm/core-js@1.1.2/.jspm-hash +0 -1
  101. data/public/vendor/npm/core-js@1.1.2/.npmignore +0 -10
  102. data/public/vendor/npm/core-js@1.1.2/.travis.yml +0 -3
  103. data/public/vendor/npm/core-util-is@1.0.1/.jspm-hash +0 -1
  104. data/public/vendor/npm/core-util-is@1.0.1/.jspm.json +0 -58
  105. data/public/vendor/npm/envify@3.4.0/.jspm-hash +0 -1
  106. data/public/vendor/npm/envify@3.4.0/.jspm.json +0 -72
  107. data/public/vendor/npm/envify@3.4.0/.npmignore +0 -2
  108. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/.jspm-hash +0 -1
  109. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/.jspm.json +0 -102
  110. data/public/vendor/npm/events@1.0.2/.jspm-hash +0 -1
  111. data/public/vendor/npm/events@1.0.2/.jspm.json +0 -67
  112. data/public/vendor/npm/events@1.0.2/.npmignore +0 -1
  113. data/public/vendor/npm/events@1.0.2/.travis.yml +0 -7
  114. data/public/vendor/npm/events@1.0.2/.zuul.yml +0 -12
  115. data/public/vendor/npm/font-awesome@4.4.0/.jspm-hash +0 -1
  116. data/public/vendor/npm/font-awesome@4.4.0/.jspm.json +0 -81
  117. data/public/vendor/npm/font-awesome@4.4.0/.npmignore +0 -42
  118. data/public/vendor/npm/ieee754@1.1.6/.jspm-hash +0 -1
  119. data/public/vendor/npm/ieee754@1.1.6/.jspm.json +0 -70
  120. data/public/vendor/npm/ieee754@1.1.6/.travis.yml +0 -7
  121. data/public/vendor/npm/ieee754@1.1.6/.zuul.yml +0 -20
  122. data/public/vendor/npm/inherits@2.0.1/.jspm-hash +0 -1
  123. data/public/vendor/npm/inherits@2.0.1/.jspm.json +0 -60
  124. data/public/vendor/npm/is-array@1.0.1/.jepso-ci.json +0 -3
  125. data/public/vendor/npm/is-array@1.0.1/.jspm-hash +0 -1
  126. data/public/vendor/npm/is-array@1.0.1/.jspm.json +0 -42
  127. data/public/vendor/npm/is-array@1.0.1/.npmignore +0 -0
  128. data/public/vendor/npm/isarray@0.0.1/.jspm-hash +0 -1
  129. data/public/vendor/npm/isarray@0.0.1/.jspm.json +0 -51
  130. data/public/vendor/npm/jstransform@10.1.0/.jshintrc +0 -28
  131. data/public/vendor/npm/jstransform@10.1.0/.jspm-hash +0 -1
  132. data/public/vendor/npm/jstransform@10.1.0/.jspm.json +0 -95
  133. data/public/vendor/npm/jstransform@10.1.0/.npmignore +0 -4
  134. data/public/vendor/npm/jstransform@10.1.0/.travis.yml +0 -8
  135. data/public/vendor/npm/path-browserify@0.0.0/.jspm-hash +0 -1
  136. data/public/vendor/npm/path-browserify@0.0.0/.jspm.json +0 -56
  137. data/public/vendor/npm/process@0.10.1/.jspm-hash +0 -1
  138. data/public/vendor/npm/react@0.13.3/.jspm-hash +0 -1
  139. data/public/vendor/npm/react@0.13.3/.jspm.json +0 -77
  140. data/public/vendor/npm/readable-stream@1.1.13/.jspm-hash +0 -1
  141. data/public/vendor/npm/readable-stream@1.1.13/.jspm.json +0 -95
  142. data/public/vendor/npm/readable-stream@1.1.13/.npmignore +0 -5
  143. data/public/vendor/npm/source-map@0.1.31/.jspm-hash +0 -1
  144. data/public/vendor/npm/source-map@0.1.31/.jspm.json +0 -133
  145. data/public/vendor/npm/source-map@0.1.31/.npmignore +0 -2
  146. data/public/vendor/npm/source-map@0.1.31/.travis.yml +0 -4
  147. data/public/vendor/npm/stream-browserify@1.0.0/.jspm-hash +0 -1
  148. data/public/vendor/npm/stream-browserify@1.0.0/.jspm.json +0 -77
  149. data/public/vendor/npm/stream-browserify@1.0.0/.travis.yml +0 -4
  150. data/public/vendor/npm/string_decoder@0.10.31/.jspm-hash +0 -1
  151. data/public/vendor/npm/string_decoder@0.10.31/.jspm.json +0 -58
  152. data/public/vendor/npm/string_decoder@0.10.31/.npmignore +0 -2
  153. data/public/vendor/npm/through@2.3.8/.jspm-hash +0 -1
  154. data/public/vendor/npm/through@2.3.8/.jspm.json +0 -72
  155. data/public/vendor/npm/through@2.3.8/.travis.yml +0 -5
  156. data/public/vendor/npm/underscore@1.8.3/.jspm-hash +0 -1
  157. data/public/vendor/npm/underscore@1.8.3/.jspm.json +0 -74
  158. data/public/vendor/npm/util@0.10.3/.jspm-hash +0 -1
  159. data/public/vendor/npm/util@0.10.3/.jspm.json +0 -58
  160. data/public/vendor/npm/util@0.10.3/.npmignore +0 -1
  161. data/public/vendor/npm/util@0.10.3/.travis.yml +0 -8
  162. data/public/vendor/npm/util@0.10.3/.zuul.yml +0 -10
  163. data/public/vendor/npm/webshim@1.15.8/.gitattributes +0 -12
  164. data/public/vendor/npm/webshim@1.15.8/.jspm-hash +0 -1
  165. data/public/vendor/npm/webshim@1.15.8/.jspm.json +0 -92
  166. data/public/vendor/npm/webshim@1.15.8/.npmignore +0 -16
  167. data/public/vendor/npm/webshim@1.15.8/.project +0 -12
  168. data/public/vendor/npm/webshim@1.15.8/demos/demos/filereader/upload/.keep +0 -0
  169. data/sequenceserver.gemspec +0 -55
  170. data/spec/blast_versions/blast_2.2.30/blast_2.2.30_spec.rb +0 -228
  171. data/spec/blast_versions/blast_2.2.30/import_spec_capybara_local_2.2.30.rb +0 -583
  172. data/spec/blast_versions/blast_2.2.31/blast_2.2.31_spec.rb +0 -228
  173. data/spec/blast_versions/blast_2.2.31/import_spec_capybara_local_2.2.31.rb +0 -587
  174. data/spec/blast_versions/blast_2.3.0/blast_2.3.0_spec.rb +0 -229
  175. data/spec/blast_versions/blast_2.3.0/import_spec_capybara_local_2.3.0.rb +0 -587
  176. data/spec/blast_versions/blast_2.4.0/blast_2.4.0_spec.rb +0 -228
  177. data/spec/blast_versions/blast_2.4.0/import_spec_capybara_local_2.4.0.rb +0 -588
  178. data/spec/blast_versions/blast_2.5.0/blast_2.5.0_spec.rb +0 -228
  179. data/spec/blast_versions/blast_2.5.0/import_spec_capybara_local_2.5.0.rb +0 -587
  180. data/spec/blast_versions/blast_2.6.0/blast_2.6.0_spec.rb +0 -228
  181. data/spec/blast_versions/blast_2.6.0/import_spec_capybara_local_2.6.0.rb +0 -587
  182. data/spec/blast_versions/blast_2.7.1/blast_2.7.1_spec.rb +0 -228
  183. data/spec/blast_versions/blast_2.7.1/import_spec_capybara_local_2.7.1.rb +0 -587
  184. data/spec/blast_versions/blast_2.8.1/blast_2.8.1_spec.rb +0 -228
  185. data/spec/blast_versions/blast_2.8.1/import_spec_capybara_local_2.8.1.rb +0 -587
  186. data/spec/blast_versions/blast_2.9.0/blast_2.9.0_spec.rb +0 -228
  187. data/spec/blast_versions/blast_2.9.0/import_spec_capybara_local_2.9.0.rb +0 -585
  188. data/spec/blast_versions/diamond_0.9.24/diamond_0.9.24_spec.rb +0 -176
  189. data/spec/blast_versions/diamond_0.9.24/import_spec_capybara_local_0.9.24.rb +0 -237
  190. data/spec/capybara_spec.rb +0 -334
  191. data/spec/config_spec.rb +0 -87
  192. data/spec/database/funky_ids/funky_ids.fa +0 -16
  193. data/spec/database/funky_ids/funky_ids.fa.nhd +0 -8
  194. data/spec/database/funky_ids/funky_ids.fa.nhi +0 -0
  195. data/spec/database/funky_ids/funky_ids.fa.nhr +0 -0
  196. data/spec/database/funky_ids/funky_ids.fa.nin +0 -0
  197. data/spec/database/funky_ids/funky_ids.fa.nog +0 -0
  198. data/spec/database/funky_ids/funky_ids.fa.nsd +0 -15
  199. data/spec/database/funky_ids/funky_ids.fa.nsi +0 -0
  200. data/spec/database/funky_ids/funky_ids.fa.nsq +0 -0
  201. data/spec/database/funky_sequences/README.md +0 -14
  202. data/spec/database/funky_sequences/funky_aa_sequences.fa +0 -7
  203. data/spec/database/funky_sequences/funky_aa_sequences.fa.phd +0 -3
  204. data/spec/database/funky_sequences/funky_aa_sequences.fa.phi +0 -0
  205. data/spec/database/funky_sequences/funky_aa_sequences.fa.phr +0 -0
  206. data/spec/database/funky_sequences/funky_aa_sequences.fa.pin +0 -0
  207. data/spec/database/funky_sequences/funky_aa_sequences.fa.pog +0 -0
  208. data/spec/database/funky_sequences/funky_aa_sequences.fa.psd +0 -6
  209. data/spec/database/funky_sequences/funky_aa_sequences.fa.psi +0 -0
  210. data/spec/database/funky_sequences/funky_aa_sequences.fa.psq +0 -0
  211. data/spec/database/funky_sequences/funky_na_sequences.fa +0 -2
  212. data/spec/database/funky_sequences/funky_na_sequences.fa.nhr +0 -0
  213. data/spec/database/funky_sequences/funky_na_sequences.fa.nin +0 -0
  214. data/spec/database/funky_sequences/funky_na_sequences.fa.nog +0 -0
  215. data/spec/database/funky_sequences/funky_na_sequences.fa.nsd +0 -2
  216. data/spec/database/funky_sequences/funky_na_sequences.fa.nsi +0 -0
  217. data/spec/database/funky_sequences/funky_na_sequences.fa.nsq +0 -0
  218. data/spec/database/ox_parse_error/query.fa +0 -1
  219. data/spec/database/ox_parse_error/rand1.fa +0 -2
  220. data/spec/database/ox_parse_error/rand1.fa.nhd +0 -1
  221. data/spec/database/ox_parse_error/rand1.fa.nhi +0 -0
  222. data/spec/database/ox_parse_error/rand1.fa.nhr +0 -0
  223. data/spec/database/ox_parse_error/rand1.fa.nin +0 -0
  224. data/spec/database/ox_parse_error/rand1.fa.nog +0 -0
  225. data/spec/database/ox_parse_error/rand1.fa.nsd +0 -2
  226. data/spec/database/ox_parse_error/rand1.fa.nsi +0 -0
  227. data/spec/database/ox_parse_error/rand1.fa.nsq +0 -0
  228. data/spec/database/ox_parse_error/rand2.fa +0 -2
  229. data/spec/database/ox_parse_error/rand2.fa.nhd +0 -1
  230. data/spec/database/ox_parse_error/rand2.fa.nhi +0 -0
  231. data/spec/database/ox_parse_error/rand2.fa.nhr +0 -0
  232. data/spec/database/ox_parse_error/rand2.fa.nin +0 -0
  233. data/spec/database/ox_parse_error/rand2.fa.nog +0 -0
  234. data/spec/database/ox_parse_error/rand2.fa.nsd +0 -2
  235. data/spec/database/ox_parse_error/rand2.fa.nsi +0 -0
  236. data/spec/database/ox_parse_error/rand2.fa.nsq +0 -0
  237. data/spec/database/ox_parse_error_unique_ids/query.fa +0 -1
  238. data/spec/database/ox_parse_error_unique_ids/rand1.fa +0 -2
  239. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhd +0 -1
  240. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhi +0 -0
  241. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nhr +0 -0
  242. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nin +0 -0
  243. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nog +0 -0
  244. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsd +0 -2
  245. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsi +0 -0
  246. data/spec/database/ox_parse_error_unique_ids/rand1.fa.nsq +0 -0
  247. data/spec/database/ox_parse_error_unique_ids/rand2.fa +0 -2
  248. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhd +0 -1
  249. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhi +0 -0
  250. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nhr +0 -0
  251. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nin +0 -0
  252. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nog +0 -0
  253. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsd +0 -2
  254. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsi +0 -0
  255. data/spec/database/ox_parse_error_unique_ids/rand2.fa.nsq +0 -0
  256. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa +0 -6
  257. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhd +0 -1
  258. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhi +0 -0
  259. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nhr +0 -0
  260. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nin +0 -0
  261. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nog +0 -0
  262. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsd +0 -2
  263. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsi +0 -0
  264. data/spec/database/pipe_in_seqid/pipe_in_seqid.fa.nsq +0 -0
  265. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhd +0 -8
  266. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhi +0 -0
  267. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nhr +0 -0
  268. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nin +0 -0
  269. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nog +0 -0
  270. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsd +0 -16
  271. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsi +0 -0
  272. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta.nsq +0 -0
  273. data/spec/database/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.txt +0 -8
  274. data/spec/database/sample/links.rb +0 -23
  275. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta +0 -6449
  276. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phd +0 -1189
  277. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phi +0 -0
  278. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
  279. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
  280. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog +0 -0
  281. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd +0 -2378
  282. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi +0 -0
  283. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
  284. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phd +0 -9140
  285. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phi +0 -0
  286. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.phr +0 -0
  287. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pin +0 -0
  288. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.pog +0 -0
  289. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psd +0 -18280
  290. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psi +0 -0
  291. data/spec/database/sample/proteins/uniprot/2018-04-Swiss-Prot_insecta.fasta.psq +0 -0
  292. data/spec/database/sample/proteins/uniprot/URL +0 -1
  293. data/spec/database/sample/si_uniprot_idmap.yml +0 -14180
  294. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta +0 -5486
  295. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhd +0 -473
  296. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhi +0 -0
  297. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
  298. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
  299. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog +0 -0
  300. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd +0 -946
  301. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi +0 -0
  302. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
  303. data/spec/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa +0 -148303
  304. data/spec/database/without_parse_seqids/without_parse_seqids.fa +0 -10
  305. data/spec/database/without_parse_seqids/without_parse_seqids.fa.phr +0 -0
  306. data/spec/database/without_parse_seqids/without_parse_seqids.fa.pin +0 -0
  307. data/spec/database/without_parse_seqids/without_parse_seqids.fa.psq +0 -0
  308. data/spec/database_spec.rb +0 -127
  309. data/spec/doctor_spec.disabled.rb +0 -107
  310. data/spec/dotdir/blast_2.2.30/blastn/BLASTN_XML_2.2.30.xml +0 -1201
  311. data/spec/dotdir/blast_2.2.30/blastn/job.yaml +0 -8
  312. data/spec/dotdir/blast_2.2.30/blastn_nohits/BLASTN_NO_HITS_XML_2.2.30.xml +0 -866
  313. data/spec/dotdir/blast_2.2.30/blastn_nohits/job.yaml +0 -8
  314. data/spec/dotdir/blast_2.2.30/blastp/BLASTP_XML_2.2.30.xml +0 -1181
  315. data/spec/dotdir/blast_2.2.30/blastp/job.yaml +0 -8
  316. data/spec/dotdir/blast_2.2.30/blastx/BLASTX_XML_2.2.30.xml +0 -1181
  317. data/spec/dotdir/blast_2.2.30/blastx/job.yaml +0 -8
  318. data/spec/dotdir/blast_2.2.30/tblastn/TBLASTN_XML_2.2.30.xml +0 -1181
  319. data/spec/dotdir/blast_2.2.30/tblastn/job.yaml +0 -8
  320. data/spec/dotdir/blast_2.2.30/tblastx/TBLASTX_XML_2.2.30.xml +0 -8857
  321. data/spec/dotdir/blast_2.2.30/tblastx/job.yaml +0 -8
  322. data/spec/dotdir/blast_2.2.31/blastn/BLASTN_XML_2.2.31.xml +0 -1201
  323. data/spec/dotdir/blast_2.2.31/blastn/job.yaml +0 -8
  324. data/spec/dotdir/blast_2.2.31/blastn_nohits/BLASTN_NO_HITS_XML_2.2.31.xml +0 -866
  325. data/spec/dotdir/blast_2.2.31/blastn_nohits/job.yaml +0 -8
  326. data/spec/dotdir/blast_2.2.31/blastp/BLASTP_XML_2.2.31.xml +0 -1181
  327. data/spec/dotdir/blast_2.2.31/blastp/job.yaml +0 -8
  328. data/spec/dotdir/blast_2.2.31/blastx/BLASTX_XML_2.2.31.xml +0 -1181
  329. data/spec/dotdir/blast_2.2.31/blastx/job.yaml +0 -8
  330. data/spec/dotdir/blast_2.2.31/tblastn/TBLASTN_XML_2.2.31.xml +0 -1181
  331. data/spec/dotdir/blast_2.2.31/tblastn/job.yaml +0 -8
  332. data/spec/dotdir/blast_2.2.31/tblastx/TBLASTX_XML_2.2.31.xml +0 -8857
  333. data/spec/dotdir/blast_2.2.31/tblastx/job.yaml +0 -8
  334. data/spec/dotdir/blast_2.3.0/blastn/BLASTN_XML_2.3.0.xml +0 -1201
  335. data/spec/dotdir/blast_2.3.0/blastn/job.yaml +0 -8
  336. data/spec/dotdir/blast_2.3.0/blastn_nohits/BLASTN_NO_HITS_XML_2.3.0.xml +0 -866
  337. data/spec/dotdir/blast_2.3.0/blastn_nohits/job.yaml +0 -8
  338. data/spec/dotdir/blast_2.3.0/blastp/BLASTP_XML_2.3.0.xml +0 -1181
  339. data/spec/dotdir/blast_2.3.0/blastp/job.yaml +0 -8
  340. data/spec/dotdir/blast_2.3.0/blastx/BLASTX_XML_2.3.0.xml +0 -1181
  341. data/spec/dotdir/blast_2.3.0/blastx/job.yaml +0 -8
  342. data/spec/dotdir/blast_2.3.0/tblastn/TBLASTN_XML_2.3.0.xml +0 -1181
  343. data/spec/dotdir/blast_2.3.0/tblastn/job.yaml +0 -8
  344. data/spec/dotdir/blast_2.3.0/tblastx/TBLASTX_XML_2.3.0.xml +0 -8857
  345. data/spec/dotdir/blast_2.3.0/tblastx/job.yaml +0 -8
  346. data/spec/dotdir/blast_2.4.0/blastn/BLASTN_XML_2.4.0.xml +0 -1201
  347. data/spec/dotdir/blast_2.4.0/blastn/job.yaml +0 -8
  348. data/spec/dotdir/blast_2.4.0/blastn_nohits/BLASTN_NO_HITS_XML_2.4.0.xml +0 -866
  349. data/spec/dotdir/blast_2.4.0/blastn_nohits/job.yaml +0 -8
  350. data/spec/dotdir/blast_2.4.0/blastp/BLASTP_XML_2.4.0.xml +0 -1181
  351. data/spec/dotdir/blast_2.4.0/blastp/job.yaml +0 -8
  352. data/spec/dotdir/blast_2.4.0/blastx/BLASTX_XML_2.4.0.xml +0 -1181
  353. data/spec/dotdir/blast_2.4.0/blastx/job.yaml +0 -8
  354. data/spec/dotdir/blast_2.4.0/tblastn/TBLASTN_XML_2.4.0.xml +0 -1181
  355. data/spec/dotdir/blast_2.4.0/tblastn/job.yaml +0 -8
  356. data/spec/dotdir/blast_2.4.0/tblastx/TBLASTX_XML_2.4.0.xml +0 -8857
  357. data/spec/dotdir/blast_2.4.0/tblastx/job.yaml +0 -8
  358. data/spec/dotdir/blast_2.5.0/blastn/BLASTN_XML_2.5.0.xml +0 -1201
  359. data/spec/dotdir/blast_2.5.0/blastn/job.yaml +0 -8
  360. data/spec/dotdir/blast_2.5.0/blastn_nohits/BLASTN_NO_HITS_XML_2.5.0.xml +0 -866
  361. data/spec/dotdir/blast_2.5.0/blastn_nohits/job.yaml +0 -8
  362. data/spec/dotdir/blast_2.5.0/blastp/BLASTP +0 -2161
  363. data/spec/dotdir/blast_2.5.0/blastp/BLASTP_XML_2.5.0.xml +0 -1181
  364. data/spec/dotdir/blast_2.5.0/blastp/job.yaml +0 -8
  365. data/spec/dotdir/blast_2.5.0/blastx/BLASTX +0 -28080
  366. data/spec/dotdir/blast_2.5.0/blastx/BLASTX_XML_2.5.0.xml +0 -1181
  367. data/spec/dotdir/blast_2.5.0/blastx/job.yaml +0 -8
  368. data/spec/dotdir/blast_2.5.0/tblastn/TBLASTN +0 -29486
  369. data/spec/dotdir/blast_2.5.0/tblastn/TBLASTN_XML_2.5.0.xml +0 -1181
  370. data/spec/dotdir/blast_2.5.0/tblastn/job.yaml +0 -8
  371. data/spec/dotdir/blast_2.5.0/tblastx/TBLASTX +0 -180859
  372. data/spec/dotdir/blast_2.5.0/tblastx/TBLASTX_XML_2.5.0.xml +0 -8857
  373. data/spec/dotdir/blast_2.5.0/tblastx/job.yaml +0 -8
  374. data/spec/dotdir/blast_2.6.0/blastn/BLASTN_XML_2.6.0.xml +0 -1201
  375. data/spec/dotdir/blast_2.6.0/blastn/job.yaml +0 -8
  376. data/spec/dotdir/blast_2.6.0/blastn_nohits/BLASTN_NO_HITS_XML_2.6.0.xml +0 -866
  377. data/spec/dotdir/blast_2.6.0/blastn_nohits/job.yaml +0 -8
  378. data/spec/dotdir/blast_2.6.0/blastp/BLASTP_XML_2.6.0.xml +0 -1181
  379. data/spec/dotdir/blast_2.6.0/blastp/job.yaml +0 -8
  380. data/spec/dotdir/blast_2.6.0/blastx/BLASTX_XML_2.6.0.xml +0 -1181
  381. data/spec/dotdir/blast_2.6.0/blastx/job.yaml +0 -8
  382. data/spec/dotdir/blast_2.6.0/tblastn/TBLASTN_XML_2.6.0.xml +0 -1181
  383. data/spec/dotdir/blast_2.6.0/tblastn/job.yaml +0 -8
  384. data/spec/dotdir/blast_2.6.0/tblastx/TBLASTX_XML_2.6.0.xml +0 -8857
  385. data/spec/dotdir/blast_2.6.0/tblastx/job.yaml +0 -8
  386. data/spec/dotdir/blast_2.7.1/blastn/BLASTN_XML_2.7.1.xml +0 -1201
  387. data/spec/dotdir/blast_2.7.1/blastn/job.yaml +0 -8
  388. data/spec/dotdir/blast_2.7.1/blastn_nohits/BLASTN_NO_HITS_XML_2.7.1.xml +0 -866
  389. data/spec/dotdir/blast_2.7.1/blastn_nohits/job.yaml +0 -8
  390. data/spec/dotdir/blast_2.7.1/blastp/BLASTP_XML_2.7.1.xml +0 -1181
  391. data/spec/dotdir/blast_2.7.1/blastp/job.yaml +0 -8
  392. data/spec/dotdir/blast_2.7.1/blastx/BLASTX_XML_2.7.1.xml +0 -1181
  393. data/spec/dotdir/blast_2.7.1/blastx/job.yaml +0 -8
  394. data/spec/dotdir/blast_2.7.1/tblastn/TBLASTN_XML_2.7.1.xml +0 -1181
  395. data/spec/dotdir/blast_2.7.1/tblastn/job.yaml +0 -8
  396. data/spec/dotdir/blast_2.7.1/tblastx/TBLASTX_XML_2.7.1.xml +0 -8857
  397. data/spec/dotdir/blast_2.7.1/tblastx/job.yaml +0 -8
  398. data/spec/dotdir/blast_2.8.1/blastn/BLASTN_XML_2.8.1.xml +0 -1201
  399. data/spec/dotdir/blast_2.8.1/blastn/job.yaml +0 -8
  400. data/spec/dotdir/blast_2.8.1/blastn_nohits/BLASTN_NO_HITS_XML_2.8.1.xml +0 -866
  401. data/spec/dotdir/blast_2.8.1/blastn_nohits/job.yaml +0 -8
  402. data/spec/dotdir/blast_2.8.1/blastp/BLASTP_XML_2.8.1.xml +0 -1181
  403. data/spec/dotdir/blast_2.8.1/blastp/job.yaml +0 -8
  404. data/spec/dotdir/blast_2.8.1/blastx/BLASTX_XML_2.8.1.xml +0 -1181
  405. data/spec/dotdir/blast_2.8.1/blastx/job.yaml +0 -8
  406. data/spec/dotdir/blast_2.8.1/tblastn/TBLASTN_XML_2.8.1.xml +0 -1181
  407. data/spec/dotdir/blast_2.8.1/tblastn/job.yaml +0 -8
  408. data/spec/dotdir/blast_2.8.1/tblastx/TBLASTX_XML_2.8.1.xml +0 -8857
  409. data/spec/dotdir/blast_2.8.1/tblastx/job.yaml +0 -8
  410. data/spec/dotdir/blast_2.9.0/blastn/BLASTN_XML_2.9.0.xml +0 -1201
  411. data/spec/dotdir/blast_2.9.0/blastn/job.yaml +0 -8
  412. data/spec/dotdir/blast_2.9.0/blastn_nohits/BLASTN_NO_HITS_XML_2.9.0.xml +0 -866
  413. data/spec/dotdir/blast_2.9.0/blastn_nohits/job.yaml +0 -8
  414. data/spec/dotdir/blast_2.9.0/blastp/BLASTP_XML_2.9.0.xml +0 -1181
  415. data/spec/dotdir/blast_2.9.0/blastp/job.yaml +0 -8
  416. data/spec/dotdir/blast_2.9.0/blastx/BLASTX_XML_2.9.0.xml +0 -1181
  417. data/spec/dotdir/blast_2.9.0/blastx/job.yaml +0 -8
  418. data/spec/dotdir/blast_2.9.0/tblastn/TBLASTN_XML_2.9.0.xml +0 -1181
  419. data/spec/dotdir/blast_2.9.0/tblastn/job.yaml +0 -8
  420. data/spec/dotdir/blast_2.9.0/tblastx/TBLASTX_XML_2.9.0.xml +0 -8857
  421. data/spec/dotdir/blast_2.9.0/tblastx/job.yaml +0 -8
  422. data/spec/dotdir/diamond_0.9.24/blastp/DIAMOND_BLASTP_0.9.24.xml +0 -1040
  423. data/spec/dotdir/diamond_0.9.24/blastp/job.yaml +0 -8
  424. data/spec/dotdir/diamond_0.9.24/blastx/DIAMOND_BLASTX_0.9.24.xml +0 -1040
  425. data/spec/dotdir/diamond_0.9.24/blastx/job.yaml +0 -8
  426. data/spec/dotdir/diamond_0.9.24/blastx_nohits/DIAMOND_BLASTX_NOHITS_0.9.24.xml +0 -41
  427. data/spec/dotdir/diamond_0.9.24/blastx_nohits/job.yaml +0 -8
  428. data/spec/download_helper.rb +0 -35
  429. data/spec/empty_config.yml +0 -0
  430. data/spec/routes_spec.rb +0 -93
  431. data/spec/sample.conf +0 -2
  432. data/spec/sequence_spec.rb +0 -100
  433. data/spec/sequences/MH011443_1_gi_1486783306_gb_MH011443_1.txt +0 -6
  434. data/spec/sequences/MH011443_1_gi_1486783307_gb_AYF55702_1.txt +0 -6
  435. data/spec/sequences/MH011443_1_gi_1528997474_gb_MH447967_1.txt +0 -30
  436. data/spec/sequences/MH011443_1_sp_P04637_P53_HUMAN.txt +0 -6
  437. data/spec/sequences/Nucleotide_TP53_COX41.fasta +0 -15
  438. data/spec/sequences/Protein_TP53_COX41.fasta +0 -12
  439. data/spec/sequences/Query_1_SI2_2_0_06267.txt +0 -6
  440. data/spec/sequences/alignment-2_hits.txt +0 -12
  441. data/spec/sequences/alignment-35_hits_diamond_blastp.txt +0 -210
  442. data/spec/sequences/alignment-35_hits_diamond_blastx.txt +0 -210
  443. data/spec/sequences/alignment-3_hits.txt +0 -18
  444. data/spec/sequences/alignment-40_hits_blastn.txt +0 -246
  445. data/spec/sequences/alignment-40_hits_blastp.txt +0 -240
  446. data/spec/sequences/alignment-40_hits_blastp_2.2.30.txt +0 -240
  447. data/spec/sequences/alignment-40_hits_blastx.txt +0 -240
  448. data/spec/sequences/alignment-40_hits_tblastn.txt +0 -240
  449. data/spec/sequences/alignment-40_hits_tblastn_2.2.30.txt +0 -240
  450. data/spec/sequences/alignment-40_hits_tblastx.txt +0 -2664
  451. data/spec/sequences/alignment-4_hits.txt +0 -24
  452. data/spec/sequences/alignment-4_hits_blastn.txt +0 -24
  453. data/spec/sequences/alignment-4_hits_blastp.txt +0 -24
  454. data/spec/sequences/alignment-4_hits_blastp_2.2.30.txt +0 -24
  455. data/spec/sequences/alignment-4_hits_blastx.txt +0 -24
  456. data/spec/sequences/alignment-4_hits_diamond_blastp.txt +0 -24
  457. data/spec/sequences/alignment-4_hits_diamond_blastx.txt +0 -24
  458. data/spec/sequences/alignment-4_hits_tblastn.txt +0 -24
  459. data/spec/sequences/alignment-4_hits_tblastn_2.2.30.txt +0 -24
  460. data/spec/sequences/alignment-4_hits_tblastx.txt +0 -318
  461. data/spec/sequences/nucleotide_query.fa +0 -21
  462. data/spec/sequences/problematic_query.fa +0 -5
  463. data/spec/sequences/protein_query.fa +0 -9
  464. data/spec/sequences/sample_query_fire_ant_obps.fa +0 -44
  465. data/spec/sequences/sequenceserver-2_hits.fa +0 -10
  466. data/spec/sequences/sequenceserver-SI2.2.0_06267.fa +0 -5
  467. data/spec/sequences/sp_P04637_P53_HUMAN_gi_1099170394_ref_XP_018868681_1.txt +0 -6
  468. data/spec/sequences/sp_P04637_P53_HUMAN_gi_120407068_ref_NP_000537_3.txt +0 -6
  469. data/spec/sequences/sp_P04637_P53_HUMAN_gi_1484127324_gb_MG595988_1.txt +0 -6
  470. data/spec/sequences/sp_P04637_P53_HUMAN_gi_395440626_gb_JQ694049_1.txt +0 -6
  471. data/spec/sequences/sp_P04637_P53_HUMAN_sp_P04637_P53_HUMAN.txt +0 -6
  472. data/spec/sequenceserver_spec.rb +0 -90
  473. data/spec/spec_helper.rb +0 -63
@@ -1,228 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # Test BLAST module.
4
- module SequenceServer
5
- with_hits = Job.fetch('blast_2.2.31/blastn')
6
- no_hits = Job.fetch('blast_2.2.31/blastn_nohits')
7
-
8
- init
9
-
10
- describe 'Report' do
11
- hits_report = BLAST::Report.new(with_hits)
12
- no_hits_report = BLAST::Report.new(no_hits)
13
-
14
- it 'will return an Array of queries' do
15
- hits_report.queries.should be_a Array
16
- no_hits_report.queries.should be_a Array
17
- end
18
-
19
- it 'will return a Hash of stats' do
20
- hits_report.stats.should be_a Hash
21
- no_hits_report.stats.should be_a Hash
22
- end
23
-
24
- it 'contains all the necessary stats' do
25
- hits_report.stats.length.should eql(7)
26
- no_hits_report.stats.length.should eql(7)
27
- end
28
- end
29
-
30
- describe 'Query' do
31
- hits_report = BLAST::Report.new(with_hits)
32
- no_hits_report = BLAST::Report.new(no_hits)
33
-
34
- it 'will return queries with valid length' do
35
- hits_report.queries.first.length.should be_a Integer
36
- hits_report.queries.first.length.should satisfy { |n| n > 0 }
37
- no_hits_report.queries.first.length.should be_a Integer
38
- no_hits_report.queries.first.length.should satisfy { |n| n > 0 }
39
- end
40
-
41
- it 'will return an Array of hits' do
42
- hits_report.queries.first.hits.should be_a Array
43
- no_hits_report.queries.first.hits.should be_a Array
44
- end
45
- end
46
-
47
- describe 'Hits' do
48
- hits_report = BLAST::Report.new(with_hits)
49
- no_hits_report = BLAST::Report.new(no_hits)
50
-
51
- it 'will have non zero length' do
52
- hits_report.queries.last.hits.first.length.should satisfy { |n| n > 0 }
53
- end
54
-
55
- it 'will return an Array of HSPs' do
56
- hits_report.queries.first.hits.first.hsps.should be_a Array
57
- end
58
-
59
- it 'will return an Array with atleast one HSP' do
60
- hits_report.queries.first.hits.first.hsps.length.should be >= 1
61
- end
62
-
63
- it 'will contain no element if no hits were obtained' do
64
- no_hits_report.queries.first.hits.length.should eql(0)
65
- end
66
- end
67
-
68
- # Test general features of HSPs. Algorithm specific customizations are
69
- # tested separetly.
70
- describe 'HSPs' do
71
- hits_report = BLAST::Report.new(with_hits)
72
-
73
- # Currently using all 17 HSP parameters in BLAST Report + 1 to refer to the
74
- # hit object it belongs to.
75
- it 'have all the necessary values' do
76
- hits_report.queries.last.hits.first.hsps.last.count.should eql(19)
77
- end
78
-
79
- # Test Random HSPs to ensure that all the values from HSP struct are valid.
80
- it 'have correct alignment values' do
81
- hits_report.queries.last.hits.first.hsps.last.bit_score.should be_a Float
82
- hits_report.queries.last.hits.first.hsps.last.score.should be_a Integer
83
-
84
- hits_report.queries.first.hits.first.hsps.first.evalue.should be_a Float
85
- hits_report.queries.first.hits.first.hsps.first.evalue
86
- .should_not satisfy { |n| n < 0 }
87
-
88
- hits_report.queries.first.hits.last.hsps.first.qstart.should be_a Integer
89
- hits_report.queries.first.hits.last.hsps.first.qstart
90
- .should_not satisfy { |n| n < 0 }
91
-
92
- hits_report.queries.first.hits.last.hsps.first.qend.should be_a Integer
93
- hits_report.queries.first.hits.last.hsps.first.qend
94
- .should_not satisfy { |n| n < 0 }
95
-
96
- hits_report.queries.last.hits.last.hsps.last.sstart.should be_a Integer
97
- hits_report.queries.last.hits.last.hsps.last.sstart
98
- .should_not satisfy { |n| n < 0 }
99
-
100
- hits_report.queries.first.hits.first.hsps.last.send.should be_a Integer
101
- hits_report.queries.first.hits.first.hsps.last.send
102
- .should_not satisfy { |n| n < 0 }
103
-
104
- hits_report.queries.first.hits.first.hsps.last.qframe.should be_a Integer
105
- hits_report.queries.first.hits.first.hsps.last.sframe.should be_a Integer
106
-
107
- hits_report.queries.first.hits.first.hsps.last.identity.should be_a Integer
108
- hits_report.queries.first.hits.first.hsps.last.identity
109
- .should_not satisfy { |n| n < 0 }
110
-
111
- hits_report.queries.first.hits.first.hsps.last.gaps.should be_a Integer
112
- hits_report.queries.first.hits.first.hsps.last.gaps
113
- .should_not satisfy { |n| n < 0 }
114
-
115
- hits_report.queries.first.hits.first.hsps.last.positives
116
- .should be_a Integer
117
- hits_report.queries.first.hits.first.hsps.last.positives
118
- .should_not satisfy { |n| n < 0 }
119
-
120
- hits_report.queries.first.hits.first.hsps.last.length.should be_a Integer
121
- hits_report.queries.first.hits.first.hsps.last.length
122
- .should satisfy { |n| n > 0 }
123
-
124
- hits_report.queries.last.hits.last.hsps.first.qseq.should be_a String
125
- hits_report.queries.last.hits.last.hsps.first.sseq.should be_a String
126
- hits_report.queries.last.hits.last.hsps.first.midline.should be_a String
127
- end
128
-
129
- it 'have correctly matched query, hit and midline alignments' do
130
- hsp = hits_report.queries.last.hits.last.hsps.first
131
- hsp.qseq.length.should eql(hsp.sseq.length)
132
- hsp.sseq.length.should eql(hsp.midline.length)
133
- hsp.midline.length.should eql(hsp.qseq.length)
134
- end
135
- end
136
-
137
- # Individually test different BLAST+ algorithms
138
- #
139
- describe 'BLASTN' do
140
- let 'hsp' do
141
- report = BLAST::Report.new(Job.fetch('blast_2.2.31/blastn'))
142
- report.queries.first.hits.last.hsps.first
143
- end
144
-
145
- it 'have correct query and subject frame' do
146
- [1, -1].should include(hsp.qframe)
147
- [1, -1].should include(hsp.sframe)
148
- end
149
-
150
- it 'have correct qstart, qend, sstart, send' do
151
- if hsp.sframe > 0
152
- hsp.sstart.should be <= hsp.send
153
- else
154
- hsp.sstart.should be >= hsp.send
155
- end
156
- end
157
- end
158
-
159
- describe 'BLASTP' do
160
- let 'hsp' do
161
- report = BLAST::Report.new(Job.fetch('blast_2.2.31/blastp'))
162
- report.queries.first.hits.last.hsps.first
163
- end
164
-
165
- it 'have correct query and subject frame' do
166
- hsp.qframe.should eql(0)
167
- hsp.sframe.should eql(0)
168
- end
169
-
170
- it 'have correct qstart, qend, sstart, send values' do
171
- hsp.qstart.should be <= hsp.qend
172
- hsp.sstart.should be <= hsp.send
173
- end
174
-
175
- end
176
-
177
- describe 'BLASTX' do
178
- let 'hsp' do
179
- report = BLAST::Report.new(Job.fetch('blast_2.2.31/blastx'))
180
-
181
- report.queries.first.hits.last.hsps.first
182
- end
183
-
184
- it 'have correct query and subject frame' do
185
- hsp.qframe.should_not eql(0)
186
- hsp.sframe.should eql(0)
187
- end
188
-
189
- it 'have correct qstart, qend, sstart, send' do
190
- hsp.qstart.should be <= hsp.qend
191
- hsp.sstart.should be <= hsp.send
192
- end
193
- end
194
-
195
- describe 'TBLASTX' do
196
- let 'hsp' do
197
- report = BLAST::Report.new(Job.fetch('blast_2.2.31/tblastx'))
198
- report.queries.first.hits.last.hsps.first
199
- end
200
-
201
- it 'have correct query and subject frame' do
202
- hsp.qframe.should_not eql(0)
203
- hsp.sframe.should_not eql(0)
204
- end
205
-
206
- it 'have correct qstart, qend, sstart, send' do
207
- hsp.qstart.should be <= hsp.qend
208
- hsp.sstart.should be <= hsp.send
209
- end
210
- end
211
-
212
- describe 'TBLASTN' do
213
- let 'hsp' do
214
- report = BLAST::Report.new(Job.fetch('blast_2.2.31/tblastn'))
215
- report.queries.first.hits.last.hsps.first
216
- end
217
-
218
- it 'have correct query and subject frame' do
219
- hsp.qframe.should eql(0)
220
- hsp.sframe.should_not eql(0)
221
- end
222
-
223
- it 'have correct qstart, qend, sstart, send' do
224
- hsp.qstart.should be <= hsp.qend
225
- hsp.sstart.should be <= hsp.send
226
- end
227
- end
228
- end
@@ -1,587 +0,0 @@
1
- describe 'report generated from imported XML', type: :feature, js: true do
2
- # Test suite to test features of imported XML report. Fasta files used for
3
- # testing consist of TP53 and COX41 protein/nucleotide sequences for
4
- # reproducibility. Each query was limited to 20 hits to not to overload the
5
- # test suite.
6
-
7
- # BLASTP test scenarios
8
- it 'loads BLASTP XML and tests hit alignment and sidebar Alignment download' do
9
- access_by_uuid('blast_2.2.31/blastp')
10
-
11
- # Click on the first hit Alignment download button on the page and wait for
12
- # the download to finish.
13
-
14
- page.execute_script("$('.download-aln:eq(0)').click()")
15
- wait_for_download
16
-
17
- expect(File.basename(downloaded_file)).to eq('sp_P04637_P53_HUMAN_gi_1099170394_ref_XP_018868681_1.txt')
18
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/sp_P04637_P53_HUMAN_gi_1099170394_ref_XP_018868681_1.txt'))
19
-
20
- clear_downloads
21
-
22
- # Click on the Alignment of all hits download and compare the downloaded
23
- # content
24
-
25
- page.click_link('Alignment of all hits')
26
- wait_for_download
27
-
28
- expect(File.basename(downloaded_file)).to eq('alignment-40_hits.txt')
29
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-40_hits_blastp.txt'))
30
-
31
- clear_downloads
32
-
33
- # Check the cheboxes of indicted hits and click on the download of Alignment
34
- # of selected hits and compare the downloaded content
35
-
36
- page.check('Query_1_hit_1_checkbox')
37
- page.check('Query_1_hit_2_checkbox')
38
- page.check('Query_2_hit_1_checkbox')
39
- page.check('Query_2_hit_2_checkbox')
40
- page.click_link('Alignment of 4 selected hit(s)')
41
- wait_for_download
42
-
43
- expect(File.basename(downloaded_file)).to eq('alignment-4_hits.txt')
44
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-4_hits_blastp.txt'))
45
- end
46
-
47
- it 'loads BLASTP XML and tests alignment overview and hit PNG/SVG download' do
48
- access_by_uuid('blast_2.2.31/blastp')
49
-
50
- # Click on the PNG/SVG download button of the alignment overview and compare
51
- # the downloaded content.
52
-
53
- page.execute_script("$('.export-to-png:eq(0)').click()")
54
- wait_for_download
55
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-sp_P04637_P53_HUMAN.png')
56
-
57
- clear_downloads
58
-
59
- page.execute_script("$('.export-to-svg:eq(0)').click()")
60
- wait_for_download
61
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-sp_P04637_P53_HUMAN.svg')
62
-
63
- clear_downloads
64
-
65
- # Click on the PNG/SVG download button of the first hit available and
66
- # compare the downloaded content.
67
-
68
- page.execute_script("$('.export-to-png:eq(1)').click()")
69
- wait_for_download
70
- expect(File.basename(downloaded_file)).to eq('Kablammo-sp_P04637_P53_HUMAN-gi_1099170394_ref_XP_018868681_1.png')
71
-
72
- clear_downloads
73
-
74
- page.execute_script("$('.export-to-svg:eq(1)').click()")
75
- wait_for_download
76
- expect(File.basename(downloaded_file)).to eq('Kablammo-sp_P04637_P53_HUMAN-gi_1099170394_ref_XP_018868681_1.svg')
77
- page.should have_content('BLASTP')
78
- end
79
-
80
- it 'loads BLASTP XML and tests Circos download' do
81
- access_by_uuid('blast_2.2.31/blastp')
82
-
83
- # Click on the Circos expanding button, wait for animation, click on the
84
- # download of PNG/SVG file and test that it initiated a file download in a
85
- # right format.
86
-
87
- page.should have_content('Queries and their top hits: chord diagram')
88
- page.execute_script("$('.circos > .grapher-header > h5').click()")
89
- sleep 1
90
-
91
- page.execute_script("$('.export-to-png:eq(0)').click()")
92
- wait_for_download
93
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.png')
94
-
95
- clear_downloads
96
-
97
- page.execute_script("$('.export-to-svg:eq(0)').click()")
98
- wait_for_download
99
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.svg')
100
- end
101
-
102
- it 'loads BLASTP XML and tests Length distribution download' do
103
- access_by_uuid('blast_2.2.31/blastp')
104
-
105
- # Click on the Length distribution expanding button, wait for animation,
106
- # click on the download of PNG/SVG file and test that it initiated a file
107
- # download in a right format.
108
-
109
- page.should have_content('Length distribution of hits')
110
- page.execute_script("$('.length-distribution > .grapher-header > h5').click()")
111
- sleep 1
112
-
113
- page.execute_script("$('.export-to-png:eq(1)').click()")
114
- wait_for_download
115
- expect(File.basename(downloaded_file)).to eq('length-distribution-sp_P04637_P53_HUMAN.png')
116
-
117
- clear_downloads
118
-
119
- page.execute_script("$('.export-to-svg:eq(1)').click()")
120
- wait_for_download
121
- expect(File.basename(downloaded_file)).to eq('length-distribution-sp_P04637_P53_HUMAN.svg')
122
- end
123
-
124
- # BLASTX test scenarios
125
-
126
- it 'loads BLASTX XML and tests hit alignment and sidebar Alignment download' do
127
- access_by_uuid('blast_2.2.31/blastx')
128
-
129
- # Click on the first Alignment download button on the page and wait for the
130
- # download to finish.
131
-
132
- page.execute_script("$('.download-aln:eq(0)').click()")
133
- wait_for_download
134
-
135
- expect(File.basename(downloaded_file)).to eq('MH011443_1_gi_1486783307_gb_AYF55702_1.txt')
136
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/MH011443_1_gi_1486783307_gb_AYF55702_1.txt'))
137
-
138
- clear_downloads
139
-
140
- # Click on the Alignment of all hits download and compare the downloaded
141
- # content
142
-
143
- page.click_link('Alignment of all hits')
144
- wait_for_download
145
- expect(File.basename(downloaded_file)).to eq('alignment-40_hits.txt')
146
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-40_hits_blastx.txt'))
147
-
148
- clear_downloads
149
-
150
- # Select four hit checkboxes and click on the Alignment of selected hits.
151
- # Compare the downloaded content.
152
-
153
- page.check('Query_1_hit_3_checkbox')
154
- page.check('Query_1_hit_4_checkbox')
155
- page.check('Query_2_hit_3_checkbox')
156
- page.check('Query_2_hit_4_checkbox')
157
- page.click_link('Alignment of 4 selected hit(s)')
158
- wait_for_download
159
-
160
- expect(File.basename(downloaded_file)).to eq('alignment-4_hits.txt')
161
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-4_hits_blastx.txt'))
162
-
163
- page.should have_content('BLASTX')
164
- end
165
-
166
- it 'loads BLASTX XML and tests hit PNG/SVG download' do
167
- access_by_uuid('blast_2.2.31/blastx')
168
-
169
- # Click on the PNG/SVG download button of the alignment overview and compare
170
- # the downloaded content.
171
- page.execute_script("$('.export-to-png:eq(0)').click()")
172
- wait_for_download
173
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.png')
174
-
175
- clear_downloads
176
-
177
- page.execute_script("$('.export-to-svg:eq(0)').click()")
178
- wait_for_download
179
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.svg')
180
-
181
- clear_downloads
182
-
183
- # Click on the PNG/SVG download button of the first hit available and
184
- # compare the downloaded content.
185
- page.execute_script("$('.export-to-png:eq(1)').click()")
186
- wait_for_download
187
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1486783307_gb_AYF55702_1.png')
188
-
189
- clear_downloads
190
-
191
- page.execute_script("$('.export-to-svg:eq(1)').click()")
192
- wait_for_download
193
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1486783307_gb_AYF55702_1.svg')
194
- page.should have_content('BLASTX')
195
- end
196
-
197
- it 'loads BLASTX XML and tests Circos download' do
198
- access_by_uuid('blast_2.2.31/blastx')
199
- # Click on the Circos expanding button, wait for animation, click on the
200
- # download of PNG/SVG file and test that it initiated a file download in a
201
- # right format.
202
-
203
- page.should have_content('Queries and their top hits: chord diagram')
204
- page.execute_script("$('.circos > .grapher-header > h5').click()")
205
- sleep 1
206
-
207
- page.execute_script("$('.export-to-png:eq(0)').click()")
208
- wait_for_download
209
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.png')
210
- clear_downloads
211
-
212
- page.execute_script("$('.export-to-svg:eq(0)').click()")
213
- wait_for_download
214
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.svg')
215
- end
216
-
217
- it 'loads BLASTX XML and tests Length distribution download' do
218
- access_by_uuid('blast_2.2.31/blastx')
219
- # Click on the Length distribution expanding button, wait for animation,
220
- # click on the download of PNG/SVG file and test that it initiated a file
221
- # download in a right format.
222
-
223
- page.should have_content('Length distribution of hits')
224
- page.execute_script("$('.length-distribution > .grapher-header > h5').click()")
225
- sleep 1
226
-
227
- page.execute_script("$('.export-to-png:eq(1)').click()")
228
- wait_for_download
229
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.png')
230
-
231
- clear_downloads
232
-
233
- page.execute_script("$('.export-to-svg:eq(1)').click()")
234
- wait_for_download
235
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.svg')
236
- end
237
-
238
- # BLASTN Test scenarios
239
-
240
- it 'loads BLASTN XML and tests hit alignment and sidebar Alignment download' do
241
- access_by_uuid('blast_2.2.31/blastn')
242
- # Click on the first Alignment download button on the page and wait for the
243
- # download to finish.
244
-
245
- page.execute_script("$('.download-aln:eq(0)').click()")
246
- wait_for_download
247
- expect(File.basename(downloaded_file)).to eq('MH011443_1_gi_1486783306_gb_MH011443_1.txt')
248
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/MH011443_1_gi_1486783306_gb_MH011443_1.txt'))
249
-
250
- clear_downloads
251
-
252
- # Click on the Alignment of all hits download and compare the downloaded
253
- # content
254
-
255
- page.click_link('Alignment of all hits')
256
- wait_for_download
257
- expect(File.basename(downloaded_file)).to eq('alignment-40_hits.txt')
258
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-40_hits_blastn.txt'))
259
-
260
- clear_downloads
261
-
262
- # Select four hit checkboxes and click on the Alignment of selected hits.
263
- # Compare the downloaded content.
264
- page.check('Query_1_hit_5_checkbox')
265
- page.check('Query_1_hit_6_checkbox')
266
- page.check('Query_2_hit_5_checkbox')
267
- page.check('Query_2_hit_6_checkbox')
268
- page.click_link('Alignment of 4 selected hit(s)')
269
- wait_for_download
270
-
271
- expect(File.basename(downloaded_file)).to eq('alignment-4_hits.txt')
272
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-4_hits_blastn.txt'))
273
- page.should have_content('BLASTN')
274
- end
275
-
276
- it 'loads BLASTN XML and tests hit PNG/SVG download' do
277
- access_by_uuid('blast_2.2.31/blastn')
278
-
279
- # Click on the PNG/SVG download button of the alignment overview and compare
280
- # the downloaded content.
281
- page.execute_script("$('.export-to-png:eq(0)').click()")
282
- wait_for_download
283
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.png')
284
-
285
- clear_downloads
286
-
287
- page.execute_script("$('.export-to-svg:eq(0)').click()")
288
- wait_for_download
289
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.svg')
290
-
291
- clear_downloads
292
- # Click on the PNG download button of the first hit available and compare
293
- # the downloaded content.
294
-
295
- page.execute_script("$('.export-to-png:eq(2)').click()")
296
- wait_for_download
297
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1528997474_gb_MH447967_1.png')
298
-
299
- clear_downloads
300
-
301
- # Click on the SVG download button of the first hit available and compare
302
- # the downloaded content.
303
-
304
- page.execute_script("$('.export-to-svg:eq(2)').click()")
305
- wait_for_download
306
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1528997474_gb_MH447967_1.svg')
307
- page.should have_content('BLASTN')
308
- end
309
-
310
- it 'loads BLASTN XML and tests Circos download' do
311
- access_by_uuid('blast_2.2.31/blastn')
312
-
313
- # Click on the Circos expanding button, wait for animation, click on the
314
- # download of PNG/SVG file and test that it initiated a file download in a
315
- # right format.
316
-
317
- page.should have_content('Queries and their top hits: chord diagram')
318
- page.execute_script("$('.circos > .grapher-header > h5').click()")
319
- sleep 1
320
-
321
- page.execute_script("$('.export-to-png:eq(0)').click()")
322
- wait_for_download
323
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.png')
324
- clear_downloads
325
-
326
- page.execute_script("$('.export-to-svg:eq(0)').click()")
327
- wait_for_download
328
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.svg')
329
- end
330
-
331
- it 'loads BLASTN XML and tests Length distribution download' do
332
- access_by_uuid('blast_2.2.31/blastn')
333
- # Click on the Length distribution expanding button, wait for animation,
334
- # click on the download of PNG/SVG file and test that it initiated a file
335
- # download in a right format.
336
-
337
- page.should have_content('Length distribution of hits')
338
- page.execute_script("$('.length-distribution > .grapher-header > h5').click()")
339
- sleep 1
340
-
341
- page.execute_script("$('.export-to-png:eq(1)').click()")
342
- wait_for_download
343
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.png')
344
- clear_downloads
345
-
346
- page.execute_script("$('.export-to-svg:eq(1)').click()")
347
- wait_for_download
348
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.svg')
349
- end
350
-
351
- # TBLASTN Test scenarios
352
-
353
- it 'loads TBLASTN XML and tests hit alignment and sidebar Alignment download' do
354
- access_by_uuid('blast_2.2.31/tblastn')
355
- # Click on the first Alignment download button on the page and wait for the
356
- # download to finish.
357
-
358
- page.execute_script("$('.download-aln:eq(0)').click()")
359
- wait_for_download
360
- expect(File.basename(downloaded_file)).to eq('sp_P04637_P53_HUMAN_gi_395440626_gb_JQ694049_1.txt')
361
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/sp_P04637_P53_HUMAN_gi_395440626_gb_JQ694049_1.txt'))
362
-
363
- clear_downloads
364
-
365
- # Click on the Alignment of all hits download and compare the downloaded
366
- # content
367
-
368
- page.click_link('Alignment of all hits')
369
- wait_for_download
370
- expect(File.basename(downloaded_file)).to eq('alignment-40_hits.txt')
371
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-40_hits_tblastn.txt'))
372
-
373
- clear_downloads
374
-
375
- # Select four hit checkboxes and click on the Alignment of selected hits.
376
- # Compare the downloaded content.
377
- page.check('Query_1_hit_7_checkbox')
378
- page.check('Query_1_hit_8_checkbox')
379
- page.check('Query_2_hit_7_checkbox')
380
- page.check('Query_2_hit_8_checkbox')
381
- page.click_link('Alignment of 4 selected hit(s)')
382
- wait_for_download
383
-
384
- expect(File.basename(downloaded_file)).to eq('alignment-4_hits.txt')
385
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-4_hits_tblastn.txt'))
386
- page.should have_content('TBLASTN')
387
- end
388
-
389
- it 'loads TBLASTN XML and tests hit PNG/SVG download' do
390
- access_by_uuid('blast_2.2.31/tblastn')
391
-
392
- # Click on the PNG/SVG download button of the alignment overview and compare
393
- # the downloaded content.
394
- page.execute_script("$('.export-to-png:eq(0)').click()")
395
- wait_for_download
396
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-sp_P04637_P53_HUMAN.png')
397
-
398
- clear_downloads
399
-
400
- page.execute_script("$('.export-to-svg:eq(0)').click()")
401
- wait_for_download
402
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-sp_P04637_P53_HUMAN.svg')
403
- clear_downloads
404
- # Click on the PNG download button of the first hit available and compare
405
- # the downloaded content.
406
-
407
- page.execute_script("$('.export-to-png:eq(1)').click()")
408
- wait_for_download
409
- expect(File.basename(downloaded_file)).to eq('Kablammo-sp_P04637_P53_HUMAN-gi_395440626_gb_JQ694049_1.png')
410
-
411
- clear_downloads
412
-
413
- # Click on the SVG download button of the first hit available and compare
414
- # the downloaded content.
415
-
416
- page.execute_script("$('.export-to-svg:eq(1)').click()")
417
- wait_for_download
418
- expect(File.basename(downloaded_file)).to eq('Kablammo-sp_P04637_P53_HUMAN-gi_395440626_gb_JQ694049_1.svg')
419
- page.should have_content('TBLASTN')
420
- end
421
-
422
- it 'loads TBLASTN XML and tests Circos download' do
423
- access_by_uuid('blast_2.2.31/tblastn')
424
- # Click on the Circos expanding button, wait for animation, click on the
425
- # download of PNG/SVG file and test that it initiated a file download in a
426
- # right format.
427
-
428
- page.should have_content('Queries and their top hits: chord diagram')
429
- page.execute_script("$('.circos > .grapher-header > h5').click()")
430
- sleep 1
431
-
432
- page.execute_script("$('.export-to-png:eq(0)').click()")
433
- wait_for_download
434
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.png')
435
-
436
- clear_downloads
437
-
438
- page.execute_script("$('.export-to-svg:eq(0)').click()")
439
- wait_for_download
440
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.svg')
441
- end
442
-
443
- it 'loads TBLASTN XML and tests Length distribution download' do
444
- access_by_uuid('blast_2.2.31/tblastn')
445
- # Click on the Length distribution expanding button, wait for animation,
446
- # click on the download of PNG/SVG file and test that it initiated a file
447
- # download in a right format.
448
-
449
- page.should have_content('Length distribution of hits')
450
- page.execute_script("$('.length-distribution > .grapher-header > h5').click()")
451
- sleep 1
452
-
453
- page.execute_script("$('.export-to-png:eq(1)').click()")
454
- wait_for_download
455
- expect(File.basename(downloaded_file)).to eq('length-distribution-sp_P04637_P53_HUMAN.png')
456
-
457
- clear_downloads
458
-
459
- page.execute_script("$('.export-to-svg:eq(1)').click()")
460
- wait_for_download
461
- expect(File.basename(downloaded_file)).to eq('length-distribution-sp_P04637_P53_HUMAN.svg')
462
- end
463
-
464
- # TBLASTX Test scenarios
465
-
466
- it 'loads TBLASTX XML and tests hit alignment and sidebar Alignment download' do
467
- access_by_uuid('blast_2.2.31/tblastx')
468
- # Click on the first Alignment download button on the page and wait for the
469
- # download to finish.
470
-
471
- page.execute_script("$('.download-aln:eq(1)').click()")
472
- wait_for_download
473
- expect(File.basename(downloaded_file)).to eq('MH011443_1_gi_1528997474_gb_MH447967_1.txt')
474
- expect(File.read(downloaded_file)). to eq(File.read('spec/sequences/MH011443_1_gi_1528997474_gb_MH447967_1.txt'))
475
-
476
- clear_downloads
477
-
478
- # Click on the Alignment of all hits download and compare the downloaded
479
- # content
480
-
481
- page.click_link('Alignment of all hits')
482
- wait_for_download
483
- expect(File.basename(downloaded_file)).to eq('alignment-40_hits.txt')
484
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-40_hits_tblastx.txt'))
485
-
486
- clear_downloads
487
-
488
- # Select four hit checkboxes and click on the Alignment of selected hits.
489
- # Compare the downloaded content.
490
- page.check('Query_1_hit_9_checkbox')
491
- page.check('Query_1_hit_10_checkbox')
492
- page.check('Query_2_hit_9_checkbox')
493
- page.check('Query_2_hit_10_checkbox')
494
- page.click_link('Alignment of 4 selected hit(s)')
495
- wait_for_download
496
-
497
- expect(File.basename(downloaded_file)).to eq('alignment-4_hits.txt')
498
- expect(File.read(downloaded_file)).to eq(File.read('spec/sequences/alignment-4_hits_tblastx.txt'))
499
- page.should have_content('TBLASTX')
500
- end
501
-
502
- it 'loads TBLASTX XML and tests hit PNG/SVG download' do
503
- access_by_uuid('blast_2.2.31/tblastx')
504
-
505
- # Click on the PNG/SVG download button of the alignment overview and compare
506
- # the downloaded content.
507
- page.execute_script("$('.export-to-png:eq(0)').click()")
508
- wait_for_download
509
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.png')
510
-
511
- clear_downloads
512
-
513
- page.execute_script("$('.export-to-svg:eq(0)').click()")
514
- wait_for_download
515
- expect(File.basename(downloaded_file)).to eq('Alignment-Overview-MH011443_1.svg')
516
-
517
- clear_downloads
518
- # Click on the PNG download button of the first hit available and compare
519
- # the downloaded content.
520
-
521
- page.execute_script("$('.export-to-png:eq(1)').click()")
522
- wait_for_download
523
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1486783306_gb_MH011443_1.png')
524
-
525
- clear_downloads
526
-
527
- # Click on the SVG download button of the first hit available and compare
528
- # the downloaded content.
529
-
530
- page.execute_script("$('.export-to-svg:eq(1)').click()")
531
- wait_for_download
532
- expect(File.basename(downloaded_file)).to eq('Kablammo-MH011443_1-gi_1486783306_gb_MH011443_1.svg')
533
-
534
- page.should have_content('TBLASTX')
535
- end
536
-
537
- it 'loads TBLASTX XML and tests Circos download' do
538
- access_by_uuid('blast_2.2.31/tblastx')
539
- # Click on the Circos expanding button, wait for animation, click on the
540
- # download of PNG/SVG file and test that it initiated a file download in a
541
- # right format.
542
-
543
- page.should have_content('Queries and their top hits: chord diagram')
544
- page.execute_script("$('.circos > .grapher-header > h5').click()")
545
- sleep 1
546
-
547
- page.execute_script("$('.export-to-png:eq(0)').click()")
548
- wait_for_download
549
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.png')
550
-
551
- clear_downloads
552
-
553
- page.execute_script("$('.export-to-svg:eq(0)').click()")
554
- wait_for_download
555
- expect(File.basename(downloaded_file)).to eq('Circos-visualisation.svg')
556
- end
557
-
558
- it 'loads TBLASTX XML and tests Length distribution download' do
559
- access_by_uuid('blast_2.2.31/tblastx')
560
- # Click on the Length distribution expanding button, wait for animation,
561
- # click on the download of PNG/SVG file and test that it initiated a file
562
- # download in a right format.
563
-
564
- page.should have_content('Length distribution of hits')
565
- page.execute_script("$('.length-distribution > .grapher-header > h5').click()")
566
- sleep 1
567
-
568
- page.execute_script("$('.export-to-png:eq(1)').click()")
569
- wait_for_download
570
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.png')
571
-
572
- clear_downloads
573
-
574
- page.execute_script("$('.export-to-svg:eq(1)').click()")
575
- wait_for_download
576
- expect(File.basename(downloaded_file)).to eq('length-distribution-MH011443_1.svg')
577
- end
578
-
579
- ## Helpers ##
580
-
581
- def access_by_uuid(id)
582
- # Method to access the XML report in the browser
583
- url = url_encode(id)
584
- visit "/#{url}"
585
- page.should have_content('Query')
586
- end
587
- end