OpenMS
Loading...
Searching...
No Matches
IMSAlphabet Class Reference

Holds an indexed list of bio-chemical elements used by mass-decomposition algorithms. More...

#include <OpenMS/CHEMISTRY/MASSDECOMPOSITION/IMS/IMSAlphabet.h>

Collaboration diagram for IMSAlphabet:
[legend]

Classes

class  MassSortingCriteria_
 Private class-functor to sort out elements in mass ascending order. More...
 

Public Types

typedef IMSElement element_type
 
typedef element_type::mass_type mass_type
 
typedef element_type::name_type name_type
 
typedef std::vector< element_typecontainer
 
typedef container::size_type size_type
 
typedef container::iterator iterator
 
typedef container::const_iterator const_iterator
 
typedef std::vector< name_typename_container
 
typedef name_container::iterator name_iterator
 
typedef name_container::const_iterator const_name_iterator
 
typedef std::vector< mass_typemass_container
 
typedef mass_container::iterator mass_iterator
 
typedef mass_container::const_iterator const_mass_iterator
 
typedef std::vector< mass_typemasses_type
 

Public Member Functions

 IMSAlphabet ()
 
 IMSAlphabet (const container &elements)
 
 IMSAlphabet (const IMSAlphabet &alphabet)
 
size_type size () const
 
const element_typegetElement (size_type index) const
 
void setElement (const name_type &name, mass_type mass, bool forced=false)
 
bool erase (const name_type &name)
 

. If there is

Gets the element with the symbol no such element, throws Exception::InvalidValue.

Parameters
[in]nameName of the element.
Returns
Element with the given name, or if there are no such element
Exceptions
Exception::InvalidValue.
container elements_
 
const element_typegetElement (const name_type &name) const
 
const name_typegetName (size_type index) const
 
mass_type getMass (const name_type &name) const
 
mass_type getMass (size_type index) const
 
masses_type getMasses (size_type isotope_index=0) const
 
masses_type getAverageMasses () const
 
bool hasName (const name_type &name) const
 
void push_back (const name_type &name, mass_type value)
 
void push_back (const element_type &element)
 
void clear ()
 
virtual void sortByNames ()
 
virtual void sortByValues ()
 
virtual void load (const std::string &fname)
 
virtual void load (const std::string &fname, IMSAlphabetParser<> &parser)
 
virtual ~IMSAlphabet ()
 

Detailed Description

Holds an indexed list of bio-chemical elements used by mass-decomposition algorithms.

Stores IMSElement instances and exposes them in two complementary ways: lookup by index is constant-time, lookup by element name is linear-time. Because IMSAlphabet keeps the full element representation, prefer the lighter ims::Weights when only the mass values are needed in performance-critical code.

An alphabet can be sorted either by element name or by mass; the file loaders always leave the alphabet sorted by mass, so files do not need to be pre-sorted.

To populate an alphabet from a flat text file with the default format, call load(const std::string&). To support a different format, derive a parser from IMSAlphabetParser and pass it to the two-argument load() overload. Both overloads report a missing or unreadable file by throwing Exception::IOException.

Member Typedef Documentation

◆ const_iterator

typedef container::const_iterator const_iterator

◆ const_mass_iterator

typedef mass_container::const_iterator const_mass_iterator

◆ const_name_iterator

typedef name_container::const_iterator const_name_iterator

◆ container

typedef std::vector<element_type> container

◆ element_type

◆ iterator

typedef container::iterator iterator

◆ mass_container

typedef std::vector<mass_type> mass_container

◆ mass_iterator

typedef mass_container::iterator mass_iterator

◆ mass_type

◆ masses_type

typedef std::vector<mass_type> masses_type

◆ name_container

typedef std::vector<name_type> name_container

◆ name_iterator

typedef name_container::iterator name_iterator

◆ name_type

◆ size_type

typedef container::size_type size_type

Constructor & Destructor Documentation

◆ IMSAlphabet() [1/3]

IMSAlphabet ( )
inline

Empty constructor.

◆ IMSAlphabet() [2/3]

IMSAlphabet ( const container elements)
inlineexplicit

Constructor with elements.

Parameters
[in]elementsElements to be set

◆ IMSAlphabet() [3/3]

IMSAlphabet ( const IMSAlphabet alphabet)
inline

Copy constructor.

