Singleton that stores elements and isotopes. More...
#include <OpenMS/CHEMISTRY/ElementDB.h>
Predicates | |
std::unordered_map< std::string, const Element * > | names_ |
std::unordered_map< std::string, const Element * > | symbols_ |
std::unordered_map< unsigned int, const Element * > | atomic_numbers_ |
bool | hasElement (const std::string &name) const |
returns true if the db contains an element with the given name More... | |
bool | hasElement (unsigned int atomic_number) const |
returns true if the db contains an element with the given atomic_number More... | |
IsotopeDistribution | parseIsotopeDistribution_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
double | calculateAvgWeight_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
double | calculateMonoWeight_ (const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
void | storeElements_ () |
constructs element objects More... | |
void | buildElement_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass) |
build element objects from given abundances, masses, name, symbol, and atomic number More... | |
void | addElementToMaps_ (const std::string &name, const std::string &symbol, const unsigned int an, std::unique_ptr< const Element > e) |
add element objects to documentation maps More... | |
void | storeIsotopes_ (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &Z_to_mass, const IsotopeDistribution &isotopes) |
constructs isotope objects More... | |
void | clear_ () |
ElementDB () | |
~ElementDB () | |
ElementDB (const ElementDB &db)=delete | |
ElementDB (const ElementDB &&db)=delete | |
ElementDB & | operator= (const ElementDB &db)=delete |
Accessors | |
static ElementDB * | getInstance () |
const std::unordered_map< std::string, const Element * > & | getNames () const |
returns a hashmap that contains names mapped to pointers to the elements More... | |
const std::unordered_map< std::string, const Element * > & | getSymbols () const |
returns a hashmap that contains symbols mapped to pointers to the elements More... | |
const std::unordered_map< unsigned int, const Element * > & | getAtomicNumbers () const |
returns a hashmap that contains atomic numbers mapped to pointers of the elements More... | |
const Element * | getElement (const std::string &name) const |
const Element * | getElement (unsigned int atomic_number) const |
returns a pointer to the element of atomic number; if no element is found 0 is returned More... | |
void | addElement (const std::string &name, const std::string &symbol, const unsigned int an, const std::map< unsigned int, double > &abundance, const std::map< unsigned int, double > &mass, bool replace_existing) |
Singleton that stores elements and isotopes.
The elements weights (in the default file) are taken from "Isotopic Compositions of the Elements 1997", Pure Appl. Chem., 70(1), 217-235, 1998. (http://www.iupac.org/reports/1998/7001rosman/)
The isotope distributions (in the default file) are taken from "Atomic weights of the elements. Review 2000" (IUPAC Technical Report) Pure Appl. Chem., 2003, Vol. 75, No. 6, pp. 683-799 doi:10.1351/pac200375060683
Specific isotopes of elements can be accessed by writing the atomic number of the isotope in brackets followed by the element name, e.g. "(2)H" for deuterium.
include exact mass values for the isotopes (done) and update IsotopeDistribution (Andreas)
add exact isotope distribution based on exact isotope values (Andreas)
|
private |
|
private |
void addElement | ( | const std::string & | name, |
const std::string & | symbol, | ||
const unsigned int | an, | ||
const std::map< unsigned int, double > & | abundance, | ||
const std::map< unsigned int, double > & | mass, | ||
bool | replace_existing | ||
) |
Adds or replaces a new element to the database
Adds a new element (or replaces an existing one if replace_existing is true).
name | Common name of the element |
symbol | Element symbol (one or two letter) |
an | Atomic number (number of protons) |
abundance | List of abundances for each isotope (e.g. {{12u, 0.9893}, {13u, 0.0107}} for Carbon) |
abundance | List of masses for each isotope (e.g. {{12u, 12.0}, {13u, 13.003355}} for Carbon) |
|
protected |
add element objects to documentation maps
|
protected |
build element objects from given abundances, masses, name, symbol, and atomic number
|
protected |
calculates the average weight based on isotope abundance and mass
|
protected |
_ calculates the mono weight based on the most abundant isotope
|
protected |
_ resets all containers
const std::unordered_map<unsigned int, const Element*>& getAtomicNumbers | ( | ) | const |
returns a hashmap that contains atomic numbers mapped to pointers of the elements
const Element* getElement | ( | const std::string & | name | ) | const |
returns a pointer to the element with name or symbol given in parameter name; if no element exists with that name or symbol 0 is returned
name | name or symbol of the element |
const Element* getElement | ( | unsigned int | atomic_number | ) | const |
returns a pointer to the element of atomic number; if no element is found 0 is returned
|
static |
returns a pointer to the singleton instance of the element db This is thread safe upon first and subsequent calls.
const std::unordered_map<std::string, const Element*>& getNames | ( | ) | const |
returns a hashmap that contains names mapped to pointers to the elements
const std::unordered_map<std::string, const Element*>& getSymbols | ( | ) | const |
returns a hashmap that contains symbols mapped to pointers to the elements
bool hasElement | ( | const std::string & | name | ) | const |
returns true if the db contains an element with the given name
bool hasElement | ( | unsigned int | atomic_number | ) | const |
returns true if the db contains an element with the given atomic_number
|
protected |
parses a isotope distribution of abundances and masses
|
protected |
constructs element objects
|
protected |
constructs isotope objects
|
protected |
|
protected |
|
protected |