mspire 0.6.1 → 0.6.2
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.
- 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
|
-
|