OpenMS  2.4.0
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
ConsensusMap Class Reference

A container for consensus elements. More...

#include <OpenMS/KERNEL/ConsensusMap.h>

Inheritance diagram for ConsensusMap:
MetaInfoInterface RangeManager< 2 > DocumentIdentifier UniqueIdInterface UniqueIdIndexer< ConsensusMap >

Classes

struct  ColumnHeader
 Description of the columns in a consensus map. More...
 

Public Types

typedef std::vector< ConsensusFeatureprivvec
 
Type definitions
typedef std::vector< ConsensusFeatureBase
 
typedef RangeManager< 2 > RangeManagerType
 
typedef std::map< UInt64, ColumnHeaderColumnHeaders
 
typedef std::vector< ConsensusFeature >::iterator Iterator
 Mutable iterator. More...
 
typedef std::vector< ConsensusFeature >::const_iterator ConstIterator
 Non-mutable iterator. More...
 
typedef std::vector< ConsensusFeature >::reverse_iterator ReverseIterator
 Mutable reverse iterator. More...
 
typedef std::vector< ConsensusFeature >::const_reverse_iterator ConstReverseIterator
 Non-mutable reverse iterator. More...
 
- Public Types inherited from RangeManager< 2 >
enum  
 Dimension of the position range. More...
 
typedef DRange< D > PositionRangeType
 Position range type. More...
 
typedef DPosition< D > PositionType
 Position Type. More...
 
typedef DRange< 1 > IntensityRangeType
 Intensity range type. More...
 
- Public Types inherited from UniqueIdInterface
enum  { INVALID = 0 }
 This is the invalid unique id (cast it to a UInt64 if you like) More...
 
- Public Types inherited from UniqueIdIndexer< ConsensusMap >
typedef boost::unordered_map< UInt64, SizeUniqueIdMap
 

Public Member Functions

 ConsensusMap ()
 Default constructor. More...
 
 ConsensusMap (const ConsensusMap &source)
 Copy constructor. More...
 
 ~ConsensusMap () override
 Destructor. More...
 
 ConsensusMap (Base::size_type n)
 Creates a ConsensusMap with n elements. More...
 
ConsensusMapoperator= (const ConsensusMap &source)
 Assignment operator. More...
 
ConsensusMapappendRows (const ConsensusMap &rhs)
 Add consensus map entries as new rows. More...
 
ConsensusMapappendColumns (const ConsensusMap &rhs)
 Add consensus map entries as new columns. More...
 
void clear (bool clear_meta_data=true)
 Clears all data and meta data. More...
 
const ColumnHeadersgetColumnHeaders () const
 Non-mutable access to the file descriptions. More...
 
ColumnHeadersgetColumnHeaders ()
 Mutable access to the file descriptions. More...
 
void setColumnHeaders (const ColumnHeaders &column_description)
 Mutable access to the file descriptions. More...
 
const StringgetExperimentType () const
 Non-mutable access to the experiment type. More...
 
void setExperimentType (const String &experiment_type)
 Mutable access to the experiment type. More...
 
void updateRanges () override
 Updates minimum and maximum position/intensity. More...
 
void swap (ConsensusMap &from)
 Swaps the content of this map with the content of from. More...
 
const std::vector< ProteinIdentification > & getProteinIdentifications () const
 non-mutable access to the protein identifications More...
 
std::vector< ProteinIdentification > & getProteinIdentifications ()
 mutable access to the protein identifications More...
 
void setProteinIdentifications (const std::vector< ProteinIdentification > &protein_identifications)
 sets the protein identifications More...
 
const std::vector< PeptideIdentification > & getUnassignedPeptideIdentifications () const
 non-mutable access to the unassigned peptide identifications More...
 
std::vector< PeptideIdentification > & getUnassignedPeptideIdentifications ()
 mutable access to the unassigned peptide identifications More...
 
void setUnassignedPeptideIdentifications (const std::vector< PeptideIdentification > &unassigned_peptide_identifications)
 sets the unassigned peptide identifications More...
 
const std::vector< DataProcessing > & getDataProcessing () const
 returns a const reference to the description of the applied data processing More...
 
std::vector< DataProcessing > & getDataProcessing ()
 returns a mutable reference to the description of the applied data processing More...
 
void setDataProcessing (const std::vector< DataProcessing > &processing_method)
 sets the description of the applied data processing More...
 
void setPrimaryMSRunPath (const StringList &s)
 set the file paths to the primary MS run (stored in ColumnHeaders) More...
 
void getPrimaryMSRunPath (StringList &toFill) const
 returns the MS run path (stored in ColumnHeaders) More...
 
bool operator== (const ConsensusMap &rhs) const
 Equality operator. More...
 
bool operator!= (const ConsensusMap &rhs) const
 Equality operator. More...
 
template<typename Type >
Size applyMemberFunction (Size(Type::*member_function)())
 Applies a member function of Type to the container itself and all consensus features. The returned values are accumulated. More...
 
template<typename Type >
Size applyMemberFunction (Size(Type::*member_function)() const) const
 The "const" variant. More...
 
bool isMapConsistent (Logger::LogStream *stream=nullptr) const
 checks if the given maps are unique and all FeatureHandles actually refer to a registered map More...
 
Sorting.

These specialized sorting methods are supported in addition to the standard sorting methods of std::vector. All use stable sorting.

void sortByIntensity (bool reverse=false)
 Sorts the peaks according to ascending intensity. More...
 
void sortByRT ()
 Sorts the peaks to RT position. More...
 
void sortByMZ ()
 Sorts the peaks to m/z position. More...
 
void sortByPosition ()
 Lexicographically sorts the peaks by their position (First RT then m/z). More...
 
void sortByQuality (bool reverse=false)
 Sorts the peaks according to ascending quality. More...
 
void sortBySize ()
 Sorts with respect to the size (number of elements) More...
 
void sortByMaps ()
 Sorts with respect to the sets of maps covered by the consensus features (lexicographically). More...
 
void sortPeptideIdentificationsByMapIndex ()
 Sorts PeptideIdentifications of consensus features with respect to their map index. More...
 
- Public Member Functions inherited from MetaInfoInterface
 MetaInfoInterface ()
 Constructor. More...
 
 MetaInfoInterface (const MetaInfoInterface &rhs)
 Copy constructor. More...
 
 ~MetaInfoInterface ()
 Destructor. More...
 
MetaInfoInterfaceoperator= (const MetaInfoInterface &rhs)
 Assignment operator. More...
 
bool operator== (const MetaInfoInterface &rhs) const
 Equality operator. More...
 
bool operator!= (const MetaInfoInterface &rhs) const
 Equality operator. More...
 
const DataValuegetMetaValue (const String &name) const
 Returns the value corresponding to a string (or DataValue::EMPTY if not found) More...
 
const DataValuegetMetaValue (UInt index) const
 Returns the value corresponding to an index (or DataValue::EMPTY if not found) More...
 
bool metaValueExists (const String &name) const
 Returns whether an entry with the given name exists. More...
 
bool metaValueExists (UInt index) const
 Returns whether an entry with the given index exists. More...
 
void setMetaValue (const String &name, const DataValue &value)
 Sets the DataValue corresponding to a name. More...
 
void setMetaValue (UInt index, const DataValue &value)
 Sets the DataValue corresponding to an index. More...
 
void removeMetaValue (const String &name)
 Removes the DataValue corresponding to name if it exists. More...
 
void removeMetaValue (UInt index)
 Removes the DataValue corresponding to index if it exists. More...
 
void getKeys (std::vector< String > &keys) const
 Fills the given vector with a list of all keys for which a value is set. More...
 
void getKeys (std::vector< UInt > &keys) const
 Fills the given vector with a list of all keys for which a value is set. More...
 
bool isMetaEmpty () const
 Returns if the MetaInfo is empty. More...
 
void clearMetaInfo ()
 Removes all meta values. More...
 
- Public Member Functions inherited from RangeManager< 2 >
 RangeManager ()
 Default constructor. More...
 
 RangeManager (const RangeManager &rhs)
 Copy constructor. More...
 
virtual ~RangeManager ()
 Destructor. More...
 
RangeManageroperator= (const RangeManager &rhs)
 Assignment operator. More...
 
bool operator== (const RangeManager &rhs) const
 Equality operator. More...
 
bool operator!= (const RangeManager &rhs) const
 Equality operator. More...
 
const PositionTypegetMin () const
 Returns the minimum position. More...
 
const PositionTypegetMax () const
 Returns the maximum position. More...
 
double getMinInt () const
 Returns the minimum intensity. More...
 
double getMaxInt () const
 Returns the maximum intensity. More...
 
void clearRanges ()
 Resets the ranges. More...
 
- Public Member Functions inherited from DocumentIdentifier
 DocumentIdentifier ()
 default constructor More...
 
 DocumentIdentifier (const DocumentIdentifier &source)
 Copy constructor. More...
 
DocumentIdentifieroperator= (const DocumentIdentifier &source)
 Assignment operator. More...
 
bool operator== (const DocumentIdentifier &rhs) const
 Equality operator. More...
 
virtual ~DocumentIdentifier ()
 destructor More...
 
void setIdentifier (const String &id)
 set document identifier (e.g. an LSID) More...
 
const StringgetIdentifier () const
 retrieve document identifier (e.g. an LSID) More...
 
void swap (DocumentIdentifier &from)
 exchange content with from More...
 
void setLoadedFilePath (const String &file_name)
 set the file_name_ according to absolute path of the file loaded from preferably done whilst loading More...
 
const StringgetLoadedFilePath () const
 get the file_name_ which is the absolute path to the file loaded from More...
 
void setLoadedFileType (const String &file_name)
 set the file_type according to the type of the file loaded from (see FileHandler::Type) preferably done whilst loading More...
 
const FileTypes::TypegetLoadedFileType () const
 get the file_type (e.g. featureXML, consensusXML, mzData, mzXML, mzML, ...) of the file loaded from More...
 
- Public Member Functions inherited from UniqueIdInterface
 UniqueIdInterface ()
 Default constructor - the unique id will be invalid More...
 
 UniqueIdInterface (const UniqueIdInterface &rhs)
 Copy constructor - copies the unique id. More...
 
UniqueIdInterfaceoperator= (UniqueIdInterface const &rhs)
 Assignment operator - copies the unique id. More...
 
virtual ~UniqueIdInterface ()
 Destructor. More...
 
bool operator== (UniqueIdInterface const &rhs) const
 Equality comparison operator - the unique ids must be equal (!) More...
 
UInt64 getUniqueId () const
 Non-mutable access to unique id - returns the unique id. More...
 
Size clearUniqueId ()
 Clear the unique id. The new unique id will be invalid. Returns 1 if the unique id was changed, 0 otherwise. More...
 
void swap (UniqueIdInterface &from)
 
Size hasValidUniqueId () const
 Returns whether the unique id is valid. Returns 1 if the unique id is valid, 0 otherwise. More...
 
Size hasInvalidUniqueId () const
 Returns whether the unique id is invalid. Returns 1 if the unique id is invalid, 0 otherwise. More...
 
Size setUniqueId ()
 Assigns a new, valid unique id. Always returns 1. More...
 
Size ensureUniqueId ()
 Assigns a valid unique id, but only if the present one is invalid. Returns 1 if the unique id was changed, 0 otherwise. More...
 
void setUniqueId (UInt64 rhs)
 Assigns the given unique id. More...
 
void setUniqueId (const String &rhs)
 Mutable access to unique id. More...
 
- Public Member Functions inherited from UniqueIdIndexer< ConsensusMap >
Size uniqueIdToIndex (UInt64 unique_id) const
 Returns the index of the feature with the given unique id, or Size(-1) if none exists in this random access container. More...
 
void updateUniqueIdToIndex () const
 Updates the hash map from unique id to index. More...
 
Size resolveUniqueIdConflicts ()
 Assign new UID's to doubly occurring UID's. More...
 
void swap (UniqueIdIndexer &rhs)
 Swap. More...
 

Protected Attributes

ColumnHeaders column_description_
 Map from index to file description. More...
 
String experiment_type_ = "label-free"
 type of experiment (label-free, labeled_MS1, labeled_MS2) More...
 
std::vector< ProteinIdentificationprotein_identifications_
 protein identifications More...
 
std::vector< PeptideIdentificationunassigned_peptide_identifications_
 protein identifications More...
 
std::vector< DataProcessingdata_processing_
 applied data processing More...
 
- Protected Attributes inherited from MetaInfoInterface
MetaInfometa_
 Pointer to the MetaInfo object (0 by default) More...
 
- Protected Attributes inherited from RangeManager< 2 >
IntensityRangeType int_range_
 Intensity range (1-dimensional) More...
 
PositionRangeType pos_range_
 Position range (D-dimensional) More...
 
- Protected Attributes inherited from DocumentIdentifier
String id_
 the ID (e.g. LSID) More...
 
String file_path_
 the path to the loaded file More...
 
FileTypes::Type file_type_
 the type of the loaded file More...
 
- Protected Attributes inherited from UniqueIdInterface
UInt64 unique_id_
 the unique id More...
 
- Protected Attributes inherited from UniqueIdIndexer< ConsensusMap >
UniqueIdMap uniqueid_to_index_
 hash map from unique id to index of features More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MetaInfoInterface
static MetaInfoRegistrymetaRegistry ()
 Returns a reference to the MetaInfoRegistry. More...
 
