libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::TimsDiaSlices Class Reference

#include <timsdiaslices.h>

Classes

struct  FrameSliceRange
 
struct  MsMsWindow
 
struct  MsMsWindowGroup
 
struct  MsMsWindowGroupList
 

Public Member Functions

 TimsDiaSlices (QSqlQuery &query, TimsData *tims_data_origin)
 
 ~TimsDiaSlices ()
 
const MsMsWindowGroupListgetMsMsWindowGroupList () const
 
const std::map< std::size_t, MsMsWindowGroup * > & getMapFrame2WindowGroupPtr () const
 
std::size_t getGlobalSliceIndexBeginByFrameId (std::size_t frame_id) const
 
std::size_t getFrameIdByGlobalSliceIndex (std::size_t global_slice_id) const
 
std::size_t getTotalSlicesCount () const
 get the number of DIA MS2 slices analyzed by PASEF
 
const MsMsWindowgetMsMsWindowByGlobalSliceIndex (std::size_t global_slice_index) const
 
TimsDataFastMapgetCombinedMs2ScansByGlobalSliceIndex (std::size_t global_slice_index) const
 
void getMs2QualifiedSpectrumByGlobalSliceIndex (const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, std::size_t global_slice_index, bool want_binary_data) const
 
void getMs1QualifiedSpectrumByGlobalSliceIndex (const MsRunIdCstSPtr &msrun_id, QualifiedMassSpectrum &mass_spectrum, std::size_t global_slice_index, bool want_binary_data, int rt_position=0) const
 get MS1 spectrum corresponding to the given slice extract MS1 mz range and mobility range corresponding to a global slice
 
std::size_t getLastMs1FrameIdByMs2FrameId (std::size_t frame_id) const
 

Private Member Functions

const FrameSliceRangegetFrameSliceRangeByGlobalSliceIndex (std::size_t global_slice_index) const
 

Private Attributes

TimsDatamp_timsDataOrigin
 
MsMsWindowGroupList m_msMsWindowGroupList
 
std::map< std::size_t, MsMsWindowGroup * > m_mapFrame2WindowGroupPtr
 
std::vector< std::size_t > m_frameId2GlobalSliceIndexBegin
 
std::vector< std::size_t > m_ms2frameId2Ms1FrameId
 
std::vector< std::size_t > m_ms1frameIdList
 
std::vector< FrameSliceRangem_frameSliceRangeList
 
bool m_builtinMs2Centroid = true
 enable builtin centroid on raw tims integers by default
 
std::size_t m_totalSlicesCount
 

Detailed Description

Todo
write docs

Definition at line 37 of file timsdiaslices.h.

Constructor & Destructor Documentation

◆ TimsDiaSlices()

pappso::TimsDiaSlices::TimsDiaSlices ( QSqlQuery & query,
TimsData * tims_data_origin )

Default constructor

Definition at line 110 of file timsdiaslices.cpp.

111 : mp_timsDataOrigin(tims_data_origin)
112{
113
114 /*
115CREATE TABLE IF NOT EXISTS "DiaFrameMsMsWindows" (
116"WindowGroup" INTEGER NOT NULL,
117"ScanNumBegin" INTEGER NOT NULL,
118"ScanNumEnd" INTEGER NOT NULL,
119"IsolationMz" REAL NOT NULL,
120"IsolationWidth" REAL NOT NULL,
121"CollisionEnergy" REAL NOT NULL,
122FOREIGN KEY("WindowGroup") REFERENCES "FrameMsMsWindowGroups"("Id"),
123PRIMARY KEY("WindowGroup","ScanNumBegin")
124) WITHOUT ROWID;
125*/
126
127 if(!query.exec("SELECT WindowGroup, ScanNumBegin, ScanNumEnd, IsolationMz, "
128 "IsolationWidth, CollisionEnergy FROM DiaFrameMsMsWindows;"))
129 {
130 qDebug();
131 throw ExceptionNotFound(QObject::tr("ERROR : executing %1 :\n%2")
132 .arg(query.lastQuery())
133 .arg(query.lastError().text()));
134 }
135 else
136 {
137
138 qDebug() << query.size();
139 if(query.size() == 0)
140 {
141 qDebug();
142 // FIXME: this exception is thrown, but my file is DDA.
143 // That's not a nice info...
144 throw ExceptionNotFound(
145 QObject::tr("ERROR : DiaFrameMsMsWindows table is empty in SqlLite database"));
146 }
147 MsMsWindow msms_window;
148 while(query.next())
149 {
150 qDebug();
151 msms_window.WindowGroup = query.value(0).toLongLong();
152 msms_window.ScanNumBegin = query.value(1).toLongLong();
153 msms_window.ScanNumEnd = query.value(2).toLongLong();
154 msms_window.IsolationMz = query.value(3).toDouble();
155 msms_window.IsolationWidth = query.value(4).toDouble();
156 msms_window.CollisionEnergy = query.value(5).toDouble();
157
158 qDebug();
159 m_msMsWindowGroupList.addInGroup(msms_window);
160 }
161
162 if(m_msMsWindowGroupList.size() == 0)
163 {
164 qDebug();
165 // FIXME: this exception is thrown, but my file is DDA.
166 // That's not a nice info...
167 throw ExceptionNotFound(
168 QObject::tr("ERROR : no DiaFrameMsMsWindows in SqlLite database"));
169 }
170 }
171
172 qDebug();
173 std::size_t max_frame_id = 0;
174 if(!query.exec("SELECT Frame, WindowGroup FROM DiaFrameMsMsInfo;"))
175 {
176 qDebug();
177 throw pappso::ExceptionNotFound(
178 QObject::tr("ERROR : no DiaFrameMsMsInfo in SqlLite database"));
179 }
180 else
181 {
182 qDebug() << query.size();
183 if(query.size() == 0)
184 {
185 qDebug();
186 throw pappso::ExceptionNotFound(
187 QObject::tr("ERROR : no DiaFrameMsMsInfo in SqlLite database"));
188 }
189 while(query.next())
190 {
191 qDebug();
192 max_frame_id = query.value(0).toLongLong();
193 m_mapFrame2WindowGroupPtr[query.value(0).toLongLong()] =
194 m_msMsWindowGroupList.getWindowGroupPtrByGroupId(query.value(1).toLongLong());
195 }
196
197 if(m_mapFrame2WindowGroupPtr.size() == 0)
198 {
199 qDebug();
200 throw ExceptionNotFound(QObject::tr("ERROR : no DiaFrameMsMsInfo in SqlLite database"));
201 }
202 }
203 qDebug();
204
205 m_frameId2GlobalSliceIndexBegin.resize(max_frame_id + 1);
206
207 m_ms2frameId2Ms1FrameId.resize(max_frame_id + 1);
208 std::size_t last_ms1 = 0;
209 std::size_t previous_frame = 0;
210
211 std::size_t cumul_global_slice = 0;
212 m_ms1frameIdList.clear();
213 for(const std::pair<std::size_t, MsMsWindowGroup *> pair_frame_pgroup : m_mapFrame2WindowGroupPtr)
214 {
215 if(previous_frame != pair_frame_pgroup.first - 1)
216 {
217 last_ms1 = previous_frame + 1;
218 m_ms1frameIdList.push_back(last_ms1);
219 }
220 previous_frame = pair_frame_pgroup.first;
221 qDebug() << pair_frame_pgroup.first << " " << m_frameId2GlobalSliceIndexBegin.size();
222 FrameSliceRange slice_range;
223 qDebug() << pair_frame_pgroup.first;
224 slice_range.frame_id = pair_frame_pgroup.first;
225 slice_range.begin_global_slice_index = cumul_global_slice;
226 m_frameId2GlobalSliceIndexBegin[pair_frame_pgroup.first] = cumul_global_slice;
227 m_ms2frameId2Ms1FrameId[pair_frame_pgroup.first] = last_ms1;
228
229 cumul_global_slice += pair_frame_pgroup.second->size();
230
231 if(cumul_global_slice > 0)
232 slice_range.end_global_slice_index = cumul_global_slice - 1;
233 m_frameSliceRangeList.push_back(slice_range);
234 }
235
236 qDebug();
237 m_totalSlicesCount = cumul_global_slice;
238}
std::vector< std::size_t > m_ms2frameId2Ms1FrameId
MsMsWindowGroupList m_msMsWindowGroupList
std::vector< std::size_t > m_ms1frameIdList
std::map< std::size_t, MsMsWindowGroup * > m_mapFrame2WindowGroupPtr
std::size_t m_totalSlicesCount
std::vector< std::size_t > m_frameId2GlobalSliceIndexBegin
std::vector< FrameSliceRange > m_frameSliceRangeList

References m_msMsWindowGroupList, and mp_timsDataOrigin.

◆ ~TimsDiaSlices()

pappso::TimsDiaSlices::~TimsDiaSlices ( )

Destructor

Definition at line 240 of file timsdiaslices.cpp.

241{
242}

References ~TimsDiaSlices().

Referenced by ~TimsDiaSlices().

Member Function Documentation

◆ getCombinedMs2ScansByGlobalSliceIndex()

TimsDataFastMap & pappso::TimsDiaSlices::getCombinedMs2ScansByGlobalSliceIndex ( std::size_t global_slice_index) const

Definition at line 318 of file timsdiaslices.cpp.

319{
320
321 qDebug();
322 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
323 raw_spectrum.clear();
324 try
325 {
326 FrameSliceRange range = getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
327
328 MsMsWindow window = m_mapFrame2WindowGroupPtr.at(range.frame_id)
329 ->at(global_slice_index - range.begin_global_slice_index);
330 qDebug();
331 TimsFrameCstSPtr tims_frame;
332 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(range.frame_id);
333 qDebug();
334 /*combiner.combine(combiner_result,
335 tims_frame.get()->cumulateScanToTrace(
336 scan_mobility_start, scan_mobility_end));*/
337 tims_frame.get()->combineScansInTofIndexIntensityMap(
338 raw_spectrum, window.ScanNumBegin, window.ScanNumEnd);
339 qDebug();
340 }
341
342 catch(PappsoException &error)
343 {
344 throw PappsoException(QObject::tr("ERROR in %1 (global_slice_index=%2):\n%3")
345 .arg(__FUNCTION__)
346 .arg(global_slice_index)
347 .arg(error.qwhat()));
348 }
349 catch(std::exception &error)
350 {
351 qDebug() << QString("Failure %1 ").arg(error.what());
352 }
353 return raw_spectrum;
354 qDebug();
355}
static TimsDataFastMap & getTimsDataFastMapInstance()
const FrameSliceRange & getFrameSliceRangeByGlobalSliceIndex(std::size_t global_slice_index) const
std::shared_ptr< const TimsFrame > TimsFrameCstSPtr
Definition timsframe.h:44

References pappso::TimsDiaSlices::FrameSliceRange::begin_global_slice_index, pappso::TimsDataFastMap::clear(), pappso::TimsDiaSlices::FrameSliceRange::frame_id, getCombinedMs2ScansByGlobalSliceIndex(), getFrameSliceRangeByGlobalSliceIndex(), pappso::TimsDataFastMap::getTimsDataFastMapInstance(), m_mapFrame2WindowGroupPtr, mp_timsDataOrigin, pappso::PappsoException::qwhat(), pappso::TimsDiaSlices::MsMsWindow::ScanNumBegin, pappso::TimsDiaSlices::MsMsWindow::ScanNumEnd, and pappso::PappsoException::what().

Referenced by getCombinedMs2ScansByGlobalSliceIndex().

◆ getFrameIdByGlobalSliceIndex()

std::size_t pappso::TimsDiaSlices::getFrameIdByGlobalSliceIndex ( std::size_t global_slice_id) const

Definition at line 261 of file timsdiaslices.cpp.

262{
263 return (getFrameSliceRangeByGlobalSliceIndex(global_slice_id).frame_id);
264}

References getFrameIdByGlobalSliceIndex(), and getFrameSliceRangeByGlobalSliceIndex().

Referenced by getFrameIdByGlobalSliceIndex().

◆ getFrameSliceRangeByGlobalSliceIndex()

const TimsDiaSlices::FrameSliceRange & pappso::TimsDiaSlices::getFrameSliceRangeByGlobalSliceIndex ( std::size_t global_slice_index) const
private

Definition at line 267 of file timsdiaslices.cpp.

268{
269
270 qDebug();
271 auto it = std::find_if(m_frameSliceRangeList.cbegin(),
273 [global_slice_index](const FrameSliceRange &x) {
274 if(global_slice_index < x.begin_global_slice_index)
275 return false;
276 if(global_slice_index > x.end_global_slice_index)
277 return false;
278 return true;
279 });
280
281 if(it != m_frameSliceRangeList.cend())
282 {
283 return *it;
284 }
285 qDebug();
286 throw ExceptionNotFound(
287 QObject::tr("ERROR : GlobalSliceIndex %1 not found").arg(global_slice_index));
288}

References getFrameSliceRangeByGlobalSliceIndex(), m_frameSliceRangeList, and pappso::x.

Referenced by getCombinedMs2ScansByGlobalSliceIndex(), getFrameIdByGlobalSliceIndex(), getFrameSliceRangeByGlobalSliceIndex(), getMs1QualifiedSpectrumByGlobalSliceIndex(), getMs2QualifiedSpectrumByGlobalSliceIndex(), and getMsMsWindowByGlobalSliceIndex().

◆ getGlobalSliceIndexBeginByFrameId()

std::size_t pappso::TimsDiaSlices::getGlobalSliceIndexBeginByFrameId ( std::size_t frame_id) const

◆ getLastMs1FrameIdByMs2FrameId()

std::size_t pappso::TimsDiaSlices::getLastMs1FrameIdByMs2FrameId ( std::size_t frame_id) const

◆ getMapFrame2WindowGroupPtr()

const std::map< std::size_t, TimsDiaSlices::MsMsWindowGroup * > & pappso::TimsDiaSlices::getMapFrame2WindowGroupPtr ( ) const

Definition at line 245 of file timsdiaslices.cpp.

246{
248}

References getMapFrame2WindowGroupPtr(), and m_mapFrame2WindowGroupPtr.

Referenced by getMapFrame2WindowGroupPtr().

◆ getMs1QualifiedSpectrumByGlobalSliceIndex()

void pappso::TimsDiaSlices::getMs1QualifiedSpectrumByGlobalSliceIndex ( const MsRunIdCstSPtr & msrun_id,
QualifiedMassSpectrum & mass_spectrum,
std::size_t global_slice_index,
bool want_binary_data,
int rt_position = 0 ) const

get MS1 spectrum corresponding to the given slice extract MS1 mz range and mobility range corresponding to a global slice

Parameters
msrun_id
mass_spectrum
global_slice_index
want_binary_data
rt_positionrelative MS1 frame retention time : 0 latest MS1 frame, +1 next MS1 frame, -1 previous MS1 frame

Definition at line 498 of file timsdiaslices.cpp.

