OpenMS
FeatureXMLHandler Class Reference

This class provides Input/Output functionality for feature maps. More...

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

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

Protected Attributes

temporary data structures to hold parsed data
Param param_
 
ConvexHull2D::PointArrayType current_chull_
 
DPosition< 2 > hull_position_
 
UInt dim_
 current dimension of the feature position, quality, or convex hull point More...
 
bool in_description_
 for downward compatibility, all tags in the old description must be ignored More...
 
Int subordinate_feature_level_
 level in Feature stack during parsing More...
 
MetaInfoInterfacelast_meta_
 Pointer to last read object as a MetaInfoInterface, or null. 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...
 
std::map< String, Stringproteinid_to_accession_
 Map from protein id to accession. More...
 
std::map< String, Sizeaccession_to_id_
 Map from search identifier concatenated with protein accession to id. More...
 
std::map< String, Stringidentifier_id_
 Map from identification run identifier to file xs:id (for linking peptide identifications to the corresponding run) More...
 
std::map< String, Stringid_identifier_
 Map from file xs:id to identification run identifier (for linking peptide identifications to the corresponding run) More...
 
ProteinIdentification::SearchParameters search_param_
 Temporary search parameters file. 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...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 

Constructors and Destructor

Int disable_parsing_
 
Featurecurrent_feature_
 points to the last open <feature> tag (possibly a subordinate feature) More...
 
FeatureMapmap_
 Feature map pointer for writing. More...
 
const FeatureMapcmap_
 Feature map pointer for reading. More...
 
FeatureFileOptions options_
 Options that can be set. More...
 
bool size_only_
 only parse until "count" tag is reached (used in loadSize()) More...
 
Size expected_size_
 holds the putative size given in count More...
 
 FeatureXMLHandler (FeatureMap &map, const String &filename)
 Default constructor. More...
 
 FeatureXMLHandler (const FeatureMap &map, const String &filename)
 
 ~FeatureXMLHandler () override
 Destructor. More...
 
void writeTo (std::ostream &os) override
 Docu in base class XMLHandler::writeTo. More...
 
FeatureFileOptionsgetOptions ()
 Mutable access to the options for loading/storing. More...
 
const FeatureFileOptionsgetOptions () const
 Non-mutable access to the options for loading/storing. More...
 
void setOptions (const FeatureFileOptions &)
 setter for options for loading/storing More...
 
void setSizeOnly (const bool size_only)
 
Size getSize () const
 
void resetMembers_ ()
 
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 writeFeature_ (const String &filename, std::ostream &os, const Feature &feat, const String &identifier_prefix, UInt64 identifier, UInt indentation_level)
 Writes a feature to a stream. More...
 
void writePeptideIdentification_ (const String &filename, std::ostream &os, const PeptideIdentification &id, const String &tag_name, UInt indentation_level)
 Writes a peptide identification to a stream (for assigned/unassigned peptide identifications) More...
 
void updateCurrentFeature_ (bool create)
 update the pointer to the current feature 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 }
 
- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. 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
 
- 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 setLogger (ProgressLoggerImpl *logger)
 Sets the logger to be used for progress logging. 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...
 
- 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...
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

This class provides Input/Output functionality for feature maps.

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

Todo:
Take care that unique ids are assigned properly by TOPP tools before calling FeatureXMLFile::store(). There will be a message on OPENMS_LOG_INFO but we will make no attempt to fix the problem in this class. (all developers)

Constructor & Destructor Documentation

◆ FeatureXMLHandler() [1/2]

FeatureXMLHandler ( FeatureMap map,
const String filename 
)

Default constructor.

◆ FeatureXMLHandler() [2/2]

FeatureXMLHandler ( const FeatureMap map,
const String filename 
)

◆ ~FeatureXMLHandler()

~FeatureXMLHandler ( )
override

Destructor.

Member Function Documentation

◆ characters()

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

◆ endElement()

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

◆ getOptions() [1/2]

FeatureFileOptions& getOptions ( )

Mutable access to the options for loading/storing.

◆ getOptions() [2/2]

const FeatureFileOptions& getOptions ( ) const

Non-mutable access to the options for loading/storing.

◆ getSize()

Size getSize ( ) const
inline

◆ resetMembers_()

void resetMembers_ ( )
protected

◆ setOptions()

void setOptions ( const FeatureFileOptions )

setter for options for loading/storing

◆ setSizeOnly()

void setSizeOnly ( const bool  size_only)
inline

◆ startElement()

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

◆ updateCurrentFeature_()

void updateCurrentFeature_ ( bool  create)
protected

update the pointer to the current feature

Parameters
createIf true, a new (empty) Feature is added at the appropriate subordinate_feature_level_

◆ writeFeature_()

void writeFeature_ ( const String filename,
std::ostream &  os,
const Feature feat,
const String identifier_prefix,
UInt64  identifier,
UInt  indentation_level 
)
protected

Writes a feature to a stream.

◆ writePeptideIdentification_()

void writePeptideIdentification_ ( const String filename,
std::ostream &  os,
const PeptideIdentification id,
const String tag_name,
UInt  indentation_level 
)
protected

Writes a peptide identification to a stream (for assigned/unassigned peptide identifications)

◆ writeTo()

void writeTo ( std::ostream &  os)
overridevirtual

Docu in base class XMLHandler::writeTo.

Reimplemented from XMLHandler.

Member Data Documentation

◆ accession_to_id_

std::map<String, Size> accession_to_id_
protected

Map from search identifier concatenated with protein accession to id.

◆ cmap_

const FeatureMap* cmap_
protected

Feature map pointer for reading.

◆ current_chull_

ConvexHull2D::PointArrayType current_chull_
protected

◆ current_feature_

Feature* current_feature_
protected

points to the last open <feature> tag (possibly a subordinate feature)

◆ dim_

UInt dim_
protected

current dimension of the feature position, quality, or convex hull point

◆ disable_parsing_

Int disable_parsing_
protected

allows for early return in parsing functions when certain sections should be ignored <=0 - parsing ON >0 - this number of tags have been entered that forbid parsing and need to be exited before parsing continues

◆ expected_size_

Size expected_size_
protected

holds the putative size given in count

◆ hull_position_

DPosition<2> hull_position_
protected

◆ id_identifier_

std::map<String, String> id_identifier_
protected

Map from file xs:id to identification run identifier (for linking peptide identifications to the corresponding run)

◆ identifier_id_

std::map<String, String> identifier_id_
protected

Map from identification run identifier to file xs:id (for linking peptide identifications to the corresponding run)

◆ in_description_

bool in_description_
protected

for downward compatibility, all tags in the old description must be ignored

◆ last_meta_

MetaInfoInterface* last_meta_
protected

Pointer to last read object as a MetaInfoInterface, or null.

◆ map_

FeatureMap* map_
protected

Feature map pointer for writing.

◆ options_

FeatureFileOptions options_
protected

Options that can be set.

◆ param_

Param param_
protected

◆ pep_hit_

PeptideHit pep_hit_
protected

Temporary peptide hit.

◆ pep_id_

PeptideIdentification pep_id_
protected

Temporary peptide ProteinIdentification.

◆ prot_hit_

ProteinHit prot_hit_
protected

Temporary protein hit.

◆ prot_id_

ProteinIdentification prot_id_
protected

Temporary protein ProteinIdentification.

◆ proteinid_to_accession_

std::map<String, String> proteinid_to_accession_
protected

Map from protein id to accession.

◆ search_param_

ProteinIdentification::SearchParameters search_param_
protected

Temporary search parameters file.

◆ size_only_

bool size_only_
protected

only parse until "count" tag is reached (used in loadSize())

◆ subordinate_feature_level_

Int subordinate_feature_level_
protected

level in Feature stack during parsing