void MapAlignmentTransformer::transformSingleFeatureMap(FeatureMap<> & fmap, const TransformationDescription & trafo) { for (vector<Feature>::iterator fmit = fmap.begin(); fmit != fmap.end(); ++fmit) { applyToFeature_(*fmit, trafo); } // adapt RT values of unassigned peptides: if (!fmap.getUnassignedPeptideIdentifications().empty()) { transformSinglePeptideIdentification( fmap.getUnassignedPeptideIdentifications(), trafo); } }
void InternalCalibration::calibrateMapGlobally(const FeatureMap<> & feature_map, FeatureMap<> & calibrated_feature_map, std::vector<PeptideIdentification> & ref_ids, String trafo_file_name) { checkReferenceIds_(ref_ids); calibrated_feature_map = feature_map; // clear the ids for (Size f = 0; f < calibrated_feature_map.size(); ++f) { calibrated_feature_map[f].getPeptideIdentifications().clear(); } // map the reference ids onto the features IDMapper mapper; Param param; param.setValue("rt_tolerance", (DoubleReal)param_.getValue("rt_tolerance")); param.setValue("mz_tolerance", param_.getValue("mz_tolerance")); param.setValue("mz_measure", param_.getValue("mz_tolerance_unit")); mapper.setParameters(param); std::vector<ProteinIdentification> vec; mapper.annotate(calibrated_feature_map, ref_ids, vec); // calibrate calibrateMapGlobally(calibrated_feature_map, calibrated_feature_map, trafo_file_name); // copy the old ids calibrated_feature_map.setUnassignedPeptideIdentifications(feature_map.getUnassignedPeptideIdentifications()); for (Size f = 0; f < feature_map.size(); ++f) { calibrated_feature_map[f].getPeptideIdentifications().clear(); if (!feature_map[f].getPeptideIdentifications().empty()) { calibrated_feature_map[f].setPeptideIdentifications(feature_map[f].getPeptideIdentifications()); } } }
void MapAlignmentTransformer::transformRetentionTimes( FeatureMap& fmap, const TransformationDescription& trafo, bool store_original_rt) { for (vector<Feature>::iterator fmit = fmap.begin(); fmit != fmap.end(); ++fmit) { applyToFeature_(*fmit, trafo, store_original_rt); } // adapt RT values of unassigned peptides: if (!fmap.getUnassignedPeptideIdentifications().empty()) { transformRetentionTimes(fmap.getUnassignedPeptideIdentifications(), trafo, store_original_rt); } }
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)) FeatureMap<> tmp; TEST_EQUAL(tmp.getUnassignedPeptideIdentifications().size(),0) END_SECTION START_SECTION((std::vector<PeptideIdentification>& getUnassignedPeptideIdentifications())) FeatureMap<> tmp; tmp.getUnassignedPeptideIdentifications().resize(1); TEST_EQUAL(tmp.getUnassignedPeptideIdentifications().size(),1) END_SECTION START_SECTION((void setUnassignedPeptideIdentifications(const std::vector<PeptideIdentification>& unassigned_peptide_identifications))) FeatureMap<> tmp; tmp.setUnassignedPeptideIdentifications(std::vector<PeptideIdentification>(2)); TEST_EQUAL(tmp.getUnassignedPeptideIdentifications().size(),2) END_SECTION START_SECTION((const std::vector<DataProcessing>& getDataProcessing() 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; }
ExitCodes main_(int, const char **) { String in = getStringOption_("in"); StringList out = getStringList_("out"); SeedListGenerator seed_gen; // results (actually just one result, except for consensusXML input): Map<UInt64, SeedListGenerator::SeedList> seed_lists; Size num_maps = 0; FileTypes::Type in_type = FileHandler::getType(in); if (in_type == FileTypes::CONSENSUSXML) { ConsensusMap consensus; ConsensusXMLFile().load(in, consensus); num_maps = consensus.getFileDescriptions().size(); if (out.size() != num_maps) { writeLog_("Error: expected " + String(num_maps) + " output filenames"); return ILLEGAL_PARAMETERS; } seed_gen.generateSeedLists(consensus, seed_lists); } else if (out.size() > 1) { writeLog_("Error: expected only one output filename"); return ILLEGAL_PARAMETERS; } else if (in_type == FileTypes::MZML) { MSExperiment<> experiment; MzMLFile().load(in, experiment); seed_gen.generateSeedList(experiment, seed_lists[0]); } else if (in_type == FileTypes::IDXML) { vector<ProteinIdentification> proteins; vector<PeptideIdentification> peptides; IdXMLFile().load(in, proteins, peptides); seed_gen.generateSeedList(peptides, seed_lists[0], getFlag_("use_peptide_mass")); } else if (in_type == FileTypes::FEATUREXML) { FeatureMap features; FeatureXMLFile().load(in, features); seed_gen.generateSeedList( features.getUnassignedPeptideIdentifications(), seed_lists[0]); } // output: num_maps = 0; for (Map<UInt64, SeedListGenerator::SeedList>::Iterator it = seed_lists.begin(); it != seed_lists.end(); ++it, ++num_maps) { FeatureMap features; seed_gen.convertSeedList(it->second, features); //annotate output with data processing info: addDataProcessing_(features, getProcessingInfo_( DataProcessing::DATA_PROCESSING)); FeatureXMLFile().store(out[num_maps], features); } return EXECUTION_OK; }