mspire 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c336dad2fe75675083d7a794707b30f1a8c66146
4
- data.tar.gz: c20655cf68c224ef11fcfa72fcaf9434b2ae8a23
3
+ metadata.gz: cacdee4487f5e6a98d31c9649cb02390bce1dd9d
4
+ data.tar.gz: 64ae39986bc3bb20dcbcff972ef8162bdd36609b
5
5
  SHA512:
6
- metadata.gz: ddd03724a6b05881f64cd09deb3bf9d8f17e77d515a22419f95cf02f505d780bc347e8b9afd3f0d387d947d00166b0f36340f7ec81dbd1d47022e2333a3425a7
7
- data.tar.gz: 7a110c0640b43c775c37deb63d3e5eb53c7f0d7f1e9aa5debd65707428bc25590db626f78701156c0354383d5e9d30128fcb741bc647ce8c331638b401ba05b3
6
+ metadata.gz: 6523afd75ba3fd0f179d587413b6c85f7bf77152e8c97a155152352498742ff3c53d628b49b9d613f51a1f9d33fde5d7e2f9911c9055d0b751979ad2127faac4
7
+ data.tar.gz: fae953898b991b9f0cb6917fc8eaf4ff2e8557c6f73f82b750abe22b68f5f435de300c36c0b7835751b7a48ac22e40d59d340e4f4d6898478615fe6cbf66e892
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mspire.gemspec
4
4
  gemspec
5
+
6
+ group :messing_around do
7
+ gem "pry"
8
+ end
data/README.md CHANGED
@@ -125,12 +125,15 @@ Mspire::Mass::Subatomic::MONO[:electron]
125
125
 
126
126
  ### Isotopes and molecular formulas
127
127
 
