mspire 0.7.18 → 0.8.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 (58) hide show
  1. data/VERSION +1 -1
  2. data/bin/mspire +5 -0
  3. data/lib/core_ext/enumerable.rb +8 -0
  4. data/lib/mspire/commandline.rb +39 -0
  5. data/lib/mspire/cv/paramable.rb +72 -35
  6. data/lib/mspire/imzml/writer/commandline.rb +16 -7
  7. data/lib/mspire/imzml/writer.rb +22 -14
  8. data/lib/mspire/mzml/activation.rb +0 -5
  9. data/lib/mspire/mzml/chromatogram.rb +41 -6
  10. data/lib/mspire/mzml/chromatogram_list.rb +2 -19
  11. data/lib/mspire/mzml/component.rb +28 -4
  12. data/lib/mspire/mzml/cv.rb +1 -0
  13. data/lib/mspire/mzml/data_array.rb +164 -154
  14. data/lib/mspire/mzml/data_array_container_like.rb +6 -13
  15. data/lib/mspire/mzml/data_processing.rb +19 -5
  16. data/lib/mspire/mzml/file_description.rb +22 -4
  17. data/lib/mspire/mzml/index.rb +53 -0
  18. data/lib/mspire/mzml/index_list.rb +64 -55
  19. data/lib/mspire/mzml/instrument_configuration.rb +22 -7
  20. data/lib/mspire/mzml/io_index.rb +79 -0
  21. data/lib/mspire/mzml/io_indexable_list.rb +71 -0
  22. data/lib/mspire/mzml/isolation_window.rb +0 -5
  23. data/lib/mspire/mzml/parser.rb +10 -0
  24. data/lib/mspire/mzml/plms1.rb +14 -24
  25. data/lib/mspire/mzml/precursor.rb +41 -19
  26. data/lib/mspire/mzml/processing_method.rb +34 -7
  27. data/lib/mspire/mzml/product.rb +14 -1
  28. data/lib/mspire/mzml/reader.rb +154 -0
  29. data/lib/mspire/mzml/referenceable_param_group.rb +9 -2
  30. data/lib/mspire/mzml/run.rb +62 -5
  31. data/lib/mspire/mzml/sample.rb +16 -6
  32. data/lib/mspire/mzml/scan.rb +31 -16
  33. data/lib/mspire/mzml/scan_list.rb +18 -5
  34. data/lib/mspire/mzml/scan_settings.rb +4 -5
  35. data/lib/mspire/mzml/scan_window.rb +0 -6
  36. data/lib/mspire/mzml/selected_ion.rb +1 -8
  37. data/lib/mspire/mzml/software.rb +9 -4
  38. data/lib/mspire/mzml/source_file.rb +8 -4
  39. data/lib/mspire/mzml/spectrum.rb +60 -35
  40. data/lib/mspire/mzml/spectrum_list.rb +5 -34
  41. data/lib/mspire/mzml.rb +72 -210
  42. data/lib/mspire/plms1.rb +3 -0
  43. data/spec/mspire/cv/paramable_spec.rb +3 -3
  44. data/spec/mspire/mzml/data_array_spec.rb +19 -6
  45. data/spec/mspire/mzml/file_content_spec.rb +1 -4
  46. data/spec/mspire/mzml/index_list_spec.rb +5 -12
  47. data/spec/mspire/mzml/plms1_spec.rb +5 -9
  48. data/spec/mspire/mzml/referenceable_param_group_spec.rb +3 -3
  49. data/spec/mspire/mzml/source_file_spec.rb +1 -2
  50. data/spec/mspire/mzml/spectrum_list_spec.rb +54 -0
  51. data/spec/mspire/mzml/spectrum_spec.rb +2 -4
  52. data/spec/mspire/mzml_spec.rb +241 -21
  53. data/spec/spec_helper.rb +1 -0
  54. data/spec/testfiles/mspire/mzml/1_BB7_SIM_478.5.mzML +103 -0
  55. data/spec/testfiles/mspire/mzml/j24z.idx_comp.3.mzML +6 -6
  56. metadata +14 -6
  57. data/bin/mzml_to_imzml +0 -9
  58. data/spec/mspire/mzml/file_description_spec.rb +0 -12
@@ -1,13 +1,222 @@
1
1
  require 'spec_helper'
2
- require 'builder'
3
2
 
3
+ require 'builder'
4
4
  require 'mspire/mzml'
5
5
 
6
+ require 'mspire/mzml/file_description'
7
+ require 'mspire/mzml/run'
8
+
6
9
  describe Mspire::Mzml do
7
10
 
