Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef OPENMS_ANALYSIS_OPENSWATH_DIASCORING_H
00036 #define OPENMS_ANALYSIS_OPENSWATH_DIASCORING_H
00037
00038 #include <boost/math/special_functions/fpclassify.hpp>
00039 #include <OpenMS/CHEMISTRY/AASequence.h>
00040 #include <OpenMS/DATASTRUCTURES/DefaultParamHandler.h>
00041
00042 #include <OpenMS/ANALYSIS/OPENSWATH/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h>
00043 #include <OpenMS/ANALYSIS/OPENSWATH/OPENSWATHALGO/DATAACCESS/DataStructures.h>
00044 #include <OpenMS/ANALYSIS/OPENSWATH/OPENSWATHALGO/DATAACCESS/ITransition.h>
00045 #include <OpenMS/ANALYSIS/OPENSWATH/OPENSWATHALGO/DATAACCESS/TransitionExperiment.h>
00046
00047 namespace OpenMS
00048 {
00076 class OPENMS_DLLAPI DIAScoring :
00077 public DefaultParamHandler
00078 {
00080
00081
00082 typedef OpenSwath::SpectrumPtr SpectrumType;
00084 typedef OpenSwath::LightTransition TransitionType;
00085 typedef OpenSwath::LightPeptide PeptideType;
00086 typedef OpenSwath::LightProtein ProteinType;
00088
00089 public:
00090
00092
00093
00094 DIAScoring();
00095
00097 virtual ~DIAScoring() {}
00099
00101
00102
00103 void set_dia_parameters(double dia_extract_window, double dia_centroided,
00104 double dia_byseries_intensity_min, double dia_byseries_ppm_diff, double dia_nr_isotopes, double dia_nr_charges);
00106
00108
00109
00111
00112
00113 void dia_isotope_scores(const std::vector<TransitionType>& transitions,
00114 SpectrumType spectrum, OpenSwath::IMRMFeature* mrmfeature, double& isotope_corr,
00115 double& isotope_overlap);
00116
00118 void dia_massdiff_score(const std::vector<TransitionType>& transitions,
00119 SpectrumType spectrum, const std::vector<double>& normalized_library_intensity,
00120 double& ppm_score, double& ppm_score_weighted);
00121
00123 void dia_by_ion_score(SpectrumType spectrum, AASequence& sequence,
00124 int charge, double& bseries_score, double& yseries_score);
00125
00127 void score_with_isotopes(SpectrumType spectrum, const std::vector<TransitionType>& transitions,
00128 double& dotprod, double& manhattan);
00130
00131 private:
00132
00134 DIAScoring(const DIAScoring& rhs);
00135
00137 DIAScoring& operator=(const DIAScoring& rhs);
00138
00140 void updateMembers_();
00141
00143 void diaIsotopeScoresSub_(const std::vector<TransitionType>& transitions,
00144 SpectrumType spectrum, std::map<std::string, double>& intensities,
00145 double& isotope_corr, double& isotope_overlap);
00146
00149 void getFirstIsotopeRelativeIntensities_(const std::vector<TransitionType>& transitions,
00150 OpenSwath::IMRMFeature* mrmfeature,
00151 std::map<std::string, double>& intensities
00152 );
00153
00154 private:
00155
00163 DoubleReal largePeaksBeforeFirstIsotope_(double product_mz,
00164 SpectrumType& spectrum, double max_ppm_diff, double main_peak);
00165
00172 DoubleReal scoreIsotopePattern_(double product_mz,
00173 const std::vector<double>& isotopes_int, int putative_fragment_charge);
00174
00175
00176 double dia_extract_window_;
00177 double dia_centroided_;
00178 double dia_byseries_intensity_min_;
00179 double dia_byseries_ppm_diff_;
00180 double dia_nr_isotopes_;
00181 double dia_nr_charges_;
00182
00183 };
00184 }
00185
00186 #endif