sequenceserver 1.0.0.pre.5 → 1.0.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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/.bootstrap/README.mkd +2 -0
  3. data/.bootstrap/config.json +416 -0
  4. data/.gitignore +56 -0
  5. data/.mailmap +5 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +51 -0
  8. data/.travis.yml +18 -0
  9. data/COPYRIGHT.txt +13 -0
  10. data/Gruntfile.js +133 -0
  11. data/LICENSE.txt +638 -46
  12. data/{LICENSE.Apache.txt → LICENSE/Apache.txt} +0 -0
  13. data/LICENSE/d3.txt +26 -0
  14. data/Rakefile +13 -0
  15. data/bin/sequenceserver +27 -4
  16. data/lib/sequenceserver.rb +26 -13
  17. data/lib/sequenceserver/database.rb +19 -8
  18. data/lib/sequenceserver/exceptions.rb +9 -1
  19. data/package.json +29 -0
  20. data/public/css/custom.css +10 -2
  21. data/public/dist/css/sequenceserver.min.css +1 -1
  22. data/public/dist/css/sequenceserver.min.css.gz +0 -0
  23. data/public/dist/js/sequenceserver.min.js +1 -1
  24. data/public/dist/js/sequenceserver.min.js.gz +0 -0
  25. data/public/js/jquery.t.js +2 -2
  26. data/public/js/sequence.js +4 -1
  27. data/public/js/sequenceserver.js +23 -20
  28. data/sequenceserver.gemspec +3 -6
  29. data/spec/blast_spec.rb +297 -0
  30. data/spec/capybara_spec.rb +51 -0
  31. data/spec/config_spec.rb +87 -0
  32. data/spec/database/funky_ids/funky_ids.fa +12 -0
  33. data/spec/database/funky_ids/funky_ids.fa.nhr +0 -0
  34. data/spec/database/funky_ids/funky_ids.fa.nin +0 -0
  35. data/spec/database/funky_ids/funky_ids.fa.nog +0 -0
  36. data/spec/database/funky_ids/funky_ids.fa.nsd +11 -0
  37. data/spec/database/funky_ids/funky_ids.fa.nsi +0 -0
  38. data/spec/database/funky_ids/funky_ids.fa.nsq +0 -0
  39. data/spec/database/sample/links.rb +23 -0
  40. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta +6449 -0
  41. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.phr +0 -0
  42. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pin +0 -0
  43. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.pog +0 -0
  44. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psd +2378 -0
  45. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psi +0 -0
  46. data/spec/database/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta.psq +0 -0
  47. data/spec/database/sample/si_uniprot_idmap.yml +14180 -0
  48. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta +5486 -0
  49. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nhr +0 -0
  50. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nin +0 -0
  51. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nog +0 -0
  52. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsd +946 -0
  53. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsi +0 -0
  54. data/spec/database/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta.nsq +0 -0
  55. data/spec/database/unformatted/Cardiocondyla_obscurior/Cobs1.4.proteins.fa +148303 -0
  56. data/spec/database/without_parse_seqids/without_parse_seqids.fa +10 -0
  57. data/spec/database/without_parse_seqids/without_parse_seqids.fa.phr +0 -0
  58. data/spec/database/without_parse_seqids/without_parse_seqids.fa.pin +0 -0
  59. data/spec/database/without_parse_seqids/without_parse_seqids.fa.psq +0 -0
  60. data/spec/database_spec.rb +129 -0
  61. data/spec/empty_config.yml +0 -0
  62. data/spec/routes_spec.rb +103 -0
  63. data/spec/sample.conf +2 -0
  64. data/spec/sample_reports/blastn_sample.asn +144 -0
  65. data/spec/sample_reports/blastp_sample.asn +1187 -0
  66. data/spec/sample_reports/blastx_sample.asn +1191 -0
  67. data/spec/sample_reports/no_hits_sample.asn +130 -0
  68. data/spec/sample_reports/tblastn_sample.asn +1107 -0
  69. data/spec/sample_reports/tblastx_sample.asn +2422 -0
  70. data/spec/sample_reports/with_hits_sample.asn +1489 -0
  71. data/spec/sequence_spec.rb +100 -0
  72. data/spec/sequenceserver_spec.rb +108 -0
  73. data/spec/spec_helper.rb +11 -0
  74. data/views/result.erb +55 -33
  75. data/views/search.erb +28 -23
  76. metadata +63 -151
  77. data/public/dist/js/webshims/shims/FlashCanvas/canvas2png.js +0 -1
  78. data/public/dist/js/webshims/shims/FlashCanvas/flashcanvas.js +0 -1
  79. data/public/dist/js/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
  80. data/public/dist/js/webshims/shims/FlashCanvasPro/canvas2png.js +0 -1
  81. data/public/dist/js/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  82. data/public/dist/js/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  83. data/public/dist/js/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -1
  84. data/public/dist/js/webshims/shims/canvas-blob.js +0 -1
  85. data/public/dist/js/webshims/shims/color-picker.js +0 -2
  86. data/public/dist/js/webshims/shims/combos/1.js +0 -6
  87. data/public/dist/js/webshims/shims/combos/10.js +0 -2
  88. data/public/dist/js/webshims/shims/combos/11.js +0 -2
  89. data/public/dist/js/webshims/shims/combos/12.js +0 -6
  90. data/public/dist/js/webshims/shims/combos/13.js +0 -1
  91. data/public/dist/js/webshims/shims/combos/14.js +0 -1
  92. data/public/dist/js/webshims/shims/combos/15.js +0 -2
  93. data/public/dist/js/webshims/shims/combos/16.js +0 -7
  94. data/public/dist/js/webshims/shims/combos/17.js +0 -2
  95. data/public/dist/js/webshims/shims/combos/18.js +0 -3
  96. data/public/dist/js/webshims/shims/combos/2.js +0 -7
  97. data/public/dist/js/webshims/shims/combos/21.js +0 -2
  98. data/public/dist/js/webshims/shims/combos/22.js +0 -1
  99. data/public/dist/js/webshims/shims/combos/23.js +0 -6
  100. data/public/dist/js/webshims/shims/combos/25.js +0 -2
  101. data/public/dist/js/webshims/shims/combos/27.js +0 -1
  102. data/public/dist/js/webshims/shims/combos/28.js +0 -1
  103. data/public/dist/js/webshims/shims/combos/29.js +0 -1
  104. data/public/dist/js/webshims/shims/combos/3.js +0 -1
  105. data/public/dist/js/webshims/shims/combos/30.js +0 -2
  106. data/public/dist/js/webshims/shims/combos/31.js +0 -1
  107. data/public/dist/js/webshims/shims/combos/33.js +0 -1
  108. data/public/dist/js/webshims/shims/combos/34.js +0 -1
  109. data/public/dist/js/webshims/shims/combos/4.js +0 -1
  110. data/public/dist/js/webshims/shims/combos/5.js +0 -2
  111. data/public/dist/js/webshims/shims/combos/6.js +0 -2
  112. data/public/dist/js/webshims/shims/combos/7.js +0 -7
  113. data/public/dist/js/webshims/shims/combos/8.js +0 -7
  114. data/public/dist/js/webshims/shims/combos/9.js +0 -2
  115. data/public/dist/js/webshims/shims/combos/97.js +0 -1
  116. data/public/dist/js/webshims/shims/combos/98.js +0 -1
  117. data/public/dist/js/webshims/shims/combos/99.js +0 -1
  118. data/public/dist/js/webshims/shims/details.js +0 -1
  119. data/public/dist/js/webshims/shims/dom-extend.js +0 -1
  120. data/public/dist/js/webshims/shims/es5.js +0 -1
  121. data/public/dist/js/webshims/shims/es6.js +0 -1
  122. data/public/dist/js/webshims/shims/excanvas.js +0 -1
  123. data/public/dist/js/webshims/shims/filereader-xhr.js +0 -1
  124. data/public/dist/js/webshims/shims/form-combat.js +0 -1
  125. data/public/dist/js/webshims/shims/form-core.js +0 -1
  126. data/public/dist/js/webshims/shims/form-datalist-lazy.js +0 -1
  127. data/public/dist/js/webshims/shims/form-datalist.js +0 -1
  128. data/public/dist/js/webshims/shims/form-fixrangechange.js +0 -1
  129. data/public/dist/js/webshims/shims/form-inputmode.js +0 -1
  130. data/public/dist/js/webshims/shims/form-message.js +0 -1
  131. data/public/dist/js/webshims/shims/form-native-extend.js +0 -1
  132. data/public/dist/js/webshims/shims/form-number-date-api.js +0 -1
  133. data/public/dist/js/webshims/shims/form-number-date-ui.js +0 -1
  134. data/public/dist/js/webshims/shims/form-shim-extend.js +0 -1
  135. data/public/dist/js/webshims/shims/form-shim-extend2.js +0 -1
  136. data/public/dist/js/webshims/shims/form-validation.js +0 -1
  137. data/public/dist/js/webshims/shims/form-validators.js +0 -1
  138. data/public/dist/js/webshims/shims/forms-picker.js +0 -1
  139. data/public/dist/js/webshims/shims/geolocation.js +0 -1
  140. data/public/dist/js/webshims/shims/i18n/formcfg-ar.js +0 -1
  141. data/public/dist/js/webshims/shims/i18n/formcfg-ch-CN.js +0 -1
  142. data/public/dist/js/webshims/shims/i18n/formcfg-cs.js +0 -1
  143. data/public/dist/js/webshims/shims/i18n/formcfg-de.js +0 -1
  144. data/public/dist/js/webshims/shims/i18n/formcfg-el.js +0 -1
  145. data/public/dist/js/webshims/shims/i18n/formcfg-en.js +0 -1
  146. data/public/dist/js/webshims/shims/i18n/formcfg-es.js +0 -1
  147. data/public/dist/js/webshims/shims/i18n/formcfg-fa.js +0 -1
  148. data/public/dist/js/webshims/shims/i18n/formcfg-fr.js +0 -1
  149. data/public/dist/js/webshims/shims/i18n/formcfg-he.js +0 -1
  150. data/public/dist/js/webshims/shims/i18n/formcfg-hi.js +0 -1
  151. data/public/dist/js/webshims/shims/i18n/formcfg-hu.js +0 -1
  152. data/public/dist/js/webshims/shims/i18n/formcfg-it.js +0 -1
  153. data/public/dist/js/webshims/shims/i18n/formcfg-ja.js +0 -1
  154. data/public/dist/js/webshims/shims/i18n/formcfg-lt.js +0 -1
  155. data/public/dist/js/webshims/shims/i18n/formcfg-nl.js +0 -1
  156. data/public/dist/js/webshims/shims/i18n/formcfg-pl.js +0 -1
  157. data/public/dist/js/webshims/shims/i18n/formcfg-pt-BR.js +0 -1
  158. data/public/dist/js/webshims/shims/i18n/formcfg-pt-PT.js +0 -1
  159. data/public/dist/js/webshims/shims/i18n/formcfg-pt.js +0 -1
  160. data/public/dist/js/webshims/shims/i18n/formcfg-ru.js +0 -1
  161. data/public/dist/js/webshims/shims/i18n/formcfg-sv.js +0 -1
  162. data/public/dist/js/webshims/shims/i18n/formcfg-zh-CN.js +0 -1
  163. data/public/dist/js/webshims/shims/i18n/formcfg-zh-TW.js +0 -1
  164. data/public/dist/js/webshims/shims/jme/alternate-media.js +0 -1
  165. data/public/dist/js/webshims/shims/jme/base.js +0 -1
  166. data/public/dist/js/webshims/shims/jme/controls.css +0 -1
  167. data/public/dist/js/webshims/shims/jme/jme.eot +0 -0
  168. data/public/dist/js/webshims/shims/jme/jme.svg +0 -36
  169. data/public/dist/js/webshims/shims/jme/jme.ttf +0 -0
  170. data/public/dist/js/webshims/shims/jme/jme.woff +0 -0
  171. data/public/dist/js/webshims/shims/jme/mediacontrols-lazy.js +0 -1
  172. data/public/dist/js/webshims/shims/jme/mediacontrols.js +0 -1
  173. data/public/dist/js/webshims/shims/jme/playlist.js +0 -1
  174. data/public/dist/js/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  175. data/public/dist/js/webshims/shims/jpicker/images/Bars.png +0 -0
  176. data/public/dist/js/webshims/shims/jpicker/images/Maps.png +0 -0
  177. data/public/dist/js/webshims/shims/jpicker/images/NoColor.png +0 -0
  178. data/public/dist/js/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  179. data/public/dist/js/webshims/shims/jpicker/images/map-opacity.png +0 -0
  180. data/public/dist/js/webshims/shims/jpicker/images/mappoint.gif +0 -0
  181. data/public/dist/js/webshims/shims/jpicker/images/picker.gif +0 -0
  182. data/public/dist/js/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  183. data/public/dist/js/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  184. data/public/dist/js/webshims/shims/jpicker/jpicker.css +0 -1
  185. data/public/dist/js/webshims/shims/matchMedia.js +0 -3
  186. data/public/dist/js/webshims/shims/mediacapture-picker.js +0 -1
  187. data/public/dist/js/webshims/shims/mediacapture.js +0 -1
  188. data/public/dist/js/webshims/shims/mediaelement-core.js +0 -1
  189. data/public/dist/js/webshims/shims/mediaelement-debug.js +0 -1
  190. data/public/dist/js/webshims/shims/mediaelement-jaris.js +0 -1
  191. data/public/dist/js/webshims/shims/mediaelement-native-fix.js +0 -1
  192. data/public/dist/js/webshims/shims/mediaelement-yt.js +0 -1
  193. data/public/dist/js/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
  194. data/public/dist/js/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
  195. data/public/dist/js/webshims/shims/moxie/js/moxie-html4.js +0 -3
  196. data/public/dist/js/webshims/shims/moxie/js/moxie-swf.js +0 -2
  197. data/public/dist/js/webshims/shims/picture.js +0 -1
  198. data/public/dist/js/webshims/shims/plugins/jquery.ui.position.js +0 -11
  199. data/public/dist/js/webshims/shims/range-ui.js +0 -1
  200. data/public/dist/js/webshims/shims/sizzle.js +0 -11
  201. data/public/dist/js/webshims/shims/sticky.js +0 -1
  202. data/public/dist/js/webshims/shims/styles/color-picker.png +0 -0
  203. data/public/dist/js/webshims/shims/styles/forms-ext.css +0 -1
  204. data/public/dist/js/webshims/shims/styles/forms-picker.css +0 -1
  205. data/public/dist/js/webshims/shims/styles/progress.gif +0 -0
  206. data/public/dist/js/webshims/shims/styles/progress.png +0 -0
  207. data/public/dist/js/webshims/shims/styles/shim-ext.css +0 -1
  208. data/public/dist/js/webshims/shims/styles/shim.css +0 -1
  209. data/public/dist/js/webshims/shims/styles/transparent.png +0 -0
  210. data/public/dist/js/webshims/shims/styles/widget.eot +0 -0
  211. data/public/dist/js/webshims/shims/styles/widget.svg +0 -12
  212. data/public/dist/js/webshims/shims/styles/widget.ttf +0 -0
  213. data/public/dist/js/webshims/shims/styles/widget.woff +0 -0
  214. data/public/dist/js/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  215. data/public/dist/js/webshims/shims/swfmini-embed.js +0 -1
  216. data/public/dist/js/webshims/shims/swfmini.js +0 -6
  217. data/public/dist/js/webshims/shims/track-ui.js +0 -1
  218. data/public/dist/js/webshims/shims/track.js +0 -1
  219. data/public/dist/js/webshims/shims/url.js +0 -1
  220. data/public/dist/js/webshims/shims/usermedia-core.js +0 -1
  221. data/public/dist/js/webshims/shims/usermedia-shim.js +0 -1
