Loading...
Searching...
No Matches
pappso::TimsFrameType1 Class Reference

`#include <timsframetype1.h>`

Inheritance diagram for pappso::TimsFrameType1:

## Public Member Functions

| TimsFrameType1 (std::size_t timsId, quint32 scanNum, char *p_bytes, std::size_t len)
| TimsFrameType1 (const TimsFrameType1 &other)
virtual | ~TimsFrameType1 ()
virtual std::size_t | getScanPeakCount (std::size_t scanNum) const override
| get the number of peaks in this spectrum need the binary file
virtual std::vector< quint32 > | getScanTofIndexList (std::size_t scanNum) const override
| get raw index list for one given scan index are not TOF nor m/z, just index on digitizer
virtual std::vector< quint32 > | getScanIntensityList (std::size_t scanNum) const override
| get raw intensities without transformation from one scan it needs intensity normalization
virtual pappso::MassSpectrumSPtr | getMassSpectrumSPtr (std::size_t scanNum) const override
| get the mass spectrum corresponding to a scan number
Public Member Functions inherited from pappso::TimsFrame
| TimsFrame (std::size_t timsId, quint32 scanNum, char *p_bytes, std::size_t len)
| TimsFrame (const TimsFrame &other)
virtual | ~TimsFrame ()
virtual Trace | cumulateScansToTrace (std::size_t scanIndexBegin, std::size_t scanIndexEnd) const override
| cumulate scan list into a trace
virtual Trace | combineScansToTraceWithDowngradedMzResolution (std::size_t mzindex_merge_window, std::size_t scanNumBegin, std::size_t scanNumEnd, quint32 &mz_minimum_index, quint32 &mz_maximum_index) const override
| cumulate spectrum given a scan number range need the binary file The intensities are normalized with respect to the frame accumulation time to leverage computing performance, this function decreases the mz resolution
virtual Trace | combineScansToTraceWithDowngradedMzResolution2 (std::size_t mz_index_merge_window, double mz_range_begin, double mz_range_end, std::size_t mobility_scan_begin, std::size_t mobility_scan_end, quint32 &mz_minimum_index_out, quint32 &mz_maximum_index_out) const override
| cumulate spectrum given a scan number range need the binary file The intensities are normalized with respect to the frame accumulation time to leverage computing performance, this function decreases the mz resolution
void | combineScansInTofIndexIntensityMap (TimsDataFastMap &rawSpectrum, std::size_t scan_index_begin, std::size_t scan_index_end) const override
| cumulate scan list into a trace into a raw spectrum map
virtual void | combineScansInTofIndexIntensityMap (TimsDataFastMap &tof_index_intensity_map, std::size_t scan_index_begin, std::size_t scan_index_end, quint32 tof_index_begin, quint32 tof_index_end) const override
| cumulate scan list into a trace into a raw spectrum map The intensities are NOT normalized with respect to the frame accumulation time
virtual Trace | getMobilityScan (std::size_t scanNum, std::size_t mz_index_merge_window, double mz_range_begin, double mz_range_end, quint32 &mz_minimum_index_out, quint32 &mz_maximum_index_out) const override
| get a single mobility scan m/z + intensities
virtual quint64 | cumulateScanIntensities (std::size_t scanNum) const override
virtual quint64 | cumulateScanRangeIntensities (std::size_t scanNumBegin, std::size_t scanNumEnd) const override
| ...
Public Member Functions inherited from pappso::TimsFrameBase
| TimsFrameBase (std::size_t frameId, quint32 scanCount)
| constructor for binary independant tims frame
| TimsFrameBase (const TimsFrameBase &other)
virtual | ~TimsFrameBase ()
virtual bool | hasSameCalibrationData (const TimsFrameBase &other) const
| tells if 2 tims frame has the same calibration data Usefull to know if raw data can be handled between frames
virtual std::size_t | getTotalNumberOfScans () const
| get the number of scans contained in this frame each scan represents an ion mobility slice
virtual quint32 | getMaximumRawMassIndex () const
| get the maximum raw mass index contained in this frame
virtual pappso::MassSpectrumCstSPtr | getMassSpectrumCstSPtr (std::size_t scan_index) const final
| get the mass spectrum corresponding to a scan index
bool | checkScanNum (std::size_t scanNum) const
| check that this scan number exists
void | setAcqDurationInMilliseconds (double acquisition_duration_ms)
void | setMzCalibration (double T1_frame, double T2_frame, double digitizerTimebase, double digitizerDelay, double C0, double C1, double C2, double C3, double C4, double T1_ref, double T2_ref, double dC1, double dC2)
void | setTimsCalibration (int tims_model_type, double C0, double C1, double C2, double C3, double C4, double C5, double C6, double C7, double C8, double C9)
void | setRtInSeconds (double time)
void | setMsMsType (quint8 type)
unsigned int | getMsLevel () const
double | getRtInSeconds () const
std::size_t | getId () const
double | getDriftTimeInMilliseconds (std::size_t scan_index) const
| get drift time of a scan number in milliseconds
double | getOneOverK0Transformation (std::size_t scan_index) const
| get 1/K0 value of a given scan (mobility value)
std::size_t | getScanIndexFromOneOverK0 (double one_over_k0) const
| get the scan number from a given 1/Ko mobility value
double | getVoltageTransformation (std::size_t scanNum) const
| get voltage for a given scan number
pappso::Trace | getTraceFromTofIndexIntensityMap (TimsDataFastMap &accumulated_scans) const
| transform accumulation of raw scans into a real mass spectrum
virtual const MzCalibrationInterfaceSPtr & | getMzCalibrationInterfaceSPtr () const final
| get the MzCalibration model to compute mz and TOF for this frame
void | setMzCalibrationInterfaceSPtr (MzCalibrationInterfaceSPtr mzCalibration)
virtual Trace | getIonMobilityTraceByTofIndexRange (std::size_t tof_index_begin, std::size_t tof_index_end, Enums::XicExtractMethod method, std::size_t scan_index_begin, std::size_t scan_index_end) const
| get a mobility trace cumulating intensities inside the given mass index range

## Protected Member Functions

virtual void | cumulateScan (std::size_t scanNum, TimsDataFastMap &accumulate_into) const override
| cumulate a scan into a map
virtual void | cumulateScan2 (std::size_t scanNum, TimsDataFastMap &accumulate_into, quint32 accepted_tof_index_range_begin, quint32 accepted_tof_index_range_end) const override
virtual pappso::TraceSPtr | getRawTraceSPtr (std::size_t scanNum) const override
| get the raw index tof_index and intensities (normalized)
virtual std::vector< TofIndexIntensityPair > | getRawValuePairList (std::size_t scanNum, quint32 accepted_tof_index_range_begin, quint32 accepted_tof_index_range_end) const override
| get the raw index tof_index and intensities (normalized)
Protected Member Functions inherited from pappso::TimsFrame
| TimsFrame (std::size_t timsId, quint32 scanNum)
| constructor for binary independant tims frame
void | extractTimsXicListInRtRange (std::vector< XicCoordTims * >::iterator &itXicListbegin, std::vector< XicCoordTims * >::iterator &itXicListend, Enums::XicExtractMethod method) const
Protected Member Functions inherited from pappso::TimsFrameBase
virtual std::vector< TofIndexIntensityPair > & | downgradeResolutionOfTofIndexIntensityPairList (std::size_t tof_index_merge_window, std::vector< TofIndexIntensityPair > &spectrum) const
| Downgrade the TOF index resolution to lower the number of real m/z computations.

## Private Member Functions

void | copyAndLzfDecompress (const char *src, std::size_t len)
| copy buffer header and lzf decompress each scan for tims compression type 1
unsigned int | lzfDecompressScan (const char *src, unsigned int src_len, char *dest, unsigned int dest_len)
| decompress a single LZF compressed scan buffer