503{
504
505 qDebug();
506 try
507 {
508 FrameSliceRange range = getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
509
510 MsMsWindow window = m_mapFrame2WindowGroupPtr.at(range.frame_id)
511 ->at(global_slice_index - range.begin_global_slice_index);
512
513 std::size_t ms1_frame_id = getLastMs1FrameIdByMs2FrameId(range.frame_id);
514 if(rt_position != 0)
515 {
516 std::size_t i = 0;
517 for(i = 0; i < m_ms1frameIdList.size(); i++)
518 {
519 if(m_ms1frameIdList.at(i) == ms1_frame_id)
520 break;
521 }
522 long index = (long)i + rt_position;
523 if((index > -1) && (index < (long)m_ms1frameIdList.size()))
524 ms1_frame_id = m_ms1frameIdList.at(index);
525 }
526
527 MassSpectrumId spectrum_id;
528
529 spectrum_id.setSpectrumIndex(global_slice_index);
530 spectrum_id.setNativeId(
531 QString("global_slice_index=%1 frame=%2 begin=%3 end=%4 group=%5 slice=%6")
532 .arg(global_slice_index)
533 .arg(ms1_frame_id)
534 .arg(window.ScanNumBegin)
535 .arg(window.ScanNumEnd)
536 .arg(window.WindowGroup)
537 .arg(window.SliceIndex));
538
539 spectrum_id.setMsRunId(msrun_id);
540
541 mass_spectrum.setMassSpectrumId(spectrum_id);
542
543 mass_spectrum.setMsLevel(1);
544 // mass_spectrum.setPrecursorSpectrumIndex(spectrum_descr.ms1_index);
545
546 mass_spectrum.setEmptyMassSpectrum(true);
547
548 qDebug();
549
550 // get precursor ion data
551
552 // mass_spectrum.appendPrecursorIonData(spectrum_descr.precursor_ion_data);
553
554
555 qDebug() << window.ScanNumBegin;
557 (qulonglong)window.ScanNumBegin);
558
559
560 qDebug() << window.ScanNumEnd;
562 (qulonglong)window.ScanNumEnd);
563 qDebug();
564 TimsFrameBaseCstSPtr tims_frame;
565
566
567 if(want_binary_data)
568 {
569 qDebug() << "bindec";
570 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(ms1_frame_id);
571 }
572 else
573 {
574 tims_frame = mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(ms1_frame_id);
575 }
576 mass_spectrum.setRtInSeconds(tims_frame.get()->getRtInSeconds());
577
578
579 mass_spectrum.setParameterValue(
581 tims_frame.get()->getOneOverK0Transformation(window.ScanNumBegin));
582
583 mass_spectrum.setParameterValue(
585 tims_frame.get()->getOneOverK0Transformation(window.ScanNumEnd));
586
587 qDebug();
588 /*combiner.combine(combiner_result,
589 tims_frame.get()->cumulateScanToTrace(
590 scan_mobility_start, scan_mobility_end));*/
591 if(want_binary_data)
592 {
593
594 double mz = (window.IsolationMz - (window.IsolationWidth / 2));
595 qDebug() << mz;
596
597 quint32 tof_index_begin =
598 tims_frame.get()->getMzCalibrationInterfaceSPtr().get()->getTofIndexFromMz(mz);
599
600 mz = (window.IsolationMz + (window.IsolationWidth / 2));
601 qDebug() << mz;
602 quint32 tof_index_end =
603 tims_frame.get()->getMzCalibrationInterfaceSPtr().get()->getTofIndexFromMz(mz);
604
605 qDebug() << "tof_index_begin=" << tof_index_begin << " tof_index_end=" << tof_index_end;
606
607 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
608 raw_spectrum.clear();
609 tims_frame.get()->combineScansInTofIndexIntensityMap(
610 raw_spectrum, window.ScanNumBegin, window.ScanNumEnd, tof_index_begin, tof_index_end);
611
612
613 Trace trace;
615 {
616 // raw_spectrum.removeArtefactualSpike();
617 raw_spectrum.builtInCentroid();
618 }
619
620 trace = tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
621
622 if(trace.size() > 0)
623 {
624 mass_spectrum.setMassSpectrumSPtr(MassSpectrum(trace).makeMassSpectrumSPtr());
625 mass_spectrum.setEmptyMassSpectrum(false);
626 }
627 else
628 {
629 mass_spectrum.setMassSpectrumSPtr(nullptr);
630 mass_spectrum.setEmptyMassSpectrum(true);
631 }
632 }
633 qDebug();
634 }
635
636 catch(PappsoException &error)
637 {
638 throw PappsoException(QObject::tr("ERROR in %1 (global_slice_index=%2):\n%3")
639 .arg(__FUNCTION__)
640 .arg(global_slice_index)
641 .arg(error.qwhat()));
642 }
643 catch(std::exception &error)
644 {
645 qDebug() << QString("Failure %1 ").arg(error.what());
646 }
647 qDebug();
648}
std::size_t getLastMs1FrameIdByMs2FrameId(std::size_t frame_id) const
bool m_builtinMs2Centroid
enable builtin centroid on raw tims integers by default
std::shared_ptr< const TimsFrameBase > TimsFrameBaseCstSPtr