11
+ describe 'reading a SIM file' do
12
+ before do
13
+ @file = TESTFILES + "/mspire/mzml/1_BB7_SIM_478.5.mzML"
14
+ @io = File.open(@file)
15
+ @mzml = Mspire::Mzml.new(@io)
16
+ end
17
+ after do
18
+ @io.close
19
+ end
20
+
21
+ specify '#chromatogram' do
22
+ tic = @mzml.chromatogram(0)
23
+ tic.id.should == 'TIC'
24
+
25
+ sim = @mzml.chromatogram(1)
26
+ sim.id.should == 'SIM SIC 478.5'
27
+ end
28
+
29
+ specify '#num_chromatograms' do
30
+ @mzml.num_chromatograms.should == 2
31
+ end
32
+
33
+ specify '#each_chromatogram' do
34
+ @mzml.each_chromatogram do |chrm|
35
+ chrm.should be_a(Mspire::Mzml::Chromatogram)
36
+ chrm.times.should be_an(Array)
37
+ chrm.intensities.should be_an(Array)
38
+ chrm.times.size.should == 72
39
+ chrm.intensities.size.should == 72
40
+ end
41
+ end
42
+ end
43
+
8
44
  describe 'reading an indexed, compressed peaks, mzML file' do
9
- describe 'reading a spectrum' do
10
45
 
46
+ describe 'reading the header things' do
47
+ before do
48
+ @file = TESTFILES + "/mspire/mzml/j24z.idx_comp.3.mzML"
49
+ @io = File.open(@file)
50
+ @mzml = Mspire::Mzml.new(@io)
51
+ end
52
+ after do
53
+ @io.close
54
+ end
55
+
56
+ specify '#cvs - reads the cvList' do
57
+ cvs = @mzml.cvs
58
+ cvs.size.should == 2
59
+ cvs.first.id.should == 'MS'
60
+ cvs.last.id.should == 'UO'
61
+ end
62
+
63
+ specify '#file_description reads the fileDescription' do
64
+ @mzml.file_description.should be_a(Mspire::Mzml::FileDescription)
65
+ end
66
+
67
+ describe Mspire::Mzml::FileDescription do
68
+
69
+ let(:file_description) { @mzml.file_description }
70
+
71
+ specify '#file_content' do
72
+ fc = file_description.file_content
73
+ fc.fetch_by_acc("MS:1000579").should be_true
74
+ fc.fetch_by_acc("MS:1000580").should be_true
75
+ fc.fetch_by_acc("MS:1000550").should be_false
76
+ fc.params.size.should == 2
77
+ end
78
+
79
+ specify '#source_files' do
80
+ sfs = file_description.source_files
81
+ sfs.size.should == 1
82
+ sf = sfs.first
83
+ sf.id.should == 'RAW1'
84
+ sf.name.should == 'j24.raw'
85
+ sf.location.should == 'file://.'
86
+ sf.params.size.should == 3
87
+ sha1 = sf.param_by_acc('MS:1000569')
88
+ sha1.name.should == 'SHA-1'
89
+ sha1.accession.should == 'MS:1000569'
90
+ sha1.value.should == "6023d121fb6ca7f19fada3b6c5e4d5da09c95f12"
91
+ end
92
+ end
93
+
94
+ specify '#referenceable_param_groups (reads the referenceableParamGroupList)' do
95
+ rpgs = @mzml.referenceable_param_groups
96
+ rpgs.size.should == 1
97
+ rpg = rpgs.first
98
+ rpg.id.should == 'CommonInstrumentParams'
99
+ prms = rpg.params
100
+ prms.first.to_a.should == ["MS", "MS:1000449", "LTQ Orbitrap", nil, nil]
101
+ prms.last.to_a.should == ["MS", "MS:1000529", "instrument serial number", "SN1025B", nil]
102
+ end
103
+
104
+ it 'reads the softwareList' do
105
+ sl = @mzml.software_list
106
+ sl.size.should == 2
107
+ xcal = sl.first
108
+ xcal.id.should == 'Xcalibur'
109
+ xcal.version.should == '2.4 SP1'
110
+ xcal.params.first.to_a.should == ["MS", "MS:1000532", "Xcalibur", nil, nil]
111
+
112
+ pwiz = sl.last
113
+ pwiz.id.should == 'pwiz'
114
+ pwiz.version.should == "2.1.2086"
115
+ pwiz.params.first.to_a.should == ["MS", "MS:1000615", "ProteoWizard", nil, nil]
116
+ end
117
+
118
+
119
+ def component_is_correct(component, klass, accs)
120
+ component.should be_a(Mspire::Mzml.const_get(klass))
121
+ accs.each do |acc|
122
+ component.fetch_by_acc(acc).should be_true
123
+ end
124
+ end
125
+
126
+ it 'reads the instrumentConfigurationList' do
127
+ ics = @mzml.instrument_configurations
128
+ ics.size.should == 2
129
+ ic1 = ics.first
130
+ ic1.id.should == 'IC1'
131
+
132
+ # grabbing a referenceable param!
133
+ ic1.fetch_by_acc('MS:1000449').should be_true
134
+ ic1.fetch_by_acc('MS:1000529').should be_true
135
+
136
+ %w{Source Analyzer Detector}.zip(
137
+ [["MS:1000398", "MS:1000485"], ["MS:1000484"], ["MS:1000624"]],
138
+ ic1.components
139
+ ).each do |klass,accs,component|
140
+ component_is_correct(component, klass, accs)
141
+ end
142
+
143
+ ic2 = ics.last
144
+
145
+ %w{Source Analyzer Detector}.zip(
146
+ [["MS:1000398", "MS:1000485"], ["MS:1000083"], ["MS:1000253"]],
147
+ ic2.components
148
+ ).each do |klass,accs,component|
149
+ component_is_correct(component, klass, accs)
150
+ end
151
+ end
152
+
153
+ it 'reads the dataProcessingList' do
154
+ dpl = @mzml.data_processing_list
155
+ dpl.size.should == 1
156
+ dp = dpl.first
157
+
158
+ dp.id.should == 'pwiz_Reader_Thermo_conversion'
159
+ pms = dp.processing_methods
160
+ pms.size.should == 1
161
+ pm = pms.first
162
+ pm.should be_a(Mspire::Mzml::ProcessingMethod)
163
+
164
+ # the order is not instrinsic to the object but to the container
165
+ # (i.e., it is an index)
166
+ dp.order(pm).should == 0
167
+ pm.software.should be_a(Mspire::Mzml::Software)
168
+ pm.params.first.to_a.should == ["MS", "MS:1000544", "Conversion to mzML", nil, nil]
169
+ end
170
+
171
+ it 'reads the run' do
172
+ run = @mzml.run
173
+ run.id.should == 'j24'
174
+
175
+ ic = run.default_instrument_configuration
176
+ ic.should be_a(Mspire::Mzml::InstrumentConfiguration)
177
+ ic.fetch_by_acc('MS:1000449').should be_true
178
+
179
+ run.start_time_stamp.should == "2010-07-08T11:34:52Z"
180
+ sf = run.default_source_file
181
+ sf.should be_a(Mspire::Mzml::SourceFile)
182
+ sf.id.should == 'RAW1'
183
+
184
+ run.sample.should be_nil # no sample
185
+ end
186
+
187
+ describe Mspire::Mzml::Run do
188
+
189
+ specify '#spectrum_list' do
190
+ sl = @mzml.run.spectrum_list
191
+ sl.should be_a(Mspire::Mzml::SpectrumList)
192
+ sl.default_data_processing.should be_a(Mspire::Mzml::DataProcessing)
193
+ sl.default_data_processing.id.should == 'pwiz_Reader_Thermo_conversion'
194
+ sl.size.should == 3
195
+
196
+ sl.each do |spec|
197
+ spec.should be_a(Mspire::Mzml::Spectrum)
198
+ spec.params.size.should == 9
199
+ scan_list = spec.scan_list
200
+ scan_list.size.should == 1
201
+ scan_list.params.size.should == 1
202
+ end
203
+ end
204
+
205
+ specify '#chromatogram_list' do
206
+ cl = @mzml.run.chromatogram_list
207
+ cl.should be_a(Mspire::Mzml::ChromatogramList)
208
+ cl.size.should == 1
209
+ cl.default_data_processing.should be_a(Mspire::Mzml::DataProcessing)
210
+ cl.default_data_processing.id.should == 'pwiz_Reader_Thermo_conversion'
211
+
212
+ cl.each do |chrom|
213
+ chrom.should be_a(Mspire::Mzml::Chromatogram)
214
+ end
215
+ end
216
+ end
217
+ end
218
+
219
+ describe 'reading a spectrum' do
11
220
  before do
12
221
  @file = TESTFILES + "/mspire/mzml/j24z.idx_comp.3.mzML"
13
222
  @io = File.open(@file)
@@ -17,7 +226,7 @@ describe Mspire::Mzml do
17
226
  @io.close
18
227
  end
19
228
 
20
- it '#spectrum (or #[]) returns a spectrum when queried by index (Integer)' do
229
+ specify '#spectrum (or #[]) returns a spectrum when queried by index (Integer)' do
21
230
  spectrum = @mzml.spectrum(1) # getting the second spectrum
22
231
  spectrum1 = @mzml[1] # can get with brackets
23
232
  spectrum.ms_level.should == 2
@@ -25,12 +234,19 @@ describe Mspire::Mzml do
25
234
  spectrum.should be_a(Mspire::Mzml::Spectrum)
26
235
  spectrum.should respond_to(:mzs)
27
236
  spectrum.should respond_to(:intensities)
237
+
238
+ spectrum.params.size.should == 9
239
+
28
240
  spectrum.mzs.size.should == 315
29
241
  spectrum.intensities.size.should == 315
30
242
  spectrum.mzs[2].should be_within(1e-10).of(164.32693481445312)
31
243
  end
32
244
 
33
- it '#spectrum (or #[]) returns a spectrum when queried by id (String)' do
245
+ specify '#spectrum always returns spectrum with data_processing object (uses default if none given)' do
246
+ @mzml.spectrum(1).data_processing.should be_a(Mspire::Mzml::DataProcessing)
247
+ end
248
+
249
+ specify '#spectrum (or #[]) returns a spectrum when queried by id (String)' do
34
250
  spectrum = @mzml.spectrum("controllerType=0 controllerNumber=1 scan=2")
35
251
  spectrum1 = @mzml["controllerType=0 controllerNumber=1 scan=2"]
36
252
  spectrum.ms_level.should == 2
@@ -38,7 +254,7 @@ describe Mspire::Mzml do
38
254
  spectrum.should be_a(Mspire::Mzml::Spectrum)
39
255
  end
40
256
 
41
- it 'goes through spectrum with #each or #each_spectrum' do
257
+ specify '#each or #each_spectrum goes through each spectrum' do
42
258
  mz_sizes = [20168, 315, 634]
43
259
  centroided_list = [false, true, true]
44
260
  @mzml.each do |spec|
@@ -62,19 +278,24 @@ describe Mspire::Mzml do
62
278
  lambda {iter.next}.should raise_error
63
279
  end
64
280
 
65
- # not quite ready for this one yet
66
- xit 'contains scans linked to their instrument config objects' do
67
- instr_config_first = @mzml.file_description.instrument_configurations[0]
68
- instr_config_last = @mzml.file_description.instrument_configurations[1]
281
+ it 'contains scans linked to their instrument config objects' do
282
+ # this is tricky because we need to use the default instrument config
283
+ # from the run for the first scan and an element ref for the second...
284
+ [0,1].each do |i|
285
+ @mzml[i].scan_list.first.instrument_configuration.should be_a(Mspire::Mzml::InstrumentConfiguration)
286
+ end
287
+ instr_config_first = @mzml.instrument_configurations[0]
288
+ instr_config_last = @mzml.instrument_configurations[1]
289
+
69
290
  @mzml[0].scan_list.first.instrument_configuration.should == instr_config_first
70
291
  @mzml[1].scan_list.first.instrument_configuration.should == instr_config_last
71
292
  end
72
293
 
73
294
  it 'can gracefully determine the m/z with highest peak in select scans' do
74
295
  highest_mzs = Mspire::Mzml.foreach(@file).select {|v| v.ms_level > 1 }.map do |spec|
75
- spec.peaks.sort_by(&:last).first.first
296
+ spec.peaks.max_by(&:last)[0]
76
297
  end
77
- highest_mzs.map(&:round).should == [453, 866]
298
+ highest_mzs.map(&:round).should == [746, 644]
78
299
  end
79
300
  end
80
301
  end
@@ -86,8 +307,9 @@ describe Mspire::Mzml do
86
307
  end
87
308
 
88
309
  it 'writes MS1 and MS2 spectra' do
89
- # params: profile and ms_level 1
90
- spec1 = Mspire::Mzml::Spectrum.new('scan=1', params: ['MS:1000128', ['MS:1000511', 1]]) do |spec|
310
+ spec1 = Mspire::Mzml::Spectrum.new('scan=1') do |spec|
311
+ # profile and ms_level 1
312
+ spec.describe_many!(['MS:1000128', ['MS:1000511', 1]])
91
313
  spec.data_arrays = [[1,2,3], [4,5,6]]
92
314
  spec.scan_list = Mspire::Mzml::ScanList.new do |sl|
93
315
  scan = Mspire::Mzml::Scan.new do |scan|
@@ -98,10 +320,9 @@ describe Mspire::Mzml do
98
320
  end
99
321
  end
100
322
 
101
- # centroid, ms_level 2, MSn spectrum,
102
- spec_params = ['MS:1000127', ['MS:1000511', 2], "MS:1000580"]
103
-
104
- spec2 = Mspire::Mzml::Spectrum.new('scan=2', params: spec_params) do |spec|
323
+ spec2 = Mspire::Mzml::Spectrum.new('scan=2') do |spec|
324
+ # centroid, ms_level 2, MSn spectrum,
325
+ spec.describe_many!(['MS:1000127', ['MS:1000511', 2], "MS:1000580"])
105
326
  spec.data_arrays = [[1,2,3.5], [5,6,5]]
106
327
  spec.scan_list = Mspire::Mzml::ScanList.new do |sl|
107
328
  scan = Mspire::Mzml::Scan.new do |scan|
@@ -110,7 +331,7 @@ describe Mspire::Mzml do
110
331
  end
111
332
  sl << scan
112
333
  end
113
- precursor = Mspire::Mzml::Precursor.new( spec1 )
334
+ precursor = Mspire::Mzml::Precursor.new( spec1.id )
114
335
  si = Mspire::Mzml::SelectedIon.new
