OpenMS
XQuestResultXMLHandler Class Reference

XMLHandler for the result files of XQuest. More...

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

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

Public Member Functions

 XQuestResultXMLHandler (const String &filename, std::vector< PeptideIdentification > &pep_ids, std::vector< ProteinIdentification > &prot_ids)
 Constructor for a read-only handler for internal identification structures. More...
 
 XQuestResultXMLHandler (const std::vector< ProteinIdentification > &pro_id, const std::vector< PeptideIdentification > &pep_id, const String &filename, const String &version)
 Constructor for a write-only handler for internal identification structures. More...
 
 ~XQuestResultXMLHandler () override
 
void endElement (const XMLCh *const uri, const XMLCh *const local_name, const XMLCh *const qname) override
 
void startElement (const XMLCh *const uri, const XMLCh *const local_name, const XMLCh *const qname, const xercesc::Attributes &attributes) override
 
double getMinScore () const
 Returns the minimum score encountered in the file. More...
 
double getMaxScore () const
 Returns the maximum score encountered in the file. More...
 
UInt getNumberOfHits () const
 Returns the total number of hits in the file. More...
 
void writeTo (std::ostream &os) override
 Writes the contents to a stream. 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 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

static StringList splitByNth (const String &input, const char separator, const Size n)
 splits the input string at the nth occurrence of the separator More...
 
static StringList splitByMiddle (const String &input, const char separator)
 counts occurrences of the separator and splits the string into two at the middle 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 Public Attributes

static std::map< Size, Stringenzymes
 Maps enzyme_num in xQuest result file to the enzyme name used by OpenMS. More...
 
static std::map< String, UIntmonths
 Maps String encoding month to the numeric value. More...
 

Private Member Functions

void extractDateTime_ (const String &xquest_datetime_string, DateTime &date_time) const
 Extracts the DateTime from datetime string from xQuest. More...
 
void addMetaValues_ (MetaInfoInterface &meta_info_interface)
 Assigns all meta values stored in the peptide_id_attributes member to an meta info interface. More...
 
void getLinkPosition_ (const xercesc::Attributes &attributes, std::pair< SignedSize, SignedSize > &pair)
 Gets the link location of a xQuest xlinkPositionString. More...
 
void setPeptideEvidence_ (const String &prot_string, PeptideHit &pep_hit)
 Sets the peptide evidence for Alpha and Beta. More...
 

Private Attributes

String decoy_string_ = "decoy_"
 
int spectrum_index_light_
 
int spectrum_index_heavy_
 
String cross_linker_name_
 
std::vector< PeptideIdentification > * pep_ids_
 
std::vector< ProteinIdentification > * prot_ids_
 
const std::vector< ProteinIdentification > * cpro_id_
 
const std::vector< PeptideIdentification > * cpep_id_
 
UInt n_hits_
 Total no. of hits found in the result XML file. More...
 
double min_score_
 
double max_score_
 
bool is_openpepxl_
 Whether or not current xquest result tag comes from OpenPepXL (xQuest otherwise) More...
 
std::set< Stringaccessions_
 Set of all protein accessions that are within the ProteinHits. More...
 
ProteaseDBenzymes_db_
 The enzyme database for enzyme lookup. More...
 
std::set< UIntcharges_
 Keeps track of the charges of the hits. More...
 
UInt min_precursor_charge_
 
UInt max_precursor_charge_
 
double rt_light_
 
double rt_heavy_
 
double mz_light_
 
double mz_heavy_
 
StringList ms_run_path_
 
String spectrum_input_file_
 
std::vector< PeptideIdentificationcurrent_spectrum_search_
 The current spectrum search. More...
 
std::map< String, DataValuepeptide_id_meta_values_
 Stores the attributes of a record (peptide identification) More...
 

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 }
 
- 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

XMLHandler for the result files of XQuest.

Constructor & Destructor Documentation

◆ XQuestResultXMLHandler() [1/2]

XQuestResultXMLHandler ( const String filename,
std::vector< PeptideIdentification > &  pep_ids,
std::vector< ProteinIdentification > &  prot_ids 
)

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

◆ XQuestResultXMLHandler() [2/2]

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

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

◆ ~XQuestResultXMLHandler()

~XQuestResultXMLHandler ( )
override

Member Function Documentation

◆ addMetaValues_()

void addMetaValues_ ( MetaInfoInterface meta_info_interface)
private

Assigns all meta values stored in the peptide_id_attributes member to an meta info interface.

Parameters
meta_info_interfaceWhere the meta values from the peptide_id_attributes member should be assigned to

◆ endElement()

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

◆ extractDateTime_()

void extractDateTime_ ( const String xquest_datetime_string,
DateTime date_time 
) const
inlineprivate