References pappso::TimsDiaSlices::FrameSliceRange::begin_global_slice_index, pappso::TimsDataFastMap::builtInCentroid(), pappso::TimsDataFastMap::clear(), pappso::TimsDiaSlices::FrameSliceRange::frame_id, getFrameSliceRangeByGlobalSliceIndex(), getLastMs1FrameIdByMs2FrameId(), getMs1QualifiedSpectrumByGlobalSliceIndex(), pappso::TimsDataFastMap::getTimsDataFastMapInstance(), pappso::IonMobOneOverK0Begin, pappso::IonMobOneOverK0End, pappso::TimsDiaSlices::MsMsWindow::IsolationMz, pappso::TimsDiaSlices::MsMsWindow::IsolationWidth, m_builtinMs2Centroid, m_mapFrame2WindowGroupPtr, m_ms1frameIdList, mp_timsDataOrigin, pappso::PappsoException::qwhat(), pappso::TimsDiaSlices::MsMsWindow::ScanNumBegin, pappso::TimsDiaSlices::MsMsWindow::ScanNumEnd, pappso::QualifiedMassSpectrum::setEmptyMassSpectrum(), pappso::QualifiedMassSpectrum::setMassSpectrumId(), pappso::QualifiedMassSpectrum::setMassSpectrumSPtr(), pappso::QualifiedMassSpectrum::setMsLevel(), pappso::MassSpectrumId::setMsRunId(), pappso::MassSpectrumId::setNativeId(), pappso::QualifiedMassSpectrum::setParameterValue(), pappso::QualifiedMassSpectrum::setRtInSeconds(), pappso::MassSpectrumId::setSpectrumIndex(), pappso::TimsDiaSlices::MsMsWindow::SliceIndex, pappso::TimsFrameIonMobScanIndexBegin, pappso::TimsFrameIonMobScanIndexEnd, pappso::PappsoException::what(), and pappso::TimsDiaSlices::MsMsWindow::WindowGroup.

Referenced by getMs1QualifiedSpectrumByGlobalSliceIndex().

◆ getMs2QualifiedSpectrumByGlobalSliceIndex()

void pappso::TimsDiaSlices::getMs2QualifiedSpectrumByGlobalSliceIndex ( const MsRunIdCstSPtr & msrun_id,
QualifiedMassSpectrum & mass_spectrum,
std::size_t global_slice_index,
bool want_binary_data ) const

Definition at line 357 of file timsdiaslices.cpp.

