OpenMS
QcMLFile Class Reference

File adapter for QcML files used to load and store QcML files. More...

#include <OpenMS/FORMAT/QcMLFile.h>

Inheritance diagram for QcMLFile:
[legend]
Collaboration diagram for QcMLFile:
[legend]

Classes

class  Attachment
 Representation of an attachment. More...
 
class  QualityParameter
 Representation of a quality parameter. More...
 

Public Member Functions

 QcMLFile ()
 Default constructor. More...
 
 ~QcMLFile () override
 Destructor. More...
 
String map2csv (const std::map< String, std::map< String, String > > &cvs_table, const String &separator) const
 
String exportIDstats (const String &filename) const
 
void registerRun (const String &id, const String &name)
 Registers a run in the qcml file with the respective mappings. More...
 
void registerSet (const String &id, const String &name, const std::set< String > &names)
 Registers a set in the qcml file with the respective mappings. More...
 
void addRunQualityParameter (const String &r, const QualityParameter &qp)
 Just adds a qualityparameter to run by the name r. More...
 
void addRunAttachment (const String &r, const Attachment &at)
 Just adds a attachment to run by the name r. More...
 
void addSetQualityParameter (const String &r, const QualityParameter &qp)
 Just adds a qualityparameter to set by the name r. More...
 
void addSetAttachment (const String &r, const Attachment &at)
 Just adds a attachment to set by the name r. More...
 
void removeAttachment (const String &r, std::vector< String > &ids, const String &at="")
 Removes attachments referencing a id given in ids, from run/set r. All attachments if no attachment name is given with at. More...
 
void removeAttachment (const String &r, const String &at)
 Removes attachment with cv accession at from run/set r. More...
 
void removeAllAttachments (const String &at)
 Removes attachment with cv accession at from all runs/sets. More...
 
void removeQualityParameter (const String &r, std::vector< String > &ids)
 Just removes qualityparameter going by one of the ID attributes given in ids. More...
 
void merge (const QcMLFile &addendum, const String &setname="")
 merges the given QCFile into this one More...
 
void collectSetParameter (const String &setname, const String &qp, std::vector< String > &ret)
 collects the values of given QPs (as CVid) of the given set More...
 
String exportAttachment (const String &filename, const String &qpname) const
 Returns a String of a tab separated rows if found empty string else from run/set by the name filename of the qualityparameter by the name qpname. More...
 
String exportQP (const String &filename, const String &qpname) const
 Returns a String value in quotation of a qualityparameter by the name qpname in run/set by the name filename. More...
 
String exportQPs (const String &filename, const StringList &qpnames) const
 Returns a String of a tab separated qualityparameter by the name qpname in run/set by the name filename. More...
 
void getRunIDs (std::vector< String > &ids) const
 Gives the ids of the registered runs in the vector ids. More...
 
void getRunNames (std::vector< String > &ids) const
 Gives the names of the registered runs in the vector ids. More...
 
bool existsRun (const String &filename, bool checkname=false) const
 Returns true if the given run id is present in this file, if checkname is true it also checks the names. More...
 
bool existsSet (const String &filename, bool checkname=false) const
 Returns true if the given set id is present in this file, if checkname is true it also checks the names. More...
 
void existsRunQualityParameter (const String &filename, const String &qpname, std::vector< String > &ids) const
 Returns the ids of the parameter name given if found in given run empty else. More...
 
void existsSetQualityParameter (const String &filename, const String &qpname, std::vector< String > &ids) const
 Returns the ids of the parameter name given if found in given set, empty else. More...
 
void collectQCData (std::vector< ProteinIdentification > &prot_ids, std::vector< PeptideIdentification > &pep_ids, const FeatureMap &feature_map, const ConsensusMap &consensus_map, const String &inputfile_raw, const bool remove_duplicate_features, const MSExperiment &exp)
 Calculation and collection of QC data. More...
 
void store (const String &filename) const
 Store the QCFile. More...
 
void load (const String &filename)
 Load a QCFile. More...
 
- Public Member Functions inherited from XMLHandler
 XMLHandler (const String &filename, const String &version)
 Default constructor. More...
 
 ~XMLHandler () override
 Destructor. More...
 
