libpappsomspp
Library for mass spectrometry
ralab::base::resample::Convert2Dense Struct Reference

#include <convert2dense.hpp>

Public Member Functions

 Convert2Dense (double am[[maybe_unused]]=0.1)
 
std::size_t defBreak (std::pair< double, double > &mzrange, double ppm)
 computes split points of an map. More...
 
template<typename Tmass , typename Tintens , typename Tout >
void convert2dense (Tmass beginMass, Tmass endMass, Tintens intens, Tout ass)
 Converts a sparse spec to a dense spec. More...
 
void getMids (std::vector< double > &mids)
 
template<typename Tmass , typename Tintens >
void convert2dense (Tmass beginMass, Tmass endMass, Tintens intens, std::vector< typename std::iterator_traits< Tintens >::value_type > &gg)
 Converts a sparse spec to a dense spec. More...
 

Public Attributes

ralab::base::resample::Bin1D bin_
 
std::vector< int32_t > idx_
 
std::vector< double > weight_
 
double am_
 

Detailed Description

Definition at line 44 of file convert2dense.hpp.

Constructor & Destructor Documentation

◆ Convert2Dense()

ralab::base::resample::Convert2Dense::Convert2Dense ( double am]  [[maybe_unused] = 0.1)
inline

Definition at line 50 of file convert2dense.hpp.

50  : bin_(), idx_(), weight_(), am_()
51  {
52  }
ralab::base::resample::Bin1D bin_

Member Function Documentation

◆ convert2dense() [1/2]

template<typename Tmass , typename Tintens >
void ralab::base::resample::Convert2Dense::convert2dense ( Tmass  beginMass,
Tmass  endMass,
Tintens  intens,
std::vector< typename std::iterator_traits< Tintens >::value_type > &  gg 
)
inline

Converts a sparse spec to a dense spec.

Definition at line 130 of file convert2dense.hpp.

135  {
136  gg.resize(bin_.breaks_.size() - 1);
137  convert2dense(beginMass, endMass, intens, gg.begin());
138  }
void convert2dense(Tmass beginMass, Tmass endMass, Tintens intens, Tout ass)
Converts a sparse spec to a dense spec.

References bin_, and convert2dense().

◆ convert2dense() [2/2]

template<typename Tmass , typename Tintens , typename Tout >
void ralab::base::resample::Convert2Dense::convert2dense ( Tmass  beginMass,
Tmass  endMass,
Tintens  intens,
Tout  ass 
)
inline

Converts a sparse spec to a dense spec.

Definition at line 69 of file convert2dense.hpp.

70  {
71  for(; beginMass != (endMass - 1); ++beginMass, ++intens)
72  {
73  double mass1 = *beginMass;
74  double mass2 = *(beginMass + 1);
75  double predmass2 = mass1 + (am_ * sqrt(mass1)) * 1.01;
76 
77  if(mass2 > predmass2)
78  {
79  mass2 = predmass2;
80  }
81 
82  double deltamass = mass2 - mass1;
83  double deltamasshalf;
84  if(true)
85  {
86  deltamasshalf = deltamass / 2.;
87  }
88  else
89  {
90  deltamasshalf = deltamass;
91  }
92 
93  bin_(mass1 - deltamasshalf, mass2 - deltamasshalf, idx_, weight_);
94 
95  double intensd = static_cast<double>(*intens);
96  double sum = std::accumulate(weight_.begin(), weight_.end(), 0.);
97 
98  if(fabs(deltamass - sum) > 1e-11)
99  {
100  // BOOST_ASSERT(fabs(deltamass- sum) < 1e-11);
102  QObject::tr("ERROR pwiz convert2dense :\n "
103  "BOOST_ASSERT(fabs(deltamass- sum) < 1e-11)"));
104  }
105 
106  double check = 0.;
107  for(std::size_t i = 0; i < idx_.size(); ++i)
108  {
109  if((idx_[i] >= 0) &
110  (idx_[i] < static_cast<int32_t>(bin_.breaks_.size() - 1)))
111  {
112  double bb = intensd * weight_[i] / deltamass;
113  *(ass + idx_[i]) += bb;
114  check += bb;
115  }
116  }
117  // BOOST_ASSERT( fabs(check - intensd) < 1e-3 );
118  }
119  } // convert2dense
@ sum
sum of intensities

References am_, bin_, idx_, and weight_.

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

◆ defBreak()

std::size_t ralab::base::resample::Convert2Dense::defBreak ( std::pair< double, double > &  mzrange,
double  ppm 
)
inline

computes split points of an map.

Definition at line 56 of file convert2dense.hpp.

57  {
58  ralab::base::resample::PPMCompFunctor<double> ppmf(ppm);
59  qDebug() << ppm << ppmf.ppm_ << ppmf.window_;
60  ralab::base::resample::breaks(
61  mzrange.first - 1., mzrange.second + 1., ppmf, bin_.breaks_);
62  bin_.reset();
63  return bin_.breaks_.size();
64  }

References bin_.

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

◆ getMids()

void ralab::base::resample::Convert2Dense::getMids ( std::vector< double > &  mids)
inline

Definition at line 122 of file convert2dense.hpp.

123  {
124  ralab::base::resample::getMids(bin_.breaks_, mids);
125  }

References bin_.

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

Member Data Documentation

◆ am_

double ralab::base::resample::Convert2Dense::am_

◆ bin_

ralab::base::resample::Bin1D ralab::base::resample::Convert2Dense::bin_

Definition at line 46 of file convert2dense.hpp.

Referenced by convert2dense(), defBreak(), and getMids().

◆ idx_

std::vector<int32_t> ralab::base::resample::Convert2Dense::idx_

Definition at line 47 of file convert2dense.hpp.

Referenced by convert2dense().

◆ weight_

std::vector<double> ralab::base::resample::Convert2Dense::weight_

Definition at line 48 of file convert2dense.hpp.

Referenced by convert2dense().


The documentation for this struct was generated from the following file: