OpenMS
Loading...
Searching...
No Matches
DigestionEnzymeDB< DigestionEnzymeType, InstanceType > Class Template Reference

Digestion enzyme database (base class) More...

#include <OpenMS/CHEMISTRY/DigestionEnzymeDB.h>

Inheritance diagram for DigestionEnzymeDB< DigestionEnzymeType, InstanceType >:
[legend]
Collaboration diagram for DigestionEnzymeDB< DigestionEnzymeType, InstanceType >:
[legend]

Public Member Functions

Constructors and Destructors
virtual ~DigestionEnzymeDB ()
 destructor
 
Accessors
const DigestionEnzymeType * getEnzyme (const String &name) const
 
const DigestionEnzymeType * getEnzymeByRegEx (const String &cleavage_regex) const
 
void getAllNames (std::vector< String > &all_names) const
 returns all the enzyme names (does NOT include synonym names)
 
Predicates
bool hasEnzyme (const String &name) const
 returns true if the db contains a enzyme with the given name (supports synonym names)
 
bool hasRegEx (const String &cleavage_regex) const
 returns true if the db contains a enzyme with the given regex
 
bool hasEnzyme (const DigestionEnzymeType *enzyme) const
 returns true if the db contains the enzyme of the given pointer
 

Typedefs

typedef std::set< constDigestionEnzymeType * >::const_iterator ConstEnzymeIterator
 
typedef std::set< constDigestionEnzymeType * >::iterator EnzymeIterator
 
static InstanceType * getInstance ()
 this member function serves as a replacement of the constructor
 

Assignment

std::map< String, const DigestionEnzymeType * > enzyme_names_
 index by names
 
std::map< String, const DigestionEnzymeType * > enzyme_regex_
 index by regex
 
std::set< const DigestionEnzymeType * > const_enzymes_
 set of enzymes
 
DigestionEnzymeDBoperator= (const DigestionEnzymeDB &enzymes_db)=delete
 assignment operator
 
bool readEnzymesFromFileIfPresent_ (const String &filename)
 Reads enzymes from the given file if it exists.
 
void readEnzymesFromFile_ (const String &filename)
 reads enzymes from the given file
 
const DigestionEnzymeType * parseEnzyme_ (std::map< String, String > &values) const
 parses an enzyme, given the key/value pairs from an XML file
 
void addEnzyme_ (const DigestionEnzymeType *enzyme)
 

Iterators

ConstEnzymeIterator beginEnzyme () const
 
ConstEnzymeIterator endEnzyme () const
 
 DigestionEnzymeDB (const String &db_file="")
 
 DigestionEnzymeDB (const DigestionEnzymeDB &enzymes_db)=delete
 copy constructor
 

Detailed Description

template<typename DigestionEnzymeType, typename InstanceType>
class OpenMS::DigestionEnzymeDB< DigestionEnzymeType, InstanceType >

Digestion enzyme database (base class)

