122 std::vector<std::size_t> subset_of_tims_frame_ids;
125 bool asked_ion_mobility_scan_num_range =
false;
127 quint32 mobility_scan_num_range_begin = std::numeric_limits<quint32>::max();
128 quint32 mobility_scan_num_range_end = std::numeric_limits<quint32>::max();
129 quint32 mobility_scan_num_range_width = std::numeric_limits<quint32>::max();
131 double mobility_one_over_k0 = std::numeric_limits<double>::max();
132 double mobility_one_over_k0_range_begin = std::numeric_limits<double>::max();
133 double mobility_one_over_k0_range_end = std::numeric_limits<double>::max();
144 mobility_scan_num_range_begin =
149 mobility_scan_num_range_end =
156 mobility_scan_num_range_width =
157 mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
159 asked_ion_mobility_scan_num_range =
true;
165 const std::vector<FrameIdDescr> &frame_id_descr_list =
169 std::size_t scan_count = 0;
171 for(
auto const &frame_record :
msp_timsData->getTimsFrameRecordList())
177 QObject::tr(
"Reading timsTOF data cancelled by the user."));
180 if(frame_record.frame_id == 0)
186 std::size_t ms_level = 2;
187 if(frame_record.msms_type == 0)
193 subset_of_tims_frame_ids.push_back(frame_record.frame_id);
195 if(mobility_scan_num_range_width != std::numeric_limits<int>::max())
197 scan_count += mobility_scan_num_range_width;
201 scan_count += frame_id_descr_list[frame_record.frame_id].m_size;
206 std::size_t frame_count = subset_of_tims_frame_ids.size();
207 qDebug() <<
"The number of retained RT range- and MS level-matching frames : "
222 bool asked_mz_range =
false;
223 double mz_range_begin = -1;
224 double mz_range_end = -1;
228 asked_mz_range =
true;
245 std::size_t mz_index_merge_window = 0;
251 mz_index_merge_window =
262 std::size_t scan_index = 0;
264 for(std::size_t tims_frame_id : subset_of_tims_frame_ids)
270 QObject::tr(
"Reading timsTOF data cancelled by the user."));
276 frame_id_descr_list[tims_frame_id];
299 mobility_one_over_k0_range_begin =
305 mobility_one_over_k0_range_end =
311 mobility_scan_num_range_begin =
312 tims_frame_csp.get()->getScanNumFromOneOverK0(
313 mobility_one_over_k0_range_begin);
315 mobility_scan_num_range_end =
316 tims_frame_csp.get()->getScanNumFromOneOverK0(
317 mobility_one_over_k0_range_end);
319 asked_ion_mobility_scan_num_range =
true;
325 quint32 count_of_mobility_scans = tims_frame_csp->getTotalNumberOfScans();
327 if(asked_ion_mobility_scan_num_range)
329 if(mobility_scan_num_range_end > (count_of_mobility_scans - 1))
331 mobility_scan_num_range_end = count_of_mobility_scans - 1;
336 mobility_scan_num_range_begin = 0;
337 mobility_scan_num_range_end = count_of_mobility_scans - 1;
344 if(mobility_one_over_k0_range_begin == std::numeric_limits<double>::max())
345 mobility_one_over_k0_range_begin =
346 tims_frame_csp->getOneOverK0Transformation(
347 mobility_scan_num_range_begin);
348 if(mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
349 mobility_one_over_k0_range_end =
350 tims_frame_csp->getOneOverK0Transformation(
351 mobility_scan_num_range_end);
353 mobility_scan_num_range_width =
354 mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
358 mobility_one_over_k0 = tims_frame_csp.get()->getScanNumFromOneOverK0(
359 mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2));
372 QString(
"frame_id=%1 global_scan_index=%2 im_scan_range_begin=%3 "
373 "im_scan_range_end=%4")
376 .arg(mobility_scan_num_range_begin)
377 .arg(mobility_scan_num_range_end));
386 unsigned int frame_ms_level = tims_frame_csp.get()->getMsLevel();
391 mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2)));
394 qDebug() <<
"mobility_one_over_k0:" << mobility_one_over_k0
395 <<
"mobility_one_over_k0_range_begin:"
396 << mobility_one_over_k0_range_begin
397 <<
"mobility_one_over_k0_range_end"
398 << mobility_one_over_k0_range_end;
400 if(mobility_one_over_k0 == std::numeric_limits<double>::max() ||
401 mobility_one_over_k0_range_begin ==
402 std::numeric_limits<double>::max() ||
403 mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
406 "range are undefined."));
410 mobility_one_over_k0);
413 mobility_one_over_k0_range_begin);
416 mobility_one_over_k0_range_end);
423 if(mobility_scan_num_range_begin == std::numeric_limits<quint32>::max() ||
424 mobility_scan_num_range_end == std::numeric_limits<quint32>::max())
426 "Not possible that mobility_scan_num_range values are undefined."));
430 mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2));
433 mobility_scan_num_range_begin);
436 mobility_scan_num_range_end);
440 static_cast<qlonglong
>(tims_frame_csp->getTotalNumberOfScans()));
448 quint32 min_mz_index_out = 0;
449 quint32 max_mz_index_out = 0;
453 trace = tims_frame_csp->cumulateScansToTraceMzDownResolution2(
454 mz_index_merge_window,
457 mobility_scan_num_range_begin,
458 mobility_scan_num_range_end,
464 trace = tims_frame_csp->cumulateScansToTraceMzDownResolution(
465 mz_index_merge_window,
466 mobility_scan_num_range_begin,
467 mobility_scan_num_range_end,
483 std::make_shared<MassSpectrum>(trace));