32class TheoreticalSpectrumGenerator;
81 bool fdr_applied =
false;
82 double achieved_psm_fdr = -1.0;
87 bool score_stats_valid =
false;
88 double hyperscore_min = 0.0;
89 double hyperscore_median = 0.0;
90 double hyperscore_max = 0.0;
91 bool prec_tol_valid =
false;
92 double prec_err_median = 0.0, prec_err_mad = 0.0, prec_err_recommended = 0.0;
93 bool frag_tol_valid =
false;
94 double frag_err_median = 0.0, frag_err_mad = 0.0, frag_err_recommended = 0.0;
95 double seconds_search = 0.0;
96 double seconds_calibration = 0.0;
97 double seconds_fdr = 0.0;
112 double precursor_tol_lower = 0.0, precursor_tol_upper = 0.0;
114 double fragment_tol = 0.0;
116 Int min_charge = 0, max_charge = 0;
118 std::vector<std::string>
fixed_mods, variable_mods, ion_series;
119 bool open_search =
false;
120 bool calibration_enabled =
false;
121 bool snes_mode =
false;
122 bool chunked =
false;
124 double psm_fdr_threshold = 0.0, protein_fdr_threshold = 0.0;
129 double seconds_index_build = 0.0;
130 double seconds_total = 0.0;
148 bool is_open_search =
false;
194 bool decoy_is_prefix =
true;
196 bool have_decoys =
false;
213 std::vector<FASTAFile::FASTAEntry>
db;
225 bool release_fragment_index_after_scoring =
false;
233 bool decoy_is_prefix =
true;
236 bool have_decoys =
false;
241 bool electron_ions =
false;
266 const std::string& in_db,
267 std::vector<ProteinIdentification>& prot_ids,
296 const std::string& decoy_string,
297 bool decoy_is_prefix,
346 const std::string& in_db,
347 const std::string& output_base_name =
"")
const;
367 const std::vector<FASTAFile::FASTAEntry>& fasta_db,
368 std::vector<ProteinIdentification>& prot_ids,
430 std::vector<ProteinIdentification>& prot_ids,
444 const std::vector<FASTAFile::FASTAEntry>& fasta_db,
445 const std::string& output_base_name =
"")
const;
484 const std::vector<std::string>& in_spectra_files,
485 const std::vector<FASTAFile::FASTAEntry>& fasta_db,
486 const std::vector<std::string>& output_base_names = {},
487 const std::string& aggregate_base_name =
"",
488 bool build_pooled_aggregate =
true)
const;
504 const std::vector<std::string>& in_spectra_files,
505 const std::string& in_db,
506 const std::vector<std::string>& output_base_names = {},
507 const std::string& aggregate_base_name =
"",
508 bool build_pooled_aggregate =
true)
const;
523 double delta_mass = 0.0;
524 float prefix_fraction = 0;
525 float suffix_fraction = 0;
526 float mean_error = 0.0f;
527 int isotope_error = 0;
528 uint16_t applied_charge = 0;
529 uint16_t matched_prefix_ions = 0;
530 uint16_t matched_suffix_ions = 0;
560 double second_best = 0.0;
566 if (score > best) { second_best = best; best = score; }
567 else if (score > second_best) { second_best = score; }
569 sumsq += score * score;
602 double fragment_mass_tolerance,
603 bool fragment_mass_tolerance_unit_ppm,
604 bool deisotope_requested,
606 Int peaks_window_top,
607 const std::string& window_type =
"auto");
629 bool generate{
false};
630 bool strip_existing{
false};
631 bool have_decoys{
false};
633 bool is_prefix{
true};
635 bool strip_is_prefix{
true};
647 const std::vector<FASTAFile::FASTAEntry>& db)
const;
665 struct SpectrumGenerators_;
684 const std::vector<FASTAFile::FASTAEntry>& fasta_db,
701 const std::vector<FASTAFile::FASTAEntry>& full_db)
const;
718 std::vector<FASTAFile::FASTAEntry>& full_db,
720 std::vector<ProteinIdentification>& protein_ids,
748 const std::vector<FASTAFile::FASTAEntry>& db,
749 const SpectrumGenerators_& generators,
750 double effective_fragment_tol,
751 bool fragment_mass_tolerance_unit_ppm,
752 bool open_search_mode,
753 std::vector<std::vector<AnnotatedHit_>>& annotated_hits,
754 std::vector<CandidatePoolStats_>& pool_stats,
755 const std::string& progress_label)
const;
785 std::vector<std::vector<ProSEAlgorithm::AnnotatedHit_> >& annotated_hits,
786 const std::vector<CandidatePoolStats_>& pool_stats,
787 std::vector<ProteinIdentification>& protein_ids,
792 Int peptide_missed_cleavages,
793 double precursor_mass_tolerance,
794 double fragment_mass_tolerance,
795 const std::string& precursor_mass_tolerance_unit_ppm,
796 const std::string& fragment_mass_tolerance_unit_ppm,
797 const Int precursor_min_charge,
798 const Int precursor_max_charge,
799 const std::string& enzyme,
800 const std::string& database_name)
const;
805 mutable double precursor_mass_tolerance_lower_{10.0};
806 mutable double precursor_mass_tolerance_upper_{10.0};
807 std::string precursor_mass_tolerance_unit_{
"ppm"};
822 bool deisotope_requested_{
true};
824 Int peaks_window_top_{20};
825 std::string peaks_window_type_ {
"auto"};
838 double fdr_psm_{0.0};
839 double fdr_protein_{0.0};
852 bool add_a_ions_{
false};
853 bool add_b_ions_{
true};
854 bool add_c_ions_{
false};
855 bool add_x_ions_{
false};
856 bool add_y_ions_{
true};
857 bool add_z_ions_{
false};
858 bool add_zp1_ions_{
false};
859 bool ions_by_activation_{
true};
863 bool calibration_enabled_{
false};
864 double calibration_subset_ratio_{0.1};
865 Size calibration_min_psms_{50};
876 double precursor_shift{0};
877 double precursor_spread{0};
880 double fragment_tolerance{0};
881 double fragment_shift{0};
882 bool extreme_bias{
false};
905 mutable double last_mod_match_tolerance_used_{-1.0};
919 if (precursor_mass_tolerance_lower_ <= 0.0)
return precursor_mass_tolerance_upper_;
920 if (precursor_mass_tolerance_upper_ <= 0.0)
return precursor_mass_tolerance_lower_;
921 return std::min(precursor_mass_tolerance_lower_, precursor_mass_tolerance_upper_);
938 const std::vector<FASTAFile::FASTAEntry>& db)
const;
943 const std::string& marker,
bool is_prefix);
965 const std::vector<ProteinIdentification>& protein_ids,
981 const std::string& enzyme,
1007 const std::vector<std::pair<std::string, std::vector<std::string>>>& manifest,
1016 return FragmentIndex::isOpenSearchMode(precursor_mass_tolerance_lower_,
1017 precursor_mass_tolerance_upper_,
1018 precursor_mass_tolerance_unit_ ==
"ppm");
Definition AASequence.h:96
A base class for all classes handling default parameters.
Definition DefaultParamHandler.h:66
Specificity
when querying for valid digestion products, this determines if the specificity of the two peptide end...
Definition EnzymaticDigestion.h:42
Generates from a set of Fasta files a 2D-datastructure which stores all theoretical masses of all b a...
Definition FragmentIndex.h:35
In-Memory representation of a mass spectrometry run.
Definition MSExperiment.h:49
The representation of a 1D spectrum.
Definition MSSpectrum.h:44
Combined result of open search modification analysis.
Definition OpenSearchModificationAnalysis.h:104
Management and storage of parameters / INI files.
Definition Param.h:46
Container for peptide identifications from multiple spectra.
Definition PeptideIdentificationList.h:66
Fragment-index-based peptide database search algorithm (experimental).
Definition ProSEAlgorithm.h:51
ExitCodes search(PeakMap &spectra, const std::vector< FASTAFile::FASTAEntry > &fasta_db, std::vector< ProteinIdentification > &prot_ids, PeptideIdentificationList &pep_ids) const
In-memory search: search spectra against a protein database without file I/O.
std::string enzyme_
Definition ProSEAlgorithm.h:833
static std::string renderRunSummaryYaml(const MultiFileSearchResult &mfres, const std::vector< std::pair< std::string, std::vector< std::string > > > &manifest, Size files_failed, Size files_total)
FragmentIndex fragment_index
Definition ProSEAlgorithm.h:214
std::string fragment_tol_unit
Definition ProSEAlgorithm.h:115
Size peptide_max_size_
Definition ProSEAlgorithm.h:844
static void updateFinalStats(RunStatistics &stats, const PeptideIdentificationList &peptide_ids, const std::string &enzyme, bool fdr_applied)
static void preprocessSpectra_(PeakMap &exp, double fragment_mass_tolerance, bool fragment_mass_tolerance_unit_ppm, bool deisotope_requested, Size peaks_keep_n, Int peaks_window_top, const std::string &window_type="auto")
filter, deisotope, decharge spectra
SearchResult searchWithModificationAnalysis(const std::string &in_spectra, const std::string &in_db, const std::string &output_base_name="") const
Search with comprehensive results including modification analysis tables.
Size precursor_max_charge_
Definition ProSEAlgorithm.h:810
Size precursor_min_charge_
Definition ProSEAlgorithm.h:809
std::string decoy_prefix_
Definition ProSEAlgorithm.h:836
RunStatistics stats
Definition ProSEAlgorithm.h:149
Size report_top_hits_
Definition ProSEAlgorithm.h:850
Size modifications_max_variable_mods_per_peptide_
Definition ProSEAlgorithm.h:831
static void renderModificationSummary(const OpenSearchModificationAnalysis::OpenSearchAnalysisResult &mod_analysis, std::ostream &os)
SearchResult searchWithModificationAnalysis(PeakMap &spectra, const std::vector< FASTAFile::FASTAEntry > &fasta_db, const std::string &output_base_name="") const
In-memory search with modification analysis: no file I/O required.
std::string peptide_motif_
Definition ProSEAlgorithm.h:848
std::string input_file
spectrum file this run searched (basename or path)
Definition ProSEAlgorithm.h:76
std::map< Int, Size > charge_histogram
precursor charge -> PSM count
Definition ProSEAlgorithm.h:85
SpectrumGenerators_ spectrumGenerators_() const
Generators for scoring, annotation and calibration, configured from the ions:* parameters.
StringList modifications_fixed_
Definition ProSEAlgorithm.h:827
MultiFileSearchResult searchWithModificationAnalysis(const std::vector< std::string > &in_spectra_files, const std::vector< FASTAFile::FASTAEntry > &fasta_db, const std::vector< std::string > &output_base_names={}, const std::string &aggregate_base_name="", bool build_pooled_aggregate=true) const
Multi-file search with modification analysis (in-memory FASTA).
CalibrationResult_ runCalibrationPass_(PeakMap &spectra, FragmentIndex &fragment_index, const std::vector< FASTAFile::FASTAEntry > &db) const
Run a fast calibration pass on a subset of spectra to estimate mass accuracy.
static void capturePreFdrStats_(const PeptideIdentificationList &peptide_ids, RunStatistics &stats)
std::vector< ProteinIdentification > protein_ids
Definition ProSEAlgorithm.h:145
Size peptide_min_size_
Definition ProSEAlgorithm.h:843
std::vector< FASTAFile::FASTAEntry > buildDecoyAugmentedDB_(const std::vector< FASTAFile::FASTAEntry > &fasta_db, const DecoyStrategy_ &strategy) const
Build the searched database according to strategy.
SearchResult aggregate
Definition ProSEAlgorithm.h:187
IntList precursor_isotopes_
Definition ProSEAlgorithm.h:812
MultiFileSearchResult searchWithModificationAnalysis(const std::vector< std::string > &in_spectra_files, const std::string &in_db, const std::vector< std::string > &output_base_names={}, const std::string &aggregate_base_name="", bool build_pooled_aggregate=true) const
Multi-file search with modification analysis (FASTA file path).
std::string database_file
FASTA path (empty for in-memory db)
Definition ProSEAlgorithm.h:110
std::string strip_string
marker of pre-existing decoys to strip
Definition ProSEAlgorithm.h:634
std::map< Size, Size > missed_cleavage_histogram
missed cleavages -> PSM count
Definition ProSEAlgorithm.h:86
RunStatistics last_run_stats_
Definition ProSEAlgorithm.h:896
std::string fragment_mass_tolerance_unit_
Definition ProSEAlgorithm.h:816
StringList annotate_psm_
Definition ProSEAlgorithm.h:841
static void filterLocalPeaks_(MSSpectrum &spectrum, Size peaks_per_window)
Keep the strongest peaks in each non-overlapping 100 Da window, including a short final window.
static void applyCompleteSetProteinFDR(std::vector< ProteinIdentification > &protein_ids, PeptideIdentificationList &peptide_ids, const std::string &decoy_string, bool decoy_is_prefix, double protein_fdr)
Finalize protein-level FDR on a COMPLETE protein set (a single input file, or a merged cross-file agg...
Param fragmentIndexParameters_(bool electron_ions=false) const
ProSE parameters made safe to hand to a FragmentIndex.
OpenSearchModificationAnalysis::OpenSearchAnalysisResult modification_analysis
Definition ProSEAlgorithm.h:147
ExitCodes search(const std::string &in_spectra, const std::string &in_db, std::vector< ProteinIdentification > &prot_ids, PeptideIdentificationList &pep_ids) const
Search spectra in a spectrum file (mzML or Bruker .d) against a protein database using an FI-backed w...
std::vector< FASTAFile::FASTAEntry > db
Definition ProSEAlgorithm.h:213
static bool accessionHasDecoyMarker_(const std::string &accession, const std::string &marker, bool is_prefix)
static void renderRunSummary(const RunStatistics &stats, const SharedSearchStats &shared, const OpenSearchModificationAnalysis::OpenSearchAnalysisResult &mod_analysis, bool is_open_search, std::ostream &os)
ExitCodes search(PeakMap &spectra, SearchContext &ctx, std::vector< ProteinIdentification > &prot_ids, PeptideIdentificationList &pep_ids) const
In-memory search using a pre-built SearchContext.
SharedSearchStats shared
Definition ProSEAlgorithm.h:200
bool isOpenSearchMode_() const
Helper function to determine if open search should be used based on tolerance.
Definition ProSEAlgorithm.h:1014
ExitCodes searchChunked_(PeakMap &spectra, std::vector< FASTAFile::FASTAEntry > &full_db, const DecoyStrategy_ &strategy, std::vector< ProteinIdentification > &protein_ids, PeptideIdentificationList &peptide_ids) const
Chunked database search implementation.
std::string decoy_string
Definition ProSEAlgorithm.h:192
DecoyStrategy_ resolveDecoyStrategy_(const std::vector< FASTAFile::FASTAEntry > &db) const
Decide how to obtain/recognise decoys for db.
Size countElectronActivated_(const PeakMap &spectra) const
Number of spectra that ions:by_activation also scores with c and z+1 ions (0 if it is off)
std::vector< FASTAFile::FASTAEntry > buildCalibrationSample_(const std::vector< FASTAFile::FASTAEntry > &full_db) const
Build a strided protein sample for chunked calibration.
static bool isElectronActivated_(const MSSpectrum &spectrum)
True if the precursor of spectrum was activated by electrons (ETD, ECD, EThcD or ETciD)
std::string decoy_mode
"generated" | "external" | "none (target-only)"
Definition ProSEAlgorithm.h:123
PeptideIdentificationList peptide_ids
Definition ProSEAlgorithm.h:146
std::string enzyme
Definition ProSEAlgorithm.h:111
void updateMembers_() override
This method is used to update extra member variables at the end of the setParameters() method.
void scoreSpectraAgainstIndex_(const PeakMap &spectra, FragmentIndex &fi, const std::vector< FASTAFile::FASTAEntry > &db, const SpectrumGenerators_ &generators, double effective_fragment_tol, bool fragment_mass_tolerance_unit_ppm, bool open_search_mode, std::vector< std::vector< AnnotatedHit_ > > &annotated_hits, std::vector< CandidatePoolStats_ > &pool_stats, const std::string &progress_label) const
Score all spectra against one FragmentIndex.
ExitCodes
Exit codes.
Definition ProSEAlgorithm.h:57
void postProcessHits_(const PeakMap &exp, std::vector< std::vector< ProSEAlgorithm::AnnotatedHit_ > > &annotated_hits, const std::vector< CandidatePoolStats_ > &pool_stats, std::vector< ProteinIdentification > &protein_ids, PeptideIdentificationList &peptide_ids, Size top_hits, const StringList &modifications_fixed, const StringList &modifications_variable, Int peptide_missed_cleavages, double precursor_mass_tolerance, double fragment_mass_tolerance, const std::string &precursor_mass_tolerance_unit_ppm, const std::string &fragment_mass_tolerance_unit_ppm, const Int precursor_min_charge, const Int precursor_max_charge, const std::string &enzyme, const std::string &database_name) const
Filter and annotate search results.
StringList modifications_variable_
Definition ProSEAlgorithm.h:829
static double maxRetainedScore_(const PeptideIdentificationList &peptide_ids)
std::vector< SearchResult > per_file
Definition ProSEAlgorithm.h:186
double fragment_mass_tolerance_
Definition ProSEAlgorithm.h:814
SearchContext prepareContext(const std::vector< FASTAFile::FASTAEntry > &fasta_db) const
Build a SearchContext (decoy-augmented database + FragmentIndex) for reuse.
SearchContext prepareContext(const std::vector< FASTAFile::FASTAEntry > &fasta_db, bool electron_ions) const
Build a SearchContext whose FragmentIndex also holds c and z+1 ions.
Size peptide_missed_cleavages_
Definition ProSEAlgorithm.h:845
CalibrationResult_ last_calibration_result_
Definition ProSEAlgorithm.h:889
double computeModMatchTolerance_() const
Definition ProSEAlgorithm.h:917
void collectRunStatistics_(const PeakMap &spectra, const std::vector< ProteinIdentification > &protein_ids, const PeptideIdentificationList &peptide_ids, RunStatistics &stats) const
std::vector< std::string > fixed_mods
Definition ProSEAlgorithm.h:118
std::string precursor_tol_unit
Definition ProSEAlgorithm.h:113
DecoyMode_
How decoys are obtained/recognised for a search (parameter "decoys").
Definition ProSEAlgorithm.h:614
Result of a calibration pass.
Definition ProSEAlgorithm.h:875
Resolved decoy handling for one concrete input database.
Definition ProSEAlgorithm.h:628
Multi-file search result bundle.
Definition ProSEAlgorithm.h:185
Per-run identification statistics for the end-of-search report.
Definition ProSEAlgorithm.h:75
Prepared per-database state shared across multiple spectrum files.
Definition ProSEAlgorithm.h:212
Comprehensive search result including modification analysis.
Definition ProSEAlgorithm.h:143
Configuration, database and fragment-index facts shared across all input files of one ProSE invocatio...
Definition ProSEAlgorithm.h:109
Base class for all classes that want to report their progress.
Definition ProgressLogger.h:27
int Int
Signed integer type.
Definition Types.h:72
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
std::vector< Int > IntList
Vector of signed integers.
Definition TypeAliases.h:24
std::vector< std::string > StringList
Vector of String.
Definition TypeAliases.h:39
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
Slimmer structure as storing all scored candidates in PeptideHit objects takes too much space.
Definition ProSEAlgorithm.h:515
static bool hasBetterScore(const AnnotatedHit_ &a, const AnnotatedHit_ &b)
Definition ProSEAlgorithm.h:532
double score
main score
Definition ProSEAlgorithm.h:522
AASequence sequence
Definition ProSEAlgorithm.h:516
Running summary of the complete candidate pool of one spectrum.
Definition ProSEAlgorithm.h:556
void add(double score)
Fold one freshly scored candidate into the summary.
Definition ProSEAlgorithm.h:564
double deltaScore() const
Best minus runner-up over the full pool.
Definition ProSEAlgorithm.h:574
double zScore() const
How much of an outlier the best score is within its own candidate pool.