115
336
  # the selected ion m/z:
116
337
  si.describe! "MS:1000744", 2.0
@@ -129,15 +350,14 @@ describe Mspire::Mzml do
129
350
  fd.file_content = Mspire::Mzml::FileContent.new
130
351
  fd.source_files << Mspire::Mzml::SourceFile.new
131
352
  end
132
- default_instrument_config = Mspire::Mzml::InstrumentConfiguration.new("IC",[], params: ['MS:1000031'])
353
+ default_instrument_config = Mspire::Mzml::InstrumentConfiguration.new("IC").describe!('MS:1000031')
133
354
  mzml.instrument_configurations << default_instrument_config
134
355
  software = Mspire::Mzml::Software.new
135
356
  mzml.software_list << software
136
357
  default_data_processing = Mspire::Mzml::DataProcessing.new("did_nothing")
137
358
  mzml.data_processing_list << default_data_processing
138
359
  mzml.run = Mspire::Mzml::Run.new("little_run", default_instrument_config) do |run|
139
- spectrum_list = Mspire::Mzml::SpectrumList.new(default_data_processing)
140
- spectrum_list.push(spec1, spec2)
360
+ spectrum_list = Mspire::Mzml::SpectrumList.new(default_data_processing, [spec1, spec2])
141
361
  run.spectrum_list = spectrum_list
142
362
  end
143
363
  end
data/spec/spec_helper.rb CHANGED
@@ -11,6 +11,7 @@ TESTFILES = File.dirname(__FILE__) + '/testfiles'
11
11
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
12
 
13
13
  RSpec.configure do |config|
14
+ config.treat_symbols_as_metadata_keys_with_true_values = true
14
15
  config.color_enabled = true
15
16
  config.tty = true
16
17
  config.formatter = :documentation # :progress, :html, :textmate
