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
 
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)
 add to internal data; also update indices for search by name and regex
 

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_()

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