OpenMS
Loading...
Searching...
No Matches
Scoring.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Hannes Roest$
6// $Authors: Hannes Roest$
7// --------------------------------------------------------------------------
8
9#pragma once
10
11#include <numeric>
12#include <map>
13#include <vector>
14
15#include <OpenMS/OPENSWATHALGO/OpenSwathAlgoConfig.h>
16
17namespace OpenSwath
18{
19
25 namespace Scoring
26 {
31 typedef std::pair<unsigned int, unsigned int> pos2D;
33 struct pair_hash
34 {
35 template <class T1, class T2>
36 std::size_t operator () (const std::pair<T1,T2> &p) const {
37 auto h1 = std::hash<T1>{}(p.first);
38 auto h2 = std::hash<T2>{}(p.second);
39 return h1 ^ h2;
40 }
41 };
42
44 typedef std::pair<int, double> XCorrEntry;
46 {
47public:
48 std::vector<XCorrEntry> data;
49
50 // Access functions
51 typedef std::vector<XCorrEntry>::iterator iterator;
52 typedef std::vector<XCorrEntry>::const_iterator const_iterator;
53
54 iterator begin() {return data.begin();}
55 const_iterator begin() const {return data.begin();}
56 iterator end() {return data.end();}
57 const_iterator end() const {return data.end();}
58 };
60
74 OPENSWATHALGO_DLLAPI double NormalizedManhattanDist(double x[], double y[], int n);
75
84 OPENSWATHALGO_DLLAPI double RootMeanSquareDeviation(double x[], double y[], int n);
85
94 OPENSWATHALGO_DLLAPI double SpectralAngle(double x[], double y[], int n);
95
98 OPENSWATHALGO_DLLAPI XCorrArrayType calcxcorr_legacy_mquest_(std::vector<double>& data1,
99 std::vector<double>& data2, bool normalize);
100
103 OPENSWATHALGO_DLLAPI XCorrArrayType normalizedCrossCorrelation(std::vector<double>& data1,
104 std::vector<double>& data2, const int maxdelay, const int lag);
105
107 OPENSWATHALGO_DLLAPI XCorrArrayType normalizedCrossCorrelationPost(std::vector<double>& normalized_data1,
108 std::vector<double>& normalized_data2, const int maxdelay, const int lag);
109
111 OPENSWATHALGO_DLLAPI XCorrArrayType calculateCrossCorrelation(const std::vector<double>& data1,
112 const std::vector<double>& data2, const int maxdelay, const int lag);
113
116
118 OPENSWATHALGO_DLLAPI void standardize_data(std::vector<double>& data);
119
121 OPENSWATHALGO_DLLAPI void normalize_sum(double x[], unsigned int n);
122
123 // Compute rank of vector elements, append it to @p ranks and return the highest rank
124 OPENSWATHALGO_DLLAPI unsigned int computeAndAppendRank(const std::vector<double>& v, std::vector<unsigned int>& ranks);
125
126 // Compute rank of vector elements and its highest rank for each row in a 2D array
127 OPENSWATHALGO_DLLAPI std::vector<unsigned int> computeRankVector(const std::vector<std::vector<double>>& intensity, std::vector<std::vector<unsigned int>>& ranks);
128
129 // Estimate mutual information between two vectors of ranks
130 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);
131
133
134 }
135}
136
OPENSWATHALGO_DLLAPI double SpectralAngle(double x[], double y[], int n)
Calculate the Spectral angle (acosine of the normalized dotproduct)
OPENSWATHALGO_DLLAPI double NormalizedManhattanDist(double x[], double y[], int n)
Calculate the normalized Manhattan distance between two arrays.
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.
OPENSWATHALGO_DLLAPI void standardize_data(std::vector< double > &data)
Standardize a vector (subtract mean, divide by standard deviation)
std::pair< unsigned int, unsigned int > pos2D
Definition Scoring.h:31
OPENSWATHALGO_DLLAPI void normalize_sum(double x[], unsigned int n)
Divide each element of x by the sum of the vector.
OPENSWATHALGO_DLLAPI XCorrArrayType normalizedCrossCorrelation(std::vector< double > &data1, std::vector< double > &data2, const int maxdelay, const int lag)
OPENSWATHALGO_DLLAPI std::vector< unsigned int > computeRankVector(const std::vector< std::vector< double > > &intensity, std::vector< std::vector< unsigned int > > &ranks)
OPENSWATHALGO_DLLAPI double RootMeanSquareDeviation(double x[], double y[], int n)
Calculate the RMSD (root means square deviation)
std::pair< int, double > XCorrEntry
Cross Correlation array contains (lag,correlation) pairs.
Definition Scoring.h:44
OPENSWATHALGO_DLLAPI unsigned int computeAndAppendRank(const std::vector< double > &v, std::vector< unsigned int > &ranks)
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.
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)
OPENSWATHALGO_DLLAPI XCorrArrayType::const_iterator xcorrArrayGetMaxPeak(const XCorrArrayType &array)
Find best peak in an cross-correlation (highest apex)
OPENSWATHALGO_DLLAPI XCorrArrayType calcxcorr_legacy_mquest_(std::vector< double > &data1, std::vector< double > &data2, bool normalize)
Definition Scoring.h:18
OPENSWATHALGO_DLLAPI void normalize(const std::vector< double > &intensities, double normalization_factor, std::vector< double > &normalized_intensities)
Normalize intensities in vector by normalization_factor.
Definition Scoring.h:46
std::vector< XCorrEntry >::const_iterator const_iterator
Definition Scoring.h:52
const_iterator begin() const
Definition Scoring.h:55
std::vector< XCorrEntry > data
Definition Scoring.h:48
iterator end()
Definition Scoring.h:56
const_iterator end() const
Definition Scoring.h:57
std::vector< XCorrEntry >::iterator iterator
Definition Scoring.h:51
iterator begin()
Definition Scoring.h:54
Simple hash function for Scoring::pos2D.
Definition Scoring.h:34
std::size_t operator()(const std::pair< T1, T2 > &p) const
Definition Scoring.h:36