- Static Public Member Functions inherited from UniqueIdInterface
static bool isValid (UInt64 unique_id)
 Returns true if the unique_id is valid, false otherwise. More...
 
- Protected Member Functions inherited from MetaInfoInterface
void createIfNotExists_ ()
 Creates the MetaInfo object if it does not exist. More...
 
- Protected Member Functions inherited from RangeManager< 2 >
void updateRanges_ (const PeakIteratorType &begin, const PeakIteratorType &end)
 Updates the range using data points in the iterator range. More...
 
- Protected Member Functions inherited from UniqueIdIndexer< ConsensusMap >
const ConsensusMapgetBase_ () const
 A little helper to get access to the base (!) class RandomAccessContainer. More...
 
ConsensusMapgetBase_ ()
 A little helper to get access to the base (!) class RandomAccessContainer. More...
 

Detailed Description

A container for consensus elements.

A ConsensusMap is a container holding 2-dimensional consensus elements (ConsensusFeature) which in turn represent analytes that have been quantified across multiple LC-MS/MS experiments. Each analyte in a ConsensusFeature is linked to its original LC-MS/MS run, the links are maintained by the ConsensusMap class. The map is implemented as a vector of elements of type ConsensusFeature.

To be consistent, all maps who are referenced by ConsensusFeature objects (through a unique id) need to be registered in this class.

Member Typedef Documentation

◆ Base

typedef std::vector<ConsensusFeature> Base

◆ ColumnHeaders

typedef std::map<UInt64, ColumnHeader> ColumnHeaders

◆ ConstIterator

typedef std::vector<ConsensusFeature>::const_iterator ConstIterator

Non-mutable iterator.

◆ ConstReverseIterator

typedef std::vector<ConsensusFeature>::const_reverse_iterator ConstReverseIterator

Non-mutable reverse iterator.

◆ Iterator

typedef std::vector<ConsensusFeature>::iterator Iterator

Mutable iterator.

◆ privvec

typedef std::vector<ConsensusFeature> privvec

◆ RangeManagerType

◆ ReverseIterator

typedef std::vector<ConsensusFeature>::reverse_iterator ReverseIterator

Mutable reverse iterator.

Constructor & Destructor Documentation

◆ ConsensusMap() [1/3]

Default constructor.

◆ ConsensusMap() [2/3]

ConsensusMap ( const ConsensusMap source)

Copy constructor.

◆ ~ConsensusMap()

~ConsensusMap ( )
override

Destructor.

◆ ConsensusMap() [3/3]

ConsensusMap ( Base::size_type  n)
explicit

Creates a ConsensusMap with n elements.

Member Function Documentation

◆ appendColumns()

ConsensusMap& appendColumns ( const ConsensusMap rhs)

Add consensus map entries as new columns.

The number of columns (maximum map index) is the sum of both maps.

Parameters
rhsThe consensus map to be merged.

◆ appendRows()

ConsensusMap& appendRows ( const ConsensusMap rhs)

Add consensus map entries as new rows.

Consensus elements are merged into one container, simply by appending.

The number of columns (maximum map index) stays the same.

Parameters
rhsThe consensus map to be merged.

◆ applyMemberFunction() [1/2]

Size applyMemberFunction ( Size(Type::*)()  member_function)
inline

Applies a member function of Type to the container itself and all consensus features. The returned values are accumulated.

Example: The following will print the number of features with invalid unique ids (plus 1 if the container has an invalid UID as well):

(...)
std::cout << cm.applyMemberFunction(&UniqueIdInterface::hasInvalidUniqueId) << std::endl;

See e.g. UniqueIdInterface for what else can be done this way.

◆ applyMemberFunction() [2/2]

Size applyMemberFunction ( Size(Type::*)() const  member_function) const
inline

The "const" variant.

◆ clear()

void clear ( bool  clear_meta_data = true)

Clears all data and meta data.

Parameters
clear_meta_dataIf true, all meta data is cleared in addition to the data.

◆ getColumnHeaders() [1/2]

const ColumnHeaders& getColumnHeaders ( ) const

Non-mutable access to the file descriptions.

◆ getColumnHeaders() [2/2]

ColumnHeaders& getColumnHeaders ( )

Mutable access to the file descriptions.

◆ getDataProcessing() [1/2]

const std::vector<DataProcessing>& getDataProcessing ( ) const

returns a const reference to the description of the applied data processing

◆ getDataProcessing() [2/2]

std::vector<DataProcessing>& getDataProcessing ( )