Parameters
[in]alphabetAlphabet whose elements are copied.

◆ ~IMSAlphabet()

virtual ~IMSAlphabet ( )
inlinevirtual

Default destructor.

Member Function Documentation

◆ clear()

void clear ( )
inline

Clears the alphabet data.

◆ erase()

bool erase ( const name_type name)

Removes the element with name name from the alphabet.

Parameters
[in]nameThe name of the element to be removed from the alphabet.
Returns
A boolean indicating whether an element was removed (true) or not (false).

◆ getAverageMasses()

masses_type getAverageMasses ( ) const

Gets average masses of elements.

Returns
Average masses of elements.

◆ getElement() [1/2]

const element_type & getElement ( const name_type name) const

◆ getElement() [2/2]

const element_type & getElement ( size_type  index) const
inline

Gets the element with index index.

Note
Operation takes constant time.
Parameters
[in]indexof the element
Returns
Element with the given index in alphabet

◆ getMass() [1/2]

mass_type getMass ( const name_type name) const

Gets mono isotopic mass of the element with the symbol name. If there is no such element, throws an Exception::InvalidValue.

Parameters
[in]nameSymbol of the element.
Returns
Mass of the element, or if there are no element
Exceptions
Exception::InvalidValue.
See also
getMass(size_type index)

◆ getMass() [2/2]

mass_type getMass ( size_type  index) const

Gets mass of the element with an index index in alphabet.

Parameters
[in]indexIndex of the element.
Returns
Mass of the element.
See also
getMass(const std::string& name)

◆ getMasses()

masses_type getMasses ( size_type  isotope_index = 0) const

Gets masses of elements isotopes given by isotope_index.

Parameters
[in]isotope_indexIndex of isotope
Returns
Masses of elements isotopes with the given index.

◆ getName()

const name_type & getName ( size_type  index) const

Gets the symbol of the element with an index index in alphabet.

Parameters
[in]indexof the element.
Returns
Name of the element.

◆ hasName()

bool hasName ( const name_type name) const

Returns true if there is an element with symbol name in the alphabet, false - otherwise.

Returns
True, if there is an element with symbol name, false - otherwise.

◆ load() [1/2]

virtual void load ( const std::string &  fname)
virtual

Replaces the alphabet's contents with the elements read from the text file fname (default OpenMS alphabet text format), sorted by mass.

Parameters
[in]fnameFile to read.
Exceptions
Exception::IOExceptionif fname cannot be opened.
See also
load(const std::string&, IMSAlphabetParser<>&)

◆ load() [2/2]

virtual void load ( const std::string &  fname,
IMSAlphabetParser<> &  parser 
)
virtual

Replaces the alphabet's contents with the elements read from fname through parser, sorted by mass.

Parameters
[in]fnameFile to read.
[in,out]parserParser used to read the file.
Exceptions
Exception::IOExceptionif fname cannot be opened by parser.
See also
load(const std::string&)
IMSAlphabetParser

◆ push_back() [1/2]

void push_back ( const element_type element)
inline

Adds a new element element to the alphabet.

Parameters
[in]elementThe Element to be added.

◆ push_back() [2/2]

void push_back ( const name_type name,
mass_type  value 
)
inline

Adds a new element with name name and mass value to the alphabet.

Parameters
[in]nameName of the element to be added.
[in]valueMass of the element to be added.
See also
push_back(const element_type&)

◆ setElement()

void setElement ( const name_type name,
mass_type  mass,
bool  forced = false 
)

Overwrites an element in the alphabet with the name with a new element constructed from the given name name and mass mass. If the parameter forced is set to true, a new element will be appended to the alphabet in the case the alphabet contains no element with the name name.

Parameters
[in]nameThe name of the element that should be replaced in (or appended to) the alphabet.
[in]massThe new mass of the element in the alphabet.
[in]forcedIndicates whether a new element should be created (if set to true) if there is no element with the name name or not (if set to false).

◆ size()

size_type size ( ) const
inline

Returns the alphabet size.

Returns
The size of alphabet.

◆ sortByNames()

virtual void sortByNames ( )
virtual

Sorts the alphabet by names.

See also
sortByValues()

◆ sortByValues()

virtual void sortByValues ( )
virtual

Sorts the alphabet by mass values.

See also
sortByNames()

Member Data Documentation

◆ elements_

container elements_
private

Elements of the alphabet.