29#include "../peptideisotopespectrummatch.h"
30#include "../../trace/linearregression.h"
34IonIsotopeRatioScore::IonIsotopeRatioScore(
const MassSpectrum &spectrum,
36 unsigned int parent_charge,
38 std::vector<PeptideIon> ion_vector)
40 std::list<PeptideIon> ion_list(ion_vector.begin(), ion_vector.end());
42 spectrum, peptide_sp, parent_charge, precision, ion_list, 1, 1);
48 std::vector<double> mono_th_intensities(peptide_sp.get()->size(), 0);
49 std::vector<double> isotope_th_intensities(peptide_sp.get()->size(), 0);
51 std::vector<double> mono_exp_intensities(peptide_sp.get()->size(), 0);
52 std::vector<double> isotope_exp_intensities(peptide_sp.get()->size(), 0);
56 if(peak_ion_match.getPeptideIonType() == ion_type)
58 std::size_t vector_position =
59 peak_ion_match.getPeptideFragmentIonSp().get()->size() - 1;
61 peak_ion_match.getPeptideNaturalIsotopeAverageSp();
62 if(iso_average_sp.get()->getIsotopeNumber() == 0)
64 mono_th_intensities[vector_position] =
65 iso_average_sp.get()->getIntensityRatio();
66 mono_exp_intensities[vector_position] =
67 peak_ion_match.getPeak().y;
69 else if(iso_average_sp.get()->getIsotopeNumber() == 1)
71 isotope_th_intensities[vector_position] =
72 iso_average_sp.get()->getIntensityRatio();
73 isotope_exp_intensities[vector_position] =
74 peak_ion_match.getPeak().y;
79 for(std::size_t i = 0; i < mono_th_intensities.size(); i++)
81 if((mono_th_intensities[i] != 0) && (isotope_th_intensities[i] != 0))
83 DataPoint xy(mono_th_intensities[i] / isotope_th_intensities[i],
84 mono_exp_intensities[i] /
85 isotope_exp_intensities[i]);
86 scaterplot.push_back(
xy);
pappso::pappso_double getIonIsotopeRatioScore() const
pappso::pappso_double m_ionIsotopeRatioScore
virtual ~IonIsotopeRatioScore()
double getCoefficientOfDetermination() const
get Coefficient of determination (R2)
Class to represent a mass spectrum.
const std::list< PeakIonIsotopeMatch > & getPeakIonIsotopeMatchList() const
A simple container of DataPoint instances.
void sortX(SortOrder sort_order=SortOrder::ascending)
psm score computed using ion isotopes
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
PeptideIon
PeptideIon enum defines all types of ions (Nter or Cter)
std::shared_ptr< const Peptide > PeptideSp
double pappso_double
A type definition for doubles.
std::shared_ptr< const PeptideNaturalIsotopeAverage > PeptideNaturalIsotopeAverageSp