libpappsomspp
Library for mass spectrometry
ralab::base::ms::PeakPicker< TReal, TIntegrator > Struct Template Reference

#include <peakpickerqtof.hpp>

Public Types

typedef TReal value_type
 
typedef TIntegrator< value_typePeakIntegrator
 

Public Member Functions

 PeakPicker (TReal resolution, std::pair< TReal, TReal > &massrange, TReal width=2., TReal intwidth=2., TReal intensitythreshold=10., bool area=true, uint32_t maxnumberofpeaks=0, double c2d=1e-5)
 
template<typename Tmass , typename Tintensity >
void operator() (Tmass begmz, Tmass endmz, Tintensity begint)
 
TReal getNToppeaks ()
 get min instensity of peak to qualify for max-intensity; More...
 
void filter (TReal threshold)
 clean the masses using the threshold More...
 
const std::vector< TReal > & getPeakMass ()
 
const std::vector< TReal > & getPeakArea ()
 
const std::vector< TReal > & getResampledMZ ()
 
const std::vector< TReal > & getResampledIntensity ()
 
const std::vector< TReal > & getSmoothedIntensity ()
 

Public Attributes

TReal resolution_
 
ralab::base::resample::Convert2Dense c2d_
 
std::vector< TReal > resampledmz_
 
std::vector< TReal > resampledintensity_
 
std::vector< TReal > filter_
 
std::vector< TReal > zerocross_
 
std::vector< TReal > smoothedintensity_
 
std::vector< TReal > peakmass_
 
std::vector< TReal > peakarea_
 
TReal smoothwith_
 
TReal integrationWidth_
 
ralab::base::ms::SimplePicker< TReal > simplepicker_
 
ralab::base::resample::SamplingWith sw_
 
PeakIntegrator integrator_
 
TReal intensitythreshold_
 
bool area_
 
uint32_t maxnumbersofpeaks_
 

Detailed Description

template<typename TReal, template< typename B > class TIntegrator>
struct ralab::base::ms::PeakPicker< TReal, TIntegrator >

resamples spectrum, apply smoothing, determines zero crossings, integrates peaks.

Definition at line 158 of file peakpickerqtof.hpp.

Member Typedef Documentation

◆ PeakIntegrator

template<typename TReal , template< typename B > class TIntegrator>
typedef TIntegrator<value_type> ralab::base::ms::PeakPicker< TReal, TIntegrator >::PeakIntegrator

Definition at line 160 of file peakpickerqtof.hpp.

◆ value_type

template<typename TReal , template< typename B > class TIntegrator>
typedef TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::value_type

Definition at line 159 of file peakpickerqtof.hpp.

Constructor & Destructor Documentation

◆ PeakPicker()

template<typename TReal , template< typename B > class TIntegrator>
ralab::base::ms::PeakPicker< TReal, TIntegrator >::PeakPicker ( TReal  resolution,
std::pair< TReal, TReal > &  massrange,
TReal  width = 2.,
TReal  intwidth = 2.,
TReal  intensitythreshold = 10.,
bool  area = true,
uint32_t  maxnumberofpeaks = 0,
double  c2d = 1e-5 
)
inline
Parameters
resolutioninstrument resolution
massrangemass range of spectrum
widthsmooth width
intwidthintegration width used for area compuation
areacompute area or height? default - height.
maxnumberofpeaksmaximum of peaks returned by picker
c2dinstrument resampling with small default dissables automatic determination

Definition at line 176 of file peakpickerqtof.hpp.

184  : resolution_(resolution),c2d_( c2d ),smoothwith_(width),
186  intensitythreshold_(intensitythreshold),area_(area),maxnumbersofpeaks_(maxnumberofpeaks)
187  {
188  c2d_.defBreak(massrange,ralab::base::resample::resolution2ppm(resolution));
190  ralab::base::filter::getGaussianFilterQuantile(filter_,width);
191  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::c2d_, ralab::base::resample::Convert2Dense::defBreak(), ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter_, ralab::base::resample::Convert2Dense::getMids(), and ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledmz_.

Member Function Documentation

◆ filter()

template<typename TReal , template< typename B > class TIntegrator>
void ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter ( TReal  threshold)
inline

clean the masses using the threshold

Definition at line 258 of file peakpickerqtof.hpp.

258  {
259  typename std::vector<TReal>::iterator a = ralab::base::utils::copy_if(peakarea_.begin(),peakarea_.end(),peakmass_.begin(),
260  peakmass_.begin(),boost::bind(std::greater<TReal>(),_1,threshold));
261  peakmass_.resize(std::distance(peakmass_.begin(),a));
262  typename std::vector<TReal>::iterator b = ralab::base::utils::copy_if(peakarea_.begin(),peakarea_.end(),
263  peakarea_.begin(),boost::bind(std::greater<TReal>(),_1,threshold));
264  peakarea_.resize(std::distance(peakarea_.begin(),b));
265  //int x = 1;
266  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakarea_, and ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakmass_.

Referenced by ralab::base::ms::PeakPicker< TReal, TIntegrator >::operator()().

◆ getNToppeaks()

template<typename TReal , template< typename B > class TIntegrator>
TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::getNToppeaks ( )
inline

get min instensity of peak to qualify for max-intensity;

Definition at line 245 of file peakpickerqtof.hpp.

245  {
246  TReal intthres = 0.;
247  if(maxnumbersofpeaks_ < peakarea_.size())
248  {
249  std::vector<TReal> tmparea( peakarea_.begin(), peakarea_.end() );
250  std::nth_element(tmparea.begin(),tmparea.end() - maxnumbersofpeaks_, tmparea.end());
251  intthres = *(tmparea.end() - maxnumbersofpeaks_);
252  }
253  return intthres;
254  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::maxnumbersofpeaks_, and ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakarea_.

Referenced by ralab::base::ms::PeakPicker< TReal, TIntegrator >::operator()().

◆ getPeakArea()

template<typename TReal , template< typename B > class TIntegrator>
const std::vector<TReal>& ralab::base::ms::PeakPicker< TReal, TIntegrator >::getPeakArea ( )
inline

Definition at line 272 of file peakpickerqtof.hpp.

272  {
273  return peakarea_;
274  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakarea_.

Referenced by pappso::FilterPseudoCentroid::filter().

◆ getPeakMass()

template<typename TReal , template< typename B > class TIntegrator>
const std::vector<TReal>& ralab::base::ms::PeakPicker< TReal, TIntegrator >::getPeakMass ( )
inline

Definition at line 268 of file peakpickerqtof.hpp.

268  {
269  return peakmass_;
270  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakmass_.

Referenced by pappso::FilterPseudoCentroid::filter().

◆ getResampledIntensity()

template<typename TReal , template< typename B > class TIntegrator>
const std::vector<TReal>& ralab::base::ms::PeakPicker< TReal, TIntegrator >::getResampledIntensity ( )
inline

Definition at line 280 of file peakpickerqtof.hpp.

280  {
281  return resampledintensity_;
282  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledintensity_.

◆ getResampledMZ()

template<typename TReal , template< typename B > class TIntegrator>
const std::vector<TReal>& ralab::base::ms::PeakPicker< TReal, TIntegrator >::getResampledMZ ( )
inline

Definition at line 276 of file peakpickerqtof.hpp.

276  {
277  return resampledmz_;
278  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledmz_.

◆ getSmoothedIntensity()

template<typename TReal , template< typename B > class TIntegrator>
const std::vector<TReal>& ralab::base::ms::PeakPicker< TReal, TIntegrator >::getSmoothedIntensity ( )
inline

Definition at line 284 of file peakpickerqtof.hpp.

284  {
285  return smoothedintensity_;
286  }

References ralab::base::ms::PeakPicker< TReal, TIntegrator >::smoothedintensity_.

◆ operator()()

template<typename TReal , template< typename B > class TIntegrator>
template<typename Tmass , typename Tintensity >
void ralab::base::ms::PeakPicker< TReal, TIntegrator >::operator() ( Tmass  begmz,
Tmass  endmz,
Tintensity  begint 
)
inline

Definition at line 195 of file peakpickerqtof.hpp.

196  {
197  typename std::iterator_traits<Tintensity>::value_type minint = *std::upper_bound(begint,begint+std::distance(begmz,endmz),0.1);
198 
199  //determine sampling with
200  double a = sw_(begmz,endmz);
201  //resmpale the spectrum
202  c2d_.am_ = a;
203  c2d_.convert2dense(begmz,endmz, begint, resampledintensity_);
204 
205  //smooth the resampled spectrum
206  ralab::base::filter::filter(resampledintensity_, filter_, smoothedintensity_, true);
207  //determine zero crossings
208  zerocross_.resize( smoothedintensity_.size()/2 );
209  size_t nrzerocross = simplepicker_( smoothedintensity_.begin( ), smoothedintensity_.end(), zerocross_.begin(), zerocross_.size());
210 
211  peakmass_.resize(nrzerocross);
212  //determine mass of zerocrossing
213  ralab::base::base::interpolate_linear( resampledmz_.begin(), resampledmz_.end(),
214  zerocross_.begin(), zerocross_.begin()+nrzerocross,
215  peakmass_.begin());
216 
217  //determine peak area
218  if(area_) {
219  peakarea_.resize(nrzerocross);
220  integrator_( zerocross_.begin(), zerocross_.begin() + nrzerocross,
221  smoothedintensity_.begin(),resampledintensity_.begin(), peakarea_.begin() );
222  } else {
223  //determine intensity
224  peakarea_.resize(nrzerocross);
225  ralab::base::base::interpolate_cubic( smoothedintensity_.begin(), smoothedintensity_.end(),
226  zerocross_.begin(), zerocross_.begin()+nrzerocross,
227  peakarea_.begin());
228  }
229 
230  TReal threshold = static_cast<TReal>(minint) * intensitythreshold_;
231 
232  if(maxnumbersofpeaks_ > 0) {
233  double threshmax = getNToppeaks();
234  if(threshmax > threshold)
235  threshold = threshmax;
236  }
237 
238 
239  if(threshold > 0.01) {
240  filter(threshold);
241  }
242  }

References ralab::base::resample::Convert2Dense::am_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::area_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::c2d_, ralab::base::resample::Convert2Dense::convert2dense(), ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter(), ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::getNToppeaks(), ralab::base::ms::PeakPicker< TReal, TIntegrator >::integrator_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::intensitythreshold_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::maxnumbersofpeaks_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakarea_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakmass_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledintensity_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledmz_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::simplepicker_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::smoothedintensity_, ralab::base::ms::PeakPicker< TReal, TIntegrator >::sw_, and ralab::base::ms::PeakPicker< TReal, TIntegrator >::zerocross_.

Member Data Documentation

◆ area_

template<typename TReal , template< typename B > class TIntegrator>
bool ralab::base::ms::PeakPicker< TReal, TIntegrator >::area_

◆ c2d_

template<typename TReal , template< typename B > class TIntegrator>
ralab::base::resample::Convert2Dense ralab::base::ms::PeakPicker< TReal, TIntegrator >::c2d_

◆ filter_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::filter_

◆ integrationWidth_

template<typename TReal , template< typename B > class TIntegrator>
TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::integrationWidth_

Definition at line 168 of file peakpickerqtof.hpp.

◆ integrator_

template<typename TReal , template< typename B > class TIntegrator>
PeakIntegrator ralab::base::ms::PeakPicker< TReal, TIntegrator >::integrator_

◆ intensitythreshold_

template<typename TReal , template< typename B > class TIntegrator>
TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::intensitythreshold_

◆ maxnumbersofpeaks_

template<typename TReal , template< typename B > class TIntegrator>
uint32_t ralab::base::ms::PeakPicker< TReal, TIntegrator >::maxnumbersofpeaks_

◆ peakarea_

◆ peakmass_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::peakmass_

◆ resampledintensity_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledintensity_

◆ resampledmz_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::resampledmz_

◆ resolution_

template<typename TReal , template< typename B > class TIntegrator>
TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::resolution_

Definition at line 162 of file peakpickerqtof.hpp.

◆ simplepicker_

template<typename TReal , template< typename B > class TIntegrator>
ralab::base::ms::SimplePicker<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::simplepicker_

◆ smoothedintensity_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::smoothedintensity_

◆ smoothwith_

template<typename TReal , template< typename B > class TIntegrator>
TReal ralab::base::ms::PeakPicker< TReal, TIntegrator >::smoothwith_

Definition at line 167 of file peakpickerqtof.hpp.

◆ sw_

template<typename TReal , template< typename B > class TIntegrator>
ralab::base::resample::SamplingWith ralab::base::ms::PeakPicker< TReal, TIntegrator >::sw_

◆ zerocross_

template<typename TReal , template< typename B > class TIntegrator>
std::vector<TReal> ralab::base::ms::PeakPicker< TReal, TIntegrator >::zerocross_

The documentation for this struct was generated from the following file:
ralab::base::ms::PeakPicker::smoothwith_
TReal smoothwith_
Definition: peakpickerqtof.hpp:167
ralab::base::ms::PeakPicker::intensitythreshold_
TReal intensitythreshold_
Definition: peakpickerqtof.hpp:172
ralab::base::ms::PeakPicker::filter_
std::vector< TReal > filter_
Definition: peakpickerqtof.hpp:165
ralab::base::resample::Convert2Dense::defBreak
std::size_t defBreak(std::pair< double, double > &mzrange, double ppm)
computes split points of an map.
Definition: convert2dense.hpp:56
ralab::base::ms::PeakPicker::smoothedintensity_
std::vector< TReal > smoothedintensity_
Definition: peakpickerqtof.hpp:165
ralab::base::ms::PeakPicker::resolution_
TReal resolution_
Definition: peakpickerqtof.hpp:162
ralab::base::ms::PeakPicker::maxnumbersofpeaks_
uint32_t maxnumbersofpeaks_
Definition: peakpickerqtof.hpp:174
pappso::PeptideIonNter::a
@ a
ralab::base::resample::Convert2Dense::convert2dense
void convert2dense(Tmass beginMass, Tmass endMass, Tintens intens, Tout ass)
Converts a sparse spec to a dense spec.
Definition: convert2dense.hpp:68
ralab::base::ms::PeakPicker::peakarea_
std::vector< TReal > peakarea_
Definition: peakpickerqtof.hpp:166
ralab::base::ms::PeakPicker::resampledmz_
std::vector< TReal > resampledmz_
Definition: peakpickerqtof.hpp:164
ralab::base::ms::PeakPicker::c2d_
ralab::base::resample::Convert2Dense c2d_
Definition: peakpickerqtof.hpp:163
ralab::base::ms::PeakPicker::filter
void filter(TReal threshold)
clean the masses using the threshold
Definition: peakpickerqtof.hpp:258
ralab::base::ms::PeakPicker::getNToppeaks
TReal getNToppeaks()
get min instensity of peak to qualify for max-intensity;
Definition: peakpickerqtof.hpp:245
ralab::base::ms::PeakPicker::integrator_
PeakIntegrator integrator_
Definition: peakpickerqtof.hpp:171
ralab::base::resample::Convert2Dense::getMids
void getMids(std::vector< double > &mids)
Definition: convert2dense.hpp:120
ralab::base::ms::PeakPicker::peakmass_
std::vector< TReal > peakmass_
Definition: peakpickerqtof.hpp:166
ralab::base::ms::PeakPicker::area_
bool area_
Definition: peakpickerqtof.hpp:173
pappso::PeptideIonNter::b
@ b
ralab::base::ms::PeakPicker::simplepicker_
ralab::base::ms::SimplePicker< TReal > simplepicker_
Definition: peakpickerqtof.hpp:169
ralab::base::ms::PeakPicker::integrationWidth_
TReal integrationWidth_
Definition: peakpickerqtof.hpp:168
ralab::base::ms::PeakPicker::zerocross_
std::vector< TReal > zerocross_
Definition: peakpickerqtof.hpp:165
ralab::base::resample::Convert2Dense::am_
double am_
Definition: convert2dense.hpp:49
ralab::base::ms::PeakPicker::sw_
ralab::base::resample::SamplingWith sw_
Definition: peakpickerqtof.hpp:170
ralab::base::ms::PeakPicker::resampledintensity_
std::vector< TReal > resampledintensity_
Definition: peakpickerqtof.hpp:164