64 if(it_in_list == end())
70 new_group->push_back(window);
76 (*it_in_list)->push_back(window);
78 std::sort((*it_in_list)->begin(),
81 return (a.ScanNumBegin < b.ScanNumBegin);
130 if(!query.exec(
"SELECT WindowGroup, ScanNumBegin, ScanNumEnd, IsolationMz, "
131 "IsolationWidth, CollisionEnergy FROM DiaFrameMsMsWindows;"))
134 throw ExceptionNotFound(
135 QObject::tr(
"ERROR : no DiaFrameMsMsWindows in SqlLite database"));
140 qDebug() << query.size();
141 if(query.size() == 0)
144 throw ExceptionNotFound(
145 QObject::tr(
"ERROR : no DiaFrameMsMsWindows in SqlLite database"));
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();
159 m_msMsWindowGroupList.addInGroup(msms_window);
165 throw ExceptionNotFound(
166 QObject::tr(
"ERROR : no DiaFrameMsMsWindows in SqlLite database"));
171 std::size_t max_frame_id = 0;
172 if(!query.exec(
"SELECT Frame, WindowGroup FROM DiaFrameMsMsInfo;"))
176 QObject::tr(
"ERROR : no DiaFrameMsMsInfo in SqlLite database"));
180 qDebug() << query.size();
181 if(query.size() == 0)
185 QObject::tr(
"ERROR : no DiaFrameMsMsInfo in SqlLite database"));
190 max_frame_id = query.value(0).toLongLong();
191 m_mapFrame2WindowGroupPtr[query.value(0).toLongLong()] =
192 m_msMsWindowGroupList.getWindowGroupPtrByGroupId(
193 query.value(1).toLongLong());
196 if(m_mapFrame2WindowGroupPtr.size() == 0)
199 throw ExceptionNotFound(
200 QObject::tr(
"ERROR : no DiaFrameMsMsInfo in SqlLite database"));
205 m_frameId2GlobalSliceIndexBegin.resize(max_frame_id + 1);
207 m_ms2frameId2Ms1FrameId.resize(max_frame_id + 1);
208 std::size_t last_ms1 = 0;
209 std::size_t previous_frame = 0;
211 std::size_t cumul_global_slice = 0;
212 m_ms1frameIdList.clear();
213 for(
const std::pair<std::size_t, MsMsWindowGroup *> pair_frame_pgroup :
214 m_mapFrame2WindowGroupPtr)
216 if(previous_frame != pair_frame_pgroup.first - 1)
218 last_ms1 = previous_frame + 1;
219 m_ms1frameIdList.push_back(last_ms1);
221 previous_frame = pair_frame_pgroup.first;
222 qDebug() << pair_frame_pgroup.first <<
" "
223 << m_frameId2GlobalSliceIndexBegin.size();
224 FrameSliceRange slice_range;
225 qDebug() << pair_frame_pgroup.first;
226 slice_range.frame_id = pair_frame_pgroup.first;
227 slice_range.begin_global_slice_index = cumul_global_slice;
228 m_frameId2GlobalSliceIndexBegin[pair_frame_pgroup.first] =
230 m_ms2frameId2Ms1FrameId[pair_frame_pgroup.first] = last_ms1;
232 cumul_global_slice += pair_frame_pgroup.second->size();
234 if(cumul_global_slice > 0)
235 slice_range.end_global_slice_index = cumul_global_slice - 1;
236 m_frameSliceRangeList.push_back(slice_range);
240 m_totalSlicesCount = cumul_global_slice;
270TimsDiaSlices::getFrameSliceRangeByGlobalSliceIndex(
271 std::size_t global_slice_index)
const
275 auto it = std::find_if(m_frameSliceRangeList.cbegin(),
276 m_frameSliceRangeList.cend(),
278 if(global_slice_index < x.begin_global_slice_index)
280 if(global_slice_index > x.end_global_slice_index)
285 if(it != m_frameSliceRangeList.cend())
291 .arg(global_slice_index));
324TimsDiaSlices::getCombinedMs2ScansByGlobalSliceIndex(
325 std::size_t global_slice_index)
const
329 TimsDataFastMap &raw_spectrum = TimsDataFastMap::getTimsDataFastMapInstance();
330 raw_spectrum.
clear();
334 getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
337 m_mapFrame2WindowGroupPtr.at(range.
frame_id)
341 tims_frame = mp_timsDataOrigin->getTimsFrameCstSPtrCached(range.
frame_id);
346 tims_frame.get()->combineScansInTofIndexIntensityMap(
354 QObject::tr(
"ERROR in %1 (global_slice_index=%2):\n%3")
356 .arg(global_slice_index)
357 .arg(error.
qwhat()));
359 catch(std::exception &error)
361 qDebug() << QString(
"Failure %1 ").arg(error.
what());
367TimsDiaSlices::getMs2QualifiedSpectrumByGlobalSliceIndex(
370 std::size_t global_slice_index,
371 bool want_binary_data)
const
378 getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
381 m_mapFrame2WindowGroupPtr.at(range.
frame_id)
389 "global_slice_index=%1 frame=%2 begin=%3 end=%4 group=%5 slice=%6")
390 .arg(global_slice_index)
413 QString(
"frame_id=%1 begin=%2 end=%3 group=%4 slice=%5")
414 .arg(m_ms2frameId2Ms1FrameId.at(range.
frame_id))
421 QualifiedMassSpectrumParameter::IsolationMz, window.
IsolationMz);
423 QualifiedMassSpectrumParameter::IsolationMzWidth,
427 QualifiedMassSpectrumParameter::CollisionEnergy,
433 QualifiedMassSpectrumParameter::TimsFrameIonMobScanIndexBegin,
439 QualifiedMassSpectrumParameter::TimsFrameIonMobScanIndexEnd,
447 qDebug() <<
"bindec";
449 mp_timsDataOrigin->getTimsFrameCstSPtrCached(range.
frame_id);
454 mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(range.
frame_id);
461 QualifiedMassSpectrumParameter::IonMobOneOverK0Begin,
462 tims_frame.get()->getOneOverK0Transformation(window.
ScanNumBegin));
465 QualifiedMassSpectrumParameter::IonMobOneOverK0End,
466 tims_frame.get()->getOneOverK0Transformation(window.
ScanNumEnd));
476 TimsDataFastMap::getTimsDataFastMapInstance();
477 raw_spectrum.
clear();
478 tims_frame.get()->combineScansInTofIndexIntensityMap(
483 if(m_builtinMs2Centroid)
490 tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
510 QObject::tr(
"ERROR in %1 (global_slice_index=%2):\n%3")
512 .arg(global_slice_index)
513 .arg(error.
qwhat()));
515 catch(std::exception &error)
517 qDebug() << QString(
"Failure %1 ").arg(error.
what());
523TimsDiaSlices::getMs1QualifiedSpectrumByGlobalSliceIndex(
526 std::size_t global_slice_index,
527 bool want_binary_data,
528 int rt_position)
const
535 getFrameSliceRangeByGlobalSliceIndex(global_slice_index);
538 m_mapFrame2WindowGroupPtr.at(range.
frame_id)
541 std::size_t ms1_frame_id = getLastMs1FrameIdByMs2FrameId(range.
frame_id);
545 for(i = 0; i < m_ms1frameIdList.size(); i++)
547 if(m_ms1frameIdList.at(i) == ms1_frame_id)
550 long index = (long)i + rt_position;
551 if((index > -1) && (index < (
long)m_ms1frameIdList.size()))
552 ms1_frame_id = m_ms1frameIdList.at(index);
560 "global_slice_index=%1 frame=%2 begin=%3 end=%4 group=%5 slice=%6")
561 .arg(global_slice_index)
586 QualifiedMassSpectrumParameter::TimsFrameIonMobScanIndexBegin,
592 QualifiedMassSpectrumParameter::TimsFrameIonMobScanIndexEnd,
600 qDebug() <<
"bindec";
602 mp_timsDataOrigin->getTimsFrameCstSPtrCached(ms1_frame_id);
607 mp_timsDataOrigin->getTimsFrameBaseCstSPtrCached(ms1_frame_id);
613 QualifiedMassSpectrumParameter::IonMobOneOverK0Begin,
614 tims_frame.get()->getOneOverK0Transformation(window.
ScanNumBegin));
617 QualifiedMassSpectrumParameter::IonMobOneOverK0End,
618 tims_frame.get()->getOneOverK0Transformation(window.
ScanNumEnd));
630 quint32 tof_index_begin = tims_frame.get()
631 ->getMzCalibrationInterfaceSPtr()
633 ->getTofIndexFromMz(
mz);
637 quint32 tof_index_end = tims_frame.get()
638 ->getMzCalibrationInterfaceSPtr()
640 ->getTofIndexFromMz(
mz);
642 qDebug() <<
"tof_index_begin=" << tof_index_begin
643 <<
" tof_index_end=" << tof_index_end;
646 TimsDataFastMap::getTimsDataFastMapInstance();
647 raw_spectrum.
clear();
648 tims_frame.get()->combineScansInTofIndexIntensityMap(
657 if(m_builtinMs2Centroid)
664 tims_frame.get()->getTraceFromTofIndexIntensityMap(raw_spectrum);
684 QObject::tr(
"ERROR in %1 (global_slice_index=%2):\n%3")
686 .arg(global_slice_index)
687 .arg(error.
qwhat()));
689 catch(std::exception &error)
691 qDebug() << QString(
"Failure %1 ").arg(error.
what());