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 159 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 161 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 160 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 177 of file peakpickerqtof.hpp.

185  : resolution_(resolution),c2d_( c2d ),smoothwith_(width),
187  intensitythreshold_(intensitythreshold),area_(area),maxnumbersofpeaks_(maxnumberofpeaks)
188  {
189  c2d_.defBreak(massrange,ralab::base::resample::resolution2ppm(resolution));
191  ralab::base::filter::getGaussianFilterQuantile(filter_,width);
192  }
std::vector< TReal > resampledmz_
std::vector< TReal > filter_
ralab::base::resample::Convert2Dense c2d_
ralab::base::resample::SamplingWith sw_
std::size_t defBreak(std::pair< double, double > &mzrange, double ppm)
computes split points of an map.
void getMids(std::vector< double > &mids)

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 261 of file peakpickerqtof.hpp.

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

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 248 of file peakpickerqtof.hpp.

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

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 275 of file peakpickerqtof.hpp.

275  {
276  return peakarea_;
277  }

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 271 of file peakpickerqtof.hpp.

271  {
272  return peakmass_;
273  }

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 283 of file peakpickerqtof.hpp.

283  {
284  return resampledintensity_;
285  }
std::vector< TReal > resampledintensity_

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 279 of file peakpickerqtof.hpp.

279  {
280  return resampledmz_;
281  }

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 287 of file peakpickerqtof.hpp.

287  {
288  return smoothedintensity_;
289  }
std::vector< TReal > smoothedintensity_

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 196 of file peakpickerqtof.hpp.

197  {
198  // get the first position of the peak begining (intensity > 0.1)
199  typename std::iterator_traits<Tintensity>::value_type minint = *std::upper_bound(begint,begint+std::distance(begmz,endmz),0.1);
200 
201  //determine sampling with
202  double a = sw_(begmz,endmz);
203 
204  //resmpale the spectrum
205  c2d_.am_ = a;
206  c2d_.convert2dense(begmz,endmz, begint, resampledintensity_);
207 
208  //smooth the resampled spectrum
209  ralab::base::filter::filter(resampledintensity_, filter_, smoothedintensity_, true);
210  //determine zero crossings
211  zerocross_.resize( smoothedintensity_.size()/2 );
212  size_t nrzerocross = simplepicker_( smoothedintensity_.begin( ), smoothedintensity_.end(), zerocross_.begin(), zerocross_.size());
213 
214  peakmass_.resize(nrzerocross);
215  //determine mass of zerocrossing
216  ralab::base::base::interpolate_linear( resampledmz_.begin(), resampledmz_.end(),
217  zerocross_.begin(), zerocross_.begin()+nrzerocross,
218  peakmass_.begin());
219 
220  //determine peak area
221  if(area_) {
222  peakarea_.resize(nrzerocross);
223  integrator_( zerocross_.begin(), zerocross_.begin() + nrzerocross,
224  smoothedintensity_.begin(),resampledintensity_.begin(), peakarea_.begin() );
225  } else {
226  //determine intensity
227  peakarea_.resize(nrzerocross);
228  ralab::base::base::interpolate_cubic( smoothedintensity_.begin(), smoothedintensity_.end(),
229  zerocross_.begin(), zerocross_.begin()+nrzerocross,
230  peakarea_.begin());
231  }
232 
233  TReal threshold = static_cast<TReal>(minint) * intensitythreshold_;
234 
235  if(maxnumbersofpeaks_ > 0) {
236  double threshmax = getNToppeaks();
237  if(threshmax > threshold)
238  threshold = threshmax;
239  }
240 
241 
242  if(threshold > 0.01) {
243  filter(threshold);
244  }
245  }
TReal getNToppeaks()
get min instensity of peak to qualify for max-intensity;
ralab::base::ms::SimplePicker< TReal > simplepicker_
void filter(TReal threshold)
clean the masses using the threshold
std::vector< TReal > zerocross_
void convert2dense(Tmass beginMass, Tmass endMass, Tintens intens, Tout ass)
Converts a sparse spec to a dense spec.

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 169 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 163 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 168 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: