ProteoWizard
Functions | Variables
Serializer_MGF_Test.cpp File Reference
#include "Serializer_MGF.hpp"
#include "Serializer_mzML.hpp"
#include "Diff.hpp"
#include "TextWriter.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "pwiz/utility/misc/Filesystem.hpp"
#include "pwiz/utility/misc/Std.hpp"

Go to the source code of this file.

Functions

void initializeTinyMGF (MSData &msd)
 
void testWriteRead (const MSData &msd)
 
void testWriteRead ()
 
int main (int argc, char *argv[])
 

Variables

ostream * os_ = 0
 

Function Documentation

void initializeTinyMGF ( MSData msd)

Definition at line 40 of file Serializer_MGF_Test.cpp.

References pwiz::msdata::Spectrum::defaultArrayLength, pwiz::msdata::FileDescription::fileContent, pwiz::msdata::MSData::fileDescription, pwiz::msdata::Spectrum::getIntensityArray(), pwiz::msdata::Spectrum::getMZArray(), pwiz::msdata::SpectrumIdentity::id, pwiz::msdata::SpectrumIdentity::index, MS_base_peak_intensity, MS_base_peak_m_z, MS_centroid_spectrum, MS_charge_state, MS_highest_observed_m_z, MS_lowest_observed_m_z, MS_m_z, MS_ms_level, MS_MSn_spectrum, MS_negative_scan, MS_no_combination, MS_number_of_counts, MS_peak_intensity, MS_positive_scan, MS_possible_charge_state, MS_scan_start_time, MS_selected_ion_m_z, MS_spectrum_title, MS_total_ion_current, pwiz::msdata::Spectrum::precursors, pwiz::msdata::MSData::run, pwiz::msdata::Spectrum::scanList, pwiz::msdata::ScanList::scans, pwiz::msdata::Precursor::selectedIons, pwiz::data::ParamContainer::set(), pwiz::msdata::Spectrum::setMZIntensityArrays(), pwiz::msdata::Run::spectrumListPtr, and UO_second.

Referenced by testWriteRead().

41 {
43  fc.set(MS_MSn_spectrum);
45 
46  //SourceFilePtr sourceFile(new SourceFile);
47  //sourceFile->set(MS_multiple_peak_list_nativeID_format);
48  // TODO: sourceFile->set(MS_Matrix_Science_MGF_file);
49  //msd.fileDescription.sourceFilePtrs.push_back(sourceFile);
50 
51  shared_ptr<SpectrumListSimple> spectrumList(new SpectrumListSimple);
52  msd.run.spectrumListPtr = spectrumList;
53  spectrumList->spectra.push_back(SpectrumPtr(new Spectrum));
54  spectrumList->spectra.push_back(SpectrumPtr(new Spectrum));
55 
56  Spectrum& s20 = *spectrumList->spectra[0];
57  s20.id = "index=0";
58  s20.index = 0;
59  s20.set(MS_spectrum_title, s20.id);
60 
61  s20.set(MS_MSn_spectrum);
62  s20.set(MS_ms_level, 2);
63 
65  s20.set(MS_positive_scan);
66  s20.set(MS_lowest_observed_m_z, 0.0);
67  s20.set(MS_highest_observed_m_z, 18.0);
68  s20.set(MS_base_peak_m_z, 0.0);
69  s20.set(MS_base_peak_intensity, 20.0);
70  s20.set(MS_total_ion_current, 110.0);
71 
72  s20.precursors.resize(1);
73  Precursor& s20precursor = s20.precursors.front();
74  s20precursor.selectedIons.resize(1);
75  s20precursor.selectedIons[0].set(MS_selected_ion_m_z, 445.34, MS_m_z);
76  s20precursor.selectedIons[0].set(MS_peak_intensity, 120053.0, MS_number_of_counts);
77  s20precursor.selectedIons[0].set(MS_charge_state, 2);
78 
80  s20.scanList.scans.push_back(Scan());
81  Scan& s20scan = s20.scanList.scans.back();
82  s20scan.set(MS_scan_start_time, 4.0, UO_second);
83 
84  s20.setMZIntensityArrays(vector<double>(), vector<double>(), MS_number_of_counts);
85  vector<double>& s20_mz = s20.getMZArray()->data;
86  vector<double>& s20_intensity = s20.getIntensityArray()->data;
87 
88  for (int i=0; i<10; i++)
89  s20_mz.push_back(i*2);
90 
91  for (int i=0; i<10; i++)
92  s20_intensity.push_back((10-i)*2);
93 
94  s20.defaultArrayLength = s20_mz.size();
95 
96 
97  Spectrum& s21 = *spectrumList->spectra[1];
98  s21.id = "index=1";
99  s21.index = 1;
100  s21.set(MS_spectrum_title, s21.id);
101 
102  s21.set(MS_MSn_spectrum);
103  s21.set(MS_ms_level, 2);
104 
106  s21.set(MS_negative_scan);
107  s21.set(MS_lowest_observed_m_z, 3.0);
108  s21.set(MS_highest_observed_m_z, 30.0);
109  s21.set(MS_base_peak_m_z, 3.0);
110  s21.set(MS_base_peak_intensity, 30.0);
111  s21.set(MS_total_ion_current, 165.0);
112 
113  s21.precursors.resize(1);
114  Precursor& s21precursor = s21.precursors.front();
115  s21precursor.selectedIons.resize(1);
116  s21precursor.selectedIons[0].set(MS_selected_ion_m_z, 424.24, MS_m_z);
117  s21precursor.selectedIons[0].set(MS_peak_intensity, 4242.0, MS_number_of_counts);
118  s21precursor.selectedIons[0].cvParams.push_back(CVParam(MS_possible_charge_state, 2));
119  s21precursor.selectedIons[0].cvParams.push_back(CVParam(MS_possible_charge_state, 3));
120 
122  s21.scanList.scans.push_back(Scan());
123  Scan& s21scan = s21.scanList.scans.back();
124  s21scan.set(MS_scan_start_time, 42.0, UO_second);
125 
126  s21.setMZIntensityArrays(vector<double>(), vector<double>(), MS_number_of_counts);
127  vector<double>& s21_mz = s21.getMZArray()->data;
128  vector<double>& s21_intensity = s21.getIntensityArray()->data;
129 
130  for (int i=1; i<=10; i++)
131  s21_mz.push_back(i*3);
132 
133  for (int i=0; i<10; i++)
134  s21_intensity.push_back((10-i)*3);
135 
136  s21.defaultArrayLength = s21_mz.size();
137 
138 } // initializeTinyMGF()
void testWriteRead ( const MSData msd)