@@ -0,0 +1,103 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.1_idx.xsd">
3
+ <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="1 BB7 SIM 478.5" version="1.1.0">
4
+ <cvList count="2">
5
+ <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.7.3" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>
6
+ <cv id="UO" fullName="Unit Ontology" version="18:03:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>
7
+ </cvList>
8
+ <fileDescription>
9
+ <fileContent>
10
+ <cvParam cvRef="MS" accession="MS:1001472" name="selected ion monitoring chromatogram" value=""/>
11
+ </fileContent>
12
+ <sourceFileList count="1">
13
+ <sourceFile id="RAW1" name="1 BB7 SIM 478.5.RAW" location="file://D:/Manan Data/25 MARCH/25 MARCH 80 20 M W">
14
+ <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>
15
+ <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW file" value=""/>
16
+ <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="eeaed7c644ebec89cbf80582e0829dcf40632b6f"/>
17
+ </sourceFile>
18
+ </sourceFileList>
19
+ </fileDescription>
20
+ <referenceableParamGroupList count="1">
21
+ <referenceableParamGroup id="CommonInstrumentParams">
22
+ <cvParam cvRef="MS" accession="MS:1000492" name="Thermo Electron instrument model" value=""/>
23
+ <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="LC000249"/>
24
+ <userParam name="instrument model" value="LCQ"/>
25
+ </referenceableParamGroup>
26
+ </referenceableParamGroupList>
27
+ <softwareList count="2">
28
+ <software id="Xcalibur" version="2.0">
29
+ <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>
30
+ </software>
31
+ <software id="pwiz" version="2.2.2954">
32
+ <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard" value=""/>
33
+ </software>
34
+ </softwareList>
35
+ <instrumentConfigurationList count="1">
36
+ <instrumentConfiguration id="IC">
37
+ <cvParam cvRef="MS" accession="MS:1000031" name="instrument model" value=""/>
38
+ </instrumentConfiguration>
39
+ </instrumentConfigurationList>
40
+ <dataProcessingList count="1">
41
+ <dataProcessing id="pwiz_Reader_Thermo_conversion">
42
+ <processingMethod order="0" softwareRef="pwiz">
43
+ <cvParam cvRef="MS" accession="MS:1000544" name="Conversion to mzML" value=""/>
44
+ </processingMethod>
45
+ </dataProcessing>
46
+ </dataProcessingList>
47
+ <run id="_x0031__x0020_BB7_x0020_SIM_x0020_478.5" defaultInstrumentConfigurationRef="IC" startTimeStamp="2012-03-26T17:07:56Z" defaultSourceFileRef="RAW1">
48
+ <chromatogramList count="2" defaultDataProcessingRef="pwiz_Reader_Thermo_conversion">
49
+ <chromatogram index="0" id="TIC" defaultArrayLength="72">
50
+ <cvParam cvRef="MS" accession="MS:1000235" name="total ion current chromatogram" value=""/>
51
+ <binaryDataArrayList count="2">
52
+ <binaryDataArray encodedLength="728">
53
+ <cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
54
+ <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
55
+ <cvParam cvRef="MS" accession="MS:1000595" name="time array" value="" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>
56
+ <binary>eJzTyy71+ZDQZ/9XemHPvWlL7dUqDPyv7N9ovz/iU7fq/h32z50uTenavN/+gOCpF7mRh+2vsFnlLrh8zF7h+yxuz+BT9iZvuCZUnz1rv6TAluv64gv2IFWrky/Zf0iYt6Je+Yp9VfS1VzMeXLVnCePT3TT3ur3WObuattib9ltOlO2bL3Xb/pbDct6SW3fsU6zv+/dOv2d/9Gb7+Q3aD+yBhgFNfGgvK2wzQ/3VQ/skgQjLLSce2YNcO2/FY/tdnjxM2u1P7M+2LtEUTX9qL9R84NRC12f24Q13svVUnttn7SmZLMHywr7uB89upicv7A9/1YjpP/TSnv2zC9Crr+yl9e+qsDW+tk/Q+Xl0Uvwb++KMiW9r7N/a70hd28cp987+9ELXbZ//vrMXmJ8INPK9PUjWNO4D1L8f7G3BDvxo/4Aj9cu2NR/tX6oZcqyR+WTfowoKuU/2U527c57//mRv4SS5Vzf7s71TwtMLSrc/2z+JK1bM9Ppi3xbLWLR+5xd7oGFAH3y1NwIH1Fd7kG/vc3yzX3vV8GBz5Td7YGQAQ/6bfSQoOiK+Q8Phuz0r/7POX+Y/7EGh57D8h/1GbYd3puI/7YPBAfzTPtZjVlDht5/2/900Fm9P/WXPCXLm1V/QcPptLwOK7q2/7YGRAAyJP/aJoOia8gcabn/tS8AR89de/Oa578GP/9rvvB4DNPEfNBz/2YONM/xvDwCMmSix</binary>
57
+ </binaryDataArray>
58
+ <binaryDataArray encodedLength="288">
59
+ <cvParam cvRef="MS" accession="MS:1000521" name="32-bit float" value=""/>
60
+ <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
61
+ <cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of counts"/>
62
+ <binary>eJxjYMABHIxdGVoc3RhmcLkzXKlxZ1gu4c5w7KwbQ4WWG8OH6a4MDS9cGComuTGIlrkzpFx1YxB0cGeQfOPOUMDt0bD8qHvDpknuDD+uuTE4THBlqHjiCjc3JdWNweSoW0NUlzvDqiJ3hjMX3Bgsdrgx1Fi6MRz47YJwwBwXhoYpLgw1rUC5aW4MpRbuDN/+uTEU/HFlEOhwY2goRJj5ocGVQUHXlaFE343BSce9ganXncExxJ1hylc3hgxvN4YFvG4MChNdGAzYIHoebEGyBz8AACv9PyU=</binary>
63
+ </binaryDataArray>
64
+ </binaryDataArrayList>
65
+ </chromatogram>
66
+ <chromatogram index="1" id="SIM SIC 478.5" defaultArrayLength="72">
67
+ <cvParam cvRef="MS" accession="MS:1001472" name="selected ion monitoring chromatogram" value=""/>
68
+ <precursor>
69
+ <isolationWindow>
70
+ <cvParam cvRef="MS" accession="MS:1000827" name="isolation window target m/z" value="478.5" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
71
+ <cvParam cvRef="MS" accession="MS:1000828" name="isolation window lower offset" value="0.5" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
72
+ <cvParam cvRef="MS" accession="MS:1000829" name="isolation window upper offset" value="0.5" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
73
+ </isolationWindow>
74
+ <activation>
75
+ </activation>
76
+ </precursor>
77
+ <binaryDataArrayList count="2">
78
+ <binaryDataArray encodedLength="728">
79
+ <cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>
80
+ <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
81
+ <cvParam cvRef="MS" accession="MS:1000595" name="time array" value="" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>
82
+ <binary>eJzTyy71+ZDQZ/9XemHPvWlL7dUqDPyv7N9ovz/iU7fq/h32z50uTenavN/+gOCpF7mRh+2vsFnlLrh8zF7h+yxuz+BT9iZvuCZUnz1rv6TAluv64gv2IFWrky/Zf0iYt6Je+Yp9VfS1VzMeXLVnCePT3TT3ur3WObuattib9ltOlO2bL3Xb/pbDct6SW3fsU6zv+/dOv2d/9Gb7+Q3aD+yBhgFNfGgvK2wzQ/3VQ/skgQjLLSce2YNcO2/FY/tdnjxM2u1P7M+2LtEUTX9qL9R84NRC12f24Q13svVUnttn7SmZLMHywr7uB89upicv7A9/1YjpP/TSnv2zC9Crr+yl9e+qsDW+tk/Q+Xl0Uvwb++KMiW9r7N/a70hd28cp987+9ELXbZ//vrMXmJ8INPK9PUjWNO4D1L8f7G3BDvxo/4Aj9cu2NR/tX6oZcqyR+WTfowoKuU/2U527c57//mRv4SS5Vzf7s71TwtMLSrc/2z+JK1bM9Ppi3xbLWLR+5xd7oGFAH3y1NwIH1Fd7kG/vc3yzX3vV8GBz5Td7YGQAQ/6bfSQoOiK+Q8Phuz0r/7POX+Y/7EGh57D8h/1GbYd3puI/7YPBAfzTPtZjVlDht5/2/900Fm9P/WXPCXLm1V/QcPptLwOK7q2/7YGRAAyJP/aJoOia8gcabn/tS8AR89de/Oa578GP/9rvvB4DNPEfNBz/2YONM/xvDwCMmSix</binary>
83
+ </binaryDataArray>
84
+ <binaryDataArray encodedLength="288">
85
+ <cvParam cvRef="MS" accession="MS:1000521" name="32-bit float" value=""/>
86
+ <cvParam cvRef="MS" accession="MS:1000574" name="zlib compression" value=""/>
87
+ <cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of counts"/>
88
+ <binary>eJxjYMABHIxdGVoc3RhmcLkzXKlxZ1gu4c5w7KwbQ4WWG8OH6a4MDS9cGComuTGIlrkzpFx1YxB0cGeQfOPOUMDt0bD8qHvDpknuDD+uuTE4THBlqHjiCjc3JdWNweSoW0NUlzvDqiJ3hjMX3Bgsdrgx1Fi6MRz47YJwwBwXhoYpLgw1rUC5aW4MpRbuDN/+uTEU/HFlEOhwY2goRJj5ocGVQUHXlaFE343BSce9ganXncExxJ1hylc3hgxvN4YFvG4MChNdGAzYIHoebEGyBz8AACv9PyU=</binary>
89
+ </binaryDataArray>
90
+ </binaryDataArrayList>
91
+ </chromatogram>
92
+ </chromatogramList>
93
+ </run>
94
+ </mzML>
95
+ <indexList count="2">
96
+ <index name="chromatogram">
97
+ <offset idRef="TIC">3158</offset>
98
+ <offset idRef="SIM SIC 478.5">5334</offset>
99
+ </index>
100
+ </indexList>
101
+ <indexListOffset>8219</indexListOffset>
102
+ <fileChecksum>80aaa01cefde0abbd6178089a0187e7ae742ae95</fileChecksum>
103
+ </indexedmzML>
@@ -74,7 +74,7 @@
74
74
  </dataProcessing>
