51 #include <unordered_set> 95 template <
typename ContainerType,
typename PredicateType>
99 for (
auto it = container.begin(); it != container.end(); )
103 it = container.erase(it);
224 bool allow_missing =
false;
234 current_step_ref_(processing_steps_.end()), no_checks_(false)
274 const ProcessingSoftware& software);
321 void registerParentGroupSet(
const ParentGroupSet& groups);
365 MatchGroupRef registerObservationMatchGroup(
const ObservationMatchGroup& group);
376 return processing_softwares_;
382 return processing_steps_;
388 return db_search_params_;
394 return db_search_steps_;
406 return observations_;
418 return parent_groups_;
424 return identified_peptides_;
430 return identified_compounds_;
436 return identified_oligos_;
448 return observation_matches_;
454 return observation_match_groups_;
478 void clearCurrentProcessingStep();
486 std::vector<ObservationMatchRef> getBestMatchPerObservation(
ScoreTypeRef score_ref,
487 bool require_score =
false)
const;
491 std::pair<ObservationMatchRef, ObservationMatchRef> getMatchesForObservation(
ObservationRef obs_ref)
const;
500 template <
typename PredicateType>
503 auto count = observation_matches_.size();
505 if (count != observation_matches_.size()) cleanup();
515 template <
typename PredicateType>
518 auto count = parents_.size();
520 if (count != parents_.size()) cleanup();
523 template <
typename PredicateType>
526 for (
auto it = observations_.begin(); it != observations_.end(); ++it)
527 observations_.modify(it, func);
538 void calculateCoverages(
bool check_molecule_length =
false);
551 void cleanup(
bool require_observation_match =
true,
552 bool require_identified_sequence =
true,
553 bool require_parent_match =
true,
554 bool require_parent_group =
false,
555 bool require_match_group =
false);
593 template <
class ScoredProcessingResults>
595 bool all_elements =
false,
bool any_score =
false)
const 597 std::map<ScoreTypeRef, Size> score_counts;
601 for (
const auto& element : container)
603 for (
const auto& step : element.steps_and_scores)
605 for (
const auto& pair : step.scores)
607 score_counts[pair.first]++;
614 for (
const auto& element : container)
616 auto score_info = element.getMostRecentScore();
617 if (std::get<2>(score_info))
620 if (!all_elements)
return score_ref;
621 score_counts[score_ref]++;
625 if (score_counts.empty())
return score_types_.end();
626 auto pos = max_element(score_counts.begin(), score_counts.end());
638 void setMetaValue(
const IdentifiedMolecule& var,
const String& key,
const DataValue& value);
683 void checkScoreTypes_(
const std::map<ScoreTypeRef, double>& scores)
const;
687 steps_and_scores)
const;
709 template <
typename ElementType>
717 template <
typename ElementType>
725 template <
typename ElementType>
729 template <
typename ContainerType,
typename ElementType>
730 typename ContainerType::iterator insertIntoMultiIndex_(ContainerType& container,
const ElementType& element);
733 template <
typename ContainerType,
typename ElementType>
734 typename ContainerType::iterator insertIntoMultiIndex_(
735 ContainerType& container,
const ElementType& element,
ScoreTypes score_types_
Definition: IdentificationData.h:652
void removeParentSequencesIf(PredicateType &&func)
Helper function for filtering parent sequences (e.g. protein sequences) in IdentificationData.
Definition: IdentificationData.h:516
bool no_checks_
Suppress validity checks in register... calls?
Definition: IdentificationData.h:671
const ObservationMatchGroups & getObservationMatchGroups() const
Return the registered groups of observation matches (immutable)
Definition: IdentificationData.h:452
AddressLookup observation_match_lookup_
Definition: IdentificationData.h:680
IteratorWrapper< IdentifiedPeptides::iterator > IdentifiedPeptideRef
Definition: IdentifiedSequence.h:116
IdentificationDataInternal::ObservationMatchGroups ObservationMatchGroups
Definition: IdentificationData.h:195
std::map< SearchParamRef, SearchParamRef > search_param_refs
Definition: IdentificationData.h:214
Definition: AdductInfo.h:42
A more convenient string class.
Definition: String.h:58
std::map< ObservationRef, ObservationRef > observation_refs
Definition: IdentificationData.h:216
std::map< ObservationMatchRef, ObservationMatchRef > observation_match_refs
Definition: IdentificationData.h:222
std::map< ParentSequenceRef, std::set< ParentMatch > > ParentMatches
mapping: parent sequence -> match information
Definition: ParentMatch.h:101
AddressLookup identified_peptide_lookup_
Definition: IdentificationData.h:677
InputFiles input_files_
Definition: IdentificationData.h:645
IdentificationData()
Default constructor.
Definition: IdentificationData.h:233
std::map< IdentifiedCompoundRef, IdentifiedCompoundRef > identified_compound_refs
Definition: IdentificationData.h:220
MoleculeType
Definition: MetaData.h:65
Definition: AppliedProcessingStep.h:55
boost::multi_index_container< AppliedProcessingStep, boost::multi_index::indexed_by< boost::multi_index::sequenced<>, boost::multi_index::ordered_unique< boost::multi_index::member< AppliedProcessingStep, std::optional< ProcessingStepRef >, &AppliedProcessingStep::processing_step_opt > > > > AppliedProcessingSteps
Definition: AppliedProcessingStep.h:133
IdentifiedPeptides identified_peptides_
Definition: IdentificationData.h:656
AddressLookup identified_compound_lookup_
Definition: IdentificationData.h:678
const DBSearchParams & getDBSearchParams() const
Return the registered database search parameters (immutable)
Definition: IdentificationData.h:386
std::map< ProcessingSoftwareRef, ProcessingSoftwareRef > processing_software_refs
Definition: IdentificationData.h:213
std::optional< AdductRef > AdductOpt
Definition: ObservationMatch.h:70
IdentificationDataInternal::AdductOpt AdductOpt
Definition: IdentificationData.h:186
IdentificationDataInternal::Adducts Adducts
Definition: IdentificationData.h:184
IteratorWrapper< Observations::iterator > ObservationRef
Definition: Observation.h:96
const Observations & getObservations() const
Return the registered observations (immutable)
Definition: IdentificationData.h:404
const IdentifiedCompounds & getIdentifiedCompounds() const
Return the registered compounds (immutable)
Definition: IdentificationData.h:428
ProcessingSoftwares processing_softwares_
Definition: IdentificationData.h:646
IdentifiedSequence< NASequence > IdentifiedOligo
Definition: IdentifiedSequence.h:107
Representation of a parent sequence that is identified only indirectly (e.g. a protein).
Definition: ParentSequence.h:49
Meta data for the association between an identified molecule (e.g. peptide) and a parent sequence (e...
Definition: ParentMatch.h:45
Definition: IdentifiedCompound.h:48
MassType
Definition: MetaData.h:73
ParentGroupSets parent_groups_
Definition: IdentificationData.h:655
IdentificationDataInternal::DBSearchSteps DBSearchSteps
Definition: IdentificationData.h:141
Helper functor for adding scores to elements in a boost::multi_index_container structure.
Definition: IdentificationData.h:718
IdentificationDataInternal::ParentMatches ParentMatches
Definition: IdentificationData.h:164
Definition: IdentificationData.h:112
boost::multi_index_container< ParentGroup, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ParentGroup, std::set< ParentSequenceRef >, &ParentGroup::parent_refs > > > > ParentGroups
Definition: ParentGroup.h:64
std::map< ParentSequenceRef, ParentSequenceRef > parent_sequence_refs
Definition: IdentificationData.h:217
const ProcessingSoftwares & getProcessingSoftwares() const
Return the registered data processing software (immutable)
Definition: IdentificationData.h:374
IdentificationDataInternal::IdentifiedCompounds IdentifiedCompounds
Definition: IdentificationData.h:172
std::set< DBSearchParam > DBSearchParams
Definition: DBSearchParam.h:124
boost::multi_index_container< IdentifiedOligo, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedOligo, NASequence, &IdentifiedOligo::sequence > > > > IdentifiedOligos
Definition: IdentifiedSequence.h:124
ParentSequences parents_
Definition: IdentificationData.h:654
std::set< ProcessingStep > ProcessingSteps
Definition: ProcessingStep.h:88
std::map< ProcessingStepRef, SearchParamRef > DBSearchSteps
Definition: DBSearchParam.h:126
Representation of an observation, e.g. a spectrum or feature, in an input data file.
Definition: Observation.h:53
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
IteratorWrapper< Adducts::iterator > AdductRef
Definition: ObservationMatch.h:69
boost::multi_index_container< ParentSequence, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ParentSequence, String, &ParentSequence::accession > > > > ParentSequences
Definition: ParentSequence.h:120
const DBSearchSteps & getDBSearchSteps() const
Return the registered database search steps (immutable)
Definition: IdentificationData.h:392
IteratorWrapper< DBSearchParams::iterator > SearchParamRef
Definition: DBSearchParam.h:125
const Adducts & getAdducts() const
Return the registered adducts (immutable)
Definition: IdentificationData.h:440
DBSearchParams db_search_params_
Definition: IdentificationData.h:648
IdentificationDataInternal::ProcessingSteps ProcessingSteps
Definition: IdentificationData.h:135
std::vector< PeptideHit::PeakAnnotation > PeakAnnotations
Definition: ObservationMatch.h:52
IteratorWrapper< ObservationMatches::iterator > ObservationMatchRef
Definition: ObservationMatch.h:152
Helper functor for adding processing steps to elements in a boost::multi_index_container structure...
Definition: IdentificationData.h:710
std::set< AdductInfo, AdductCompare > Adducts
Definition: ObservationMatch.h:68
IdentificationDataInternal::ScoreTypes ScoreTypes
Definition: IdentificationData.h:144
Class to hold strings, numeric values, lists of strings and lists of numeric values.
Definition: DataValue.h:58
std::map< InputFileRef, InputFileRef > input_file_refs
Definition: IdentificationData.h:211
IteratorWrapper< ParentSequences::iterator > ParentSequenceRef
Definition: ParentSequence.h:121
IteratorWrapper< ParentGroups::iterator > ParentGroupRef
Definition: ParentGroup.h:65
Representation of an identified sequence (peptide or oligonucleotide)
Definition: IdentifiedSequence.h:52
Data processing step that is applied to the data (e.g. database search, PEP calculation, filtering, ConsensusID).
Definition: ProcessingStep.h:47
std::unordered_set< uintptr_t > AddressLookup
Definition: IdentificationData.h:207
ScoreTypeRef pickScoreType(const ScoredProcessingResults &container, bool all_elements=false, bool any_score=false) const
Definition: IdentificationData.h:594
IdentificationDataInternal::ProcessingSoftwares ProcessingSoftwares
Definition: IdentificationData.h:130
ProcessingStepRef current_step_ref_
Reference to the current data processing step (see setCurrentProcessingStep())
Definition: IdentificationData.h:664
boost::multi_index_container< ObservationMatch, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< ObservationMatch, boost::multi_index::member< ObservationMatch, ObservationRef, &ObservationMatch::observation_ref >, boost::multi_index::member< ObservationMatch, IdentifiedMolecule, &ObservationMatch::identified_molecule_var >, boost::multi_index::member< ObservationMatch, AdductOpt, &ObservationMatch::adduct_opt > > > > > ObservationMatches
Definition: ObservationMatch.h:150
std::vector< ParentGroupSet > ParentGroupSets
Definition: ParentGroup.h:82
IteratorWrapper< IdentifiedOligos::iterator > IdentifiedOligoRef
Definition: IdentifiedSequence.h:125
Observations observations_
Definition: IdentificationData.h:653
IdentificationDataInternal::AppliedProcessingSteps AppliedProcessingSteps
Definition: IdentificationData.h:153
const IdentifiedOligos & getIdentifiedOligos() const
Return the registered identified oligonucleotides (immutable)
Definition: IdentificationData.h:434
ObservationMatches observation_matches_
Definition: IdentificationData.h:660
std::map< ScoreTypeRef, ScoreTypeRef > score_type_refs
Definition: IdentificationData.h:212
IdentificationDataInternal::DBSearchParams DBSearchParams
Definition: IdentificationData.h:139
std::map< IdentifiedOligoRef, IdentifiedOligoRef > identified_oligo_refs
Definition: IdentificationData.h:219
Set of groups of ambiguously identified parent sequences (e.g. results of running a protein inference...
Definition: ParentGroup.h:69
IteratorWrapper< InputFiles::iterator > InputFileRef
Definition: include/OpenMS/METADATA/ID/InputFile.h:95
std::map< AdductRef, AdductRef > adduct_refs
Definition: IdentificationData.h:221
std::map< IdentifiedPeptideRef, IdentifiedPeptideRef > identified_peptide_refs
Definition: IdentificationData.h:218
void applyToObservations(PredicateType &&func)
Definition: IdentificationData.h:524
const IdentifiedPeptides & getIdentifiedPeptides() const
Return the registered identified peptides (immutable)
Definition: IdentificationData.h:422
ProcessingSteps processing_steps_
Definition: IdentificationData.h:647
void removeObservationMatchesIf(PredicateType &&func)
Helper function for filtering observation matches (e.g. PSMs) in IdentificationData.
Definition: IdentificationData.h:501
AddressLookup identified_oligo_lookup_
Definition: IdentificationData.h:679
IdentificationDataInternal::PeakAnnotations PeakAnnotations
Definition: IdentificationData.h:182
IteratorWrapper< ProcessingSteps::iterator > ProcessingStepRef
Definition: ProcessingStep.h:89
std::set< ScoreType > ScoreTypes
Definition: ScoreType.h:91
const InputFiles & getInputFiles() const
Return the registered input files (immutable)
Definition: IdentificationData.h:368
Helper functor for removing invalid parent matches from elements in a boost::multi_index_container st...
Definition: IdentificationData.h:726
IteratorWrapper< ProcessingSoftwares::iterator > ProcessingSoftwareRef
Definition: ProcessingSoftware.h:69
Variant type holding Peptide/Compound/Oligo references and convenience functions. ...
Definition: IdentifiedMolecule.h:54
ObservationMatchGroups observation_match_groups_
Definition: IdentificationData.h:661
IdentificationDataInternal::InputFiles InputFiles
Definition: IdentificationData.h:124
IdentificationDataInternal::Observations Observations
Definition: IdentificationData.h:156
DBSearchSteps db_search_steps_
Definition: IdentificationData.h:651
AddressLookup observation_lookup_
Definition: IdentificationData.h:674
IdentifiedCompounds identified_compounds_
Definition: IdentificationData.h:657
IdentificationDataInternal::ObservationMatches ObservationMatches
Definition: IdentificationData.h:189
Representation of a search hit (e.g. peptide-spectrum match).
Definition: ObservationMatch.h:73
const ParentGroupSets & getParentGroupSets() const
Return the registered parent sequence groupings (immutable)
Definition: IdentificationData.h:416
boost::multi_index_container< IdentifiedPeptide, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedPeptide, AASequence, &IdentifiedPeptide::sequence > > > > IdentifiedPeptides
Definition: IdentifiedSequence.h:115
boost::multi_index_container< ObservationMatchGroup, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< ObservationMatchGroup, std::set< ObservationMatchRef >, &ObservationMatchGroup::observation_match_refs > > > > ObservationMatchGroups
Definition: ObservationMatchGroup.h:99
IdentifiedOligos identified_oligos_
Definition: IdentificationData.h:658
boost::multi_index_container< Observation, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::composite_key< Observation, boost::multi_index::member< Observation, InputFileRef, &Observation::input_file >, boost::multi_index::member< Observation, String, &Observation::data_id > > > > > Observations
Definition: Observation.h:95
boost::multi_index_container< IdentifiedCompound, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< IdentifiedCompound, String, &IdentifiedCompound::identifier > > > > IdentifiedCompounds
Definition: IdentifiedCompound.h:80
IdentificationDataInternal::IdentifiedPeptides IdentifiedPeptides
Definition: IdentificationData.h:167
: Group of related (co-identified) input matches
Definition: ObservationMatchGroup.h:50
std::map< ProcessingStepRef, ProcessingStepRef > processing_step_refs
Definition: IdentificationData.h:215
Information about software used for data processing.
Definition: ProcessingSoftware.h:48
Base class for ID data with scores and processing steps (and meta info)
Definition: ScoredProcessingResult.h:44
Parameters specific to a database search step.
Definition: DBSearchParam.h:47
IdentificationDataInternal::ParentSequences ParentSequences
Definition: IdentificationData.h:160
IteratorWrapper< ObservationMatchGroups::iterator > MatchGroupRef
Definition: ObservationMatchGroup.h:100
IdentificationDataInternal::ParentGroups ParentGroups
Definition: IdentificationData.h:200
IdentificationDataInternal::ParentGroupSets ParentGroupSets
Definition: IdentificationData.h:205
IdentificationDataInternal::IdentifiedOligos IdentifiedOligos
Definition: IdentificationData.h:177
IteratorWrapper< IdentifiedCompounds::iterator > IdentifiedCompoundRef
Definition: IdentifiedCompound.h:81
AddressLookup parent_lookup_
Definition: IdentificationData.h:675
const ProcessingSteps & getProcessingSteps() const
Return the registered data processing steps (immutable)
Definition: IdentificationData.h:380
Information about a score type.
Definition: ScoreType.h:45
IteratorWrapper< ScoreTypes::iterator > ScoreTypeRef
Definition: ScoreType.h:92
structure that maps references of corresponding objects after copying
Definition: IdentificationData.h:210
IdentifiedSequence< AASequence > IdentifiedPeptide
Definition: IdentifiedSequence.h:106
const ObservationMatches & getObservationMatches() const
Return the registered observation matches (immutable)
Definition: IdentificationData.h:446
const ParentSequences & getParentSequences() const
Return the registered parent sequences (immutable)
Definition: IdentificationData.h:410
: Group of ambiguously identified parent sequences (e.g. protein group)
Definition: ParentGroup.h:50
boost::multi_index_container< InputFile, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::member< InputFile, String, &InputFile::name > > > > InputFiles
Definition: include/OpenMS/METADATA/ID/InputFile.h:94
std::set< ProcessingSoftware > ProcessingSoftwares
Definition: ProcessingSoftware.h:68
Adducts adducts_
Definition: IdentificationData.h:659
const ScoreTypes & getScoreTypes() const
Return the registered score types (immutable)
Definition: IdentificationData.h:398