mspire 0.3.1 → 0.3.9
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/bin/bioworks_to_pepxml.rb +15 -3
- data/bin/ms_to_lmat.rb +2 -1
- data/bin/sqt_group.rb +26 -0
- data/changelog.txt +36 -0
- data/lib/ms/msrun.rb +3 -1
- data/lib/ms/parser/mzdata/dom.rb +14 -14
- data/lib/ms/scan.rb +3 -3
- data/lib/mspire.rb +1 -1
- data/lib/sample_enzyme.rb +39 -0
- data/lib/spec_id.rb +18 -0
- data/lib/spec_id/aa_freqs.rb +6 -9
- data/lib/spec_id/digestor.rb +16 -17
- data/lib/spec_id/mass.rb +63 -1
- data/lib/spec_id/parser/proph.rb +101 -2
- data/lib/spec_id/precision/filter.rb +3 -2
- data/lib/spec_id/precision/filter/cmdline.rb +3 -1
- data/lib/spec_id/precision/filter/output.rb +1 -0
- data/lib/spec_id/precision/prob.rb +88 -21
- data/lib/spec_id/precision/prob/cmdline.rb +28 -16
- data/lib/spec_id/precision/prob/output.rb +8 -2
- data/lib/spec_id/proph/pep_summary.rb +25 -12
- data/lib/spec_id/sequest.rb +28 -0
- data/lib/spec_id/sequest/pepxml.rb +142 -197
- data/lib/spec_id/sqt.rb +349 -0
- data/lib/spec_id/srf.rb +33 -23
- data/lib/validator.rb +40 -57
- data/lib/validator/aa.rb +3 -90
- data/lib/validator/aa_est.rb +112 -0
- data/lib/validator/cmdline.rb +163 -31
- data/lib/validator/decoy.rb +15 -7
- data/lib/validator/digestion_based.rb +5 -4
- data/lib/validator/q_value.rb +32 -0
- data/script/peps_per_bin.rb +67 -0
- data/script/sqt_to_meta.rb +24 -0
- data/specs/bin/bioworks_to_pepxml_spec.rb +3 -3
- data/specs/bin/fasta_shaker_spec.rb +2 -2
- data/specs/bin/filter_and_validate__multiple_vals_helper.yaml +7 -10
- data/specs/bin/filter_and_validate_spec.rb +25 -6
- data/specs/bin/ms_to_lmat_spec.rb +2 -2
- data/specs/bin/prob_validate_spec.rb +5 -3
- data/specs/sample_enzyme_spec.rb +86 -1
- data/specs/spec_helper.rb +11 -9
- data/specs/spec_id/bioworks_spec.rb +2 -1
- data/specs/spec_id/precision/filter_spec.rb +5 -5
- data/specs/spec_id/precision/prob_spec.rb +0 -67
- data/specs/spec_id/proph/pep_summary_spec.rb +42 -87
- data/specs/spec_id/protein_summary_spec.rb +4 -4
- data/specs/spec_id/sequest/pepxml_spec.rb +1 -79
- data/specs/spec_id/sequest_spec.rb +38 -0
- data/specs/spec_id/sqt_spec.rb +111 -3
- data/specs/spec_id_spec.rb +2 -0
- data/specs/transmem/phobius_spec.rb +3 -1
- data/specs/transmem/toppred_spec.rb +1 -1
- data/specs/validator/aa_est_spec.rb +66 -0
- data/specs/validator/aa_spec.rb +1 -68
- data/specs/validator/background_spec.rb +2 -0
- data/specs/validator/bias_spec.rb +3 -27
- data/specs/validator/decoy_spec.rb +2 -2
- data/specs/validator/transmem_spec.rb +2 -1
- data/test_files/small.sqt +87 -0
- metadata +312 -293
data/specs/spec_helper.rb
CHANGED
@@ -3,12 +3,14 @@ gem 'rspec'
|
|
3
3
|
|
4
4
|
# a global flag that lets me know what format we're dealing with for output
|
5
5
|
$specdoc = false
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
## something changed between version 1.0.6?? and 1.1.1 in rspec so that
|
7
|
+
#Spec::Runner is no longer an object being created...
|
8
|
+
#ObjectSpace.each_object do |obj|
|
9
|
+
# case obj
|
10
|
+
# when Spec::Runner::Formatter::SpecdocFormatter
|
11
|
+
# $specdoc = true
|
12
|
+
# end
|
13
|
+
#end
|
12
14
|
|
13
15
|
# Set up some global testing variables:
|
14
16
|
#silent {
|
@@ -109,9 +111,9 @@ require SPEC_DIR + '/load_bin_path'
|
|
109
111
|
class String
|
110
112
|
#alias_method :exist?, exist_as_a_file?
|
111
113
|
#alias_method exist_as_a_file?, exist?
|
112
|
-
def exist?
|
113
|
-
|
114
|
-
end
|
114
|
+
#def exist?
|
115
|
+
# File.exist? self
|
116
|
+
#end
|
115
117
|
def exist_as_a_file?
|
116
118
|
File.exist? self
|
117
119
|
end
|
@@ -37,7 +37,8 @@ describe Bioworks, 'set from an xml file' do
|
|
37
37
|
tmpfile = Tfiles + "/tf_bioworks_to_excel.tmp"
|
38
38
|
bio = Bioworks.new(tf_bioworks_to_excel)
|
39
39
|
bio.to_excel(tmpfile)
|
40
|
-
|
40
|
+
tmpfile.exist_as_a_file?.should be_true
|
41
|
+
#File.should exist_as_a_file(tmpfile)
|
41
42
|
exp = _arr_of_arrs(tf_bioworks_to_excel_actual)
|
42
43
|
act = _arr_of_arrs(tmpfile)
|
43
44
|
exp.each_index do |i|
|
@@ -103,7 +103,7 @@ describe 'filtering on small bioworks file with inverse prots' do
|
|
103
103
|
@regexp = /^INV_/o
|
104
104
|
@file = Tfiles + '/bioworks_with_INV_small.xml'
|
105
105
|
@spec_id = SpecID.new(@file)
|
106
|
-
vals = [Validator::Decoy.new(@regexp)]
|
106
|
+
vals = [Validator::Decoy.new(:constraint => @regexp)]
|
107
107
|
@opts = {:sequest => {:xcorr1 => 1.0, :xcorr2 => 1.0, :xcorr3 => 1.0, :deltacn => 0.1, :ppm => 1000.0, :include_deltacnstar=> false}, :validators => vals}
|
108
108
|
end
|
109
109
|
|
@@ -121,7 +121,7 @@ describe 'filtering on small bioworks file with inverse prots' do
|
|
121
121
|
# this does a minimal test to see if this functions properly
|
122
122
|
# (not for accuracy, which is done in validator_spec)
|
123
123
|
## WITH FASTA FILE:
|
124
|
-
val1 = Validator::
|
124
|
+
val1 = Validator::AAEst.new('C').set_frequency(Fasta.new(Tfiles + '/small.fasta').prots)
|
125
125
|
@opts[:validators] << val1 # obviously this guy is not his
|
126
126
|
ans1 = SpecID::Precision::Filter.new.filter_and_validate(@spec_id, @opts)
|
127
127
|
peps = ans1[:pephits]
|
@@ -131,7 +131,7 @@ describe 'filtering on small bioworks file with inverse prots' do
|
|
131
131
|
|
132
132
|
## WITH A CYSTEINE BACKGROUND:
|
133
133
|
background_cys = 0.0172
|
134
|
-
val3 = Validator::
|
134
|
+
val3 = Validator::AAEst.new('C', :background => background_cys).set_frequency(Fasta.new(Tfiles + '/small.fasta').prots)
|
135
135
|
@opts[:validators][1] = val3
|
136
136
|
ans3 = SpecID::Precision::Filter.new.filter_and_validate(@spec_id, @opts)
|
137
137
|
peps = ans3[:pephits]
|
@@ -156,8 +156,8 @@ describe 'filtering on a real srf file' do
|
|
156
156
|
|
157
157
|
regexp = /FAKINGIT_OUT/
|
158
158
|
opts[:decoy] = regexp
|
159
|
-
decoy_val = Validator::Decoy.new(regexp) # this is not real, just to test
|
160
|
-
cys_val = Validator::
|
159
|
+
decoy_val = Validator::Decoy.new(:constraint => regexp) # this is not real, just to test
|
160
|
+
cys_val = Validator::AAEst.new('C').set_frequency(Fasta.new(fasta_file).prots)
|
161
161
|
tmm_val = Validator::Transmem::Protein.new(tmm_file, :min_num_tms => 1, :soluble_fraction => true, :correct_wins => true, :no_include_tm_peps => false, :background => 0.0).set_false_to_total_ratio( Digestor.digest( Fasta.new(fasta_file), Sequest::Params.new(sequest_file) ) )
|
162
162
|
opts[:validators] = [decoy_val, cys_val, tmm_val]
|
163
163
|
ans = SpecID::Precision::Filter.new.filter_and_validate(spec_id, opts)
|
@@ -41,71 +41,4 @@ describe 'finding precision Proph::Prot::Pep objects' do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
|
44
|
-
=begin
|
45
|
-
it 'gets precision with all validators (including probability and decoy)' do
|
46
|
-
## create some decoy peptides!
|
47
|
-
@spec_id.peps.sort_by {|pep| pep.probability }[100..-1].each_with_index do |pep,i|
|
48
|
-
if i % 3 == 0
|
49
|
-
pep.prots.each {|prot| prot.protein_name = 'DECOY_' + prot.protein_name }
|
50
|
-
end
|
51
|
-
end
|
52
|
-
# check which ones are ACTUALLY normal and decoy
|
53
|
-
(decoy, normal) = @spec_id.peps.partition do |pep|
|
54
|
-
pep.prots.all? {|prot| prot.protein_name =~ /^DECOY_/}
|
55
|
-
end
|
56
|
-
num_decoy = decoy.size
|
57
|
-
num_normal = normal.size
|
58
|
-
end
|
59
|
-
|
60
|
-
prob_spec_helper = File.expand_path( File.dirname(__FILE__) + '/prob_spec_helper' )
|
61
|
-
|
62
|
-
# this does a minimal test to see if this functions properly
|
63
|
-
# (not for accuracy, which is done in validator_spec)
|
64
|
-
## WITH FASTA FILE:
|
65
|
-
base_dir = Tfiles_l + '/opd1_2runs_2mods/sequest'
|
66
|
-
fasta_file = base_dir + '/ecoli_K12_ncbi_20060321.fasta'
|
67
|
-
params_file = base_dir + '/ecoli.params'
|
68
|
-
bias_file = base_dir + '/ecoli_K12_ncbi_20060321.bias.fasta'
|
69
|
-
toppred_file = base_dir + '/ecoli_K12_ncbi_20060321.toppred.xml'
|
70
|
-
|
71
|
-
fasta_file.should exist
|
72
|
-
|
73
|
-
prob = Validator::Probability.new
|
74
|
-
badaa_freq = Validator::AA.new('C', :frequency => 0.0115866200193321)
|
75
|
-
badaa_dig = Validator::AA.new('C')
|
76
|
-
bias = Validator::Bias.new(Fasta.new(bias_file))
|
77
|
-
transmem = Validator::Transmem::Protein.new(toppred_file)
|
78
|
-
decoy = Validator::Decoy.new(/^DECOY_/)
|
79
|
-
|
80
|
-
turn_on_digestion = true
|
81
|
-
if turn_on_digestion
|
82
|
-
# digestion based validators need this set!
|
83
|
-
digested_peps = Digestor.digest(Fasta.new(fasta_file), Sequest::Params.new(params_file))
|
84
|
-
[badaa_dig, bias, transmem].each do |val|
|
85
|
-
val.set_false_to_total_ratio(digested_peps)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
transmem.transmem_status_hash = transmem.create_transmem_status_hash(@spec_id.peps)
|
89
|
-
val_list = [decoy, badaa_freq, badaa_dig, prob, bias, transmem]
|
90
|
-
|
91
|
-
opts = { :validators => val_list }
|
92
|
-
|
93
|
-
|
94
|
-
hash = SpecID::Precision::Prob.new.precision_vs_num_hits(@spec_id, opts)
|
95
|
-
#puts "OUTPUT: "
|
96
|
-
#puts hash.to_yaml
|
97
|
-
|
98
|
-
|
99
|
-
# frozen
|
100
|
-
e_hash = ProbMSHelper::Answer2
|
101
|
-
# hash[:pephits_precision].size.should == e_hash[:pephits_precision].size
|
102
|
-
# other data types are tested above, just testing validators
|
103
|
-
hash[:pephits_precision].zip( e_hash[:pephits_precision] ) do |val_hash, val_hash_e|
|
104
|
-
val_hash[:values].size.should == num_normal
|
105
|
-
#val_hash[:validator].should == val_hash_e[:validator]
|
106
|
-
val_hash[:values].zip(val_hash_e[:values]) {|v,e| v.should be_close(e, 0.000000001)}
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
44
|
|
111
|
-
=end
|
@@ -13,7 +13,7 @@ ToCheck = {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
|
16
|
-
describe Proph::PepSummary, "reading a .xml file" do
|
16
|
+
describe Proph::PepSummary, "reading a small .xml file" do
|
17
17
|
before(:each) do
|
18
18
|
file = Tfiles + '/opd1_2runs_2mods/interact-opd1_mods__small.xml'
|
19
19
|
@obj = Proph::PepSummary.new(file)
|
@@ -23,15 +23,25 @@ describe Proph::PepSummary, "reading a .xml file" do
|
|
23
23
|
lambda { Proph::PepSummary.new(Tfiles + '/opd1/000.tpp_2.9.2.first10.xml')}.should raise_error(ArgumentError)
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'has
|
27
|
-
@obj.
|
26
|
+
it 'has msms_run_summary objects with spectrum_queries' do
|
27
|
+
@obj.msms_run_summaries.size.should == 1
|
28
|
+
sqs = @obj.msms_run_summaries.first.spectrum_queries
|
29
|
+
sqs.size.should == 18
|
28
30
|
|
29
31
|
[:first, :last].each do |mth|
|
30
32
|
ToCheck[:spectrum_query][mth].each do |k,v|
|
31
|
-
|
33
|
+
if v.is_a? Float
|
34
|
+
sqs.send(mth).send(k).should be_close(v, 0.0000000001)
|
35
|
+
else
|
36
|
+
sqs.send(mth).send(k).should == v
|
37
|
+
end
|
32
38
|
end
|
33
39
|
ToCheck[:search_hit][mth].each do |k,v|
|
34
|
-
|
40
|
+
if v.is_a? Float
|
41
|
+
sqs.send(mth).search_results.first.search_hits.first.send(k).should be_close(v, 0.0000000001)
|
42
|
+
else
|
43
|
+
sqs.send(mth).search_results.first.search_hits.first.send(k).should == v
|
44
|
+
end
|
35
45
|
end
|
36
46
|
end
|
37
47
|
end
|
@@ -44,7 +54,11 @@ describe Proph::PepSummary, "reading a .xml file" do
|
|
44
54
|
|
45
55
|
[:first, :last].each do |mth|
|
46
56
|
ToCheck[:search_hit][mth].each do |k,v|
|
47
|
-
|
57
|
+
if v.is_a? Float
|
58
|
+
@obj.peps.send(mth).send(k).should be_close(v, 0.0000000001)
|
59
|
+
else
|
60
|
+
@obj.peps.send(mth).send(k).should == v
|
61
|
+
end
|
48
62
|
end
|
49
63
|
end
|
50
64
|
|
@@ -52,92 +66,33 @@ describe Proph::PepSummary, "reading a .xml file" do
|
|
52
66
|
|
53
67
|
end
|
54
68
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
=
|
60
|
-
|
61
|
-
require 'test/unit'
|
62
|
-
require 'spec_id'
|
63
|
-
require 'ms/scan'
|
64
|
-
|
65
|
-
class ProphTest < Test::Unit::TestCase
|
66
|
-
|
67
|
-
def initialize(arg)
|
68
|
-
super(arg)
|
69
|
-
@tfiles = File.dirname(__FILE__) + '/tfiles/'
|
70
|
-
@pepproph_xml = @tfiles + 'pepproph_small.xml'
|
71
|
-
end
|
72
|
-
|
73
|
-
def Xtest_filter_by_min_pep_prob
|
74
|
-
obj = Proph::Pep::Parser.new
|
75
|
-
new_file = "tfiles/tmp.xml"
|
76
|
-
assert_match(/peptideprophet_result probability="0.[0-5]/, IO.read(@pepproph_xml))
|
77
|
-
obj.filter_by_min_pep_prob(@pepproph_xml, new_file, 0.50)
|
78
|
-
assert_no_match(/peptideprophet_result probability="0.[0-5]/, IO.read(new_file))
|
79
|
-
assert_match(/<peptideprophet_result[^>]*probability="0.[6-9][^>]*>/, IO.read(new_file))
|
80
|
-
File.unlink new_file
|
81
|
-
end
|
82
|
-
|
83
|
-
def Xtest_uniq_by_seqcharge
|
84
|
-
cls = Proph::Pep
|
85
|
-
p1 = cls.new({ :charge => '2', :sequence => 'PEPTIDE' })
|
86
|
-
p2 = cls.new({ :charge => '3', :sequence => 'PEPTIDE' })
|
87
|
-
p3 = cls.new({ :charge => '2', :sequence => 'PEPTIDE' })
|
88
|
-
p4 = cls.new({ :charge => '2', :sequence => 'APEPTIDE' })
|
89
|
-
p5 = cls.new({ :charge => '2', :sequence => 'APEPTIDE' })
|
90
|
-
un_peps = cls.uniq_by_seqcharge([p1,p2,p3,p4,p5])
|
91
|
-
## WHY ISn't that working? below!
|
92
|
-
##assert_equal([p1,p2,p4].to_set, un_peps.to_set)
|
93
|
-
assert(equal_sets([p1,p2,p4], un_peps))
|
94
|
-
end
|
95
|
-
|
96
|
-
def Xequal_sets(arr1, arr2)
|
97
|
-
c1 = arr1.dup
|
98
|
-
c2 = arr2.dup
|
99
|
-
arr1.each do |c|
|
100
|
-
arr2.each do |d|
|
101
|
-
if c == d
|
102
|
-
c1.delete c
|
103
|
-
c2.delete d
|
104
|
-
end
|
105
|
-
end
|
69
|
+
describe Proph::PepSummary, 'reading a large .xml file' do
|
70
|
+
spec_large do
|
71
|
+
before(:all) do
|
72
|
+
file = Tfiles_l + '/opd1_2runs_2mods/prophet/interact-opd1_mods.xml'
|
73
|
+
@obj = Proph::PepSummary.new(file)
|
106
74
|
end
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
75
|
+
|
76
|
+
it 'has peps of class Proph::PepSummary::Pep' do
|
77
|
+
@obj.peps.first.class.to_s.should == 'Proph::PepSummary::Pep'
|
78
|
+
@obj.peps.size.should == 1643
|
111
79
|
end
|
112
|
-
end
|
113
80
|
|
114
|
-
|
115
|
-
|
116
|
-
i2 = 30000.0
|
117
|
-
i3 = 100.0
|
118
|
-
t1 = 0.13
|
119
|
-
t2 = 0.23
|
120
|
-
t3 = 0.33
|
121
|
-
p1 = MS::Scan.new(1,1, t1)
|
122
|
-
p2 = MS::Scan.new(2,1, t2)
|
123
|
-
p3 = MS::Scan.new(3,1, t3)
|
124
|
-
s1 = MS::Scan.new(1,2,0.10, 300.2, i1, p1)
|
125
|
-
s2 = MS::Scan.new(2,2,0.20, 301.1, i2, p2)
|
126
|
-
s3 = MS::Scan.new(3,2,0.30, 302.0, i3, p3)
|
127
|
-
scan = Proph::Pep.new({:scans => [s1,s2,s3]}).arithmetic_avg_scan_by_parent_time
|
128
|
-
tot_inten = i1 + i2 + i3
|
129
|
-
tm = ( t1 * (i1/tot_inten) + t2 * (i2/tot_inten) + t3 * (i3/tot_inten) )
|
130
|
-
{:ms_level => 2, :prec_inten => 130115.0/3, :num => nil, :prec_mz => 301.1.to_f, :time => tm }.each do |k,v|
|
131
|
-
if k == :prec_mz # not sure why this is bugging out, but..
|
132
|
-
assert_equal(v.to_s, scan.send(k).to_s)
|
133
|
-
else
|
134
|
-
assert_equal(v, scan.send(k))
|
135
|
-
end
|
81
|
+
it 'contains peps that respond_to :aaseq' do
|
82
|
+
@obj.peps.first.should respond_to(:aaseq)
|
136
83
|
end
|
137
84
|
|
85
|
+
it 'has prots (also callable from peps)' do
|
86
|
+
(@obj.prots.size > 0).should be_true
|
87
|
+
@obj.peps.all? {|v| v.prots.size > 0 }.should be_true
|
88
|
+
peps_with_prots = @obj.peps.select {|v| v.prots.size > 1 }
|
89
|
+
# frozen:
|
90
|
+
peps_with_prots.first.prots.size.should == 3
|
91
|
+
peps_with_prots.first.prots.first.name.should == "gi|16128676|ref|NP_415229.1|"
|
92
|
+
peps_with_prots.first.prots.first.protein_descr.should == "RhsC protein in RhsC element [Escherichia coli K12]"
|
93
|
+
peps_with_prots.first.prots.first.reference.should == "gi|16128676|ref|NP_415229.1| RhsC protein in RhsC element [Escherichia coli K12]"
|
94
|
+
peps_with_prots.first.prots.last.protein_descr.should == "RhsA protein in RhsA element [Escherichia coli K12]"
|
95
|
+
end
|
138
96
|
end
|
139
|
-
|
140
|
-
|
141
97
|
end
|
142
98
|
|
143
|
-
=end
|
@@ -18,7 +18,7 @@ xdescribe ProteinSummary do
|
|
18
18
|
spec_large do
|
19
19
|
it 'does basic summary on prophet file' do
|
20
20
|
runit "-c 5.0 #{@tf_proph}"
|
21
|
-
@tf_summary.should
|
21
|
+
@tf_summary.exist_as_a_file?.should be_true
|
22
22
|
string = IO.read(@tf_summary)
|
23
23
|
string.should =~ /gi\|16132176\|ref\|NP_418775\.1\|/
|
24
24
|
string.should =~ /16132176/
|
@@ -28,7 +28,7 @@ xdescribe ProteinSummary do
|
|
28
28
|
|
29
29
|
it 'does basic summary on bioworks.xml file' do
|
30
30
|
runit "#{@tf_bioworks_small}"
|
31
|
-
@tf_bioworks_small_summary_html.should
|
31
|
+
@tf_bioworks_small_summary_html.exist_as_a_file?.should be_true
|
32
32
|
File.unlink @tf_bioworks_small_summary_html unless @no_delete
|
33
33
|
# @TODO: need to freeze the output here
|
34
34
|
end
|
@@ -40,7 +40,7 @@ xdescribe ProteinSummary do
|
|
40
40
|
runit "#{@tf_bioworks_small} --precision"
|
41
41
|
IO.read(@tf_bioworks_small_summary_html).should =~ /# hits.*106/m
|
42
42
|
# should add more tests here...
|
43
|
-
@tf_bioworks_small_summary_html.should
|
43
|
+
@tf_bioworks_small_summary_html.exist_as_a_file?.should be_true
|
44
44
|
File.unlink @tf_bioworks_small_summary_html unless @no_delete
|
45
45
|
end
|
46
46
|
|
@@ -59,7 +59,7 @@ xdescribe ProteinSummary do
|
|
59
59
|
spec_large do
|
60
60
|
it 'gives correct peptide counts' do
|
61
61
|
runit "-c 5.0 #{@tf_proph} --peptide_count #{@tf_peptide_count}"
|
62
|
-
@tf_peptide_count.should
|
62
|
+
@tf_peptide_count.exist_as_a_file?.should be_true
|
63
63
|
file = IO.read(@tf_peptide_count)
|
64
64
|
file.should include("gi|16132176|ref|NP_418775.1|\t2")
|
65
65
|
file.should include("gi|16131996|ref|NP_418595.1|\t1")
|
@@ -8,84 +8,6 @@ require 'spec_id/sequest/pepxml'
|
|
8
8
|
|
9
9
|
NODELETE = false
|
10
10
|
|
11
|
-
describe Sequest::PepXML::SearchHit, 'making enzyme calculations on sequences' do
|
12
|
-
|
13
|
-
before(:each) do
|
14
|
-
@tf_params_fullKRP = Tfiles + "/bioworks32.params"
|
15
|
-
# The enzyme is: 1 KR P
|
16
|
-
@tf_params_justKR = Tfiles + "/bioworks33.params"
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'calculates the number of tolerant termini' do
|
20
|
-
exp = [{
|
21
|
-
# full KR/P
|
22
|
-
'K.EPTIDR.E' => 2,
|
23
|
-
'K.PEPTIDR.E' => 1,
|
24
|
-
'F.EEPTIDR.E' => 1,
|
25
|
-
'F.PEPTIDW.R' => 0,
|
26
|
-
},
|
27
|
-
{
|
28
|
-
# just KR
|
29
|
-
'K.EPTIDR.E' => 2,
|
30
|
-
'K.PEPTIDR.E' => 2,
|
31
|
-
'F.EEPTIDR.E' => 1,
|
32
|
-
'F.PEPTIDW.R' => 0,
|
33
|
-
}
|
34
|
-
]
|
35
|
-
scall = Sequest::PepXML::SearchHit
|
36
|
-
sym = :calc_num_tol_term
|
37
|
-
params_ar = [Sequest::Params.new(@tf_params_fullKRP), Sequest::Params.new(@tf_params_justKR)]
|
38
|
-
params_ar.zip(exp) do |params,hash|
|
39
|
-
hash.each do |seq, val|
|
40
|
-
scall.send(sym, params, seq).should == val
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'calculates number of missed cleavages' do
|
46
|
-
exp = [{
|
47
|
-
"K.EPTIDR.E" => 0,
|
48
|
-
"K.PEPTIDR.E" => 0,
|
49
|
-
"F.EEPTIDR.E" => 0,
|
50
|
-
"F.PEPTIDW.R" => 0,
|
51
|
-
"F.PERPTIDW.R" => 0,
|
52
|
-
"F.PEPKPTIDW.R" => 0,
|
53
|
-
"F.PEPKTIDW.R" => 1,
|
54
|
-
"K.RTTIDR.E" => 1,
|
55
|
-
"K.RTTIKK.E" => 2,
|
56
|
-
"F.PKEPRTIDW.R" => 2,
|
57
|
-
"F.PKEPRTIDKP.R" => 2,
|
58
|
-
"F.PKEPRAALKPEERPTIDKW.R" => 3,
|
59
|
-
},
|
60
|
-
{
|
61
|
-
"K.EPTIDR.E" => 0,
|
62
|
-
"K.PEPTIDR.E" => 0,
|
63
|
-
"F.EEPTIDR.E" => 0,
|
64
|
-
"F.PEPTIDW.R" => 0,
|
65
|
-
"F.PERPTIDW.R" => 1,
|
66
|
-
"F.PEPKPTIDW.R" => 1,
|
67
|
-
"F.PEPKTIDW.R" => 1,
|
68
|
-
"K.RTTIDR.E" => 1,
|
69
|
-
"K.RTTIKK.E" => 2,
|
70
|
-
"F.PKEPRTIDW.R" => 2,
|
71
|
-
"F.PKEPRTIDKP.R" => 3,
|
72
|
-
"F.PKEPRAALKPEERPTIDKW.R" => 5,
|
73
|
-
}
|
74
|
-
]
|
75
|
-
|
76
|
-
params_ar = [Sequest::Params.new(@tf_params_fullKRP), Sequest::Params.new(@tf_params_justKR)]
|
77
|
-
scall = Sequest::PepXML::SearchHit
|
78
|
-
sym = :calc_num_missed_cleavages
|
79
|
-
#params_ar[1] = params_ar[0]
|
80
|
-
params_ar.zip(exp) do |params, hash|
|
81
|
-
hash.each do |seq, val|
|
82
|
-
scall.send(sym, params, seq).should == val
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
end
|
88
|
-
|
89
11
|
describe Sequest::PepXML, " created from small bioworks.xml" do
|
90
12
|
|
91
13
|
spec_large do
|
@@ -423,7 +345,7 @@ describe 'bioworks file with modifications transformed into pepxml' do
|
|
423
345
|
|
424
346
|
it 'gets modifications right in real run' do
|
425
347
|
@out_files.each do |fn|
|
426
|
-
fn.should
|
348
|
+
fn.exist_as_a_file?.should be_true
|
427
349
|
beginning = IO.read(fn)
|
428
350
|
lines = beginning.split("\n")
|
429
351
|
[
|