class Mspire::Lipid::Ion
a lipid with modifications (typically the mods give it a charge so that it can be seen in the mass spec)
Attributes
lipid[RW]
an Mspire::Lipid
object
modifications[RW]
an Mspire::Lipid::Modifications object
Public Class Methods
new(lipid, mods=[])
click to toggle source
the key attribute of a query
# File lib/mspire/lipid/ion.rb, line 15 def initialize(lipid, mods=[]) @lipid = lipid @modifications = mods @mz = nil end
Public Instance Methods
charge()
click to toggle source
# File lib/mspire/lipid/ion.rb, line 21 def charge z = 0 @modifications.each do |mod| z += mod.charge end z end
formula()
click to toggle source
a MolecularFormula object
# File lib/mspire/lipid/ion.rb, line 30 def formula _formula = @lipid.formula _formula = Mspire::MolecularFormula.from_any(_formula) unless _formula.is_a?(Mspire::MolecularFormula) modifications.each do |mod| if mod.gain? _formula += mod.formula else _formula -= mod.formula end end _formula end
inspect()
click to toggle source
# File lib/mspire/lipid/ion.rb, line 65 def inspect "<|| Ion mz=#{mz} #{lipid.inspect} + #{modifications.map(&:inspect).join(', ')} ||>" end
mz()
click to toggle source
the unsigned m/z value
# File lib/mspire/lipid/ion.rb, line 60 def mz _mz_signed = mz_signed _mz_signed >= 0 ? _mz_signed : -_mz_signed end
mz_signed()
click to toggle source
value is cached
# File lib/mspire/lipid/ion.rb, line 44 def mz_signed return @mz if @mz mass = @lipid.mass charge = 0 @modifications.each do |mod| mass += mod.massdiff charge += mod.charge end if charge == 0 @mz = nil else @mz = mass / charge end end