Extracts the DateTime from datetime string from xQuest.

Parameters
xquest_datetime_stringThe DateTime String to be processed
date_timeDateTime that reflects the value given in the xquest_datetime_string

◆ getLinkPosition_()

void getLinkPosition_ ( const xercesc::Attributes &  attributes,
std::pair< SignedSize, SignedSize > &  pair 
)
private

Gets the link location of a xQuest xlinkPositionString.

Parameters
attributesXML attributes of Xerces.
pairPair to be populated with the xlinkposition in xQuest.

◆ getMaxScore()

double getMaxScore ( ) const

Returns the maximum score encountered in the file.

Returns
Maximum score encountered in the file.

◆ getMinScore()

double getMinScore ( ) const

Returns the minimum score encountered in the file.

Returns
Minimum score encountered in the file.

◆ getNumberOfHits()

UInt getNumberOfHits ( ) const

Returns the total number of hits in the file.

Returns
Total number of hits in the file.

◆ setPeptideEvidence_()

void setPeptideEvidence_ ( const String prot_string,
PeptideHit pep_hit 
)
private

Sets the peptide evidence for Alpha and Beta.

Parameters
prot_stringProtein string of the xquest file the peptide evidence should be populated from.
pep_hitFor which peptide hit the peptide evidence should be set.

◆ splitByMiddle()

static StringList splitByMiddle ( const String input,
const char  separator 
)
static

counts occurrences of the separator and splits the string into two at the middle

If the separator occurs 5 times in the input string, the string will be split at the 3rd occurrence. If 7 times, then at the 4th. The separator has to occur in the string an uneven number of times. If the separator occurs once, the string will be split at this one instance. If this one occurrence is at the beginning or end, one of the result strings will be empty.

Exceptions
Exception::IllegalArgumentis thrown if the separator does not occur in the input string an uneven number of times and at least once
Returns
StringList with two elements, the two halves of the input without the middle separator

◆ splitByNth()

static StringList splitByNth ( const String input,
const char  separator,
const Size  n 
)
static

splits the input string at the nth occurrence of the separator

If the separator does not occur in the input string n times, then the first output string will be the entire input string and the second one will be empty.

Returns
StringList with two elements, the two parts of the input without the nth separator

◆ startElement()

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

◆ writeTo()

void writeTo ( std::ostream &  )
overridevirtual

Writes the contents to a stream.

Reimplemented from XMLHandler.

Member Data Documentation

◆ accessions_

std::set< String > accessions_
private

Set of all protein accessions that are within the ProteinHits.

◆ charges_

std::set< UInt > charges_
private

Keeps track of the charges of the hits.

◆ cpep_id_

const std::vector<PeptideIdentification>* cpep_id_
private

◆ cpro_id_

const std::vector<ProteinIdentification>* cpro_id_
private

◆ cross_linker_name_

String cross_linker_name_
private

◆ current_spectrum_search_

std::vector< PeptideIdentification > current_spectrum_search_
private

The current spectrum search.

◆ decoy_string_

String decoy_string_ = "decoy_"
private

◆ enzymes

std::map< Size, String > enzymes
static

Maps enzyme_num in xQuest result file to the enzyme name used by OpenMS.

◆ enzymes_db_

ProteaseDB* enzymes_db_
private

The enzyme database for enzyme lookup.

◆ is_openpepxl_

bool is_openpepxl_
private

Whether or not current xquest result tag comes from OpenPepXL (xQuest otherwise)

◆ max_precursor_charge_

UInt max_precursor_charge_
private

◆ max_score_

double max_score_
private

◆ min_precursor_charge_

UInt min_precursor_charge_
private

◆ min_score_

double min_score_
private

◆ months

std::map<String, UInt> months
static

Maps String encoding month to the numeric value.

◆ ms_run_path_

StringList ms_run_path_
private

◆ mz_heavy_

double mz_heavy_
private

◆ mz_light_

double mz_light_
private

◆ n_hits_

UInt n_hits_
private

Total no. of hits found in the result XML file.

◆ pep_ids_

std::vector< PeptideIdentification >* pep_ids_
private

◆ peptide_id_meta_values_

std::map<String, DataValue> peptide_id_meta_values_
private

Stores the attributes of a record (peptide identification)

◆ prot_ids_

std::vector< ProteinIdentification >* prot_ids_
private

◆ rt_heavy_

double rt_heavy_
private

◆ rt_light_

double rt_light_
private

◆ spectrum_index_heavy_

int spectrum_index_heavy_
private

◆ spectrum_index_light_

int spectrum_index_light_
private

◆ spectrum_input_file_

String spectrum_input_file_
private