mspire 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/lib/ms/mass.rb +2 -0
- data/lib/ms/mzml.rb +3 -0
- data/lib/ms/spectrum.rb +134 -171
- data/spec/ms/ident/pepxml_spec.rb +9 -10
- data/spec/ms/mzml/plms1_spec.rb +13 -12
- data/spec/ms/quant/qspec_spec.rb +8 -8
- data/spec/ms/spectrum_spec.rb +48 -0
- data/spec/spec_helper.rb +2 -2
- metadata +73 -66
data/Rakefile
CHANGED
@@ -13,10 +13,11 @@ Jeweler::Tasks.new do |gem|
|
|
13
13
|
gem.email = "jtprince@gmail.com"
|
14
14
|
gem.authors = ["John T. Prince", "Simon Chiang"]
|
15
15
|
gem.add_dependency "nokogiri", "~> 1.5"
|
16
|
+
gem.add_dependency "bsearch", ">= 1.5.0"
|
17
|
+
gem.add_dependency "obo", ">= 0.1.0"
|
16
18
|
gem.add_development_dependency "rspec", "~> 2.6"
|
17
19
|
gem.add_development_dependency "jeweler", "~> 1.5.2"
|
18
20
|
gem.add_development_dependency "rcov", ">= 0"
|
19
|
-
gem.add_development_dependency "obo", ">= 0.1.0"
|
20
21
|
end
|
21
22
|
Jeweler::RubygemsDotOrgTasks.new
|
22
23
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.2
|
data/lib/ms/mass.rb
CHANGED
@@ -16,6 +16,7 @@ module MS
|
|
16
16
|
end.reduce(:+)
|
17
17
|
end
|
18
18
|
|
19
|
+
ELECTRON = 0.0005486 # www.mikeblaber.org/oldwine/chm1045/notes/Atoms/.../Atoms03.htm
|
19
20
|
H_PLUS = 1.00727646677
|
20
21
|
# + http://www.unimod.org/masses.html
|
21
22
|
MONO_STR = {
|
@@ -37,6 +38,7 @@ module MS
|
|
37
38
|
'h' => 1.007825035, # +
|
38
39
|
'h2o' => 18.0105647,
|
39
40
|
'oh' => 17.002739665,
|
41
|
+
'e' => 0.0005486,
|
40
42
|
}
|
41
43
|
AVG_STR = {
|
42
44
|
'h+' => 1.007276, # using Mascot_H_plus mass (is this right for AVG??)
|
data/lib/ms/mzml.rb
CHANGED
@@ -113,6 +113,9 @@ module MS
|
|
113
113
|
base64 = binary_data_array_n.xpath('./binary').text
|
114
114
|
MS::Mzml.unpack_binary(base64, accessions)
|
115
115
|
end
|
116
|
+
# if there is no spectrum, we will still return a spectrum object, it
|
117
|
+
# just has no mzs or intensities
|
118
|
+
data_arrays = [[], []] if data_arrays.size == 0
|
116
119
|
MS::Spectrum.new(data_arrays)
|
117
120
|
end
|
118
121
|
|
data/lib/ms/spectrum.rb
CHANGED
@@ -1,171 +1,134 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
#
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
#
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
#end
|
136
|
-
#end
|
137
|
-
#end
|
138
|
-
#end
|
139
|
-
#return_val
|
140
|
-
#end
|
141
|
-
|
142
|
-
## less_precise should be a float
|
143
|
-
## precise should be a float
|
144
|
-
#def equal_after_rounding?(precise, less_precise) # :nodoc:
|
145
|
-
## determine the precision of less_precise
|
146
|
-
#exp10 = precision_as_neg_int(less_precise)
|
147
|
-
##puts "EXP10: #{exp10}"
|
148
|
-
#answ = ((precise*exp10).round == (less_precise*exp10).round)
|
149
|
-
##puts "TESTING FOR EQUAL: #{precise} #{less_precise}"
|
150
|
-
##puts answ
|
151
|
-
#(precise*exp10).round == (less_precise*exp10).round
|
152
|
-
#end
|
153
|
-
|
154
|
-
## returns 1 for ones place, 10 for tenths, 100 for hundredths
|
155
|
-
## to a precision exceeding 1e-6
|
156
|
-
#def precision_as_neg_int(float) # :nodoc:
|
157
|
-
#neg_exp10 = 1
|
158
|
-
#loop do
|
159
|
-
#over = float * neg_exp10
|
160
|
-
#rounded = over.round
|
161
|
-
#if (over - rounded).abs <= 1e-6
|
162
|
-
#break
|
163
|
-
#end
|
164
|
-
#neg_exp10 *= 10
|
165
|
-
#end
|
166
|
-
#neg_exp10
|
167
|
-
#end
|
168
|
-
|
169
|
-
|
170
|
-
end
|
171
|
-
end
|
1
|
+
require 'bsearch'
|
2
|
+
|
3
|
+
module MS
|
4
|
+
class Spectrum
|
5
|
+
include Enumerable
|
6
|
+
|
7
|
+
# The underlying data store. methods are implemented so that data[0] is
|
8
|
+
# the m/z's and data[1] is intensities
|
9
|
+
attr_reader :data
|
10
|
+
|
11
|
+
# data takes an array: [mzs, intensities]
|
12
|
+
# @return [MS::Spectrum]
|
13
|
+
# @param [Array] data two element array of mzs and intensities
|
14
|
+
def initialize(data)
|
15
|
+
@data = data
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.from_peaks(ar_of_doublets)
|
19
|
+
_mzs = []
|
20
|
+
_ints = []
|
21
|
+
ar_of_doublets.each do |mz, int|
|
22
|
+
_mzs << mz
|
23
|
+
_ints << int
|
24
|
+
end
|
25
|
+
self.new([_mzs, _ints])
|
26
|
+
end
|
27
|
+
|
28
|
+
# found by querying the size of the data store. This should almost always
|
29
|
+
# be 2 (m/z and intensities)
|
30
|
+
def size
|
31
|
+
@data.size
|
32
|
+
end
|
33
|
+
|
34
|
+
def ==(other)
|
35
|
+
mzs == other.mzs && intensities == other.intensities
|
36
|
+
end
|
37
|
+
|
38
|
+
# An array of the mz data.
|
39
|
+
def mzs
|
40
|
+
@data[0]
|
41
|
+
end
|
42
|
+
|
43
|
+
# An array of the intensities data, corresponding to mzs.
|
44
|
+
def intensities
|
45
|
+
@data[1]
|
46
|
+
end
|
47
|
+
|
48
|
+
def mzs_and_intensities
|
49
|
+
[@data[0], @data[1]]
|
50
|
+
end
|
51
|
+
|
52
|
+
# retrieve an m/z and intensity doublet at that index
|
53
|
+
def [](array_index)
|
54
|
+
[@data[0][array_index], @data[1][array_index]]
|
55
|
+
end
|
56
|
+
|
57
|
+
# yields(mz, inten) across the spectrum, or array of doublets if no block
|
58
|
+
def peaks(&block)
|
59
|
+
@data[0].zip(@data[1], &block)
|
60
|
+
end
|
61
|
+
|
62
|
+
alias_method :each, :peaks
|
63
|
+
alias_method :each_peak, :peaks
|
64
|
+
|
65
|
+
# if the mzs and intensities are the same then the spectra are considered
|
66
|
+
# equal
|
67
|
+
def ==(other)
|
68
|
+
mzs == other.mzs && intensities == other.intensities
|
69
|
+
end
|
70
|
+
|
71
|
+
# returns a new spectrum whose intensities have been normalized by the tic
|
72
|
+
# of another given value
|
73
|
+
def normalize(norm_by=:tic)
|
74
|
+
norm_by = tic if norm_by == :tic
|
75
|
+
MS::Spectrum.new([self.mzs, self.intensities.map {|v| v / norm_by }])
|
76
|
+
end
|
77
|
+
|
78
|
+
def tic
|
79
|
+
self.intensities.reduce(:+)
|
80
|
+
end
|
81
|
+
|
82
|
+
# ensures that the m/z values are monotonically ascending (some
|
83
|
+
# instruments are bad about this)
|
84
|
+
# returns self
|
85
|
+
def sort!
|
86
|
+
_peaks = peaks.to_a
|
87
|
+
_peaks.sort!
|
88
|
+
_peaks.each_with_index {|(mz,int), i| @data[0][i] = mz ; @data[1][i] = int }
|
89
|
+
self
|
90
|
+
end
|
91
|
+
|
92
|
+
# returns the m/z that is closest to the value, favoring the lower m/z in
|
93
|
+
# the case of a tie. Uses a binary search.
|
94
|
+
def find_nearest(val)
|
95
|
+
mzs[find_nearest_index(val)]
|
96
|
+
end
|
97
|
+
|
98
|
+
# same as find_nearest but returns the index of the peak
|
99
|
+
def find_nearest_index(val)
|
100
|
+
find_all_nearest_index(val).first
|
101
|
+
end
|
102
|
+
|
103
|
+
def find_all_nearest_index(val)
|
104
|
+
_mzs = mzs
|
105
|
+
index = _mzs.bsearch_lower_boundary {|v| v <=> val }
|
106
|
+
if index == _mzs.size
|
107
|
+
[_mzs.size-1]
|
108
|
+
else
|
109
|
+
# if the previous m/z diff is smaller, use it
|
110
|
+
if index == 0
|
111
|
+
[index]
|
112
|
+
else
|
113
|
+
case (val - _mzs[index-1]).abs <=> (_mzs[index] - val).abs
|
114
|
+
when -1
|
115
|
+
[index-1]
|
116
|
+
when 0
|
117
|
+
[index-1, index]
|
118
|
+
when 1
|
119
|
+
[index]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def find_all_nearest(val)
|
126
|
+
find_all_nearest_index(val).map {|i| mzs[i] }
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
@@ -10,12 +10,11 @@ require 'ms/ident/pepxml/search_hit'
|
|
10
10
|
require 'ms/ident/pepxml/search_hit/modification_info'
|
11
11
|
|
12
12
|
describe "creating an MS::Ident::Pepxml" do
|
13
|
-
include MS::Ident
|
14
13
|
|
15
14
|
it "can be creating in a nested fashion reflecting internal structure" do
|
16
15
|
tags_that_should_be_present = %w(msms_pipeline_analysis msms_run_summary sample_enzyme search_summary spectrum_query search_result search_hit modification_info mod_aminoacid_mass search_score)
|
17
16
|
|
18
|
-
pepxml = Pepxml.new do |msms_pipeline_analysis|
|
17
|
+
pepxml = MS::Ident::Pepxml.new do |msms_pipeline_analysis|
|
19
18
|
msms_pipeline_analysis.merge!(:summary_xml => "020.xml") do |msms_run_summary|
|
20
19
|
# prep the sample enzyme and search_summary
|
21
20
|
msms_run_summary.merge!(
|
@@ -39,16 +38,16 @@ describe "creating an MS::Ident::Pepxml" do
|
|
39
38
|
:max_num_internal_cleavages => 2,
|
40
39
|
:min_number_termini => 2
|
41
40
|
)
|
42
|
-
modifications << Pepxml::AminoacidModification.new(
|
41
|
+
modifications << MS::Ident::Pepxml::AminoacidModification.new(
|
43
42
|
:aminoacid => 'M', :massdiff => 15.9994, :mass => MS::Mass::AA::MONO['M']+15.9994,
|
44
43
|
:variable => 'Y', :symbol => '*')
|
45
44
|
# invented, for example, a protein terminating mod
|
46
|
-
modifications << Pepxml::TerminalModification.new(
|
45
|
+
modifications << MS::Ident::Pepxml::TerminalModification.new(
|
47
46
|
:terminus => 'c', :massdiff => 23.3333, :mass => MS::Mass::MONO['oh'] + 23.3333,
|
48
47
|
:variable => 'Y', :symbol => '[', :protein_terminus => 'c',
|
49
48
|
:description => 'leave protein_terminus off if not protein mod'
|
50
49
|
)
|
51
|
-
modifications << Pepxml::TerminalModification.new(
|
50
|
+
modifications << MS::Ident::Pepxml::TerminalModification.new(
|
52
51
|
:terminus => 'c', :massdiff => 25.42322, :mass => MS::Mass::MONO['h+'] + 25.42322,
|
53
52
|
:variable => 'N', :symbol => ']', :description => 'example: c term mod'
|
54
53
|
)
|
@@ -58,18 +57,18 @@ describe "creating an MS::Ident::Pepxml" do
|
|
58
57
|
:enzyme_info => 'Trypsin(KR/P) 1 1 KR P', # etc....
|
59
58
|
)
|
60
59
|
end
|
61
|
-
spectrum_query1 = Pepxml::SpectrumQuery.new(
|
60
|
+
spectrum_query1 = MS::Ident::Pepxml::SpectrumQuery.new(
|
62
61
|
:spectrum => '020.3.3.1', :start_scan => 3, :end_scan => 3,
|
63
62
|
:precursor_neutral_mass => 1120.93743421875, :assumed_charge => 1
|
64
63
|
) do |search_results|
|
65
|
-
search_result1 = Pepxml::SearchResult.new do |search_hits|
|
64
|
+
search_result1 = MS::Ident::Pepxml::SearchResult.new do |search_hits|
|
66
65
|
modpositions = [[1, 243.1559], [6, 167.0581], [7,181.085]].map do |pair|
|
67
|
-
Pepxml::SearchHit::ModificationInfo::ModAminoacidMass.new(*pair)
|
66
|
+
MS::Ident::Pepxml::SearchHit::ModificationInfo::ModAminoacidMass.new(*pair)
|
68
67
|
end
|
69
68
|
# order(modified_peptide, mod_aminoacid_masses, :mod_nterm_mass, :mod_cterm_mass)
|
70
69
|
# or can be set by hash
|
71
|
-
mod_info = Pepxml::SearchHit::ModificationInfo.new('Y#RLGGS#T#K', modpositions)
|
72
|
-
search_hit1 = Pepxml::SearchHit.new(
|
70
|
+
mod_info = MS::Ident::Pepxml::SearchHit::ModificationInfo.new('Y#RLGGS#T#K', modpositions)
|
71
|
+
search_hit1 = MS::Ident::Pepxml::SearchHit.new(
|
73
72
|
:hit_rank=>1, :peptide=>'YRLGGSTK', :peptide_prev_aa => "R", :peptide_next_aa => "K",
|
74
73
|
:protein => "gi|16130113|ref|NP_416680.1|", :num_tot_proteins => 1, :num_matched_ions => 5,
|
75
74
|
:tot_num_ions => 35, :calc_neutral_pep_mass => 1120.93163442, :massdiff => 0.00579979875010395,
|
data/spec/ms/mzml/plms1_spec.rb
CHANGED
@@ -22,12 +22,12 @@ describe 'converting mzml to plms1' do
|
|
22
22
|
plms1.times.should == times
|
23
23
|
plms1.scan_numbers.should == scan_nums
|
24
24
|
plms1.spectra.each do |spec|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
spec.size.should == 2
|
26
|
+
spec.class.should == MS::Spectrum
|
27
|
+
spec.mzs.should == []
|
28
|
+
spec.intensities.should == []
|
29
29
|
end
|
30
|
-
plms1.write("tmp.tmp.bin")
|
30
|
+
#plms1.write("tmp.tmp.bin")
|
31
31
|
end
|
32
32
|
|
33
33
|
end
|
@@ -47,13 +47,14 @@ describe 'converting mzml to plms1' do
|
|
47
47
|
#times =[6604.58, 6605.5, 6605.91, 6606.48, 6606.98, 6607.53, 6607.93, 6608.49, 6608.92, 6609.49, 6609.94, 6610.53]
|
48
48
|
plms1 = @mzml.to_plms1
|
49
49
|
plms1.spectra.respond_to?(:each).should be_true
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
50
|
+
plms1.times.should == [1981.5726, 1982.1077, 1982.4020999999998]
|
51
|
+
plms1.scan_numbers.should == [1, 2, 3]
|
52
|
+
sizes = [20168, 315, 634]
|
53
|
+
plms1.spectra.zip(sizes).each do |spec,exp_size|
|
54
|
+
spec.class.should == MS::Spectrum
|
55
|
+
spec.size.should == 2
|
56
|
+
spec.mzs.size.should == exp_size
|
57
|
+
spec.intensities.size.should == exp_size
|
57
58
|
end
|
58
59
|
#plms1.write("tmp.tmp.bin")
|
59
60
|
end
|
data/spec/ms/quant/qspec_spec.rb
CHANGED
@@ -5,17 +5,17 @@ require 'csv'
|
|
5
5
|
|
6
6
|
describe 'running qspec' do
|
7
7
|
before do
|
8
|
-
|
9
|
-
rows = IO.readlines(@file).map {|line| line.chomp.split("\t") }
|
10
|
-
p rows.map(&:size)
|
11
|
-
abort 'here'
|
12
|
-
|
13
|
-
headers = columns.map(&:first)
|
14
|
-
p headers
|
8
|
+
#@file = TESTFILES + '/ms/quant/max_quant_output.txt'
|
9
|
+
#rows = IO.readlines(@file).map {|line| line.chomp.split("\t") }
|
10
|
+
#p rows.map(&:size)
|
11
|
+
#abort 'here'
|
12
|
+
##columns = IO.readlines(@file).map {|line| line.split("\t") }.transpose
|
13
|
+
#headers = columns.map(&:first)
|
14
|
+
#p headers
|
15
15
|
end
|
16
16
|
|
17
17
|
describe 'on spectral count data' do
|
18
|
-
|
18
|
+
xit 'works' do
|
19
19
|
1.should == 1
|
20
20
|
end
|
21
21
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'ms/spectrum'
|
4
|
+
|
5
|
+
describe MS::Spectrum do
|
6
|
+
|
7
|
+
describe 'useful utilities' do
|
8
|
+
subject { MS::Spectrum.new [ [10.1, 10.5, 10.7, 11.5], [1, 2, 3, 4] ] }
|
9
|
+
it 'finds the nearest m/z or index' do
|
10
|
+
|
11
|
+
queries = {
|
12
|
+
10.4 => 1,
|
13
|
+
10.5 => 1,
|
14
|
+
10.6 => 1,
|
15
|
+
10.61 => 2,
|
16
|
+
-100.0 => 0,
|
17
|
+
200.0 => 3,
|
18
|
+
}
|
19
|
+
queries.each {|mz, exp_i| subject.find_nearest_index(mz).should == exp_i }
|
20
|
+
|
21
|
+
all = Hash[ queries.map {|k,v| [k,[v]] } ]
|
22
|
+
all[10.6] = [1,2]
|
23
|
+
all.each {|mz, exp_mz| subject.find_all_nearest_index(mz).should == exp_mz }
|
24
|
+
|
25
|
+
queries = {
|
26
|
+
10.4 => 10.5,
|
27
|
+
10.5 => 10.5,
|
28
|
+
10.6 => 10.5,
|
29
|
+
10.61 => 10.7,
|
30
|
+
-100.0 => 10.1,
|
31
|
+
200.0 => 11.5,
|
32
|
+
}
|
33
|
+
queries.each {|mz, exp_mz| subject.find_nearest(mz).should == exp_mz }
|
34
|
+
|
35
|
+
all = Hash[ queries.map {|k,v| [k,[v]] } ]
|
36
|
+
all[10.6] = [10.5, 10.7]
|
37
|
+
all.each {|mz, exp_mz| subject.find_all_nearest(mz).should == exp_mz }
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'can sort itself by m/z' do
|
41
|
+
spec = MS::Spectrum.new [[10.5, 10.1, 11.5, 10.7], [2, 1, 4, 3]]
|
42
|
+
spec.sort!
|
43
|
+
spec.mzs.should == subject.mzs
|
44
|
+
spec.intensities.should == subject.intensities
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -13,8 +13,8 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
|
13
13
|
RSpec.configure do |config|
|
14
14
|
config.color_enabled = true
|
15
15
|
config.tty = true
|
16
|
-
|
17
|
-
config.formatter = :progress # :progress, :html, :textmate
|
16
|
+
config.formatter = :documentation # :progress, :html, :textmate
|
17
|
+
#config.formatter = :progress # :progress, :html, :textmate
|
18
18
|
end
|
19
19
|
|
20
20
|
|
metadata
CHANGED
@@ -1,83 +1,92 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mspire
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.6.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- John T. Prince
|
9
9
|
- Simon Chiang
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-02-02 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: nokogiri
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &8784820 !ruby/object:Gem::Requirement
|
20
18
|
none: false
|
21
|
-
requirements:
|
19
|
+
requirements:
|
22
20
|
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.5'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *8784820
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bsearch
|
28
|
+
requirement: &8782400 !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.5.0
|
25
34
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
35
|
prerelease: false
|
30
|
-
|
36
|
+
version_requirements: *8782400
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: obo
|
39
|
+
requirement: &8781260 !ruby/object:Gem::Requirement
|
31
40
|
none: false
|
32
|
-
requirements:
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 0.1.0
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *8781260
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: &8780220 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
33
53
|
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '2.6'
|
36
56
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: jeweler
|
40
57
|
prerelease: false
|
41
|
-
|
58
|
+
version_requirements: *8780220
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: jeweler
|
61
|
+
requirement: &8795440 !ruby/object:Gem::Requirement
|
42
62
|
none: false
|
43
|
-
requirements:
|
63
|
+
requirements:
|
44
64
|
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
65
|
+
- !ruby/object:Gem::Version
|
46
66
|
version: 1.5.2
|
47
67
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: rcov
|
51
68
|
prerelease: false
|
52
|
-
|
69
|
+
version_requirements: *8795440
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rcov
|
72
|
+
requirement: &8792600 !ruby/object:Gem::Requirement
|
53
73
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: obo
|
62
79
|
prerelease: false
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 0.1.0
|
69
|
-
type: :development
|
70
|
-
version_requirements: *id005
|
71
|
-
description: mass spectrometry proteomics, lipidomics, and tools, a rewrite of mspire, merging of ms-* gems
|
80
|
+
version_requirements: *8792600
|
81
|
+
description: mass spectrometry proteomics, lipidomics, and tools, a rewrite of mspire,
|
82
|
+
merging of ms-* gems
|
72
83
|
email: jtprince@gmail.com
|
73
84
|
executables: []
|
74
|
-
|
75
85
|
extensions: []
|
76
|
-
|
77
|
-
extra_rdoc_files:
|
86
|
+
extra_rdoc_files:
|
78
87
|
- LICENSE
|
79
88
|
- README.rdoc
|
80
|
-
files:
|
89
|
+
files:
|
81
90
|
- LICENSE
|
82
91
|
- README.rdoc
|
83
92
|
- Rakefile
|
@@ -147,6 +156,7 @@ files:
|
|
147
156
|
- spec/ms/mzml_spec.rb
|
148
157
|
- spec/ms/plms1_spec.rb
|
149
158
|
- spec/ms/quant/qspec_spec.rb
|
159
|
+
- spec/ms/spectrum_spec.rb
|
150
160
|
- spec/msplat_spec.rb
|
151
161
|
- spec/obo_spec.rb
|
152
162
|
- spec/spec_helper.rb
|
@@ -175,31 +185,28 @@ files:
|
|
175
185
|
- spec/testfiles/ms/quant/unlog_transform.rb
|
176
186
|
- spec/testfiles/plms1/output.key
|
177
187
|
homepage: http://github.com/princelab/mspire
|
178
|
-
licenses:
|
188
|
+
licenses:
|
179
189
|
- MIT
|
180
190
|
post_install_message:
|
181
191
|
rdoc_options: []
|
182
|
-
|
183
|
-
require_paths:
|
192
|
+
require_paths:
|
184
193
|
- lib
|
185
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
194
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
186
195
|
none: false
|
187
|
-
requirements:
|
188
|
-
- -
|
189
|
-
- !ruby/object:Gem::Version
|
190
|
-
version:
|
191
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ! '>='
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0'
|
200
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
201
|
none: false
|
193
|
-
requirements:
|
194
|
-
- -
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version:
|
202
|
+
requirements:
|
203
|
+
- - ! '>='
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
197
206
|
requirements: []
|
198
|
-
|
199
207
|
rubyforge_project:
|
200
|
-
rubygems_version: 1.8.
|
208
|
+
rubygems_version: 1.8.15
|
201
209
|
signing_key:
|
202
210
|
specification_version: 3
|
203
211
|
summary: mass spectrometry proteomics, lipidomics, and tools
|
204
212
|
test_files: []
|
205
|
-
|