## Private Attributes

std::vector< std::size_t > | m_scanOffsetList
std::vector< std::size_t > | m_scanSizeList

## Additional Inherited Members

Protected Attributes inherited from pappso::TimsFrame
QByteArray | m_binaryData
Protected Attributes inherited from pappso::TimsFrameBase
quint32 | m_scanCount
| total number of scans contained in this frame
std::size_t | m_frameId
| Tims frame database id (the SQL identifier of this frame).
double | m_acqDurationInMilliseconds = 0
| acquisition duration in milliseconds
quint8 | m_msMsType = 0
double | m_rtInSeconds = 0
| retention time
double | m_timsDvStart = 0
double | m_timsSlope
double | m_timsTtrans = 0
double | m_timsNdelay = 0
double | m_timsVmin = 0
double | m_timsVmax = 0
double | m_timsC6 = 0
double | m_timsC7 = 0
MzCalibrationInterfaceSPtr | msp_mzCalibration = nullptr

## Detailed Description

Todo
  write docs

Definition at line 38 of file timsframetype1.h.

## Constructor & Destructor Documentation

## TimsFrameType1() [1/2]

pappso::TimsFrameType1::TimsFrameType1 | ( | std::size_t | timsId,
|  | quint32 | scanNum,
|  | char * | p_bytes,
|  | std::size_t | len )

Parameters

  timsId | tims frame id
  scanNum | total number of scans in this frame
  p_bytes | pointer on the decompressed binary buffer
  len | size of the decompressed binary buffer

Definition at line 41 of file timsframetype1.cpp.

: TimsFrame(timsId, scanNum)
{
qDebug() << timsId;
m_binaryData.resize(len * 2);
if(p_bytes != nullptr)
{
qDebug() << timsId;
copyAndLzfDecompress(p_bytes, len);
qDebug() << timsId;
}
else
{
if(m_scanCount == 0)
{
throw pappso::PappsoException(
QObject::tr("TimsFrameType1::TimsFrameType1(%1,%2,nullptr,%3) FAILED")
.arg(m_frameId)
.arg(m_scanCount)
.arg(len));
}
}
}
pappso::TimsFrameBase::m_scanCount
quint32 m_scanCount
total number of scans contained in this frame
Definition timsframebase.h:384
pappso::TimsFrameBase::m_frameId
std::size_t m_frameId
Tims frame database id (the SQL identifier of this frame).
Definition timsframebase.h:390
pappso::TimsFrameType1::copyAndLzfDecompress
void copyAndLzfDecompress(const char *src, std::size_t len)
copy buffer header and lzf decompress each scan for tims compression type 1
Definition timsframetype1.cpp:77
pappso::TimsFrame::TimsFrame
TimsFrame(std::size_t timsId, quint32 scanNum, char *p_bytes, std::size_t len)
Definition timsframe.cpp:57
pappso::TimsFrame::m_binaryData
QByteArray m_binaryData
Definition timsframe.h:288

References pappso::TimsFrame::TimsFrame(), copyAndLzfDecompress(), pappso::TimsFrame::m_binaryData, pappso::TimsFrameBase::m_frameId, and pappso::TimsFrameBase::m_scanCount.

Referenced by TimsFrameType1().

## TimsFrameType1() [2/2]

pappso::TimsFrameType1::TimsFrameType1 | ( | const TimsFrameType1 & | other | ) |

Copy constructor

Parameters

  other | TODO

Definition at line 67 of file timsframetype1.cpp.

: TimsFrame(other)
{
}

References pappso::TimsFrame::TimsFrame(), and TimsFrameType1().

## ~TimsFrameType1()

pappso::TimsFrameType1::~TimsFrameType1 | ( |  | ) |

virtual

Destructor

Definition at line 71 of file timsframetype1.cpp.

{
}

## Member Function Documentation

