void QuantitativeExperimentalDesign::applyDesign2Quantifier(PeptideAndProteinQuant & quantifier, TextFile & file, StringList & file_paths) { // vector< pair<PeptideAndProteinQuant::PeptideData,PeptideAndProteinQuant::ProteinQuant> >& result) //create mapping from experimental setting to all respective file names map<String, StringList> design2FileBaseName; mapFiles2Design_(design2FileBaseName, file); //filter out all non-existing files map<String, StringList> design2FilePath; findRelevantFilePaths_(design2FileBaseName, design2FilePath, file_paths); //determine wether we deal with idXML or featureXML FileTypes::Type in_type = FileHandler::getType(file_paths.front()); if (in_type == FileTypes::FEATUREXML) { FeatureMap<> features; for (map<String, StringList>::iterator iter = design2FilePath.begin(); iter != design2FilePath.end(); ++iter) { mergeFeatureMaps_(features, iter->first, iter->second); } LOG_INFO << "Number of proteinIdentifications: " << features.getProteinIdentifications().size() << endl; ProteinIdentification & proteins = features.getProteinIdentifications()[0]; quantifier.quantifyPeptides(features); quantifier.quantifyProteins(proteins); } else { ConsensusMap consensus; for (map<String, StringList>::iterator iter = design2FilePath.begin(); iter != design2FilePath.end(); ++iter) { mergeConsensusMaps_(consensus, iter->first, iter->second); } LOG_INFO << "Number of proteinIdentifications: " << consensus.getProteinIdentifications().size() << endl; ProteinIdentification & proteins = consensus.getProteinIdentifications()[0]; quantifier.quantifyPeptides(consensus); quantifier.quantifyProteins(proteins); } }
feature3.setPeptideIdentifications(ids); //feature with convex hulls Feature feature4; feature4.getPosition()[0] = 5.25; feature4.getPosition()[1] = 1.5; feature4.setIntensity(0.5f); std::vector< ConvexHull2D > hulls(1); hulls[0].addPoint(DPosition<2>(-1.0,2.0)); hulls[0].addPoint(DPosition<2>(4.0,1.2)); hulls[0].addPoint(DPosition<2>(5.0,3.123)); feature4.setConvexHulls(hulls); START_SECTION((const std::vector<ProteinIdentification>& getProteinIdentifications() const)) FeatureMap<> tmp; TEST_EQUAL(tmp.getProteinIdentifications().size(),0) END_SECTION START_SECTION((std::vector<ProteinIdentification>& getProteinIdentifications())) FeatureMap<> tmp; tmp.getProteinIdentifications().resize(1); TEST_EQUAL(tmp.getProteinIdentifications().size(),1) END_SECTION START_SECTION((void setProteinIdentifications(const std::vector<ProteinIdentification>& protein_identifications))) FeatureMap<> tmp; tmp.setProteinIdentifications(std::vector<ProteinIdentification>(2)); TEST_EQUAL(tmp.getProteinIdentifications().size(),2) END_SECTION START_SECTION((const std::vector<PeptideIdentification>& getUnassignedPeptideIdentifications() const))
ExitCodes main_(int, const char **) { String in = getStringOption_("in"), out = getStringOption_("out"), id_out = getStringOption_("id_out"); if (out.empty() && id_out.empty()) { throw Exception::RequiredParameterNotGiven(__FILE__, __LINE__, __PRETTY_FUNCTION__, "out/id_out"); } vector<ProteinIdentification> proteins; vector<PeptideIdentification> peptides; FileTypes::Type in_type = FileHandler::getType(in); if (in_type == FileTypes::MZML) { MSExperiment<> experiment; MzMLFile().load(in, experiment); // what about unassigned peptide IDs? for (MSExperiment<>::Iterator exp_it = experiment.begin(); exp_it != experiment.end(); ++exp_it) { peptides.insert(peptides.end(), exp_it->getPeptideIdentifications().begin(), exp_it->getPeptideIdentifications().end()); exp_it->getPeptideIdentifications().clear(); } experiment.getProteinIdentifications().swap(proteins); if (!out.empty()) { addDataProcessing_(experiment, getProcessingInfo_(DataProcessing::FILTERING)); MzMLFile().store(out, experiment); } } else if (in_type == FileTypes::FEATUREXML) { FeatureMap features; FeatureXMLFile().load(in, features); features.getUnassignedPeptideIdentifications().swap(peptides); for (FeatureMap::Iterator feat_it = features.begin(); feat_it != features.end(); ++feat_it) { peptides.insert(peptides.end(), feat_it->getPeptideIdentifications().begin(), feat_it->getPeptideIdentifications().end()); feat_it->getPeptideIdentifications().clear(); } features.getProteinIdentifications().swap(proteins); if (!out.empty()) { addDataProcessing_(features, getProcessingInfo_(DataProcessing::FILTERING)); FeatureXMLFile().store(out, features); } } else // consensusXML { ConsensusMap consensus; ConsensusXMLFile().load(in, consensus); consensus.getUnassignedPeptideIdentifications().swap(peptides); for (ConsensusMap::Iterator cons_it = consensus.begin(); cons_it != consensus.end(); ++cons_it) { peptides.insert(peptides.end(), cons_it->getPeptideIdentifications().begin(), cons_it->getPeptideIdentifications().end()); cons_it->getPeptideIdentifications().clear(); } consensus.getProteinIdentifications().swap(proteins); if (!out.empty()) { addDataProcessing_(consensus, getProcessingInfo_(DataProcessing::FILTERING)); ConsensusXMLFile().store(out, consensus); } } if (!id_out.empty()) { // IDMapper can match a peptide ID to several overlapping features, // resulting in duplicates; this shouldn't be the case for peak data if (in_type != FileTypes::MZML) removeDuplicates_(peptides); IdXMLFile().store(id_out, proteins, peptides); } return EXECUTION_OK; }