53 const std::vector<ProteinIdentification>& proteins,
54 const std::vector<PeptideIdentification>& peptides);
62 std::vector<ProteinIdentification>& proteins,
63 std::vector<PeptideIdentification>& peptides,
64 bool export_ids_wo_scores =
false);
71 const std::vector<FASTAFile::FASTAEntry>& fasta,
74 const String& decoy_pattern =
"");
98 using StepOpt = std::optional<IdentificationData::ProcessingStepRef>;
106 if (!left)
return bool(right);
107 if (!right)
return false;
108 return **left < **right;
133 else if (right.
hasRT())
150 return right.
hasMZ();
155 template <
typename MzTabSectionRow>
158 std::vector<MzTabSectionRow>& output,
159 std::map<IdentificationData::ScoreTypeRef, Size>& score_map)
164 row.best_search_engine_score, score_map);
170 opt_seq.first =
"opt_sequence";
171 opt_seq.second.set(parent.
sequence);
172 row.opt_.push_back(opt_seq);
174 output.push_back(row);
178 template <
typename MzTabSectionRow,
typename IdentSeq>
180 const IdentSeq& identified, std::vector<MzTabSectionRow>& output,
181 std::map<IdentificationData::ScoreTypeRef, Size>& score_map)
185 row.sequence.set(identified.sequence.toString());
186 exportStepsAndScoresToMzTab_(identified.steps_and_scores,
188 row.best_search_engine_score, score_map);
189 if (identified.parent_matches.empty())
192 output.push_back(row);
197 row.unique.set(identified.parent_matches.size() == 1);
198 for (
const auto& match_pair : identified.parent_matches)
200 row.accession.set(match_pair.first->accession);
204 MzTabSectionRow copy = row;
205 addMzTabMoleculeParentContext_(match, copy);
206 output.push_back(copy);
213 template <
typename MzTabSectionRow>
217 std::vector<MzTabSectionRow>& output,
218 std::map<IdentificationData::ScoreTypeRef, Size>& score_map,
219 std::map<IdentificationData::InputFileRef, Size>& file_map)
223 xsm.sequence.set(sequence);
225 xsm.search_engine_score, score_map);
227 std::vector<MzTabDouble> rts(1);
228 rts[0].set(query.
rt);
229 xsm.retention_time.set(rts);
230 xsm.charge.set(match.
charge);
231 xsm.exp_mass_to_charge.set(query.
mz);
232 xsm.calc_mass_to_charge.set(calc_mass / abs(match.
charge));
233 xsm.spectra_ref.setMSFile(file_map[query.
input_file]);
234 xsm.spectra_ref.setSpecRef(query.
data_id);
239 opt_adduct.first =
"opt_adduct";
240 opt_adduct.second.set((*match.
adduct_opt)->getName());
241 xsm.opt_.push_back(opt_adduct);
249 opt_meta.first =
"opt_isotope_offset";
250 opt_meta.second.set(match.
getMetaValue(
"isotope_offset"));
251 xsm.opt_.push_back(opt_meta);
255 output.push_back(xsm);
262 std::map<IdentificationData::ScoreTypeRef, Size>& score_map);
266 const std::map<IdentificationData::ScoreTypeRef, Size>& scores,
267 std::map<Size, MzTabParameter>& output);
294 std::vector<PeptideIdentification>& peptides,
295 Size& id_counter,
bool clear_original);
A container for features.
Definition: FeatureMap.h:106
An LC-MS feature.
Definition: Feature.h:72
Definition: IdentificationDataConverter.h:48
static void addMzTabSEScores_(const std::map< IdentificationData::ScoreTypeRef, Size > &scores, std::map< Size, MzTabParameter > &output)
Helper function to add search engine score entries to MzTab's meta data section.
static void exportFeatureIDs(FeatureMap &features, bool clear_original=true)
Convert IDs in a feature map to legacy peptide/protein identifications.
static void importSequences(IdentificationData &id_data, const std::vector< FASTAFile::FASTAEntry > &fasta, IdentificationData::MoleculeType type=IdentificationData::MoleculeType::PROTEIN, const String &decoy_pattern="")
Import FASTA sequences as parent sequences.
static void exportObservationMatchToMzTab_(const String &sequence, const IdentificationData::ObservationMatch &match, double calc_mass, std::vector< MzTabSectionRow > &output, std::map< IdentificationData::ScoreTypeRef, Size > &score_map, std::map< IdentificationData::InputFileRef, Size > &file_map)
Export an input match (peptide- or oligonucleotide-spectrum match) to mzTab.
Definition: IdentificationDataConverter.h:214
static void exportIDs(const IdentificationData &id_data, std::vector< ProteinIdentification > &proteins, std::vector< PeptideIdentification > &peptides, bool export_ids_wo_scores=false)
Export to legacy peptide/protein identifications.
static void importIDs(IdentificationData &id_data, const std::vector< ProteinIdentification > &proteins, const std::vector< PeptideIdentification > &peptides)
Import from legacy peptide/protein identifications.
static void handleFeatureImport_(Feature &feature, IntList indexes, std::vector< PeptideIdentification > &peptides, Size &id_counter, bool clear_original)
static IdentificationData::SearchParamRef importDBSearchParameters_(const ProteinIdentification::SearchParameters &pisp, IdentificationData &id_data)
Helper function to import DB search parameters from legacy format.
static void addMzTabMoleculeParentContext_(const IdentificationData::ParentMatch &match, MzTabOligonucleotideSectionRow &row)
Helper function for exportPeptideOrOligoToMzTab_() - oligonucleotide variant.
static ProteinIdentification::SearchParameters exportDBSearchParameters_(IdentificationData::SearchParamRef ref)
Helper function to export DB search parameters to legacy format.
static void exportPeptideOrOligoToMzTab_(const IdentSeq &identified, std::vector< MzTabSectionRow > &output, std::map< IdentificationData::ScoreTypeRef, Size > &score_map)
Export an identified sequence (peptide or oligonucleotide, but not small molecule/compound) to mzTab.
Definition: IdentificationDataConverter.h:179
static MzTab exportMzTab(const IdentificationData &id_data)
Export to mzTab format.
static void handleFeatureExport_(Feature &feature, const IntList &indexes, IdentificationData &id_data, Size &id_counter)
std::optional< IdentificationData::ProcessingStepRef > StepOpt
Definition: IdentificationDataConverter.h:98
static void exportParentSequenceToMzTab_(const IdentificationData::ParentSequence &parent, std::vector< MzTabSectionRow > &output, std::map< IdentificationData::ScoreTypeRef, Size > &score_map)
Export a parent sequence (protein or nucleic acid) to mzTab.
Definition: IdentificationDataConverter.h:156
static void exportStepsAndScoresToMzTab_(const IdentificationData::AppliedProcessingSteps &steps_and_scores, MzTabParameterList &steps_out, std::map< Size, MzTabDouble > &scores_out, std::map< IdentificationData::ScoreTypeRef, Size > &score_map)
Helper function to add processing steps (search engines) and their scores to MzTab.
static void exportMSRunInformation_(IdentificationData::ProcessingStepRef step_ref, ProteinIdentification &protein)
Helper function to export (primary) MS run information to legacy format.
static void importFeatureIDs(FeatureMap &features, bool clear_original=true)
Convert IDs from legacy peptide/protein identifications in a feature map.
static void exportParentMatches(const IdentificationData::ParentMatches &parent_matches, PeptideHit &hit)
Convert parent matches to peptide evidences.
static void addMzTabMoleculeParentContext_(const IdentificationData::ParentMatch &match, MzTabPeptideSectionRow &row)
Helper function for exportPeptideOrOligoToMzTab_() - peptide variant.
Representation of spectrum identification results and associated data.
Definition: IdentificationData.h:95
IdentificationDataInternal::ParentMatches ParentMatches
Definition: IdentificationData.h:146
IdentificationDataInternal::AppliedProcessingSteps AppliedProcessingSteps
Definition: IdentificationData.h:135
Definition: MzTabBase.h:269
Data model of MzTab files. Please see the official MzTab specification at https://code....
Definition: MzTab.h:478
Representation of a peptide hit.
Definition: PeptideHit.h:57
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:65
double getRT() const
returns the RT of the MS2 spectrum where the identification occurred
bool hasMZ() const
shortcut for isnan(getRT())
bool hasRT() const
shortcut for isnan(getRT())
double getMZ() const
returns the MZ of the MS2 spectrum
Representation of a protein identification run.
Definition: ProteinIdentification.h:72
A more convenient string class.
Definition: String.h:60
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
std::vector< Int > IntList
Vector of signed integers.
Definition: ListUtils.h:55
MoleculeType
Definition: MetaData.h:66
@ PROTEIN
Definition: MetaData.h:67
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
std::pair< String, MzTabString > MzTabOptionalColumnEntry
Definition: MzTabBase.h:229
OLI - Oligonucleotide section (table-based)
Definition: MzTab.h:397
PEP - Peptide section (Table based)
Definition: MzTab.h:243
Functor for ordering peptide IDs by RT and m/z (if available)
Definition: IdentificationDataConverter.h:114
bool operator()(const PeptideIdentification &left, const PeptideIdentification &right) const
Definition: IdentificationDataConverter.h:115
Functor for ordering StepOpt (by date of the steps, if available):
Definition: IdentificationDataConverter.h:102
bool operator()(const StepOpt &left, const StepOpt &right) const
Definition: IdentificationDataConverter.h:103
Wrapper that adds operator< to iterators, so they can be used as (part of) keys in maps/sets or multi...
Definition: MetaData.h:46
Representation of a search hit (e.g. peptide-spectrum match).
Definition: ObservationMatch.h:74
AdductOpt adduct_opt
optional reference to adduct
Definition: ObservationMatch.h:81
Int charge
Definition: ObservationMatch.h:79
ObservationRef observation_ref
Definition: ObservationMatch.h:77
Representation of an observation, e.g. a spectrum or feature, in an input data file.
Definition: Observation.h:54
double mz
Definition: Observation.h:61
InputFileRef input_file
Reference to the input file.
Definition: Observation.h:59
String data_id
Spectrum or feature ID (from the file referenced by @t input_file)
Definition: Observation.h:56
double rt
Definition: Observation.h:61
Meta data for the association between an identified molecule (e.g. peptide) and a parent sequence (e....
Definition: ParentMatch.h:46
Representation of a parent sequence that is identified only indirectly (e.g. a protein).
Definition: ParentSequence.h:50
String sequence
Definition: ParentSequence.h:57
String description
Definition: ParentSequence.h:59
double coverage
sequence coverage as a fraction between 0 and 1
Definition: ParentSequence.h:61
String accession
Definition: ParentSequence.h:51
AppliedProcessingSteps steps_and_scores
Definition: ScoredProcessingResult.h:46
Search parameters of the DB search.
Definition: ProteinIdentification.h:260