// If the score_type has a different name in the meta_values, it is not possible to find it. // E.g. Percolator_qvalue <-> q-value. // Improvement for the future would be to have unique names for the score_types // LuciphorAdapter uses the same stragety to backup previous scores. void addScoreToMetaValues_(PeptideHit& hit, const String score_type) { if (!hit.metaValueExists(score_type) && !hit.metaValueExists(score_type + "_score")) { if (score_type.hasSubstring("score")) { hit.setMetaValue(score_type, hit.getScore()); } else { hit.setMetaValue(score_type + "_score", hit.getScore()); } } }
double get_score_(String& engine, const PeptideHit& hit) { if (engine == "OMSSA") { return (-1) * log10(max(hit.getScore(), smallest_e_value_)); } else if (engine == "MyriMatch") { //double e_val = exp(-hit.getScore()); //double score_val = ((-1)* log10(max(e_val,smallest_e_value_))); //printf("myri score: %e ; e_val: %e ; score_val: %e\n",hit.getScore(),e_val,score_val); //return score_val; return hit.getScore(); } else if (engine.compare("XTandem") == 0) { return (-1) * log10(max((DoubleReal)hit.getMetaValue("E-Value"), smallest_e_value_)); } else if (engine == "MASCOT") { if (hit.metaValueExists("EValue")) { return (-1) * log10(max((DoubleReal)hit.getMetaValue("EValue"), smallest_e_value_)); } if (hit.metaValueExists("expect")) { return (-1) * log10(max((DoubleReal)hit.getMetaValue("expect"), smallest_e_value_)); } } else if (engine == "SpectraST") { return 100 * hit.getScore(); // SpectraST f-val } else if (engine == "SimTandem") { if (hit.metaValueExists("E-Value")) { return (-1) * log10(max((DoubleReal)hit.getMetaValue("E-Value"), smallest_e_value_)); } } else { throw Exception::UnableToFit(__FILE__, __LINE__, __PRETTY_FUNCTION__, "No parameters for chosen search engine", "The chosen search engine is currently not supported"); } // avoid compiler warning (every code path must return a value, even if there is a throw() somewhere) return std::numeric_limits<double>::max(); }
double getScore_(String& engine, const PeptideHit& hit) { if (engine == "OMSSA") { return (-1) * log10(max(hit.getScore(), smallest_e_value_)); } else if (engine == "MyriMatch") { //double e_val = exp(-hit.getScore()); //double score_val = ((-1)* log10(max(e_val,smallest_e_value_))); //printf("myri score: %e ; e_val: %e ; score_val: %e\n",hit.getScore(),e_val,score_val); //return score_val; return hit.getScore(); } else if (engine.compare("XTandem") == 0) { return (-1) * log10(max((double)hit.getMetaValue("E-Value"), smallest_e_value_)); } else if (engine == "MASCOT") { // issue #740: unable to fit data with score 0 if (hit.getScore() == 0.0) { return numeric_limits<double>::quiet_NaN(); } // end issue #740 if (hit.metaValueExists("EValue")) { return (-1) * log10(max((double)hit.getMetaValue("EValue"), smallest_e_value_)); } if (hit.metaValueExists("expect")) { return (-1) * log10(max((double)hit.getMetaValue("expect"), smallest_e_value_)); } } else if (engine == "SpectraST") { return 100 * hit.getScore(); // SpectraST f-val } else if (engine == "SimTandem") { if (hit.metaValueExists("E-Value")) { return (-1) * log10(max((double)hit.getMetaValue("E-Value"), smallest_e_value_)); } } else if ((engine == "MSGFPlus") || (engine == "MS-GF+")) { if (hit.metaValueExists("MS:1002053")) // name: MS-GF:EValue { return (-1) * log10(max((double)hit.getMetaValue("MS:1002053"), smallest_e_value_)); } else if (hit.metaValueExists("expect")) { return (-1) * log10(max((double)hit.getMetaValue("expect"), smallest_e_value_)); } } else if (engine == "Comet") { if (hit.metaValueExists("MS:1002257")) // name: Comet:expectation value { return (-1) * log10(max((double)hit.getMetaValue("MS:1002257"), smallest_e_value_)); } else if (hit.metaValueExists("expect")) { return (-1) * log10(max((double)hit.getMetaValue("expect"), smallest_e_value_)); } } else { throw Exception::UnableToFit(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION, "No parameters for chosen search engine", "The chosen search engine is currently not supported"); } // avoid compiler warning (every code path must return a value, even if there is a throw() somewhere) return std::numeric_limits<double>::max(); }