ProteoWizard
Functions | Variables
SpectrumList_MGF_Test.cpp File Reference
#include "SpectrumList_MGF.hpp"
#include "TextWriter.hpp"
#include "pwiz/utility/minimxml/XMLWriter.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Std.hpp"

Go to the source code of this file.

Functions

void test ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 
const char * testMGF
 

Function Documentation

void test ( )

Definition at line 58 of file SpectrumList_MGF_Test.cpp.

References pwiz::msdata::MSData::instrumentConfigurationPtrs, MS_base_peak_intensity, MS_base_peak_m_z, MS_charge_state, MS_LCQ_Deca, MS_ms_level, MS_scan_start_time, MS_selected_ion_m_z, MS_spectrum_title, MS_total_ion_current, os_, testMGF, unit_assert, unit_assert_equal, and pwiz::identdata::IO::write().

59 {
60  if (os_) *os_ << "test()\n";
61 
62  if (os_) *os_ << "mgf:\n" << testMGF << endl;
63 
64  shared_ptr<istream> is(new istringstream(testMGF));
65 
66  // dummy would normally be read in from file
67 
68  MSData dummy;
70  dummy.instrumentConfigurationPtrs.back()->cvParams.push_back(MS_LCQ_Deca);
71  dummy.instrumentConfigurationPtrs.back()->userParams.push_back(UserParam("doobie", "420"));
72 
73  SpectrumListPtr sl = SpectrumList_MGF::create(is, dummy);
74 
75  if (os_)
76  {
78  write(*sl);
79  *os_ << endl;
80  }
81 
82  // check easy functions
83 
84  unit_assert(sl.get());
85  unit_assert(sl->size() == 2);
86  unit_assert(sl->find("index=0") == 0);
87  unit_assert(sl->find("index=1") == 1);
88 
89  // find the second spectrum by TITLE field
90  IndexList list = sl->findSpotID("small.pwiz.0004.0004.2");
91  unit_assert(list.size() == 1);
92  unit_assert(list[0] == 1);
93 
94  // look for a non-existent TITLE field
95  list.clear();
96  list = sl->findSpotID("fake title string");
97  unit_assert(list.size() == 0);
98 
99  // check scan 0
100 
101  unit_assert(sl->spectrumIdentity(0).index == 0);
102  unit_assert(sl->spectrumIdentity(0).id == "index=0");
103  unit_assert(sl->spectrumIdentity(0).sourceFilePosition != -1);
104 
105  SpectrumPtr s = sl->spectrum(0, false);
106 
107  unit_assert(s.get());
108  unit_assert(s->id == "index=0");
109  unit_assert(s->index == 0);
110  unit_assert(s->sourceFilePosition != -1);
111  unit_assert(s->cvParam(MS_spectrum_title).value == "small.pwiz.0003.0003.2");
112  unit_assert(s->cvParam(MS_ms_level).valueAs<int>() == 2);
113  unit_assert_equal(s->cvParam(MS_total_ion_current).valueAs<double>(), 64.992226, 1e-5);
114  unit_assert_equal(s->cvParam(MS_base_peak_m_z).valueAs<double>(), 231.38884, 1e-5);
115  unit_assert_equal(s->cvParam(MS_base_peak_intensity).valueAs<double>(), 26.545113, 1e-5);
116 
117  unit_assert(s->precursors.size() == 1);
118  Precursor& precursor0 = s->precursors[0];
119  unit_assert(precursor0.selectedIons.size() == 1);
120  unit_assert_equal(precursor0.selectedIons[0].cvParam(MS_selected_ion_m_z).valueAs<double>(), 810.79, 1e-5);
121 
122  unit_assert(s->defaultArrayLength == 3);
123  unit_assert(s->binaryDataArrayPtrs.empty());
124 
125  s = sl->spectrum(0, true);
126  unit_assert(s->defaultArrayLength == 3);
127  unit_assert(s->binaryDataArrayPtrs.size() == 2);
128  unit_assert(!s->binaryDataArrayPtrs[0]->data.empty() && !s->binaryDataArrayPtrs[1]->data.empty());
129 
130  vector<MZIntensityPair> pairs;
131  s->getMZIntensityPairs(pairs);
132 
133  if (os_)
134  {
135  *os_ << "scan 0:\n";
136  copy(pairs.begin(), pairs.end(), ostream_iterator<MZIntensityPair>(*os_, "\n"));
137  *os_ << endl;
138  }
139 
140 
141  // check scan 1
142 
143  unit_assert(sl->spectrumIdentity(1).index == 1);
144  unit_assert(sl->spectrumIdentity(1).id == "index=1");
145 
146  s = sl->spectrum(1, true);
147  unit_assert(s.get());
148  unit_assert(s->id == "index=1");
149  unit_assert(s->index == 1);
150  unit_assert(s->sourceFilePosition != -1);
151  unit_assert(s->cvParam(MS_spectrum_title).value == "small.pwiz.0004.0004.2");
152  unit_assert(s->cvParam(MS_ms_level).valueAs<int>() == 2);
153  unit_assert(s->scanList.scans.size() == 1);
154  unit_assert_equal(s->scanList.scans[0].cvParam(MS_scan_start_time).timeInSeconds(), 123.456, 1e-5);
155 
156  unit_assert(s->precursors.size() == 1);
157  Precursor& precursor1 = s->precursors[0];
158  unit_assert(precursor1.selectedIons.size() == 1);
159  unit_assert_equal(precursor1.selectedIons[0].cvParam(MS_selected_ion_m_z).valueAs<double>(), 837.34, 1e-5);
160  unit_assert(precursor1.selectedIons[0].cvParam(MS_charge_state).value == "2");
161 
162  unit_assert(s->defaultArrayLength == 5);
163 
164  pairs.clear();
165  s->getMZIntensityPairs(pairs);
166 
167  unit_assert(s->defaultArrayLength == pairs.size());
168 
169  if (os_)
170  {
171  *os_ << "scan 1:\n";
172  copy(pairs.begin(), pairs.end(), ostream_iterator<MZIntensityPair>(*os_, "\n"));
173  *os_ << endl;
174  }
175 }
int main ( int  argc,
char *  argv[] 
)

Definition at line 178 of file SpectrumList_MGF_Test.cpp.

References os_, test(), TEST_EPILOG, TEST_FAILED, and TEST_PROLOG.

179 {
180  TEST_PROLOG(argc, argv)
181 
182  try
183  {
184  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
185  test();
186  }
187  catch (exception& e)
188  {
189  TEST_FAILED(e.what())
190  }
191  catch (...)
192  {
193  TEST_FAILED("Caught unknown exception.")
194  }
195 
197 }

Variable Documentation

ostream* os_ = 0

Definition at line 36 of file SpectrumList_MGF_Test.cpp.

const char* testMGF
Initial value:
=
"BEGIN IONS\n"
"PEPMASS=810.790000\n"
"TITLE=small.pwiz.0003.0003.2\n"
"231.388840 26.545113\n"
"233.339828 20.447954\n"
"239.396149 17.999159\n"
"END IONS\n"
"BEGIN IONS\n"
"PEPMASS=837.340000\n"
"TITLE=small.pwiz.0004.0004.2\n"
"RTINSECONDS=123.456\n"
"CHARGE=2+\n"
"236.047043 11.674493\n"
"237.237091 24.431984\n"
"238.824036 10.019409\n"
"239.531403 6.842983\n"
"243.128693 89.586212\n"
"END IONS\n"

Definition at line 38 of file SpectrumList_MGF_Test.cpp.

Referenced by test().