Home  · Classes  · Annotated Classes  · Modules  · Members  · Namespaces  · Related Pages
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 Map< const Element
*, SignedSize >::ConstIterator 
ConstIterator
 Iterators. More...
 
typedef Map< const Element
*, SignedSize >::ConstIterator 
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
DoubleReal getMonoWeight () const
 returns the mono isotopic weight of the formula (includes proton charges) More...
 
DoubleReal 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...
 
const ElementgetElement (const String &name) const
 returns a pointer to the element with name or symbol or 0 if no such element is fount More...
 
const ElementgetElement (UInt atomic_number) const
 returns a pointer to the element with given atomic number or 0 if none if found More...
 
const ElementDBgetElementDB () const
 returns a pointer to the element db which is used with this class More...
 
Size getNumberOf (UInt atomic_number) const
 returns the number of atoms with the given atomic_number More...
 
Size getNumberOf (const String &name) const
 returns the number of atoms with the given name More...
 
Size getNumberOf (const Element *element) const
 returns the number of atoms More...
 
Size getNumberOfAtoms () const
 returns the atoms total More...
 
SignedSize getCharge () const
 returns the charge More...
 
void setCharge (SignedSize charge)
 sets the charge More...
 
String getString () const
 returns the formula as a string (charges are not included) More...
 
EmpiricalFormulaoperator= (const EmpiricalFormula &rhs)
 assignment operator More...
 
EmpiricalFormulaoperator= (const String &rhs)
 
EmpiricalFormulaoperator+= (const EmpiricalFormula &rhs)
 adds the elements of the given formula More...
 
EmpiricalFormulaoperator+= (const String &rhs)
 
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...
 
EmpiricalFormula operator+ (const String &rhs) const
 
EmpiricalFormulaoperator-= (const EmpiricalFormula &rhs)
 subtracts the elements of a formula More...
 
EmpiricalFormulaoperator-= (const String &rhs)
 
EmpiricalFormula operator- (const EmpiricalFormula &rhs) const
 subtracts the elements of a formula an returns a new formula More...
 
EmpiricalFormula operator- (const String &rhs) const
 
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 hasElement (const String &name) const
 returns true if the formula contains the element, given with its name or symbol More...
 
bool hasElement (UInt atomic_number) const
 returns true if the formula contains the element with the given atomic number More...
 
bool operator== (const EmpiricalFormula &rhs) const
 returns true if the formulas contain equal elements in equal quantities More...
 
bool operator== (const String &rhs) const
 
bool operator!= (const EmpiricalFormula &rhs) const
 returns true if the formulas differ in elements composition More...
 
bool operator!= (const String &rhs) const
 
Iterators
ConstIterator begin () const
 
ConstIterator end () const
 

Protected Member Functions

void removeZeroedElements_ ()
 remove elements with count 0 More...
 
void readElementsFromFile_ (const String &file_name)
 
SignedSize parseFormula_ (Map< const Element *, SignedSize > &ef, const String &formula) const
 

Protected Attributes

Map< const Element *, SignedSizeformula_
 
SignedSize charge_
 
const ElementDBelement_db_
 

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 mathmatical 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

Iterators.

Constructor & Destructor Documentation

default constructor

copy constructor

EmpiricalFormula ( const String rhs)

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
ConstIterator end ( ) const
inline
DoubleReal getAverageWeight ( ) const

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

SignedSize getCharge ( ) const

returns the charge

const Element* getElement ( const String name) const

returns a pointer to the element with name or symbol or 0 if no such element is fount

const Element* getElement ( UInt  atomic_number) const

returns a pointer to the element with given atomic number or 0 if none if found

const ElementDB* getElementDB ( ) const

returns a pointer to the element db which is used with this class

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_depth,:this parameter gives the max isotope which is considered, if 0 all are reported
DoubleReal getMonoWeight ( ) const

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

Referenced by initModificationMassesRNA(), and TOPPRNPxl::main_().

Size getNumberOf ( UInt  atomic_number) const

returns the number of atoms with the given atomic_number

Size getNumberOf ( const String name) const

returns the number of atoms with the given name

Size getNumberOf ( const Element element) const

returns the number of atoms

Size getNumberOfAtoms ( ) const

returns the atoms total

String getString ( ) const

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

Referenced by initModificationMassesRNA(), and SvmTheoreticalSpectrumGenerator::IonType::operator<().

bool hasElement ( const Element element) const

returns true if the formula contains the element

bool hasElement ( const String name) const

returns true if the formula contains the element, given with its name or symbol

bool hasElement ( UInt  atomic_number) const

returns true if the formula contains the element with the given atomic number

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

bool operator!= ( const String rhs) const

returns true if the formulas differ in elements composition

Exceptions
throwsParseError if the formula cannot be parsed
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 String rhs) const

adds the elements of the given formula (given as a String) and returns a new formula

Exceptions
throwsParseError if the formula cannot be parsed
EmpiricalFormula& operator+= ( const EmpiricalFormula rhs)

adds the elements of the given formula

EmpiricalFormula& operator+= ( const String rhs)

adds the elements from the given formula, which is given as a OpenMS String

Exceptions
throwsParseError if the formula cannot be parsed
EmpiricalFormula operator- ( const EmpiricalFormula rhs) const

subtracts the elements of a formula an returns a new formula

EmpiricalFormula operator- ( const String rhs) const

subtracts the elements of a formula given as a String and returns a new formula

Exceptions
throwsParseError if the formula cannot be parsed
EmpiricalFormula& operator-= ( const EmpiricalFormula rhs)

subtracts the elements of a formula

EmpiricalFormula& operator-= ( const String rhs)

subtracts the elements of a formula given as string

Exceptions
throwsParseError if the formula cannot be parsed
EmpiricalFormula& operator= ( const EmpiricalFormula rhs)

assignment operator

Assignment

EmpiricalFormula& operator= ( const String rhs)

assignment operator which assigns an string to the formula

Exceptions
throwsParseError if the formula cannot be parsed
bool operator== ( const EmpiricalFormula rhs) const

returns true if the formulas contain equal elements in equal quantities

bool operator== ( const String rhs) const

returns true if the formulas contain equal elements in equal quantities

Exceptions
throwsParseError if the formula cannot be parsed
SignedSize parseFormula_ ( Map< const Element *, SignedSize > &  ef,
const String formula 
) const
protected
void readElementsFromFile_ ( const String file_name)
protected
void removeZeroedElements_ ( )
protected

remove elements with count 0

void setCharge ( SignedSize  charge)

sets the charge

Referenced by initModificationMassesRNA().

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
const ElementDB* element_db_
protected
Map<const Element *, SignedSize> formula_
protected

OpenMS / TOPP release 1.11.1 Documentation generated on Thu Nov 14 2013 11:19:27 using doxygen 1.8.5