29 #include "../../exception/exceptionnotrecognized.h"
35 : m_targetMzSum(target_mz), m_precisionPtr(precision_ptr)
41 : m_targetMzSum(other.m_targetMzSum), m_precisionPtr(other.m_precisionPtr)
48 : m_targetMzSum(((qmass_spectrum.getPrecursorMz() -
49 (qmass_spectrum.getPrecursorCharge() *
MHPLUS /
50 qmass_spectrum.getPrecursorCharge())) *
51 qmass_spectrum.getPrecursorCharge() +
53 m_precisionPtr(precision_ptr)
58 const QString &strBuildParams)
60 buildFilterFromString(strBuildParams);
65 const QString &strBuildParams)
68 if(strBuildParams.startsWith(
"complementIonEnhancer|"))
70 QStringList params = strBuildParams.split(
"|").back().split(
";");
72 m_targetMzSum = params.at(0).toDouble();
73 QString precision = params.at(1);
76 .replace(
"ppm",
" ppm")
77 .replace(
"res",
" res"));
83 "building FilterComplementIonEnhancer from string %1 is not possible")
84 .arg(strBuildParams));
92 return "complementIonEnhancer";
99 QString strCode = QString(
"%1|%2;%3")
101 .arg(QString::number(m_targetMzSum,
'g', 15))
102 .arg(m_precisionPtr->toString());
103 strCode.replace(
" ",
"");
116 auto it_end = data_points.end();
117 std::sort(data_points.begin(),
121 for(
auto it = data_points.begin(); it != it_end; it++)
123 double mz_complement = m_targetMzSum - it->x;
124 if(mz_complement > 0)
126 MzRange mz_range(mz_complement, m_precisionPtr);
127 enhanceComplementMassInRange(
128 it->y, mz_range.
lower(), mz_range.
upper(), it, it_end);
139 double new_intensity,
140 double mz_lower_bound,
141 double mz_upper_bound,
142 std::vector<DataPoint>::iterator it_begin,
143 std::vector<DataPoint>::iterator it_end)
const
145 for(std::vector<DataPoint>::iterator it = it_begin; it != it_end; it++)
147 if((it->x >= mz_lower_bound) && (it->x <= mz_upper_bound))
149 if(it->y < new_intensity)
151 it->y = new_intensity;
excetion to use when an item type is not recognized
try to detect complementary ions and assign maximum intensity of both elements
void buildFilterFromString(const QString &strBuildParams) override
build this filter using a string
virtual ~FilterComplementIonEnhancer()
QString toString() const override
Trace & filter(Trace &data_points) const override
FilterComplementIonEnhancer(double target_mz, PrecisionPtr precision_ptr)
QString name() const override
void enhanceComplementMassInRange(double new_intensity, double mz_lower_bound, double mz_upper_bound, std::vector< DataPoint >::iterator it_begin, std::vector< DataPoint >::iterator it_end) const
pappso_double lower() const
pappso_double upper() const
static PrecisionPtr fromString(const QString &str)
get a precision pointer from a string
Class representing a fully specified mass spectrum.
A simple container of DataPoint instances.
enhance ion intensity of ion fragment complement
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
const pappso_double MHPLUS(1.007276466879)