Definition at line 141 of file Serializer_MGF_Test.cpp.

References diff(), pwiz::msdata::DiffConfig::ignoreChromatograms, pwiz::msdata::DiffConfig::ignoreIdentity, os_, pwiz::msdata::Serializer_MGF::read(), unit_assert, pwiz::identdata::IO::write(), pwiz::msdata::Serializer_MGF::write(), and pwiz::msdata::Serializer_mzML::write().

Referenced by main(), testThreadSafetyWorker(), and testWriteRead().

142 {
143  Serializer_MGF serializer;
144 
145  ostringstream oss;
146  serializer.write(oss, msd);
147 
148  if (os_) *os_ << "oss:\n" << oss.str() << endl;
149 
150  shared_ptr<istringstream> iss(new istringstream(oss.str()));
151  MSData msd2;
152  serializer.read(iss, msd2);
153 
154  DiffConfig diffConfig;
155  diffConfig.ignoreIdentity = true;
156  diffConfig.ignoreChromatograms = true;
157 
158  Diff<MSData, DiffConfig> diff(msd, msd2, diffConfig);
159  if (os_ && diff) *os_ << diff << endl;
160  unit_assert(!diff);
161 
162  if (os_)
163  {
164  *os_ << "msd2:\n";
165  Serializer_mzML mzmlSerializer;
166  mzmlSerializer.write(*os_, msd2);
167  *os_ << endl;
168 
169  *os_ << "msd2::";
170  TextWriter write(*os_);
171  write(msd2);
172 
173  *os_ << endl;
174  }
175 }
void testWriteRead ( )

Definition at line 178 of file Serializer_MGF_Test.cpp.

References initializeTinyMGF(), and testWriteRead().

179 {
180  MSData msd;
181  initializeTinyMGF(msd);
182 
183  testWriteRead(msd);
184 }
int main ( int  argc,
char *  argv[] 
)

Definition at line 187 of file Serializer_MGF_Test.cpp.

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

188 {
189  TEST_PROLOG(argc, argv)
190 
191  try
192  {
193  if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
194  testWriteRead();
195  }
196  catch (exception& e)
197  {
198  TEST_FAILED(e.what())
199  }
200  catch (...)
201  {
202  TEST_FAILED("Caught unknown exception.")
203  }
204 
206 }

Variable Documentation

ostream* os_ = 0

Definition at line 37 of file Serializer_MGF_Test.cpp.