OpenMS
MzIdentMLHandler Class Reference

XML STREAM handler for MzIdentMLFile. More...

#include <OpenMS/FORMAT/HANDLERS/MzIdentMLHandler.h>

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

Constructors and destructor

const ProgressLoggerlogger_
 Progress logger. More...
 
ControlledVocabulary cv_
 Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo) More...
 
ControlledVocabulary unimod_
 Controlled vocabulary for modifications (unimod from OpenMS/share/OpenMS/CV/unimod.obo) More...
 
String tag_
 XML tag parse element. More...
 
Identificationid_
 Identification Item. More...
 
std::vector< ProteinIdentification > * pro_id_
 internal Identification Item for proteins More...
 
std::vector< PeptideIdentification > * pep_id_
 Identification Item for peptides. More...
 
const Identificationcid_
 
const std::vector< ProteinIdentification > * cpro_id_
 
const std::vector< PeptideIdentification > * cpep_id_
 
SpectrumIdentification current_spectrum_id_
 SpectrumIdentification Item. More...
 
IdentificationHit current_id_hit_
 IdentificationHit Item. More...
 
std::map< String, AASequencepep_sequences_
 
std::map< String, Stringpp_identifier_2_sil_
 mapping peptide/proteinidentification identifier_ to spectrumidentificationlist More...
 
std::map< String, Stringsil_2_sdb_
 mapping spectrumidentificationlist to the search data bases More...
 
std::map< String, Stringsil_2_sdat_
 mapping spectrumidentificationlist to the search input More...
 
std::map< String, Stringph_2_sdat_
 mapping identification runs (mapping PeptideIdentifications and ProteinIdentifications via .getIdentifier()) to spectra data More...
 
std::map< String, Stringsil_2_sip_
 mapping spectrumidentificationlist to the search protocol (where the params are at) More...
 
AASequence actual_peptide_
 
Int current_mod_location_
 
ProteinHit actual_protein_
 
 MzIdentMLHandler (const std::vector< ProteinIdentification > &pro_id, const std::vector< PeptideIdentification > &pep_id, const String &filename, const String &version, const ProgressLogger &logger)
 Constructor for a write-only handler for internal identification structures. More...
 
 MzIdentMLHandler (std::vector< ProteinIdentification > &pro_id, std::vector< PeptideIdentification > &pep_id, const String &filename, const String &version, const ProgressLogger &logger)
 Constructor for a read-only handler for internal identification structures. More...
 
 ~MzIdentMLHandler () override
 Destructor. More...
 
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
 
void writeTo (std::ostream &os) override
 Writes the contents to a stream. More...
 
void handleCVParam_ (const String &parent_parent_tag, const String &parent_tag, const String &accession, const xercesc::Attributes &attributes, const String &cv_ref)
 Handles CV terms. More...
 
void handleUserParam_ (const String &parent_parent_tag, const String &parent_tag, const String &name, const String &type, const String &value)
 Handles user terms. More...
 
void writeMetaInfos_ (String &s, const MetaInfoInterface &meta, UInt indent) const
 Writes user terms. More...
 
ControlledVocabulary::CVTerm getChildWithName_ (const String &parent_accession, const String &name) const
 Looks up a child CV term of parent_accession with the name name. If no such term is found, an empty term is returned. More...
 
void writeEnzyme_ (String &s, const DigestionEnzymeProtein &enzy, UInt miss, UInt indent) const
 Helper method that writes a source file. More...
 
void writeModParam_ (String &s, const std::vector< String > &mod_names, bool fixed, UInt indent) const
 Helper method that writes the modification search params (fixed or variable) More...
 
void writeFragmentAnnotations_ (String &s, const std::vector< PeptideHit::PeakAnnotation > &annotations, UInt indent, bool is_ppxl) const
 Helper method that writes the FragmentAnnotations section of a spectrum identification. More...
 
String trimOpenMSfileURI (const String &file) const
 Convenience method to remove the [] from OpenMS internal file uri representation. More...
 
void writePeptideHit (const PeptideHit &hit, std::vector< PeptideIdentification >::const_iterator &it, std::map< String, String > &pep_ids, const String &cv_ns, std::set< String > &sen_set, std::map< String, String > &sen_ids, std::map< String, std::vector< String > > &pep_evis, std::map< String, double > &pp_identifier_2_thresh, String &sidres)
 Abstraction of PeptideHit loop for most PeptideHits. More...
 
void writeXLMSPeptideHit (const PeptideHit &hit, std::vector< PeptideIdentification >::const_iterator &it, const String &ppxl_linkid, std::map< String, String > &pep_ids, const String &cv_ns, std::set< String > &sen_set, std::map< String, String > &sen_ids, std::map< String, std::vector< String > > &pep_evis, std::map< String, double > &pp_identifier_2_thresh, double ppxl_crosslink_mass, std::map< String, String > &ppxl_specref_2_element, String &sid, bool alpha_peptide)
 Abstraction of PeptideHit loop for XL-MS data from OpenPepXL. More...
 
 MzIdentMLHandler ()
 
 MzIdentMLHandler (const MzIdentMLHandler &rhs)
 
MzIdentMLHandleroperator= (const MzIdentMLHandler &rhs)
 

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 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 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...
 
DataValue cvParamToValue (const ControlledVocabulary &cv, const String &parent_tag, const String &accession, const String &name, const String &value, const String &unit_accession) const
 Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit. More...
 
DataValue cvParamToValue (const ControlledVocabulary &cv, const CVTerm &raw_term) const
 Convert the value of a <cvParam value=.> (as commonly found in PSI schemata) to the DataValue with the correct type (e.g. int) according to the type stored in the CV (usually PSI-MS CV), as well as set its unit. More...
 
void checkUniqueIdentifiers_ (const std::vector< ProteinIdentification > &prot_ids) const
 
- 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...
 
- 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 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...
 

Detailed Description

XML STREAM handler for MzIdentMLFile.

In read-mode, this class will parse an MzIdentML XML file and append the input identifications to the provided PeptideIdentifications and ProteinIdentifications.

Note
Do not use this class. It is only needed in MzIdentMLFile.
DOM and STREAM handler for MzIdentML have the same interface for legacy id structures.

Constructor & Destructor Documentation

◆ MzIdentMLHandler() [1/4]

MzIdentMLHandler ( const std::vector< ProteinIdentification > &  pro_id,
const std::vector< PeptideIdentification > &  pep_id,
const String filename,
const String version,
const ProgressLogger logger 
)

Constructor for a write-only handler for internal identification structures.

◆ MzIdentMLHandler() [2/4]

MzIdentMLHandler ( std::vector< ProteinIdentification > &  pro_id,
std::vector< PeptideIdentification > &  pep_id,
const String filename,
const String version,
const ProgressLogger logger 
)

Constructor for a read-only handler for internal identification structures.

◆ ~MzIdentMLHandler()

~MzIdentMLHandler ( )
override

Destructor.

◆ MzIdentMLHandler() [3/4]

MzIdentMLHandler ( )
private

◆ MzIdentMLHandler() [4/4]

MzIdentMLHandler ( const MzIdentMLHandler rhs)
private

Member Function Documentation

◆ characters()

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

◆ endElement()

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

◆ getChildWithName_()

ControlledVocabulary::CVTerm getChildWithName_ ( const String parent_accession,
const String name 
) const
protected

Looks up a child CV term of parent_accession with the name name. If no such term is found, an empty term is returned.

◆ handleCVParam_()

void handleCVParam_ ( const String parent_parent_tag,
const String parent_tag,
const String accession,
const xercesc::Attributes &  attributes,
const String cv_ref 
)
protected

Handles CV terms.

◆ handleUserParam_()

void handleUserParam_ ( const String parent_parent_tag,
const String parent_tag,
const String name,
const String type,
const String value 
)
protected

Handles user terms.

◆ operator=()

MzIdentMLHandler& operator= ( const MzIdentMLHandler rhs)
private

◆ startElement()

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

◆ trimOpenMSfileURI()

String trimOpenMSfileURI ( const String file) const
protected

Convenience method to remove the [] from OpenMS internal file uri representation.

◆ writeEnzyme_()

void writeEnzyme_ ( String s,
const DigestionEnzymeProtein enzy,
UInt  miss,
UInt  indent 
) const
protected

Helper method that writes a source file.

Helper method that writes the Enzymes

◆ writeFragmentAnnotations_()

void writeFragmentAnnotations_ ( String s,
const std::vector< PeptideHit::PeakAnnotation > &  annotations,
UInt  indent,
bool  is_ppxl 
) const
protected

Helper method that writes the FragmentAnnotations section of a spectrum identification.

◆ writeMetaInfos_()

void writeMetaInfos_ ( String s,
const MetaInfoInterface meta,
UInt  indent 
) const
protected

Writes user terms.

◆ writeModParam_()

void writeModParam_ ( String s,
const std::vector< String > &  mod_names,
bool  fixed,
UInt  indent 
) const
protected

Helper method that writes the modification search params (fixed or variable)

◆ writePeptideHit()

void writePeptideHit ( const PeptideHit hit,
std::vector< PeptideIdentification >::const_iterator &  it,
std::map< String, String > &  pep_ids,
const String cv_ns,
std::set< String > &  sen_set,
std::map< String, String > &  sen_ids,
std::map< String, std::vector< String > > &  pep_evis,
std::map< String, double > &  pp_identifier_2_thresh,
String sidres 
)
protected

Abstraction of PeptideHit loop for most PeptideHits.

◆ writeTo()

void writeTo ( std::ostream &  )
overridevirtual

Writes the contents to a stream.

Reimplemented from XMLHandler.

◆ writeXLMSPeptideHit()

void writeXLMSPeptideHit ( const PeptideHit hit,
std::vector< PeptideIdentification >::const_iterator &  it,
const String ppxl_linkid,
std::map< String, String > &  pep_ids,
const String cv_ns,
std::set< String > &  sen_set,
std::map< String, String > &  sen_ids,
std::map< String, std::vector< String > > &  pep_evis,
std::map< String, double > &  pp_identifier_2_thresh,
double  ppxl_crosslink_mass,
std::map< String, String > &  ppxl_specref_2_element,
String sid,
bool  alpha_peptide 
)
protected

Abstraction of PeptideHit loop for XL-MS data from OpenPepXL.

Member Data Documentation

◆ actual_peptide_

AASequence actual_peptide_
private

◆ actual_protein_

ProteinHit actual_protein_
private

◆ cid_

const Identification* cid_
protected

◆ cpep_id_

const std::vector<PeptideIdentification>* cpep_id_
protected

◆ cpro_id_

const std::vector<ProteinIdentification>* cpro_id_
protected

◆ current_id_hit_

IdentificationHit current_id_hit_
protected

◆ current_mod_location_

Int current_mod_location_
private

◆ current_spectrum_id_

SpectrumIdentification current_spectrum_id_
protected

◆ cv_

ControlledVocabulary cv_
protected

Controlled vocabulary (psi-ms from OpenMS/share/OpenMS/CV/psi-ms.obo)

◆ id_

Identification* id_
protected

◆ logger_

const ProgressLogger& logger_
protected

Progress logger.

◆ pep_id_

std::vector<PeptideIdentification>* pep_id_
protected

Identification Item for peptides.

◆ pep_sequences_

std::map<String, AASequence> pep_sequences_
private

◆ ph_2_sdat_

std::map<String, String> ph_2_sdat_
private

mapping identification runs (mapping PeptideIdentifications and ProteinIdentifications via .getIdentifier()) to spectra data

◆ pp_identifier_2_sil_

std::map<String, String> pp_identifier_2_sil_
private

mapping peptide/proteinidentification identifier_ to spectrumidentificationlist

◆ pro_id_

std::vector<ProteinIdentification>* pro_id_
protected

internal Identification Item for proteins

◆ sil_2_sdat_

std::map<String, String> sil_2_sdat_
private

mapping spectrumidentificationlist to the search input

◆ sil_2_sdb_

std::map<String, String> sil_2_sdb_
private

mapping spectrumidentificationlist to the search data bases

◆ sil_2_sip_

std::map<String, String> sil_2_sip_
private

mapping spectrumidentificationlist to the search protocol (where the params are at)

◆ tag_

String tag_
protected

XML tag parse element.

◆ unimod_

ControlledVocabulary unimod_
protected

Controlled vocabulary for modifications (unimod from OpenMS/share/OpenMS/CV/unimod.obo)