OpenMS
Loading...
Searching...
No Matches
MonosaccharideDB Class Reference

Singleton database of monosaccharides for glycan notation. More...

#include <OpenMS/CHEMISTRY/MonosaccharideDB.h>

Collaboration diagram for MonosaccharideDB:
[legend]

Classes

struct  Monosaccharide
 Structure representing a monosaccharide. More...
 

Accessors

std::map< String, Monosaccharidemonosaccharides_
 Map from primary symbol to monosaccharide data.
 
std::map< String, Stringsynonym_to_symbol_
 Map from synonyms to primary symbol (for lookup)
 
static MonosaccharideDBgetInstance ()
 
bool hasSymbol (const String &symbol) const
 Check if a symbol (or synonym) is a known monosaccharide.
 
const MonosaccharidegetMonosaccharide (const String &symbol) const
 Get monosaccharide by symbol.
 
const MonosaccharidegetMonosaccharideOrThrow (const String &symbol) const
 Get monosaccharide by symbol (throws if not found)
 
std::vector< StringgetAllSymbols () const
 Get all known primary symbols.
 
Size getNumberOfMonosaccharides () const
 Get the number of monosaccharides in the database.
 
 MonosaccharideDB ()
 Private constructor (singleton pattern)
 
 ~MonosaccharideDB ()=default
 Destructor.
 
 MonosaccharideDB (const MonosaccharideDB &)=delete
 Deleted copy constructor.
 
 MonosaccharideDB (MonosaccharideDB &&)=delete
 Deleted move constructor.
 
MonosaccharideDBoperator= (const MonosaccharideDB &)=delete
 Deleted copy assignment.
 
MonosaccharideDBoperator= (MonosaccharideDB &&)=delete
 Deleted move assignment.
 
void loadFromJSON_ ()
 Load monosaccharide data from JSON file.
 

Detailed Description

Singleton database of monosaccharides for glycan notation.

This class provides access to monosaccharide symbols used in ProForma glycan notation. The data is loaded from a JSON file (CHEMISTRY/monosaccharides.json) which contains monosaccharide symbols, their full names, monoisotopic masses, chemical formulas, and synonyms.

The monosaccharide data originates from the HUPO-PSI ProForma specification: https://github.com/HUPO-PSI/ProForma

Common monosaccharides include:

  • Hex (Hexose, 162.0528 Da)
  • HexNAc (N-Acetylhexosamine, 203.0794 Da)
  • Fuc (Fucose, 146.0579 Da)
  • NeuAc / Neu5Ac (N-Acetylneuraminic acid / Sialic Acid, 291.0954 Da)
  • NeuGc / Neu5Gc (N-Glycolylneuraminic acid, 307.0903 Da)
See also
https://github.com/HUPO-PSI/ProForma for the ProForma specification

Class Documentation

◆ OpenMS::MonosaccharideDB::Monosaccharide

struct OpenMS::MonosaccharideDB::Monosaccharide

Structure representing a monosaccharide.

Collaboration diagram for MonosaccharideDB::Monosaccharide:
[legend]
Class Members
String formula Chemical formula (e.g., "C6H10O5")
double mass Monoisotopic mass in Daltons.
String name Full name or description.
String symbol Primary symbol (e.g., "Hex", "HexNAc")
vector< String > synonyms Alternative symbols/names.

Constructor & Destructor Documentation

◆ MonosaccharideDB() [1/3]

MonosaccharideDB ( )
private

Private constructor (singleton pattern)

◆ ~MonosaccharideDB()

~MonosaccharideDB ( )
privatedefault

Destructor.

◆ MonosaccharideDB() [2/3]

MonosaccharideDB ( const MonosaccharideDB )
privatedelete

Deleted copy constructor.

◆ MonosaccharideDB() [3/3]

MonosaccharideDB ( MonosaccharideDB &&  )
privatedelete

Deleted move constructor.

Member Function Documentation

◆ getAllSymbols()

std::vector< String > getAllSymbols ( ) const

Get all known primary symbols.

◆ getInstance()

static MonosaccharideDB * getInstance ( )
static

Returns a pointer to the singleton instance of the monosaccharide database This is thread-safe upon first and subsequent calls (Meyers' singleton)

◆ getMonosaccharide()

const Monosaccharide * getMonosaccharide ( const String symbol) const

Get monosaccharide by symbol.

Parameters
symbolThe monosaccharide symbol (e.g., "Hex") or a known synonym
Returns
Pointer to the monosaccharide, or nullptr if not found

◆ getMonosaccharideOrThrow()

const Monosaccharide & getMonosaccharideOrThrow ( const String symbol) const

Get monosaccharide by symbol (throws if not found)

Parameters
symbolThe monosaccharide symbol or synonym
Returns
Reference to the monosaccharide
Exceptions
Exception::ElementNotFoundif symbol is not known

◆ getNumberOfMonosaccharides()

Size getNumberOfMonosaccharides ( ) const

Get the number of monosaccharides in the database.

◆ hasSymbol()

bool hasSymbol ( const String symbol) const

Check if a symbol (or synonym) is a known monosaccharide.

◆ loadFromJSON_()

void loadFromJSON_ ( )
private

Load monosaccharide data from JSON file.

◆ operator=() [1/2]

MonosaccharideDB & operator= ( const MonosaccharideDB )
privatedelete

Deleted copy assignment.

◆ operator=() [2/2]

MonosaccharideDB & operator= ( MonosaccharideDB &&  )
privatedelete

Deleted move assignment.

Member Data Documentation

◆ monosaccharides_

std::map<String, Monosaccharide> monosaccharides_
private

Map from primary symbol to monosaccharide data.

◆ synonym_to_symbol_

std::map<String, String> synonym_to_symbol_
private

Map from synonyms to primary symbol (for lookup)