OpenMS
OpenSwath::Scoring Namespace Reference

Scoring functions used by MRMScoring. More...

Classes

struct  pair_hash
 Simple hash function for Scoring::pos2D. More...
 
struct  XCorrArrayType
 

Typedefs

Type defs and helper structures
typedef std::pair< unsigned int, unsigned int > pos2D
 
typedef std::pair< int, double > XCorrEntry
 Cross Correlation array contains (lag,correlation) pairs. More...
 

Functions

Helper functions
OPENSWATHALGO_DLLAPI double NormalizedManhattanDist (double x[], double y[], int n)
 Calculate the normalized Manhattan distance between two arrays. More...
 
OPENSWATHALGO_DLLAPI double RootMeanSquareDeviation (double x[], double y[], int n)
 Calculate the RMSD (root means square deviation) More...
 
OPENSWATHALGO_DLLAPI double SpectralAngle (double x[], double y[], int n)
 Calculate the Spectral angle (acosine of the normalized dotproduct) More...
 
OPENSWATHALGO_DLLAPI XCorrArrayType calcxcorr_legacy_mquest_ (std::vector< double > &data1, std::vector< double > &data2, bool normalize)
 
OPENSWATHALGO_DLLAPI XCorrArrayType normalizedCrossCorrelation (std::vector< double > &data1, std::vector< double > &data2, const int maxdelay, const int lag)
 
OPENSWATHALGO_DLLAPI XCorrArrayType normalizedCrossCorrelationPost (std::vector< double > &normalized_data1, std::vector< double > &normalized_data2, const int maxdelay, const int lag)
 Calculate crosscorrelation on std::vector data that is already normalized. More...
 
OPENSWATHALGO_DLLAPI XCorrArrayType calculateCrossCorrelation (const std::vector< double > &data1, const std::vector< double > &data2, const int maxdelay, const int lag)
 Calculate crosscorrelation on std::vector data without normalization. More...
 
OPENSWATHALGO_DLLAPI XCorrArrayType::const_iterator xcorrArrayGetMaxPeak (const XCorrArrayType &array)
 Find best peak in an cross-correlation (highest apex) More...
 
OPENSWATHALGO_DLLAPI void standardize_data (std::vector< double > &data)
 Standardize a vector (subtract mean, divide by standard deviation) More...
 
OPENSWATHALGO_DLLAPI void normalize_sum (double x[], unsigned int n)
 Divide each element of x by the sum of the vector. More...
 
OPENSWATHALGO_DLLAPI unsigned int computeAndAppendRank (const std::vector< double > &v, std::vector< unsigned int > &ranks)
 
OPENSWATHALGO_DLLAPI std::vector< unsigned int > computeRankVector (const std::vector< std::vector< double >> &intensity, std::vector< std::vector< unsigned int >> &ranks)
 
OPENSWATHALGO_DLLAPI double rankedMutualInformation (std::vector< unsigned int > &ranked_data1, std::vector< unsigned int > &ranked_data2, const unsigned int max_rank1, const unsigned int max_rank2)
 

Detailed Description

Scoring functions used by MRMScoring.

Many helper functions to calculate cross-correlations between data

Typedef Documentation

◆ pos2D

typedef std::pair<unsigned int, unsigned int> pos2D

◆ XCorrEntry

typedef std::pair<int, double> XCorrEntry

Cross Correlation array contains (lag,correlation) pairs.

Function Documentation

◆ calculateCrossCorrelation()

OPENSWATHALGO_DLLAPI XCorrArrayType OpenSwath::Scoring::calculateCrossCorrelation ( const std::vector< double > &  data1,
const std::vector< double > &  data2,
const int  maxdelay,
const int  lag 
)

Calculate crosscorrelation on std::vector data without normalization.

◆ calcxcorr_legacy_mquest_()

OPENSWATHALGO_DLLAPI XCorrArrayType OpenSwath::Scoring::calcxcorr_legacy_mquest_ ( std::vector< double > &  data1,
std::vector< double > &  data2,
bool  normalize 
)

