mspire 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. data/INSTALL +1 -0
  2. data/README +25 -0
  3. data/Rakefile +129 -40
  4. data/bin/{find_aa_freq.rb → aafreqs.rb} +2 -2
  5. data/bin/bioworks_to_pepxml.rb +1 -0
  6. data/bin/fasta_shaker.rb +1 -96
  7. data/bin/filter_and_validate.rb +5 -0
  8. data/bin/{mzxml_to_lmat.rb → ms_to_lmat.rb} +8 -7
  9. data/bin/prob_validate.rb +6 -0
  10. data/bin/raw_to_mzXML.rb +2 -2
  11. data/bin/srf_group.rb +1 -0
  12. data/bin/srf_to_sqt.rb +40 -0
  13. data/changelog.txt +68 -0
  14. data/lib/align/chams.rb +6 -6
  15. data/lib/align.rb +4 -3
  16. data/lib/bsearch.rb +120 -0
  17. data/lib/fasta.rb +318 -86
  18. data/lib/group_by.rb +10 -0
  19. data/lib/index_by.rb +11 -0
  20. data/lib/merge_deep.rb +21 -0
  21. data/lib/{spec → ms/converter}/mzxml.rb +77 -109
  22. data/lib/ms/gradient_program.rb +171 -0
  23. data/lib/ms/msrun.rb +209 -0
  24. data/lib/{spec/msrun.rb → ms/msrun_index.rb} +7 -40
  25. data/lib/ms/parser/mzdata/axml.rb +12 -0
  26. data/lib/ms/parser/mzdata/dom.rb +160 -0
  27. data/lib/ms/parser/mzdata/libxml.rb +7 -0
  28. data/lib/ms/parser/mzdata.rb +25 -0
  29. data/lib/ms/parser/mzxml/axml.rb +11 -0
  30. data/lib/ms/parser/mzxml/dom.rb +159 -0
  31. data/lib/ms/parser/mzxml/hpricot.rb +253 -0
  32. data/lib/ms/parser/mzxml/libxml.rb +15 -0
  33. data/lib/ms/parser/mzxml/regexp.rb +122 -0
  34. data/lib/ms/parser/mzxml/rexml.rb +72 -0
  35. data/lib/ms/parser/mzxml/xmlparser.rb +248 -0
  36. data/lib/ms/parser/mzxml.rb +175 -0
  37. data/lib/ms/parser.rb +108 -0
  38. data/lib/ms/precursor.rb +10 -0
  39. data/lib/ms/scan.rb +81 -0
  40. data/lib/ms/spectrum.rb +193 -0
  41. data/lib/ms.rb +10 -0
  42. data/lib/mspire.rb +4 -0
  43. data/lib/roc.rb +61 -1
  44. data/lib/sample_enzyme.rb +31 -8
  45. data/lib/scan_i.rb +21 -0
  46. data/lib/spec_id/aa_freqs.rb +7 -3
  47. data/lib/spec_id/bioworks.rb +20 -14
  48. data/lib/spec_id/digestor.rb +139 -0
  49. data/lib/spec_id/mass.rb +116 -0
  50. data/lib/spec_id/parser/proph.rb +236 -0
  51. data/lib/spec_id/precision/filter/cmdline.rb +209 -0
  52. data/lib/spec_id/precision/filter/interactive.rb +134 -0
  53. data/lib/spec_id/precision/filter/output.rb +147 -0
  54. data/lib/spec_id/precision/filter.rb +623 -0
  55. data/lib/spec_id/precision/output.rb +60 -0
  56. data/lib/spec_id/precision/prob/cmdline.rb +139 -0
  57. data/lib/spec_id/precision/prob/output.rb +88 -0
  58. data/lib/spec_id/precision/prob.rb +171 -0
  59. data/lib/spec_id/proph/pep_summary.rb +92 -0
  60. data/lib/spec_id/proph/prot_summary.rb +484 -0
  61. data/lib/spec_id/proph.rb +2 -466
  62. data/lib/spec_id/protein_summary.rb +2 -2
  63. data/lib/spec_id/sequest/params.rb +316 -0
  64. data/lib/spec_id/sequest/pepxml.rb +1513 -0
  65. data/lib/spec_id/sequest.rb +2 -1672
  66. data/lib/spec_id/srf.rb +445 -177
  67. data/lib/spec_id.rb +183 -95
  68. data/lib/spec_id_xml.rb +8 -10
  69. data/lib/transmem/phobius.rb +147 -0
  70. data/lib/transmem/toppred.rb +368 -0
  71. data/lib/transmem.rb +157 -0
  72. data/lib/validator/aa.rb +135 -0
  73. data/lib/validator/background.rb +73 -0
  74. data/lib/validator/bias.rb +95 -0
  75. data/lib/validator/cmdline.rb +260 -0
  76. data/lib/validator/decoy.rb +94 -0
  77. data/lib/validator/digestion_based.rb +69 -0
  78. data/lib/validator/probability.rb +48 -0
  79. data/lib/validator/prot_from_pep.rb +234 -0
  80. data/lib/validator/transmem.rb +272 -0
  81. data/lib/validator/true_pos.rb +46 -0
  82. data/lib/validator.rb +214 -0
  83. data/lib/xml.rb +38 -0
  84. data/lib/xml_style_parser.rb +105 -0
  85. data/lib/xmlparser_wrapper.rb +19 -0
  86. data/script/compile_and_plot_smriti_final.rb +97 -0
  87. data/script/extract_gradient_programs.rb +56 -0
  88. data/script/get_apex_values_rexml.rb +44 -0
  89. data/script/mzXML2timeIndex.rb +1 -1
  90. data/script/smriti_final_analysis.rb +103 -0
  91. data/script/toppred_to_yaml.rb +47 -0
  92. data/script/tpp_installer.rb +1 -1
  93. data/{test/tc_align.rb → specs/align_spec.rb} +21 -27
  94. data/{test/tc_bioworks_to_pepxml.rb → specs/bin/bioworks_to_pepxml_spec.rb} +25 -41
  95. data/specs/bin/fasta_shaker_spec.rb +259 -0
  96. data/specs/bin/filter_and_validate__multiple_vals_helper.yaml +202 -0
  97. data/specs/bin/filter_and_validate_spec.rb +124 -0
  98. data/specs/bin/ms_to_lmat_spec.rb +34 -0
  99. data/specs/bin/prob_validate_spec.rb +62 -0
  100. data/specs/bin/protein_summary_spec.rb +10 -0
  101. data/{test/tc_fasta.rb → specs/fasta_spec.rb} +354 -310
  102. data/specs/gi_spec.rb +22 -0
  103. data/specs/load_bin_path.rb +7 -0
  104. data/specs/merge_deep_spec.rb +13 -0
  105. data/specs/ms/gradient_program_spec.rb +77 -0
  106. data/specs/ms/msrun_spec.rb +455 -0
  107. data/specs/ms/parser_spec.rb +92 -0
  108. data/specs/ms/spectrum_spec.rb +89 -0
  109. data/specs/roc_spec.rb +251 -0
  110. data/specs/rspec_autotest.rb +149 -0
  111. data/specs/sample_enzyme_spec.rb +41 -0
  112. data/specs/spec_helper.rb +133 -0
  113. data/specs/spec_id/aa_freqs_spec.rb +52 -0
  114. data/{test/tc_bioworks.rb → specs/spec_id/bioworks_spec.rb} +56 -71
  115. data/specs/spec_id/digestor_spec.rb +75 -0
  116. data/specs/spec_id/precision/filter/cmdline_spec.rb +20 -0
  117. data/specs/spec_id/precision/filter/output_spec.rb +31 -0
  118. data/specs/spec_id/precision/filter_spec.rb +243 -0
  119. data/specs/spec_id/precision/prob_spec.rb +111 -0
  120. data/specs/spec_id/precision/prob_spec_helper.rb +0 -0
  121. data/specs/spec_id/proph/pep_summary_spec.rb +143 -0
  122. data/{test/tc_proph.rb → specs/spec_id/proph/prot_summary_spec.rb} +52 -32
  123. data/{test/tc_protein_summary.rb → specs/spec_id/protein_summary_spec.rb} +85 -0
  124. data/specs/spec_id/sequest/params_spec.rb +68 -0
  125. data/specs/spec_id/sequest/pepxml_spec.rb +452 -0
  126. data/specs/spec_id/sqt_spec.rb +138 -0
  127. data/specs/spec_id/srf_spec.rb +209 -0
  128. data/specs/spec_id/srf_spec_helper.rb +302 -0
  129. data/specs/spec_id_helper.rb +33 -0
  130. data/specs/spec_id_spec.rb +361 -0
  131. data/specs/spec_id_xml_spec.rb +33 -0
  132. data/specs/transmem/phobius_spec.rb +423 -0
  133. data/specs/transmem/toppred_spec.rb +297 -0
  134. data/specs/transmem_spec.rb +60 -0
  135. data/specs/transmem_spec_shared.rb +64 -0
  136. data/specs/validator/aa_spec.rb +107 -0
  137. data/specs/validator/background_spec.rb +51 -0
  138. data/specs/validator/bias_spec.rb +146 -0
  139. data/specs/validator/decoy_spec.rb +51 -0
  140. data/specs/validator/fasta_helper.rb +26 -0
  141. data/specs/validator/prot_from_pep_spec.rb +141 -0
  142. data/specs/validator/transmem_spec.rb +145 -0
  143. data/specs/validator/true_pos_spec.rb +58 -0
  144. data/specs/validator_helper.rb +33 -0
  145. data/specs/xml_spec.rb +12 -0
  146. data/test_files/000_pepxml18_small.xml +206 -0
  147. data/test_files/020a.mzXML.timeIndex +4710 -0
  148. data/test_files/4-03-03_mzXML/000.mzXML.timeIndex +3973 -0
  149. data/test_files/4-03-03_mzXML/020.mzXML.timeIndex +3872 -0
  150. data/test_files/4-03-03_small-prot.xml +321 -0
  151. data/test_files/4-03-03_small.xml +3876 -0
  152. data/test_files/7MIX_STD_110802_1.sequest_params_fragment.srf +0 -0
  153. data/test_files/bioworks-3.3_10prots.xml +5999 -0
  154. data/test_files/bioworks31.params +77 -0
  155. data/test_files/bioworks32.params +62 -0
  156. data/test_files/bioworks33.params +63 -0
  157. data/test_files/bioworks_single_run_small.xml +7237 -0
  158. data/test_files/bioworks_small.fasta +212 -0
  159. data/test_files/bioworks_small.params +63 -0
  160. data/test_files/bioworks_small.phobius +109 -0
  161. data/test_files/bioworks_small.toppred.out +2847 -0
  162. data/test_files/bioworks_small.xml +5610 -0
  163. data/test_files/bioworks_with_INV_small.xml +3753 -0
  164. data/test_files/bioworks_with_SHUFF_small.xml +2503 -0
  165. data/test_files/corrupted_900.srf +0 -0
  166. data/test_files/head_of_7MIX.srf +0 -0
  167. data/test_files/interact-opd1_mods_small-prot.xml +304 -0
  168. data/test_files/messups.fasta +297 -0
  169. data/test_files/opd1/000.my_answer.100lines.xml +101 -0
  170. data/test_files/opd1/000.tpp_1.2.3.first10.xml +115 -0
  171. data/test_files/opd1/000.tpp_2.9.2.first10.xml +126 -0
  172. data/test_files/opd1/000.v2.1.mzXML.timeIndex +3748 -0
  173. data/test_files/opd1/000_020-prot.png +0 -0
  174. data/test_files/opd1/000_020_3prots-prot.mod_initprob.xml +62 -0
  175. data/test_files/opd1/000_020_3prots-prot.xml +62 -0
  176. data/test_files/opd1/opd1_cat_inv_small-prot.xml +139 -0
  177. data/test_files/opd1/sequest.3.1.params +77 -0
  178. data/test_files/opd1/sequest.3.2.params +62 -0
  179. data/test_files/opd1/twenty_scans.mzXML +418 -0
  180. data/test_files/opd1/twenty_scans.v2.1.mzXML +382 -0
  181. data/test_files/opd1/twenty_scans_answ.lmat +0 -0
  182. data/test_files/opd1/twenty_scans_answ.lmata +9 -0
  183. data/test_files/opd1_020_beginning.RAW +0 -0
  184. data/test_files/opd1_2runs_2mods/interact-opd1_mods__small.xml +753 -0
  185. data/test_files/orbitrap_mzData/000_cut.xml +1920 -0
  186. data/test_files/pepproph_small.xml +4691 -0
  187. data/test_files/phobius.small.noheader.txt +50 -0
  188. data/test_files/phobius.small.small.txt +53 -0
  189. data/test_files/s01_anC1_ld020mM.key.txt +25 -0
  190. data/test_files/s01_anC1_ld020mM.meth +0 -0
  191. data/test_files/small.fasta +297 -0
  192. data/test_files/smallraw.RAW +0 -0
  193. data/test_files/tf_bioworks2excel.bioXML +14340 -0
  194. data/test_files/tf_bioworks2excel.txt.actual +1035 -0
  195. data/test_files/toppred.small.out +416 -0
  196. data/test_files/toppred.xml.out +318 -0
  197. data/test_files/validator_hits_separate/bias_bioworks_small_HS.fasta +7 -0
  198. data/test_files/validator_hits_separate/bioworks_small_HS.xml +5651 -0
  199. data/test_files/yeast_gly_small-prot.xml +265 -0
  200. data/test_files/yeast_gly_small.1.0_1.0_1.0.parentTimes +6 -0
  201. data/test_files/yeast_gly_small.xml +3807 -0
  202. data/test_files/yeast_gly_small2.parentTimes +6 -0
  203. metadata +273 -57
  204. data/bin/filter.rb +0 -6
  205. data/bin/precision.rb +0 -5
  206. data/lib/spec/mzdata/parser.rb +0 -108
  207. data/lib/spec/mzdata.rb +0 -48
  208. data/lib/spec/mzxml/parser.rb +0 -449
  209. data/lib/spec/scan.rb +0 -55
  210. data/lib/spec_id/filter.rb +0 -797
  211. data/lib/spec_id/precision.rb +0 -421
  212. data/lib/toppred.rb +0 -18
  213. data/script/filter-peps.rb +0 -164
  214. data/test/tc_aa_freqs.rb +0 -59
  215. data/test/tc_fasta_shaker.rb +0 -149
  216. data/test/tc_filter.rb +0 -203
  217. data/test/tc_filter_peps.rb +0 -46
  218. data/test/tc_gi.rb +0 -17
  219. data/test/tc_id_class_anal.rb +0 -70
  220. data/test/tc_id_precision.rb +0 -89
  221. data/test/tc_msrun.rb +0 -88
  222. data/test/tc_mzxml.rb +0 -88
  223. data/test/tc_mzxml_to_lmat.rb +0 -36
  224. data/test/tc_peptide_parent_times.rb +0 -27
  225. data/test/tc_precision.rb +0 -60
  226. data/test/tc_roc.rb +0 -166
  227. data/test/tc_sample_enzyme.rb +0 -32
  228. data/test/tc_scan.rb +0 -26
  229. data/test/tc_sequest.rb +0 -336
  230. data/test/tc_spec.rb +0 -78
  231. data/test/tc_spec_id.rb +0 -201
  232. data/test/tc_spec_id_xml.rb +0 -36
  233. data/test/tc_srf.rb +0 -262