## copyAndLzfDecompress()

void pappso::TimsFrameType1::copyAndLzfDecompress | ( | const char * | src,
|  | std::size_t | len )

private

copy buffer header and lzf decompress each scan for tims compression type 1

Parameters

  src | raw data buffer containing scan offsets and LZF compressed scans
  len | length of the data buffer

Definition at line 77 of file timsframetype1.cpp.

{
qDebug() << " m_scanNumber=" << m_scanCount << " len=" << len;
// the start position offset for each scan and the length of the last scan
// copy first m_scanNumber*4 bytes in qbyte array
std::size_t count = (m_scanCount + 2) * 4;
qDebug() << " count=" << count;
if(m_binaryData.size() < (long)(count + count))
{
qDebug() << " m_timsDataFrame.size()=" << m_binaryData.size();
m_binaryData.resize(count + count);
}
/*
std::size_t decompressed_size =
lzfDecompressScan(src + 3687 - 8,
9,
m_timsDataFrame.data() + 3660,
m_timsDataFrame.size() - 3660);
qDebug() << "decompressed_size=" << decompressed_size;
*/
// memcpy(m_timsDataFrame.data(), src, count);
qDebug() << "offset begin at last :" << count + 4;
// std::vector<std::size_t> compressed_len_list;
std::size_t offset;
std::size_t previous_offset = (*(quint32 *)(src));
qDebug() << "first offset= " << previous_offset;
std::size_t cumul_decompressed_size = 0;
for(quint32 i = 1; i <= m_scanCount; i++)
{
offset = (*(quint32 *)(src + (i * 4)));
std::size_t compressed_size = offset - previous_offset;
qDebug() << "scan i=" << i << " previous_offset=" << previous_offset << " offset=" << offset
<< " length=" << compressed_size;
// compressed_len_list.push_back(offset - previous_offset);
std::size_t remaining_size = m_binaryData.size();
if(cumul_decompressed_size < remaining_size)
{
remaining_size = remaining_size - cumul_decompressed_size;
}
else
{
remaining_size = 0;
}
qDebug() << " remaining_size=" << remaining_size;
std::size_t decompressed_size =
lzfDecompressScan(src + previous_offset - 8,
compressed_size,
m_binaryData.data() + cumul_decompressed_size,
remaining_size);
m_scanOffsetList.push_back(cumul_decompressed_size);
m_scanSizeList.push_back(decompressed_size / 4);
cumul_decompressed_size += decompressed_size;
qDebug() << " decompressed_size=" << decompressed_size;
previous_offset = offset;
}
/*
std::size_t last_offset = (*(quint32 *)(src + (m_scanNumber * 4)));
qDebug() << "last scan length :" << last_offset;
qDebug() << "last scan length bonus:"
<< (*(quint32 *)(src + (m_scanNumber + 1 * 4)));
qDebug() << " m_scanOffsetList.size()=" << m_scanOffsetList.size()
<< " m_scanNumber=" << m_scanNumber;
*/
/*
throw PappsoException(
QObject::tr("ERROR reading TimsFrameType1 ").arg(m_timsId));
*/
}
pappso::TimsFrameType1::m_scanSizeList
std::vector< std::size_t > m_scanSizeList
Definition timsframetype1.h:147
pappso::TimsFrameType1::lzfDecompressScan
unsigned int lzfDecompressScan(const char *src, unsigned int src_len, char *dest, unsigned int dest_len)
decompress a single LZF compressed scan buffer
Definition timsframetype1.cpp:165
pappso::TimsFrameType1::m_scanOffsetList
std::vector< std::size_t > m_scanOffsetList
Definition timsframetype1.h:146

References lzfDecompressScan(), pappso::TimsFrame::m_binaryData, pappso::TimsFrameBase::m_scanCount, m_scanOffsetList, and m_scanSizeList.

Referenced by TimsFrameType1().

## cumulateScan()

