35 : m_targetMzSum(target_mz), m_precisionPtr(precision_ptr)
40 : m_targetMzSum(other.m_targetMzSum), m_precisionPtr(other.m_precisionPtr)
47 ((qmass_spectrum.getPrecursorMz() -
48 (qmass_spectrum.getPrecursorCharge() *
MHPLUS / qmass_spectrum.getPrecursorCharge())) *
49 qmass_spectrum.getPrecursorCharge() +
51 m_precisionPtr(precision_ptr)
57 buildFilterFromString(strBuildParams);
64 if(strBuildParams.startsWith(
"complementIonEnhancer|"))
66 QStringList params = strBuildParams.split(
"|").back().split(
";");
68 m_targetMzSum = params.at(0).toDouble();
69 QString precision = params.at(1);
71 precision.replace(
"dalton",
" dalton").replace(
"ppm",
" ppm").replace(
"res",
" res"));
76 QString(
"building FilterComplementIonEnhancer from string %1 is not possible")
77 .arg(strBuildParams));
85 return "complementIonEnhancer";
92 QString strCode = QString(
"%1|%2;%3")
94 .arg(QString::number(m_targetMzSum,
'g', 15))
95 .arg(m_precisionPtr->toString());
96 strCode.replace(
" ",
"");
109 auto it_end = data_points.end();
114 for(
auto it = data_points.begin(); it != it_end; it++)
116 double mz_complement = m_targetMzSum - it->x;
117 if(mz_complement > 0)
119 MzRange mz_range(mz_complement, m_precisionPtr);
120 enhanceComplementMassInRange(it->y, mz_range.
lower(), mz_range.
upper(), it, it_end);
131 double new_intensity,
132 double mz_lower_bound,
133 double mz_upper_bound,
134 std::vector<DataPoint>::iterator it_begin,
135 std::vector<DataPoint>::iterator it_end)
const
137 for(std::vector<DataPoint>::iterator it = it_begin; it != it_end; it++)
139 if((it->x >= mz_lower_bound) && (it->x <= mz_upper_bound))
141 if(it->y < new_intensity)
143 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.
void sortX(Enums::SortOrder sort_order=Enums::SortOrder::ascending)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
const pappso_double MHPLUS(1.007276466879)