75
75
  </dataProcessingList>
76
76
  <run id="j24" defaultInstrumentConfigurationRef="IC1" startTimeStamp="2010-07-08T11:34:52Z" defaultSourceFileRef="RAW1">
77
- <spectrumList count="24" defaultDataProcessingRef="pwiz_Reader_Thermo_conversion">
77
+ <spectrumList count="3" defaultDataProcessingRef="pwiz_Reader_Thermo_conversion">
78
78
  <spectrum index="0" id="controllerType=0 controllerNumber=1 scan=1" defaultArrayLength="20168">
79
79
  <cvParam cvRef="MS" accession="MS:1000511" name="ms level" value="1"/>
80
80
  <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>
@@ -258,14 +258,14 @@
258
258
  </mzML>
259
259
  <indexList count="2">
260
260
  <index name="spectrum">
261
- <offset idRef="controllerType=0 controllerNumber=1 scan=1">4398</offset>
262
- <offset idRef="controllerType=0 controllerNumber=1 scan=2">219667</offset>
263
- <offset idRef="controllerType=0 controllerNumber=1 scan=3">227895</offset>
261
+ <offset idRef="controllerType=0 controllerNumber=1 scan=1">4397</offset>
262
+ <offset idRef="controllerType=0 controllerNumber=1 scan=2">219666</offset>
263
+ <offset idRef="controllerType=0 controllerNumber=1 scan=3">227894</offset>
264
264
  </index>
265
265
  <index name="chromatogram">
266
- <offset idRef="TIC">239184</offset>
266
+ <offset idRef="TIC">239183</offset>
267
267
  </index>
268
268
  </indexList>
269
- <indexListOffset>240801</indexListOffset>
269
+ <indexListOffset>240800</indexListOffset>
270
270
  <fileChecksum>4204d7e91808d1976df85df5c97f239ff085090d</fileChecksum>
271
271
  </indexedmzML>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mspire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.18
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-17 00:00:00.000000000 Z
13
+ date: 2012-07-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -192,7 +192,7 @@ description: mass spectrometry proteomics, lipidomics, and tools, a rewrite of m
192
192
  merging of ms-* gems