Template parameters: DigestionEnzymeType should be a subclass of DigestionEnzyme. InstanceType should be a subclass of DigestionEnzymeDB ("Curiously Recurring Template Pattern", see https://stackoverflow.com/a/34519373).

Member Typedef Documentation

◆ ConstEnzymeIterator

template<typename DigestionEnzymeType , typename InstanceType >
typedef std::set<constDigestionEnzymeType*>::const_iterator ConstEnzymeIterator

◆ EnzymeIterator

template<typename DigestionEnzymeType , typename InstanceType >
typedef std::set<constDigestionEnzymeType*>::iterator EnzymeIterator

Constructor & Destructor Documentation

◆ ~DigestionEnzymeDB()

template<typename DigestionEnzymeType , typename InstanceType >
virtual ~DigestionEnzymeDB ( )
inlinevirtual

◆ DigestionEnzymeDB() [1/2]

template<typename DigestionEnzymeType , typename InstanceType >
DigestionEnzymeDB ( const String db_file = "")
inlineprotected

◆ DigestionEnzymeDB() [2/2]

template<typename DigestionEnzymeType , typename InstanceType >
DigestionEnzymeDB ( const DigestionEnzymeDB< DigestionEnzymeType, InstanceType > &  enzymes_db)
protecteddelete

copy constructor

Member Function Documentation

◆ addEnzyme_()

template<typename DigestionEnzymeType , typename InstanceType >
void addEnzyme_ ( const DigestionEnzymeType *  enzyme)
inlineprotected

◆ beginEnzyme()

template<typename DigestionEnzymeType , typename InstanceType >
ConstEnzymeIterator beginEnzyme ( ) const
inline

◆ endEnzyme()

template<typename DigestionEnzymeType , typename InstanceType >
ConstEnzymeIterator endEnzyme ( ) const
inline

◆ getAllNames()

template<typename DigestionEnzymeType , typename InstanceType >
void getAllNames ( std::vector< String > &  all_names) const
inline

returns all the enzyme names (does NOT include synonym names)

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::const_enzymes_.

◆ getEnzyme()

template<typename DigestionEnzymeType , typename InstanceType >
const DigestionEnzymeType * getEnzyme ( const String name) const
inline

returns a pointer to the enzyme with name (supports synonym names)

Exceptions
Exception::ElementNotFoundif enzyme is unknown
Note
enzymes are registered in regular and in toLowercase() style, if unsure use toLowercase

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::enzyme_names_.

◆ getEnzymeByRegEx()

template<typename DigestionEnzymeType , typename InstanceType >
const DigestionEnzymeType * getEnzymeByRegEx ( const String cleavage_regex) const
inline

returns a pointer to the enzyme with cleavage regex

Exceptions
Exception::IllegalArgumentif enzyme regex is unregistered.

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::enzyme_regex_, and DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::hasRegEx().

◆ getInstance()

template<typename DigestionEnzymeType , typename InstanceType >
static InstanceType * getInstance ( )
inlinestatic

this member function serves as a replacement of the constructor

◆ hasEnzyme() [1/2]

template<typename DigestionEnzymeType , typename InstanceType >
bool hasEnzyme ( const DigestionEnzymeType *  enzyme) const
inline

returns true if the db contains the enzyme of the given pointer

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::const_enzymes_.

◆ hasEnzyme() [2/2]

template<typename DigestionEnzymeType , typename InstanceType >
bool hasEnzyme ( const String name) const
inline

returns true if the db contains a enzyme with the given name (supports synonym names)

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::enzyme_names_.

◆ hasRegEx()

template<typename DigestionEnzymeType , typename InstanceType >
bool hasRegEx ( const String cleavage_regex) const
inline

◆ operator=()

template<typename DigestionEnzymeType , typename InstanceType >
DigestionEnzymeDB & operator= ( const DigestionEnzymeDB< DigestionEnzymeType, InstanceType > &  enzymes_db)
protecteddelete

assignment operator

◆ parseEnzyme_()

template<typename DigestionEnzymeType , typename InstanceType >
const DigestionEnzymeType * parseEnzyme_ ( std::map< String, String > &  values) const
inlineprotected

parses an enzyme, given the key/value pairs from an XML file

References OPENMS_LOG_ERROR.

Referenced by DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::readEnzymesFromFile_().

◆ readEnzymesFromFile_()

◆ readEnzymesFromFileIfPresent_()

template<typename DigestionEnzymeType , typename InstanceType >
bool readEnzymesFromFileIfPresent_ ( const String filename)
inlineprotected

Reads enzymes from the given file if it exists.

Returns
true if file was found and loaded successfully, false if file was not found
Note
Only FileNotFound exceptions are caught. ParseError exceptions are intentionally re-thrown to indicate XML parsing issues with an existing file.

References DigestionEnzymeDB< DigestionEnzymeType, InstanceType >::readEnzymesFromFile_().

Member Data Documentation

◆ const_enzymes_

◆ enzyme_names_

template<typename DigestionEnzymeType , typename InstanceType >
std::map<String, const DigestionEnzymeType*> enzyme_names_
protected

◆ enzyme_regex_

template<typename DigestionEnzymeType , typename InstanceType >
std::map<String, const DigestionEnzymeType*> enzyme_regex_
protected