mspire 0.7.18 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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