16#include <unordered_map>
17#include <unordered_set>
43 int num_charge_states = 0;
58 double delta_mass = 0.0;
60 int unique_peptides = 0;
61 int num_charge_states = 0;
62 double percentage = 0.0;
64 bool is_known_modification =
false;
71 double theoretical_mass = 0.0;
72 double observed_mass = 0.0;
73 double mass_deviation = 0.0;
75 int unique_peptides = 0;
76 int num_charge_states = 0;
77 double percentage = 0.0;
87 int modified_psms = 0;
88 int unmodified_psms = 0;
89 double mean_delta_mass = 0.0;
90 double median_delta_mass = 0.0;
97 int total_modified_psms = 0;
98 int unknown_modification_psms = 0;
99 int num_unique_modifications = 0;
117 return std::fabs(a - b) >= epsilon && a < b;
139 std::pair<DeltaMassHistogram, DeltaMassToChargeCount>
141 bool use_smoothing =
false,
142 bool debug =
false)
const;
155 std::vector<ModificationSummary>
159 double precursor_mass_tolerance = 5.0,
160 bool precursor_mass_tolerance_unit_ppm =
true,
161 const String& output_file =
"")
const;
173 std::vector<ModificationSummary>
175 double precursor_mass_tolerance = 5.0,
176 bool precursor_mass_tolerance_unit_ppm =
true,
177 bool use_smoothing =
false,
178 const String& output_file =
"")
const;
197 double precursor_mass_tolerance = 5.0,
198 bool precursor_mass_tolerance_unit_ppm =
true,
199 bool use_smoothing =
false,
200 const String& output_file =
"")
const;
219 double precursor_mass_tolerance = 5.0,
220 bool precursor_mass_tolerance_unit_ppm =
true)
const;
235 double precursor_mass_tolerance = 5.0,
236 bool precursor_mass_tolerance_unit_ppm =
true)
const;
252 double tolerance = 0.01)
const;
261 const String& output_file)
const;
270 const String& output_file)
const;
276 static constexpr double MAX_MOD_MAPPING_TOL_ = 0.02;
279 static constexpr double DELTA_MASS_ZERO_THRESHOLD_ = 0.05;
286 double sigma = 0.001);
290 double count_threshold = 0.0,
295 const String& output_file)
const;
298 std::map<double, String, FuzzyDoubleComparator>
307 double tolerance)
const;
Utility class for analyzing modification patterns in open search results.
Definition OpenSearchModificationAnalysis.h:35
std::map< char, int > residue_counts
Count per amino acid residue.
Definition OpenSearchModificationAnalysis.h:78
std::vector< ModificationSummary > mapDeltaMassesToModifications(const DeltaMassHistogram &delta_mass_histogram, const DeltaMassToChargeCount &charge_histogram, PeptideIdentificationList &peptide_ids, double precursor_mass_tolerance=5.0, bool precursor_mass_tolerance_unit_ppm=true, const String &output_file="") const
Map delta masses to known modifications and annotate peptides.
static DeltaMassHistogram smoothDeltaMassHistogram_(const DeltaMassHistogram &histogram, double sigma=0.001)
Smooth delta mass histogram using Gaussian kernel density estimation.
~OpenSearchModificationAnalysis()=default
Destructor.
int num_charge_states
Number of charge states.
Definition OpenSearchModificationAnalysis.h:51
DeltaMassStatistics delta_mass_stats
Delta mass histogram statistics.
Definition OpenSearchModificationAnalysis.h:105
void writeModificationSummary_(const std::vector< ModificationSummary > &modifications, const String &output_file) const
Write modification summary table to file.
std::vector< ModificationSummary > analyzeModifications(PeptideIdentificationList &peptide_ids, double precursor_mass_tolerance=5.0, bool precursor_mass_tolerance_unit_ppm=true, bool use_smoothing=false, const String &output_file="") const
Complete analysis workflow: analyze patterns and map to modifications.
std::vector< ModificationSummary > summaries
Legacy modification summaries.
Definition OpenSearchModificationAnalysis.h:107
std::map< double, int, FuzzyDoubleComparator > DeltaMassToChargeCount
Definition OpenSearchModificationAnalysis.h:123
std::vector< double > masses
Masses associated with the modification.
Definition OpenSearchModificationAnalysis.h:42
OpenSearchModificationAnalysis()=default
Default constructor.
String getTargetResidues_(const String &mod_name) const
Get target residues for a modification name.
PTMStatistics generatePTMStatistics(const PeptideIdentificationList &peptide_ids, double precursor_mass_tolerance=5.0, bool precursor_mass_tolerance_unit_ppm=true) const
Generate PTM statistics table with residue localization.
String name
Modification name.
Definition OpenSearchModificationAnalysis.h:50
PTMStatistics ptm_stats
Mapped PTM statistics.
Definition OpenSearchModificationAnalysis.h:106
DeltaMassStatistics generateDeltaMassStatistics(const DeltaMassHistogram &histogram, const DeltaMassToChargeCount &charge_histogram, const PeptideIdentificationList &peptide_ids, double precursor_mass_tolerance=5.0, bool precursor_mass_tolerance_unit_ppm=true) const
Generate delta mass statistics table from histogram data.
void writePTMStatistics(const PTMStatistics &stats, const String &output_file) const
Write PTM statistics to a TSV file.
std::map< double, double, FuzzyDoubleComparator > DeltaMassHistogram
Type definitions for delta mass analysis.
Definition OpenSearchModificationAnalysis.h:122
std::map< char, int > analyzeResidueFrequency(const PeptideIdentificationList &peptide_ids, double delta_mass, double tolerance=0.01) const
Analyze which amino acid residues are associated with a delta mass.
static double gaussian_(double x, double sigma)
Gaussian function for smoothing.
std::pair< DeltaMassHistogram, DeltaMassToChargeCount > analyzeDeltaMassPatterns(const PeptideIdentificationList &peptide_ids, bool use_smoothing=false, bool debug=false) const
Analyze delta mass patterns from peptide identifications.
String target_residues
Target residues for this modification.
Definition OpenSearchModificationAnalysis.h:79
std::vector< DeltaMassEntry > entries
All delta mass entries.
Definition OpenSearchModificationAnalysis.h:85
int count
Modification rate (number of occurrences)
Definition OpenSearchModificationAnalysis.h:49
OpenSearchAnalysisResult analyzeModificationsWithStatistics(PeptideIdentificationList &peptide_ids, double precursor_mass_tolerance=5.0, bool precursor_mass_tolerance_unit_ppm=true, bool use_smoothing=false, const String &output_file="") const
Complete analysis returning structured statistics tables.
int countUniquePeptides_(const PeptideIdentificationList &peptide_ids, double delta_mass, double tolerance) const
Count unique peptide sequences matching a delta mass.
static DeltaMassHistogram findPeaksInHistogram_(const DeltaMassHistogram &histogram, double count_threshold=0.0, double snr=2.0)
Find peaks in delta mass histogram based on count threshold and signal-to-noise ratio.
std::map< double, String, FuzzyDoubleComparator > buildModificationMassLookup_() const
Build lookup table mapping mass differences to known modifications.
std::vector< PTMEntry > entries
All PTM entries.
Definition OpenSearchModificationAnalysis.h:96
void writeDeltaMassStatistics(const DeltaMassStatistics &stats, const String &output_file) const
Write delta mass statistics to a TSV file.
Statistics for a single delta mass bin in the histogram.
Definition OpenSearchModificationAnalysis.h:57
Container for delta mass statistics table.
Definition OpenSearchModificationAnalysis.h:84
Stores details of a modification pattern found in the data.
Definition OpenSearchModificationAnalysis.h:40
Data structure for modification summary output.
Definition OpenSearchModificationAnalysis.h:48
Combined result of open search modification analysis.
Definition OpenSearchModificationAnalysis.h:104
Statistics for a mapped PTM.
Definition OpenSearchModificationAnalysis.h:69
Container for PTM statistics table.
Definition OpenSearchModificationAnalysis.h:95
Container for peptide identifications from multiple spectra.
Definition PeptideIdentificationList.h:66
A more convenient string class.
Definition String.h:34
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Comparator for approximate comparison of double values.
Definition OpenSearchModificationAnalysis.h:112
double epsilon
Definition OpenSearchModificationAnalysis.h:113
FuzzyDoubleComparator(double eps=1e-9)
Definition OpenSearchModificationAnalysis.h:114
bool operator()(const double &a, const double &b) const
Definition OpenSearchModificationAnalysis.h:115