30 #include "boost/shared_ptr.hpp"
33 using namespace pwiz::util;
34 using namespace pwiz::minimxml;
35 using namespace pwiz::data::peakdata;
36 using namespace eharmony;
37 using boost::shared_ptr;
39 typedef boost::shared_ptr<DataFetcherContainer>
DfcPtr;
44 const double epsilon = 0.000001;
46 SpectrumQuery makeSpectrumQuery(
double precursorNeutralMass,
double rt,
int charge,
string sequence,
double score = 0.9,
int startScan = 0,
int endScan = 0)
50 spectrumQuery.
endScan = endScan;
61 analysisResult.
analysis =
"peptideprophet";
84 feature->retentionTime = retentionTime;
95 vector<SpectrumQuery> sq;
101 PidfPtr pidf(
new PeptideID_dataFetcher(mspa));
107 PidfPtr makeBigPeptideID_dataFetcher()
115 vector<SpectrumQuery> sq;
123 PidfPtr pidf(
new PeptideID_dataFetcher(mspa));
129 PidfPtr makeBigBadPeptideID_dataFetcher()
137 vector<SpectrumQuery> sq;
145 PidfPtr pidf(
new PeptideID_dataFetcher(mspa));
151 FdfPtr makeFeature_dataFetcher()
156 vector<FeaturePtr> f;
159 FdfPtr fdf(
new Feature_dataFetcher(f));
165 DfcPtr makeDataFetcherContainer()
168 FdfPtr fdf = makeFeature_dataFetcher();
170 DfcPtr dfc(
new DataFetcherContainer(pidf, pidf, fdf, fdf));
181 vector<boost::shared_ptr<SpectrumQuery> > sqs;
187 PidfPtr pidf(
new PeptideID_dataFetcher(sqs));
195 vector<boost::shared_ptr<SpectrumQuery> > sqs;
201 PidfPtr pidf(
new PeptideID_dataFetcher(sqs));
210 vector<FeaturePtr> features;
216 FdfPtr fdf(
new Feature_dataFetcher(features));
223 vector<FeaturePtr> features;
229 FdfPtr fdf(
new Feature_dataFetcher(features));
238 DfcPtr dfc = makeDataFetcherContainer();
243 FeatureSequenced fs_ab;
251 vector<boost::shared_ptr<FeatureSequenced> > f_prime = dfc->_fdf_a->getBin().getAllContents();
257 vector<boost::shared_ptr<FeatureSequenced> >::iterator it = f_prime.begin();
258 for(; it != f_prime.end(); ++it)
260 (*it)->feature->write(writer);
261 oss << (*it)->ms1_5 << endl;
262 oss << (*it)->ms2 << endl;
266 fs_ab.feature->write(writer);
267 oss << fs_ab.ms1_5 << endl;
268 oss << fs_ab.ms2 << endl;
269 *
os_ << oss.str() << endl;
279 vector<boost::shared_ptr<SpectrumQuery> > sq_prime = dfc->_pidf_a->getBin().getAllContents();
285 vector<boost::shared_ptr<SpectrumQuery> >::iterator it = sq_prime.begin();
286 for(; it != sq_prime.end(); ++it)
288 (*it)->write(writer);
292 *
os_ << oss.str() << endl;
310 PidfPtr pidf_a(makeBigPeptideID_dataFetcher());
311 PidfPtr pidf_b(makeBigBadPeptideID_dataFetcher());
313 DataFetcherContainer dfc(pidf_a, pidf_b,
FdfPtr(
new Feature_dataFetcher()),
FdfPtr(
new Feature_dataFetcher()));
316 vector<pair<double, double> > trueAnchors;
317 trueAnchors.push_back(make_pair(2,2));
324 trueAnchors.push_back(make_pair(2, 105));
325 trueAnchors.push_back(make_pair(2, 2));
334 vector<double> getRTs(
PidfPtr pidf)
336 vector<double> result;
337 vector<boost::shared_ptr<SpectrumQuery> > sqs = pidf->getAllContents();
338 vector<boost::shared_ptr<SpectrumQuery> >::iterator it = sqs.begin();
339 for(; it != sqs.end(); ++it) result.push_back((*it)->retentionTimeSec);
345 vector<double> getRTs(
FdfPtr fdf)
347 vector<double> result;
348 vector<FeatureSequencedPtr> fss = fdf->getAllContents();
349 vector<FeatureSequencedPtr>::iterator it = fss.begin();
350 for(; it != fss.end(); ++it) result.push_back((*it)->feature->retentionTime);
360 DataFetcherContainer dfc(makeWarpTestPidfA(), makeWarpTestPidfB(), makeWarpTestFdfA(), makeWarpTestFdfB());
364 vector<double> pidf_a_rts = getRTs(dfc._pidf_a);
365 vector<double> pidf_b_rts = getRTs(dfc._pidf_b);
366 vector<double> fdf_a_rts = getRTs(dfc._fdf_a);
367 vector<double> fdf_b_rts = getRTs(dfc._fdf_b);
369 vector<double> a_truth;
370 a_truth.push_back(0.49899999999999);
371 a_truth.push_back(1.74599200000000);
372 a_truth.push_back(3.00300000000000);
374 vector<double> b_truth;
375 b_truth.push_back(-0.7580079999999);
376 b_truth.push_back(2.99799200000000);
377 b_truth.push_back(5.51200800000000);
379 vector<double>::iterator par = pidf_a_rts.begin();
380 vector<double>::iterator far = fdf_a_rts.begin();
381 vector<double>::iterator at = a_truth.begin();
383 for(; at != a_truth.end(); ++at, ++far, ++par)
390 vector<double>::iterator pbr = pidf_b_rts.begin();
391 vector<double>::iterator fbr = fdf_b_rts.begin();
392 vector<double>::iterator bt = b_truth.begin();
394 for(; bt != b_truth.end(); ++bt, ++fbr, ++pbr)
403 int main(
int argc,
char* argv[])
408 if (argc>1 && !strcmp(argv[1],
"-v"))
os_ = &cout;
409 if (
os_) *
os_ <<
"DataFetcherContainerTest ... \n";
418 cerr << e.what() << endl;
422 cerr <<
"Caught unknown exception.\n";