ProteoWizard
Public Member Functions | Protected Member Functions | List of all members
SpectrumPeakExtractorTest Class Reference

Public Member Functions

void Run ()
 

Protected Member Functions

virtual void SetUp ()
 
void TearDown ()
 
void ExtractPeaksTest ()
 

Detailed Description

Definition at line 30 of file SpectrumPeakExtractorTest.cpp.

Member Function Documentation

◆ Run()

void SpectrumPeakExtractorTest::Run ( )
inline

Definition at line 32 of file SpectrumPeakExtractorTest.cpp.

33  {
34  SetUp();
36  TearDown();
37  }

Referenced by main().

◆ SetUp()

virtual void SpectrumPeakExtractorTest::SetUp ( )
inlineprotectedvirtual

Definition at line 41 of file SpectrumPeakExtractorTest.cpp.

42  {
43  }

◆ TearDown()

void SpectrumPeakExtractorTest::TearDown ( )
inlineprotected

Definition at line 45 of file SpectrumPeakExtractorTest.cpp.

46  {
47  }

◆ ExtractPeaksTest()

void SpectrumPeakExtractorTest::ExtractPeaksTest ( )
inlineprotected

Definition at line 49 of file SpectrumPeakExtractorTest.cpp.

50  {
51  // Generate test data
52  MSData msd;
54 
55  // Remember which spectra correspond to what states
56  const int MS2_INDEX_0 = 1;
57  const int MS2_INDEX_1 = 3;
58 
59  auto centroidedPtr = msd.run.spectrumListPtr;
60 
61  Spectrum_const_ptr s20 = centroidedPtr->spectrum(MS2_INDEX_0, true);
62  SpectrumPtr s21 = centroidedPtr->spectrum(MS2_INDEX_1, true);
63 
64  // Build new mz and intensity arrays for the second spectrum
65  s21->binaryDataArrayPtrs.clear();
66  s21->setMZIntensityArrays(vector<double>(), vector<double>(), MS_number_of_detector_counts);
67  BinaryData<double>& newMzs = s21->getMZArray()->data;
68  BinaryData<double>& newIntensities = s21->getIntensityArray()->data;
69 
70  newMzs = vector<double>({ 0.0, 2.0, 2.000001, 3.999999, 4.0, 4.000001, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0 });
71  for (size_t mz = 0; mz < newMzs.size(); ++mz)
72  {
73  newIntensities.push_back(1.0);
74  }
75 
76  vector<double> s21ExpectedIntensities = { 1.0, 2.0, 3.0 };
77  while (s21ExpectedIntensities.size() < s20->getIntensityArray()->data.size())
78  {
79  s21ExpectedIntensities.push_back(1.0);
80  }
81 
82  // Create peak extractor to match mz set of the first spectrum
83  BinaryDataArrayPtr mzsToDemux = s20->getMZArray();
85 
86  // Test number of peaks
87  unit_assert_operator_equal(peakExtractor.numPeaks(), mzsToDemux->data.size());
88 
89  // Make matrix to extract peak info into
90  MatrixPtr signal;
91  int numSpectra = 2;
92  signal.reset(new MatrixType(numSpectra, mzsToDemux->data.size()));
93 
94  // Extract spectra
95  peakExtractor(s20, *signal, 0);
96  peakExtractor(s21, *signal, 1);
97 
98  // Check that self extraction returns the original spectrum
99  Spectrum_const_ptr baseSpectrum = centroidedPtr->spectrum(MS2_INDEX_0, true);
100  BinaryDataArrayPtr baseIntensities = baseSpectrum->getIntensityArray();
101  for (size_t i = 0; i < baseIntensities->data.size(); ++i)
102  {
103  unit_assert_equal(signal->row(0)[i], baseIntensities->data.at(i), 0.0001);
104  }
105 
106  // Check the second spectrum extraction
107  for (size_t i = 0; i < s21ExpectedIntensities.size(); ++i)
108  {
109  unit_assert_equal(signal->row(1)[i], s21ExpectedIntensities[i], 0.0001);
110  }
111 
112  // Now extract from the second spectrum, which has closely spaced peaks to simulate non-centroided data
114  unit_assert_operator_equal(binExamplePeakExtractor.numPeaks(), s21->getMZArray()->data.size());
115 
116  // Extract spectra
117  signal.reset(new MatrixType(numSpectra, s21->getMZArray()->data.size()));
118  binExamplePeakExtractor(s21, *signal, 0);
119  binExamplePeakExtractor(s20, *signal, 1);
120 
121  // Check the self extraction returns the original spectrum
122  for (size_t i = 0; i < s21->getIntensityArray()->data.size(); ++i)
123  {
124  unit_assert_equal(signal->row(0)[i], s21->getIntensityArray()->data.at(i), 0.0001);
125  }
126  }

