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().
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().
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.