| OpenMS 2.5.0

Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
IdXMLFile Class Reference
Format » File IO

Used to load and store idXML files. More...

`#include <OpenMS/FORMAT/IdXMLFile.h>`

Inheritance diagram for IdXMLFile:

## Public Member Functions

| IdXMLFile ()
| Constructor. More...
void | load (const String &filename, std::vector< ProteinIdentification > &protein_ids, std::vector< PeptideIdentification > &peptide_ids)
| Loads the identifications of an idXML file without identifier. More...
void | load (const String &filename, std::vector< ProteinIdentification > &protein_ids, std::vector< PeptideIdentification > &peptide_ids, String &document_id)
| Loads the identifications of an idXML file. More...
void | store (const String &filename, const std::vector< ProteinIdentification > &protein_ids, const std::vector< PeptideIdentification > &peptide_ids, const String &document_id="")
| Stores the data in an idXML file. More...
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 String & | getVersion () const
| return the version of the schema More...
Public Member Functions inherited from ProgressLogger
| ProgressLogger ()
| Constructor. More...
| ~ProgressLogger ()
| Destructor. More...
| ProgressLogger (const ProgressLogger &other)
| Copy constructor. More...
ProgressLogger & | operator= (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 () const
| Ends the progress display. More...
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 | addProteinGroups_ (MetaInfoInterface &meta, const std::vector< ProteinIdentification::ProteinGroup > &groups, const String &group_name, const std::unordered_map< std::string, UInt > &accession_to_id, XMLHandler::ActionMode mode)
void | getProteinGroups_ (std::vector< ProteinIdentification::ProteinGroup > &groups, const String &group_name)
| Read and store ProteinGroup data. More...
Protected Member Functions inherited from XMLHandler
bool | equal_ (const XMLCh *a, const XMLCh *b) const
| Returns if two Xerces strings are equal. More...
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)
| Conversion of a String to an integer value. More...
Int | asInt_ (const XMLCh *in)
| Conversion of a Xerces string to an integer value. More...
UInt | asUInt_ (const String &in)
| Conversion of a String to an unsigned integer value. More...
double | asDouble_ (const String &in)
| Conversion of a String to a double value. More...
float | asFloat_ (const String &in)
| Conversion of a String to a float value. More...
bool | asBool_ (const String &in)
| Conversion of a string to a boolean value. More...
DateTime | asDateTime_ (String date_string)
| Conversion of a xs:datetime string to a DateTime value. More...
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...
SignedSize | cvStringToEnum_ (const Size section, const String &term, const char *message, const SignedSize result_on_error=0)
| 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 (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...
String | errorString ()
| Returns the last error description. 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)
void | fatalError (const xercesc::SAXParseException &exception) override
void | error (const xercesc::SAXParseException &exception) override
void | warning (const xercesc::SAXParseException &exception) override
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)
| 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 String & | getVersion () const
| return the version of the schema More...
Protected Member Functions inherited from ProgressLogger
| ProgressLogger ()
| Constructor. More...
| ~ProgressLogger ()
| Destructor. More...
| ProgressLogger (const ProgressLogger &other)
| Copy constructor. More...
ProgressLogger & | operator= (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 () const
| Ends the progress display. More...
void | nextProgress () const
| increment progress by 1 (according to range begin-end) More...

## Static Protected Member Functions

static std::ostream & | createFlankingAAXMLString_ (const std::vector< PeptideEvidence > &pes, std::ostream &os)
static std::ostream & | createPositionXMLString_ (const std::vector< PeptideEvidence > &pes, std::ostream &os)
static void | writeFragmentAnnotations_ (const String &tag_name, std::ostream &os, const std::vector< PeptideHit::PeakAnnotation > &annotations, UInt indent)
static void | parseFragmentAnnotation_ (const String &s, std::vector< PeptideHit::PeakAnnotation > &annotations)
Static Protected Member Functions inherited from XMLHandler
static String | writeXMLEscape (const String &to_escape)
| Escapes a string and returns the escaped string. 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...

## Protected Attributes

members for loading data
std::vector< ProteinIdentification > * | prot_ids_
| Pointer to fill in protein identifications. More...
std::vector< PeptideIdentification > * | pep_ids_
| Pointer to fill in peptide identifications. More...
MetaInfoInterface * | last_meta_
| Pointer to last read object with MetaInfoInterface. More...
std::map< String, ProteinIdentification::SearchParameters > | parameters_
| Search parameters map (key is the "id") More...
ProteinIdentification::SearchParameters | param_
| Temporary search parameters variable. More...
String | id_
| Temporary id. More...
ProteinIdentification | prot_id_
| Temporary protein ProteinIdentification. More...
PeptideIdentification | pep_id_
| Temporary peptide ProteinIdentification. More...
ProteinHit | prot_hit_
| Temporary protein hit. More...
PeptideHit | pep_hit_
| Temporary peptide hit. More...
PeptideHit::PepXMLAnalysisResult | current_analysis_result_
| Temporary analysis result instance. More...
std::vector< PeptideEvidence > | peptide_evidences_
| Temporary peptide evidences. More...
std::unordered_map< std::string, String > | proteinid_to_accession_
| Map from protein id to accession. More...
String * | document_id_
| Document identifier. More...
bool | prot_id_in_run_
| true if a prot id is contained in the current run More...
Protected Attributes inherited from XMLHandler
String | error_message_
| Error message of the last error. More...
String | file_
| File name. More...
String | version_
| Schema version. More...
StringManager | sm_
| Helper class for string conversion. More...
std::vector< String > | open_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_
ProgressLoggerImpl * | current_logger_

## Friends

class | ConsensusXMLFile
class | FeatureXMLFile

## Additional Inherited Members

Public Types inherited from ProgressLogger
enum | LogType { CMD, GUI, NONE }
| Possible log types. More...
Protected 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 }
Protected Types inherited from ProgressLogger
enum | LogType { CMD, GUI, NONE }
| Possible log types. More...
Static Protected Attributes inherited from ProgressLogger
static int | recursion_depth_