128
+ Uses Richard Neese biological isotope ratios by default. All other isotope information culled from NIST.
129
+
128
130
  ```ruby
129
131
  require 'mspire/isotope'
130
132
  isotopes = Mspire::Isotope::ISOTOPES # 288 isotopes
131
- hydrogen_isotopes = isotopes.select {|iso| iso.element == :h }
133
+ # same as Mspire::Isotope::Neese::ISOTOPES ; compare to Mspire::Isotope::NIST::ISOTOPES
134
+ hydrogen_isotopes = isotopes.select {|iso| iso.element == :H }
132
135
 
133
- c12 = Mspire::Isotope::BY_ELEMENT[:c].first
136
+ c12 = Mspire::Isotope::BY_ELEMENT[:C].first
134
137
  c12.atomic_number # also: mass_number atomic_mass relative_abundance average_mass
135
138
  c12.mono # => true (this is the monoisotopic isotope)
136
139
 
@@ -106,14 +106,21 @@ module Mspire
106
106
 
107
107
  class Isotope
108
108
  module Distribution
109
- def self.calculate(molecular_formula_like, normalize=Mspire::Isotope::Distribution::NORMALIZE, percent_cutoff=nil)
110
- mf = molecular_formula_like.is_a?(Mspire::MolecularFormula) ? molecular_formula_like : Mspire::MolecularFormula.from_any(molecular_formula_like)
111
- mf.isotope_distribution(normalize, percent_cutoff)
112
- end
113
109
 
114
- def self.spectrum(molecular_formula_like, normalize=Mspire::Isotope::Distribution::NORMALIZE, percent_cutoff=nil)
115
- mf = molecular_formula_like.is_a?(Mspire::MolecularFormula) ? molecular_formula_like : Mspire::MolecularFormula.from_any(molecular_formula_like)
116
- mf.isotope_distribution_spectrum(normalize, percent_cutoff)
110
+ class << self
111
+ def to_mf(obj)
112
+ obj.is_a?(Mspire::MolecularFormula) ? obj : Mspire::MolecularFormula.from_any(obj)
113
+ end
114
+
115
+ def calculate(molecular_formula_like, normalize=NORMALIZE, percent_cutoff=nil, isotope_table=Mspire::Isotope::BY_ELEMENT)
116
+ mf = to_mf(molecular_formula_like)
117
+ mf.isotope_distribution(normalize, percent_cutoff, isotope_table)
118
+ end
119
+
120
+ def spectrum(molecular_formula_like, normalize=NORMALIZE, percent_cutoff=nil, isotope_table=Mspire::Isotope::BY_ELEMENT)
121
+ mf = to_mf(molecular_formula_like)
122
+ mf.isotope_distribution_spectrum(normalize, percent_cutoff, isotope_table)
123
+ end
117
124
  end
118
125
  end
119
126
  end
@@ -0,0 +1,33 @@
1
+ require 'mspire/isotope/nist'
2
+
3
+ module Mspire
4
+ class Isotope
5
+ module Neese
6
+ RATIOS = {
7
+ H: [0.999844, 0.000156],
8
+ C: [0.9891, 0.0109],
9
+ N: [0.99635, 0.00365],
10
+ O: [0.99759, 0.00037, 0.00204],
11
+ S: [0.9493, 0.0076, 0.0429, 0.0002]
12
+ }
13
+
14
+ BY_ELEMENT = Mspire::Isotope::NIST::BY_ELEMENT.dup # shallow copy on purpose
15
+
16
+ RATIOS.each do |el, abundances|
17
+ BY_ELEMENT[el] = Mspire::Isotope::NIST::BY_ELEMENT[el].
18
+ zip(abundances).map do |isotope, abundance|
19
+ if abundance
20
+ new_isotope = isotope.dup
21
+ new_isotope.relative_abundance = abundance
22
+ new_isotope
23
+ else
24
+ isotope
25
+ end
26
+ end
27
+ end
28
+
29
+ ISOTOPES = BY_ELEMENT.values.flatten(1).sort_by {|ist| [ist.atomic_number, ist.mass_number] }
30
+ end
31
+ end
32
+ end
33
+
@@ -0,0 +1,67 @@
1
+ require 'mspire/isotope'
2
+
3
+ class Mspire::Isotope::NIST::Updater
4
+ NIST_ISOTOPE_SITE = 'http://physics.nist.gov/cgi-bin/Compositions/stand_alone.pl?ele=&all=all&ascii=ascii2&isotype=some'
5
+
6
+ class << self
7
+
8
+ # Creates an isotope from a nist entry. Sets mono to false, which is not
9
+ # always correct (but needs to be corrected with additional info)
10
+ def isotope_from_nist_line(*args)
11
+ # atomic_number and mass_number are ints
12
+ [0,2].each {|i| args[i] = args[i].to_i }
13
+ # element is a downcase sym
14
+ args[1] = args[1].to_sym
15
+ # atomic_mass, relative_abundance, and average_mass as floats
16
+ [3, 4, 5].each {|i| args[i] = args[i][/([\w.]*)/].to_f }
17
+ # by default call every isotope the non-monoisotopic peak
18
+ # (will correct it as a group)
19
+ args << false
20
+ Mspire::Isotope.new(*args)
21
+ end
22
+
23
+ def write_nist_info(filename)
24
+ isotopes = isotopes_from_nist_site
25
+ File.write(filename, isotopes.map {|isotope| Mspire::Isotope::MEMBERS.map {|key| isotope.send(key) }}.to_yaml)
26
+ end
27
+
28
+ def isotopes_from_nist_site(deuterium_is_kind_of_hydrogen=true)
29
+ require 'mechanize'
30
+ body = Mechanize.new.get(NIST_ISOTOPE_SITE).body.split("\n")
31
+ body.delete_if {|l| l[/^(<|\/)/]}
32
+ body.shift(22)
33
+ isotopes = body.each_slice(8).map do |lines|
34
+ arr = (1..4).to_a.map {|i| match lines[i] }
35
+ rel, avg = match(lines[5]), match(lines[6])
36
+ next if rel.nil?
37
+ rel.size > 0 ? isotope_from_nist_line(*arr, rel, avg) : nil
38
+ end.compact!
39
+
40
+ # deuterium should be grouped with hydrogen, not as its own element!
41
+ isotopes.find {|iso| iso.element == :D }.element = :H if deuterium_is_kind_of_hydrogen
42
+
43
+ # update the mono boolean if this is the highest abundance peak
44
+ isotopes.group_by(&:element).values.each do |set|
45
+ set.max_by(&:relative_abundance).mono = true
46
+ end
47
+ isotopes
48
+ end
49
+
50
+ private
51
+
52
+ def match(string)
53
+ unless string.nil?
54
+ if string.empty?
55
+ nil
56
+ else
57
+ string[/= (.*)/,1]
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ if __FILE__ == $0
65
+ require 'mspire/isotope/nist'
66
+ Mspire::Isotope::NIST::Updater.write_nist_info(Mspire::Isotope::NIST::INFO_FILE_FULL_PATH)
67
+ end
@@ -0,0 +1,19 @@
1
+ require 'mspire/isotope'
2
+
3
+ module Mspire::Isotope::NIST
4
+ INFO_FILE = 'isotope_info.yml'
5
+ INFO_FILE_FULL_PATH = File.expand_path(File.dirname(__FILE__) + "/nist/#{INFO_FILE}")
6
+
7
+ if File.exist?(INFO_FILE_FULL_PATH)
8
+
9
+ ISOTOPES = YAML.load_file(INFO_FILE_FULL_PATH).map {|ar| Mspire::Isotope.new *ar }
10
+ BY_ELEMENT = ISOTOPES.group_by(&:element)
11
+
12
+ else
13
+ unless __FILE__ == $0
14
+ warn "no file #{INFO_FILE_FULL_PATH} to read isotope information from!"
15
+ warn "Note that directly running the file: lib/mspire/isotope/nist/updater.rb"
16
+ warn "will autogenerate this file from NIST data"
17
+ end
18
+ end
19
+ end
@@ -2,92 +2,30 @@ require 'yaml'
2
2
 
3
3
  module Mspire
4
4
  class Isotope
5
- MEMBERS = [:atomic_number, :element, :mass_number, :atomic_mass, :relative_abundance, :average_mass, :mono]
6
- MEMBERS.each {|key| attr_accessor key }
7
-
8
- INFO_FILE = 'nist_isotope_info.yml'
9
- INFO_FILE_FULL_PATH = File.expand_path(File.dirname(__FILE__) + "/isotope/#{INFO_FILE}")
10
-
5
+ MEMBERS = [
6
+ :atomic_number,
7
+ :element,
8
+ :mass_number,
9
+ :atomic_mass,
10
+ :relative_abundance,
11
+ :average_mass,
12
+ :mono
13
+ ].each {|key| attr_accessor key }
11
14
 
12
15
  def initialize(*args)
13
16
  MEMBERS.zip(args) {|k,val| self.send("#{k}=", val) }
14
17
  end
18
+ end
19
+ end
15
20
 
16
- # Creates an isotope from a nist entry. Sets mono to false, which is not
17
- # always correct (but needs to be corrected with additional info)
18
- def self.from_nist_line(*args)
19
- # atomic_number and mass_number are ints
20
- [0,2].each {|i| args[i] = args[i].to_i }
21
- # element is a downcase sym
22
- args[1] = args[1].to_sym
23
- # atomic_mass, relative_abundance, and average_mass as floats
24
- [3, 4, 5].each {|i| args[i] = args[i][/([\w.]*)/].to_f }
25
- # by default call every isotope the non-monoisotopic peak
26
- # (will correct it as a group)
27
- args << false
28
- self.new(*args)
29
- end
30
-
31
- if File.exist?(INFO_FILE_FULL_PATH)
32
-
33
- ISOTOPES = YAML.load_file(INFO_FILE_FULL_PATH).map {|ar| Mspire::Isotope.new *ar }
34
- BY_ELEMENT = ISOTOPES.group_by(&:element)
35
-
36
- else
37
- unless __FILE__ == $0
38
- warn "no file #{INFO_FILE_FULL_PATH} to read isotope information from"
39
- warn "directly running the file: #{__FILE__}"
40
- warn "will generate the file from NIST data"
41
- end
42
- end
43
-
44
- class Updater
45
- NIST_ISOTOPE_SITE = 'http://physics.nist.gov/cgi-bin/Compositions/stand_alone.pl?ele=&all=all&ascii=ascii2&isotype=some'
46
- class << self
47
-
48
- def write_nist_info(filename)
49
- isotopes = isotopes_from_nist_site
50
- File.write(filename, isotopes.map {|isotope| MEMBERS.map {|key| isotope.send(key) }}.to_yaml)
51
- end
52
-
53
- def isotopes_from_nist_site(deuterium_is_kind_of_hydrogen=true)
54
- require 'mechanize'
55
- body = Mechanize.new.get(NIST_ISOTOPE_SITE).body.split("\n")
56
- body.delete_if {|l| l[/^(<|\/)/]}
57
- body.shift(22)
58
- isotopes = body.each_slice(8).map do |lines|
59
- arr = (1..4).to_a.map {|i| match lines[i] }
60
- rel, avg = match(lines[5]), match(lines[6])
61
- next if rel.nil?
62
- rel.size > 0 ? Isotope.from_nist_line(*arr, rel, avg) : nil
63
- end.compact!
64
-
65
- # deuterium should be grouped with hydrogen, not as its own element!
66
- isotopes.find {|iso| iso.element == :D }.element = :H if deuterium_is_kind_of_hydrogen
67
-
68
- # update the mono boolean if this is the highest abundance peak
69
- isotopes.group_by(&:element).values.each do |set|
70
- set.max_by(&:relative_abundance).mono = true
71
- end
72
- isotopes
73
- end
74
-
75
- private
21
+ require 'mspire/isotope/neese'
22
+ # sets Mspire::Isotope::BY_ELEMENTS and Mspire::Isotope::ISOTOPES
76
23
 
77
- def match(string)
78
- unless string.nil?
79
- if string.empty?
80
- nil
81
- else
82
- string[/= (.*)/,1]
83
- end
84
- end
85
- end
86
- end
87
- end
24
+ module Mspire
25
+ class Isotope
26
+ BY_ELEMENT = Mspire::Isotope::Neese::BY_ELEMENT
27
+ ISOTOPES = Mspire::Isotope::Neese::ISOTOPES
88
28
  end
89
29
  end
90
30
 
91
- if __FILE__ == $0
92
- Mspire::Isotope::Updater.write_nist_info(Mspire::Isotope::INFO_FILE_FULL_PATH)
93
- end
31
+
@@ -1,3 +1,3 @@
1
1
  module Mspire
2
- VERSION = "0.9.1"
2
+ VERSION = "0.9.2"
3
3
  end
@@ -3,46 +3,54 @@ require 'spec_helper'
3
3
  require 'mspire/isotope/distribution'
4
4
 
5
5
  describe 'Mspire::Isotope::Distribution class methods' do
6
+
7
+ before(:all) do
8
+ @nist = Mspire::Isotope::NIST::BY_ELEMENT
9
+ @norm = Mspire::Isotope::Distribution::NORMALIZE
10
+ @pcut = nil # percent cutoff
11
+ end
12
+
6
13
  before do
7
14
  @first = [1.0, 0.08919230588715311, 0.017894161377222138, 0.0013573997600723345, 0.0001398330738144181]
8
15
  end
16
+
9
17
  # can also be used on a real MolecularFormula object
10
18
  subject { 'C102H120O15' }
11
19
 
12
20
  describe 'normalizing isotope distributions' do
13
21
 
14
22
  it 'defaults to normalizing by total signal with no cutoff' do
15
- dist = Mspire::Isotope::Distribution.calculate( subject )
23
+ dist = Mspire::Isotope::Distribution.calculate( subject, @norm, @pcut, @nist )
16
24
  dist.size.should == 253
17
25
  dist[0,5].should == [0.31740518639058685, 0.35635707398291416, 0.20793431846543858, 0.08373257192958428, 0.026084566135229446]
18
26
  end
19
27
 
20
28
  it 'can normalize by first peak' do
21
- dist = Mspire::Isotope::Distribution.calculate( subject, :first )
29
+ dist = Mspire::Isotope::Distribution.calculate( subject, :first, @pcut, @nist )
22
30
  dist.size.should == 253
23
31
  dist[0].should == 1.0
24
32
  dist[1].should_not == 1.0
25
33
  end
26
34
 
27
35
  it 'can normalize by the max peak' do
28
- dist = Mspire::Isotope::Distribution.calculate( subject, :max)
36
+ dist = Mspire::Isotope::Distribution.calculate( subject, :max, @pcut, @nist )
29
37
  dist.size.should == 253
30
38
  dist[0].should_not == 1.0
31
39
  dist[1].should == 1.0
32
40
  end
33
41
 
34
42
  it 'can cutoff based on percent of total signal' do
35
- Mspire::Isotope::Distribution.calculate(subject, :max, 100).should == []
36
- Mspire::Isotope::Distribution.calculate(subject, :max, 20).should == [0.8906942209481861, 1.0, 0.5834999040187656]
37
- Mspire::Isotope::Distribution.calculate(subject, :max, 5).should == [0.8906942209481861, 1.0, 0.5834999040187656, 0.23496817670469172]
38
- Mspire::Isotope::Distribution.calculate(subject, :max, 0.0001).size.should == 11
43
+ Mspire::Isotope::Distribution.calculate(subject, :max, 100, @nist).should == []
44
+ Mspire::Isotope::Distribution.calculate(subject, :max, 20, @nist).should == [0.8906942209481861, 1.0, 0.5834999040187656]
45
+ Mspire::Isotope::Distribution.calculate(subject, :max, 5, @nist).should == [0.8906942209481861, 1.0, 0.5834999040187656, 0.23496817670469172]
46
+ Mspire::Isotope::Distribution.calculate(subject, :max, 0.0001, @nist).size.should == 11
39
47
  end
40
48
  end
41
49
 
42
50
  describe 'calculating an isotope distribution spectrum' do
43
51
 
44
52
  it 'gives neutral masses if no charge' do
45
- spec = Mspire::Isotope::Distribution.spectrum( subject )
53
+ spec = Mspire::Isotope::Distribution.spectrum( subject, @norm, @pcut, @nist )
46
54
  [:mzs, :intensities].each {|att| spec.send(att).size.should == 253 }
47
55
  spec.mzs[0,5].should == [1584.8627231418, 1585.8713880574, 1586.8800529730001, 1587.8887178886002, 1588.8973828042003]
48
56
  spec.intensities[0,5].should == [0.31740518639058685, 0.35635707398291416, 0.20793431846543858, 0.08373257192958428, 0.026084566135229446]
@@ -51,7 +59,7 @@ describe 'Mspire::Isotope::Distribution class methods' do
51
59
  it 'gives proper m/z values if the molecule is charged' do
52
60
  charged_molecule = Mspire::MolecularFormula.from_any( subject )
53
61
  charged_molecule.charge = -3
54
- spec = Mspire::Isotope::Distribution.spectrum( charged_molecule )
62
+ spec = Mspire::Isotope::Distribution.spectrum( charged_molecule, @norm, @pcut, @nist )
55
63
  [:mzs, :intensities].each {|att| spec.send(att).size.should == 253 }
56
64
  spec.mzs[0,5].should == [-528.2881229806, -528.6243446191334, -528.9605662576668, -529.2967878962, -529.6330095347334]
57
65
  end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ require 'mspire/isotope/nist'
4
+
5
+ describe 'Mspire::Isotope::NIST' do
6
+
7
+ it 'has all the common isotopes: Mspire::Isotope::NIST::ISOTOPES' do
8
+ # frozen
9
+ Mspire::Isotope::NIST::ISOTOPES.size.should == 288
10
+ hydrogen_isotopes = Mspire::Isotope::NIST::ISOTOPES.select {|iso| iso.element == :H }
11
+ hydrogen_isotopes.size.should == 2
12
+
13
+ { atomic_number: 1, element: :H, mass_number: 1, atomic_mass: 1.00782503207, relative_abundance: 0.999885, average_mass: 1.00794, mono: true }.each do |k,v|
14
+ hydrogen_isotopes.first.send(k).should == v
15
+ end
16
+ {atomic_number: 1, element: :H, mass_number: 2, atomic_mass: 2.0141017778, relative_abundance: 0.000115, average_mass: 1.00794, mono: false}.each do |k,v|
17
+ hydrogen_isotopes.last.send(k).should == v
18
+ end
19
+ u = Mspire::Isotope::NIST::ISOTOPES.last
20
+ {atomic_number: 92, element: :U, mass_number: 238, atomic_mass: 238.0507882, relative_abundance: 0.992742, average_mass: 238.02891, mono: true}.each do |k,v|
21
+ u.send(k).should == v
22
+ end
23
+ end
24
+ it 'has all common isotopes by element: Mspire::Isotope::BY_ELEMENT' do
25
+ [{atomic_number: 6, element: :C, mass_number: 12, atomic_mass: 12.0, relative_abundance: 0.9893, average_mass: 12.0107, mono: true}, {atomic_number: 6, element: :C, mass_number: 13, atomic_mass: 13.0033548378, relative_abundance: 0.0107, average_mass: 12.0107, mono: false}].zip(Mspire::Isotope::NIST::BY_ELEMENT[:C]) do |hash, iso|
26
+ hash.each do |k,v|
27
+ iso.send(k).should == v
28
+ end
29
+ end
30
+ Mspire::Isotope::NIST::BY_ELEMENT[:H].size.should == 2
31
+ end
32
+ end
@@ -3,16 +3,16 @@ require 'spec_helper'
3
3
  require 'mspire/isotope'
4
4
 
5
5
  describe 'Mspire::Isotope constants' do
6
- it 'has all the common isotopes: Mspire::Isotope::ISOTOPES' do
6
+ it 'Mspire::Isotope::ISOTOPES has all the common isotopes and uses Neese by default' do
7
7
  # frozen
8
8
  Mspire::Isotope::ISOTOPES.size.should == 288
9
9
  hydrogen_isotopes = Mspire::Isotope::ISOTOPES.select {|iso| iso.element == :H }
10
10
  hydrogen_isotopes.size.should == 2
11
11
 
12
- { atomic_number: 1, element: :H, mass_number: 1, atomic_mass: 1.00782503207, relative_abundance: 0.999885, average_mass: 1.00794, mono: true }.each do |k,v|
12
+ { atomic_number: 1, element: :H, mass_number: 1, atomic_mass: 1.00782503207, relative_abundance: 0.999844, average_mass: 1.00794, mono: true }.each do |k,v|
13
13
  hydrogen_isotopes.first.send(k).should == v
14
14
  end
15
- {atomic_number: 1, element: :H, mass_number: 2, atomic_mass: 2.0141017778, relative_abundance: 0.000115, average_mass: 1.00794, mono: false}.each do |k,v|
15
+ {atomic_number: 1, element: :H, mass_number: 2, atomic_mass: 2.0141017778, relative_abundance: 0.000156, average_mass: 1.00794, mono: false}.each do |k,v|
16
16
  hydrogen_isotopes.last.send(k).should == v
17
17
  end
18
18
  u = Mspire::Isotope::ISOTOPES.last
@@ -21,7 +21,7 @@ describe 'Mspire::Isotope constants' do
21
21
  end
22
22
  end
23
23
  it 'has all common isotopes by element: Mspire::Isotope::BY_ELEMENT' do
24
- [{atomic_number: 6, element: :C, mass_number: 12, atomic_mass: 12.0, relative_abundance: 0.9893, average_mass: 12.0107, mono: true}, {atomic_number: 6, element: :C, mass_number: 13, atomic_mass: 13.0033548378, relative_abundance: 0.0107, average_mass: 12.0107, mono: false}].zip(Mspire::Isotope::BY_ELEMENT[:C]) do |hash, iso|
24
+ [{atomic_number: 6, element: :C, mass_number: 12, atomic_mass: 12.0, relative_abundance: 0.9891, average_mass: 12.0107, mono: true}, {atomic_number: 6, element: :C, mass_number: 13, atomic_mass: 13.0033548378, relative_abundance: 0.0109, average_mass: 12.0107, mono: false}].zip(Mspire::Isotope::BY_ELEMENT[:C]) do |hash, iso|
25
25
  hash.each do |k,v|
26
26
  iso.send(k).should == v
27
27
  end
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.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John T. Prince
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-15 00:00:00.000000000 Z
12
+ date: 2013-08-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -268,7 +268,10 @@ files:
268
268
  - lib/mspire/isotope.rb
269
269
  - lib/mspire/isotope/aa.rb
270
270
  - lib/mspire/isotope/distribution.rb
271
- - lib/mspire/isotope/nist_isotope_info.yml
271
+ - lib/mspire/isotope/neese.rb
272
+ - lib/mspire/isotope/nist.rb
273
+ - lib/mspire/isotope/nist/isotope_info.yml
274
+ - lib/mspire/isotope/nist/updater.rb
272
275
  - lib/mspire/mascot.rb
273
276
  - lib/mspire/mass.rb
274
277
  - lib/mspire/mass/aa.rb
@@ -370,6 +373,7 @@ files:
370
373
  - spec/mspire/imzml/writer_spec.rb
371
374
  - spec/mspire/isotope/aa_spec.rb
372
375
  - spec/mspire/isotope/distribution_spec.rb
376
+ - spec/mspire/isotope/nist_spec.rb
373
377
  - spec/mspire/isotope_spec.rb
374
378
  - spec/mspire/mass/aa_spec.rb
375
379
  - spec/mspire/mass/all_spec.rb
@@ -476,6 +480,7 @@ test_files:
476
480
  - spec/mspire/imzml/writer_spec.rb
477
481
  - spec/mspire/isotope/aa_spec.rb
478
482
  - spec/mspire/isotope/distribution_spec.rb
483
+ - spec/mspire/isotope/nist_spec.rb
479
484
  - spec/mspire/isotope_spec.rb
480
485
  - spec/mspire/mass/aa_spec.rb
481
486
  - spec/mspire/mass/all_spec.rb
@@ -539,3 +544,4 @@ test_files:
539
544
  - spec/testfiles/mspire/quant/unlog_transform.rb
540
545
  - spec/testfiles/plms1/output.key
541
546
  - spec/testfiles/processed_binary.tmp.ibd
547
+ has_rdoc: