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 =
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();
102 double rtframe = frame_sptr.get()->getTime();
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))
124 frame_sptr.get()->extractTimsXicListInRtRange(
127 qDebug() <<
"" << frame_sptr.get()->getId();
132 QObject::tr(
"Xic extraction process interrupted"));
TimsFrameCstSPtr getTimsFrameCstSPtrCached(std::size_t timsId)
get a Tims frame with his database ID but look in the cache first
std::vector< std::size_t > getTimsMS1FrameIdRange(double rt_begin, double rt_end) const
virtual void setStatus(const QString &status)=0
current status of the process
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
virtual bool shouldIstop()=0
should the procces be stopped ? If true, then cancel process Use this function at strategic point of ...
virtual void count()=0
count steps report when a step is computed in an algorithm
std::shared_ptr< const TimsFrame > TimsFrameCstSPtr
coordinates of the XIC to extract and the resulting XIC after extraction