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