returns a mutable reference to the description of the applied data processing

◆ getExperimentType()

const String& getExperimentType ( ) const

Non-mutable access to the experiment type.

◆ getPrimaryMSRunPath()

void getPrimaryMSRunPath ( StringList toFill) const

returns the MS run path (stored in ColumnHeaders)

◆ getProteinIdentifications() [1/2]

const std::vector<ProteinIdentification>& getProteinIdentifications ( ) const

non-mutable access to the protein identifications

◆ getProteinIdentifications() [2/2]

std::vector<ProteinIdentification>& getProteinIdentifications ( )

mutable access to the protein identifications

◆ getUnassignedPeptideIdentifications() [1/2]

const std::vector<PeptideIdentification>& getUnassignedPeptideIdentifications ( ) const

non-mutable access to the unassigned peptide identifications

◆ getUnassignedPeptideIdentifications() [2/2]

std::vector<PeptideIdentification>& getUnassignedPeptideIdentifications ( )

mutable access to the unassigned peptide identifications

◆ isMapConsistent()

bool isMapConsistent ( Logger::LogStream stream = nullptr) const

checks if the given maps are unique and all FeatureHandles actually refer to a registered map

To avoid inconsistencies in map IDs and make sure the maps are unique in terms of name+label

If you want some verbose output, provide a stream.

: alternative to this method we could check the features while they are added to the map directly, but

  • currently we can't because the interface is not designed for this (derived from std::vector, no encapsulation)
  • we should restrict the user to first fill the list of maps, before any datapoints can be inserted

◆ operator!=()

bool operator!= ( const ConsensusMap rhs) const

Equality operator.

◆ operator=()

ConsensusMap& operator= ( const ConsensusMap source)

Assignment operator.

◆ operator==()

bool operator== ( const ConsensusMap rhs) const

Equality operator.

◆ setColumnHeaders()

void setColumnHeaders ( const ColumnHeaders column_description)

Mutable access to the file descriptions.

◆ setDataProcessing()

void setDataProcessing ( const std::vector< DataProcessing > &  processing_method)

sets the description of the applied data processing

◆ setExperimentType()

void setExperimentType ( const String experiment_type)

Mutable access to the experiment type.

◆ setPrimaryMSRunPath()

void setPrimaryMSRunPath ( const StringList s)

set the file paths to the primary MS run (stored in ColumnHeaders)

◆ setProteinIdentifications()

void setProteinIdentifications ( const std::vector< ProteinIdentification > &  protein_identifications)

sets the protein identifications

◆ setUnassignedPeptideIdentifications()

void setUnassignedPeptideIdentifications ( const std::vector< PeptideIdentification > &  unassigned_peptide_identifications)

sets the unassigned peptide identifications

◆ sortByIntensity()

void sortByIntensity ( bool  reverse = false)

Sorts the peaks according to ascending intensity.

◆ sortByMaps()

void sortByMaps ( )

Sorts with respect to the sets of maps covered by the consensus features (lexicographically).

◆ sortByMZ()

void sortByMZ ( )

Sorts the peaks to m/z position.

◆ sortByPosition()

void sortByPosition ( )

Lexicographically sorts the peaks by their position (First RT then m/z).

◆ sortByQuality()

void sortByQuality ( bool  reverse = false)

Sorts the peaks according to ascending quality.

◆ sortByRT()

void sortByRT ( )

Sorts the peaks to RT position.

◆ sortBySize()

void sortBySize ( )

Sorts with respect to the size (number of elements)

◆ sortPeptideIdentificationsByMapIndex()

void sortPeptideIdentificationsByMapIndex ( )

Sorts PeptideIdentifications of consensus features with respect to their map index.

◆ swap()

void swap ( ConsensusMap from)

Swaps the content of this map with the content of from.

◆ updateRanges()

void updateRanges ( )
overridevirtual

Updates minimum and maximum position/intensity.

This method is usually implemented by calling clearRanges() and updateRanges_().

Implements RangeManager< 2 >.

Member Data Documentation

◆ column_description_

ColumnHeaders column_description_
protected

Map from index to file description.

◆ data_processing_

std::vector<DataProcessing> data_processing_
protected

applied data processing

◆ experiment_type_

String experiment_type_ = "label-free"
protected

type of experiment (label-free, labeled_MS1, labeled_MS2)

◆ protein_identifications_

std::vector<ProteinIdentification> protein_identifications_
protected

protein identifications

◆ unassigned_peptide_identifications_

std::vector<PeptideIdentification> unassigned_peptide_identifications_
protected

protein identifications