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 =
"");
77 static void exportParentMatches(
86 static void importFeatureIDs(
FeatureMap& features,
bool clear_original =
true);
94 static void exportFeatureIDs(
FeatureMap& features,
bool clear_original =
true);
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);
259 static void exportStepsAndScoresToMzTab_(
262 std::map<IdentificationData::ScoreTypeRef, Size>& score_map);
265 static void addMzTabSEScores_(
266 const std::map<IdentificationData::ScoreTypeRef, Size>& scores,
267 std::map<Size, MzTabParameter>& output);
270 static void addMzTabMoleculeParentContext_(
275 static void addMzTabMoleculeParentContext_(
289 static void exportMSRunInformation_(
293 static void handleFeatureImport_(
Feature& feature,
const IntList& indexes,
294 std::vector<PeptideIdentification>& peptides,
295 Size& id_counter,
bool clear_original);
297 static void handleFeatureExport_(
Feature& feature,
const IntList& indexes,
Representation of a protein identification run.
Definition: ProteinIdentification.h:74
double coverage
sequence coverage as a fraction between 0 and 1
Definition: ParentSequence.h:61
bool operator()(const StepOpt &left, const StepOpt &right) const
Definition: IdentificationDataConverter.h:103
A more convenient string class.
Definition: String.h:58
OLI - Oligonucleotide section (table-based)
Definition: MzTab.h:396
MoleculeType
Definition: MetaData.h:65
bool hasMZ() const
shortcut for isnan(getRT())
AppliedProcessingSteps steps_and_scores
Definition: ScoredProcessingResult.h:46
A container for features.
Definition: FeatureMap.h:98
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
String data_id
Spectrum or feature ID (from the file referenced by input_file)
Definition: Observation.h:56
IdentificationDataInternal::ParentMatches ParentMatches
Definition: IdentificationData.h:164
Definition: IdentificationData.h:112
std::vector< Int > IntList
Vector of signed integers.
Definition: ListUtils.h:55
String sequence
Definition: ParentSequence.h:57
Definition: MzTabBase.h:268
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
Definition: IdentificationDataConverter.h:47
Search parameters of the DB search.
Definition: ProteinIdentification.h:271
double getMZ() const
returns the MZ of the MS2 spectrum
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
InputFileRef input_file
Reference to the input file.
Definition: Observation.h:59
IdentificationDataInternal::AppliedProcessingSteps AppliedProcessingSteps
Definition: IdentificationData.h:153
double getRT() const
returns the RT of the MS2 spectrum where the identification occurred
Representation of a peptide hit.
Definition: PeptideHit.h:55
bool hasRT() const
shortcut for isnan(getRT())
An LC-MS feature.
Definition: Feature.h:70
String accession
Definition: ParentSequence.h:51
Definition: MetaData.h:67
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
double mz
Definition: Observation.h:61
AdductOpt adduct_opt
optional reference to adduct
Definition: ObservationMatch.h:81
Representation of a search hit (e.g. peptide-spectrum match).
Definition: ObservationMatch.h:73
Functor for ordering peptide IDs by RT and m/z (if available)
Definition: IdentificationDataConverter.h:113
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
bool operator()(const PeptideIdentification &left, const PeptideIdentification &right) const
Definition: IdentificationDataConverter.h:115
Int charge
Definition: ObservationMatch.h:79
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
Functor for ordering StepOpt (by date of the steps, if available):
Definition: IdentificationDataConverter.h:101
String description
Definition: ParentSequence.h:59
double rt
Definition: Observation.h:61
PEP - Peptide section (Table based)
Definition: MzTab.h:242
ObservationRef observation_ref
Definition: ObservationMatch.h:77
std::optional< IdentificationData::ProcessingStepRef > StepOpt
Definition: IdentificationDataConverter.h:98
Wrapper that adds operator< to iterators, so they can be used as (part of) keys in maps/sets or multi...
Definition: MetaData.h:45
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:63
std::pair< String, MzTabString > MzTabOptionalColumnEntry
Definition: MzTabBase.h:229
Data model of MzTab files. Please see the official MzTab specification at https://code.google.com/p/mztab/.
Definition: MzTab.h:477