Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
EmpiricalFormula Class Reference

Representation of an empirical formula. More...

#include <OpenMS/CHEMISTRY/EmpiricalFormula.h>

Public Types

Typedefs
typedef MapType_::const_iterator ConstIterator
 Iterators. More...
 
typedef MapType_::const_iterator const_iterator
 

Public Member Functions

Constructors and Destructors
 EmpiricalFormula ()
 default constructor More...
 
 EmpiricalFormula (const EmpiricalFormula &rhs)
 copy constructor More...
 
 EmpiricalFormula (const String &rhs)
 
 EmpiricalFormula (SignedSize number, const Element *element, SignedSize charge=0)
 constructor with element pointer and number More...
 
virtual ~EmpiricalFormula ()
 destructor More...
 
Accessors
double getMonoWeight () const
 returns the mono isotopic weight of the formula (includes proton charges) More...
 
double getAverageWeight () const
 returns the average weight of the formula (includes proton charges) More...
 
IsotopeDistribution getIsotopeDistribution (UInt max_depth) const
 returns the isotope distribution of the formula The details of the calculation of the isotope distribution are described in the doc to the IsotopeDistribution class. More...
 
SignedSize getNumberOf (const Element *element) const
 returns the number of atoms for a certain element (can be negative) More...
 
SignedSize getNumberOfAtoms () const
 returns the atoms total (not absolute: negative counts for certain elements will reduce the overall count). Negative result is possible. More...
 
SignedSize getCharge () const
 returns the charge More...
 
void setCharge (SignedSize charge)
 sets the charge More...
 
String toString () const
 returns the formula as a string (charges are not included) More...
 
EmpiricalFormulaoperator= (const EmpiricalFormula &rhs)
 assignment operator More...
 
EmpiricalFormulaoperator+= (const EmpiricalFormula &rhs)
 adds the elements of the given formula More...
 
EmpiricalFormula operator* (const SignedSize &times) const
 multiplies the elements and charge with a factor More...
 
EmpiricalFormula operator+ (const EmpiricalFormula &rhs) const
 adds the elements of the given formula and returns a new formula More...
 
EmpiricalFormulaoperator-= (const EmpiricalFormula &rhs)
 subtracts the elements of a formula More...
 
EmpiricalFormula operator- (const EmpiricalFormula &rhs) const
 subtracts the elements of a formula an returns a new formula More...
 
Predicates
bool isEmpty () const
 returns true if the formula does not contain a element More...
 
bool isCharged () const
 returns true if charge != 0 More...
 
bool hasElement (const Element *element) const
 returns true if the formula contains the element More...
 
bool contains (const EmpiricalFormula &ef)
 returns true if all elements from ef are LESS abundant (negative allowed) than the corresponding elements of this EmpiricalFormula More...
 
bool operator== (const EmpiricalFormula &rhs) const
 returns true if the formulas contain equal elements in equal quantities More...
 
bool operator!= (const EmpiricalFormula &rhs) const
 returns true if the formulas differ in elements composition More...
 
Iterators
ConstIterator begin () const
 
ConstIterator end () const
 

Protected Types

typedef std::map< const Element *, SignedSizeMapType_
 Internal typedef for the used map type. More...
 

Protected Member Functions

void removeZeroedElements_ ()
 remove elements with count 0 More...
 
SignedSize parseFormula_ (std::map< const Element *, SignedSize > &ef, const String &formula) const
 

Protected Attributes

MapType_ formula_
 
SignedSize charge_
 

Friends

std::ostream & operator<< (std::ostream &os, const EmpiricalFormula &formula)
 writes the formula to a stream More...
 

Detailed Description

Representation of an empirical formula.

The formula can be used as follows: elements are represented through its symbol or full name. The symbol or name is followed by a number. If not, the frequency is set to one. Examples are CH3OH or CarbonHydrogen3OH. The names must start with an capital letter (symbols always have an upper-case letter at the beginning). Additionally charges can be used with '+' followed by a number, if no number follows the charge of +1 is set. Negative charges can be added using a '-' sign. However, negative charges are only set if the last element in the string also has a number. E.g. H4C-1, does not set a negative charge, only -1 Carbon atoms, correctly it should be stated H4C-1-.

This class also supports the usage of specific isotopes. By default "C" describes not one isotope but a natural distribution or different isotopes. This distribution can be accessed via the member getIsotopeDistribution().

If one wants only use a specific isotope, it can be specified using "(",")" brackets. For example, to specify 14C a heavy isotope of carbon it is expressed as "(14)C". The isotope distribution of that instance contains only one isotope, 14C itself with a frequency of 100%.

Instances EmpiricalFormula support a (limited) set of mathematical operations. Additions and subtractions are supported in different flavors. However, one must be careful, because this can lead to negative frequencies. In most cases this might be misleading, however, the class therefore supports difference formulae. E.g. formula differences of reactions from post-translational modifications.

Member Typedef Documentation

typedef MapType_::const_iterator const_iterator
typedef MapType_::const_iterator ConstIterator

Iterators.

typedef std::map<const Element*, SignedSize> MapType_
protected

Internal typedef for the used map type.

Constructor & Destructor Documentation

default constructor

copy constructor

EmpiricalFormula ( const String rhs)
explicit

Constructor from an OpenMS String

Exceptions
throwsParseError if the formula cannot be parsed
EmpiricalFormula ( SignedSize  number,
const Element element,
SignedSize  charge = 0 
)

constructor with element pointer and number

virtual ~EmpiricalFormula ( )
virtual

destructor

Member Function Documentation

ConstIterator begin ( ) const
inline
bool contains ( const EmpiricalFormula ef)

returns true if all elements from ef are LESS abundant (negative allowed) than the corresponding elements of this EmpiricalFormula

ConstIterator end ( ) const
inline
double getAverageWeight ( ) const

returns the average weight of the formula (includes proton charges)

SignedSize getCharge ( ) const

returns the charge

IsotopeDistribution getIsotopeDistribution ( UInt  max_depth) const

returns the isotope distribution of the formula The details of the calculation of the isotope distribution are described in the doc to the IsotopeDistribution class.

Parameters
max_depththe maximum isotope which is considered, if 0 all are reported

Referenced by MetaProSIPDecomposition::calculateIsotopePatternsFor13CRange(), and MetaProSIPDecomposition::calculateIsotopePatternsFor15NRange().

double getMonoWeight ( ) const

returns the mono isotopic weight of the formula (includes proton charges)

Referenced by TOPPRNPxl::main_().

SignedSize getNumberOf ( const Element element) const

returns the number of atoms for a certain element (can be negative)

Referenced by MetaProSIPDecomposition::calculateIsotopePatternsFor13CRange(), and MetaProSIPDecomposition::calculateIsotopePatternsFor15NRange().

SignedSize getNumberOfAtoms ( ) const

returns the atoms total (not absolute: negative counts for certain elements will reduce the overall count). Negative result is possible.

bool hasElement ( const Element element) const

returns true if the formula contains the element

bool isCharged ( ) const

returns true if charge != 0

bool isEmpty ( ) const

returns true if the formula does not contain a element

bool operator!= ( const EmpiricalFormula rhs) const

returns true if the formulas differ in elements composition

EmpiricalFormula operator* ( const SignedSize times) const

multiplies the elements and charge with a factor

EmpiricalFormula operator+ ( const EmpiricalFormula rhs) const

adds the elements of the given formula and returns a new formula

EmpiricalFormula& operator+= ( const EmpiricalFormula rhs)

adds the elements of the given formula

EmpiricalFormula operator- ( const EmpiricalFormula rhs) const

subtracts the elements of a formula an returns a new formula

EmpiricalFormula& operator-= ( const EmpiricalFormula rhs)

subtracts the elements of a formula

EmpiricalFormula& operator= ( const EmpiricalFormula rhs)

assignment operator

Assignment

bool operator== ( const EmpiricalFormula rhs) const

returns true if the formulas contain equal elements in equal quantities

SignedSize parseFormula_ ( std::map< const Element *, SignedSize > &  ef,
const String formula 
) const
protected
void removeZeroedElements_ ( )
protected

remove elements with count 0

void setCharge ( SignedSize  charge)

sets the charge

String toString ( ) const

returns the formula as a string (charges are not included)

Referenced by SvmTheoreticalSpectrumGenerator::IonType::operator<().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const EmpiricalFormula formula 
)
friend

writes the formula to a stream

Member Data Documentation

SignedSize charge_
protected
MapType_ formula_
protected

OpenMS / TOPP release 2.0.0 Documentation generated on Tue Aug 25 2015 05:54:00 using doxygen 1.8.9.1