libpappsomspp
Library for mass spectrometry
pappso::TimsDirectXicExtractor Class Reference

#include <timsdirectxicextractor.h>

Inheritance diagram for pappso::TimsDirectXicExtractor:
pappso::TimsXicExtractorInterface

Public Member Functions

 TimsDirectXicExtractor (const TimsData *mp_tims_data)
 
virtual ~TimsDirectXicExtractor ()
 
- Public Member Functions inherited from pappso::TimsXicExtractorInterface
 TimsXicExtractorInterface (const TimsData *mp_tims_data)
 
virtual ~TimsXicExtractorInterface ()
 
void setXicExtractMethod (XicExtractMethod method)
 set the XIC extraction method More...
 

Protected Member Functions

virtual void extractTimsXicList (std::vector< TimsXicStructure > &timsXicList, double rtRange) const override
 extract XICs for given coordinates XICs are extracted given their coordinates : retention time target, mobility range, mz range More...
 

Additional Inherited Members

- Protected Attributes inherited from pappso::TimsXicExtractorInterface
const TimsDatamp_timsData
 
XicExtractMethod m_xicExtractMethod = XicExtractMethod::max
 

Detailed Description

Todo:
write docs

Definition at line 37 of file timsdirectxicextractor.h.

Constructor & Destructor Documentation

◆ TimsDirectXicExtractor()

TimsDirectXicExtractor::TimsDirectXicExtractor ( const TimsData mp_tims_data)

Default constructor

Definition at line 33 of file timsdirectxicextractor.cpp.

◆ ~TimsDirectXicExtractor()

TimsDirectXicExtractor::~TimsDirectXicExtractor ( )
virtual

Destructor

Definition at line 38 of file timsdirectxicextractor.cpp.

39 {
40 }

Member Function Documentation

◆ extractTimsXicList()

void TimsDirectXicExtractor::extractTimsXicList ( std::vector< TimsXicStructure > &  timsXicList,
double  rtRange 
) const
overrideprotectedvirtual

extract XICs for given coordinates XICs are extracted given their coordinates : retention time target, mobility range, mz range

Parameters
timsXicListlist of TIMS XIC structures (XIC coordinates)
rtRangethe range in seconds that will be applied before and after XIC rtTarget to extract signal

Implements pappso::TimsXicExtractorInterface.

Definition at line 44 of file timsdirectxicextractor.cpp.

46 {
47  qDebug();
48  if(timsXicList.size() == 0)
49  return;
50  std::sort(timsXicList.begin(),
51  timsXicList.end(),
52  [](const TimsXicStructure &a, const TimsXicStructure &b) {
53  return a.rtTarget < b.rtTarget;
54  });
55 
56  for(auto &&timsXic : timsXicList)
57  {
58  timsXic.xicSptr = std::make_shared<Xic>();
59  }
60 
61  std::vector<std::size_t> tims_frameid_list =
62  mp_timsData->getTimsMS1FrameIdRange(timsXicList[0].rtTarget - rtRange,
63  timsXicList.back().rtTarget + rtRange);
64 
65  qDebug() << " tims_frameid_list.size()=" << tims_frameid_list.size();
66  qDebug() << " rt begin=" << timsXicList[0].rtTarget;
67  qDebug() << " rt end=" << timsXicList.back().rtTarget;
68  for(std::size_t frame_id : tims_frameid_list)
69  {
70  std::vector<TimsXicStructure>::iterator itXicListbegin =
71  timsXicList.begin();
72  std::vector<TimsXicStructure>::iterator itXicListend = timsXicList.end();
73  TimsFrameCstSPtr frame_sptr = mp_timsData->getTimsFrameCstSPtr(frame_id);
74  double rtframe = frame_sptr.get()->getTime();
75 
76  double rtbeginframe = rtframe - rtRange;
77  double rtendframe = rtframe + rtRange;
78 
79  if(rtbeginframe < 0)
80  rtbeginframe = 0;
81  while((itXicListbegin != itXicListend) &&
82  (itXicListbegin->rtTarget < rtbeginframe))
83  {
84  itXicListbegin++;
85  }
86  itXicListend = itXicListbegin;
87  while((itXicListend != timsXicList.end()) &&
88  (itXicListend->rtTarget < rtendframe))
89  {
90  itXicListend++;
91  }
92  /*
93  while((itXicListbegin != timsXicList.end()) &&
94  ((itXicListbegin->rtTarget + rtRange) < rtframe))
95  {
96 
97  qDebug() << " itXicListbegin->rtTarget + rtRange="
98  << itXicListbegin->rtTarget + rtRange
99  << " rtframe=" << rtframe;
100  itXicListbegin++;
101  }
102 */
103  qDebug() << " from=" << itXicListbegin->rtTarget
104  << " to=" << itXicListend->rtTarget;
105  frame_sptr.get()->extractTimsXicListInRtRange(
106  itXicListbegin, itXicListend, m_xicExtractMethod);
107 
108  qDebug() << "" << frame_sptr.get()->getId();
109  }
110  qDebug();
111 }
TimsFrameCstSPtr getTimsFrameCstSPtr(std::size_t timsId) const
get a Tims frame with his database ID
Definition: timsdata.cpp:496
std::vector< std::size_t > getTimsMS1FrameIdRange(double rt_begin, double rt_end) const
Definition: timsdata.cpp:460
std::shared_ptr< const TimsFrame > TimsFrameCstSPtr
Definition: timsframe.h:42
structure needed to extract XIC from Tims data
Definition: timsdata.h:49

References pappso::a, pappso::b, pappso::TimsData::getTimsFrameCstSPtr(), pappso::TimsData::getTimsMS1FrameIdRange(), pappso::TimsXicExtractorInterface::m_xicExtractMethod, and pappso::TimsXicExtractorInterface::mp_timsData.


The documentation for this class was generated from the following files: