MSnbase (version 1.20.7)

purityCorrect-methods: Performs reporter ions purity correction

Description

Manufacturers sometimes provide purity correction values indicating the percentages of each reporter ion that have masses differing by +/- n Da from the nominal reporter ion mass due to isotopic variants. This correction is generally applied after reporter peaks quantitation.

Purity correction here is applied using solve from the base package using the purity correction values as coefficient of the linear system and the reporter quantities as the right-hand side of the linear system. 'NA' values are ignored and negative intensities after correction are also set to 'NA'.

A more elaborated purity correction method is described in Shadforth et al., i-Tracker: for quantitative proteomics using iTRAQ. BMC Genomics. 2005 Oct 20;6:145. (PMID 16242023).

Function makeImpuritiesMatrix(x, filename, edit = TRUE) helps the user to create such a matrix. The function can be used in two ways. If given an integer x, it is used as the dimension of the square matrix (i.e the number of reporter ions). For TMT6-plex and iTRAQ4-plex, default values taken from manufacturer's certification sheets are used as templates, but batch specific values should be used whenever possible. Alternatively, the filename of a csv spreadsheet can be provided. The sheet should define the correction factors as illustrated below (including reporter names in the first column and header row) and the corresponding correction matrix is calculated. Examples of such csv files are available in the package's extdata directory. Use dir(system.file("extdata", package = "MSnbase"), pattern = "PurityCorrection", full.names = TRUE) to locate them. If edit = TRUE, the the matrix can be edited before it is returned.

Arguments

object
An object of class "MSnSet".
impurities
A square 'matrix' of dim equal to ncol(object) defining the correction coefficients to be applied. The reporter ions should be ordered along the columns and the relative percentages along the rows.

As an example, below is the correction factors as provided in an ABI iTRAQ 4-plex certificate of analysis:

reporter % of -2 % of -1 % of +1
% of +2 114 0.0 1.0
5.9 0.2 115 0.0
2.0 5.6 0.1 116
0.0 3.0 4.5 0.1
117 0.1 4.0 3.5
0.1 reporter % of -2 % of -1

The impurity table will be

0.929 0.059 0.002
0.000 0.020 0.923
0.056 0.001 0.000
0.030 0.924 0.045
0.000 0.001 0.040
0.923 0.929 0.059
where, the diagonal is computed as 100 - sum of rows of the original table and subsequent cells are directly filled in.

Similarly, for TMT 6-plex tags, we observe

reporter % of -3 % of -2 % of -1 % of +1 % % of +2
% of +3 126 0 0 0 6.1
0 0 127 0 0 0.5
6.7 0 0 128 0 0
1.1 4.2 0 0 129 0
0 1.7 4.1 0 0 130
0 0 1.6 2.1 0 0
131 0 0.2 3.2 2.8 0
0 reporter % of -3 % of -2 % of -1 % of +1 %
and obtain the following impurity correction matrix
0.939 0.061 0.000 0.000 0.000
0.000 0.005 0.928 0.067 0.000
0.000 0.000 0.000 0.011 0.947
0.042 0.000 0.000 0.000 0.000
0.017 0.942 0.041 0.000 0.000
0.000 0.000 0.016 0.963 0.021
0.000 0.000 0.000 0.002 0.032
0.938 0.939 0.061 0.000 0.000

For iTRAQ 8-plex, given the following correction factors (to make such a matrix square, if suffices to add -4, -3, +3 and +4 columns filled with zeros):

TAG -2 -1 +1
+2 113 0 2.5
3 0.1 114 0
1 5.9 0.2 115
0 2 5.6 0.1
116 0 3 4.5
0.1 117 0.1 4
3.5 0.1 118 0.1
2 3 0.1 119
0.1 2 4 0.1
121 0.1 2 3
0.1 TAG -2 -1

we calculate the impurity correction matrix shown below

