mspire 0.6.12 → 0.6.18

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.12
1
+ 0.6.18
@@ -9,6 +9,8 @@ require 'ms/mzml/file_description'
9
9
  require 'ms/mzml/software'
10
10
  require 'ms/mzml/scan_list'
11
11
  require 'ms/mzml/scan'
12
+ require 'ms/mzml/scan_settings'
13
+ require 'ms/mzml/processing_method'
12
14
  require 'ms/mzml/run'
13
15
  require 'ms/mzml/spectrum_list'
14
16
  require 'ms/mzml/chromatogram_list'
@@ -1,9 +1,11 @@
1
1
  require 'base64'
2
2
  require 'zlib'
3
+ require 'ms/cv/paramable'
3
4
 
4
5
  module MS
5
6
  class Mzml
6
7
  class DataArray < Array
8
+ include MS::CV::Paramable
7
9
 
8
10
  DEFAULT_DTYPE = :float64
9
11
  DEFAULT_COMPRESSION = true
@@ -18,13 +20,14 @@ module MS
18
20
  # the type of data array (:mz or :intensity)
19
21
  attr_accessor :type
20
22
 
21
- # requires a type, :mz or :intensity
22
- def initialize(_type, ar=[])
23
+ # requires a type, :mz, :intensity, :mz_external, or :intensity_external
24
+ # (external types used in imzml)
25
+ def initialize(_type, opts={params: []})
23
26
  @type = _type
24
- super(ar)
27
+ @external = !!(@type.to_s =~ /external$/)
25
28
  end
26
29
 
27
- def self.to_mzml_string(array_ish, dtype=DEFAULT_DTYPE, compression=DEFAULT_COMPRESSION)
30
+ def self.to_binary(array_ish, dtype=DEFAULT_DTYPE, compression=DEFAULT_COMPRESSION)
28
31
  pack_code =
29
32
  case dtype
30
33
  when :float64 ; 'E*'
@@ -40,12 +43,22 @@ module MS
40
43
  end
41
44
 
42
45
  def to_xml(builder, dtype=DEFAULT_DTYPE, compression=DEFAULT_COMPRESSION)
43
- base64 = self.class.to_mzml_string(self, dtype, compression)
44
- builder.binaryDataArray(encodedLength: base64.bytesize) do |bda_n|
45
- MS::CV::Param[ DTYPE_TO_ACC[dtype] ].to_xml(bda_n)
46
- MS::CV::Param[ compression ? 'MS:1000574' : 'MS:1000576' ].to_xml(bda_n)
47
- MS::CV::Param[ (@type == :mz) ? 'MS:1000514' : 'MS:1000515' ].to_xml(bda_n) # must be m/z or intensity
48
- bda_n.binary(base64)
46
+ encoded_length =
47
+ if @external
48
+ 0
49
+ else
50
+ base64 = self.class.to_binary(self, dtype, compression)
51
+ base64.bytesize
52
+ end
53
+
54
+ builder.binaryDataArray(encodedLength: encoded_length) do |bda_n|
55
+ @params.each {|param| param.to_xml(bda_n) } if @params
56
+ unless @external
57
+ MS::CV::Param[ DTYPE_TO_ACC[dtype] ].to_xml(bda_n)
58
+ MS::CV::Param[ compression ? 'MS:1000574' : 'MS:1000576' ].to_xml(bda_n)
59
+ MS::CV::Param[ (@type == :mz) ? 'MS:1000514' : 'MS:1000515' ].to_xml(bda_n) # must be m/z or intensity
60
+ bda_n.binary(base64)
61
+ end
49
62
  end
50
63
  end
51
64
 
@@ -53,7 +66,14 @@ module MS
53
66
  def self.list_xml(arrays, builder)
54
67
  builder.binaryDataArrayList(count: arrays.size) do |bdal_n|
55
68
  arrays.zip([:mz, :intensity]) do |data_ar, typ|
56
- ar = data_ar.is_a?(MS::Mzml::DataArray) ? data_ar : MS::Mzml::DataArray.new(typ, data_ar)
69
+ ar =
70
+ if data_ar.is_a?(MS::Mzml::DataArray)
71
+ data_ar
72
+ else
73
+ real_data_array = MS::Mzml::DataArray.new(typ)
74
+ real_data_array.replace(data_ar)
75
+ real_data_array
76
+ end
57
77
  ar.type = typ unless ar.type
58
78
  ar.to_xml(bdal_n)
59
79
  end
@@ -32,7 +32,15 @@ module MS
32
32
  end
33
33
 
34
34
  def default_array_length
35
- @data_arrays ? @data_arrays.first.size : 0
35
+ if @data_arrays
36
+ if @data_arrays.first
37
+ @data_arrays.first.size
38
+ else
39
+ 0
40
+ end
41
+ else
42
+ 0
43
+ end
36
44
  end
37
45
 
38
46
  # see SpectrumList for generating the entire list
@@ -19,7 +19,7 @@ module MS
19
19
 
20
20
  def to_xml(builder)
21
21
  builder.scanList(count: self.size) do |sl_n|
22
- @description.to_xml(sl_n) if @description
22
+ @params.each {|param| param.to_xml(sl_n) } if @params
23
23
  self.each do |scan|
24
24
  scan.to_xml(sl_n)
25
25
  end
@@ -299,7 +299,7 @@ relationship: is_a IMS:1000001 ! Ibd Offest Handle
299
299
  relationship: has_units UO:0000189 ! Count
300
300
 
301
301
  [Term]
302
- id: IMS:100104
302
+ id: IMS:1000104
303
303
  name: external encoded length
304
304
  def: "Describes the length of the written data." [COMPUTIS:IMS]
305
305
  xref: value-type:xsd\:nonNegativeInteger "The allowed value-type for this CV term."
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.6.12
4
+ version: 0.6.18
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-02-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
17
- requirement: &7957300 !ruby/object:Gem::Requirement
17
+ requirement: &19554840 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '1.5'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *7957300
25
+ version_requirements: *19554840
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bsearch
28
- requirement: &8341740 !ruby/object:Gem::Requirement
28
+ requirement: &19553820 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.5.0
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *8341740
36
+ version_requirements: *19553820
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: andand
39
- requirement: &8425040 !ruby/object:Gem::Requirement
39
+ requirement: &19552180 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.3.1
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *8425040
47
+ version_requirements: *19552180
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: obo
50
- requirement: &8500240 !ruby/object:Gem::Requirement
50
+ requirement: &19550640 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.1.0
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *8500240
58
+ version_requirements: *19550640
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rspec
61
- requirement: &8496940 !ruby/object:Gem::Requirement
61
+ requirement: &19565640 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '2.6'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *8496940
69
+ version_requirements: *19565640
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: jeweler
72
- requirement: &8574880 !ruby/object:Gem::Requirement
72
+ requirement: &19564260 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 1.5.2
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *8574880
80
+ version_requirements: *19564260
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rcov
83
- requirement: &8588620 !ruby/object:Gem::Requirement
83
+ requirement: &19563540 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,7 +88,7 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *8588620
91
+ version_requirements: *19563540
92
92
  description: mass spectrometry proteomics, lipidomics, and tools, a rewrite of mspire,
93
93
  merging of ms-* gems
94
94
  email: jtprince@gmail.com