94 typedef std::vector<double> ContainerT;
98 bool found_signal =
false;
99 const Size data_size = spectrum.size();
100 ContainerT mz_in(data_size), int_in(data_size), mz_out(data_size), int_out(data_size);
103 for (
Size p = 0; p < spectrum.size(); ++p)
105 mz_in[p] = spectrum[p].getMZ();
106 int_in[p] = static_cast<double>(spectrum[p].getIntensity());
110 ContainerT::iterator mz_out_it = mz_out.begin();
111 ContainerT::iterator int_out_it = int_out.begin();
112 found_signal = gauss_algo_.filter(mz_in.begin(), mz_in.end(), int_in.begin(), mz_out_it, int_out_it);
116 if (!found_signal && spectrum.size() >= 3)
118 String error_message =
"Found no signal. The Gaussian width is probably smaller than the spacing in your profile data. Try to use a bigger width.";
119 if (spectrum.
getRT() > 0.0)
121 error_message +=
String(
" The error occurred in the spectrum with retention time ") + spectrum.
getRT() +
".";
128 ContainerT::iterator mz_it = mz_out.begin();
129 ContainerT::iterator int_it = int_out.begin();
130 for (
Size p = 0; mz_it != mz_out.end(); mz_it++, int_it++, p++)
132 spectrum[p].setIntensity(*int_it);
133 spectrum[p].setMZ(*mz_it);
140 typedef std::vector<double> ContainerT;
142 if (param_.getValue(
"use_ppm_tolerance").toBool())
145 "GaussFilter: Cannot use ppm tolerance on chromatograms");
148 bool found_signal =
false;
149 const Size data_size = chromatogram.size();
150 ContainerT rt_in(data_size), int_in(data_size), rt_out(data_size), int_out(data_size);
153 for (
Size p = 0; p < chromatogram.size(); ++p)
155 rt_in[p] = chromatogram[p].getRT();
156 int_in[p] = chromatogram[p].getIntensity();
160 ContainerT::iterator mz_out_it = rt_out.begin();
161 ContainerT::iterator int_out_it = int_out.begin();
162 found_signal = gauss_algo_.filter(rt_in.begin(), rt_in.end(), int_in.begin(), mz_out_it, int_out_it);
166 if (!found_signal && chromatogram.size() >= 3)
168 String error_message =
"Found no signal. The Gaussian width is probably smaller than the spacing in your chromatogram data. Try to use a bigger width.";
169 if (chromatogram.
getMZ() > 0.0)
171 error_message +=
String(
" The error occurred in the chromatogram with m/z time ") + chromatogram.
getMZ() +
".";
178 ContainerT::iterator mz_it = rt_out.begin();
179 ContainerT::iterator int_it = int_out.begin();
180 for (
Size p = 0; mz_it != rt_out.end(); mz_it++, int_it++, p++)
182 chromatogram[p].setIntensity(*int_it);
183 chromatogram[p].setMZ(*mz_it);
197 for (
Size i = 0; i < map.
size(); ++i)
200 setProgress(++progress);
205 setProgress(++progress);
218 void updateMembers_()
override;