This class is used to switch identification scores within identification or consensus feature maps.
More...
|
| IDScoreSwitcherAlgorithm () |
| Default constructor. Initializes the parameter handler with default values. More...
|
|
bool | isScoreType (const String &score_name, const ScoreType &type) |
| Checks if the given score name corresponds to a specific score type. More...
|
|
bool | isScoreTypeHigherBetter (ScoreType score_type) |
| Determines whether a higher score type is better given a ScoreType enum. More...
|
|
std::vector< String > | getScoreNames () |
| Gets a vector of all score names that are used in OpenMS. More...
|
|
template<typename IDType > |
void | switchScores (IDType &id, Size &counter) |
| Switches the main scores of all hits in an identification object based on the new scoring settings. More...
|
|
template<class IDType > |
void | switchToGeneralScoreType (std::vector< IDType > &id, ScoreType type, Size &counter) |
| Switches the scoring type of identification objects to a general score type. More...
|
|
void | switchToGeneralScoreType (ConsensusMap &cmap, ScoreType type, Size &counter, bool unassigned_peptides_too=true) |
| Switches the score type of a ConsensusMap to a general score type. More...
|
|
void | determineScoreNameOrientationAndType (const std::vector< PeptideIdentification > &pep_ids, String &name, bool &higher_better, ScoreType &score_type) |
| Determines the score type and orientation of the main score for a set of peptide identifications. More...
|
|
void | determineScoreNameOrientationAndType (const ConsensusMap &cmap, String &name, bool &higher_better, ScoreType &score_type, bool include_unassigned=true) |
| Determines the score type and orientation of the main score in a ConsensusMap. More...
|
|
void | switchScores (ConsensusMap &cmap, Size &counter, bool unassigned_peptides_too=true) |
| Switches the scores of peptide identifications in a ConsensusMap. More...
|
|
void | switchScores (std::vector< PeptideIdentification > &pep_ids, Size &counter) |
| Switches the scores of peptide identifications. More...
|
|
template<typename IDType > |
String | findScoreType (IDType &id, IDScoreSwitcherAlgorithm::ScoreType type) |
| Searches for a specified score type within an identification object and its meta values. More...
|
|
Public Member Functions inherited from DefaultParamHandler |
| DefaultParamHandler (const String &name) |
| Constructor with name that is displayed in error messages. More...
|
|
| DefaultParamHandler (const DefaultParamHandler &rhs) |
| Copy constructor. More...
|
|
virtual | ~DefaultParamHandler () |
| Destructor. More...
|
|
DefaultParamHandler & | operator= (const DefaultParamHandler &rhs) |
| Assignment operator. More...
|
|
virtual bool | operator== (const DefaultParamHandler &rhs) const |
| Equality operator. More...
|
|
void | setParameters (const Param ¶m) |
| Sets the parameters. More...
|
|
const Param & | getParameters () const |
| Non-mutable access to the parameters. More...
|
|
const Param & | getDefaults () const |
| Non-mutable access to the default parameters. More...
|
|
const String & | getName () const |
| Non-mutable access to the name. More...
|
|
void | setName (const String &name) |
| Mutable access to the name. More...
|
|
const std::vector< String > & | getSubsections () const |
| Non-mutable access to the registered subsections. More...
|
|
This class is used to switch identification scores within identification or consensus feature maps.
This class provides functionality to switch the main scoring type used in peptide or protein identification data. It supports switching between different score types, such as raw scores, E-values, posterior probabilities, posterior error probabilities, FDR, and q-values. The class also handles the direction of the score (whether a higher score is better) and can store the original scores as meta values to prevent data loss.
The score switching process is configurable through parameters that specify the score types, as well as the desired score direction and how old scores are annotated in the meta information.
The class can operate on individual identification objects or ConsensusMaps, updating the main scores of all hits based on the specified criteria.
Searches for a specified score type within an identification object and its meta values.
This method attempts to find a given score type in the main score type of an identification object (id
) or within its hits' meta values. It first checks if the current main score type of id
matches any of the possible score types for the specified type
. If not found, it iterates through the meta values of the first hit in id
looking for a match. If the score type or a related meta value is found, it is returned as a String
. Otherwise, an empty String
is returned, indicating the score type is not present.
- Template Parameters
-
IDType | The type of the identification object, which must support getScoreType(), getHits(), and meta value operations. |
- Parameters
-
[in] | id | The identification object to search for the score type. It is expected to have a main score type and possibly additional scores stored as meta values in its hits. |
[in] | type | The ScoreType to search for, defined in IDScoreSwitcherAlgorithm . This type specifies the score of interest. |
- Returns
- A String representing the found score type. If the score type is not found, an empty String is returned.
- Note
- This method logs an informational message if the requested score type is already set as the main score, a warning if the identification entry is empty, and another warning if the score type is not found in the UserParams of the checked ID object. It only checks the first hit of the
id
for meta values.
References OPENMS_LOG_INFO, and OPENMS_LOG_WARN.
Referenced by IDFilter::filterHitsByScore().
Checks if the given score name corresponds to a specific score type.
This method determines if a given score name, typically derived from an identification object or meta value, matches a specified ScoreType. It performs a case-insensitive comparison and optionally removes the "_score" suffix if present.
- Parameters
-
score_name | The name of the score to check. |
type | The ScoreType to compare against. |
- Returns
- True if the score name matches the given ScoreType, false otherwise.
References String::chop(), and String::hasSuffix().
Referenced by IDFilter::filterHitsByScore().
void switchScores |
( |
IDType & |
id, |
|
|
Size & |
counter |
|
) |
| |
|
inline |
Switches the main scores of all hits in an identification object based on the new scoring settings.
This method iterates through all hits in the provided identification object and updates their main scores according to the new scoring settings defined in the switcher class's parameter object. If the old and new score types share the same name (e.g., "q-value"), the method safeguards the original scores by storing them as meta values with a "~" appended to the old score type. This prevents overwriting the meta value of the new score.
- Template Parameters
-
IDType | The type of the identification object, which must support getHits(), getScoreType(), setScoreType(), and setHigherScoreBetter() methods, along with the ability to handle meta values. |
- Parameters
-
[in,out] | id | An identification object containing hits whose scores are to be switched. The object will be modified in place, with updated scores and score type. |
[in,out] | counter | A reference to a Size variable that counts the number of hits processed. |
- Exceptions
-
Exception::MissingInformation | If a required meta value (specified as the new score) is not found in any of the hits, indicating incomplete or incorrect score setup. |
- Note
- The method assumes that the identification object's hits are properly initialized with all necessary meta values. It also relies on the tolerance_ value to determine significant differences between scores.
References DataValue::isEmpty().
Referenced by IDScoreSwitcherAlgorithm::switchBackScoreType().
void switchToGeneralScoreType |
( |
std::vector< IDType > & |
id, |
|
|
ScoreType |
type, |
|
|
Size & |
counter |
|
) |
| |
|
inline |
Switches the scoring type of identification objects to a general score type.
This method iterates over a vector of identification objects and changes their scoring type to a specified general score type. It first checks the score type of the first identification object in the vector to determine the necessary conversion. If the first ID does not have the requested score type, an exception is thrown. The method also adjusts the score direction (higher_better_) based on the specified score type if it's different from the raw score.
- Template Parameters
-
IDType | The type of the identification objects contained in the vector. Must have getScoreType() and other relevant methods for score manipulation. |
- Parameters
-
[in,out] | id | A vector of identification objects whose score types are to be switched. |
[in] | type | The desired general score type to switch to. This could be an enum or similar representing different scoring systems (e.g., RAW, LOG, etc.). |
[in,out] | counter | A reference to a Size variable that may be used to count certain operations or changes made by this method. The exact usage depends on the implementation details and needs. |
- Exceptions
-
Exception::MissingInformation | If the first identification object in the vector does not have the requested score type, indicating that the operation cannot proceed. |
- Note
- The method assumes that if the first identification object has the correct score type, all subsequent objects in the vector also have the correct score type. This assumption might need validation depending on the use case.
References String::chop(), String::hasSuffix(), and OPENMS_LOG_WARN.
Referenced by IDScoreSwitcherAlgorithm::switchToScoreType().
Switches the score type of peptide identifications to the requested type.
This static function modifies the provided vector of PeptideIdentification objects by switching their main score to the specified type. If no score type is requested, the original main score is retained. The function determines the original score's name, orientation, and type, and updates these attributes based on the requested score type. If a different score type is requested, it performs the switch and updates the relevant score information.
- Parameters
-
pep_ids | A vector of PeptideIdentification objects to be processed. |
requested_score_type_as_string | The desired score type as a string (e.g., "RAW", "PEP", "q-value"). |
- Returns
- IDSwitchResult A struct containing details about the original and requested score types, whether a switch was performed, and the number of IDs updated.
References IDScoreSwitcherAlgorithm::determineScoreNameOrientationAndType(), DefaultParamHandler::getDefaults(), IDScoreSwitcherAlgorithm::isScoreTypeHigherBetter(), OPENMS_LOG_DEBUG, IDScoreSwitcherAlgorithm::IDSwitchResult::original_score_higher_better, IDScoreSwitcherAlgorithm::IDSwitchResult::original_score_name, IDScoreSwitcherAlgorithm::IDSwitchResult::original_score_type, IDScoreSwitcherAlgorithm::IDSwitchResult::requested_score_higher_better, IDScoreSwitcherAlgorithm::IDSwitchResult::requested_score_name, IDScoreSwitcherAlgorithm::IDSwitchResult::requested_score_type, IDScoreSwitcherAlgorithm::IDSwitchResult::score_switched, DefaultParamHandler::setParameters(), Param::setValue(), IDScoreSwitcherAlgorithm::switchToGeneralScoreType(), and IDScoreSwitcherAlgorithm::toScoreTypeEnum().
Converts a string representation of a score type to a ScoreType enum.
This static method attempts to map a given string, representing a score type, to the corresponding ScoreType enum value. It handles various common representations of score types, including those with or without the "_score" suffix, and ignores case and special characters like '-', '_', and ' '.
- Parameters
-
score_type | The string representation of the score type. |
- Returns
- The corresponding ScoreType enum value.
- Exceptions
-
References OpenMS::Constants::c, String::chop(), String::hasSuffix(), and String::toLower().
Referenced by IDScoreSwitcherAlgorithm::switchToScoreType().