![]() |
OpenMS
|
Performs isotope impurity correction on intensities extracted from isobaric labeling experiments. More...
#include <OpenMS/ANALYSIS/QUANTITATION/IsobaricIsotopeCorrector.h>
Static Public Member Functions | |
| static IsobaricQuantifierStatistics | correctIsotopicImpurities (const ConsensusMap &consensus_map_in, ConsensusMap &consensus_map_out, const IsobaricQuantitationMethod *quant_method) |
| Apply isotope correction to the given input map and store the corrected values in the output map. | |
| static void | correctIsotopicImpurities (std::vector< double > &intensities, const IsobaricQuantitationMethod *quant_method) |
| Apply isotope correction to a vector of channel intensities. | |
Static Private Member Functions | |
| static void | fillInputVector_ (std::vector< double > &b, Matrix< double > &m_b, const ConsensusFeature &cf, const ConsensusMap &cm) |
| Fills the input vector for the NNLS step given the ConsensusFeature. | |
| static std::vector< double > | getIntensities_ (const IsobaricQuantitationMethod *quant_method, const ConsensusFeature &cf, const ConsensusMap &cm) |
| Extract channel intensities from a ConsensusFeature. | |
| static void | solveNNLS_ (const Matrix< double > &correction_matrix, const Matrix< double > &m_b, Matrix< double > &m_x) |
| Solve the non-negative least squares problem using OpenMS matrices. | |
| static void | solveNNLS_ (Matrix< double > &correction_matrix, std::vector< double > &b, std::vector< double > &x) |
| Solve the non-negative least squares problem using Matrix and vectors. | |
| static void | computeStats_ (const std::vector< double > &m_x, const std::vector< double > &x_naive, const float cf_intensity, const IsobaricQuantitationMethod *quant_method, IsobaricQuantifierStatistics &stats) |
| Compute statistics for the correction process. | |
| static void | computeStats_ (const Matrix< double > &m_x, const std::vector< double > &x_naive, const float cf_intensity, const IsobaricQuantitationMethod *quant_method, IsobaricQuantifierStatistics &stats) |
| Compute statistics for the correction process using OpenMS matrices. | |
| static float | updateOutputMap_ (const ConsensusMap &consensus_map_in, ConsensusMap &consensus_map_out, Size current_cf, const std::vector< double > &m_x) |
| Update the output consensus map with corrected intensities using std::vector. | |
| static float | updateOutputMap_ (const ConsensusMap &consensus_map_in, ConsensusMap &consensus_map_out, Size current_cf, const Matrix< double > &m_x) |
| Update the output consensus map with corrected intensities using OpenMS Matrix. | |
Performs isotope impurity correction on intensities extracted from isobaric labeling experiments.
This class implements algorithms for correcting isotope impurities in quantitative proteomics data obtained from isobaric labeling experiments such as iTRAQ or TMT. Isotope impurities arise from the fact that the reagents used for labeling are not 100% pure and contain isotopic variants that can contribute to the signal in neighboring channels.
The correction is performed using a non-negative least squares (NNLS) approach, which solves the linear system Ax = b, where:
The NNLS approach ensures that the corrected intensities remain non-negative, which is physically meaningful for mass spectrometry data.
|
staticprivate |
Compute statistics for the correction process using OpenMS matrices.
Calculates various statistics about the correction process by comparing the NNLS solution (guaranteed non-negative) with the naive LU-decomposition solution (which may have negative values).
| [in] | m_x | The NNLS-corrected intensities as OpenMS matrix (non-negative) |
| [in] | x_naive | The naive LU-decomposition solution (may contain negative values) |
| [in] | cf_intensity | The original intensity of the consensus feature |
| [in] | quant_method | The isobaric quantitation method |
| [in,out] | stats | The statistics object to update |
|
staticprivate |
Compute statistics for the correction process.
Calculates various statistics about the correction process by comparing the NNLS solution (guaranteed non-negative) with the naive LU-decomposition solution (which may have negative values).
| [in] | m_x | The NNLS-corrected intensities (non-negative) |
| [in] | x_naive | The naive LU-decomposition solution (may contain negative values) |
| [in] | cf_intensity | The original intensity of the consensus feature |
| [in] | quant_method | The isobaric quantitation method |
| [in,out] | stats | The statistics object to update |
|
static |
Apply isotope correction to the given input map and store the corrected values in the output map.
| [in] | consensus_map_in | The map containing the values that should be corrected. |
| [in,out] | consensus_map_out | The map where the corrected values should be stored. |
| [in] | quant_method | IsobaricQuantitationMethod (e.g., iTRAQ 4 plex) |
| Exception::FailedAPICall | If the least-squares fit fails. |
| Exception::InvalidParameter | If the given correction matrix is invalid. |
|
static |
Apply isotope correction to a vector of channel intensities.
This method applies the isotope correction directly to a vector of intensities representing the different isobaric channels. The vector is modified in-place to contain the corrected values.
| [in,out] | intensities | Vector of channel intensities to be corrected (modified in-place) |
| [in] | quant_method | IsobaricQuantitationMethod providing the correction matrix (e.g., iTRAQ 4 plex) |
| Exception::FailedAPICall | If the least-squares fit fails. |
| Exception::InvalidParameter | If the given correction matrix is invalid. |
|
staticprivate |
Fills the input vector for the NNLS step given the ConsensusFeature.
Warning, assumes that the consensusMap and its ConsensusFeatures have exactly the same cardinality as the number of channels as in the quantitation method and are in the same order as the channels.
I.e. for a TMT16plex, although the whole ConsensusMap has 160 potential map_index values because we had 10 files, every ConsensusFeature is only allowed to have exactly 16 map_index values (one for each channel) and they are in the same order as the channels in the quantitation method.
| [out] | b | Vector to be filled with intensities |
| [out] | m_b | OpenMS matrix to be filled with intensities (alternative representation) |
| [in] | cf | ConsensusFeature containing the channel intensities |
| [in] | cm | ConsensusMap containing the feature |
|
staticprivate |
Extract channel intensities from a ConsensusFeature.
Extracts the intensities for each channel from the given ConsensusFeature.
| [in] | quant_method | The isobaric quantitation method defining the channels |
| [in] | cf | ConsensusFeature containing the channel intensities |
| [in] | cm | ConsensusMap containing the feature |
|
staticprivate |
Solve the non-negative least squares problem using OpenMS matrices.
Solves the NNLS problem Ax = b, where A is the correction matrix and b is the vector of observed intensities. This version uses OpenMS Matrix objects for the computation.
| [in] | correction_matrix | The isotope correction matrix (A) |
| [in] | m_b | The vector of observed intensities (b) |
| [in] | m_x | The output vector of corrected intensities (x) |
| Exception::FailedAPICall | If the NNLS solver fails |
|
staticprivate |
Solve the non-negative least squares problem using Matrix and vectors.
Solves the NNLS problem Ax = b, where A is the correction matrix and b is the vector of observed intensities.
| [in,out] | correction_matrix | The isotope correction matrix (A). Modified in-place by the NNLS solver. |
| [in] | b | The vector of observed intensities (b) |
| [out] | x | The output vector of corrected intensities (x) |
|
staticprivate |
Update the output consensus map with corrected intensities using OpenMS Matrix.
Copies the consensus feature from the input map to the output map and updates its intensities with the corrected values.
| [in] | consensus_map_in | The input consensus map |
| [out] | consensus_map_out | The output consensus map to be updated |
| [in] | current_cf | Index of the current consensus feature |
| [out] | m_x | Matrix of corrected intensities |
|
staticprivate |
Update the output consensus map with corrected intensities using std::vector.
Copies the consensus feature from the input map to the output map and updates its intensities with the corrected values.
| [in] | consensus_map_in | The input consensus map |
| [in,out] | consensus_map_out | The output consensus map to be updated |
| [in] | current_cf | Index of the current consensus feature |
| [in] | m_x | Vector of corrected intensities |