OpenMS  2.7.0
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ControlledVocabulary Class Reference

Representation of a controlled vocabulary. More...

#include <OpenMS/FORMAT/ControlledVocabulary.h>

Collaboration diagram for ControlledVocabulary:
[legend]

Classes

struct  CVTerm
 Representation of a CV term. More...
 

Public Member Functions

 ControlledVocabulary ()
 Constructor. More...
 
virtual ~ControlledVocabulary ()
 Destructor. More...
 
const Stringname () const
 Returns the CV name (set in the load method) More...
 
void loadFromOBO (const String &name, const String &filename)
 Loads the CV from an OBO file. More...
 
bool exists (const String &id) const
 Returns true if the term is in the CV. Returns false otherwise. More...
 
bool hasTermWithName (const String &name) const
 Returns true if a term with the given name is in the CV. Returns false otherwise. More...
 
const CVTermgetTerm (const String &id) const
 Returns a term specified by ID. More...
 
const CVTermgetTermByName (const String &name, const String &desc="") const
 Returns a term specified by name. More...
 
const Map< String, CVTerm > & getTerms () const
 returns all the terms stored in the CV More...
 
void getAllChildTerms (std::set< String > &terms, const String &parent_id) const
 Writes all child terms recursively into terms. More...
 
template<class LAMBDA >
bool iterateAllChildren (const String &parent_id, LAMBDA lbd) const
 Iterates over all children of parent recursively. More...
 
const ControlledVocabulary::CVTermcheckAndGetTermByName (const OpenMS::String &name) const
 Searches the existing terms for the given name. More...
 
bool isChildOf (const String &child_id, const String &parent_id) const
 Returns if child is a child of parent. More...
 

Static Public Member Functions

static const ControlledVocabularygetPSIMSCV ()
 Returns a CV for parsing/storing PSI-MS related data, e.g. mzML, or handle accessions/ids in datastructures. More...
 

Protected Member Functions

bool checkName_ (const String &id, const String &name, bool ignore_case=true)
 checks if a name corresponds to an id More...
 

Protected Attributes

Map< String, CVTermterms_
 Map from ID to CVTerm. More...
 
Map< String, StringnamesToIds_
 Map from name to id. More...
 
String name_
 Name set in the load method. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const ControlledVocabulary &cv)
 Print the contents to a stream. More...
 

Detailed Description

Representation of a controlled vocabulary.

This representation only contains the information used for parsing and validation. All other lines are stored in the unparsed member of the CVTerm struct.

Constructor & Destructor Documentation

◆ ControlledVocabulary()

Constructor.

◆ ~ControlledVocabulary()

virtual ~ControlledVocabulary ( )
virtual

Destructor.

Member Function Documentation

◆ checkAndGetTermByName()

const ControlledVocabulary::CVTerm* checkAndGetTermByName ( const OpenMS::String name) const

Searches the existing terms for the given name.

Returns
const Pointer to found term. When term is not found, returns nullptr

◆ checkName_()

bool checkName_ ( const String id,
const String name,
bool  ignore_case = true 
)
protected

checks if a name corresponds to an id

If the term is not known, 'true' is returned!

◆ exists()

bool exists ( const String id) const

Returns true if the term is in the CV. Returns false otherwise.

◆ getAllChildTerms()

void getAllChildTerms ( std::set< String > &  terms,
const String parent_id 
) const

Writes all child terms recursively into terms.

If parent has child this method writes them recursively into the term object

Exceptions
Exception::InvalidValueis thrown if the term is not present

◆ getPSIMSCV()

static const ControlledVocabulary& getPSIMSCV ( )
static

Returns a CV for parsing/storing PSI-MS related data, e.g. mzML, or handle accessions/ids in datastructures.

The CV will be initialized on first access. Repeated access is therefor cheap.

It consists of the following CVs:

  • PSI-MS (psi-ms.obo)
  • PATO (quality.obo)
  • UO (unit.obo)
  • BTO (CV/brenda.obo)
  • GO (goslim_goa.obo)

◆ getTerm()

const CVTerm& getTerm ( const String id) const

Returns a term specified by ID.

Exceptions
Exception::InvalidValueis thrown if the term is not present

◆ getTermByName()

const CVTerm& getTermByName ( const String name,
const String desc = "" 
) const

Returns a term specified by name.

Exceptions
Exception::InvalidValueis thrown if the term is not present

◆ getTerms()

const Map<String, CVTerm>& getTerms ( ) const

returns all the terms stored in the CV

◆ hasTermWithName()

bool hasTermWithName ( const String name) const

Returns true if a term with the given name is in the CV. Returns false otherwise.

◆ isChildOf()

bool isChildOf ( const String child_id,
const String parent_id 
) const

Returns if child is a child of parent.

Exceptions
Exception::InvalidValueis thrown if one of the terms is not present

◆ iterateAllChildren()

bool iterateAllChildren ( const String parent_id,
LAMBDA  lbd 
) const
inline

Iterates over all children of parent recursively.

Parameters
lbdFunction that gets the child-Strings passed. Must return bool. Used for comparisons and / or to set captured variables. If the lambda returns true, the iteration is exited prematurely. E.g. if you have found your search, you don't need to continue searching. Otherwise, if you want to go through the whole tree (e.g. to fill a vector) you can just return false always to not quit early.

◆ loadFromOBO()

void loadFromOBO ( const String name,
const String filename 
)

Loads the CV from an OBO file.

Exceptions
Exception::FileNotFoundis thrown if the file could not be opened
Exception::ParseErroris thrown if an error occurs during parsing

◆ name()

const String& name ( ) const

Returns the CV name (set in the load method)

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const ControlledVocabulary cv 
)
friend

Print the contents to a stream.

Member Data Documentation

◆ name_

String name_
protected

Name set in the load method.

◆ namesToIds_

Map<String, String> namesToIds_
protected

Map from name to id.

◆ terms_

Map<String, CVTerm> terms_
protected

Map from ID to CVTerm.