@@ -0,0 +1,297 @@
1
+ require File.expand_path( File.dirname(__FILE__) + '/../spec_helper' )
2
+
3
+ # contains shared behavior that we need.
4
+ require File.expand_path( File.dirname(__FILE__) + '/../transmem_spec_shared' )
5
+
6
+ require 'transmem/toppred'
7
+
8
+ describe TopPred::Index do
9
+ before(:all) do
10
+ @toppred_file = Tfiles + '/toppred.small.out'
11
+ @obj = TopPred::Index.new(@toppred_file)
12
+ @test_hash = {"YAL001C"=>0, "YAL011W"=>0, "YAL009W"=>2, "YAL010C"=>1, "YAL008W"=>3, "YAL007C"=>2, "YAL004W"=>0, "YAL005C"=>1, "YAL003W"=>0, "YAL002W"=>3, "YAL013W"=>0, "YAL014C"=>1, "YAL012W"=>1}
13
+ @ref_to_key= { 'gi|16127905|ref|NP_414542.1| thr operon leader peptide [Escherichia coli K12]' => 'gi_16127905_ref_NP_414542_1_',
14
+ 'SWN:PWP1_HUMAN PERIODIC TRYPTOPHAN PROTEIN 1 HOMOLOG' => 'SWN_PWP1_HUMAN',
15
+ 'MY:B|/-"[super]"duper!@#$%^&*(wil) and other stuff' => 'MY_B_____super__duper_________wil_' }
16
+ end
17
+ it_should_behave_like 'a transmem index'
18
+ end
19
+
20
+ describe "a toppred parser", :shared => true do
21
+ it 'parses a toppred file into a hash structure' do
22
+ @file_to_hash.should exist
23
+ hash = @class.default_index(@file_to_hash)
24
+ hash.should == @structure_to_create
25
+ end
26
+ end
27
+
28
+ describe "TopPred parsing a text file" do
29
+ before(:all) do
30
+ @class = TopPred
31
+ @file_to_hash = Tfiles + '/toppred.small.out'
32
+ @structure_to_create = YAML.load(TopPredSupportingFile::MY_YAML1)
33
+ @structure_to_create.each {|id,hash| string_to_symbol(hash) }
34
+ end
35
+ it_should_behave_like 'a toppred parser'
36
+ end
37
+
38
+ describe "TopPred parsing an xml file" do
39
+ before(:all) do
40
+ @class = TopPred
41
+ @file_to_hash = Tfiles + '/toppred.xml.out'
42
+ @structure_to_create = YAML.load(TopPredSupportingFile::MY_YAML2)
43
+ @structure_to_create.each {|id,hash| string_to_symbol(hash) }
44
+ end
45
+ it_should_behave_like 'a toppred parser'
46
+ end
47
+
48
+ describe TopPred::Index do
49
+ before(:all) do
50
+ toppred_file = Tfiles + '/toppred.xml.out'
51
+ @obj = TopPred::Index.new(toppred_file)
52
+ @tm_test = {
53
+ :mykey => 'SWN_K1CL_HUMAN',
54
+ :seqs => %w(GFG VGSGYGGSAFGFG GGGSL),
55
+ :exps =>
56
+ {
57
+ :number => [2.0, 7.0, 3.0],
58
+ :fraction => [2.0/3, 7.0/13, 3.0/5 ],
59
+ }
60
+ }
61
+ end
62
+ it_should_behave_like "a calculator of transmembrane overlap"
63
+ end
64
+
65
+
66
+ module TopPredSupportingFile
67
+ MY_YAML1 = <<END
68
+ ---
69
+ YAL011W:
70
+ aaseq: MPAVLRTRSKESSIEQKPASRTRTRSRRGKRGRDDDDDDDDEESDDAYDEVGNDYDEYASRAKLATNRPFEIVAGLPASVELPNYNSSLTHPQSIKNSGVLYDSLVSSRRTWVQGEMFELYWRRPKKIVSESTPAATESPTSGTIPLIRDKMQKMCDCVMSGGPHTFKVRLFILKNDKIEQKWQDEQELKKKEKELKRKNDAEAKRLRMEERKRQQMQKKIAKEQKLQLQKENKAKQKLEQEALKLKRKEEMKKLKEQNKNKQGSPSSSMHDPRMIMNLNLMAQEDPKLNTLMETVAKGLANNSQLEEFKKFIEIAKKRSLEENPVNKRPSVTTTRPAPPSKAKDVAEDHRLNSITLVKSSKTAATEPEPKKADDENAEKQQSKEAKTTAESTQVDVKKEEEDVKEKGVKSEDTQKKEDNQVVPKRKRRKNAIKEDKDMQLTAFQQKYVQGAEIILEYLEFTHSRYYLPKKSVVEFLEDTDEIIISWIVIHNSKEIEKFKTKKIKAKLKADQKLNKEDAKPGSDVEKEVSFNPLFEADCPTPLYTPMTMKLSGIHKRFNQIIRNSVSPMEEVVKEMEKILQIGTRLSGYNLWYQLDGYDDEALSESLRFELNEWEHAMRSRRHKR
71
+ num_found: 0
72
+ YAL001C:
73
+ aaseq: MVLTIYPDELVQIVSDKIASNKGKITLNQLWDISGKYFDLSDKKVKQFVLSCVILKKDIEVYCDGAITTKNVTDIIGDANHSYSVGITEDSLWTLLTGYTKKESTIGNSAFELLLEVAKSGEKGINTMDLAQVTGQDPRSVTGRIKKINHLLTSSQLIYKGHVVKQLKLKKFSHDGVDSNPYINIRDHLATIVEVVKRSKNGIRQIIDLKRELKFDKEKRLSKAFIAAIAWLDEKEYLKKVLVVSPKNPAIKIRCVKYVKDIPDSKGSPSFEYDSNSADEDSVSDSKAAFEDEDLVEGLDNFNATDLLQNQGLVMEEKEDAVKNEVLLNRFYPLQNQTYDIADKSGLKGISTMDVVNRITGKEFQRAFTKSSEYYLESVDKQKENTGGYRLFRIYDFEGKKKFFRLFTAQNFQKLTNAEDEISVPKGFDELGKSRTDLKTLNEDNFVALNNTVRFTTDSDGQDIFFWHGELKIPPNSKKTPNKNKRKRQVKNSTNASVAGNISNPKRIKLEQHVSTAQEPKSAEDSPSSNGGTVVKGKVVNFGGFSARSLRSLQRQRAILKVMNTIGGVAYLREQFYESVSKYMGSTTTLDKKTVRGDVDLMVESEKLGARTEPVSGRKIIFLPTVGEDAIQRYILKEKDSKKATFTDVIHDTEIYFFDQTEKNRFHRGKKSVERIRKFQNRQKNAKIKASDDAISKKSTSVNVSDGKIKRRDKKVSAGRTTVVVENTKEDKTVYHAGTKDGVQALIRAVVVTKSIKNEIMWDKITKLFPNNSLDNLKKKWTARRVRMGHSGWRAYVDKWKKMLVLAIKSEKISLRDVEELDLIKLLDIWTSFDEKEIKRPLFLYKNYEENRKKFTLVRDDTLTHSGNDLAMSSMIQREISSLKKTYTRKISASTKDLSKSQSDDYIRTVIRSILIESPSTTRNEIEALKNVGNESIDNVIMDMAKEKQIYLHGSKLECTDTLPDILENRGNYKDFGVAFQYRCKVNELLEAGNAIVINQEPSDISSWVLIDLISGELLNMDVIPMVRNVRPLTYTSRRFEIRTLTPPLIIYANSQTKLNTARKSAVKVPLGKPFSRLWVNGSGSIRPNIWKQVVTMVVNEIIFHPGITLSRLQSRCREVLSLHEISEICKWLLERQVLITTDFDGYWVNHNWYSIYEST
74
+ num_found: 0
75
+ YAL010C:
76
+ num_putative_transmembrane_segments: 1
77
+ aaseq: MLPYMDQVLRAFYQSTHWSTQNSYEDITATSRTLLDFRIPSAIHLQISNKSTPNTFNSLDFSTRSRINGSLSYLYSDAQQLEKFMRNSTDIPLQDATETYRQLQPNLNFSVSSANTLSSDNTTVDNDKKLLHDSKFVKKSLYYGRMYYPSSDLEAMIIKRLSPQTQFMLKGVSSFKESLNVLTCYFQRDSHRNLQEWIFSTSDLLCGYRVLHNFLTTPSKFNTSLYNNSSLSLGAEFWLGLVSLSPGCSTTLRYYTHSTNTGRPLTLTLSWQPLFGHISSTYSAKTGTNSTFCAKYDFNLYSIESNLSFGCEFWQKKHHLLETNKNNNDKLEPISDELVDINPNSRATKLLHENVPDLNSAVNDIPSTLDIPVHKQKLLNDLTYAFSSSLRKIDEERSTIEKFDNKINSSIFTSVWKLSTSLRDKTLKLLWEGKWRGFLISAGTELVFTRGFQESLSDDEKNDNAISISATDTENGNIPVFPAKFGIQFQYST
78
+ best_structure_probability: 1.0
79
+ transmembrane_segments:
80
+ - aaseq: SLGAEFWLGLVSLSPGCSTTL
81
+ stop: 252
82
+ start: 232
83
+ probability: 1.0
84
+ num_certain_transmembrane_segments: 1
85
+ num_found: 2
86
+ YAL009W:
87
+ num_putative_transmembrane_segments: 0
88
+ aaseq: MEPESIGDVGNHAQDDSASIVSGPRRRSTSKTSSAKNIRNSSNISPASMIFRNLLILEDDLRRQAHEQKILKWQFTLFLASMAGVGAFTFYELYFTSDYVKGLHRVILQFTLSFISITVVLFHISGQYRRTIVIPRRFFTSTNKGIRQFNVKLVKVQSTWDEKYTDSVRFVSRTIAYCNIYCLKKFLWLKDDNAIVKFWKSVTIQSQPRIGAVDVKLVLNPRAFSAEIREGWEIYRDEFWAREGARRRKQAHELRPKSE
89
+ best_structure_probability: 1.0
90
+ transmembrane_segments:
91
+ - aaseq: WQFTLFLASMAGVGAFTFYEL
92
+ stop: 93
93
+ start: 73
94
+ probability: 1.0
95
+ - aaseq: VILQFTLSFISITVVLFHISG
96
+ stop: 126
97
+ start: 106
98
+ probability: 1.0
99
+ num_certain_transmembrane_segments: 2
100
+ num_found: 2
101
+ YAL008W:
102
+ num_putative_transmembrane_segments: 0
103
+ aaseq: MTLAFNMQRLVFRNLNVGKRMFKNVPLWRFNVANKLGKPLTRSVGLGGAGIVAGGFYLMNRQPSKLIFNDSLGAAVKQQGPLEPTVGNSTAITEERRNKISSHKQMFLGSLFGVVLGVTVAKISILFMYVGITSMLLCEWLRYKGWIRINLKNIKSVIVLKDVDLKKLLIDGLLGTEYMGFKVFFTLSFVLASLNANK
104
+ best_structure_probability: 1.0
105
+ transmembrane_segments:
106
+ - aaseq: LTRSVGLGGAGIVAGGFYLMN
107
+ stop: 60
108
+ start: 40
109
+ probability: 1.0
110
+ - aaseq: AKISILFMYVGITSMLLCEWL
111
+ stop: 141
112
+ start: 121
113
+ probability: 1.0
114
+ - aaseq: TEYMGFKVFFTLSFVLASLNA
115
+ stop: 196
116
+ start: 176
117
+ probability: 1.0
118
+ num_certain_transmembrane_segments: 3
119
+ num_found: 3
120
+ YAL007C:
121
+ num_putative_transmembrane_segments: 0
122
+ aaseq: MIKSTIALPSFFIVLILALVNSVAASSSYAPVAISLPAFSKECLYYDMVTEDDSLAVGYQVLTGGNFEIDFDITAPDGSVITSEKQKKYSDFLLKSFGVGKYTFCFSNNYGTALKKVEITLEKEKTLTDEHEADVNNDDIIANNAVEEIDRNLNKITKTLNYLRAREWRNMSTVNSTESRLTWLSILIIIIIAVISIAQVLLIQFLFTGRQKNYV
123
+ best_structure_probability: 1.0
124
+ transmembrane_segments:
125
+ - aaseq: STIALPSFFIVLILALVNSVA
126
+ stop: 24
127
+ start: 4
128
+ probability: 1.0
129
+ - aaseq: LTWLSILIIIIIAVISIAQVL
130
+ stop: 201
131
+ start: 181
132
+ probability: 1.0
133
+ num_certain_transmembrane_segments: 2
134
+ num_found: 2
135
+ YAL005C:
136
+ num_putative_transmembrane_segments: 1
137
+ aaseq: MSKAVGIDLGTTYSCVAHFANDRVDIIANDQGNRTTPSFVAFTDTERLIGDAAKNQAAMNPSNTVFDAKRLIGRNFNDPEVQADMKHFPFKLIDVDGKPQIQVEFKGETKNFTPEQISSMVLGKMKETAESYLGAKVNDAVVTVPAYFNDSQRQATKDAGTIAGLNVLRIINEPTAAAIAYGLDKKGKEEHVLIFDLGGGTFDVSLLFIEDGIFEVKATAGDTHLGGEDFDNRLVNHFIQEFKRKNKKDLSTNQRALRRLRTACERAKRTLSSSAQTSVEIDSLFEGIDFYTSITRARFEELCADLFRSTLDPVEKVLRDAKLDKSQVDEIVLVGGSTRIPKVQKLVTDYFNGKEPNRSINPDEAVAYGAAVQAAILTGDESSKTQDLLLLDVAPLSLGIETAGGVMTKLIPRNSTISTKKFEIFSTYADNQPGVLIQVFEGERAKTKDNNLLGKFELSGIPPAPRGVPQIEVTFDVDSNGILNVSAVEKGTGKSNKITITNDKGRLSKEDIEKMVAEAEKFKEEDEKESQRIASKNQLESIAYSLKNTISEAGDKLEQADKDTVTKKAEETISWLDSNTTASKEEFDDKLKELQDIANPIMSKLYQAGGAPGGAAGGAPGGFPGGAPPAPEAEGPTVEEVD
138
+ best_structure_probability: 1.0
139
+ transmembrane_segments:
140
+ - aaseq: AGGAPGGAAGGAPGGFPGGAP
141
+ stop: 628
142
+ start: 608
143
+ probability: 1.0
144
+ num_certain_transmembrane_segments: 1
145
+ num_found: 2
146
+ YAL004W:
147
+ num_putative_transmembrane_segments: 1
148
+ aaseq: MGVTSGGLNFKDTVFNEQQRDIESTTTQVENQDVFFLTLLVQTVSNGSGGRFVNNTQDIQTSNGTSILGSLSLRIVEVSWDSDDSVIDLGSQVRFGSFLHLTQDHGGDLFWGKVLGFTLKFNLNLRLTVNIDQLEWEVLHVSLHFWVVEVSTDQTLSVENGIRRIHSSLILSSITNQSFSVSESDKRWSGSVTLIVGNNVHTIISKVSNTRVCCT
149
+ best_structure_probability: 0.06
150
+ transmembrane_segments:
151
+ - aaseq: QDVFFLTLLVQTVSNGSGGRF
152
+ stop: 52
153
+ start: 32
154
+ probability: 0.06
155
+ num_certain_transmembrane_segments: 0
156
+ num_found: 1
157
+ YAL003W:
158
+ aaseq: MASTDFSKIETLKQLNASLADKSYIEGTAVSQADVTVFKAFQSAYPEFSRWFNHIASKADEFDSFPAASAAAAEEEEDDDVDLFGSDDEEADAEAEKLKAERIAAYNAKKAAKPAKPAAKSIVTLDVKPWDDETNLEEMVANVKAIEMEGLTWGAHQFIPIGFGIKKLQINCVVEDDKVSLDDLQQSIEEDEDHVQSTDIAAMQKL
159
+ num_found: 0
160
+ YAL014C:
161
+ num_putative_transmembrane_segments: 0
162
+ aaseq: MDVLKLGYELDQLSDLVEERTRLVSVLKLAPTSNDNVTLKRQLGSILELLQKCAPNDELISRYNTILDKIPDTAVDKELYRFQQQVARNTDEVSKESLKKVRFKNDDELTVMYKDDDEQDEESPLPSTHTPYKDEPLQSQLQSQSQPQPPQPMVSNQELFINQQQQLLEQDSHLGALSQSIGRTHDISLDLNNEIVSQNDSLLVDLENLIDNNGRNLNRASRSMHGFNNSRFKDNGNCVIILVLIVVLLLLLLVL
163
+ best_structure_probability: 1.0
164
+ transmembrane_segments:
165
+ - aaseq: NGNCVIILVLIVVLLLLLLVL
166
+ stop: 255
167
+ start: 235
168
+ probability: 1.0
169
+ num_certain_transmembrane_segments: 1
170
+ num_found: 1
171
+ YAL013W:
172
+ num_putative_transmembrane_segments: 1
173
+ aaseq: MSQQTPQESEQTTAKEQDLDQESVLSNIDFNTDLNHNLNLSEYCISSDAGTEKMDSDEEKSLANLPELKYAPKLSSLVKQETLTESLKRPHEDEKEAIDEAKKMKVPGENEDESKEEEKSQELEEAIDSKEKSTDARDEQGDEGDNEEENNEEDNENENEHTAPPALVMPSPIEMEEQRMTALKEITDIEYKFAQLRQKLYDNQLVRLQTELQMCLEGSHPELQVYYSKIAAIRDYKLHRAYQRQKYELSCINTETIATRTFIHQDFHKKVTDLRARLLNRTTQTWYDINKERRDMDIVIPDVNYHVPIKLDNKTLSCITGYASAAQLCYPGEPVAEDLACESIEYRYRANPVDKLEVIVDRMRLNNEISDLEGLRKYFHSFPGAPELNPLRDSEINDDFHQWAQCDRHTGPHTTSFCYS
174
+ best_structure_probability: 0.08
175
+ transmembrane_segments:
176
+ - aaseq: KTLSCITGYASAAQLCYPGEP
177
+ stop: 334
178
+ start: 314
179
+ probability: 0.08
180
+ num_certain_transmembrane_segments: 0
181
+ num_found: 1
182
+ YAL002W:
183
+ num_putative_transmembrane_segments: 2
184
+ aaseq: MEQNGLDHDSRSSIDTTINDTQKTFLEFRSYTQLSEKLASSSSYTAPPLNEDGPKGVASAVSQGSESVVSWTTLTHVYSILGAYGGPTCLYPTATYFLMGTSKGCVLIFNYNEHLQTILVPTLSEDPSIHSIRSPVKSIVICSDGTHVAASYETGNICIWNLNVGYRVKPTSEPTNGMTPTPALPAVLHIDDHVNKEITGLDFFGARHTALIVSDRTGKVSLYNGYRRGFWQLVYNSKKILDVNSSKEKLIRSKLSPLISREKISTNLLSVLTTTHFALILLSPHVSLMFQETVEPSVQNSLVVNSSISWTQNCSRVAYSVNNKISVISISSSDFNVQSASHSPEFAESILSIQWIDQLLLGVLTISHQFLVLHPQHDFKILLRLDFLIHDLMIPPNKYFVISRRSFYLLTNYSFKIGKFVSWSDITLRHILKGDYLGALEFIESLLQPYCPLANLLKLDNNTEERTKQLMEPFYNLSLAALRFLIKKDNADYNRVYQLLMVVVRVLQQSSKKLDSIPSLDVFLEQGLEFFELKDNAVYFEVVANIVAQGSVTSISPVLFRSIIDYYAKEENLKVIEDLIIMLNPTTLDVDLAVKLCQKYNLFDLLIYIWNKIFDDYQTPVVDLIYRISNQSEKCVIFNGPQVPPETTIFDYVTYILTGRQYPQNLSISPSDKCSKIQRELSAFIFSGFSIKWPSNSNHKLYICENPEEEPAFPYFHLLLKSNPSRFLAMLNEVFEASLFNDDNDMVASVGEAELVSRQYVIDLLLDAMKDTGNSDNIRVLVAIFIATSISKYPQFIKVSNQALDCVVNTICSSRVQGIYEISQIALESLLPYYHSRTTENFILELKEKNFNKVLFHIYKSENKYASALSLILETKDIEKEYNTDIVSITDYILKKCPPGSLECGKVTEVIETNFDLLLSRIGIEKCVTIFSDFDYNLHQEILEVKNEETQQKYLDKLFSTPNINNKVDKRLRNLHIELNCKYKSKREMILWLNGTVLSNAESLQILDLLNQDSNFEAAAIIHERLESFNLAVRDLLSFIEQCLNEGKTNISTLLESLRRAFDDCNSAGTEKKSCWILLITFLITLYGKYPSHDERKDLCNKLLQEAFLGLVRSKSSSQKDSGGEFWEIMSSVLEHQDVILMKVQDLKQLLLNVFNTYKLERSLSELIQKIIEDSSQDLVQQYRKFLSEGWSIHTDDCEICGKKIWGAGLDPLLFLAWENVQRHQDMISVDLKTPLVIFKCHHGFHQTCLENLAQKPDEYSCLICQTESNPKIV
185
+ best_structure_probability: 1.0
186
+ transmembrane_segments:
187
+ - aaseq: GAYGGPTCLYPTATYFLMGTS
188
+ stop: 102
189
+ start: 82
190
+ probability: 1.0
191
+ - aaseq: TNLLSVLTTTHFALILLSPHV
192
+ stop: 286
193
+ start: 266
194
+ probability: 1.0
195
+ - aaseq: KKSCWILLITFLITLYGKYPS
196
+ stop: 1092
197
+ start: 1072
198
+ probability: 1.0
199
+ num_certain_transmembrane_segments: 3
200
+ num_found: 5
201
+ YAL012W:
202
+ num_putative_transmembrane_segments: 0
203
+ aaseq: MTLQESDKFATKAIHAGEHVDVHGSVIEPISLSTTFKQSSPANPIGTYEYSRSQNPNRENLERAVAALENAQYGLAFSSGSATTATILQSLPQGSHAVSIGDVYGGTHRYFTKVANAHGVETSFTNDLLNDLPQLIKENTKLVWIETPTNPTLKVTDIQKVADLIKKHAAGQDVILVVDNTFLSPYISNPLNFGADIVVHSATKYINGHSDVVLGVLATNNKPLYERLQFLQNAIGAIPSPFDAWLTHRGLKTLHLRVRQAALSANKIAEFLAADKENVVAVNYPGLKTHPNYDVVLKQHRDALGGGMISFRIKGGAEAASKFASSTRLFTLAESLGGIESLLEVPAVMTHGGIPKEAREASGVFDDLVRISVGIEDTDDLLEDIKQALKQATN
204
+ best_structure_probability: 1.0
205
+ transmembrane_segments:
206
+ - aaseq: QYGLAFSSGSATTATILQSLP
207
+ stop: 92
208
+ start: 72
209
+ probability: 1.0
210
+ num_certain_transmembrane_segments: 1
211
+ num_found: 1
212
+ END
213
+
214
+ MY_YAML2 = <<END_YAML2
215
+ ---
216
+ SWN_SM33_HUMAN:
217
+ aaseq: MSDQEAKPSTEDLGDKKEGEYIKLKVIGQDSSEIHFKVKMTTHLKKLKESYCQRQGVPMNSLRFLFEGQRIADNHTPKELGMEEEDVIEVYQEQTGGHSTV
218
+ num_found: 0
219
+ SWN_UBP3_HUMAN:
220
+ num_putative_transmembrane_segments: 1
221
+ transmembrane_segments:
222
+ - aaseq: TMPGYGGAASAGASVFGASGL
223
+ stop: 724
224
+ start: 704
225
+ probability: 21.0
226
+ - aaseq: YELFAFISHMGTSTMSGHYIC
227
+ stop: 826
228
+ start: 806
229
+ probability: 21.0
230
+ aaseq: MQRRGALFGMPGGSGGRKMAAGDIGELLVPHMPTIRVPRSGDRVYKNECAFSYDSPNSEGGLYVCMNTFLAFGREHVERHFRKTGQSVYMHLKRHAREKVRGASGGALPKRRNSKIFLDLDTDDDLNSDDYEYEDEAKLVIFPDHYEIALPNIEELPALVTIACDAVLSSKSPYRKQDPDTWENELPVSKYANNLTQLDNGVRIPPSGWKCARCDLRENLWLNLTDGSVLCGKWFFDSSGGNGHALEHYRDMGYPLAVKLGTITPDGADVYSFQEEEPVLDPHLAKHLAHFGIDMLHMHGTENGLQDNDIKLRVSEWEVIQESGTKLKPMYGPGYTGLKNLGNSCYLSSVMQAIFSIPEFQRAYVGNLPRIFDYSPLDPTQDFNTQMTKLGHGLLSGQYSKPPVKSELIEQVMKEEHKPQQNGISPRMFKAFVSKSHPEFSSNRQQDAQEFFLHLVNLVERNRIGSENPSDVFRFLVEERIQCCQTRKVRYTERVDYLMQLPVAMEAATNKDELIAYELTRREAEANRRPLPELVRAKIPFSACLQAFSEPENVDDFWSSALQAKSAGVKTSRFASFPEYLVVQIKKFTFGLDWVPKKFDVSIDMPDLLDINHLRARGLQPGEEELPDISPPIVIPDDSKDRLMNQLIDPSDIDESSVMQLAEMGFPLEACRKAVYFTGNMGAEVAFNWIIVHMEEPDFAEPLTMPGYGGAASAGASVFGASGLDNQPPEEIVAIITSMGFQRNQAIQALRATNNNLERALDWIFSHPEFEEDSDFVIEMENNANANIISEAKPEGPRVKDGSGTYELFAFISHMGTSTMSGHYICHIKKEGRWVIYNDHKVCASERPPKDLGYMYFYRRIPS
231
+ num_certain_transmembrane_segments: 2
232
+ num_found: 3
233
+ SWN_UBPN_HUMAN:
234
+ num_putative_transmembrane_segments: 3
235
+ transmembrane_segments:
236
+ - aaseq: PSSTSSASALYGQPLLLSVPK
237
+ stop: 556
238
+ start: 536
239
+ probability: 21.0
240
+ aaseq: MYNVGEHNLFPGPIDNSGLFSDPESQTLKEHLIDELDYVLVPTEAWNKLLNWYGCVEGQQPIVRKVVEHGLFVKHCKVEVYLLELKLCENSDPTNVLSCHFSKADTIATIEKEMRKLFNIPAERETRLWNKYMSNTYEQLSKLDNTVQDAGLYQGQVLVIEPQNEDGTWPRQTLQSKSSTAPSRNFTTSPKSSASPYSSVSASLIANGDSTSTCGMHSSGVSRGGSGFSASYNCQEPPSSHIQPGLCGLGNLGNTCFMNSALQCLSNTHPLTDYFLKDEYEAEINRDNPLGMKGEIAEAYAELIKQMWSGRDAHVAPWMFKTQVGRFAPQFSGYQQQDSQELLAFPSRWIHEDLNRVKKKPYLELKDANGRPDAVVAKEAWENHRLRNDSVIVDTFHGLFKSTLVCPECAKVSVTFDPFCYLTLPLPLKKDRVMEVFLVPADPHCRPTQYRVTVPLMGAVSDLCEALSRLSGIAAENMVVADVYNHRFHKIFQMDEGLNHIMPRDDIFVYEVCSTSVDGSECVTLPVYFRERKSRPSSTSSASALYGQPLLLSVPKHKLTLESLYQAVCDRISRYVKQPLPDEFGSSPLEPGACNGSRNSCEGEDEEEMEHQEEGKEQLSETEGSGEDEPGNDPSETTQKKIKGQPCPKRLFTFSLVNSYGTADINSLAADGKLLKLNSRSTLAMDWDRETRRLYYDEQESEAYEKHVSMLQPQKKKKTTVALRDCIELFTTMETLGEHDPWYCPNCKKHQQATKKFDLWSLPKILVVHLKRFSYNRYWRDKLDTVVEFPIRGLNMSEFVCNLSARPYVYDLIAVSNHYGAMGVGHYTAYAKNKLNGKWYYFDDSNVSWPLRIR
241
+ num_certain_transmembrane_segments: 0
242
+ num_found: 3
243
+ SWN_PWP1_HUMAN:
244
+ num_putative_transmembrane_segments: 0
245
+ transmembrane_segments:
246
+ - aaseq: MGVLFCSSCCPDLPFIYAFGG
247
+ stop: 450
248
+ start: 430
249
+ probability: 21.0
250
+ aaseq: MNRSRQVTCVAWVRCGVAKETPDKVELSKEEVKRLIAEAKEKLQEEGGGSDEEETGSPSEDGMQSARTQARPREPLEDGDPEDDRTLDDDELAEYDLDKYDEEGDPDAETLGESLLGLTVYGSNDQDPYVTLKDTEQYEREDFLIKPSDNLIVCGRAEQDQCNLEVHVYNQEEDSFYVHHDILLSAYPLSVEWLNFDPSPDDSTGNYIAVGNMTPVIEVWDLDIVDSLEPVFTLGSKLSKKKKKKGKKSSSAEGHTDAVLDLSWNKLIRNVLASASADNTVILWDMSLGKPAASLAVHTDKVQTLQFHPFEAQTLISGSYDKSVALYDCRSPDESHRMWRFSGQIERVTWNHFSPCHFLASTDDGFVYNLDARSDKPIFTLNAHNDEISGLDLSSQIKGCLVTASADKYVKIWDILGDRPSLVHSRDMKMGVLFCSSCCPDLPFIYAFGGQKEGLRVWDISTVSSVNEAFGRRERLVLGSARNSSISGPFGSRSSDTPMES
251
+ num_certain_transmembrane_segments: 1
252
+ num_found: 1
253
+ SW_FGF7_HUMAN:
254
+ num_putative_transmembrane_segments: 0
255
+ transmembrane_segments:
256
+ - aaseq: RSCFHIICLVGTISLACNDMT
257
+ stop: 36
258
+ start: 16
259
+ probability: 21.0
260
+ aaseq: MHKWILTWILPTLLYRSCFHIICLVGTISLACNDMTPEQMATNVNCSSPERHTRSYDYMEGGDIRVRRLFCRTQWYLRIDKRGKVKGTQEMKNNYNIMEIRTVAVGIVAIKGVESEFYLAMNKEGKLYAKKECNEDCNFKELILENHYNTYASAKWTHNGGEMFVALNQKGIPVRGKKTKKEQKTAHFLPMAIT
261
+ num_certain_transmembrane_segments: 1
262
+ num_found: 1
263
+ SWN_SM31_HUMAN:
264
+ aaseq: MSEEKPKEGVKTENDHINLKVAGQDGSVVQFKIKRHTSLSKLMKAYCERQGLSMRQIRFRFDGQPINETDTPAQLRMEDEDTIDVFQQQTGGVPESSLAGHSF
265
+ num_found: 0
266
+ SWN_UFD1_HUMAN:
267
+ aaseq: MFSFNMFDHPIPRVFQNRFSTQYRCFSVSMLAWPNDRSDVEKGGKIIMPPSALDQLSRLNITYPMLFKLTNKNSDRMTHCGVLEFVADEGICYLPHWMMQNLLLEEDGLVQLETVNLQVATYSKSKFCYLPHWMMQNLLLEEGGLVQVESVNLQVATYSKFQPQSADFLDITNPKAVLENALRNFACLTTGDVIAINYNEKIYELRVMETKPDKAVSIHECDMNVDFDAPLGYKEPERQVQHEESTEGEADHSGYAGELGFRAFSGSGNRLDGKKKGVEPSPSPIKPGDIKRGIPNYEFKLGKITFIRNSRPLVKKVEEDEAGGRFVAFSGEGQSLRKKGRKP
268
+ num_found: 0
269
+ SWN_UBCE_HUMAN:
270
+ aaseq: MNSNVENLPPHIIRLVYKEVTTLTADPPDGIKVFPNEEDLTDLQVTIEGPEGTPYAGGLFRMKLLLGKDFPASPPKGYFLTKIFHPNVGANGEICVNVLKRDWTAELGIRHVLLTIKCLLIHPNPESALNEEAGRLLLENYEEYAARARLLTEIHGGAGGPSGRAEAGRALASGTEASSTDPGAPGGPGGAEGPMAKKHAGERDKKLAAKKKTDKKRALRALRRL
271
+ num_found: 0
272
+ SWN_K1CL_HUMAN:
273
+ num_putative_transmembrane_segments: 0
274
+ transmembrane_segments:
275
+ - aaseq: GSAFGFGASCGGGFSAASMFG
276
+ stop: 64
277
+ start: 44
278
+ probability: 21.0
279
+ - aaseq: ALGGGSFGGLGMGFGGSPGGG
280
+ stop: 108
281
+ start: 88
282
+ probability: 21.0
283
+ aaseq: MDLSNNTMSLSVRTPGLSRRLSSQSVIGRPRGMSASSVGSGYGGSAFGFGASCGGGFSAASMFGSSSGFGGGSGSSMAGGLGAGYGRALGGGSFGGLGMGFGGSPGGGSLGILSGNDGGLLSGSEKETMQNLNDRLASYLDKVRALEEANTELENKIREWYETRGTGTADASQSDYSKYYPLIEDLRNKIISASIGNAQLLLQIDNARLAAEDFRMKYENELALRQGVEADINGLRRVLDELTLTRTDLEMQIESLNEELAYMKKNHEDELQSFRVGGPGEVSVEMDAAPGVDLTRLLNDMRAQYETIAEQNRKDAEAWFIEKSGELRKEISTNTEQLQSSKSEVTDLRRAFQNLEIELQSQLAMKKSLEDSLAEAEGDYCAQLSQVQQLISNLEAQLLQVRADAERQNVDHQRLLNVKARLELEIETYRRLLDGEAQGDGLEESLFVTDSKSQAQSTDSSKDPTKTRKIKTVVQEMVNGEVVSSQVQEIEELM
284
+ num_certain_transmembrane_segments: 2
285
+ num_found: 2
286
+ SWN_UBCC_HUMAN:
287
+ aaseq: MAGLPRRIIKETQRLLAEPVPGIKAEPDESNARYFHVVIAGPQDSPFEGGTFKLELFLPEEYPMAAPKVRFMTKIYHPNVDKLGRICLDILKDKWSPALQIRTVLLSIQALLSAPNPDDPLANDVAEQWKTNEAQAIETARAWTRLYAMNNI
288
+ num_found: 0
289
+ SWN_SM32_HUMAN:
290
+ aaseq: MADEKPKEGVKTENNDHINLKVAGQDGSVVQFKIKRHTPLSKLMKAYCERQGLSMRQIRFRFDGQPINETDTPAQLEMEDEDTIDVFQQQTGGVY
291
+ num_found: 0
292
+ END_YAML2
293
+
294
+ end
295
+
296
+
297
+
@@ -0,0 +1,60 @@
1
+ require File.expand_path( File.dirname(__FILE__) + '/spec_helper' )
2
+ require File.expand_path( File.dirname(__FILE__) + '/transmem_spec_shared' )
3
+ require 'transmem'
4
+
5
+ # turns all string keys into symbol keys
6
+ def string_to_symbol(hash)
7
+ if hash.is_a? Hash
8
+ hash.each do |k,v|
9
+ hash[k.to_sym] = hash.delete(k)
10
+ if v.is_a? Hash
11
+ string_to_symbol(v)
12
+ elsif v.is_a? Array
13
+ v.each do |armemb|
14
+ string_to_symbol(armemb)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ describe TransmemIndex, "determining filetypes" do
22
+ before(:each) do
23
+ @files = %w(toppred.small.out toppred.xml.out phobius.small.small.txt phobius.small.noheader.txt).map {|f| Tfiles + '/' + f }
24
+ @types = %w(toppred toppred phobius phobius).map {|v| v.to_sym }
25
+ @classes = %w(TopPred TopPred Phobius Phobius).map {|v| v.to_sym }
26
+ end
27
+ it 'figures out the filetype' do
28
+ @files.zip(@types) do |file,tp|
29
+ TransmemIndex.filetype(file).should == tp
30
+ end
31
+ end
32
+ it 'given a file to initalize, returns the right object' do
33
+ objects = @files.zip(@classes) do |file,base_klass|
34
+ obj = TransmemIndex.new(file)
35
+ base = Kernel.const_get(base_klass)
36
+ klass = base.const_get(:Index)
37
+ obj.class.should == klass
38
+ end
39
+ end
40
+ end
41
+
42
+
43
+
44
+ describe TransmemIndex, "methods" do
45
+ it 'calculates the num of overlapping chars in start/stop seqs' do
46
+ ##########0 1 2 3 4 5 6
47
+ ##########01234567890123456789012345678901234567890123456789012345678901
48
+ ########## **** **** ** ***
49
+ string = 'ABCDEFG ABCDEFG ABCDEFG CATTITY ABCD EFG CD BCDEFGTTITY BCDEFG'
50
+ ########## ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^
51
+ #
52
+ substring = 'BCDEFG'
53
+ ranges = [(3..6), (16..19), (43..44), (48..50)]
54
+ expected = [4, 0, 3, 3, 0]
55
+ class TMshell ; include TransmemIndex ; end
56
+ TMshell.new.num_overlapping_chars(string, ranges, substring).should == expected
57
+ end
58
+ end
59
+
60
+
@@ -0,0 +1,64 @@
1
+
2
+ # turns all string keys into symbol keys
3
+ def string_to_symbol(hash)
4
+ if hash.is_a? Hash
5
+ hash.each do |k,v|
6
+ hash[k.to_sym] = hash.delete(k)
7
+ if v.is_a? Hash
8
+ string_to_symbol(v)
9
+ elsif v.is_a? Array
10
+ v.each do |armemb|
11
+ string_to_symbol(armemb)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+
19
+
20
+ describe "a transmem index", :shared => true do
21
+ before(:all) do
22
+ # expects an transmem object, @obj
23
+ end
24
+
25
+ it 'is a hash' do
26
+ @obj.is_a?(Hash).should be_true
27
+ end
28
+
29
+ it 'responds to reference_to_key' do
30
+ @obj.respond_to?(:reference_to_key).should be_true
31
+ end
32
+
33
+ it "correctly transforms headers or refs into id's" do
34
+ @ref_to_key.each do |k,v|
35
+ @obj.reference_to_key(k).should == v
36
+ end
37
+ end
38
+
39
+ it "creates a num_certain_index that gives correct values given keys" do
40
+ ind = @obj.num_certain_index
41
+ @test_hash.each do |k,v|
42
+ ind[@obj.reference_to_key(k)].should == v
43
+ end
44
+ end
45
+ end
46
+
47
+
48
+ describe "a calculator of transmembrane overlap", :shared => true do
49
+ # require definition of @tm_test and @obj
50
+
51
+ it "can give average overlap given a sequence (fraction)" do
52
+ [:number, :fraction].each do |tp|
53
+ #[:fraction, :number].each do |tp|
54
+ hash = @tm_test
55
+ key = hash[:mykey]
56
+ hash[:seqs].zip(hash[:exps][tp]) do |seq,exp|
57
+ @obj.avg_overlap(key, seq, tp).should == exp
58
+ end
59
+ end
60
+ end
61
+
62
+ end
63
+
64
+
@@ -0,0 +1,107 @@
1
+ require File.expand_path( File.dirname(__FILE__) + '/../spec_helper' )
2
+ require File.expand_path( File.dirname(__FILE__) + '/../validator_helper' )
3
+
4
+
5
+ require 'validator/aa'
6
+ require 'spec_id'
7
+ require 'spec_id/digestor'
8
+
9
+ klass = Validator::AA
10
+
11
+ class MyAA < Validator::AA ; def initialize ; end ; end
12
+
13
+ describe klass, "using frequency estimates" do
14
+ before(:each) do
15
+ @small_fasta = Tfiles + '/small.fasta'
16
+ @sequest_params = Tfiles + '/bioworks32.params'
17
+ # C/D C/D J (7)
18
+ @seqs = %w(ABCDEFGC CCDCCC JJJJJ XYZ WXXXYZ TXXXXXYZ ZZXIIPTYZ ZZXTYZZ ZZZZ YYYYYTL)
19
+ @peps = @seqs.map {|n| v = SpecID::GenericPep.new; v.aaseq = n ; v }
20
+ val = klass.new('C')
21
+ val.frequency = 0.11
22
+ @validator = val
23
+ end
24
+ #C: 0.0157714433456144
25
+ #D: 0.0526145691939758
26
+
27
+ it_should_behave_like 'a validator'
28
+
29
+ it 'calculates precision from actual and expected correctly' do
30
+ MyAA.new.pephit_precision_from_actual_and_expected(5, 10, 100).should == 0.5
31
+ (0..10).each do |actual|
32
+ precision = MyAA.new.pephit_precision_from_actual_and_expected(actual, 10, 100)
33
+ answer = 1.0 - (actual.to_f/10.0)
34
+ precision.should be_close(answer, 0.00000001)
35
+ #0 -> 1
36
+ #1 -> 0.9
37
+ #2 -> 0.8
38
+ end
39
+ end
40
+
41
+ it 'calculates precision (with background) reasonably and consistently' do
42
+ (0..10).each do |bkg|
43
+ precision = MyAA.new.pephit_precision_from_actual_and_expected(5, 10, 100, bkg.to_f/100)
44
+ answer = 0.5 + bkg.to_f/10
45
+ answer = 1.0 if answer > 1.0
46
+ precision.should == answer
47
+ end
48
+ end
49
+
50
+ it 'calculates at_least_one correctly' do
51
+ aa = 'C'
52
+ freq = 0.0157714433456144 ## from @small_fasta
53
+ (actual, expected) = MyAA.new.at_least_one(aa, freq, @seqs)
54
+ actual.should == 2
55
+ expected.should be_close(0.949318337979434, 0.0001) # freeze for consistency
56
+ end
57
+
58
+ it 'gives consistent precision of peptides given fastafile and aa (even negative)' do
59
+ aa = 'C'
60
+ val = klass.new(aa).set_frequency(Fasta.new(@small_fasta))
61
+ # I checked this answer out by hand and it is correct
62
+ val.pephit_precision(@peps).should be_close(-1.10677, 0.001)
63
+ end
64
+ end
65
+
66
+ describe klass, "using empirical digestion data" do
67
+
68
+ before(:each) do
69
+ @small_fasta = Tfiles + '/small.fasta'
70
+ @sequest_params = Tfiles + '/bioworks32.params'
71
+ # C/D C/D J (7)
72
+ @seqs = %w(ABCDEFGC CCDCCC JJJJJ XYZ WXXXYZ TXXXXXYZ ZZXIIPTYZ ZZXTYZZ ZZZZ YYYYYTL)
73
+ @peps = @seqs.map {|n| v = SpecID::GenericPep.new; v.aaseq = n ; v }
74
+
75
+ val = klass.new('C')
76
+ val.false_to_total_ratio = 0.22 # arbitrary
77
+ @validator = val
78
+ end
79
+
80
+ it_should_behave_like 'a validator'
81
+
82
+ it 'gives correct false to total ratio' do
83
+ aa = 'C'
84
+ val = klass.new(aa)
85
+ peptides = Digestor.digest( Fasta.new(@small_fasta), Sequest::Params.new(@sequest_params))
86
+ val.set_false_to_total_ratio( peptides )
87
+ # frozen (but I checked the peptides by hand to make sure they were
88
+ # correct)
89
+ val.false_to_total_ratio.should be_close(0.177629264861062, 0.0000000000001)
90
+ end
91
+
92
+ it 'can validate with theoretical digestion or frequency estimate' do
93
+ aa = 'C'
94
+ val = klass.new(aa)
95
+ val.false_to_total_ratio = 0.177629264861062
96
+ answ = val.pephit_precision(@peps)
97
+ # frozen
98
+ answ.should be_close(-0.125940594059407, 0.0000000001)
99
+
100
+ val.frequency = 0.0157714433456144 ## from @small_fasta
101
+ val.false_to_total_ratio = nil
102
+ answ = val.pephit_precision(@peps)
103
+ answ.should be_close(-1.10677485094924, 0.0000000001)
104
+ end
105
+ end
106
+
107
+
@@ -0,0 +1,51 @@
1
+ require File.expand_path( File.dirname(__FILE__) + '/../spec_helper' )
2
+
3
+ require 'validator/background'
4
+
5
+ describe Validator::Background do
6
+
7
+ before(:all) do
8
+ @expected = YAML.load("badAA: 45
9
+ tpred-1: 36
10
+ tpred-1-0.8: 36
11
+ tpred-2: 36
12
+ tpred-2-0.8: 36
13
+ phob-1: 38
14
+ phob-2: 37
15
+ phob-1-0.8: 38
16
+ phob-2-0.8: 37
17
+ bias-mrna: 29
18
+ bias-prot: 37
19
+ ")
20
+ @data =
21
+ {
22
+ 'badAA' => [0.158873276514528, 0.15968405463222, 0.159870678279229, 0.159635650410558, 0.156543159883917, 0.152783096042051, 0.150294985250737, 0.145335608646189, 0.134808758575322, 0.125552050473186, 0.112790697674419, 0.0960860693748841, 0.076310861423221, 0.0560216123986919, 0.0388044914134742, 0.0250922509225092, 0.0187774670395525, 0.0111182381868719, 0.00934787447139996, 0.00583022388059702, 0.00460382844681367, 0.00348518795120737, 0.00284164298630845, 0.0021488047273704, 0.00167177486765116, 0.00175080245112343, 0.00182926829268293, 0.00191570881226054, 0.0016767270288397, 0.00177116542685087, 0.00186219739292365, 0.00198491464867011, 0.00211864406779661, 0.00136986301369863, 0.00146412884333821, 0.00107642626480086, 0.00120336943441637, 0.000672494956287828, 0.000764525993883792, 0.000887311446317658, 0.00103734439834025, 0.00123609394313968, 0.00151975683890578, 0.00179856115107914, 0.00215982721382289, 0.00266666666666667, 0.0, 0.0, 0.0, 0.0, 0.0/0.0],
23
+ 'tpred-1-0.8' => [0.432087342709104, 0.430464886251236, 0.432952622673435, 0.430709911544568, 0.431700713758307, 0.426344086021505, 0.42326139088729, 0.412998624484182, 0.405773857257418, 0.395963479096588, 0.379389752446747, 0.375838926174497, 0.371165644171779, 0.366496598639456, 0.351903435468895, 0.337611056268509, 0.334031413612565, 0.332236842105263, 0.335585585585586, 0.334894613583138, 0.33133971291866, 0.334558823529412, 0.331658291457286, 0.328998699609883, 0.330175913396482, 0.334745762711864, 0.332844574780059, 0.327188940092166, 0.317152103559871, 0.320689655172414, 0.323583180987203, 0.324271844660194, 0.322245322245322, 0.317180616740088, 0.324644549763033, 0.323834196891192, 0.32183908045977, 0.327044025157233, 0.316363636363636, 0.311203319502075, 0.314553990610329, 0.318918918918919, 0.306122448979592, 0.307086614173228, 0.295238095238095, 0.255555555555556, 0.246753246753247, 0.254237288135593, 0.290322580645161, 0.3, 0.0/0.0],
24
+ 'tpred-2-0.8' => [0.193930421909697, 0.194460929772502, 0.193104906937394, 0.188931730551145, 0.187792271720404, 0.181989247311828, 0.176558752997602, 0.172627235213205, 0.168003207698476, 0.157135992311389, 0.145653425446172, 0.136241610738255, 0.125766871165644, 0.122448979591837, 0.115134633240483, 0.107601184600197, 0.103664921465969, 0.103070175438596, 0.102477477477477, 0.101873536299766, 0.101674641148325, 0.10171568627451, 0.101758793969849, 0.0988296488946684, 0.0987821380243572, 0.100282485875706, 0.095307917888563, 0.0921658986175115, 0.0809061488673139, 0.0793103448275862, 0.0822669104204753, 0.0757281553398058, 0.079002079002079, 0.0814977973568282, 0.0853080568720379, 0.0803108808290155, 0.0718390804597701, 0.0786163522012579, 0.0836363636363636, 0.0746887966804979, 0.07981220657277, 0.0756756756756757, 0.0748299319727891, 0.062992125984252, 0.0666666666666667, 0.0555555555555556, 0.025974025974026, 0.0338983050847458, 0.032258064516129, 0.0, 0.0/0.0],
25
+ 'tpred-1' => [0.43492586490939, 0.434656516222585, 0.437751004016064, 0.439366015481017, 0.435423665546846, 0.432272813869308, 0.432531593966572, 0.422057502246181, 0.419948186528497, 0.413091136861885, 0.395751376868607, 0.39067055393586, 0.379793061472915, 0.378066378066378, 0.366721854304636, 0.348222424794895, 0.34251968503937, 0.339958158995816, 0.343073593073593, 0.343502824858757, 0.337587006960557, 0.33969010727056, 0.336196319018405, 0.332909783989835, 0.334656084656085, 0.339779005524862, 0.339055793991416, 0.331831831831832, 0.323343848580442, 0.326050420168067, 0.329181494661922, 0.330170777988615, 0.325865580448065, 0.321814254859611, 0.326340326340326, 0.322250639386189, 0.320113314447592, 0.325077399380805, 0.314285714285714, 0.308943089430894, 0.311926605504587, 0.317460317460317, 0.304635761589404, 0.305343511450382, 0.293577981651376, 0.258064516129032, 0.253164556962025, 0.262295081967213, 0.303030303030303, 0.333333333333333, 0.0/0.0],
26
+ 'tpred-2' => [0.197144426139484, 0.197571143737539, 0.197699890470975, 0.195355694802801, 0.192422545726017, 0.191465040960183, 0.188544639217285, 0.185085354896676, 0.184974093264249, 0.176636392107736, 0.164044059795437, 0.154518950437318, 0.143639683505782, 0.137085137085137, 0.129966887417219, 0.113035551504102, 0.108267716535433, 0.105648535564854, 0.103896103896104, 0.105084745762712, 0.103248259860789, 0.103694874851013, 0.101840490797546, 0.0991105463786531, 0.0992063492063492, 0.100828729281768, 0.0958512160228898, 0.0930930930930931, 0.082018927444795, 0.0789915966386555, 0.0818505338078292, 0.0759013282732448, 0.0794297352342159, 0.08207343412527, 0.0839160839160839, 0.0792838874680307, 0.0708215297450425, 0.0773993808049536, 0.0821428571428571, 0.0731707317073171, 0.0779816513761468, 0.0740740740740741, 0.0728476821192053, 0.0610687022900763, 0.0642201834862385, 0.0537634408602151, 0.0253164556962025, 0.0327868852459016, 0.0303030303030303, 0.0, 0.0/0.0],
27
+ 'phob-1-0.8' => [0.185672175669857, 0.18433572392246, 0.181897765767137, 0.178760843645932, 0.176211849192101, 0.17261698440208, 0.168649249583102, 0.164665082525207, 0.158626390141268, 0.149688712442479, 0.140255798829395, 0.127386902473408, 0.116115516983391, 0.106017191977077, 0.0974025974025974, 0.0923076923076923, 0.0875342754693103, 0.0849369608493696, 0.0839240795792362, 0.0830359267190102, 0.0802955665024631, 0.0777188998233661, 0.0760188087774295, 0.0748373101952278, 0.0739595050618673, 0.0732568402471315, 0.0716041794714198, 0.070096463022508, 0.0682432432432432, 0.0678329168154231, 0.0672174239579422, 0.0656262505002001, 0.0652173913043478, 0.0629306384933395, 0.0637567435017165, 0.0637837837837838, 0.0609903381642512, 0.0594193112761648, 0.0598618572524942, 0.0587711487088157, 0.059375, 0.0619578686493185, 0.0609756097560976, 0.0576576576576577, 0.0497835497835498, 0.0427807486631016, 0.043010752688172, 0.0396039603960396, 0.0504201680672269, 0.075, 0.0/0.0],
28
+ 'phob-2-0.8' => [0.10336833040771, 0.10306752822552, 0.102234232862635, 0.099946552645644, 0.0978007181328546, 0.0957662787818767, 0.0927181767648694, 0.0913878363624687, 0.0879921851517884, 0.0834611567265181, 0.0773899848254932, 0.0688196847366398, 0.0604518928624869, 0.0551154559244901, 0.050834879406308, 0.0477522477522478, 0.0438726007171483, 0.0433532404335324, 0.042305053738852, 0.0418748512966928, 0.0399014778325123, 0.0386071158213475, 0.0378787878787879, 0.0366052060737527, 0.0357142857142857, 0.0344218887908208, 0.0331899200983405, 0.0327974276527331, 0.0307432432432432, 0.0307033202427704, 0.0311678558017274, 0.0300120048019208, 0.0294117647058824, 0.0257234726688103, 0.0264835703776361, 0.0264864864864865, 0.0241545893719807, 0.0229574611748818, 0.0230237912509593, 0.0231522707034728, 0.025, 0.0285006195786865, 0.0274390243902439, 0.0234234234234234, 0.0238095238095238, 0.018716577540107, 0.021505376344086, 0.0247524752475248, 0.0336134453781513, 0.05, 0.0/0.0],
29
+ 'phob-1' => [0.189416875082269, 0.188798733425688, 0.187119003445534, 0.186618069952518, 0.184998809969059, 0.183175272216368, 0.18173689504862, 0.178471651602301, 0.173068705189687, 0.166212849776954, 0.156364435330306, 0.146373298526944, 0.134995296331138, 0.119743406985032, 0.107213765718068, 0.0987060998151571, 0.0901459124525285, 0.0851336898395722, 0.0844097995545657, 0.083527764815679, 0.0809500727096461, 0.077191235059761, 0.0762076982691811, 0.075208165457964, 0.0743939816104765, 0.0735337029471841, 0.0719512195121951, 0.070242656449553, 0.06841046277666, 0.0680127523910733, 0.0674115456238361, 0.0658991663358476, 0.0656779661016949, 0.0634703196347032, 0.063933626159102, 0.0640473627556512, 0.0613718411552347, 0.0598520511096167, 0.0603975535168196, 0.059449866903283, 0.0601659751037344, 0.0618046971569839, 0.060790273556231, 0.0575539568345324, 0.0496760259179266, 0.0426666666666667, 0.0428571428571429, 0.0396039603960396, 0.0504201680672269, 0.075, 0.0/0.0],
30
+ 'phob-2' => [0.106884296432802, 0.106174549772412, 0.105618870924993, 0.10492877683408, 0.103770698038149, 0.102774850720056, 0.101225736746023, 0.0991783073130649, 0.0961967617871896, 0.0911882277967673, 0.0851765050534642, 0.0778482192802536, 0.0702022577610536, 0.06143977191732, 0.0559232296492389, 0.0495378927911275, 0.0439736158305017, 0.0434224598930481, 0.0427616926503341, 0.042230517965469, 0.0399903053805138, 0.0383466135458167, 0.0379746835443038, 0.0367982809562181, 0.0359431596544999, 0.0347242486139481, 0.0335365853658537, 0.0328863346104725, 0.0308517773306506, 0.0308182784272051, 0.0312849162011173, 0.0301707026597856, 0.0296610169491525, 0.026027397260274, 0.0263543191800878, 0.0263724434876211, 0.0240673886883273, 0.0228648285137861, 0.0229357798165138, 0.0230700976042591, 0.024896265560166, 0.0284301606922126, 0.027355623100304, 0.0233812949640288, 0.0237580993520518, 0.0186666666666667, 0.0214285714285714, 0.0247524752475248, 0.0336134453781513, 0.05, 0.0/0.0],
31
+ 'bias-mrna' => [0.433808285892922, 0.433569195326641, 0.433953549749274, 0.43349622685416, 0.433556050482554, 0.434016778640304, 0.42787610619469, 0.416422883146433, 0.400291326003195, 0.376082592486378, 0.340843023255814, 0.300129846039696, 0.250117041198502, 0.202474050902886, 0.159676354029062, 0.122878228782288, 0.0966839792249301, 0.077613855035279, 0.069441353216114, 0.0608675373134328, 0.0576690089653501, 0.0560119492158327, 0.0539912167398605, 0.0523771152296535, 0.0512677626079688, 0.0507732710825795, 0.0509146341463415, 0.0507662835249042, 0.0489604292421194, 0.0474672334396033, 0.0491620111731844, 0.0504168320762207, 0.0508474576271186, 0.0506849315068493, 0.0502684236212787, 0.0522066738428418, 0.0523465703971119, 0.0537995965030262, 0.0512232415902141, 0.0488021295474712, 0.0508298755186722, 0.0531520395550062, 0.0547112462006079, 0.0593525179856115, 0.060475161987041, 0.064, 0.0678571428571429, 0.0693069306930693, 0.0756302521008403, 0.05, 0.0/0.0],
32
+ 'bias-prot' => [0.689591628549804, 0.689122922494652, 0.688836104513064, 0.68950500315814, 0.688229736113923, 0.685348278622898, 0.680862831858407, 0.669226393629124, 0.652805187482379, 0.628563234872383, 0.591351744186047, 0.547857540345019, 0.497542134831461, 0.441916678515569, 0.394319682959049, 0.359409594095941, 0.333799440671195, 0.316655976053025, 0.308479857556199, 0.297574626865672, 0.290041192149261, 0.284789644012945, 0.282097649186257, 0.279881815739995, 0.277514628030092, 0.278085789320105, 0.277743902439024, 0.278416347381865, 0.276659959758551, 0.275593340417995, 0.274115456238361, 0.268757443429933, 0.26864406779661, 0.265753424657534, 0.267935578330893, 0.263724434876211, 0.260529482551143, 0.255548083389375, 0.258409785932722, 0.266193433895297, 0.266597510373444, 0.279357231149567, 0.276595744680851, 0.26978417266187, 0.285097192224622, 0.272, 0.271428571428571, 0.262376237623762, 0.252100840336134, 0.3, 0.0/0.0],
33
+ }
34
+ end
35
+
36
+
37
+
38
+ it 'finds the minimum of the plateu region of a stringency plot' do
39
+ #data = [10,11,12,10,9,8,7,6,5,4.5,4,3.4, 3.2, 3.3, 3.1, 3.0,2.9,2.8,2.8, 2.8, 2.9, 3.4, 2.2, 1.1,0.0,0.0/0.0]
40
+ #data = [10,11,12,10,9,8,7,6,5,4.5,4,3.4, 3.2, 3.3, 3.1, 3.0,2.9,2.8,2.8, 2.8, 2.9, 3.4, 2.2, 1.1,0.0]
41
+ @data.each do |k,v|
42
+ exp = @expected[k]
43
+ bkg = Validator::Background.new(v)
44
+ start_i = 25
45
+ stop_i = 38
46
+ ans = bkg.min_mesa(start_i, stop_i)
47
+ ans.should be_close(v[exp], 0.01)
48
+ # expecting were my best judgement (erring on the min side)
49
+ end
50
+ end
51
+ end