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 40 of file msrunxicextractor.cpp.

42 {
43 
44  MsRunXicExtractorReadPoints get_msrun_points(m_msrun_points);
45  msp_msrun_reader.get()->readSpectrumCollection(get_msrun_points);
46 
47  std::sort(m_msrun_points.begin(),
48  m_msrun_points.end(),
49  [](const MsRunXicExtractorPoints &a,
50  const MsRunXicExtractorPoints &b) { return a.rt < b.rt; });
51 
52 
53  if(m_msrun_points.size() == 0)
54  {
56  QObject::tr("error extracting XIC: no MS level 1 in data file"));
57  }
58 }

References m_msrun_points, and pappso::MsRunXicExtractorInterface::msp_msrun_reader.

◆ MsRunXicExtractor() [2/2]

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

Definition at line 64 of file msrunxicextractor.cpp.

66 {
67  m_msrun_points = other.m_msrun_points;
68 }

References m_msrun_points.

◆ ~MsRunXicExtractor()

pappso::MsRunXicExtractor::~MsRunXicExtractor ( )
virtual

Definition at line 59 of file msrunxicextractor.cpp.

60 {
61 }

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 71 of file msrunxicextractor.cpp.

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();
80 
81  while((itpoints != m_msrun_points.end()) && (itpoints->rt < rt_begin))
82  {
83  itpoints++;
84  }
85  MassSpectrumSPtr spectrum;
86  DataPoint peak;
87  while((itpoints != m_msrun_points.end()) && (itpoints->rt <= rt_end))
88  {
89  spectrum =
90  msp_msrun_reader.get()->massSpectrumSPtr(itpoints->spectrum_index);
91  // qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__ << " "
92  // << spectrum->size(); spectrum->debugPrintValues();
93 
94  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
95  << " spectrum->size()=" << spectrum->size();
96  keep_range.filter(*(spectrum.get()));
97  qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__
98  << " spectrum->size()=" << spectrum->size();
99 
100  peak.x = itpoints->rt;
101 
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 }

References pappso::FilterResampleKeepXRange::filter(), pappso::MzRange::lower(), m_msrun_points, pappso::MsRunXicExtractorInterface::m_xicExtractMethod, pappso::maxYDataPoint(), pappso::MsRunXicExtractorInterface::msp_msrun_reader, pappso::sum, pappso::sumYTrace(), pappso::MzRange::upper(), pappso::DataPoint::x, 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 128 of file msrunxicextractor.cpp.

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 getXicFromPwizMSDataFile(), and 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 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 
168  auto itpoints = m_msrun_points.begin();
169 
170  while((itpoints != m_msrun_points.end()) && (itpoints->rt < rt_begin))
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

References m_msrun_points, pappso::MsRunXicExtractorInterface::m_xicExtractMethod, pappso::MsRunXicExtractorInterface::msp_msrun_reader, and pappso::sum.

Referenced by getXicCstSPtrList().

Member Data Documentation

◆ m_msrun_points

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

◆ 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::MassSpectrumCstSPtr
std::shared_ptr< const MassSpectrum > MassSpectrumCstSPtr
Definition: massspectrum.h:55
pappso::MsRunXicExtractorInterface
Definition: msrunxicextractorinterface.h:46
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:202
pappso::MsRunXicExtractorInterface::m_xicExtractMethod
XicExtractMethod m_xicExtractMethod
Definition: msrunxicextractorinterface.h:88
pappso::maxYDataPoint
std::vector< DataPoint >::const_iterator maxYDataPoint(std::vector< DataPoint >::const_iterator begin, std::vector< DataPoint >::const_iterator end)
Definition: trace.cpp:138
pappso::MsRunXicExtractorInterface::MsRunXicExtractorInterface
MsRunXicExtractorInterface(MsRunReaderSPtr &msrun_reader)
constructor is private, use the MsRunXicExtractorFactory
Definition: msrunxicextractorinterface.cpp:37
pappso::MsRunXicExtractorInterface::msp_msrun_reader
MsRunReaderSPtr msp_msrun_reader
Definition: msrunxicextractorinterface.h:87
pappso::XicExtractMethod::sum
@ sum
sum of intensities
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:149
pappso::MsRunXicExtractor::m_msrun_points
std::vector< MsRunXicExtractorPoints > m_msrun_points
Definition: msrunxicextractor.h:46
pappso::MassSpectrumSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition: massspectrum.h:54
pappso::PappsoException
Definition: pappsoexception.h:42