OpenMS
|
Holds an indexed list of bio-chemical elements. More...
#include <OpenMS/CHEMISTRY/MASSDECOMPOSITION/IMS/IMSAlphabet.h>
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_type > | container |
typedef container::size_type | size_type |
typedef container::iterator | iterator |
typedef container::const_iterator | const_iterator |
typedef std::vector< name_type > | name_container |
typedef name_container::iterator | name_iterator |
typedef name_container::const_iterator | const_name_iterator |
typedef std::vector< mass_type > | mass_container |
typedef mass_container::iterator | mass_iterator |
typedef mass_container::const_iterator | const_mass_iterator |
typedef std::vector< mass_type > | masses_type |
Public Member Functions | |
IMSAlphabet () | |
IMSAlphabet (const container &elements) | |
IMSAlphabet (const IMSAlphabet &alphabet) | |
size_type | size () const |
const element_type & | getElement (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
| |||||
container | elements_ | ||||
const element_type & | getElement (const name_type &name) const | ||||
const name_type & | getName (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 () | ||||
Holds an indexed list of bio-chemical elements.
Presents an indexed list of bio-chemical elements of type (or derived from type) Element
. Due to indexed structure Alphabet
can be used similar to std::vector
, for example to add a new element to Alphabet
function push_back(element_type)
can be used. Elements or their properties (such as element's mass) can be accessed by index in a constant time. On the other hand accessing elements by their names takes linear time. Due to this and also the fact that Alphabet
is 'heavy-weighted' (consisting of Element
-s or their derivatives where the depth of derivation as well is undefined resulting in possibly 'heavy' access operations) it is recommended not use Alphabet
directly in operations where fast access to Element
's properties is required. Instead consider to use 'light-weighted' equivalents, such as Weights
.
Elements in Alphabet
can be sorted by the Element
's properties: sequence and mass. When alphabet's data is loaded from file it is automatically sorted by mass. To load data from file default function load(str::string& fname)
can be used. Then elements have to be stored in a flat file fname
in a predefined format. To read more on this format, please,
AlphabetParser
and pass its pointer together with the file name to function load(const std::string& fname, AlphabetParser<>* parser)
. If there is any error happened while loading data, IOException
will be thrown. typedef container::const_iterator const_iterator |
typedef mass_container::const_iterator const_mass_iterator |
typedef name_container::const_iterator const_name_iterator |
typedef std::vector<element_type> container |
typedef IMSElement element_type |
typedef container::iterator iterator |
typedef std::vector<mass_type> mass_container |
typedef mass_container::iterator mass_iterator |
typedef element_type::mass_type mass_type |
typedef std::vector<mass_type> masses_type |
typedef std::vector<name_type> name_container |
typedef name_container::iterator name_iterator |
typedef element_type::name_type name_type |
typedef container::size_type size_type |
|
inline |
Empty constructor.
|
inlineexplicit |
Constructor with elements.
elements | Elements to be set |
|
inline |
Copy constructor.
alphabet | Alphabet to be assigned |
|
inlinevirtual |
Default destructor.
|
inline |
Clears the alphabet data.
bool erase | ( | const name_type & | name | ) |
Removes the element with name name
from the alphabet.
name | The name of the element to be removed from the alphabet. |
true
) or not (false
). masses_type getAverageMasses | ( | ) | const |
Gets average masses of elements.
const element_type& getElement | ( | const name_type & | name | ) | const |
|
inline |
Gets the element with index index
.
index | of the element |
Gets mono isotopic mass of the element with the symbol name
. If there is no such element, throws an Exception::InvalidValue
.
name | Symbol of the element. |
Exception::InvalidValue. |
Gets mass of the element with an index index
in alphabet.
index | Index of the element. |
masses_type getMasses | ( | size_type | isotope_index = 0 | ) | const |
Gets masses of elements isotopes given by isotope_index
.
isotope_index | Index of isotope |
Gets the symbol of the element with an index index
in alphabet.
index | of the element. |
bool hasName | ( | const name_type & | name | ) | const |
Returns true if there is an element with symbol name
in the alphabet, false - otherwise.
name
, false - otherwise.
|
virtual |
Loads the alphabet data from the file fname
using the default parser. If there is no file fname
, throws an IOException
.
fname | The file name to be loaded. |
Exception::IOException |
|
virtual |
Loads the alphabet data from the file fname
using parser
. If there is no file fname
found, throws an IOException
.
fname | File name to be loaded. |
parser | Parser to be used by loading. |
Exception::IOException |
|
inline |
Adds a new element element
to the alphabet.
element | The Element to be added. |
Adds a new element with name name
and mass value
to the alphabet.
name | Name of the element to be added. |
value | Mass of the element to be added. |
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
.
name | The name of the element that should be replaced in (or appended to) the alphabet. |
mass | The new mass of the element in the alphabet. |
forced | Indicates 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 ). |
|
inline |
Returns the alphabet size.
|
virtual |
Sorts the alphabet by names.
|
virtual |
Sorts the alphabet by mass values.
|
private |
Elements of the alphabet.