![]() |
OpenMS
2.5.0
|
Representation of spectrum identification results and associated data. More...
#include <OpenMS/METADATA/ID/IdentificationData.h>
Classes | |
struct | ModifyMultiIndexAddProcessingStep |
Helper functor for adding processing steps to elements in a boost::multi_index_container structure. More... | |
struct | ModifyMultiIndexAddScore |
Helper functor for adding scores to elements in a boost::multi_index_container structure. More... | |
struct | ModifyMultiIndexRemoveParentMatches |
Helper functor for removing invalid parent matches from elements in a boost::multi_index_container structure. More... | |
Public Member Functions | |
IdentificationData () | |
Default constructor. More... | |
IdentificationData (const IdentificationData &other)=delete | |
IdentificationData (IdentificationData &&other) | |
Move constructor. More... | |
InputFileRef | registerInputFile (const String &file) |
Register an input file. More... | |
ProcessingSoftwareRef | registerDataProcessingSoftware (const DataProcessingSoftware &software) |
Register data processing software. More... | |
SearchParamRef | registerDBSearchParam (const DBSearchParam ¶m) |
Register database search parameters. More... | |
ProcessingStepRef | registerDataProcessingStep (const DataProcessingStep &step) |
Register a data processing step. More... | |
ProcessingStepRef | registerDataProcessingStep (const DataProcessingStep &step, SearchParamRef search_ref) |
Register a database search step with associated parameters. More... | |
ScoreTypeRef | registerScoreType (const ScoreType &score) |
Register a score type. More... | |
DataQueryRef | registerDataQuery (const DataQuery &query) |
Register a data query (e.g. MS2 spectrum or feature) More... | |
ParentMoleculeRef | registerParentMolecule (const ParentMolecule &parent) |
Register a parent molecule (e.g. protein or intact RNA) More... | |
void | registerParentMoleculeGrouping (const ParentMoleculeGrouping &grouping) |
Register a grouping of parent molecules (e.g. protein inference result) More... | |
IdentifiedPeptideRef | registerIdentifiedPeptide (const IdentifiedPeptide &peptide) |
Register an identified peptide. More... | |
IdentifiedCompoundRef | registerIdentifiedCompound (const IdentifiedCompound &compound) |
Register an identified compound (small molecule) More... | |
IdentifiedOligoRef | registerIdentifiedOligo (const IdentifiedOligo &oligo) |
Register an identified RNA oligonucleotide. More... | |
QueryMatchRef | registerMoleculeQueryMatch (const MoleculeQueryMatch &match) |
Register a molecule-query match (e.g. peptide-spectrum match) More... | |
MatchGroupRef | registerQueryMatchGroup (const QueryMatchGroup &group) |
Register a group of associated molecule-query matches. More... | |
const InputFiles & | getInputFiles () const |
Return the registered input files (immutable) More... | |
const DataProcessingSoftwares & | getDataProcessingSoftwares () const |
Return the registered data processing software (immutable) More... | |
const DataProcessingSteps & | getDataProcessingSteps () const |
Return the registered data processing steps (immutable) More... | |
const DBSearchParams & | getDBSearchParams () const |
Return the registered database search parameters (immutable) More... | |
const DBSearchSteps & | getDBSearchSteps () const |
Return the registered database search steps (immutable) More... | |
const ScoreTypes & | getScoreTypes () const |
Return the registered score types (immutable) More... | |
const DataQueries & | getDataQueries () const |
Return the registered data queries (immutable) More... | |
const ParentMolecules & | getParentMolecules () const |
Return the registered parent molecules (immutable) More... | |
const ParentMoleculeGroupings & | getParentMoleculeGroupings () const |
Return the registered parent molecule groupings (immutable) More... | |
const IdentifiedPeptides & | getIdentifiedPeptides () const |
Return the registered identified peptides (immutable) More... | |
const IdentifiedCompounds & | getIdentifiedCompounds () const |
Return the registered compounds (immutable) More... | |
const IdentifiedOligos & | getIdentifiedOligos () const |
Return the registered identified oligonucleotides (immutable) More... | |
const MoleculeQueryMatches & | getMoleculeQueryMatches () const |
Return the registered molecule-query matches (immutable) More... | |
const QueryMatchGroups & | getQueryMatchGroups () const |
Return the registered groups of molecule-query matches (immutable) More... | |
void | addScore (QueryMatchRef match_ref, ScoreTypeRef score_ref, double value) |
Add a score to a molecule-query match (e.g. PSM) More... | |
void | setCurrentProcessingStep (ProcessingStepRef step_ref) |
Set a data processing step that will apply to all subsequent "register..." calls. More... | |
ProcessingStepRef | getCurrentProcessingStep () |
void | clearCurrentProcessingStep () |
Cancel the effect of setCurrentProcessingStep(). More... | |
std::vector< QueryMatchRef > | getBestMatchPerQuery (ScoreTypeRef score_ref) const |
Return the best match for each data query, according to a given score type. More... | |
std::pair< ScoreTypeRef, bool > | findScoreType (const String &score_name) const |
Look up a score type by name. More... | |
void | calculateCoverages (bool check_molecule_length=false) |
Calculate sequence coverages of parent molecules. More... | |
void | cleanup (bool require_query_match=true, bool require_identified_sequence=true, bool require_parent_match=true, bool require_parent_group=false, bool require_match_group=false) |
Clean up the data structure after filtering parts of it. More... | |
![]() | |
MetaInfoInterface () | |
Constructor. More... | |
MetaInfoInterface (const MetaInfoInterface &rhs) | |
Copy constructor. More... | |
MetaInfoInterface (MetaInfoInterface &&) noexcept | |
Move constructor. More... | |
~MetaInfoInterface () | |
Destructor. More... | |
MetaInfoInterface & | operator= (const MetaInfoInterface &rhs) |
Assignment operator. More... | |
MetaInfoInterface & | operator= (MetaInfoInterface &&) noexcept |
Move assignment operator. More... | |
bool | operator== (const MetaInfoInterface &rhs) const |
Equality operator. More... | |
bool | operator!= (const MetaInfoInterface &rhs) const |
Equality operator. More... | |
const DataValue & | getMetaValue (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 DataValue & | getMetaValue (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 | 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... | |
Static Public Member Functions | |
static bool | isBetterScore (double first, double second, bool higher_better) |
Helper function to compare two scores. More... | |
![]() | |
static MetaInfoRegistry & | metaRegistry () |
Returns a reference to the MetaInfoRegistry. More... | |
Protected Member Functions | |
void | checkScoreTypes_ (const std::map< ScoreTypeRef, double > &scores) const |
Helper function to check if all score types are valid. More... | |
void | checkAppliedProcessingSteps_ (const AppliedProcessingSteps &steps_and_scores) const |
Helper function to check if all applied processing steps are valid. More... | |
void | checkParentMatches_ (const ParentMatches &matches, MoleculeType expected_type) const |
Helper function to check if all parent matches are valid. More... | |
template<typename ContainerType , typename ElementType > | |
ContainerType::iterator | insertIntoMultiIndex_ (ContainerType &container, const ElementType &element) |
Helper function for adding entries (derived from ScoredProcessingResult) to a boost::multi_index_container structure. More... | |
template<typename ContainerType , typename ElementType > | |
ContainerType::iterator | insertIntoMultiIndex_ (ContainerType &container, const ElementType &element, AddressLookup &lookup) |
Variant of insertIntoMultiIndex_() that also updates a look-up table of valid references (addresses) More... | |
![]() | |
void | createIfNotExists_ () |
Creates the MetaInfo object if it does not exist. More... | |
Static Protected Member Functions | |
template<typename RefType , typename ContainerType > | |
static bool | isValidReference_ (RefType ref, ContainerType &container) |
Check whether a reference points to an element in a container. More... | |
template<typename RefType > | |
static bool | isValidHashedReference_ (RefType ref, const AddressLookup &lookup) |
Check validity of a reference based on a look-up table of addresses. More... | |
template<typename ContainerType , typename PredicateType > | |
static void | removeFromSetIf_ (ContainerType &container, PredicateType predicate) |
Remove elements from a set (or ordered multi_index_container) if they fulfill a predicate. More... | |
template<typename ContainerType > | |
static void | removeFromSetIfNotHashed_ (ContainerType &container, const AddressLookup &lookup) |
Remove elements from a set (or ordered multi_index_container) if they don't occur in a look-up table. More... | |
template<typename ContainerType > | |
static void | updateAddressLookup_ (const ContainerType &container, AddressLookup &lookup) |
Recreate the address look-up table for a container. More... | |
Friends | |
class | IDFilter |
Representation of spectrum identification results and associated data.
This class provides capabilities for storing spectrum identification results from different types of experiments/molecules (proteomics: peptides/proteins, metabolomics: small molecules, "nucleomics": RNA). The class design has the following goals:
The following important subordinate classes are provided to represent different types of data:
Class | Represents | Key | Proteomics example | Corresponding legacy class |
---|---|---|---|---|
DataProcessingStep | Information about a data processing step that was applied (e.g. input files, software used, parameters) | Combined information | Mascot search | ProteinIdentification |
DataQuery | A search query (with identifier, RT, m/z), i.e. an MS2 spectrum or feature (for accurate mass search) | Identifier | MS2 spectrum | PeptideIdentification |
ParentMolecule | An entry in a FASTA file with associated information (sequence, coverage, etc.) | Accession | Protein | ProteinHit |
IdentifiedPeptide/-Oligo/-Compound | An identified molecule of the respective type | Sequence (or identifier for a compound) | Peptide | PeptideHit |
MoleculeQueryMatch | A match between a query (DataQuery) and identified molecule (Identified...) | Combination of query and molecule references | Peptide-spectrum match (PSM) | PeptideIdentification/PeptideHit |
To populate an IdentificationData instance with data, "register..." functions are used. These functions return "references" (implemented as iterators) that can be used to refer to stored data items and thus form connections. For example, a protein can be stored using registerParentMolecule, which returns a corresponding reference. This reference can be used to build an IdentifiedPeptide object that references the protein. An identified peptide referencing a protein can only be registered if that protein has been registered already, to ensure data consistency. Given the identified peptide, information about the associated protein can be retrieved efficiently by simply dereferencing the reference.
To ensure non-redundancy, many data types have a "key" (see table above) to which a uniqueness constraint applies. This means only one item of such a type with a given key can be stored in an IdentificationData object. If items with an existing key are registered subsequently, attempts are made to merge new information (e.g. additional scores) into the existing entry.
using AddressLookup = boost::unordered_set<uintptr_t> |
|
inline |
Default constructor.
|
delete |
|
inline |
Move constructor.
void addScore | ( | QueryMatchRef | match_ref, |
ScoreTypeRef | score_ref, | ||
double | value | ||
) |
Add a score to a molecule-query match (e.g. PSM)
void calculateCoverages | ( | bool | check_molecule_length = false | ) |
Calculate sequence coverages of parent molecules.
Referenced by NucleicAcidSearchEngine::main_().
|
protected |
Helper function to check if all applied processing steps are valid.
|
protected |
Helper function to check if all parent matches are valid.
|
protected |
Helper function to check if all score types are valid.
void cleanup | ( | bool | require_query_match = true , |
bool | require_identified_sequence = true , |
||
bool | require_parent_match = true , |
||
bool | require_parent_group = false , |
||
bool | require_match_group = false |
||
) |
Clean up the data structure after filtering parts of it.
Make sure there are no invalid references or "orphan" data entries.
require_query_match | Remove identified molecules and data queries that aren't part of molecule-query matches? |
require_identified_sequence | Remove parent molecules (proteins/RNAs) that aren't referenced by identified peptides/oligonucleotides? |
require_parent_match | Remove identified peptides/oligonucleotides that don't reference a parent molecule (protein/RNA)? |
require_parent_group | Remove parent molecules that aren't part of parent molecule groups? |
require_match_group | Remove molecule-query matches that aren't part of match groups? |
Referenced by NucleicAcidSearchEngine::postProcessHits_().
void clearCurrentProcessingStep | ( | ) |
Cancel the effect of setCurrentProcessingStep().
std::pair<ScoreTypeRef, bool> findScoreType | ( | const String & | score_name | ) | const |
Look up a score type by name.
Referenced by NucleicAcidSearchEngine::calculateAndFilterFDR_().
std::vector<QueryMatchRef> getBestMatchPerQuery | ( | ScoreTypeRef | score_ref | ) | const |
Return the best match for each data query, according to a given score type.
ProcessingStepRef getCurrentProcessingStep | ( | ) |
Return the current processing step (set via setCurrentProcessingStep()).
If no current processing step has been set, processing_steps.end()
is returned.
Referenced by NucleicAcidSearchEngine::postProcessHits_().
|
inline |
Return the registered data processing software (immutable)
|
inline |
Return the registered data processing steps (immutable)
|
inline |
Return the registered data queries (immutable)
Referenced by NucleicAcidSearchEngine::calculateAndFilterFDR_(), and NucleicAcidSearchEngine::main_().
|
inline |
Return the registered database search parameters (immutable)
|
inline |
Return the registered database search steps (immutable)
|
inline |
Return the registered compounds (immutable)
|
inline |
Return the registered identified oligonucleotides (immutable)
Referenced by NucleicAcidSearchEngine::main_().
|
inline |
Return the registered identified peptides (immutable)
|
inline |
Return the registered input files (immutable)
Referenced by NucleicAcidSearchEngine::postProcessHits_().
|
inline |
Return the registered molecule-query matches (immutable)
Referenced by NucleicAcidSearchEngine::calculateAndFilterFDR_(), and NucleicAcidSearchEngine::generateLFQInput_().
|
inline |
Return the registered parent molecule groupings (immutable)
|
inline |
Return the registered parent molecules (immutable)
|
inline |
Return the registered groups of molecule-query matches (immutable)
|
inline |
Return the registered score types (immutable)
Referenced by NucleicAcidSearchEngine::postProcessHits_().
|
inlineprotected |
Helper function for adding entries (derived from ScoredProcessingResult) to a boost::multi_index_container structure.
|
inlineprotected |
Variant of insertIntoMultiIndex_() that also updates a look-up table of valid references (addresses)
Helper function to compare two scores.
|
inlinestaticprotected |
Check validity of a reference based on a look-up table of addresses.
|
inlinestaticprotected |
Check whether a reference points to an element in a container.
ProcessingSoftwareRef registerDataProcessingSoftware | ( | const DataProcessingSoftware & | software | ) |
Register data processing software.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
ProcessingStepRef registerDataProcessingStep | ( | const DataProcessingStep & | step | ) |
Register a data processing step.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
ProcessingStepRef registerDataProcessingStep | ( | const DataProcessingStep & | step, |
SearchParamRef | search_ref | ||
) |
Register a database search step with associated parameters.
DataQueryRef registerDataQuery | ( | const DataQuery & | query | ) |
Register a data query (e.g. MS2 spectrum or feature)
Referenced by NucleicAcidSearchEngine::postProcessHits_().
SearchParamRef registerDBSearchParam | ( | const DBSearchParam & | param | ) |
Register database search parameters.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
IdentifiedCompoundRef registerIdentifiedCompound | ( | const IdentifiedCompound & | compound | ) |
Register an identified compound (small molecule)
IdentifiedOligoRef registerIdentifiedOligo | ( | const IdentifiedOligo & | oligo | ) |
Register an identified RNA oligonucleotide.
Referenced by NucleicAcidSearchEngine::postProcessHits_().
IdentifiedPeptideRef registerIdentifiedPeptide | ( | const IdentifiedPeptide & | peptide | ) |
Register an identified peptide.
InputFileRef registerInputFile | ( | const String & | file | ) |
Register an input file.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
QueryMatchRef registerMoleculeQueryMatch | ( | const MoleculeQueryMatch & | match | ) |
Register a molecule-query match (e.g. peptide-spectrum match)
Referenced by NucleicAcidSearchEngine::postProcessHits_().
ParentMoleculeRef registerParentMolecule | ( | const ParentMolecule & | parent | ) |
Register a parent molecule (e.g. protein or intact RNA)
void registerParentMoleculeGrouping | ( | const ParentMoleculeGrouping & | grouping | ) |
Register a grouping of parent molecules (e.g. protein inference result)
MatchGroupRef registerQueryMatchGroup | ( | const QueryMatchGroup & | group | ) |
Register a group of associated molecule-query matches.
ScoreTypeRef registerScoreType | ( | const ScoreType & | score | ) |
Register a score type.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
|
inlinestaticprotected |
Remove elements from a set (or ordered multi_index_container) if they fulfill a predicate.
|
inlinestaticprotected |
Remove elements from a set (or ordered multi_index_container) if they don't occur in a look-up table.
void setCurrentProcessingStep | ( | ProcessingStepRef | step_ref | ) |
Set a data processing step that will apply to all subsequent "register..." calls.
This step will be appended to the list of processing steps for all relevant elements that are registered subsequently (unless it is already the last entry in the list). If a score type without a software reference is registered, the software reference of this processing step will be applied.
Effective until clearCurrentProcessingStep() is called.
Referenced by NucleicAcidSearchEngine::registerIDMetaData_().
|
inlinestaticprotected |
Recreate the address look-up table for a container.
|
friend |
|
protected |
Reference to the current data processing step (see setCurrentProcessingStep())
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |