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