OpenMS
2.4.0
|
database which holds all residue modifications from UniMod More...
#include <OpenMS/CHEMISTRY/ModificationsDB.h>
Public Member Functions | |
Size | getNumberOfModifications () const |
Returns the number of modifications read from the unimod.xml file. More... | |
const ResidueModification & | getModification (Size index) const |
Returns the modification with the given index. More... | |
void | searchModifications (std::set< const ResidueModification *> &mods, const String &mod_name, const String &residue="", ResidueModification::TermSpecificity term_spec=ResidueModification::NUMBER_OF_TERM_SPECIFICITY) const |
Collects all modifications which have the given name as synonym. More... | |
const ResidueModification & | getModification (const String &mod_name, const String &residue="", ResidueModification::TermSpecificity term_spec=ResidueModification::NUMBER_OF_TERM_SPECIFICITY) const |
Returns the modification with the given name. More... | |
bool | has (String modification) const |
Returns true if the modification exists. More... | |
void | addModification (ResidueModification *new_mod) |
Add a new modification to ModificationsDB. More... | |
Size | findModificationIndex (const String &mod_name) const |
Returns the index of the modification in the mods_ vector; a unique name must be given. More... | |
void | searchModificationsByDiffMonoMass (std::vector< String > &mods, double mass, double max_error, const String &residue="", ResidueModification::TermSpecificity term_spec=ResidueModification::NUMBER_OF_TERM_SPECIFICITY) |
Collects all modifications with matching delta mass. More... | |
const ResidueModification * | getBestModificationByMonoMass (double mass, double max_error, const String &residue="", ResidueModification::TermSpecificity term_spec=ResidueModification::NUMBER_OF_TERM_SPECIFICITY) |
Returns the best matching modification for the given mass and residue. More... | |
const ResidueModification * | getBestModificationByDiffMonoMass (double mass, double max_error, const String &residue="", ResidueModification::TermSpecificity term_spec=ResidueModification::NUMBER_OF_TERM_SPECIFICITY) |
Returns the best matching modification for the given delta mass and residue. More... | |
void | getAllSearchModifications (std::vector< String > &modifications) const |
Collects all modifications that can be used for identification searches. More... | |
Static Public Member Functions | |
static ModificationsDB * | getInstance (OpenMS::String unimod_file="CHEMISTRY/unimod.xml", OpenMS::String psimod_file="CHEMISTRY/PSI-MOD.obo", OpenMS::String xlmod_file="CHEMISTRY/XLMOD.obo") |
Returns a pointer to the modifications DB (singleton) More... | |
static bool | isInstantiated () |
Check whether ModificationsDB was instantiated before. More... | |
Protected Member Functions | |
bool | residuesMatch_ (const String &residue, char origin) const |
Helper function to check if a residue matches the origin for a modification. More... | |
Protected Attributes | |
std::vector< ResidueModification * > | mods_ |
Stores the modifications. More... | |
Map< String, std::set< const ResidueModification * > > | modification_names_ |
Stores the mappings of (unique) names to the modifications. More... | |
Static Protected Attributes | |
static bool | is_instantiated_ |
Stores whether ModificationsDB was instantiated before. More... | |
Private Member Functions | |||||||
void | readFromOBOFile (const String &filename) | ||||||
Adds modifications from a given file in OBO format. More... | |||||||
void | readFromUnimodXMLFile (const String &filename) | ||||||
Adds modifications from a given file in Unimod XML format. More... | |||||||
Constructors and Destructors | |||||||
| |||||||
ModificationsDB (OpenMS::String unimod_file="CHEMISTRY/unimod.xml", OpenMS::String psimod_file="CHEMISTRY/PSI-MOD.obo", OpenMS::String xlmod_file="CHEMISTRY/XLMOD.obo") | |||||||
Default constructor. More... | |||||||
ModificationsDB (const ModificationsDB &residue_db) | |||||||
Copy constructor. More... | |||||||
virtual | ~ModificationsDB () | ||||||
Destructor. More... | |||||||
Assignment | |||||||
ModificationsDB & | operator= (const ModificationsDB &aa) | ||||||
Assignment operator. More... | |||||||
Friends | |
class | CrossLinksDB |
database which holds all residue modifications from UniMod
This singleton class serves as a storage of the available modifications represented by UniMod (www.unimod.org). The modifications are identified by their name and possibly other IDs from UniMod or the PSI-MOD ontology. Modifications can have different specificities, e.g. they can occur only at the termini, anywhere or only at specific amino acids.
The modifications are defined in share/OpenMS/CHEMISTRY/unimod.xml and in share/OpenMS/CHEMISTRY/PSI-MOD.obo. The unimod file can be directly downloaded from unimod.org and replaced if the modifications change.
To add a new modification, not contained in UniMod, one should follow the way described at the unimod.org website and download the file then from unimod.org. The same can be done to add support for the modifications to search engines, e.g. Mascot.
In some scenarios, it might be useful to define different modification databases. This can be done by providing a path when initializing ModificationsDB.
|
private |
Default constructor.
|
private |
Copy constructor.
|
privatevirtual |
Destructor.
void addModification | ( | ResidueModification * | new_mod | ) |
Add a new modification to ModificationsDB.
Exception::InvalidValue | if modification already exists (based on its fullID) |
Referenced by RNPxlSearch::RNPxlParameterParsing::getTargetNucleotideToFragmentAdducts().
Returns the index of the modification in the mods_ vector; a unique name must be given.
Exception::ElementNotFound | if not exactly one matching modification was found |
Exception::InvalidValue | if no matching residue or modification were found |
void getAllSearchModifications | ( | std::vector< String > & | modifications | ) | const |
Collects all modifications that can be used for identification searches.
Referenced by SimpleSearchEngine::registerOptionsAndFlags_(), and RNPxlSearch::registerOptionsAndFlags_().
const ResidueModification* getBestModificationByDiffMonoMass | ( | double | mass, |
double | max_error, | ||
const String & | residue = "" , |
||
ResidueModification::TermSpecificity | term_spec = ResidueModification::NUMBER_OF_TERM_SPECIFICITY |
||
) |
Returns the best matching modification for the given delta mass and residue.
Query the modifications DB to get the best matching modification with the given delta mass at the given residue (NULL pointer means no result, maybe the maximal error tolerance needs to be increased). Possible input for CAM modification would be a delta mass of 57 and a residue of "C".
residue | The residue at which the modifications occurs |
mass | The monoisotopic mass of the residue including the mass of the modification |
max_error | The maximal mass error in the modification search |
const ResidueModification* getBestModificationByMonoMass | ( | double | mass, |
double | max_error, | ||
const String & | residue = "" , |
||
ResidueModification::TermSpecificity | term_spec = ResidueModification::NUMBER_OF_TERM_SPECIFICITY |
||
) |
Returns the best matching modification for the given mass and residue.
Query the modifications DB to get the best matching modification with the given mass at the given residue (NULL pointer means no result, maybe the maximal error tolerance needs to be increased). Possible input for CAM modification would be a mass of 160 and a residue of "C".
residue | The residue at which the modifications occurs |
mass | The monoisotopic mass of the residue including the mass of the modification |
max_error | The maximal mass error in the modification search |
|
inlinestatic |
Returns a pointer to the modifications DB (singleton)
Referenced by RNPxlSearch::RNPxlParameterParsing::getModifications(), SimpleSearchEngine::getModifications_(), RNPxlSearch::RNPxlParameterParsing::getTargetNucleotideToFragmentAdducts(), SimpleSearchEngine::registerOptionsAndFlags_(), and RNPxlSearch::registerOptionsAndFlags_().
const ResidueModification& getModification | ( | Size | index | ) | const |
Returns the modification with the given index.
Exception::IndexOverflow | if the index is too large |
Referenced by RNPxlSearch::RNPxlParameterParsing::getModifications().
const ResidueModification& getModification | ( | const String & | mod_name, |
const String & | residue = "" , |
||
ResidueModification::TermSpecificity | term_spec = ResidueModification::NUMBER_OF_TERM_SPECIFICITY |
||
) | const |
Returns the modification with the given name.
If residue
is set, only modifications with matching residue of origin are considered. If term_spec
is set, only modifications with matching term specificity are considered.
If more than one matching modification is found, the first one is returned with a warning.
Exception::ElementNotFound | if no modification named mod_name exists (via searchModifications()) |
Exception::InvalidValue | if no matching modification exists |
Size getNumberOfModifications | ( | ) | const |
Returns the number of modifications read from the unimod.xml file.
bool has | ( | String | modification | ) | const |
Returns true if the modification exists.
|
static |
Check whether ModificationsDB was instantiated before.
|
private |
Assignment operator.
|
private |
Adds modifications from a given file in OBO format.
Exception::ParseError | if the file cannot be parsed correctly |
|
private |
Adds modifications from a given file in Unimod XML format.
|
protected |
Helper function to check if a residue matches the origin for a modification.
void searchModifications | ( | std::set< const ResidueModification *> & | mods, |
const String & | mod_name, | ||
const String & | residue = "" , |
||
ResidueModification::TermSpecificity | term_spec = ResidueModification::NUMBER_OF_TERM_SPECIFICITY |
||
) | const |
Collects all modifications which have the given name as synonym.
If residue
is set, only modifications with matching residue of origin are considered. If term_spec
is set, only modifications with matching term specificity are considered. The resulting set of modifications may be empty if no modification exists that fulfills the criteria.
Exception::ElementNotFound | if no modification named mod_name exists |
Exception::InvalidValue | if no residue named residue exists |
void searchModificationsByDiffMonoMass | ( | std::vector< String > & | mods, |
double | mass, | ||
double | max_error, | ||
const String & | residue = "" , |
||
ResidueModification::TermSpecificity | term_spec = ResidueModification::NUMBER_OF_TERM_SPECIFICITY |
||
) |
Collects all modifications with matching delta mass.
If residue
is set, only modifications with matching residue of origin are considered. If term_spec
is set, only modifications with matching term specificity are considered.
|
friend |
|
staticprotected |
Stores whether ModificationsDB was instantiated before.
|
protected |
Stores the mappings of (unique) names to the modifications.
|
protected |
Stores the modifications.