29 #include "../../../pappsomspp/pappsoexception.h"
30 #include "../../../pappsomspp/exception/exceptionoutofrange.h"
70 if(p_bytes !=
nullptr)
80 QObject::tr(
"TimsFrame::TimsFrame(%1,%2,nullptr,%3) FAILED")
105 QObject::tr(
"TimsFrame::unshufflePacket error: len%4 != 0"));
108 quint64 nb_uint4 = len / 4;
111 quint64 src_offset = 0;
113 for(quint64 j = 0; j < 4; j++)
115 for(quint64 i = 0; i < nb_uint4; i++)
117 dest[(i * 4) + j] = src[src_offset];
140 std::size_t cumul = 0;
145 return (nb_uint4 - cumul) / 2;
151 return (*(quint32 *)(
m_timsDataFrame.constData() + ((scanNum + 1) * 4))) / 2;
157 std::size_t offset = 0;
158 for(std::size_t i = 0; i < (scanNum + 1); i++)
171 std::vector<quint32> scan_tof;
179 qint32 previous = -1;
180 for(std::size_t i = 0; i < scan_tof.size(); i++)
185 previous = scan_tof[i];
196 std::vector<quint32> scan_intensities;
199 return scan_intensities;
205 for(std::size_t i = 0; i < scan_intensities.size(); i++)
208 (offset * 4) + (i * 8) + 4));
211 return scan_intensities;
217 std::map<quint32, quint32> &accumulate_into)
const
230 qint32 previous = -1;
231 for(std::size_t i = 0; i < size; i++)
234 (*(quint32 *)((
m_timsDataFrame.constData() + (offset * 4) + (i * 8))) +
241 auto ret = accumulate_into.insert(std::pair<quint32, quint32>(
x, y));
243 if(ret.second ==
false)
246 ret.first->second += y;
255 std::size_t scanNumEnd)
const
265 std::map<quint32, quint32> raw_spectrum;
268 std::size_t imax = scanNumEnd + 1;
270 for(std::size_t i = scanNumBegin; i < imax; i++)
285 for(std::pair<quint32, quint32> pair_tof_intensity : raw_spectrum)
292 new_trace.push_back(data_point_cumul);
298 catch(std::exception &error)
301 "Failure in TimsFrame::cumulateScanToTrace %1 to %2 :\n %3")
302 .arg(scanNumBegin, scanNumEnd)
311 std::size_t scanNumBegin,
312 std::size_t scanNumEnd)
const
321 std::size_t imax = scanNumEnd + 1;
323 for(std::size_t i = scanNumBegin; i < imax; i++)
332 catch(std::exception &error)
334 qDebug() << QString(
"Failure in %1 %2 to %3 :\n %4")
354 qDebug() <<
" scanNum=" << scanNum;
361 std::make_shared<pappso::MassSpectrum>();
365 return mass_spectrum_sptr;
376 qint32 previous = -1;
378 std::vector<quint32> index_list;
380 for(std::size_t i = 0; i < size; i++)
383 (*(quint32 *)((
m_timsDataFrame.constData() + (offset * 4) + (i * 8))) +
391 previous = tof_index;
396 mass_spectrum_sptr.get()->push_back(data_point);
399 return mass_spectrum_sptr;
405 std::vector<TimsXicStructure>::iterator &itXicListbegin,
406 std::vector<TimsXicStructure>::iterator &itXicListend,
409 std::vector<TimsFrame::XicComputeStructure> tmp_xic_list;
411 for(
auto it = itXicListbegin; it != itXicListend; it++)
415 if(tmp_xic_list.size() == 0)
423 std::vector<std::size_t> unique_scan_num_list;
424 for(
auto &&struct_xic : tmp_xic_list)
426 for(std::size_t scan = struct_xic.mobilityIndexBegin;
427 scan <= struct_xic.mobilityIndexEnd;
430 unique_scan_num_list.push_back(scan);
433 std::sort(unique_scan_num_list.begin(), unique_scan_num_list.end());
434 auto it_scan_num_end =
435 std::unique(unique_scan_num_list.begin(), unique_scan_num_list.end());
436 auto it_scan_num = unique_scan_num_list.begin();
438 while(it_scan_num != it_scan_num_end)
441 for(
auto &&tmp_xic_struct : tmp_xic_list)
443 if(((*it_scan_num) >= tmp_xic_struct.mobilityIndexBegin) &&
444 ((*it_scan_num) <= tmp_xic_struct.mobilityIndexEnd))
448 tmp_xic_struct.tmpIntensity +=
449 ms_spectrum.get()->maxY(tmp_xic_struct.mzIndexLowerBound,
450 tmp_xic_struct.mzIndexUpperBound);
455 tmp_xic_struct.tmpIntensity +=
456 ms_spectrum.get()->sumY(tmp_xic_struct.mzIndexLowerBound,
457 tmp_xic_struct.mzIndexUpperBound);
464 for(
auto &&tmp_xic_struct : tmp_xic_list)
466 if(tmp_xic_struct.tmpIntensity != 0)
468 tmp_xic_struct.xic_ptr->push_back(
469 {
m_time, tmp_xic_struct.tmpIntensity});
492 qint32 previous = -1;
493 std::vector<quint32> index_list;
494 for(std::size_t i = 0; i < size; i++)
497 (*(quint32 *)((
m_timsDataFrame.constData() + (offset * 4) + (i * 8))) +
505 previous = data_point.
x;