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.
void sortX(SortOrder sort_order=SortOrder::ascending)
excetion to use when an item type is not recognized (file format, object type...)
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)