361{
362
363 qDebug();
364 try
365 {
366 FrameSliceRange range = getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
367
368 MsMsWindow window = m_mapFrame2WindowGroupPtr.at(range.frame_id)
369 ->at(global_slice_index - range.begin_global_slice_index);
370
371 MassSpectrumId spectrum_id;
372
373 spectrum_id.setSpectrumIndex(global_slice_index);
374 spectrum_id.setNativeId(
375 QString("global_slice_index=%1 frame=%2 begin=%3 end=%4 group=%5 slice=%6")
376 .arg(global_slice_index)
377 .arg(range.frame_id)
378 .arg(window.ScanNumBegin)
379 .arg(window.ScanNumEnd)
380 .arg(window.WindowGroup)
381 .arg(window.SliceIndex));
382
383 spectrum_id.setMsRunId(msrun_id);
384
385 mass_spectrum.setMassSpectrumId(spectrum_id);
386
387 mass_spectrum.setMsLevel(2);
388 // mass_spectrum.setPrecursorSpectrumIndex(spectrum_descr.ms1_index);
389
390 mass_spectrum.setEmptyMassSpectrum(true);
391
392 qDebug();
393
394 // get precursor ion data
395
396 // mass_spectrum.appendPrecursorIonData(spectrum_descr.precursor_ion_data);
397
398 mass_spectrum.setPrecursorNativeId(QString("frame_id=%1 begin=%2 end=%3 group=%4 slice=%5")
399 .arg(m_ms2frameId2Ms1FrameId.at(range.frame_id))
400 .arg(window.ScanNumBegin)
401 .arg(window.ScanNumEnd)
402 .arg(window.WindowGroup)
403 .arg(window.SliceIndex));
404
405 mass_spectrum.setParameterValue(QualifiedMassSpectrumParameter::IsolationMz,
406 window.IsolationMz);
407 mass_spectrum.setParameterValue(QualifiedMassSpectrumParameter::IsolationMzWidth,
408 window.IsolationWidth);
409
410 mass_spectrum.setParameterValue(QualifiedMassSpectrumParameter::CollisionEnergy,
411 window.CollisionEnergy);
412
413
414 qDebug() << window.ScanNumBegin;
416 (qulonglong)window.ScanNumBegin);
417
418
419 qDebug() << window.ScanNumEnd;
421 (qulonglong)window.ScanNumEnd);
422 qDebug();
423 TimsFrameBaseCstSPtr tims_frame;
424
425
426 if(want_binary_data)
427 {
428 qDebug() << "bindec";
429 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(range.frame_id);
430 }
431 else
432 {
433 tims_frame = mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(range.frame_id);
434 }
435
436 mass_spectrum.setRtInSeconds(tims_frame.get()->getRtInSeconds());
437
438
439 mass_spectrum.setParameterValue(
441 tims_frame.get()->getOneOverK0Transformation(window.ScanNumBegin));
442
443 mass_spectrum.setParameterValue(
445 tims_frame.get()->getOneOverK0Transformation(window.ScanNumEnd));
446
447 qDebug();
448 /*combiner.combine(combiner_result,
449 tims_frame.get()->cumulateScanToTrace(
450 scan_mobility_start, scan_mobility_end));*/
451 if(want_binary_data)
452 {
453
454 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
455 raw_spectrum.clear();
456 tims_frame.get()->combineScansInTofIndexIntensityMap(
457 raw_spectrum, window.ScanNumBegin, window.ScanNumEnd);
458
459
460 Trace trace;
462 {
463 // raw_spectrum.removeArtefactualSpike();
464 raw_spectrum.builtInCentroid();
465 }
466
467 trace = tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
468
469 if(trace.size() > 0)
470 {
471 mass_spectrum.setMassSpectrumSPtr(MassSpectrum(trace).makeMassSpectrumSPtr());
472 mass_spectrum.setEmptyMassSpectrum(false);
473 }
474 else
475 {
476 mass_spectrum.setMassSpectrumSPtr(nullptr);
477 mass_spectrum.setEmptyMassSpectrum(true);
478 }
479 }
480 qDebug();
481 }
482
483 catch(PappsoException &error)
484 {
485 throw PappsoException(QObject::tr("ERROR in %1 (global_slice_index=%2):\n%3")
486 .arg(__FUNCTION__)
487 .arg(global_slice_index)
488 .arg(error.qwhat()));
489 }
490 catch(std::exception &error)
491 {
492 qDebug() << QString("Failure %1 ").arg(error.what());
493 }
494 qDebug();
495}
@ IsolationMzWidth
m/z isolation window width (left + right)
@ CollisionEnergy
Bruker's timsTOF collision energy.

References pappso::TimsDiaSlices::FrameSliceRange::begin_global_slice_index, pappso::TimsDataFastMap::builtInCentroid(), pappso::TimsDataFastMap::clear(), pappso::CollisionEnergy, pappso::TimsDiaSlices::MsMsWindow::CollisionEnergy, pappso::TimsDiaSlices::FrameSliceRange::frame_id, getFrameSliceRangeByGlobalSliceIndex(), getMs2QualifiedSpectrumByGlobalSliceIndex(), pappso::TimsDataFastMap::getTimsDataFastMapInstance(), pappso::IonMobOneOverK0Begin, pappso::IonMobOneOverK0End, pappso::IsolationMz, pappso::TimsDiaSlices::MsMsWindow::IsolationMz, pappso::IsolationMzWidth, pappso::TimsDiaSlices::MsMsWindow::IsolationWidth, m_builtinMs2Centroid, m_mapFrame2WindowGroupPtr, m_ms2frameId2Ms1FrameId, mp_timsDataOrigin, pappso::PappsoException::qwhat(), pappso::TimsDiaSlices::MsMsWindow::ScanNumBegin, pappso::TimsDiaSlices::MsMsWindow::ScanNumEnd, pappso::QualifiedMassSpectrum::setEmptyMassSpectrum(), pappso::QualifiedMassSpectrum::setMassSpectrumId(), pappso::QualifiedMassSpectrum::setMassSpectrumSPtr(), pappso::QualifiedMassSpectrum::setMsLevel(), pappso::MassSpectrumId::setMsRunId(), pappso::MassSpectrumId::setNativeId(), pappso::QualifiedMassSpectrum::setParameterValue(), pappso::QualifiedMassSpectrum::setPrecursorNativeId(), pappso::QualifiedMassSpectrum::setRtInSeconds(), pappso::MassSpectrumId::setSpectrumIndex(), pappso::TimsDiaSlices::MsMsWindow::SliceIndex, pappso::TimsFrameIonMobScanIndexBegin, pappso::TimsFrameIonMobScanIndexEnd, pappso::PappsoException::what(), and pappso::TimsDiaSlices::MsMsWindow::WindowGroup.