113 114 115 116 117 118 119
121 % reporter 113 0.944 0.030 0.001 0.000 0.000 0.000
0.000 0.000 % reporter 114 0.010 0.929 0.059 0.002 0.000
0.000 0.000 0.000 % reporter 115 0.000 0.020 0.923 0.056
0.001 0.000 0.000 0.000 % reporter 116 0.000 0.000 0.030
0.924 0.045 0.001 0.000 0.000 % reporter 117 0.000 0.000
0.001 0.040 0.923 0.035 0.001 0.000 % reporter 118 0.000
0.000 0.000 0.001 0.020 0.948 0.030 0.001 % reporter 119
0.000 0.000 0.000 0.000 0.001 0.020 0.938 0.040
% reporter 121 0.000 0.000 0.000 0.000 0.000 0.001 0.020
0.948 113 114 115 116 117 118

Finally, for a TMT 10-plex impurity matrix

. -2 -1 1 2 126 0.0 0.00 4.69 (127C)
0.0 (128N) 127N 0.0 0.40 6.50 (128N) 0.0 (128C) 127C 0.0 0.20 (126)
4.60 (128C) 0.3 (129N) 128N 0.0 0.90 (127N) 4.70 (129N) 0.2 (129C) 128C 0.1 (126)
0.53 (127C) 2.59 (129C) 0.0 (130N) 129N 0.0 (127N) 0.73 (128N) 2.49 (130N) 0.0 (130C) 129C
0.0 (127C) 1.30 (128C) 2.50 (130C) 0.0 (131) 130N 0.0 (128N) 1.20 (129N) 2.80 (131) 2.7
130C 0.1 (128C) 2.90 (129C) 2.90 0.0 131 0.0 (129N) 2.36 (130N) 1.43
0.0 . -2 -1 1 2 126 0.0 0.00

the impurity correction matrix is

. 126 127N 127C 128N 128C 129N 129C 130N 130C
131 % reporter 126 0.9531 0.000 0.0469 0.0000 0.0000 0.0000 0.0000 0.0000
0.000 0.0000 % reporter 127N 0.0000 0.931 0.0000 0.0650 0.0000 0.0000 0.0000
0.0000 0.000 0.0000 % reporter 127C 0.0020 0.000 0.9490 0.0000 0.0460 0.0030
0.0000 0.0000 0.000 0.0000 % reporter 128N 0.0000 0.009 0.0000 0.9420 0.0000
0.0470 0.0020 0.0000 0.000 0.0000 % reporter 128C 0.0010 0.000 0.0053 0.0000
0.9678 0.0000 0.0259 0.0000 0.000 0.0000 % reporter 129N 0.0000 0.000 0.0000
0.0073 0.0000 0.9678 0.0000 0.0249 0.000 0.0000 % reporter 129C 0.0000 0.000
0.0000 0.0000 0.0130 0.0000 0.9620 0.0000 0.025 0.0000 % reporter 130N 0.0000
0.000 0.0000 0.0000 0.0000 0.0120 0.0000 0.9330 0.000 0.0280 % reporter 130C
0.0000 0.000 0.0000 0.0000 0.0010 0.0000 0.0290 0.0000 0.941 0.0000
% reporter 131 0.0000 0.000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0236 0.000
0.9621 . 126 127N 127C 128N 128C 129N 129C 130N

These examples are provided as defaults impurity correction matrices in makeImpuritiesMatrix.

Methods

signature(object = "MSnSet", impurities = "matrix")

Examples

Run this code
## quantifying full experiment
data(msnset)
impurities <- matrix(c(0.929,0.059,0.002,0.000,
                       0.020,0.923,0.056,0.001,
                       0.000,0.030,0.924,0.045,
                       0.000,0.001,0.040,0.923),
                     nrow=4, byrow = TRUE)
## or, using makeImpuritiesMatrix()
## Not run: impurities <- makeImpuritiesMatrix(4)
msnset.crct <- purityCorrect(msnset, impurities)
head(exprs(msnset))
head(exprs(msnset.crct))
processingData(msnset.crct)

## default impurity matrix for iTRAQ 8-plex
makeImpuritiesMatrix(8, edit = FALSE)

## default impurity matrix for TMT 10-plex
makeImpuritiesMatrix(10, edit = FALSE)

Run the code above in your browser using DataCamp Workspace