@@ -0,0 +1,10 @@
1
+ >SI2.2.0_06267 locus=Si_gnF.scaffold02592[1282609..1284114].pep_2 quality=100.00
2
+ MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFEDPQPISQRLIYEIR
3
+ TNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITD
4
+ ITKIKLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGE
5
+ KENKIKEGMKMMGLNDSVF
6
+ >SI2.2.0_13722 locus=Si_gnF.scaffold06207[1925625..1928536].pep_1 quality=100.00
7
+ MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQKYCGKKLSNALQIIC
8
+ DGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVS
9
+ EMEMADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINEL
10
+ TSYCGP
@@ -0,0 +1,129 @@
1
+ require 'spec_helper'
2
+ require 'sequenceserver/database'
3
+
4
+ # Test Database class.
5
+ module SequenceServer
6
+ describe 'Database' do
7
+ let 'root' do
8
+ SequenceServer.root
9
+ end
10
+
11
+ let 'database_dir' do
12
+ File.join(root, 'spec', 'database')
13
+ end
14
+
15
+ let 'database_dir_sample' do
16
+ File.join(database_dir, 'sample')
17
+ end
18
+
19
+ let 'database_dir_unformatted' do
20
+ File.join(database_dir, 'unformatted')
21
+ end
22
+
23
+ let 'fasta_file_prot_seqs' do
24
+ File.join(database_dir_sample, 'proteins', 'Solenopsis_invicta',
25
+ 'Sinvicta2-2-3.prot.subset.fasta')
26
+ end
27
+
28
+ let 'fasta_file_nucl_seqs' do
29
+ File.join(database_dir_sample, 'transcripts', 'Solenopsis_invicta',
30
+ 'Sinvicta2-2-3.cdna.subset.fasta')
31
+ end
32
+
33
+ let 'text_file' do
34
+ File.join(database_dir_sample, 'links.rb')
35
+ end
36
+
37
+ let 'binary_file' do
38
+ File.join(database_dir_sample, 'proteins', 'Solenopsis_invicta',
39
+ 'Sinvicta2-2-3.prot.subset.fasta.phr')
40
+ end
41
+
42
+ let 'data_for_makeblastdb' do
43
+ [
44
+ File.join(database_dir_unformatted, 'Cardiocondyla_obscurior',
45
+ 'Cobs1.4.proteins.fa'),
46
+ :protein,
47
+ 'Cobs 1.4 proteins',
48
+ true
49
+ ]
50
+ end
51
+
52
+ let 'makeblastdb_result_pattern' do
53
+ File.join(database_dir_unformatted, 'Cardiocondyla_obscurior',
54
+ 'Cobs1.4.proteins.fa.*')
55
+ end
56
+
57
+ before :each do
58
+ # Empty Database collection so we can use different directories as
59
+ # needed.
60
+ Database.clear
61
+ end
62
+
63
+ it 'can tell FASTA file' do
64
+ Database.probably_fasta?(text_file).should be_falsey
65
+ Database.probably_fasta?(binary_file).should be_falsey
66
+ Database.probably_fasta?(fasta_file_prot_seqs).should be_truthy
67
+ Database.probably_fasta?(fasta_file_nucl_seqs).should be_truthy
68
+ end
69
+
70
+ it 'can tell type of sequences in FASTA file' do
71
+ Database.guess_sequence_type_in_fasta(fasta_file_prot_seqs)
72
+ .should eq :protein
73
+ Database.guess_sequence_type_in_fasta(fasta_file_nucl_seqs)
74
+ .should eq :nucleotide
75
+ end
76
+
77
+ it 'can tell BLAST+ databases in a directory' do
78
+ SequenceServer.config[:database_dir] = database_dir_sample
79
+ Database.scan_databases_dir
80
+ Database.all.length.should eq 2
81
+ end
82
+
83
+ it 'can tell NCBI multipart database name' do
84
+ sample_name1 = '/home/ben/pd.ben/sequenceserver/db/nr'
85
+ sample_name2 = '/home/ben/pd.ben/sequenceserver/db/nr.00'
86
+ sample_name3 = '/home/ben/pd.ben/sequenceserver/db/img3.5.finished.faa.01'
87
+ Database.multipart_database_name?(sample_name1).should be_falsey
88
+ Database.multipart_database_name?(sample_name2).should be_truthy
89
+ Database.multipart_database_name?(sample_name3).should be_truthy
90
+ end
91
+
92
+ it 'can tell FASTA files that are yet to be made into a BLAST+ database' do
93
+ SequenceServer.config[:database_dir] = database_dir_unformatted
94
+ # rubocop:disable Style/RescueModifier
95
+ Database.scan_databases_dir rescue NO_BLAST_DATABASE_FOUND
96
+ # rubocop:enable Style/RescueModifier
97
+ Database.unformatted_fastas.should_not be_empty
98
+ end
99
+
100
+ # it 'can make BLAST+ database from a FASTA file' do
101
+ # Database._make_blast_database(*data_for_makeblastdb).should be_truthy
102
+ # system "rm #{makeblastdb_result_pattern}"
103
+ # end
104
+
105
+ it 'can make intelligent database name suggestions' do
106
+ db_name_pairs = [['Si_gnf.fasta', 'Si gnf'],
107
+ ['Aech.3.8.cds.fasta', 'Aech 3.8 cds'],
108
+ ['Cobs1.4.proteins.fasta', 'Cobs 1.4 proteins'],
109
+ ['S_inv.x.small.2.5.nucl.fa', 'S inv x small 2.5 nucl'],
110
+ ['Sinvicta2-2-3.prot.fasta', 'Sinvicta 2-2-3 prot']]
111
+ db_name_pairs.each do |db|
112
+ Database.make_db_title(db[0]).should eql(db[1])
113
+ end
114
+ end
115
+
116
+ let 'solenopsis_protein_database' do
117
+ path = 'spec/database/sample/proteins/Solenopsis_invicta/'\
118
+ 'Sinvicta2-2-3.prot.subset.fasta'
119
+ id = Digest::MD5.hexdigest File.expand_path path
120
+ Database[id].first
121
+ end
122
+
123
+ it 'knows if a given accession is in the database or not' do
124
+ SequenceServer.config[:database_dir] = database_dir_sample
125
+ Database.scan_databases_dir
126
+ solenopsis_protein_database.include?('SI2.2.0_06267').should be_truthy
127
+ end
128
+ end
129
+ end
File without changes
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+
3
+ # Basic unit tests for HTTP / Rack interface.
4
+ module SequenceServer
5
+ describe 'Routes' do
6
+ ENV['RACK_ENV'] = 'test'
7
+ include Rack::Test::Methods
8
+
9
+ let 'root' do
10
+ SequenceServer.root
11
+ end
12
+
13
+ let 'empty_config' do
14
+ File.join(root, 'spec', 'empty_config.yml')
15
+ end
16
+
17
+ let 'database_dir' do
18
+ File.join(root, 'spec', 'database')
19
+ end
20
+
21
+ before :each do
22
+ SequenceServer.init(:config_file => empty_config,
23
+ :database_dir => database_dir)
24
+
25
+ algorithm = Database.first.type == 'protein' ? 'blastp' : 'blastn'
26
+ sequence = 'AGCTAGCTAGCT'
27
+ databases = [Database.first.id]
28
+
29
+ @params = {
30
+ 'method' => algorithm,
31
+ 'sequence' => sequence,
32
+ 'databases' => databases
33
+ }
34
+ end
35
+
36
+ let 'app' do
37
+ SequenceServer
38
+ end
39
+
40
+ it 'returns Bad Request (400) if no blast method is provided' do
41
+ @params.delete('method')
42
+ post '/', @params
43
+ last_response.status.should == 400
44
+ end
45
+
46
+ it 'returns Bad Request (400) if no input sequence is provided' do
47
+ @params.delete('sequence')
48
+ post '/', @params
49
+ last_response.status.should == 400
50
+ end
51
+
52
+ it 'returns Bad Request (400) if no database id is provided' do
53
+ @params.delete('databases')
54
+ post '/', @params
55
+ last_response.status.should == 400
56
+ end
57
+
58
+ it 'returns Bad Request (400) if an empty database list is provided' do
59
+ @params['databases'].pop
60
+
61
+ # ensure the list of databases is empty
62
+ @params['databases'].should be_empty
63
+
64
+ post '/', @params
65
+ last_response.status.should == 400
66
+ end
67
+
68
+ it 'returns Bad Request (400) if incorrect database id is provided' do
69
+ @params['databases'] = ['123']
70
+ post '/', @params
71
+ last_response.status.should == 400
72
+ end
73
+
74
+ it 'returns Bad Request (400) if an incorrect blast method is supplied' do
75
+ @params['method'] = 'foo'
76
+ post '/', @params
77
+ last_response.status.should == 400
78
+ end
79
+
80
+ it 'returns Bad Request (400) if incorrect advanced params are supplied' do
81
+ @params['advanced'] = '-word_size 5; rm -rf /'
82
+ post '/', @params
83
+ last_response.status.should == 400
84
+ end
85
+
86
+ it 'returns OK (200) when correct method, sequence, and database ids are'\
87
+ 'provided but no advanced params' do
88
+ post '/', @params
89
+ last_response.status.should eq 200
90
+
91
+ @params['advanced'] = ' '
92
+ post '/', @params
93
+ last_response.status.should == 200
94
+ end
95
+
96
+ it 'returns OK (200) when correct method, sequence, and database ids and'\
97
+ 'advanced params are provided' do
98
+ @params['advanced'] = '-evalue 1'
99
+ post '/', @params
100
+ last_response.status.should == 200
101
+ end
102
+ end
103
+ end
data/spec/sample.conf ADDED
@@ -0,0 +1,2 @@
1
+ num_threads: 10
2
+ :database: 'database_dir'
@@ -0,0 +1,144 @@
1
+ Blast4-archive ::= {
2
+ request {
3
+ ident "2.2.30+",
4
+ body queue-search {
5
+ program "blastn",
6
+ service "megablast",
7
+ queries bioseq-set {
8
+ seq-set {
9
+ seq {
10
+ id {
11
+ local str "Query_1"
12
+ },
13
+ descr {
14
+ user {
15
+ type str "CFastaReader",
16
+ data {
17
+ {
18
+ label str "DefLine",
19
+ data str ">"
20
+ }
21
+ }
22
+ }
23
+ },
24
+ inst {
25
+ repr raw,
26
+ mol na,
27
+ length 544,
28
+ seq-data ncbi2na 'C6298086D9826EB37C0E98A3C6080E8218765A03368213
29
+ A79AC4AAD060E0B6108A80C5808E76AF0888D09A23F480E7630350B60D6863D2403C822D821E65
30
+ 100F7CF66E1BF766D83ED802FF0619B50BD021F6898204D3F40340EBF7508D4A052624CB679B50
31
+ 88860D019A0C62019BA08A23D2682363D8F0A08CF61884F82649060C2213628410E503'H
32
+ }
33
+ }
34
+ }
35
+ },
36
+ subject database "spec/database/sample/transcripts/Solenopsis_invicta/Si
37
+ nvicta2-2-3.cdna.subset.fasta",
38
+ algorithm-options {
39
+ {
40
+ name "EvalueThreshold",
41
+ value cutoff e-value { 1, 10, 1 }
42
+ },
43
+ {
44
+ name "MaskAtHash",
45
+ value boolean TRUE
46
+ },
47
+ {
48
+ name "DustFilteringLevel",
49
+ value integer 20
50
+ },
51
+ {
52
+ name "DustFilteringWindow",
53
+ value integer 64
54
+ },
55
+ {
56
+ name "DustFilteringLinker",
57
+ value integer 1
58
+ },
59
+ {
60
+ name "UngappedMode",
61
+ value boolean FALSE
62
+ },
63
+ {
64
+ name "HitlistSize",
65
+ value integer 500
66
+ },
67
+ {
68
+ name "EffectiveSearchSpace",
69
+ value big-integer 146351625
70
+ }
71
+ }
72
+ }
73
+ },
74
+ results {
75
+ alignments {
76
+ {
77
+ type partial,
78
+ dim 2,
79
+ score {
80
+ {
81
+ id str "score",
82
+ value int 544
83
+ },
84
+ {
85
+ id str "e_value",
86
+ value real { 0, 10, 0 }
87
+ },
88
+ {
89
+ id str "bit_score",
90
+ value real { 100569770510552, 10, -11 }
91
+ },
92
+ {
93
+ id str "num_ident",
94
+ value int 544
95
+ },
96
+ {
97
+ id str "hsp_percent_coverage",
98
+ value real { 1, 10, 2 }
99
+ }
100
+ },
101
+ segs denseg {
102
+ dim 2,
103
+ numseg 1,
104
+ ids {
105
+ local str "Query_1",
106
+ local str "SI2.2.0_08256"
107
+ },
108
+ starts {
109
+ 0,
110
+ 480
111
+ },
112
+ lens {
113
+ 544
114
+ },
115
+ strands {
116
+ plus,
117
+ plus
118
+ }
119
+ }
120
+ }
121
+ },
122
+ masks {
123
+ },
124
+ ka-blocks {
125
+ {
126
+ lambda { 133270576282382, 10, -14 },
127
+ k { 620991117264207, 10, -15 },
128
+ h { 112409184650115, 10, -14 },
129
+ gapped FALSE
130
+ },
131
+ {
132
+ lambda { 128, 10, -2 },
133
+ k { 46, 10, -2 },
134
+ h { 85, 10, -2 },
135
+ gapped TRUE
136
+ }
137
+ },
138
+ search-stats {
139
+ "Effective search space: 146351625",
140
+ "Effective search space used: 146351625",
141
+ "Length adjustment: 19"
142
+ }
143
+ }
144
+ }
@@ -0,0 +1,1187 @@
1
+ Blast4-archive ::= {
2
+ request {
3
+ ident "2.2.30+",
4
+ body queue-search {
5
+ program "blastp",
6
+ service "plain",
7
+ queries bioseq-set {
8
+ seq-set {
9
+ seq {
10
+ id {
11
+ local str "Query_1"
12
+ },
13
+ descr {
14
+ user {
15
+ type str "CFastaReader",
16
+ data {
17
+ {
18
+ label str "DefLine",
19
+ data str ">SI2.2.0_06267
20
+ locus=Si_gnF.scaffold02592[1282609..1284114].pep_2 quality=100.00"
21
+ }
22
+ }
23
+ },
24
+ title "SI2.2.0_06267
25
+ locus=Si_gnF.scaffold02592[1282609..1284114].pep_2 quality=100.00"
26
+ },
27
+ inst {
28
+ repr raw,
29
+ mol aa,
30
+ length 199,
31
+ seq-data ncbieaa "MNTLWLSLWDYPGKLPLNFMVFDTKDDLQAAYWRDPYSIPLAVIFE
32
+ DPQPISQRLIYEIRTNPSYTLPPPPTKLYSAPISCRKNKTGHWMDDILSIKTGESCPVNNYLHSGFLALQMITDITKI
33
+ KLENSDVTIPDIKLIMFPKEPYTADWMLAFRVVIPLYMVLALSQFITYLLILIVGEKENKIKEGMKMMGLNDSVF"
34
+ }
35
+ },
36
+ seq {
37
+ id {
38
+ local str "Query_2"
39
+ },
40
+ descr {
41
+ user {
42
+ type str "CFastaReader",
43
+ data {
44
+ {
45
+ label str "DefLine",
46
+ data str ">SI2.2.0_13722
47
+ locus=Si_gnF.scaffold06207[1925625..1928536].pep_1 quality=100.00"
48
+ }
49
+ }
50
+ },
51
+ title "SI2.2.0_13722
52
+ locus=Si_gnF.scaffold06207[1925625..1928536].pep_1 quality=100.00"
53
+ },
54
+ inst {
55
+ repr raw,
56
+ mol aa,
57
+ length 186,
58
+ seq-data ncbieaa "MSANRLNVLVTLMLAVALLVTESGNAQVDGYLQFNPKRSAVSSPQK
59
+ YCGKKLSNALQIICDGVYNSMFKKSGQDFPPQNKRHIAHRINGNEEESFTTLKSNFLNWCVEVYHRHYRFVFVSEMEM
60
+ ADYPLAYDISPYLPPFLSRARARGMLDGRFAGRRYRRESRGIHEECCINGCTINELTSYCGP"
61
+ }
62
+ }
63
+ }
64
+ },
65
+ subject database "spec/database/sample/proteins/Solenopsis_invicta/Sinvi
66
+ cta2-2-3.prot.subset.fasta",
67
+ algorithm-options {
68
+ {
69
+ name "EvalueThreshold",
70
+ value cutoff e-value { 1, 10, 1 }
71
+ },
72
+ {
73
+ name "MaskAtHash",
74
+ value boolean FALSE
75
+ },
76
+ {
77
+ name "SegFiltering",
78
+ value boolean FALSE
79
+ },
80
+ {
81
+ name "WordThreshold",
82
+ value integer 11
83
+ },
84
+ {
85
+ name "WindowSize",
86
+ value integer 40
87
+ },
88
+ {
89
+ name "HitlistSize",
90
+ value integer 500
91
+ },
92
+ {
93
+ name "UngappedMode",
94
+ value boolean FALSE
95
+ },
96
+ {
97
+ name "CompositionBasedStats",
98
+ value integer 2
99
+ },
100
+ {
101
+ name "SmithWatermanMode",
102
+ value boolean FALSE
103
+ },
104
+ {
105
+ name "EffectiveSearchSpace",
106
+ value big-integer 26094545
107
+ }
108
+ }
109
+ }
110
+ },
111
+ results {
112
+ alignments {
113
+ {
114
+ type partial,
115
+ dim 2,
116
+ score {
117
+ {
118
+ id str "score",
119
+ value int 1046
120
+ },
121
+ {
122
+ id str "e_value",
123
+ value real { 260530337228793, 10, -161 }
124
+ },
125
+ {
126
+ id str "bit_score",
127
+ value real { 407526988689595, 10, -12 }
128
+ },
129
+ {
130
+ id str "num_ident",
131
+ value int 199
132
+ },
133
+ {
134
+ id str "comp_adjustment_method",
135
+ value int 2
136
+ },
137
+ {
138
+ id str "num_positives",
139
+ value int 199
140
+ },
141
+ {
142
+ id str "hsp_percent_coverage",
143
+ value real { 1, 10, 2 }
144
+ }
145
+ },
146
+ segs denseg {
147
+ dim 2,
148
+ numseg 1,
149
+ ids {
150
+ local str "Query_1",
151
+ local str "SI2.2.0_06267"
152
+ },
153
+ starts {
154
+ 0,
155
+ 0
156
+ },
157
+ lens {
158
+ 199
159
+ },
160
+ strands {
161
+ unknown,
162
+ unknown
163
+ }
164
+ }
165
+ },
166
+ {
167
+ type partial,
168
+ dim 2,
169
+ score {
170
+ {
171
+ id str "score",
172
+ value int 54
173
+ },
174
+ {
175
+ id str "e_value",
176
+ value real { 482179947621224, 10, -15 }
177
+ },
178
+ {
179
+ id str "bit_score",
180
+ value real { 254090093795811, 10, -13 }
181
+ },
182
+ {
183
+ id str "num_ident",
184
+ value int 8
185
+ },
186
+ {
187
+ id str "comp_adjustment_method",
188
+ value int 2
189
+ },
190
+ {
191
+ id str "num_positives",
192
+ value int 17
193
+ },
194
+ {
195
+ id str "hsp_percent_coverage",
196
+ value real { 125603015075377, 10, -13 }
197
+ }
198
+ },
199
+ segs denseg {
200
+ dim 2,
201
+ numseg 1,
202
+ ids {
203
+ local str "Query_1",
204
+ local str "SI2.2.0_11870"
205
+ },
206
+ starts {
207
+ 26,
208
+ 61
209
+ },
210
+ lens {
211
+ 24
212
+ },
213
+ strands {
214
+ unknown,
215
+ unknown
216
+ }
217
+ }
218
+ },
219
+ {
220
+ type partial,
221
+ dim 2,
222
+ score {
223
+ {
224
+ id str "score",
225
+ value int 51
226
+ },
227
+ {
228
+ id str "e_value",
229
+ value real { 680938982241635, 10, -15 }
230
+ },
231
+ {
232
+ id str "bit_score",
233
+ value real { 24253410651829, 10, -12 }
234
+ },
235
+ {
236
+ id str "num_ident",
237
+ value int 13
238
+ },
239
+ {
240
+ id str "comp_adjustment_method",
241
+ value int 2
242
+ },
243
+ {
244
+ id str "num_positives",
245
+ value int 25
246
+ },
247
+ {
248
+ id str "hsp_percent_coverage",
249
+ value real { 271331658291457, 10, -13 }
250
+ }
251
+ },
252
+ segs denseg {
253
+ dim 2,
254
+ numseg 3,
255
+ ids {
256
+ local str "Query_1",
257
+ local str "SI2.2.0_10694"
258
+ },
259
+ starts {
260
+ 53,
261
+ 4,
262
+ 80,
263
+ -1,
264
+ 88,
265
+ 31
266
+ },
267
+ lens {
268
+ 27,
269
+ 8,
270
+ 18
271
+ },
272
+ strands {
273
+ unknown,
274
+ unknown,
275
+ unknown,
276
+ unknown,
277
+ unknown,
278
+ unknown
279
+ }
280
+ }
281
+ },
282
+ {
283
+ type partial,
284
+ dim 2,
285
+ score {
286
+ {
287
+ id str "score",
288
+ value int 52
289
+ },
290
+ {
291
+ id str "e_value",
292
+ value real { 880164550170316, 10, -15 }
293
+ },
294
+ {
295
+ id str "bit_score",
296
+ value real { 246386102277464, 10, -13 }
297
+ },
298
+ {
299
+ id str "num_ident",
300
+ value int 11
301
+ },
302
+ {
303
+ id str "comp_adjustment_method",
304
+ value int 2
305
+ },
306
+ {
307
+ id str "num_positives",
308
+ value int 22
309
+ },
310
+ {
311
+ id str "hsp_percent_coverage",
312
+ value real { 165804020100502, 10, -13 }
313
+ }
314
+ },
315
+ segs denseg {
316
+ dim 2,
317
+ numseg 3,
318
+ ids {
319
+ local str "Query_1",
320
+ local str "SI2.2.0_04285"
321
+ },
322
+ starts {
323
+ 95,
324
+ 82,
325
+ 99,
326
+ -1,
327
+ 101,
328
+ 86
329
+ },
330
+ lens {
331
+ 4,
332
+ 2,
333
+ 26
334
+ },
335
+ strands {
336
+ unknown,
337
+ unknown,
338
+ unknown,
339
+ unknown,
340
+ unknown,
341
+ unknown
342
+ }
343
+ }
344
+ },
345
+ {
346
+ type partial,
347
+ dim 2,
348
+ score {
349
+ {
350
+ id str "score",
351
+ value int 48
352
+ },
353
+ {
354
+ id str "e_value",
355
+ value real { 291747949190001, 10, -14 }
356
+ },
357
+ {
358
+ id str "bit_score",
359
+ value real { 23097811924077, 10, -12 }
360
+ },
361
+ {
362
+ id str "num_ident",
363
+ value int 12
364
+ },
365
+ {
366
+ id str "comp_adjustment_method",
367
+ value int 2
368
+ },
369
+ {
370
+ id str "num_positives",
371
+ value int 19
372
+ },
373
+ {
374
+ id str "hsp_percent_coverage",
375
+ value real { 170829145728643, 10, -13 }
376
+ }
377
+ },
378
+ segs denseg {
379
+ dim 2,
380
+ numseg 1,
381
+ ids {
382
+ local str "Query_1",
383
+ local str "SI2.2.0_00562"
384
+ },
385
+ starts {
386
+ 34,
387
+ 26
388
+ },
389
+ lens {
390
+ 33
391
+ },
392
+ strands {
393
+ unknown,
394
+ unknown
395
+ }
396
+ }
397
+ },
398
+ {
399
+ type partial,
400
+ dim 2,
401
+ score {
402
+ {
403
+ id str "score",
404
+ value int 46
405
+ },
406
+ {
407
+ id str "e_value",
408
+ value real { 415577842297789, 10, -14 }
409
+ },
410
+ {
411
+ id str "bit_score",
412
+ value real { 223274127722423, 10, -13 }
413
+ },
414
+ {
415
+ id str "num_ident",
416
+ value int 9
417
+ },
418
+ {
419
+ id str "comp_adjustment_method",
420
+ value int 2
421
+ },
422
+ {
423
+ id str "num_positives",
424
+ value int 15
425
+ },
426
+ {
427
+ id str "hsp_percent_coverage",
428
+ value real { 135653266331658, 10, -13 }
429
+ }
430
+ },
431
+ segs denseg {
432
+ dim 2,
433
+ numseg 1,
434
+ ids {
435
+ local str "Query_1",
436
+ local str "SI2.2.0_06904"
437
+ },
438
+ starts {
439
+ 31,
440
+ 39
441
+ },
442
+ lens {
443
+ 26
444
+ },
445
+ strands {
446
+ unknown,
447
+ unknown
448
+ }
449
+ }
450
+ },
451
+ {
452
+ type partial,
453
+ dim 2,
454
+ score {
455
+ {
456
+ id str "score",
457
+ value int 48
458
+ },
459
+ {
460
+ id str "e_value",
461
+ value real { 435158450912089, 10, -14 }
462
+ },
463
+ {
464
+ id str "bit_score",
465
+ value real { 23097811924077, 10, -12 }
466
+ },
467
+ {
468
+ id str "num_ident",
469
+ value int 8
470
+ },
471
+ {
472
+ id str "comp_adjustment_method",
473
+ value int 1
474
+ },
475
+ {
476
+ id str "num_positives",
477
+ value int 11
478
+ },
479
+ {
480
+ id str "hsp_percent_coverage",
481
+ value real { 854020100502512, 10, -14 }
482
+ }
483
+ },
484
+ segs denseg {
485
+ dim 2,
486
+ numseg 1,
487
+ ids {
488
+ local str "Query_1",
489
+ local str "SI2.2.0_03512"
490
+ },
491
+ starts {
492
+ 62,
493
+ 16
494
+ },
495
+ lens {
496
+ 16
497
+ },
498
+ strands {
499
+ unknown,
500
+ unknown
501
+ }
502
+ }
503
+ },
504
+ {
505
+ type partial,
506
+ dim 2,
507
+ score {
508
+ {
509
+ id str "score",
510
+ value int 46
511
+ },
512
+ {
513
+ id str "e_value",
514
+ value real { 68762606389187, 10, -13 }
515
+ },
516
+ {
517
+ id str "bit_score",
518
+ value real { 223274127722423, 10, -13 }
519
+ },
520
+ {
521
+ id str "num_ident",
522
+ value int 12
523
+ },
524
+ {
525
+ id str "comp_adjustment_method",
526
+ value int 2
527
+ },
528
+ {
529
+ id str "num_positives",
530
+ value int 20
531
+ },
532
+ {
533
+ id str "hsp_percent_coverage",
534
+ value real { 160778894472362, 10, -13 }
535
+ }
536
+ },
537
+ segs denseg {
538
+ dim 2,
539
+ numseg 3,
540
+ ids {
541
+ local str "Query_1",
542
+ local str "SI2.2.0_02466"
543
+ },
544
+ starts {
545
+ 157,
546
+ 313,
547
+ -1,
548
+ 336,
549
+ 180,
550
+ 338
551
+ },
552
+ lens {
553
+ 23,
554
+ 2,
555
+ 8
556
+ },
557
+ strands {
558
+ unknown,
559
+ unknown,
560
+ unknown,
561
+ unknown,
562
+ unknown,
563
+ unknown
564
+ }
565
+ }
566
+ },
567
+ {
568
+ type partial,
569
+ dim 2,
570
+ score {
571
+ {
572
+ id str "score",
573
+ value int 1007
574
+ },
575
+ {
576
+ id str "e_value",
577
+ value real { 744858931934283, 10, -156 }
578
+ },
579
+ {
580
+ id str "bit_score",
581
+ value real { 392504205228819, 10, -12 }
582
+ },
583
+ {
584
+ id str "num_ident",
585
+ value int 186
586
+ },
587
+ {
588
+ id str "comp_adjustment_method",
589
+ value int 2
590
+ },
591
+ {
592
+ id str "num_positives",
593
+ value int 186
594
+ },
595
+ {
596
+ id str "hsp_percent_coverage",
597
+ value real { 1, 10, 2 }
598
+ }
599
+ },
600
+ segs denseg {
601
+ dim 2,
602
+ numseg 1,
603
+ ids {
604
+ local str "Query_2",
605
+ local str "SI2.2.0_13722"
606
+ },
607
+ starts {
608
+ 0,
609
+ 0
610
+ },
611
+ lens {
612
+ 186
613
+ },
614
+ strands {
615
+ unknown,
616
+ unknown
617
+ }
618
+ }
619
+ },
620
+ {
621
+ type partial,
622
+ dim 2,
623
+ score {
624
+ {
625
+ id str "score",
626
+ value int 77
627
+ },
628
+ {
629
+ id str "e_value",
630
+ value real { 262930569671326, 10, -18 }
631
+ },
632
+ {
633
+ id str "bit_score",
634
+ value real { 342685996256802, 10, -13 }
635
+ },
636
+ {
637
+ id str "num_ident",
638
+ value int 26
639
+ },
640
+ {
641
+ id str "comp_adjustment_method",
642
+ value int 2
643
+ },
644
+ {
645
+ id str "num_positives",
646
+ value int 40
647
+ },
648
+ {
649
+ id str "hsp_percent_coverage",
650
+ value real { 381344086021505, 10, -13 }
651
+ }
652
+ },
653
+ segs denseg {
654
+ dim 2,
655
+ numseg 7,
656
+ ids {
657
+ local str "Query_2",
658
+ local str "SI2.2.0_13149"
659
+ },
660
+ starts {
661
+ 6,
662
+ 6,
663
+ 26,
664
+ -1,
665
+ 29,
666
+ 26,
667
+ 43,
668
+ -1,
669
+ 44,
670
+ 40,
671
+ -1,
672
+ 56,
673
+ 60,
674
+ 57
675
+ },
676
+ lens {
677
+ 20,
678
+ 3,
679
+ 14,
680
+ 1,
681
+ 16,
682
+ 1,
683
+ 16
684
+ },
685
+ strands {
686
+ unknown,
687
+ unknown,
688
+ unknown,
689
+ unknown,
690
+ unknown,
691
+ unknown,
692
+ unknown,
693
+ unknown,
694
+ unknown,
695
+ unknown,
696
+ unknown,
697
+ unknown,
698
+ unknown,
699
+ unknown
700
+ }
701
+ }
702
+ },
703
+ {
704
+ type partial,
705
+ dim 2,
706
+ score {
707
+ {
708
+ id str "score",
709
+ value int 64
710
+ },
711
+ {
712
+ id str "e_value",
713
+ value real { 143785322335424, 10, -16 }
714
+ },
715
+ {
716
+ id str "bit_score",
717
+ value real { 292610051387546, 10, -13 }
718
+ },
719
+ {
720
+ id str "num_ident",
721
+ value int 10
722
+ },
723
+ {
724
+ id str "comp_adjustment_method",
725
+ value int 2
726
+ },
727
+ {
728
+ id str "num_positives",
729
+ value int 16
730
+ },
731
+ {
732
+ id str "hsp_percent_coverage",
733
+ value real { 123279569892473, 10, -13 }
734
+ }
735
+ },
736
+ segs denseg {
737
+ dim 2,
738
+ numseg 1,
739
+ ids {
740
+ local str "Query_2",
741
+ local str "SI2.2.0_13149"
742
+ },
743
+ starts {
744
+ 164,
745
+ 79
746
+ },
747
+ lens {
748
+ 22
749
+ },
750
+ strands {
751
+ unknown,
752
+ unknown
753
+ }
754
+ }
755
+ },
756
+ {
757
+ type partial,
758
+ dim 2,
759
+ score {
760
+ {
761
+ id str "score",
762
+ value int 54
763
+ },
764
+ {
765
+ id str "e_value",
766
+ value real { 659596361235298, 10, -15 }
767
+ },
768
+ {
769
+ id str "bit_score",
770
+ value real { 254090093795811, 10, -13 }
771
+ },
772
+ {
773
+ id str "num_ident",
774
+ value int 10
775
+ },
776
+ {
777
+ id str "comp_adjustment_method",
778
+ value int 2
779
+ },
780
+ {
781
+ id str "num_positives",
782
+ value int 13
783
+ },
784
+ {
785
+ id str "hsp_percent_coverage",
786
+ value real { 11252688172043, 10, -12 }
787
+ }
788
+ },
789
+ segs denseg {
790
+ dim 2,
791
+ numseg 1,
792
+ ids {
793
+ local str "Query_2",
794
+ local str "SI2.2.0_03512"
795
+ },
796
+ starts {
797
+ 146,
798
+ 882
799
+ },
800
+ lens {
801
+ 20
802
+ },
803
+ strands {
804
+ unknown,
805
+ unknown
806
+ }
807
+ }
808
+ },
809
+ {
810
+ type partial,
811
+ dim 2,
812
+ score {
813
+ {
814
+ id str "score",
815
+ value int 48
816
+ },
817
+ {
818
+ id str "e_value",
819
+ value real { 184916477333049, 10, -14 }
820
+ },
821
+ {
822
+ id str "bit_score",
823
+ value real { 23097811924077, 10, -12 }
824
+ },
825
+ {
826
+ id str "num_ident",
827
+ value int 13
828
+ },
829
+ {
830
+ id str "comp_adjustment_method",
831
+ value int 2
832
+ },
833
+ {
834
+ id str "num_positives",
835
+ value int 19
836
+ },
837
+ {
838
+ id str "hsp_percent_coverage",
839
+ value real { 166290322580645, 10, -13 }
840
+ }
841
+ },
842
+ segs denseg {
843
+ dim 2,
844
+ numseg 3,
845
+ ids {
846
+ local str "Query_2",
847
+ local str "SI2.2.0_01610"
848
+ },
849
+ starts {
850
+ 33,
851
+ 48,
852
+ -1,
853
+ 68,
854
+ 53,
855
+ 70
856
+ },
857
+ lens {
858
+ 20,
859
+ 2,
860
+ 10
861
+ },
862
+ strands {
863
+ unknown,
864
+ unknown,
865
+ unknown,
866
+ unknown,
867
+ unknown,
868
+ unknown
869
+ }
870
+ }
871
+ },
872
+ {
873
+ type partial,
874
+ dim 2,
875
+ score {
876
+ {
877
+ id str "score",
878
+ value int 48
879
+ },
880
+ {
881
+ id str "e_value",
882
+ value real { 329843494497562, 10, -14 }
883
+ },
884
+ {
885
+ id str "bit_score",
886
+ value real { 23097811924077, 10, -12 }
887
+ },
888
+ {
889
+ id str "num_ident",
890
+ value int 14
891
+ },
892
+ {
893
+ id str "comp_adjustment_method",
894
+ value int 2
895
+ },
896
+ {
897
+ id str "num_positives",
898
+ value int 22
899
+ },
900
+ {
901
+ id str "hsp_percent_coverage",
902
+ value real { 246935483870968, 10, -13 }
903
+ }
904
+ },
905
+ segs denseg {
906
+ dim 2,
907
+ numseg 3,
908
+ ids {
909
+ local str "Query_2",
910
+ local str "SI2.2.0_11141"
911
+ },
912
+ starts {
913
+ 29,
914
+ 155,
915
+ 68,
916
+ -1,
917
+ 71,
918
+ 194
919
+ },
920
+ lens {
921
+ 39,
922
+ 3,
923
+ 3
924
+ },
925
+ strands {
926
+ unknown,
927
+ unknown,
928
+ unknown,
929
+ unknown,
930
+ unknown,
931
+ unknown
932
+ }
933
+ }
934
+ },
935
+ {
936
+ type partial,
937
+ dim 2,
938
+ score {
939
+ {
940
+ id str "score",
941
+ value int 48
942
+ },
943
+ {
944
+ id str "e_value",
945
+ value real { 364131923668093, 10, -14 }
946
+ },
947
+ {
948
+ id str "bit_score",
949
+ value real { 23097811924077, 10, -12 }
950
+ },
951
+ {
952
+ id str "num_ident",
953
+ value int 14
954
+ },
955
+ {
956
+ id str "comp_adjustment_method",
957
+ value int 2
958
+ },
959
+ {
960
+ id str "num_positives",
961
+ value int 25
962
+ },
963
+ {
964
+ id str "hsp_percent_coverage",
965
+ value real { 252311827956989, 10, -13 }
966
+ }
967
+ },
968
+ segs denseg {
969
+ dim 2,
970
+ numseg 3,
971
+ ids {
972
+ local str "Query_2",
973
+ local str "SI2.2.0_03352"
974
+ },
975
+ starts {
976
+ 41,
977
+ 165,
978
+ -1,
979
+ 177,
980
+ 53,
981
+ 184
982
+ },
983
+ lens {
984
+ 12,
985
+ 7,
986
+ 34
987
+ },
988
+ strands {
989
+ unknown,
990
+ unknown,
991
+ unknown,
992
+ unknown,
993
+ unknown,
994
+ unknown
995
+ }
996
+ }
997
+ },
998
+ {
999
+ type partial,
1000
+ dim 2,
1001
+ score {
1002
+ {
1003
+ id str "score",
1004
+ value int 47
1005
+ },
1006
+ {
1007
+ id str "e_value",
1008
+ value real { 423100051728546, 10, -14 }
1009
+ },
1010
+ {
1011
+ id str "bit_score",
1012
+ value real { 227126123481596, 10, -13 }
1013
+ },
1014
+ {
1015
+ id str "num_ident",
1016
+ value int 23
1017
+ },
1018
+ {
1019
+ id str "comp_adjustment_method",
1020
+ value int 2
1021
+ },
1022
+ {
1023
+ id str "num_positives",
1024
+ value int 35
1025
+ },
1026
+ {
1027
+ id str "hsp_percent_coverage",
1028
+ value real { 39747311827957, 10, -12 }
1029
+ }
1030
+ },
1031
+ segs denseg {
1032
+ dim 2,
1033
+ numseg 7,
1034
+ ids {
1035
+ local str "Query_2",
1036
+ local str "SI2.2.0_01590"
1037
+ },
1038
+ starts {
1039
+ 86,
1040
+ 69,
1041
+ 105,
1042
+ -1,
1043
+ 106,
1044
+ 88,
1045
+ -1,
1046
+ 90,
1047
+ 108,
1048
+ 97,
1049
+ 124,
1050
+ -1,
1051
+ 126,
1052
+ 113
1053
+ },
1054
+ lens {
1055
+ 19,
1056
+ 1,
1057
+ 2,
1058
+ 7,
1059
+ 16,
1060
+ 2,
1061
+ 33
1062
+ },
1063
+ strands {
1064
+ unknown,
1065
+ unknown,
1066
+ unknown,
1067
+ unknown,
1068
+ unknown,
1069
+ unknown,
1070
+ unknown,
1071
+ unknown,
1072
+ unknown,
1073
+ unknown,
1074
+ unknown,
1075
+ unknown,
1076
+ unknown,
1077
+ unknown
1078
+ }
1079
+ }
1080
+ },
1081
+ {
1082
+ type partial,
1083
+ dim 2,
1084
+ score {
1085
+ {
1086
+ id str "score",
1087
+ value int 45
1088
+ },
1089
+ {
1090
+ id str "e_value",
1091
+ value real { 921413657662188, 10, -14 }
1092
+ },
1093
+ {
1094
+ id str "bit_score",
1095
+ value real { 219422131963249, 10, -13 }
1096
+ },
1097
+ {
1098
+ id str "num_ident",
1099
+ value int 19
1100
+ },
1101
+ {
1102
+ id str "comp_adjustment_method",
1103
+ value int 2
1104
+ },
1105
+ {
1106
+ id str "num_positives",
1107
+ value int 33
1108
+ },
1109
+ {
1110
+ id str "hsp_percent_coverage",
1111
+ value real { 392096774193548, 10, -13 }
1112
+ }
1113
+ },
1114
+ segs denseg {
1115
+ dim 2,
1116
+ numseg 7,
1117
+ ids {
1118
+ local str "Query_2",
1119
+ local str "SI2.2.0_02329"
1120
+ },
1121
+ starts {
1122
+ 63,
1123
+ 200,
1124
+ 88,
1125
+ -1,
1126
+ 96,
1127
+ 225,
1128
+ 102,
1129
+ -1,
1130
+ 106,
1131
+ 231,
1132
+ -1,
1133
+ 252,
1134
+ 127,
1135
+ 253
1136
+ },
1137
+ lens {
1138
+ 25,
1139
+ 8,
1140
+ 6,
1141
+ 4,
1142
+ 21,
1143
+ 1,
1144
+ 8
1145
+ },
1146
+ strands {
1147
+ unknown,
1148
+ unknown,
1149
+ unknown,
1150
+ unknown,
1151
+ unknown,
1152
+ unknown,
1153
+ unknown,
1154
+ unknown,
1155
+ unknown,
1156
+ unknown,
1157
+ unknown,
1158
+ unknown,
1159
+ unknown,
1160
+ unknown
1161
+ }
1162
+ }
1163
+ }
1164
+ },
1165
+ masks {
1166
+ },
1167
+ ka-blocks {
1168
+ {
1169
+ lambda { 322429245874507, 10, -15 },
1170
+ k { 139801292049695, 10, -15 },
1171
+ h { 436862255107731, 10, -15 },
1172
+ gapped FALSE
1173
+ },
1174
+ {
1175
+ lambda { 267, 10, -3 },
1176
+ k { 41, 10, -3 },
1177
+ h { 14, 10, -2 },
1178
+ gapped TRUE
1179
+ }
1180
+ },
1181
+ search-stats {
1182
+ "Effective search space: 26094545",
1183
+ "Effective search space used: 26094545",
1184
+ "Length adjustment: 68"
1185
+ }
1186
+ }
1187
+ }