mspire 0.6.26 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/mspire.rb +1 -1
- data/lib/{ms → mspire}/cv.rb +1 -1
- data/lib/{ms → mspire}/cv/param.rb +5 -5
- data/lib/{ms → mspire}/cv/paramable.rb +5 -5
- data/lib/{ms → mspire}/digester.rb +2 -2
- data/lib/{ms → mspire}/error_rate/decoy.rb +1 -1
- data/lib/{ms → mspire}/error_rate/qvalue.rb +4 -4
- data/lib/{ms → mspire}/fasta.rb +5 -5
- data/lib/{ms → mspire}/ident.rb +10 -10
- data/lib/{ms → mspire}/ident/peptide.rb +3 -3
- data/lib/{ms → mspire}/ident/peptide/db.rb +12 -12
- data/lib/{ms → mspire}/ident/peptide_hit.rb +6 -6
- data/lib/{ms → mspire}/ident/peptide_hit/qvalue.rb +7 -7
- data/lib/{ms → mspire}/ident/pepxml.rb +7 -7
- data/lib/{ms → mspire}/ident/pepxml/modifications.rb +7 -7
- data/lib/{ms → mspire}/ident/pepxml/msms_pipeline_analysis.rb +6 -6
- data/lib/{ms → mspire}/ident/pepxml/msms_run_summary.rb +9 -9
- data/lib/{ms → mspire}/ident/pepxml/parameters.rb +1 -1
- data/lib/{ms → mspire}/ident/pepxml/sample_enzyme.rb +4 -4
- data/lib/{ms → mspire}/ident/pepxml/search_database.rb +5 -5
- data/lib/{ms → mspire}/ident/pepxml/search_hit.rb +4 -4
- data/lib/{ms → mspire}/ident/pepxml/search_hit/modification_info.rb +7 -7
- data/lib/{ms → mspire}/ident/pepxml/search_result.rb +5 -5
- data/lib/{ms → mspire}/ident/pepxml/search_summary.rb +12 -12
- data/lib/{ms → mspire}/ident/pepxml/spectrum_query.rb +7 -7
- data/lib/{ms → mspire}/ident/protein.rb +2 -2
- data/lib/{ms → mspire}/ident/protein_group.rb +2 -2
- data/lib/{ms → mspire}/ident/search.rb +1 -1
- data/lib/{ms → mspire}/isotope.rb +3 -3
- data/lib/{ms → mspire}/isotope/aa.rb +1 -1
- data/lib/{ms → mspire}/isotope/distribution.rb +17 -17
- data/lib/{ms → mspire}/isotope/nist_isotope_info.yml +0 -0
- data/lib/{ms → mspire}/mascot.rb +1 -1
- data/lib/{ms → mspire}/mass.rb +7 -7
- data/lib/{ms → mspire}/mass/aa.rb +6 -6
- data/lib/{ms → mspire}/molecular_formula.rb +7 -7
- data/lib/{ms → mspire}/mzml.rb +55 -55
- data/lib/{ms → mspire}/mzml/activation.rb +3 -3
- data/lib/{ms → mspire}/mzml/chromatogram.rb +3 -3
- data/lib/{ms → mspire}/mzml/chromatogram_list.rb +1 -1
- data/lib/{ms → mspire}/mzml/component.rb +5 -5
- data/lib/{ms → mspire}/mzml/contact.rb +3 -3
- data/lib/{ms → mspire}/mzml/cv.rb +1 -1
- data/lib/{ms → mspire}/mzml/data_array.rb +12 -12
- data/lib/{ms → mspire}/mzml/data_array_container_like.rb +7 -7
- data/lib/{ms → mspire}/mzml/data_processing.rb +3 -3
- data/lib/{ms → mspire}/mzml/file_content.rb +3 -3
- data/lib/{ms → mspire}/mzml/file_description.rb +4 -4
- data/lib/{ms → mspire}/mzml/index_list.rb +2 -2
- data/lib/{ms → mspire}/mzml/instrument_configuration.rb +7 -7
- data/lib/{ms → mspire}/mzml/isolation_window.rb +3 -3
- data/lib/{ms → mspire}/mzml/list.rb +1 -1
- data/lib/{ms → mspire}/mzml/plms1.rb +3 -3
- data/lib/{ms → mspire}/mzml/precursor.rb +6 -6
- data/lib/{ms → mspire}/mzml/processing_method.rb +3 -3
- data/lib/{ms → mspire}/mzml/product.rb +3 -3
- data/lib/{ms → mspire}/mzml/referenceable_param_group.rb +4 -4
- data/lib/{ms → mspire}/mzml/run.rb +3 -3
- data/lib/{ms → mspire}/mzml/sample.rb +5 -5
- data/lib/{ms → mspire}/mzml/scan.rb +4 -4
- data/lib/{ms → mspire}/mzml/scan_list.rb +3 -3
- data/lib/{ms → mspire}/mzml/scan_settings.rb +5 -5
- data/lib/{ms → mspire}/mzml/selected_ion.rb +5 -5
- data/lib/{ms → mspire}/mzml/software.rb +5 -5
- data/lib/{ms → mspire}/mzml/source_file.rb +5 -5
- data/lib/{ms → mspire}/mzml/spectrum.rb +33 -20
- data/lib/{ms → mspire}/mzml/spectrum_list.rb +4 -4
- data/lib/{ms → mspire}/obo.rb +1 -1
- data/lib/{ms → mspire}/peak.rb +3 -3
- data/lib/{ms → mspire}/peak/point.rb +1 -1
- data/lib/{ms → mspire}/plms1.rb +4 -4
- data/lib/{ms → mspire}/quant/qspec.rb +4 -4
- data/lib/{ms → mspire}/quant/qspec/protein_group_comparison.rb +4 -4
- data/lib/{ms → mspire}/spectrum.rb +6 -6
- data/lib/{ms → mspire}/spectrum/centroid.rb +1 -1
- data/lib/{ms → mspire}/spectrum_like.rb +5 -5
- data/lib/{ms → mspire}/user_param.rb +2 -2
- data/script/mzml_read_binary.rb +1 -1
- data/spec/{ms → mspire}/cv/param_spec.rb +6 -6
- data/spec/{ms → mspire}/digester_spec.rb +10 -10
- data/spec/{ms → mspire}/error_rate/qvalue_spec.rb +3 -3
- data/spec/{ms → mspire}/fasta_spec.rb +10 -10
- data/spec/{ms → mspire}/ident/peptide/db_spec.rb +9 -9
- data/spec/{ms → mspire}/ident/pepxml/sample_enzyme_spec.rb +10 -10
- data/spec/{ms → mspire}/ident/pepxml/search_hit/modification_info_spec.rb +4 -4
- data/spec/{ms → mspire}/ident/pepxml_spec.rb +22 -22
- data/spec/{ms → mspire}/ident/protein_group_spec.rb +4 -4
- data/spec/{ms → mspire}/isotope/aa_spec.rb +3 -3
- data/spec/{ms → mspire}/isotope/distribution_spec.rb +4 -4
- data/spec/{ms → mspire}/isotope_spec.rb +9 -9
- data/spec/{ms → mspire}/mass_spec.rb +8 -8
- data/spec/{ms → mspire}/molecular_formula_spec.rb +4 -4
- data/spec/{ms → mspire}/mzml/cv_spec.rb +4 -4
- data/spec/{ms → mspire}/mzml/data_array_spec.rb +7 -7
- data/spec/{ms → mspire}/mzml/file_content_spec.rb +4 -4
- data/spec/{ms → mspire}/mzml/file_description_spec.rb +4 -4
- data/spec/{ms → mspire}/mzml/index_list_spec.rb +13 -13
- data/spec/{ms → mspire}/mzml/plms1_spec.rb +8 -8
- data/spec/{ms → mspire}/mzml/referenceable_param_group_spec.rb +6 -6
- data/spec/{ms → mspire}/mzml_spec.rb +30 -30
- data/spec/{ms → mspire}/peak_spec.rb +10 -10
- data/spec/{ms → mspire}/plms1_spec.rb +7 -7
- data/spec/{ms → mspire}/quant/qspec_spec.rb +2 -2
- data/spec/{ms → mspire}/spectrum_spec.rb +8 -8
- data/spec/{ms → mspire}/user_param_spec.rb +8 -8
- data/spec/testfiles/{ms → mspire}/ident/peptide/db/uni_11_sp_tr.fasta +0 -0
- data/spec/testfiles/{ms → mspire}/ident/peptide/db/uni_11_sp_tr.msd_clvg2.min_aaseq4.yml +0 -0
- data/spec/testfiles/{ms → mspire}/mzml/j24z.idx_comp.3.mzML +0 -0
- data/spec/testfiles/{ms → mspire}/mzml/mspire_simulated.MSn.check.mzML +0 -0
- data/spec/testfiles/{ms → mspire}/mzml/openms.noidx_nocomp.12.mzML +0 -0
- data/spec/testfiles/{ms → mspire}/quant/kill_extra_tabs.rb +0 -0
- data/spec/testfiles/{ms → mspire}/quant/max_quant_output.provenance.txt +0 -0
- data/spec/testfiles/{ms → mspire}/quant/max_quant_output.txt +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_final.killedextratabs.tsv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_final.killedextratabs.tsv_qspecgp +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_final.killedextratabs.tsv_qspecgp.csv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_final.txt +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_final.txt_qspecgp +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.CSV.csv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.csv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.oneprot.csv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.oneprot.tsv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.oneprot.tsv_qspecgp +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.oneprot.tsv_qspecgp.csv +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_qspec.txt +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_tabdel.txt +0 -0
- data/spec/testfiles/{ms → mspire}/quant/pdcd5_lfq_tabdel.txt_qspecgp +0 -0
- data/spec/testfiles/{ms → mspire}/quant/remove_rest_of_proteins.rb +0 -0
- data/spec/testfiles/{ms → mspire}/quant/unlog_transform.rb +0 -0
- metadata +148 -194
- data/lib/ms.rb +0 -3
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/mzml/list'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
class DataProcessing
|
6
6
|
|
@@ -21,7 +21,7 @@ module MS
|
|
21
21
|
builder
|
22
22
|
end
|
23
23
|
|
24
|
-
extend(
|
24
|
+
extend(Mspire::Mzml::List)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
# This summarizes the different types of spectra that can be expected in
|
6
6
|
# the file. This is expected to aid processing software in skipping files
|
@@ -8,7 +8,7 @@ module MS
|
|
8
8
|
# describe the nativeID format used in the file by referring to an
|
9
9
|
# appropriate CV term.
|
10
10
|
class FileContent
|
11
|
-
include
|
11
|
+
include Mspire::CV::Paramable
|
12
12
|
|
13
13
|
def to_xml(builder, &block)
|
14
14
|
builder.fileContent do |fc_n|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require '
|
1
|
+
require 'mspire/mzml/file_content'
|
2
|
+
require 'mspire/mzml/source_file'
|
3
|
+
require 'mspire/mzml/contact'
|
4
4
|
|
5
|
-
module
|
5
|
+
module Mspire
|
6
6
|
class Mzml
|
7
7
|
class FileDescription
|
8
8
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module Mspire
|
2
2
|
class Mzml
|
3
3
|
# A simple array of indices but #[] has been overloaded to find an index
|
4
4
|
# by name
|
@@ -12,7 +12,7 @@ module MS
|
|
12
12
|
|
13
13
|
# @param [Object] an Integer (index number) or a Symbol (:spectrum or
|
14
14
|
# :chromatogram)
|
15
|
-
# @return [
|
15
|
+
# @return [Mspire::Mzml::Index] an index object
|
16
16
|
def [](int_or_symbol)
|
17
17
|
if int_or_symbol.is_a?(Integer)
|
18
18
|
old_bracket_slice(int_or_symbol)
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
|
+
require 'mspire/mzml/component'
|
3
|
+
require 'mspire/mzml/list'
|
4
4
|
|
5
|
-
module
|
5
|
+
module Mspire
|
6
6
|
class Mzml
|
7
7
|
class InstrumentConfiguration
|
8
|
-
include
|
8
|
+
include Mspire::CV::Paramable
|
9
9
|
|
10
10
|
# (required) the id that this guy can be referenced from
|
11
11
|
attr_accessor :id
|
@@ -25,13 +25,13 @@ module MS
|
|
25
25
|
def to_xml(builder)
|
26
26
|
builder.instrumentConfiguration(id: @id) do |inst_conf_n|
|
27
27
|
super(builder)
|
28
|
-
|
28
|
+
Mspire::Mzml::Component.list_xml(components, inst_conf_n)
|
29
29
|
inst_conf_n.softwareRef(ref: @software.id) if @software
|
30
30
|
end
|
31
31
|
builder
|
32
32
|
end
|
33
33
|
|
34
|
-
self.extend(
|
34
|
+
self.extend(Mspire::Mzml::List)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
|
6
6
|
# MUST supply a *child* term of MS:1000792 (isolation window attribute) one or more times
|
@@ -15,7 +15,7 @@ module MS
|
|
15
15
|
# e.g.: MS:1000828 (isolation window lower offset)
|
16
16
|
# e.g.: MS:1000829 (isolation window upper offset)
|
17
17
|
class IsolationWindow
|
18
|
-
include
|
18
|
+
include Mspire::CV::Paramable
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
|
-
require '
|
2
|
+
require 'mspire/plms1'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Mspire
|
5
5
|
class Mzml
|
6
6
|
# will use scan numbers if use_scan_nums is true, otherwise it will use index
|
7
7
|
# numbers in place of scan nums
|
@@ -28,7 +28,7 @@ module MS
|
|
28
28
|
end
|
29
29
|
# plms1 only requires that the obect respond to :each, giving a spectrum
|
30
30
|
# object, so an Mzml object will work.
|
31
|
-
|
31
|
+
Mspire::Plms1.new(scan_nums, retention_times, self)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'mspire/mzml/list'
|
2
|
+
require 'mspire/mzml/selected_ion'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Mspire
|
5
5
|
class Mzml
|
6
6
|
# The method of precursor ion selection and activation
|
7
7
|
class Precursor
|
8
|
-
# (optional) the
|
8
|
+
# (optional) the Mspire::Mzml::Spectrum object from which the precursor is
|
9
9
|
# derived
|
10
10
|
attr_accessor :spectrum
|
11
11
|
|
@@ -35,12 +35,12 @@ module MS
|
|
35
35
|
end
|
36
36
|
builder.precursor(atts) do |prec_n|
|
37
37
|
@isolation_window.to_xml(prec_n) if @isolation_window
|
38
|
-
|
38
|
+
Mspire::Mzml::SelectedIon.list_xml(@selected_ions, prec_n) if @selected_ions
|
39
39
|
@activation.to_xml(prec_n) if @activation
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
extend(
|
43
|
+
extend(Mspire::Mzml::List)
|
44
44
|
|
45
45
|
end
|
46
46
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/mzml/list'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
class Product
|
6
6
|
attr_accessor :isolation_window
|
@@ -15,7 +15,7 @@ module MS
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
extend(
|
18
|
+
extend(Mspire::Mzml::List)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -1,14 +1,14 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
|
6
6
|
# need to call to_xml_definition (or use
|
7
|
-
#
|
7
|
+
# Mspire::Mzml::ReferenceableParamGroupList.list_xml) to get the xml for the
|
8
8
|
# object itself (and not a reference). Merely callying #to_xml will
|
9
9
|
# result in a referenceableParamGroupRef being created.
|
10
10
|
class ReferenceableParamGroup
|
11
|
-
include
|
11
|
+
include Mspire::CV::Paramable
|
12
12
|
|
13
13
|
attr_accessor :id
|
14
14
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
|
+
require 'mspire/mzml/list'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Mspire
|
5
5
|
class Mzml
|
6
6
|
class Sample
|
7
|
-
include
|
7
|
+
include Mspire::CV::Paramable
|
8
8
|
|
9
9
|
attr_accessor :id, :name
|
10
10
|
|
@@ -21,7 +21,7 @@ module MS
|
|
21
21
|
builder
|
22
22
|
end
|
23
23
|
|
24
|
-
extend(
|
24
|
+
extend(Mspire::Mzml::List)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
class Scan
|
6
|
-
include
|
6
|
+
include Mspire::CV::Paramable
|
7
7
|
|
8
|
-
# (optional) the
|
8
|
+
# (optional) the Mspire::Mzml::Spectrum object from which the precursor is
|
9
9
|
# derived. (the sourceFileRef is derived from this spectrum object if
|
10
10
|
# from_external_source_file == true)
|
11
11
|
attr_accessor :spectrum
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
2
|
|
3
|
-
module
|
3
|
+
module Mspire
|
4
4
|
class Mzml
|
5
5
|
|
6
6
|
# MUST supply a *child* term of MS:1000570 (spectra combination) only once
|
@@ -10,7 +10,7 @@ module MS
|
|
10
10
|
# e.g.: MS:1000575 (mean of spectra)
|
11
11
|
# e.g.: MS:1000795 (no combination)
|
12
12
|
class ScanList < Array
|
13
|
-
include
|
13
|
+
include Mspire::CV::Paramable
|
14
14
|
|
15
15
|
def initialize(opts={params: []}, &block)
|
16
16
|
describe!(*opts[:params])
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'mspire/mzml/list'
|
2
|
+
require 'mspire/cv/paramable'
|
3
3
|
|
4
|
-
module
|
4
|
+
module Mspire
|
5
5
|
class Mzml
|
6
6
|
class ScanSettings
|
7
|
-
include
|
7
|
+
include Mspire::CV::Paramable
|
8
8
|
|
9
9
|
attr_accessor :id
|
10
10
|
|
@@ -21,7 +21,7 @@ module MS
|
|
21
21
|
builder
|
22
22
|
end
|
23
23
|
|
24
|
-
extend(
|
24
|
+
extend(Mspire::Mzml::List)
|
25
25
|
|
26
26
|
end
|
27
27
|
end
|
@@ -1,8 +1,8 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'mspire/mzml/list'
|
2
|
+
require 'mspire/cv/paramable'
|
3
3
|
|
4
4
|
|
5
|
-
module
|
5
|
+
module Mspire
|
6
6
|
class Mzml
|
7
7
|
# MUST supply a *child* term of MS:1000455 (ion selection attribute) one or more times
|
8
8
|
#
|
@@ -11,8 +11,8 @@ module MS
|
|
11
11
|
# e.g.: MS:1000633 (possible charge state)
|
12
12
|
# e.g.: MS:1000744 (selected ion m/z)
|
13
13
|
class SelectedIon
|
14
|
-
include
|
15
|
-
extend(
|
14
|
+
include Mspire::CV::Paramable
|
15
|
+
extend(Mspire::Mzml::List)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'mspire'
|
2
|
-
require '
|
3
|
-
require '
|
2
|
+
require 'mspire/mzml/list'
|
3
|
+
require 'mspire/cv/paramable'
|
4
4
|
|
5
|
-
module
|
5
|
+
module Mspire
|
6
6
|
class Mzml
|
7
7
|
class Software
|
8
|
-
include
|
8
|
+
include Mspire::CV::Paramable
|
9
9
|
|
10
10
|
attr_accessor :id, :version
|
11
11
|
|
@@ -22,7 +22,7 @@ module MS
|
|
22
22
|
builder
|
23
23
|
end
|
24
24
|
|
25
|
-
extend(
|
25
|
+
extend(Mspire::Mzml::List)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'mspire/cv/paramable'
|
2
|
+
require 'mspire/mzml/list'
|
3
3
|
require 'pathname'
|
4
4
|
|
5
|
-
module
|
5
|
+
module Mspire
|
6
6
|
class Mzml
|
7
7
|
class SourceFile
|
8
|
-
include
|
8
|
+
include Mspire::CV::Paramable
|
9
9
|
|
10
10
|
DEFAULT_SOURCEFILE_ID = 'sourcefile1'
|
11
11
|
|
@@ -44,7 +44,7 @@ module MS
|
|
44
44
|
builder
|
45
45
|
end
|
46
46
|
|
47
|
-
extend(
|
47
|
+
extend(Mspire::Mzml::List)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
6
|
-
require '
|
7
|
-
|
8
|
-
module
|
1
|
+
require 'mspire/mzml/data_array_container_like'
|
2
|
+
require 'mspire/spectrum_like'
|
3
|
+
require 'mspire/mzml/data_array'
|
4
|
+
require 'mspire/mzml/scan_list'
|
5
|
+
require 'mspire/mzml/precursor'
|
6
|
+
require 'mspire/mzml/product'
|
7
|
+
|
8
|
+
module Mspire
|
9
9
|
class Mzml
|
10
10
|
|
11
11
|
# MAY supply a *child* term of MS:1000465 (scan polarity) only once
|
@@ -39,10 +39,10 @@ module MS
|
|
39
39
|
# e.g.: MS:1000796 (spectrum title)
|
40
40
|
# et al.
|
41
41
|
class Spectrum
|
42
|
-
include
|
43
|
-
include
|
42
|
+
include Mspire::SpectrumLike
|
43
|
+
include Mspire::Mzml::DataArrayContainerLike
|
44
44
|
|
45
|
-
# (optional) an
|
45
|
+
# (optional) an Mspire::Mzml::SourceFile object
|
46
46
|
attr_accessor :source_file
|
47
47
|
|
48
48
|
# (optional) The identifier for the spot from which this spectrum was derived, if a
|
@@ -64,13 +64,14 @@ module MS
|
|
64
64
|
# currently being described, ordered.
|
65
65
|
attr_accessor :products
|
66
66
|
|
67
|
+
# retention time in seconds
|
67
68
|
attr_accessor :retention_time
|
68
69
|
# when properly implemented, this will access the first scan and the
|
69
70
|
# 'scan start time' cv element.
|
70
71
|
|
71
72
|
# takes a Nokogiri node and sets relevant properties
|
72
73
|
def self.from_xml(xml)
|
73
|
-
spec =
|
74
|
+
spec = Mspire::Mzml::Spectrum.new(xml[:id])
|
74
75
|
|
75
76
|
params = {}
|
76
77
|
xml.xpath("./cvParam").each do |cvparam|
|
@@ -84,27 +85,39 @@ module MS
|
|
84
85
|
# this is a quick hack to get retention time, implement fully as shown
|
85
86
|
# below!
|
86
87
|
cv_param = xml.xpath("./scanList/scan/cvParam[@accession='MS:1000016']").first
|
87
|
-
|
88
|
+
if cv_param
|
89
|
+
retention_time = cv_param['value'].to_f
|
90
|
+
units = cv_param['unitAccession']
|
91
|
+
multiplier =
|
92
|
+
case units
|
93
|
+
when 'UO:0000010' ; 1 # second
|
94
|
+
when 'UO:0000031' ; 60 # minute
|
95
|
+
when 'UO:0000032' ; 3600 # hour
|
96
|
+
when 'UO:0000028' ; 0.001 # millisecond
|
97
|
+
else raise 'unsupported units'
|
98
|
+
end
|
99
|
+
retention_time *= multiplier
|
100
|
+
end
|
88
101
|
|
89
102
|
# this is roughly how the scan list stuff should be implemented:
|
90
103
|
=begin
|
91
|
-
sl_obj =
|
104
|
+
sl_obj = Mspire::Mzml::ScanList.new
|
92
105
|
|
93
106
|
# TODO: need to slot in all the other info in reasonable ways
|
94
107
|
# TODO: need to make sure we deal with referencable params
|
95
108
|
scan_list = xml.xpath('.scanList/scan').each do |scan_n|
|
96
|
-
sl_obj <<
|
109
|
+
sl_obj << Mspire::Mzml::Scan.from_xml(scan_n)
|
97
110
|
end
|
98
111
|
=end
|
99
112
|
|
100
113
|
data_arrays = xml.xpath('./binaryDataArrayList/binaryDataArray').map do |binary_data_array_n|
|
101
114
|
accessions = binary_data_array_n.xpath('./cvParam').map {|node| node['accession'] }
|
102
115
|
base64 = binary_data_array_n.xpath('./binary').text
|
103
|
-
|
116
|
+
Mspire::Mzml::DataArray.from_binary(base64, accessions)
|
104
117
|
end
|
105
118
|
# if there is no spectrum, we will still return a spectrum object, it
|
106
119
|
# just has no mzs or intensities
|
107
|
-
data_arrays = [
|
120
|
+
data_arrays = [Mspire::Mzml::DataArray.new, Mspire::Mzml::DataArray.new] if data_arrays.size == 0
|
108
121
|
spec.data_arrays = data_arrays
|
109
122
|
spec.retention_time = retention_time
|
110
123
|
spec
|
@@ -114,7 +127,7 @@ module MS
|
|
114
127
|
#
|
115
128
|
# This would generate a spectrum of ms_level=2 :
|
116
129
|
#
|
117
|
-
#
|
130
|
+
# Mspire::Mzml::Spectrum.new(0, "scan=1", 'MS:1000511')
|
118
131
|
#
|
119
132
|
def initialize(id, opts={params: []}, &block)
|
120
133
|
@id = id
|
@@ -130,8 +143,8 @@ module MS
|
|
130
143
|
atts[:spotID] = @spot_id if @spot_id
|
131
144
|
super(builder, atts) do |node|
|
132
145
|
@scan_list.list_xml( node ) if @scan_list
|
133
|
-
|
134
|
-
|
146
|
+
Mspire::Mzml::Precursor.list_xml(@precursors, node) if @precursors
|
147
|
+
Mspire::Mzml::Product.list_xml(@products, node) if @products
|
135
148
|
end
|
136
149
|
end
|
137
150
|
|