void pappso::TimsFrameType1::cumulateScan | ( | std::size_t | scanNum,
|  | TimsDataFastMap & | accumulate_into ) const

override protected virtual

cumulate a scan into a map

Parameters

  scanNum | scan number 0 to (m_scanNumber-1)

Reimplemented from pappso::TimsFrame.

Definition at line 213 of file timsframetype1.cpp.

{
if(m_binaryData.size() == 0)
return;
// checkScanNum(scanNum);
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
// qDebug() << "begin offset=" << offset << " size=" << size;
qint32 value = 0;
qint32 tof_index = 0;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
// qDebug() << " i=" << i << " value=" << value;
if(value < 0)
{
tof_index += -1 * value;
}
else
{
quint32 x = tof_index;
quint32 y = value;
accumulate_into.accumulateIntensity(x, y);
tof_index++;
}
}
qDebug() << "end";
}
pappso::PeptideIonCter::y
@ y
Definition peptide.h:87
pappso::PeptideIonCter::x
@ x
Definition peptide.h:92

References pappso::TimsDataFastMap::accumulateIntensity(), pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, pappso::x, and pappso::y.

## cumulateScan2()

void pappso::TimsFrameType1::cumulateScan2 | ( | std::size_t | scanNum,
|  | TimsDataFastMap & | accumulate_into,
|  | quint32 | accepted_tof_index_range_begin,
|  | quint32 | accepted_tof_index_range_end ) const

override protected virtual

Reimplemented from pappso::TimsFrame.

Definition at line 252 of file timsframetype1.cpp.

{
if(m_binaryData.size() == 0)
return;
// checkScanNum(scanNum);
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
// qDebug() << "begin offset=" << offset << " size=" << size;
qint32 value = 0;
qint32 tof_index = 0;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
// qDebug() << " i=" << i << " value=" << value;
if(value < 0)
{
tof_index += -1 * value;
}
else
{
quint32 x = tof_index;
quint32 y = value;
if(x < accepted_tof_index_range_begin)
{
tof_index++;
continue;
}
if(x > accepted_tof_index_range_end)
{
break;
}
accumulate_into.accumulateIntensity(x, y);
tof_index++;
}
}
qDebug() << "end";
}

References pappso::TimsDataFastMap::accumulateIntensity(), pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, pappso::x, and pappso::y.

## getMassSpectrumSPtr()

pappso::MassSpectrumSPtr pappso::TimsFrameType1::getMassSpectrumSPtr | ( | std::size_t | scanNum | ) | const

override virtual

get the mass spectrum corresponding to a scan number

Parameters

  scanNum | the scan number to retrieve

Reimplemented from pappso::TimsFrame.

Definition at line 423 of file timsframetype1.cpp.

{
qDebug() << " scanNum=" << scanNum;
checkScanNum(scanNum);
try
{
qDebug();
pappso::MassSpectrumSPtr mass_spectrum_sptr = std::make_shared<pappso::MassSpectrum>();
// std::vector<DataPoint>
if(m_binaryData.size() == 0)
return mass_spectrum_sptr;
qDebug();
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
qDebug() << " offset=" << offset << " size=" << size;
if(size == 0)
return mass_spectrum_sptr;
MzCalibrationInterface *mz_calibration_p = getMzCalibrationInterfaceSPtr().get();
qint32 value = 0;
qint32 tof_index = 0;
// std::vector<quint32> index_list;
DataPoint data_point;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
if(value < 0)
{
tof_index += -1 * value;
}
else
{
data_point.y = value;
// intensity normalization
data_point.y *= 100.0 / m_acqDurationInMilliseconds;
// mz calibration
data_point.x = mz_calibration_p->getMzFromTofIndex(tof_index);
mass_spectrum_sptr.get()->push_back(data_point);
tof_index++;
}
}
qDebug() << mass_spectrum_sptr.get()->toString();
return mass_spectrum_sptr;
}
catch(PappsoException &error)
{
throw pappso::PappsoException(
QObject::tr("Error TimsFrameType1::getMassSpectrumSPtr frameId=%1 "
"scanNum=%2 :\n%3")
.arg(getId())
.arg(scanNum)
.arg(error.qwhat()));
}
}
pappso::TimsFrameBase::m_acqDurationInMilliseconds
double m_acqDurationInMilliseconds
acquisition duration in milliseconds
Definition timsframebase.h:394
pappso::TimsFrameBase::getMzCalibrationInterfaceSPtr
virtual const MzCalibrationInterfaceSPtr & getMzCalibrationInterfaceSPtr() const final
get the MzCalibration model to compute mz and TOF for this frame
Definition timsframebase.cpp:404
pappso::TimsFrameBase::checkScanNum
bool checkScanNum(std::size_t scanNum) const
check that this scan number exists
Definition timsframebase.cpp:103
pappso::TimsFrameBase::getId
std::size_t getId() const
Definition timsframebase.cpp:275
pappso::MassSpectrumSPtr
std::shared_ptr< MassSpectrum > MassSpectrumSPtr
Definition massspectrum.h:53

References pappso::TimsFrameBase::checkScanNum(), pappso::TimsFrameBase::getId(), pappso::TimsFrameBase::getMzCalibrationInterfaceSPtr(), pappso::MzCalibrationInterface::getMzFromTofIndex(), pappso::TimsFrameBase::m_acqDurationInMilliseconds, pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, pappso::PappsoException::qwhat(), pappso::DataPoint::x, and pappso::DataPoint::y.

Referenced by getScanPeakCount().

## getRawTraceSPtr()

pappso::TraceSPtr pappso::TimsFrameType1::getRawTraceSPtr | ( | std::size_t | scanNum | ) | const

override protected virtual

get the raw index tof_index and intensities (normalized)

Parameters

  scanNum | the scan number to extract

Returns
  trace vector

Reimplemented from pappso::TimsFrame.

Definition at line 497 of file timsframetype1.cpp.

{
// qDebug();
pappso::TraceSPtr trace_sptr = std::make_shared<pappso::Trace>();
// std::vector<DataPoint>
if(m_binaryData.size() == 0)
return trace_sptr;
qDebug();
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
qDebug() << " offset=" << offset << " size=" << size;
if(size == 0)
return trace_sptr;
// qDebug();
qint32 value = 0;
qint32 tof_index = 0;
// std::vector<quint32> index_list;
DataPoint data_point;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
if(value < 0)
{
tof_index += -1 * value;
}
else
{
data_point.y = value;
// intensity normalization
data_point.y *= 100.0 / m_acqDurationInMilliseconds;
// mz calibration
data_point.x = tof_index;
trace_sptr.get()->push_back(data_point);
tof_index++;
}
}
// qDebug();
return trace_sptr;
}
pappso::TraceSPtr
std::shared_ptr< Trace > TraceSPtr
Definition trace.h:139

References pappso::TimsFrameBase::m_acqDurationInMilliseconds, pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, pappso::DataPoint::x, and pappso::DataPoint::y.

## getRawValuePairList()

std::vector< TimsFrameType1::TofIndexIntensityPair > pappso::TimsFrameType1::getRawValuePairList | ( | std::size_t | scanNum,
|  | quint32 | accepted_tof_index_range_begin,
|  | quint32 | accepted_tof_index_range_end ) const

override protected virtual

get the raw index tof_index and intensities (normalized)

Parameters

  scanNum | the scan number to extract
  accepted_tof_index_range_begin | mz index begin
  accepted_tof_index_range_end | mz index end

Returns
  vector of RawValuePair

Reimplemented from pappso::TimsFrame.

Definition at line 553 of file timsframetype1.cpp.

{
// qDebug();
std::vector<TimsFrame::TofIndexIntensityPair> trace_sptr;
// std::vector<DataPoint>
if(m_binaryData.size() == 0)
return trace_sptr;
qDebug();
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
qDebug() << " offset=" << offset << " size=" << size;
if(size == 0)
return trace_sptr;
// qDebug();
qint32 value = 0;
qint32 tof_index = 0;
// std::vector<quint32> index_list;
TimsFrame::TofIndexIntensityPair data_point;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
if(value < 0)
{
tof_index += -1 * value;
}
else
{
data_point.intensity_index = value;
if(data_point.intensity_index < accepted_tof_index_range_begin)
{
tof_index++;
continue;
}
if(data_point.intensity_index > accepted_tof_index_range_end)
{
break;
}
// intensity normalization
data_point.intensity_index *= 100.0 / m_acqDurationInMilliseconds;
// mz calibration
data_point.tof_index = tof_index;
trace_sptr.push_back(data_point);
tof_index++;
}
}
// qDebug();
return trace_sptr;
}

References pappso::TimsFrameBase::TofIndexIntensityPair::intensity_index, pappso::TimsFrameBase::m_acqDurationInMilliseconds, pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, and pappso::TimsFrameBase::TofIndexIntensityPair::tof_index.

## getScanIntensityList()

std::vector< quint32 > pappso::TimsFrameType1::getScanIntensityList | ( | std::size_t | scanNum | ) | const

override virtual

get raw intensities without transformation from one scan it needs intensity normalization

Reimplemented from pappso::TimsFrame.

Definition at line 362 of file timsframetype1.cpp.

{
qDebug() << " scanNum=" << scanNum;
checkScanNum(scanNum);
std::vector<quint32> int_values;
try
{
qDebug();
if(m_binaryData.size() == 0)
return int_values;
qDebug();
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
qDebug() << " offset=" << offset << " size=" << size;
if(size == 0)
return int_values;
qint32 value = 0;
qint32 tof_index = 0;
// std::vector<quint32> index_list;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
if(value < 0)
{
tof_index += -1 * value;
}
else
{
int_values.push_back(value);
tof_index++;
}
}
qDebug();
return int_values;
}
catch(PappsoException &error)
{
throw pappso::PappsoException(QObject::tr("Error %1 frameId=%2 "
"scanNum=%3 :\n%4")
.arg(__FUNCTION__)
.arg(getId())
.arg(scanNum)
.arg(error.qwhat()));
}
}

References pappso::TimsFrameBase::checkScanNum(), pappso::TimsFrameBase::getId(), pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, and pappso::PappsoException::qwhat().

## getScanPeakCount()

std::size_t pappso::TimsFrameType1::getScanPeakCount | ( | std::size_t | scanIndex | ) | const

override virtual

get the number of peaks in this spectrum need the binary file

Parameters

  scanIndex | scan index in the frame in the order it lies in frame's binary data, from 0 to N-1

Reimplemented from pappso::TimsFrame.

Definition at line 205 of file timsframetype1.cpp.

{
pappso::MassSpectrumSPtr mass_spectrum_sptr = getMassSpectrumSPtr(scanNum);
return mass_spectrum_sptr.get()->size();
}
pappso::TimsFrameType1::getMassSpectrumSPtr
virtual pappso::MassSpectrumSPtr getMassSpectrumSPtr(std::size_t scanNum) const override
get the mass spectrum corresponding to a scan number
Definition timsframetype1.cpp:423

References getMassSpectrumSPtr().

## getScanTofIndexList()

std::vector< quint32 > pappso::TimsFrameType1::getScanTofIndexList | ( | std::size_t | scanNum | ) | const

override virtual

get raw index list for one given scan index are not TOF nor m/z, just index on digitizer

Reimplemented from pappso::TimsFrame.

Definition at line 303 of file timsframetype1.cpp.

{
qDebug();
checkScanNum(scanNum);
std::vector<quint32> mzindex_values;
try
{
qDebug();
if(m_binaryData.size() == 0)
return mzindex_values;
qDebug();
std::size_t size = m_scanSizeList[scanNum];
std::size_t offset = m_scanOffsetList[scanNum];
qDebug() << " offset=" << offset << " size=" << size;
if(size == 0)
return mzindex_values;
qint32 value = 0;
qint32 tof_index = 0;
// std::vector<quint32> index_list;
for(std::size_t i = 0; i < size; i++)
{
value = (*(qint32 *)(m_binaryData.constData() + offset + (i * 4)));
if(value < 0)
{
tof_index += -1 * value;
}
else
{
mzindex_values.push_back(tof_index);
tof_index++;
}
}
qDebug();
return mzindex_values;
}
catch(PappsoException &error)
{
throw pappso::PappsoException(QObject::tr("Error %1 frameId=%2 "
"scanNum=%3 :\n%4")
.arg(__FUNCTION__)
.arg(getId())
.arg(scanNum)
.arg(error.qwhat()));
}
qDebug();
}

References pappso::TimsFrameBase::checkScanNum(), pappso::TimsFrameBase::getId(), pappso::TimsFrame::m_binaryData, m_scanOffsetList, m_scanSizeList, and pappso::PappsoException::qwhat().

## lzfDecompressScan()

unsigned int pappso::TimsFrameType1::lzfDecompressScan | ( | const char * | src,
|  | unsigned int | src_len,
|  | char * | dest,
|  | unsigned int | dest_len )

private

decompress a single LZF compressed scan buffer

Parameters

  src | pointer on the LZF compressed buffer
  src_len | length of the source buffer
  dest | pointer to the destination buffer (in the qbyte array)
  dest_len | length of the destination buffer (max possible in the qbytearray)

Returns
  scan decompressed size

Definition at line 165 of file timsframetype1.cpp.

{
qDebug() << "src=" << src << " src_len=" << src_len << " dest_len=" << dest_len;
if(src_len == 0)
return 0;
unsigned int decompressed_size;
unsigned int more_space = src_len * 2;
decompressed_size = lzf_decompress(src, src_len, dest, dest_len);
while(decompressed_size == 0)
{
qDebug() << "dest_len=" << dest_len;
qDebug() << "decompressed_size=" << decompressed_size;
if(errno == EINVAL)
{
throw PappsoException(QObject::tr("ERROR reading TimsFrameType1 %1 TIMS binary file %2: "
"LZF decompression error EINVAL")
.arg(m_frameId));
}
else if(errno == E2BIG)
{
qDebug() << " m_timsDataFrame.size()=" << m_binaryData.size()
<< " more_space=" << more_space;
m_binaryData.resize(m_binaryData.size() + more_space);
dest_len += more_space;
qDebug();
decompressed_size = lzf_decompress(src, src_len, dest, dest_len);
}
else
{
break;
}
}
return decompressed_size;
}

References pappso::TimsFrame::m_binaryData, and pappso::TimsFrameBase::m_frameId.

Referenced by copyAndLzfDecompress().

## Member Data Documentation

## m_scanOffsetList

std::vector<std::size_t> pappso::TimsFrameType1::m_scanOffsetList

private

Definition at line 146 of file timsframetype1.h.

Referenced by copyAndLzfDecompress(), cumulateScan(), cumulateScan2(), getMassSpectrumSPtr(), getRawTraceSPtr(), getRawValuePairList(), getScanIntensityList(), and getScanTofIndexList().

## m_scanSizeList

std::vector<std::size_t> pappso::TimsFrameType1::m_scanSizeList

private

Definition at line 147 of file timsframetype1.h.

Referenced by copyAndLzfDecompress(), cumulateScan(), cumulateScan2(), getMassSpectrumSPtr(), getRawTraceSPtr(), getRawValuePairList(), getScanIntensityList(), and getScanTofIndexList().

The documentation for this class was generated from the following files:

- pappsomspp/core/vendors/tims/timsframetype1.h
- pappsomspp/core/vendors/tims/timsframetype1.cpp