OpenMS  2.8.0
Public Member Functions | Protected Attributes | List of all members
FeatureMap Class Reference

A container for features. More...

#include <OpenMS/KERNEL/FeatureMap.h>

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

Public Types

Type definitions
typedef std::vector< FeatureBase
 
typedef RangeManagerContainer< RangeRT, RangeMZ, RangeIntensityRangeManagerContainerType
 
typedef RangeManager< RangeRT, RangeMZ, RangeIntensityRangeManagerType
 
typedef Base::iterator Iterator
 
typedef Base::const_iterator ConstIterator
 
typedef Base::reverse_iterator ReverseIterator
 
typedef Base::const_reverse_iterator ConstReverseIterator
 
- 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< FeatureMap >
typedef std::unordered_map< UInt64, SizeUniqueIdMap
 

Public Member Functions

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 path to the primary MS run (usually the mzML file obtained after data conversion from raw files) More...
 
void setPrimaryMSRunPath (const StringList &s, MSExperiment &e)
 
void getPrimaryMSRunPath (StringList &toFill) const
 get the file path to the first MS run More...
 
void clear (bool clear_meta_data=true)
 Clears all data and meta data. More...
 
template<typename Type >
Size applyMemberFunction (Size(Type::*member_function)())
 Applies a member function of Type to the container itself and all features (including subordinates). The returned values are accumulated. More...
 
template<typename Type >
Size applyMemberFunction (Size(Type::*member_function)() const) const
 The "const" variant. More...
 
AnnotationStatistics getAnnotationStatistics () const
 
Constructors and Destructor
 FeatureMap ()
 Default constructor. More...
 
 FeatureMap (const FeatureMap &source)
 Copy constructor. More...
 
 FeatureMap (FeatureMap &&source)
 Move constructor. More...
 
 ~FeatureMap () override
 Destructor. More...
 
FeatureMapoperator= (const FeatureMap &rhs)
 Assignment operator. More...
 
bool operator== (const FeatureMap &rhs) const
 Equality operator. More...
 
bool operator!= (const FeatureMap &rhs) const
 Equality operator. More...
 
FeatureMap operator+ (const FeatureMap &rhs) const
 Joins two feature maps. More...
 
FeatureMapoperator+= (const FeatureMap &rhs)
 Add one feature map to another. More...
 
Sorting.

These simplified sorting methods are supported in addition to the standard sorting methods of std::vector.

void sortByIntensity (bool reverse=false)
 Sorts the peaks according to ascending intensity. More...
 
void sortByPosition ()
 Sort features by position. Lexicographical comparison (first RT then m/z) is done. More...
 
void sortByRT ()
 Sort features by RT position. More...
 
void sortByMZ ()
 Sort features by m/z position. More...
 
void sortByOverallQuality (bool reverse=false)
 Sort features by ascending overall quality. More...
 
void updateRanges () override
 
void swapFeaturesOnly (FeatureMap &from)
 Swaps the feature content (plus its range information) of this map with the content of from. More...
 
void swap (FeatureMap &from)
 
Functions for dealing with identifications in legacy format

non-mutable access to the protein identifications

const std::vector< ProteinIdentification > & getProteinIdentifications () const
 
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...
 
Functions for dealing with identifications in new format
std::set< IdentificationData::ObservationMatchRefgetUnassignedIDMatches () const
 Return observation matches (e.g. PSMs) from the identification data that are not assigned to any feature in the map. More...
 
const IdentificationDatagetIdentificationData () const
 Immutable access to the contained identification data. More...
 
IdentificationDatagetIdentificationData ()
 Mutable access to the contained identification data. More...
 
- Public Member Functions inherited from MetaInfoInterface
 MetaInfoInterface ()
 Constructor. More...
 
 MetaInfoInterface (const MetaInfoInterface &rhs)
 Copy constructor. More...
 
 MetaInfoInterface (MetaInfoInterface &&) noexcept
 Move constructor. More...
 
 ~MetaInfoInterface ()
 Destructor. More...
 
MetaInfoInterfaceoperator= (const MetaInfoInterface &rhs)
 Assignment operator. More...
 
MetaInfoInterfaceoperator= (MetaInfoInterface &&) noexcept
 Move assignment operator. More...
 
void swap (MetaInfoInterface &rhs)
 Swap contents. 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 DataValue &default_value=DataValue::EMPTY) const
 Returns the value corresponding to a string, or a default value (default: DataValue::EMPTY) if not found. More...
 
const DataValuegetMetaValue (UInt index, const DataValue &default_value=DataValue::EMPTY) const
 Returns the value corresponding to an index, or a default value (default: 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 addMetaValues (const MetaInfoInterface &from)
 function to copy all meta values from one object to this one 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 RangeManagerContainer< RangeRT, RangeMZ, RangeIntensity >
const RangeManager< RangeBases... > & getRange () const
 get range of current data (call updateRanges() before to ensure the range is accurate) More...
 
RangeManager< RangeBases... > & getRange ()
 get mutable range, provided for efficiency reasons (avoid updateRanges(), if only minor changes were made) More...
 
- Public Member Functions inherited from RangeManager< RangeBases... >
bool operator== (const RangeManager &rhs) const
 
bool assignUnsafe (const RangeManager< RangeBasesOther... > &rhs)
 
void assign (const RangeManager< RangeBasesOther... > &rhs)
 
bool extendUnsafe (const RangeManager< RangeBasesOther... > &rhs)
 
void extend (const RangeManager< RangeBasesOther... > &rhs)
 
void scaleBy (const double factor)
 calls RangeBase::scale() for each dimension More...
 
RangeBasegetRangeForDim (MSDim dim)
 obtain a range dimension at runtime using dim More...
 
HasRangeType hasRange () const
 is any/some/all dimension in this range populated? More...
 
bool containsAll (const RangeManager< RangeBasesOther... > &rhs) const
 
void clearRanges ()
 Resets all ranges. More...
 
void printRange (std::ostream &out) const
 print each dimension (base classes) to a stream More...
 
- Public Member Functions inherited from DocumentIdentifier
 DocumentIdentifier ()
 Default constructor. More...
 
 DocumentIdentifier (const DocumentIdentifier &)=default
 Copy constructor. More...
 
 DocumentIdentifier (DocumentIdentifier &&)=default
 Move constructor. More...
 
virtual ~DocumentIdentifier ()
 Destructor. More...
 
DocumentIdentifieroperator= (const DocumentIdentifier &)=default
 Assignment operator. More...
 
DocumentIdentifieroperator= (DocumentIdentifier &&) &=default
 Move assignment operator. More...
 
bool operator== (const DocumentIdentifier &rhs) const
 Equality operator. 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)=default
 Copy constructor - copies the unique id. More...
 
 UniqueIdInterface (UniqueIdInterface &&rhs)=default
 Move constructor. More...
 
UniqueIdInterfaceoperator= (UniqueIdInterface const &rhs)=default
 Assignment operator - copies the unique id. More...
 
UniqueIdInterfaceoperator= (UniqueIdInterface &&) &=default
 Move Assignment operator - copies the unique id. More...
 
virtual ~UniqueIdInterface ()=default
 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< FeatureMap >
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...
 
- Public Member Functions inherited from MapUtilities< FeatureMap >
void applyFunctionOnPeptideHits (T &&f, bool include_unassigned=true)
 applies a function on all PeptideHits or only assigned ones More...
 
void applyFunctionOnPeptideHits (T &&f, bool include_unassigned=true) const
 applies a const function on all PeptideHits or only assigned ones More...
 
void applyFunctionOnPeptideIDs (T &&f, bool include_unassigned=true)
 applies a function on all PeptideIDs or only assigned ones More...
 
void applyFunctionOnPeptideIDs (T &&f, bool include_unassigned=true) const
 applies a const function on all PeptideIDs or only assigned ones More...
 

Protected Attributes

std::vector< ProteinIdentificationprotein_identifications_
 protein identifications More...
 
std::vector< PeptideIdentificationunassigned_peptide_identifications_
 peptide identifications not matched to a specific feature More...
 
std::vector< DataProcessingdata_processing_
 applied data processing More...
 
IdentificationData id_data_
 general identification results (peptides/proteins, RNA, compounds) More...
 
- Protected Attributes inherited from MetaInfoInterface
MetaInfometa_
 Pointer to the MetaInfo object (0 by default) 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< FeatureMap >
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< RangeBases... >
void for_each_base_ (Visitor &&visitor)
 use fold expression to iterate over all RangeBases of RangeManager and apply a lambda (Visitor) for each one More...
 
void for_each_base_ (Visitor &&visitor) const
 .. and a const version More...
 
- Protected Member Functions inherited from UniqueIdIndexer< FeatureMap >
const FeatureMapgetBase_ () const
 A little helper to get access to the base (!) class RandomAccessContainer. More...
 
FeatureMapgetBase_ ()
 A little helper to get access to the base (!) class RandomAccessContainer. More...
 
- Static Protected Member Functions inherited from RangeManager< RangeBases... >
static void static_for_each_base_ (Visitor &&visitor)
 use fold expression to iterate over all RangeBases of RangeManager and apply a lambda (Visitor) for each one (for static members) More...
 

Detailed Description

A container for features.

A feature map is a container holding features, which represent chemical entities (peptides, proteins, small molecules etc.) found in an LC-MS/MS experiment.

Maps are implemented as vectors of features and have basically the same interface as an STL vector has (model of Random Access Container and Back Insertion Sequence).

Feature maps are typically created from peak data of 2D runs through the FeatureFinder.

Member Typedef Documentation

◆ Base

typedef std::vector<Feature> Base

◆ ConstIterator

typedef Base::const_iterator ConstIterator

◆ ConstReverseIterator

typedef Base::const_reverse_iterator ConstReverseIterator

◆ Iterator

typedef Base::iterator Iterator

◆ RangeManagerContainerType

◆ RangeManagerType

◆ ReverseIterator

typedef Base::reverse_iterator ReverseIterator

Constructor & Destructor Documentation

◆ FeatureMap() [1/3]

Default constructor.

◆ FeatureMap() [2/3]

FeatureMap ( const FeatureMap source)

Copy constructor.

◆ FeatureMap() [3/3]

FeatureMap ( FeatureMap &&  source)

Move constructor.

◆ ~FeatureMap()

~FeatureMap ( )
override

Destructor.

Member Function Documentation

◆ applyMemberFunction() [1/2]

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

The "const" variant.

◆ applyMemberFunction() [2/2]

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

Applies a member function of Type to the container itself and all features (including subordinates). 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 << fm.applyMemberFunction(&UniqueIdInterface::hasInvalidUniqueId) << std::endl;
FeatureMap()
Default constructor.
Size hasInvalidUniqueId() const
Returns whether the unique id is invalid. Returns 1 if the unique id is invalid, 0 otherwise.
Definition: UniqueIdInterface.h:139

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

◆ 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.

◆ getAnnotationStatistics()

AnnotationStatistics getAnnotationStatistics ( ) const

◆ getDataProcessing() [1/2]

std::vector<DataProcessing>& getDataProcessing ( )

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

◆ getDataProcessing() [2/2]

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

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

◆ getIdentificationData() [1/2]

IdentificationData& getIdentificationData ( )

Mutable access to the contained identification data.

◆ getIdentificationData() [2/2]

const IdentificationData& getIdentificationData ( ) const

Immutable access to the contained identification data.

◆ getPrimaryMSRunPath()

void getPrimaryMSRunPath ( StringList toFill) const

get the file path to the first MS run

◆ getProteinIdentifications() [1/2]

std::vector<ProteinIdentification>& getProteinIdentifications ( )

mutable access to the protein identifications

◆ getProteinIdentifications() [2/2]

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

Referenced by MetaDataBrowser::add().

◆ getUnassignedIDMatches()

std::set<IdentificationData::ObservationMatchRef> getUnassignedIDMatches ( ) const

Return observation matches (e.g. PSMs) from the identification data that are not assigned to any feature in the map.

Only top-level features are considered, i.e. no subordinates.

See also
BaseFeature::getIDMatches()

◆ getUnassignedPeptideIdentifications() [1/2]

std::vector<PeptideIdentification>& getUnassignedPeptideIdentifications ( )

mutable access to the unassigned peptide identifications

◆ getUnassignedPeptideIdentifications() [2/2]

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

non-mutable access to the unassigned peptide identifications

Referenced by MetaDataBrowser::add().

◆ operator!=()

bool operator!= ( const FeatureMap rhs) const

Equality operator.

◆ operator+()

FeatureMap operator+ ( const FeatureMap rhs) const

Joins two feature maps.

Features are merged into one container (see operator+= for details).

◆ operator+=()

FeatureMap& operator+= ( const FeatureMap rhs)

Add one feature map to another.

Features are merged into one container, simply by appending. UnassignedPeptides and ProteinIdentifications are appended. Information on DocumentIdentifier, UniqueIdInterface (of container only) are reset to default.

For conflicting UID's, new UID's will be assigned.

Parameters
rhsThe feature to add to this one.

◆ operator=()

FeatureMap& operator= ( const FeatureMap rhs)

Assignment operator.

◆ operator==()

bool operator== ( const FeatureMap rhs) const

Equality operator.

◆ setDataProcessing()

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

sets the description of the applied data processing

◆ setPrimaryMSRunPath() [1/2]

void setPrimaryMSRunPath ( const StringList s)

set the file path to the primary MS run (usually the mzML file obtained after data conversion from raw files)

◆ setPrimaryMSRunPath() [2/2]

void setPrimaryMSRunPath ( const StringList s,
MSExperiment e 
)

set the file path to the primary MS run using the mzML annotated in the MSExperiment

Parameters
e.If it doesn't exist, fallback to
s.

◆ 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.

◆ sortByMZ()

void sortByMZ ( )

Sort features by m/z position.

◆ sortByOverallQuality()

void sortByOverallQuality ( bool  reverse = false)

Sort features by ascending overall quality.

◆ sortByPosition()

void sortByPosition ( )

Sort features by position. Lexicographical comparison (first RT then m/z) is done.

◆ sortByRT()

void sortByRT ( )

Sort features by RT position.

◆ swap()

void swap ( FeatureMap from)

◆ swapFeaturesOnly()

void swapFeaturesOnly ( FeatureMap from)

Swaps the feature content (plus its range information) of this map with the content of from.

◆ updateRanges()

void updateRanges ( )
overridevirtual

implement this function to reflect the underlying data of the derived class (e.g. an MSSpectrum) Usually, call clearRanges() internally and then populate the dimensions.

Implements RangeManagerContainer< RangeRT, RangeMZ, RangeIntensity >.

Member Data Documentation

◆ data_processing_

std::vector<DataProcessing> data_processing_
protected

applied data processing

◆ id_data_

IdentificationData id_data_
protected

general identification results (peptides/proteins, RNA, compounds)

◆ protein_identifications_

std::vector<ProteinIdentification> protein_identifications_
protected

protein identifications

◆ unassigned_peptide_identifications_

std::vector<PeptideIdentification> unassigned_peptide_identifications_
protected

peptide identifications not matched to a specific feature