References pwiz::identdata::examples::initializeTiny(), MS_number_of_detector_counts, pwiz::chemistry::Ion::mz(), pwiz::analysis::SpectrumPeakExtractor::numPeaks(), pwiz::chemistry::MZTolerance::PPM, pwiz::util::BinaryData< T >::push_back(), pwiz::msdata::MSData::run, pwiz::util::BinaryData< T >::size(), pwiz::msdata::Run::spectrumListPtr, unit_assert_equal, and unit_assert_operator_equal.


The documentation for this class was generated from the following file:
pwiz::msdata::BinaryDataArrayPtr
boost::shared_ptr< BinaryDataArray > BinaryDataArrayPtr
Definition: MSData.hpp:417
MS_number_of_detector_counts
MS_number_of_detector_counts
number of detector counts: The number of counted events observed in one or a group of elements of a d...
Definition: cv.hpp:741
SpectrumPeakExtractorTest::ExtractPeaksTest
void ExtractPeaksTest()
Definition: SpectrumPeakExtractorTest.cpp:49
unit_assert_equal
#define unit_assert_equal(x, y, epsilon)
Definition: unit.hpp:99
DemuxTypes::MatrixPtr
boost::shared_ptr< MatrixType > MatrixPtr
Definition: DemuxTypes.hpp:39
pwiz::chemistry::MZTolerance::PPM
@ PPM
Definition: MZTolerance.hpp:40
pwiz::util::BinaryData::size
size_t size() const
Definition: BinaryData.hpp:145
pwiz::chemistry::MZTolerance
struct for expressing m/z tolerance in either amu or ppm
Definition: MZTolerance.hpp:39
pwiz::msdata::MSData::run
Run run
a run in mzML should correspond to a single, consecutive and coherent set of scans on an instrument.
Definition: MSData.hpp:886
unit_assert_operator_equal
#define unit_assert_operator_equal(expected, actual)
Definition: unit.hpp:92
DemuxTypes::MatrixType
Matrix< DemuxScalar, Dynamic, Dynamic > MatrixType
Definition: DemuxTypes.hpp:38
pwiz::analysis::SpectrumPeakExtractor
Extracts sets of centroided peaks from spectra using a user-defined list of peaks to extract.
Definition: SpectrumPeakExtractor.hpp:34
pwiz::msdata::Spectrum_const_ptr
boost::shared_ptr< const msdata::Spectrum > Spectrum_const_ptr
Definition: DemuxTypes.hpp:29
pwiz::util::BinaryData::push_back
void push_back(const T &value)
Definition: BinaryData.hpp:362
pwiz::identdata::examples::initializeTiny
PWIZ_API_DECL void initializeTiny(IdentData &mzid)
pwiz::msdata::SpectrumPtr
boost::shared_ptr< Spectrum > SpectrumPtr
Definition: MSData.hpp:573
pwiz::util::BinaryData< double >
SpectrumPeakExtractorTest::TearDown
void TearDown()
Definition: SpectrumPeakExtractorTest.cpp:45
pwiz::msdata::Run::spectrumListPtr
SpectrumListPtr spectrumListPtr
all mass spectra and the acquisitions underlying them are described and attached here....
Definition: MSData.hpp:827
pwiz::chemistry::Ion::mz
double mz(double neutralMass, int protonDelta, int electronDelta=0, int neutronDelta=0)
Definition: Ion.hpp:78
pwiz::msdata::MSData
This is the root element of ProteoWizard; it represents the mzML element, defined as: intended to cap...
Definition: MSData.hpp:850
SpectrumPeakExtractorTest::SetUp
virtual void SetUp()
Definition: SpectrumPeakExtractorTest.cpp:41