Referenced by getMs2QualifiedSpectrumByGlobalSliceIndex().

◆ getMsMsWindowByGlobalSliceIndex()

const TimsDiaSlices::MsMsWindow & pappso::TimsDiaSlices::getMsMsWindowByGlobalSliceIndex ( std::size_t global_slice_index) const

Definition at line 297 of file timsdiaslices.cpp.

298{
299 qDebug() << global_slice_index;
300 const TimsDiaSlices::FrameSliceRange &range =
301 getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
302
303 qDebug() << "range.frame_id=" << range.frame_id
304 << " range.begin_global_slice_index=" << range.begin_global_slice_index;
305 return m_mapFrame2WindowGroupPtr.at(range.frame_id)
306 ->at(global_slice_index - range.begin_global_slice_index);
307}

References pappso::TimsDiaSlices::FrameSliceRange::begin_global_slice_index, pappso::TimsDiaSlices::FrameSliceRange::frame_id, getFrameSliceRangeByGlobalSliceIndex(), getMsMsWindowByGlobalSliceIndex(), and m_mapFrame2WindowGroupPtr.

Referenced by getMsMsWindowByGlobalSliceIndex().

◆ getMsMsWindowGroupList()

const TimsDiaSlices::MsMsWindowGroupList & pappso::TimsDiaSlices::getMsMsWindowGroupList ( ) const

Definition at line 250 of file timsdiaslices.cpp.

251{
253}

References getMsMsWindowGroupList(), and m_msMsWindowGroupList.

Referenced by getMsMsWindowGroupList().

◆ getTotalSlicesCount()

std::size_t pappso::TimsDiaSlices::getTotalSlicesCount ( ) const

get the number of DIA MS2 slices analyzed by PASEF

Definition at line 291 of file timsdiaslices.cpp.

292{
293 return m_totalSlicesCount;
294}

References getTotalSlicesCount(), and m_totalSlicesCount.

Referenced by getTotalSlicesCount().

Member Data Documentation

◆ m_builtinMs2Centroid

bool pappso::TimsDiaSlices::m_builtinMs2Centroid = true
private

enable builtin centroid on raw tims integers by default

Definition at line 149 of file timsdiaslices.h.

Referenced by getMs1QualifiedSpectrumByGlobalSliceIndex(), and getMs2QualifiedSpectrumByGlobalSliceIndex().

◆ m_frameId2GlobalSliceIndexBegin

std::vector<std::size_t> pappso::TimsDiaSlices::m_frameId2GlobalSliceIndexBegin
private

Definition at line 142 of file timsdiaslices.h.

Referenced by getGlobalSliceIndexBeginByFrameId().

◆ m_frameSliceRangeList

std::vector<FrameSliceRange> pappso::TimsDiaSlices::m_frameSliceRangeList
private

Definition at line 145 of file timsdiaslices.h.

Referenced by getFrameSliceRangeByGlobalSliceIndex().

◆ m_mapFrame2WindowGroupPtr

◆ m_ms1frameIdList

std::vector<std::size_t> pappso::TimsDiaSlices::m_ms1frameIdList
private

Definition at line 144 of file timsdiaslices.h.

Referenced by getMs1QualifiedSpectrumByGlobalSliceIndex().

◆ m_ms2frameId2Ms1FrameId

std::vector<std::size_t> pappso::TimsDiaSlices::m_ms2frameId2Ms1FrameId
private

◆ m_msMsWindowGroupList

MsMsWindowGroupList pappso::TimsDiaSlices::m_msMsWindowGroupList
private

Definition at line 140 of file timsdiaslices.h.

Referenced by TimsDiaSlices(), and getMsMsWindowGroupList().

◆ m_totalSlicesCount

std::size_t pappso::TimsDiaSlices::m_totalSlicesCount
private

Definition at line 151 of file timsdiaslices.h.

Referenced by getTotalSlicesCount().

◆ mp_timsDataOrigin


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