libpappsomspp
Library for mass spectrometry
pappso::MsRunXicExtractor Class Reference

#include <msrunxicextractor.h>

Inheritance diagram for pappso::MsRunXicExtractor:
pappso::MsRunXicExtractorInterface pappso::MsRunXicExtractorDisk pappso::MsRunXicExtractorDiskBuffer

Public Member Functions

 MsRunXicExtractor (const MsRunXicExtractor &other)
 
virtual ~MsRunXicExtractor ()
 
virtual XicCstSPtr getXicCstSPtr (const MzRange &mz_range, pappso::pappso_double rt_begin, pappso::pappso_double rt_end) override
 get a XIC on this MsRun at the given mass range More...
 
virtual std::vector< XicCstSPtrgetXicCstSPtrList (const std::vector< MzRange > &mz_range_list) override
 extract a list of XIC given a list of mass to extract More...
 
- Public Member Functions inherited from pappso::MsRunXicExtractorInterface
void setXicExtractMethod (XicExtractMethod method)
 set the XIC extraction method More...
 
virtual XicCstSPtr getXicCstSPtr (const MzRange &mz_range) final
 get a XIC on this MsRun at the given mass range More...
 
const MsRunIdCstSPtrgetMsRunId () const
 

Protected Member Functions

 MsRunXicExtractor (MsRunReaderSPtr &msrun_reader)
 
virtual void getXicFromPwizMSDataFile (std::vector< Xic * > &xic_list, const std::vector< MzRange > &mass_range_list, pappso::pappso_double rt_begin, pappso::pappso_double rt_end)
 
- Protected Member Functions inherited from pappso::MsRunXicExtractorInterface
 MsRunXicExtractorInterface (MsRunReaderSPtr &msrun_reader)
 constructor is private, use the MsRunXicExtractorFactory More...
 
 MsRunXicExtractorInterface (const MsRunXicExtractorInterface &other)
 
virtual ~MsRunXicExtractorInterface ()
 

Protected Attributes

std::vector< MsRunXicExtractorPoints > m_msrun_points
 
- Protected Attributes inherited from pappso::MsRunXicExtractorInterface
MsRunReaderSPtr msp_msrun_reader
 
XicExtractMethod m_xicExtractMethod = XicExtractMethod::max
 

Private Attributes

friend MsRunXicExtractorFactory
 

Detailed Description

Definition at line 41 of file msrunxicextractor.h.

Constructor & Destructor Documentation

◆ MsRunXicExtractor() [1/2]

pappso::MsRunXicExtractor::MsRunXicExtractor ( MsRunReaderSPtr msrun_reader)
protected

Definition at line 61 of file msrunxicextractor.cpp.

66 {
67  m_msrun_points = other.m_msrun_points;
68 }
69 
71 MsRunXicExtractor::getXicCstSPtr(const MzRange &mz_range,
72  pappso::pappso_double rt_begin,
73  pappso::pappso_double rt_end)
74 {
75  FilterResampleKeepXRange keep_range(mz_range.lower(), mz_range.upper());
76  std::shared_ptr<Xic> msrunxic_sp = std::make_shared<Xic>(Xic());
77 
78 
79  auto itpoints = m_msrun_points.begin();

◆ MsRunXicExtractor() [2/2]

pappso::MsRunXicExtractor::MsRunXicExtractor ( const MsRunXicExtractor other)

Definition at line 85 of file msrunxicextractor.cpp.

88  {
89  spectrum =

References pappso::MsRunXicExtractorInterface::msp_msrun_reader.

◆ ~MsRunXicExtractor()

pappso::MsRunXicExtractor::~MsRunXicExtractor ( )
virtual

Definition at line 80 of file msrunxicextractor.cpp.

82  {

Member Function Documentation

◆ getXicCstSPtr()

XicCstSPtr pappso::MsRunXicExtractor::getXicCstSPtr ( const MzRange mz_range,
pappso::pappso_double  rt_begin,
pappso::pappso_double  rt_end 
)
overridevirtual

get a XIC on this MsRun at the given mass range

Parameters
mz_rangemz range to extract
rt_beginbegining of the XIC in seconds
rt_endend of the XIC in seconds

Implements pappso::MsRunXicExtractorInterface.

Reimplemented in pappso::MsRunXicExtractorDisk.

Definition at line 92 of file msrunxicextractor.cpp.

103  {
104  peak.y = 0;
105  if(spectrum->size() > 0)
106  {
107  peak.y = maxYDataPoint(spectrum->begin(), spectrum->end())->y;
108 
109  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
110  << " peak.y=" << peak.y
111  << " spectrum->size()=" << spectrum->size();
112  }
113  }
114  else
115  {
116  peak.y = sumYTrace(spectrum->begin(), spectrum->end(), 0);
117  }
118  msrunxic_sp->push_back(peak);
119 
120  itpoints++;
121  }
122 
123 
124  return (msrunxic_sp);
125 }
126 
127 std::vector<XicCstSPtr>
128 MsRunXicExtractor::getXicCstSPtrList(const std::vector<MzRange> &mz_range_list)
129 {
130 
131  std::vector<std::shared_ptr<Xic>> xic_list_return;
132  std::vector<Xic *> xic_list;
133  for(std::size_t i = 0; i < mz_range_list.size(); i++)
134  {
135  xic_list_return.push_back(std::make_shared<Xic>(Xic()));
136  xic_list.push_back(xic_list_return.back().get());
137  xic_list_return.back().get()->reserve(m_msrun_points.size());
138  }
139  getXicFromPwizMSDataFile(xic_list, mz_range_list, 0, 100000000);
140  std::vector<XicCstSPtr> xic_list_return_b;
141  for(auto &xic : xic_list_return)
142  {
143  xic_list_return_b.push_back(xic);
144  }
145  return xic_list_return_b;
146 }

References pappso::maxYDataPoint(), and pappso::DataPoint::y.

◆ getXicCstSPtrList()

std::vector< XicCstSPtr > pappso::MsRunXicExtractor::getXicCstSPtrList ( const std::vector< MzRange > &  mz_range_list)
overridevirtual

extract a list of XIC given a list of mass to extract

Implements pappso::MsRunXicExtractorInterface.

Reimplemented in pappso::MsRunXicExtractorDisk.

Definition at line 149 of file msrunxicextractor.cpp.

154 {
155  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
156 
157  std::vector<DataPoint> peak_for_mass;
158  for(const MzRange &mass_range : mass_range_list)
159  {
160  peak_for_mass.push_back(DataPoint());
161  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
162  << " mass_range=" << mass_range.getMz();
163  }
164 
165 
166  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
167 

References m_msrun_points.

◆ getXicFromPwizMSDataFile()

void pappso::MsRunXicExtractor::getXicFromPwizMSDataFile ( std::vector< Xic * > &  xic_list,
const std::vector< MzRange > &  mass_range_list,
pappso::pappso_double  rt_begin,
pappso::pappso_double  rt_end 
)
protectedvirtual

Definition at line 170 of file msrunxicextractor.cpp.

171  {
172  itpoints++;
173  }
174 
175  MassSpectrumCstSPtr spectrum;
176  while((itpoints != m_msrun_points.end()) && (itpoints->rt <= rt_end))
177  {
178  spectrum =
179  msp_msrun_reader.get()->massSpectrumCstSPtr(itpoints->spectrum_index);
180 
181  for(DataPoint &peak : peak_for_mass)
182  {
183  peak.x = itpoints->rt;
184  peak.y = 0;
185  }
186 
187 
188  // iterate through the m/z-intensity pairs
189  for(auto &&spectrum_point : *(spectrum.get()))
190  {
191  // qDebug() << "getXicFromPwizMSDataFile it->mz " << it->mz <<
192  // " it->intensity" << it->intensity;
193  for(std::size_t i = 0; i < mass_range_list.size(); i++)
194  {
195  if(mass_range_list[i].contains(spectrum_point.x))
196  {
198  {
199  if(peak_for_mass[i].y < spectrum_point.y)
200  {
201  peak_for_mass[i].y = spectrum_point.y;
202  }
203  }
204  else
205  {
206  peak_for_mass[i].y += spectrum_point.y;
207  }
208  }
209  }
210  }
211 
212  for(std::size_t i = 0; i < mass_range_list.size(); i++)
213  {
214  // qDebug() << "getXicFromPwizMSDataFile push_back " <<
215  // peak_for_mass[i].rt;
216  xic_list[i]->push_back(peak_for_mass[i]);
217  }
218 
219  itpoints++;
220  }
221 
222 
223  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
224 } // namespace pappso
225 
226 
227 } // namespace pappso