## Detailed Description

Used to load and store idXML files.

This class is used to load and store documents that implement the schema of idXML files.

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

One file can contain several ProteinIdentification runs. Each run consists of peptide hits stored in PeptideIdentification and (optional) protein hits stored in Identification. Peptide and protein hits are connected via a string identifier. We use the search engine and the date as identifier.

Note
  This format will eventually be replaced by the HUPO-PSI (mzIdentML and mzQuantML)) AnalysisXML formats!

## Constructor & Destructor Documentation

## ◆ IdXMLFile()

IdXMLFile | ( |  | ) |

Constructor.

## Member Function Documentation

## ◆ addProteinGroups_()

void addProteinGroups_ | ( | MetaInfoInterface & | meta,
|  | const std::vector< ProteinIdentification::ProteinGroup > & | groups,
|  | const String & | group_name,
|  | const std::unordered_map< std::string, UInt > & | accession_to_id,
|  | XMLHandler::ActionMode | mode
| ) |  |

protected

Add data from ProteinGroups to a MetaInfoInterface Since it can be used during load and store, it needs to take a param for the current mode (LOAD/STORE) to throw appropriate warnings/errors

## ◆ createFlankingAAXMLString_()

static std::ostream& createFlankingAAXMLString_ | ( | const std::vector< PeptideEvidence > & | pes,
|  | std::ostream & | os
| ) |  |

static protected

Helper function to create the XML string for the amino acids before and after the peptide position in a protein. Can be reused by e.g. ConsensusXML, FeatureXML to write PeptideHit elements

## ◆ createPositionXMLString_()

static std::ostream& createPositionXMLString_ | ( | const std::vector< PeptideEvidence > & | pes,
|  | std::ostream & | os
| ) |  |

static protected

Helper function to create the XML string for the position of the peptide in a protein. Can be reused by e.g. ConsensusXML, FeatureXML to write PeptideHit elements

## ◆ endElement()

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

override protected

## ◆ getProteinGroups_()

void getProteinGroups_ | ( | std::vector< ProteinIdentification::ProteinGroup > & | groups,
|  | const String & | group_name
| ) |  |

protected

Read and store ProteinGroup data.

## ◆ load() [1/2]

