48 std::vector<XicCoordSPtr>::iterator it_xic_coord_list_begin,
49 std::vector<XicCoordSPtr>::iterator it_xic_coord_list_end)
52 std::size_t xic_total_number =
53 std::distance(it_xic_coord_list_begin, it_xic_coord_list_end);
54 if(xic_total_number == 0)
57 std::vector<XicCoordTims *> xic_coord_tims_list;
58 xic_coord_tims_list.reserve(xic_total_number);
60 for(
auto it = it_xic_coord_list_begin; it != it_xic_coord_list_end; it++)
63 if(p_xic_coord_tims ==
nullptr)
68 xic_coord_tims_list.push_back(p_xic_coord_tims);
72 std::sort(xic_coord_tims_list.begin(),
73 xic_coord_tims_list.end(),
75 return pa->rtTarget < pb->rtTarget;
79 std::vector<std::size_t> tims_frameid_list =
80 mp_timsData->getTimsMS1FrameIdsInRtRange(
81 xic_coord_tims_list[0]->rtTarget - m_retentionTimeAroundTarget,
82 xic_coord_tims_list.back()->rtTarget + m_retentionTimeAroundTarget);
84 monitor.
setStatus(QObject::tr(
"extracting %1 XICs on %2 Tims frames")
85 .arg(xic_total_number)
86 .arg(tims_frameid_list.size()));
89 qDebug() <<
" tims_frameid_list.size()=" << tims_frameid_list.size();
90 qDebug() <<
" rt begin=" << xic_coord_tims_list[0]->rtTarget;
91 qDebug() <<
" rt end=" << xic_coord_tims_list.back()->rtTarget;
92 for(std::size_t frame_id : tims_frameid_list)
94 std::vector<XicCoordTims *>::iterator itXicListbegin =
95 xic_coord_tims_list.begin();
96 std::vector<XicCoordTims *>::iterator itXicListend =
97 xic_coord_tims_list.end();
100 mp_timsData->getTimsFrameCstSPtrCached(frame_id);
105 double rtbeginframe = rtframe - m_retentionTimeAroundTarget;
106 double rtendframe = rtframe + m_retentionTimeAroundTarget;
111 qDebug() << rtbeginframe;
112 while((itXicListbegin != itXicListend) &&
113 ((*itXicListbegin)->rtTarget < rtbeginframe))
118 itXicListend = itXicListbegin;
119 while((itXicListend != xic_coord_tims_list.end()) &&
120 ((*itXicListend)->rtTarget < rtendframe))
125 itXicListbegin, itXicListend, m_xicExtractMethod);
127 qDebug() <<
"" << frame_sptr.get()->
getId();
132 QObject::tr(
"Xic extraction process interrupted"));