void reset ()
 Release internal memory used for parsing (call. More...
 
void fatalError (const xercesc::SAXParseException &exception) override
 
void error (const xercesc::SAXParseException &exception) override
 
void warning (const xercesc::SAXParseException &exception) override
 
void fatalError (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
 Fatal error handler. Throws a ParseError exception. More...
 
void error (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
 Error handler for recoverable errors. More...
 
void warning (ActionMode mode, const String &msg, UInt line=0, UInt column=0) const
 Warning handler. More...
 
void characters (const XMLCh *const chars, const XMLSize_t length) override
 Parsing method for character data. More...
 
void startElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname, const xercesc::Attributes &attrs) override
 Parsing method for opening tags. More...
 
void endElement (const XMLCh *const uri, const XMLCh *const localname, const XMLCh *const qname) override
 Parsing method for closing tags. More...
 
virtual void writeTo (std::ostream &)
 Writes the contents to a stream. More...
 
virtual LOADDETAIL getLoadDetail () const
 handler which support partial loading, implement this method More...
 
virtual void setLoadDetail (const LOADDETAIL d)
 handler which support partial loading, implement this method More...
 
void checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids) const
 
- Public Member Functions inherited from XMLFile
 XMLFile ()
 Default constructor. More...
 
 XMLFile (const String &schema_location, const String &version)
 Constructor that sets the schema location. More...
 
virtual ~XMLFile ()
 Destructor. More...
 
bool isValid (const String &filename, std::ostream &os)
 Checks if a file validates against the XML schema. More...
 
const StringgetVersion () const
 return the version of the schema More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Protected Member Functions

void endElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname) override
 
void startElement (const XMLCh *const, const XMLCh *const, const XMLCh *const qname, const xercesc::Attributes &attributes) override
 
void characters (const XMLCh *const chars, const XMLSize_t length) override
 
- Protected Member Functions inherited from XMLHandler
void writeUserParam_ (const String &tag_name, std::ostream &os, const MetaInfoInterface &meta, UInt indent) const
 Writes the content of MetaInfoInterface to the file. More...
 
Int asInt_ (const String &in) const
 Conversion of a String to an integer value. More...
 
Int asInt_ (const XMLCh *in) const
 Conversion of a Xerces string to an integer value. More...
 
UInt asUInt_ (const String &in) const
 Conversion of a String to an unsigned integer value. More...
 
double asDouble_ (const String &in) const
 Conversion of a String to a double value. More...
 
float asFloat_ (const String &in) const
 Conversion of a String to a float value. More...
 
bool asBool_ (const String &in) const
 Conversion of a string to a boolean value. More...
 
DateTime asDateTime_ (String date_string) const
 Conversion of a xs:datetime string to a DateTime value. More...
 
bool equal_ (const XMLCh *a, const XMLCh *b) const
 Returns if two Xerces strings are equal. More...
 
SignedSize cvStringToEnum_ (const Size section, const String &term, const char *message, const SignedSize result_on_error=0)
 
String attributeAsString_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a String. More...
 
Int attributeAsInt_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a Int. More...
 
double attributeAsDouble_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a double. More...
 
DoubleList attributeAsDoubleList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to a DoubleList. More...
 
IntList attributeAsIntList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to an IntList. More...
 
StringList attributeAsStringList_ (const xercesc::Attributes &a, const char *name) const
 Converts an attribute to an StringList. More...
 
bool optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the String value if the attribute is present. More...
 
bool optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the Int value if the attribute is present. More...
 
bool optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the UInt value if the attribute is present. More...
 
bool optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the double value if the attribute is present. More...
 
bool optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the DoubleList value if the attribute is present. More...
 
bool optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the StringList value if the attribute is present. More...
 
bool optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const char *name) const
 Assigns the attribute content to the IntList value if the attribute is present. More...
 
String attributeAsString_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a String. More...
 
Int attributeAsInt_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a Int. More...
 
double attributeAsDouble_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a double. More...
 
DoubleList attributeAsDoubleList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a DoubleList. More...
 
IntList attributeAsIntList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a IntList. More...
 
StringList attributeAsStringList_ (const xercesc::Attributes &a, const XMLCh *name) const
 Converts an attribute to a StringList. More...
 
bool optionalAttributeAsString_ (String &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the String value if the attribute is present. More...
 
bool optionalAttributeAsInt_ (Int &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the Int value if the attribute is present. More...
 
bool optionalAttributeAsUInt_ (UInt &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the UInt value if the attribute is present. More...
 
bool optionalAttributeAsDouble_ (double &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the double value if the attribute is present. More...
 
bool optionalAttributeAsDoubleList_ (DoubleList &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the DoubleList value if the attribute is present. More...
 
bool optionalAttributeAsIntList_ (IntList &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the IntList value if the attribute is present. More...
 
bool optionalAttributeAsStringList_ (StringList &value, const xercesc::Attributes &a, const XMLCh *name) const
 Assigns the attribute content to the StringList value if the attribute is present. More...
 
- Protected Member Functions inherited from XMLFile
void parse_ (const String &filename, XMLHandler *handler)
 Parses the XML file given by filename using the handler given by handler. More...
 
void parseBuffer_ (const std::string &buffer, XMLHandler *handler)
 Parses the in-memory buffer given by buffer using the handler given by handler. More...
 
void save_ (const String &filename, XMLHandler *handler) const
 Stores the contents of the XML handler given by handler in the file given by filename. More...
 
void enforceEncoding_ (const String &encoding)
 

Protected Attributes

std::map< String, std::vector< QualityParameter > > runQualityQPs_
 
std::map< String, std::vector< Attachment > > runQualityAts_
 
std::map< String, std::vector< QualityParameter > > setQualityQPs_
 
std::map< String, std::vector< Attachment > > setQualityAts_
 
std::map< String, std::set< String > > setQualityQPs_members_
 
std::map< String, Stringrun_Name_ID_map_
 
std::map< String, Stringset_Name_ID_map_
 
String tag_
 
UInt progress_
 
QualityParameter qp_
 
Attachment at_
 
std::vector< Stringrow_
 
std::vector< Stringheader_
 
String name_
 
String run_id_
 
std::set< Stringnames_
 
std::vector< QualityParameterqps_
 
std::vector< Attachmentats_
 
- Protected Attributes inherited from XMLHandler
String file_
 File name. More...
 
String version_
 Schema version. More...
 
StringManager sm_
 Helper class for string conversion. More...
 
std::vector< Stringopen_tags_
 Stack of open XML tags. More...
 
LOADDETAIL load_detail_
 parse only until total number of scans and chroms have been determined from attributes More...
 
std::vector< std::vector< String > > cv_terms_
 Array of CV term lists (one sublist denotes one term and it's children) More...
 
- Protected Attributes inherited from XMLFile
String schema_location_
 XML schema file location. More...
 
String schema_version_
 Version string. More...
 
String enforced_encoding_
 Encoding string that replaces the encoding (system dependent or specified in the XML). Disabled if empty. Used as a workaround for XTandem output xml. More...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 

Additional Inherited Members

- Public Types inherited from XMLHandler
enum  ActionMode { LOAD , STORE }
 Action to set the current mode (for error messages) More...
 
enum  LOADDETAIL { LD_ALLDATA , LD_RAWCOUNTS , LD_COUNTS_WITHOPTIONS }
 
- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- Static Public Member Functions inherited from XMLHandler
static String writeXMLEscape (const String &to_escape)
 Escapes a string and returns the escaped string. More...
 
static DataValue fromXSDString (const String &type, const String &value)
 Convert an XSD type (e.g. 'xsd:double') to a DataValue. More...
 
- Static Protected Member Functions inherited from ProgressLogger
static String logTypeToFactoryName_ (LogType type)
 Return the name of the factory product used for this log type. More...
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

File adapter for QcML files used to load and store QcML files.

This Class is supposed to internally collect the data for the qcML File

A documented schema for this format can be found at https://github.com/OpenMS/OpenMS/tree/develop/share/OpenMS/SCHEMAS

Constructor & Destructor Documentation

◆ QcMLFile()

QcMLFile ( )

Default constructor.

◆ ~QcMLFile()

~QcMLFile ( )
override

Destructor.

Member Function Documentation

◆ addRunAttachment()

void addRunAttachment ( const String r,
const Attachment at 
)

Just adds a attachment to run by the name r.

◆ addRunQualityParameter()

void addRunQualityParameter ( const String r,
const QualityParameter qp 
)

Just adds a qualityparameter to run by the name r.

◆ addSetAttachment()

void addSetAttachment ( const String r,
const Attachment at 
)

Just adds a attachment to set by the name r.

◆ addSetQualityParameter()

void addSetQualityParameter ( const String r,
const QualityParameter qp 
)

Just adds a qualityparameter to set by the name r.

◆ characters()

void characters ( const XMLCh *const  chars,
const XMLSize_t  length 
)
overrideprotected

◆ collectQCData()

void collectQCData ( std::vector< ProteinIdentification > &  prot_ids,
std::vector< PeptideIdentification > &  pep_ids,
const FeatureMap feature_map,
const ConsensusMap consensus_map,
const String inputfile_raw,
const bool  remove_duplicate_features,
const MSExperiment exp 
)

Calculation and collection of QC data.

Collects QC data in qualityParameters and qualityAttachments

Parameters
prot_idsprotein identifications from ID file
pep_idspeptide identifications
feature_mapFeatureMap from feature file (featureXML)
consensus_mapConsensusMap from consensus file (consensusXML)
inputfile_rawmzML input file name
remove_duplicate_featuresremoves duplicates in a set of merged features
expMSExperiment to extract QC data from, prior sortSpectra() and updateRanges() required

◆ collectSetParameter()

void collectSetParameter ( const String setname,
const String qp,
std::vector< String > &  ret 
)

collects the values of given QPs (as CVid) of the given set

◆ endElement()

void endElement ( const XMLCh * const  ,
const XMLCh * const  ,
const XMLCh *const  qname 
)
overrideprotected

◆ existsRun()

bool existsRun ( const String filename,
bool  checkname = false 
) const

Returns true if the given run id is present in this file, if checkname is true it also checks the names.

◆ existsRunQualityParameter()

void existsRunQualityParameter ( const String filename,
const String qpname,
std::vector< String > &  ids 
) const

Returns the ids of the parameter name given if found in given run empty else.

◆ existsSet()

bool existsSet ( const String filename,
bool  checkname = false 
) const

Returns true if the given set id is present in this file, if checkname is true it also checks the names.

◆ existsSetQualityParameter()

void existsSetQualityParameter ( const String filename,
const String qpname,
std::vector< String > &  ids 
) const

Returns the ids of the parameter name given if found in given set, empty else.

◆ exportAttachment()

String exportAttachment ( const String filename,
const String qpname 
) const

Returns a String of a tab separated rows if found empty string else from run/set by the name filename of the qualityparameter by the name qpname.

◆ exportIDstats()

String exportIDstats ( const String filename) const

◆ exportQP()

String exportQP ( const String filename,
const String qpname 
) const

Returns a String value in quotation of a qualityparameter by the name qpname in run/set by the name filename.

◆ exportQPs()

String exportQPs ( const String filename,
const StringList qpnames 
) const

Returns a String of a tab separated qualityparameter by the name qpname in run/set by the name filename.

◆ getRunIDs()

void getRunIDs ( std::vector< String > &  ids) const

Gives the ids of the registered runs in the vector ids.

◆ getRunNames()

void getRunNames ( std::vector< String > &  ids) const

Gives the names of the registered runs in the vector ids.

◆ load()

void load ( const String filename)

Load a QCFile.

◆ map2csv()

String map2csv ( const std::map< String, std::map< String, String > > &  cvs_table,
const String separator 
) const

◆ merge()

void merge ( const QcMLFile addendum,
const String setname = "" 
)

merges the given QCFile into this one

◆ registerRun()

void registerRun ( const String id,
const String name 
)

Registers a run in the qcml file with the respective mappings.

◆ registerSet()

void registerSet ( const String id,
const String name,
const std::set< String > &  names 
)

Registers a set in the qcml file with the respective mappings.

◆ removeAllAttachments()

void removeAllAttachments ( const String at)

Removes attachment with cv accession at from all runs/sets.

◆ removeAttachment() [1/2]

void removeAttachment ( const String r,
const String at 
)

Removes attachment with cv accession at from run/set r.

◆ removeAttachment() [2/2]

void removeAttachment ( const String r,
std::vector< String > &  ids,
const String at = "" 
)

Removes attachments referencing a id given in ids, from run/set r. All attachments if no attachment name is given with at.

◆ removeQualityParameter()

void removeQualityParameter ( const String r,
std::vector< String > &  ids 
)

Just removes qualityparameter going by one of the ID attributes given in ids.

◆ startElement()

void startElement ( const XMLCh * const  ,
const XMLCh * const  ,
const XMLCh *const  qname,
const xercesc::Attributes &  attributes 
)
overrideprotected

◆ store()

void store ( const String filename) const

Store the QCFile.

Store the qcML file

Parameters
filenameqcML output file name

Member Data Documentation

◆ at_

Attachment at_
protected

◆ ats_

std::vector<Attachment> ats_
protected

◆ header_

std::vector<String> header_
protected

◆ name_

String name_
protected

◆ names_

std::set<String> names_
protected

◆ progress_

UInt progress_
protected

◆ qp_

QualityParameter qp_
protected

◆ qps_

std::vector<QualityParameter> qps_
protected

◆ row_

std::vector<String> row_
protected

◆ run_id_

String run_id_
protected

◆ run_Name_ID_map_

std::map<String, String > run_Name_ID_map_
protected

◆ runQualityAts_

std::map<String, std::vector< Attachment > > runQualityAts_
protected

◆ runQualityQPs_

std::map<String, std::vector< QualityParameter > > runQualityQPs_
protected

◆ set_Name_ID_map_

std::map<String, String > set_Name_ID_map_
protected

◆ setQualityAts_

std::map<String, std::vector< Attachment > > setQualityAts_
protected

◆ setQualityQPs_

std::map<String, std::vector< QualityParameter > > setQualityQPs_
protected

◆ setQualityQPs_members_

std::map<String, std::set< String > > setQualityQPs_members_
protected

◆ tag_

String tag_
protected