Member Data Documentation

◆ m_msrun_points

std::vector<MsRunXicExtractorPoints> pappso::MsRunXicExtractor::m_msrun_points
protected

Definition at line 46 of file msrunxicextractor.h.

Referenced by getXicCstSPtrList().

◆ MsRunXicExtractorFactory

friend pappso::MsRunXicExtractor::MsRunXicExtractorFactory
private

Definition at line 43 of file msrunxicextractor.h.


The documentation for this class was generated from the following files:
pappso::pappso_double
double pappso_double
A type definition for doubles.
Definition: types.h:69
pappso::MassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition: massspectrum.h:76
pappso::sumYTrace
double sumYTrace(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end, double init)
calculate the sum of y value of a trace
Definition: trace.cpp:182
pappso::MsRunXicExtractorInterface::m_xicExtractMethod
XicExtractMethod m_xicExtractMethod
Definition: msrunxicextractorinterface.h:106
pappso::maxYDataPoint
std::vector< DataPoint >::const_iterator maxYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition: trace.cpp:127
pappso::XicCstSPtr
std::shared_ptr< const Xic > XicCstSPtr
Definition: xic.h:58
pappso::XicExtractMethod::max
@ max
maximum of intensities
pappso::MsRunXicExtractorInterface::MsRunXicExtractorInterface
MsRunXicExtractorInterface(MsRunReaderSPtr &msrun_reader)
constructor is private, use the MsRunXicExtractorFactory
Definition: msrunxicextractorinterface.cpp:58
pappso::MsRunXicExtractor::getXicCstSPtr
virtual XicCstSPtr getXicCstSPtr(const MzRange &mz_range, pappso::pappso_double rt_begin, pappso::pappso_double rt_end) override
get a XIC on this MsRun at the given mass range
Definition: msrunxicextractor.cpp:92
pappso::MsRunXicExtractorInterface::msp_msrun_reader
MsRunReaderSPtr msp_msrun_reader
Definition: msrunxicextractorinterface.h:105
pappso::MsRunXicExtractor::getXicCstSPtrList
virtual std::vector< XicCstSPtr > getXicCstSPtrList(const std::vector< MzRange > &mz_range_list) override
extract a list of XIC given a list of mass to extract
Definition: msrunxicextractor.cpp:149
pappso::MsRunXicExtractor::getXicFromPwizMSDataFile
virtual void getXicFromPwizMSDataFile(std::vector< Xic * > &xic_list, const std::vector< MzRange > &mass_range_list, pappso::pappso_double rt_begin, pappso::pappso_double rt_end)
Definition: msrunxicextractor.cpp:170
pappso::MsRunXicExtractor::m_msrun_points
std::vector< MsRunXicExtractorPoints > m_msrun_points
Definition: msrunxicextractor.h:46