Calculate crosscorrelation on std::vector data - Deprecated! Legacy code, this is a 1:1 port of the function from mQuest

◆ computeAndAppendRank()

OPENSWATHALGO_DLLAPI unsigned int OpenSwath::Scoring::computeAndAppendRank ( const std::vector< double > &  v,
std::vector< unsigned int > &  ranks 
)

◆ computeRankVector()

OPENSWATHALGO_DLLAPI std::vector<unsigned int> OpenSwath::Scoring::computeRankVector ( const std::vector< std::vector< double >> &  intensity,
std::vector< std::vector< unsigned int >> &  ranks 
)

◆ normalize_sum()

OPENSWATHALGO_DLLAPI void OpenSwath::Scoring::normalize_sum ( double  x[],
unsigned int  n 
)

Divide each element of x by the sum of the vector.

◆ normalizedCrossCorrelation()

OPENSWATHALGO_DLLAPI XCorrArrayType OpenSwath::Scoring::normalizedCrossCorrelation ( std::vector< double > &  data1,
std::vector< double > &  data2,
const int  maxdelay,
const int  lag 
)

Calculate crosscorrelation on std::vector data (which is first normalized) NOTE: this replaces calcxcorr

Referenced by MRMTransitionGroupPicker::computeQuality_().

◆ normalizedCrossCorrelationPost()

OPENSWATHALGO_DLLAPI XCorrArrayType OpenSwath::Scoring::normalizedCrossCorrelationPost ( std::vector< double > &  normalized_data1,
std::vector< double > &  normalized_data2,
const int  maxdelay,
const int  lag 
)

Calculate crosscorrelation on std::vector data that is already normalized.

◆ NormalizedManhattanDist()

OPENSWATHALGO_DLLAPI double OpenSwath::Scoring::NormalizedManhattanDist ( double  x[],
double  y[],
int  n 
)

Calculate the normalized Manhattan distance between two arrays.

Equivalent to the function "delta_ratio_sum" from mQuest to calculate similarity between library intensity and experimental ones.

The delta_ratio_sum is calculated as follows:

\[ d = \sqrt{\frac{1}{N} \sum_{i=0}^N |\frac{x_i}{\mu_x} - \frac{y_i}{\mu_y}|) } \]

◆ rankedMutualInformation()

OPENSWATHALGO_DLLAPI double OpenSwath::Scoring::rankedMutualInformation ( std::vector< unsigned int > &  ranked_data1,
std::vector< unsigned int > &  ranked_data2,
const unsigned int  max_rank1,
const unsigned int  max_rank2 
)

◆ RootMeanSquareDeviation()

OPENSWATHALGO_DLLAPI double OpenSwath::Scoring::RootMeanSquareDeviation ( double  x[],
double  y[],
int  n 
)

Calculate the RMSD (root means square deviation)

The RMSD is calculated as follows:

\[ RMSD = \sqrt{\frac{1}{N} \sum_{i=0}^N (x_i - y_i)^2 } \]

◆ SpectralAngle()

OPENSWATHALGO_DLLAPI double OpenSwath::Scoring::SpectralAngle ( double  x[],
double  y[],
int  n 
)

Calculate the Spectral angle (acosine of the normalized dotproduct)

The spectral angle is calculated as follows:

\[ \theta = acos \left( \frac{\sum_{i=0}^N (x_i * y_i))}{\sqrt{\sum_{i=0}^N (x_i * x_i) \sum_{i=0}^N (y_i * y_i)} } \right) \]

◆ standardize_data()

OPENSWATHALGO_DLLAPI void OpenSwath::Scoring::standardize_data ( std::vector< double > &  data)

Standardize a vector (subtract mean, divide by standard deviation)

◆ xcorrArrayGetMaxPeak()

OPENSWATHALGO_DLLAPI XCorrArrayType::const_iterator OpenSwath::Scoring::xcorrArrayGetMaxPeak ( const XCorrArrayType array)

Find best peak in an cross-correlation (highest apex)

Referenced by MRMTransitionGroupPicker::computeQuality_().