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

#include <timsdiaslices.h>

Classes

struct  MsMsWindow
struct  MsMsWindowGroup
struct  MsMsWindowGroupList
struct  FrameSliceRange

Public Member Functions

 TimsDiaSlices (QSqlQuery &query, TimsData *tims_data_origin)
 ~TimsDiaSlices ()
const MsMsWindowGroupList & getMsMsWindowGroupList () 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 MsMsWindow & getMsMsWindowByGlobalSliceIndex (std::size_t global_slice_index) const
TimsDataFastMap & getCombinedMs2ScansByGlobalSliceIndex (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 FrameSliceRange & getFrameSliceRangeByGlobalSliceIndex (std::size_t global_slice_index) const

Private Attributes

TimsData * mp_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< FrameSliceRange > m_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 500 of file timsdiaslices.cpp.

505{
506
507 qDebug();
508 try
509 {
510 FrameSliceRange range = getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
511
512 MsMsWindow window = m_mapFrame2WindowGroupPtr.at(range.frame_id)
513 ->at(global_slice_index - range.begin_global_slice_index);
514
515 std::size_t ms1_frame_id = getLastMs1FrameIdByMs2FrameId(range.frame_id);
516 if(rt_position != 0)
517 {
518 std::size_t i = 0;
519 for(i = 0; i < m_ms1frameIdList.size(); i++)
520 {
521 if(m_ms1frameIdList.at(i) == ms1_frame_id)
522 break;
523 }
524 long index = (long)i + rt_position;
525 if((index > -1) && (index < (long)m_ms1frameIdList.size()))
526 ms1_frame_id = m_ms1frameIdList.at(index);
527 }
528
529 MassSpectrumId spectrum_id;
530
531 spectrum_id.setSpectrumIndex(global_slice_index);
532 spectrum_id.setNativeId(
533 QString("global_slice_index=%1 frame=%2 begin=%3 end=%4 group=%5 slice=%6")
534 .arg(global_slice_index)
535 .arg(ms1_frame_id)
536 .arg(window.ScanNumBegin)
537 .arg(window.ScanNumEnd)
538 .arg(window.WindowGroup)
539 .arg(window.SliceIndex));
540
541 spectrum_id.setMsRunId(msrun_id);
542
543 mass_spectrum.setMassSpectrumId(spectrum_id);
544
545 mass_spectrum.setMsLevel(1);
546 // mass_spectrum.setPrecursorSpectrumIndex(spectrum_descr.ms1_index);
547
548 mass_spectrum.setEmptyMassSpectrum(true);
549
550 qDebug();
551
552 // get precursor ion data
553
554 // mass_spectrum.appendPrecursorIonData(spectrum_descr.precursor_ion_data);
555
556
557 qDebug() << window.ScanNumBegin;
559 (qulonglong)window.ScanNumBegin);
560
561
562 qDebug() << window.ScanNumEnd;
564 (qulonglong)window.ScanNumEnd);
565 qDebug();
566 TimsFrameBaseCstSPtr tims_frame;
567
568
569 if(want_binary_data)
570 {
571 qDebug() << "bindec";
572 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(ms1_frame_id);
573 }
574 else
575 {
576 tims_frame = mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(ms1_frame_id);
577 }
578 mass_spectrum.setRtInSeconds(tims_frame.get()->getRtInSeconds());
579
580
581 mass_spectrum.setParameterValue(
583 tims_frame.get()->getOneOverK0Transformation(window.ScanNumBegin));
584
585 mass_spectrum.setParameterValue(
587 tims_frame.get()->getOneOverK0Transformation(window.ScanNumEnd));
588
589 qDebug();
590 /*combiner.combine(combiner_result,
591 tims_frame.get()->cumulateScanToTrace(
592 scan_mobility_start, scan_mobility_end));*/
593 if(want_binary_data)
594 {
595
596 double mz = (window.IsolationMz - (window.IsolationWidth / 2));
597 qDebug() << mz;
598
599 quint32 tof_index_begin =
600 tims_frame.get()->getMzCalibrationInterfaceSPtr().get()->getTofIndexFromMz(mz);
601
602 mz = (window.IsolationMz + (window.IsolationWidth / 2));
603 qDebug() << mz;
604 quint32 tof_index_end =
605 tims_frame.get()->getMzCalibrationInterfaceSPtr().get()->getTofIndexFromMz(mz);
606
607 qDebug() << "tof_index_begin=" << tof_index_begin << " tof_index_end=" << tof_index_end;
608
609 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
610 raw_spectrum.clear();
611 tims_frame.get()->combineScansInTofIndexIntensityMap(
612 raw_spectrum, window.ScanNumBegin, window.ScanNumEnd, tof_index_begin, tof_index_end);
613
614
615 Trace trace;
617 {
618 // raw_spectrum.removeArtefactualSpike();
619 raw_spectrum.builtInCentroid();
620 }
621
622 trace = tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
623
624 if(trace.size() > 0)
625 {
626 mass_spectrum.setMassSpectrumSPtr(MassSpectrum(trace).makeMassSpectrumSPtr());
627 mass_spectrum.setEmptyMassSpectrum(false);
628 }
629 else
630 {
631 mass_spectrum.setMassSpectrumSPtr(nullptr);
632 mass_spectrum.setEmptyMassSpectrum(true);
633 }
634 }
635 qDebug();
636 }
637
638 catch(PappsoException &error)
639 {
640 throw PappsoException(QObject::tr("ERROR in %1 (global_slice_index=%2):\n%3")
641 .arg(__FUNCTION__)
642 .arg(global_slice_index)
643 .arg(error.qwhat()));
644 }
645 catch(std::exception &error)
646 {
647 qDebug() << QString("Failure %1 ").arg(error.what());
648 }
649 qDebug();
650}
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::IsolationWindowTargetMz,
406 window.IsolationMz);
408 window.IsolationWidth);
410 window.IsolationWidth);
411
412 mass_spectrum.setParameterValue(QualifiedMassSpectrumParameter::CollisionEnergy,
413 window.CollisionEnergy);
414
415
416 qDebug() << window.ScanNumBegin;
418 (qulonglong)window.ScanNumBegin);
419
420
421 qDebug() << window.ScanNumEnd;
423 (qulonglong)window.ScanNumEnd);
424 qDebug();
425 TimsFrameBaseCstSPtr tims_frame;
426
427
428 if(want_binary_data)
429 {
430 qDebug() << "bindec";
431 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(range.frame_id);
432 }
433 else
434 {
435 tims_frame = mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(range.frame_id);
436 }
437
438 mass_spectrum.setRtInSeconds(tims_frame.get()->getRtInSeconds());
439
440
441 mass_spectrum.setParameterValue(
443 tims_frame.get()->getOneOverK0Transformation(window.ScanNumBegin));
444
445 mass_spectrum.setParameterValue(
447 tims_frame.get()->getOneOverK0Transformation(window.ScanNumEnd));
448
449 qDebug();
450 /*combiner.combine(combiner_result,
451 tims_frame.get()->cumulateScanToTrace(
452 scan_mobility_start, scan_mobility_end));*/
453 if(want_binary_data)
454 {
455
456 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
457 raw_spectrum.clear();
458 tims_frame.get()->combineScansInTofIndexIntensityMap(
459 raw_spectrum, window.ScanNumBegin, window.ScanNumEnd);
460
461
462 Trace trace;
464 {
465 // raw_spectrum.removeArtefactualSpike();
466 raw_spectrum.builtInCentroid();
467 }
468
469 trace = tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
470
471 if(trace.size() > 0)
472 {
473 mass_spectrum.setMassSpectrumSPtr(MassSpectrum(trace).makeMassSpectrumSPtr());
474 mass_spectrum.setEmptyMassSpectrum(false);
475 }
476 else
477 {
478 mass_spectrum.setMassSpectrumSPtr(nullptr);
479 mass_spectrum.setEmptyMassSpectrum(true);
480 }
481 }
482 qDebug();
483 }
484
485 catch(PappsoException &error)
486 {
487 throw PappsoException(QObject::tr("ERROR in %1 (global_slice_index=%2):\n%3")
488 .arg(__FUNCTION__)
489 .arg(global_slice_index)
490 .arg(error.qwhat()));
491 }
492 catch(std::exception &error)
493 {
494 qDebug() << QString("Failure %1 ").arg(error.what());
495 }
496 qDebug();
497}
@ IsolationWindowTargetMz
Isolation m/z value isolation window target m/z (thomson).
@ IsolationWindowUpperOffset
isolation window upper offset (thomson)
@ CollisionEnergy
Bruker's timsTOF collision energy.
@ IsolationWindowLowerOffset
isolation window lower offset (thomson)

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::TimsDiaSlices::MsMsWindow::IsolationMz, pappso::TimsDiaSlices::MsMsWindow::IsolationWidth, pappso::IsolationWindowLowerOffset, pappso::IsolationWindowTargetMz, pappso::IsolationWindowUpperOffset, 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: