void MapAlignmentAlgorithmIdentification::setReference(Size reference_index, const String & reference_file) { reference_.clear(); reference_index_ = reference_index; // reference is one of the input files, or no reference given: if (reference_index_ || reference_file.empty()) return; // reference is external file: LOG_DEBUG << "Extracting reference RT data..." << endl; SeqToList rt_data; bool sorted = true; FileTypes::Type filetype = FileHandler::getType(reference_file); if (filetype == FileTypes::MZML) { MSExperiment<> experiment; MzMLFile().load(reference_file, experiment); getRetentionTimes_(experiment, rt_data); sorted = false; } else if (filetype == FileTypes::FEATUREXML) { FeatureMap<> features; FeatureXMLFile().load(reference_file, features); getRetentionTimes_(features, rt_data); } else if (filetype == FileTypes::CONSENSUSXML) { ConsensusMap features; ConsensusXMLFile().load(reference_file, features); getRetentionTimes_(features, rt_data); } else if (filetype == FileTypes::IDXML) { vector<ProteinIdentification> proteins; vector<PeptideIdentification> peptides; IdXMLFile().load(reference_file, proteins, peptides); getRetentionTimes_(peptides, rt_data); } computeMedians_(rt_data, reference_, sorted); if (reference_.empty()) { throw Exception::MissingInformation( __FILE__, __LINE__, __PRETTY_FUNCTION__, "Could not extract retention time information from the reference file"); } }
bool validate(const std::vector<std::string>& file_names) { std::cout << "checking (created temporary files)..." << std::endl; bool passed_all = true; for (Size i = 0; i < file_names.size(); ++i) { if (File::exists(file_names[i])) { FileTypes::Type type = FileHandler::getType(file_names[i]); bool passed_single = true; bool skipped = false; switch (type) { case FileTypes::MZML: { if (!MzMLFile().isValid(file_names[i])) { std::cout << " - Error: mzML file does not validate against XML schema '" << file_names[i] << "'" << std::endl; passed_single = false; } StringList errors, warnings; if (!MzMLFile().isSemanticallyValid(file_names[i], errors, warnings)) { std::cout << " - Error: mzML file semantically invalid '" << file_names[i] << "'" << std::endl; for (Size j = 0; j < errors.size(); ++j) { std::cout << "Error - " << errors[j] << std::endl; } passed_single = false; } } break; case FileTypes::MZDATA: if (!MzDataFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid mzData file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::MZXML: if (!MzXMLFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid mzXML file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::FEATUREXML: if (!FeatureXMLFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid featureXML file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::IDXML: if (!IdXMLFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid idXML file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::CONSENSUSXML: if (!ConsensusXMLFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid consensusXML file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::INI: if (!ParamXMLFile().isValid(file_names[i], std::cerr)) { std::cout << " - Error: Invalid Param file '" << file_names[i] << "'" << std::endl; passed_single = false; } break; case FileTypes::TRANSFORMATIONXML: if (!TransformationXMLFile().isValid(file_names[i], std::cerr)) { passed_single = false; } break; default: skipped = true; break; } //output for single file if (skipped) { std::cout << " + skipped file '" << file_names[i] << "' (type: " << FileTypes::typeToName(type) << ")" << std::endl; } else if (passed_single) { std::cout << " + valid file '" << file_names[i] << "' (type: " << FileTypes::typeToName(type) << ")" << std::endl; } else { passed_all = false; std::cout << " - invalid file '" << file_names[i] << "' (type: " << FileTypes::typeToName(type) << ")" << std::endl; } } } //output for all files if (passed_all) { std::cout << ": passed" << std::endl << std::endl; } else { std::cout << ": failed" << std::endl << std::endl; } return passed_all; }
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; }