ProteoWizard
Typedefs | Functions
DataFetcherContainerTest.cpp File Reference
#include "DataFetcherContainer.hpp"
#include "pwiz/data/misc/MinimumPepXML.hpp"
#include "pwiz/utility/misc/unit.hpp"
#include "boost/shared_ptr.hpp"

Go to the source code of this file.

Typedefs

typedef boost::shared_ptr
< DataFetcherContainer > 
DfcPtr

Functions

void testAdjustRT ()
void testGetAnchors ()
void testWarpRT ()
int main (int argc, char *argv[])

Typedef Documentation

typedef boost::shared_ptr<DataFetcherContainer> DfcPtr

Definition at line 39 of file DataFetcherContainerTest.cpp.


Function Documentation

void testAdjustRT ( )

Definition at line 236 of file DataFetcherContainerTest.cpp.

References makeFeature(), makeSpectrumQuery(), os_, pwiz::data::pepxml::SpectrumQuery::retentionTimeSec, and unit_assert.

Referenced by main().

{
DfcPtr dfc = makeDataFetcherContainer();
FeaturePtr ab = makeFeature(3.00727, 3.5);
ab->id = "99";
ab->charge = 1;
FeatureSequenced fs_ab;
fs_ab.feature = ab;
fs_ab.ms1_5="";
fs_ab.ms2="RAG";
SpectrumQuery a = makeSpectrumQuery(2, 2, 1, "KRH", 5, 6, 7);
SpectrumQuery b = makeSpectrumQuery(2, 4, 1, "RAG", 7, 8, 9);
vector<boost::shared_ptr<FeatureSequenced> > f_prime = dfc->_fdf_a->getBin().getAllContents();
if (os_)
{
ostringstream oss;
XMLWriter writer(oss);
vector<boost::shared_ptr<FeatureSequenced> >::iterator it = f_prime.begin();
for(; it != f_prime.end(); ++it)
{
(*it)->feature->write(writer);
oss << (*it)->ms1_5 << endl;
oss << (*it)->ms2 << endl;
}
fs_ab.feature->write(writer);
oss << fs_ab.ms1_5 << endl;
oss << fs_ab.ms2 << endl;
*os_ << oss.str() << endl;
}
// did the feature sequence get assigned as expected?
unit_assert(find_if(f_prime.begin(), f_prime.end(), IsObject<FeatureSequenced>(fs_ab)) != f_prime.end());
// did the peptide retention time get assigned as expected?
b.retentionTimeSec = 3.5;
vector<boost::shared_ptr<SpectrumQuery> > sq_prime = dfc->_pidf_a->getBin().getAllContents();
if (os_)
{
ostringstream oss;
XMLWriter writer(oss);
vector<boost::shared_ptr<SpectrumQuery> >::iterator it = sq_prime.begin();
for(; it != sq_prime.end(); ++it)
{
(*it)->write(writer);
}
*os_ << oss.str() << endl;
}
unit_assert(find_if(sq_prime.begin(), sq_prime.end(), IsObject<SpectrumQuery>(b)) != sq_prime.end());
// we also expect a's retention time to be set to that of feature ab, since it is the only option and therefore the best
unit_assert(find_if(sq_prime.begin(), sq_prime.end(), IsObject<SpectrumQuery>(a)) != sq_prime.end());
// were the appropriate flags set?
unit_assert(dfc->_pidf_a->getRtAdjustedFlag());
unit_assert(dfc->_fdf_a->getMS2LabeledFlag());
}
void testGetAnchors ( )

Definition at line 308 of file DataFetcherContainerTest.cpp.

References pwiz::eharmony::Default, and unit_assert.

Referenced by main().

{
PidfPtr pidf_a(makeBigPeptideID_dataFetcher());
PidfPtr pidf_b(makeBigBadPeptideID_dataFetcher());
DataFetcherContainer dfc(pidf_a, pidf_b, FdfPtr(new Feature_dataFetcher()), FdfPtr(new Feature_dataFetcher()));
dfc.warpRT(Default, 2); // get every 2nd anchor, using default tolerance of 100 seconds
vector<pair<double, double> > trueAnchors;
trueAnchors.push_back(make_pair(2,2));
unit_assert(trueAnchors == dfc.anchors());
trueAnchors.clear();
dfc.warpRT(Default,2, 110); // get every 2nd anchor, using higher tolerance of 110 seconds
trueAnchors.push_back(make_pair(2, 105));
trueAnchors.push_back(make_pair(2, 2));
unit_assert(trueAnchors == dfc.anchors());
}
void testWarpRT ( )

Definition at line 358 of file DataFetcherContainerTest.cpp.

References epsilon, pwiz::eharmony::Linear, and unit_assert_equal.

Referenced by main().

{
DataFetcherContainer dfc(makeWarpTestPidfA(), makeWarpTestPidfB(), makeWarpTestFdfA(), makeWarpTestFdfB());
dfc.adjustRT();
dfc.warpRT(Linear, 2);
vector<double> pidf_a_rts = getRTs(dfc._pidf_a);
vector<double> pidf_b_rts = getRTs(dfc._pidf_b);
vector<double> fdf_a_rts = getRTs(dfc._fdf_a);
vector<double> fdf_b_rts = getRTs(dfc._fdf_b);
vector<double> a_truth;
a_truth.push_back(0.49899999999999);
a_truth.push_back(1.74599200000000);
a_truth.push_back(3.00300000000000);
vector<double> b_truth;
b_truth.push_back(-0.7580079999999);
b_truth.push_back(2.99799200000000);
b_truth.push_back(5.51200800000000);
vector<double>::iterator par = pidf_a_rts.begin();
vector<double>::iterator far = fdf_a_rts.begin();
vector<double>::iterator at = a_truth.begin();
for(; at != a_truth.end(); ++at, ++far, ++par)
{
// unit_assert_equal(*par, *at, epsilon);
//unit_assert_equal(*far, *at, epsilon);
}
vector<double>::iterator pbr = pidf_b_rts.begin();
vector<double>::iterator fbr = fdf_b_rts.begin();
vector<double>::iterator bt = b_truth.begin();
for(; bt != b_truth.end(); ++bt, ++fbr, ++pbr)
{
}
}
int main ( int  argc,
char *  argv[] 
)

Definition at line 403 of file DataFetcherContainerTest.cpp.

References e(), os_, testAdjustRT(), testGetAnchors(), and testWarpRT().

{
try
{
if (argc>1 && !strcmp(argv[1],"-v")) os_ = &cout;
if (os_) *os_ << "DataFetcherContainerTest ... \n";
return 0;
}
catch (exception& e)
{
cerr << e.what() << endl;
}
catch (...)
{
cerr << "Caught unknown exception.\n";
}
return 1;
}