193
193
  email: jtprince@gmail.com
194
194
  executables:
195
- - mzml_to_imzml
195
+ - mspire
196
196
  extensions: []
197
197
  extra_rdoc_files:
198
198
  - LICENSE
@@ -202,8 +202,9 @@ files:
202
202
  - README.rdoc
203
203
  - Rakefile
204
204
  - VERSION
205
- - bin/mzml_to_imzml
205
+ - bin/mspire
206
206
  - lib/core_ext/array/in_groups.rb
207
+ - lib/core_ext/enumerable.rb
207
208
  - lib/cv.rb
208
209
  - lib/cv/param.rb
209
210
  - lib/cv/referenceable_param_group_ref.rb
@@ -211,6 +212,7 @@ files:
211
212
  - lib/merge.rb
212
213
  - lib/mspire.rb
213
214
  - lib/mspire/bin.rb
215
+ - lib/mspire/commandline.rb
214
216
  - lib/mspire/cv/obo.rb
215
217
  - lib/mspire/cv/param.rb
216
218
  - lib/mspire/cv/paramable.rb
@@ -260,14 +262,19 @@ files:
260
262
  - lib/mspire/mzml/data_processing.rb
261
263
  - lib/mspire/mzml/file_content.rb
262
264
  - lib/mspire/mzml/file_description.rb
265
+ - lib/mspire/mzml/index.rb
263
266
  - lib/mspire/mzml/index_list.rb
264
267
  - lib/mspire/mzml/instrument_configuration.rb
268
+ - lib/mspire/mzml/io_index.rb
269
+ - lib/mspire/mzml/io_indexable_list.rb
265
270
  - lib/mspire/mzml/isolation_window.rb
266
271
  - lib/mspire/mzml/list.rb
272
+ - lib/mspire/mzml/parser.rb
267
273
  - lib/mspire/mzml/plms1.rb
268
274
  - lib/mspire/mzml/precursor.rb
269
275
  - lib/mspire/mzml/processing_method.rb
270
276
  - lib/mspire/mzml/product.rb
277
+ - lib/mspire/mzml/reader.rb
271
278
  - lib/mspire/mzml/referenceable_param_group.rb
272
279
  - lib/mspire/mzml/run.rb
273
280
  - lib/mspire/mzml/sample.rb
@@ -325,11 +332,11 @@ files:
325
332
  - spec/mspire/mzml/cv_spec.rb
326
333
  - spec/mspire/mzml/data_array_spec.rb
327
334
  - spec/mspire/mzml/file_content_spec.rb
328
- - spec/mspire/mzml/file_description_spec.rb
329
335
  - spec/mspire/mzml/index_list_spec.rb
330
336
  - spec/mspire/mzml/plms1_spec.rb
331
337
  - spec/mspire/mzml/referenceable_param_group_spec.rb
332
338
  - spec/mspire/mzml/source_file_spec.rb
339
+ - spec/mspire/mzml/spectrum_list_spec.rb
333
340
  - spec/mspire/mzml/spectrum_spec.rb
334
341
  - spec/mspire/mzml_spec.rb
335
342
  - spec/mspire/peaklist_spec.rb
@@ -345,6 +352,7 @@ files:
345
352
  - spec/testfiles/mspire/ident/peptide/db/uni_11_sp_tr.msd_clvg2.min_aaseq4.yml
346
353
  - spec/testfiles/mspire/imzml/continuous_binary_check.ibd
347
354
  - spec/testfiles/mspire/imzml/processed_binary_check.ibd
355
+ - spec/testfiles/mspire/mzml/1_BB7_SIM_478.5.mzML
348
356
  - spec/testfiles/mspire/mzml/j24z.idx_comp.3.mzML
349
357
  - spec/testfiles/mspire/mzml/mspire_simulated.MSn.check.mzML
350
358
  - spec/testfiles/mspire/mzml/openms.noidx_nocomp.12.mzML
@@ -390,7 +398,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
398
  version: '0'
391
399
  requirements: []
392
400
  rubyforge_project:
393
- rubygems_version: 1.8.18
401
+ rubygems_version: 1.8.24
394
402
  signing_key:
395
403
  specification_version: 3
396
404
  summary: mass spectrometry proteomics, lipidomics, and tools
data/bin/mzml_to_imzml DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: UTF-8
3
-
4
- require 'mspire/imzml/writer/commandline'
5
-
6
- argv = ARGV.dup
7
- ARGV.clear
8
- Mspire::Imzml::Writer::Commandline.run(argv)
9
-
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
- require 'mspire/mzml/file_description'
3
- require 'builder'
4
-
5
- describe 'creating mzml xml' do
6
- describe Mspire::Mzml::FileDescription do
7
-
8
- it 'creates valid xml'
9
-
10
- it 'can be set from xml'
11
- end
12
- end