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.
"MSnSet"
. 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 |
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 % |
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
.
signature(object = "MSnSet", impurities = "matrix")
## 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 DataLab