96 std::vector<std::size_t> subset_of_tims_frame_ids;
99 bool asked_ion_mobility_scan_num_range =
false;
101 quint32 mobility_scan_num_range_begin = std::numeric_limits<quint32>::max();
102 quint32 mobility_scan_num_range_end = std::numeric_limits<quint32>::max();
103 quint32 mobility_scan_num_range_width = std::numeric_limits<quint32>::max();
105 double mobility_one_over_k0 = std::numeric_limits<double>::max();
106 double mobility_one_over_k0_range_begin = std::numeric_limits<double>::max();
107 double mobility_one_over_k0_range_end = std::numeric_limits<double>::max();
112 mobility_scan_num_range_begin =
114 mobility_scan_num_range_end =
118 mobility_scan_num_range_width =
119 mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
121 asked_ion_mobility_scan_num_range =
true;
127 const std::vector<FrameIdDescr> &frame_id_descr_list =
msp_timsData->getFrameIdDescrList();
130 std::size_t scan_count = 0;
132 for(
auto const &frame_record :
msp_timsData->getTimsFrameRecordList())
140 if(frame_record.frame_id == 0)
146 std::size_t ms_level = 2;
147 if(frame_record.msms_type == 0)
156 subset_of_tims_frame_ids.push_back(frame_record.frame_id);
158 if(mobility_scan_num_range_width != std::numeric_limits<int>::max())
160 scan_count += mobility_scan_num_range_width;
164 scan_count += frame_id_descr_list[frame_record.frame_id].m_scanCount;
169 std::size_t frame_count = subset_of_tims_frame_ids.size();
170 qDebug() <<
"The number of retained RT range- and MS level-matching frames : " << frame_count;
184 bool asked_mz_range =
false;
185 double mz_range_begin = -1;
186 double mz_range_end = -1;
190 asked_mz_range =
true;
203 std::size_t mz_index_merge_window = 0;
206 mz_index_merge_window =
214 std::size_t scan_index = 0;
216 for(std::size_t tims_frame_id : subset_of_tims_frame_ids)
226 const FrameIdDescr ¤t_frame_record = frame_id_descr_list[tims_frame_id];
246 mobility_one_over_k0_range_begin =
250 mobility_one_over_k0_range_end =
254 mobility_scan_num_range_begin =
257 mobility_scan_num_range_end =
260 asked_ion_mobility_scan_num_range =
true;
268 if(asked_ion_mobility_scan_num_range)
270 if(mobility_scan_num_range_end > (count_of_mobility_scans - 1))
272 mobility_scan_num_range_end = count_of_mobility_scans - 1;
277 mobility_scan_num_range_begin = 0;
278 mobility_scan_num_range_end = count_of_mobility_scans - 1;
285 if(mobility_one_over_k0_range_begin == std::numeric_limits<double>::max())
286 mobility_one_over_k0_range_begin =
288 if(mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
289 mobility_one_over_k0_range_end =
292 mobility_scan_num_range_width =
293 mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
298 mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2));
310 spectrum_id.
setNativeId(QString(
"frame_id=%1 global_scan_index=%2 im_scan_range_begin=%3 "
311 "im_scan_range_end=%4")
314 .arg(mobility_scan_num_range_begin)
315 .arg(mobility_scan_num_range_end));
325 unsigned int frame_ms_level = tims_frame_csp.get()->
getMsLevel();
326 qualified_mass_spectrum.
setMsLevel(frame_ms_level);
332 mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2)));
335 qDebug() <<
"mobility_one_over_k0:" << mobility_one_over_k0
336 <<
"mobility_one_over_k0_range_begin:" << mobility_one_over_k0_range_begin
337 <<
"mobility_one_over_k0_range_end" << mobility_one_over_k0_range_end;
339 if(mobility_one_over_k0 == std::numeric_limits<double>::max() ||
340 mobility_one_over_k0_range_begin == std::numeric_limits<double>::max() ||
341 mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
344 "range are undefined."));
347 mobility_one_over_k0);
351 mobility_one_over_k0_range_end);
358 if(mobility_scan_num_range_begin == std::numeric_limits<quint32>::max() ||
359 mobility_scan_num_range_end == std::numeric_limits<quint32>::max())
364 mobility_scan_num_range_begin +
365 (mobility_scan_num_range_width / 2));
368 mobility_scan_num_range_begin);
383 quint32 min_mz_index_out = 0;
384 quint32 max_mz_index_out = 0;
389 mz_index_merge_window,
392 mobility_scan_num_range_begin,
393 mobility_scan_num_range_end,
400 mz_index_merge_window,
401 mobility_scan_num_range_begin,
402 mobility_scan_num_range_end,