void load | ( | const String & | filename,
|  | std::vector< ProteinIdentification > & | protein_ids,
|  | std::vector< PeptideIdentification > & | peptide_ids
| ) |  |

Loads the identifications of an idXML file without identifier.

The information is read in and the information is stored in the corresponding variables

Exceptions

  Exception::FileNotFound | is thrown if the file could not be opened
  Exception::ParseError | is thrown if an error occurs during parsing

Referenced by TOPPViewBase::addDataFile(), TOPPViewBase::annotateWithID(), Epifany::main_(), UTILProteomicsLFQ::main_(), and UTILProteomicsLFQ::quantifyFraction_().

## ◆ load() [2/2]

void load | ( | const String & | filename,
|  | std::vector< ProteinIdentification > & | protein_ids,
|  | std::vector< PeptideIdentification > & | peptide_ids,
|  | String & | document_id
| ) |  |

Loads the identifications of an idXML file.

The information is read in and the information is stored in the corresponding variables

Exceptions

  Exception::FileNotFound | is thrown if the file could not be opened
  Exception::ParseError | is thrown if an error occurs during parsing

## ◆ parseFragmentAnnotation_()

static void parseFragmentAnnotation_ | ( | const String & | s,
|  | std::vector< PeptideHit::PeakAnnotation > & | annotations
| ) |  |

static protected

Helper function to parse fragment annotations from string

## ◆ startElement()

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

override protected

## ◆ store()

void store | ( | const String & | filename,
|  | const std::vector< ProteinIdentification > & | protein_ids,
|  | const std::vector< PeptideIdentification > & | peptide_ids,
|  | const String & | document_id = `""`
| ) |  |

Stores the data in an idXML file.

The data is read in and stored in the file 'filename'. PeptideHits are sorted by score.

Exceptions

  Exception::UnableToCreateFile | is thrown if the file could not be created

Referenced by Epifany::main_(), NucleicAcidSearchEngine::main_(), and UTILProteomicsLFQ::main_().

## ◆ writeFragmentAnnotations_()

static void writeFragmentAnnotations_ | ( | const String & | tag_name,
|  | std::ostream & | os,
|  | const std::vector< PeptideHit::PeakAnnotation > & | annotations,
|  | UInt | indent
| ) |  |

static protected

Helper function to write out fragment annotations as user param fragment_annotation

## Friends And Related Function Documentation

## ◆ ConsensusXMLFile

friend class ConsensusXMLFile

friend

## ◆ FeatureXMLFile

friend class FeatureXMLFile

friend

## Member Data Documentation

## ◆ current_analysis_result_

PeptideHit::PepXMLAnalysisResult current_analysis_result_

protected

Temporary analysis result instance.

## ◆ document_id_

String* document_id_

protected

Document identifier.

## ◆ id_

String id_

protected

Temporary id.

## ◆ last_meta_

MetaInfoInterface* last_meta_

protected

Pointer to last read object with MetaInfoInterface.

## ◆ param_

ProteinIdentification::SearchParameters param_

protected

Temporary search parameters variable.

## ◆ parameters_

std::map<String, ProteinIdentification::SearchParameters> parameters_

protected

Search parameters map (key is the "id")

## ◆ pep_hit_

PeptideHit pep_hit_

protected

Temporary peptide hit.

## ◆ pep_id_

PeptideIdentification pep_id_

protected

Temporary peptide ProteinIdentification.

## ◆ pep_ids_

std::vector<PeptideIdentification>* pep_ids_

protected

Pointer to fill in peptide identifications.

## ◆ peptide_evidences_

std::vector<PeptideEvidence> peptide_evidences_

protected

Temporary peptide evidences.

## ◆ prot_hit_

ProteinHit prot_hit_

protected

Temporary protein hit.

## ◆ prot_id_

ProteinIdentification prot_id_

protected

Temporary protein ProteinIdentification.

## ◆ prot_id_in_run_

bool prot_id_in_run_

protected

true if a prot id is contained in the current run

## ◆ prot_ids_

std::vector<ProteinIdentification>* prot_ids_

protected

Pointer to fill in protein identifications.

## ◆ proteinid_to_accession_

std::unordered_map<std::string, String> proteinid_to_accession_

protected

Map from protein id to accession.