SELDI-TOF Mass Spectrometry Protein Data
-
Upload
duonghuong -
Category
Documents
-
view
217 -
download
2
Transcript of SELDI-TOF Mass Spectrometry Protein Data
SELDI-TOF Mass Spectrometry Protein DataBy Huong Thi Dieu La
References
Alejandro Cruz-Marcelo, Rudy Guerra, Marina Vannucci, Yiting Li, Ching C. Lau, and Tsz-Kwong Man. Comparison of algorithms for pre-processing of SELDI-TOF mass spectrometry data. Bioinformatics, 24(19):2129–2136, 2008. Robert Gentleman, Vincent Carey, Wolfgang Huber, Rafael
Irizarry, and Sandrine Dudoit. Bioinformatics and Computational Biology Solutions Using R and Bioconductor (Statistics for Biology and Health). Springer Science and Business Media, Inc, New York, first edition edition, 2005. Haleem J. Issaq, Timothy D. Veenstra, Thomas P. Conrads, , and
Donna Felschow. The SELDI-TOF MS approach to proteomics: Protein profiling and biomarker identification. Biochemical and Biophysical Research Communications, 292:587–592, 2002.
SELDI-TOF-MS
Surface Enhanced Laser Desorption/Ionization Time-of-Flight Mass SpectrometryUsed to profile protein markers from tissue or bodily fluids and thus identify biomarkers that can aid in diagnosis, prognosis or treatment.Application: psychiatric disease, renal function, cancer (pancreatic, prostate, ovarian, and breast)
SELDI-TOF-MS Components
• ProteinChip array– Retain specific proteins from the sample
• Reader– Measures the molecular weights of the retained
proteins and generates a trace showing the relative abundance vs. the molecular weights of these proteins
• Software– Identify differences in protein abundances
between two samples
Source:http://www.rci.rutgers.edu/~layla/AnalMedChem511/pdf_files/RB_pdf/403feature_issaq.pdf
Preparation
• Biological samples are processed via fractionation.
• Fractionation: the process of splitting the original sample into subsamples which contain proteins that are more homogeneous
Source:http://urology.jhu.edu/research/img1/proteomics13.jpg
EAM: Energy Absorbing Molecule
Preprocessing of MS data
Alignment of the spectraFiltering (Denoising)Baseline subtractionNormalizationPeak DetectionClustering of peaksPeak quantification
SELDI-TOF-MS softwares
• ProteinChip Software 3.1• SpecAlign• Cromwell• PROcess• MassSpecWAvelet
PROcess package
• Process a single spectrum• Process a set of spectra
Process a single spectrum
• Baseline subtraction• Peak detection
Baseline subtractionPurpose: To level off the elevated, non-constant baseline caused by the chemical noise in the EAM and by ion overload, thus, make different spectra compatible.Solution: Using local regression to estimate the bottom of a spectrum and then subtracting that estimate from a spectrumTwo approaches: Fitting local regression to:
The points below a certain quantileLocal minima: yields better results when estimating the baseline.
Baseline Subtraction
Baseline subtraction: algorithm
For each spectrum, find local minima by segmenting the m/z range.Fit a local regression to local minima for each spectrumSubtract the estimated baseline from each spectrum
### Load libraries
library(survival)
library(Icens)
library(PROcess)
### Read in the raw spectrum
fdat <- system.file("Test", package="PROcess")
fs <- list.files(fdat, pattern = "\\.*csv\\.*", full.names=TRUE)
f1 <- read.files(fs[1])
### Plot the raw spectrum
jpeg("f1.jpeg", width=480, height=480)
plot(f1, type="l", xlab="m/z")
title(basename(fs[1]))
dev.off()
### Remove the baseline
jpeg("f2.jpeg", width=480, height=480)
bseoff <- bslnoff(f1, method="loess", bw=0.1, xlab="m/z", plot=TRUE)
title(basename(fs[1]))
dev.off()
Peak detection
• Purpose: To detect peaks that represent the set of proteins that are differentially expressed between different samples.
Peak Detection: algorithm
Smooth the spectrum using moving averages of ksnearest neighborsCompute local variability as the median of the absolute deviations of kv nearest neighbors.Identify local maxima of the smoothed spectrum using three thresholds:
The signal to noise ratio: local smooth/local variabilityThe detection threshold for the whole spectrumThe shape ratio: the area under the curve within a small distance of a peak candidate/ maximum of all such peak areas of a spectrum
### Peak detection
jpeg("f3.jpeg", width=480, height=480)
pkgobj <- isPeak(bseoff, span=81, sm.span=11, plot=TRUE, zerothrsh=2, area.w=0.003, ratio=0.2)
dev.off()
### Inspect peaks in a particular range of m/z values
jpeg("f4.jpeg", width=480, height=480)
specZoom(pkgobj, xlim=c(5000,10000))
dev.off()
Peak detection
Processing a set of calibration spectra
• Apply baseline subtraction• Normalize spectra• Cutoff selection• Identify peaks• Quality assessment• Get proto-biomarkers
Example Data Set
• A set of 8 spectra from a calibration data set– Same 5 proteins are present in the sample:
1084, 1638, 3496, 5807, 7034 amu
### Read in the 8 spectra
amu.cali <- c(1084,1638,3496,5807,7034)
### Plot 8 spectra and mark the protein positions by red vertical lines for each of them
jpeg("f5.jpeg", width=1080, height=560)
par(mfrow=c(2,4))
plotCali <- function(f, main, lab.cali){
x <- read.files(f)
plot(x,main=main, ylim=c(0,max(x[,2])), type="n")
abline(h=0, col="gray")
abline(v=amu.cali, col="salmon")
if(lab.cali)
axis(3, at=amu.cali, labels=amu.cali,
las=3, tick=FALSE, col="salmon", cex.axis=0.94)
lines(x)
return(invisible(x))
}
dir.cali <- system.file("calibration", package="PROcess")
files <- dir(dir.cali, full.names=TRUE)
i <- seq(along=files)
mapply(plotCali, files, LETTERS[i], i <=2)
dev.off()
Baseline subtraction
• Similar to baseline subtraction for a single spectra
• R code:Mcal <- rmBaseline(dir.cali, plot=TRUE)
head(Mcal)
060503peptidecalib_1_128.csv 060503peptidecalib_1_16.csv
3.6385 0.7253853 0.7485778
3.6458 0.6859291 0.6960419
3.65287 0.6856960 0.7088729
3.65972 0.6985420 0.7249795
3.66635 0.6885195 0.6953421
3.67276 0.6752363 0.6885879
Normalize SpectraPurpose: reduce variation due to experimental noiseTotal ion normalization:
Calculate each spectrum's area under the curve (AUC) for m/z values greater than the selected cutoffScale all spectra to the median AUCAssumptions:
• The number of proteins being over-expressed is approximately equal to the number of proteins being under-expressed.
• The number of proteins whose expression levels change is small relative to the total number of proteins bound to the protein array surface
Cutoff selectionChoose a cutoff point such that the magnitude of the noise is relatively stable above that point.Algorithm for a single cutoff point:
– Baseline-subtracted spectra within the group are normalized to the median of the sums of intensities of spectra
– The standard deviation of intensities at each m/z value is calculated
– The mean of those standard deviations is computed.
Repeat for different cutoff points and Plot average standard deviations vs. cutoff points.
### Cutoff selection
cts <- round(10^(seq(2,4,length=14)))
sdsFirst <- sapply(cts, avesd, Ma=Mcal)
jpeg("f6.jpeg", width=480, height=480)
par(mfrow=c(1,1))
plot(cts, sdsFirst, xlab="cutpoint", pch=21, bg="red", log="x", ylab="average sd")
dev.off()
### Normalize spectra- cutoff point m/z=400
M.r <- renorm(Mcal, cutoff=400)
Identify Peaks
• Similar to peak detection for a single baseline-adjusted spectrum
• R Code### Identify peaks
peakfile <- "calipeak.csv"
getPeaks(M.r, peakfile, ratio=0.1)
Quality Assessment• Purpose: Identify and eliminate spectra of
poor quality• Based on 3 parameters:
– Quality: measure of separation of signal from noise
– Retain: the number of high peaks in a single spectrum
– Peak: the number of peaks in a spectrum relative to the average number of peaks of the whole set of spectra being considered
• Poor quality spectra: Quality < 0.4, Retain < 0.1, Peak <0.5.
Quality assessment: algorithm
Estimate the noise by subtracting from each spectrum its moving average with a window size of 5 points.Calculate the noise envelope as 3 times the standard deviation of the noise in a 250 point window.Calculate the area under each spectrum A0
Calculate the area after subtracting the noise envelope from the spectrum A1
Obtain Quality, Retain, and Peak
Quality assessment: algorithm
• Quality: A1/A0• Retain: the number of points with height
greater than 5 times noise envelope/ the total numbrer of points in the spectrum
• Peak: the number of peaks in each spectrum detected/ the average number of peaks for all spectra in a run
qualRes <- quality(M.r, peakfile, cutoff=400)
QualRes
Quality Retain peak
060503peptidecalib_1_128.csv 0.4144087 0.1710994 0.9696970
060503peptidecalib_1_16.csv 0.4558286 0.1406047 0.9696970
060503peptidecalib_1_2.csv 0.4971926 0.1178203 0.9696970
060503peptidecalib_1_256.csv 0.4095177 0.1778567 0.7272727
060503peptidecalib_1_32.csv 0.3556932 0.1297756 0.9696970
060503peptidecalib_1_4.csv 0.5220848 0.1432037 1.2121212
060503peptidecalib_1_64.csv 0.4790304 0.1430304 1.2121212
060503peptidecalib_1_8.csv 0.4174718 0.1201594 0.9696970
Get Proto-biomarkers• Peak alignment: peaks across spectra that are
likely to represent the same protein.• Proto-biomarkers: peaks aligned across
spectra• To obtain a proto-biomarker:
• Generate an interval around each peak that is centered at the m/z value for the peak (0.3%)
• Determine which actual peaks are represented by a proto-biomarker
• Use the maximum value as the height of that proto-biomarker
### Get proto-biomarkers
bmkfile <- "calibmk.csv"
bmk1 <- pk2bmkr(peakfile, M.r, bmkfile, p.fltr=0.5)
mk1 <- round(as.numeric(gsub("M", "", names(bmk1))))
mk1 ### [1] 2906 3498 5812 7036
jpeg("f7.jpeg", width=1080, height=560)
par(mfrow=c(2,4))
plotCali2 <- function(...){
x <- plotCali(...)
lines(x[,1]*2, x[,2]+25, col="blue")
}
mapply(plotCali2, files, LETTERS[i], i <=2)
dev.off()
Analyze the result
• 5 known proteins: 1084, 1638, 3496, 5807, 7034
• Obtained 4 proto-biomarkers: 2906, 3498, 5812, and 7036
• Within 0.3% of m/z values of known proteins: 3498, 5812, and 7036
• Result of larger proteins with two charges: 2x2906 (5807) and 2x3496 (7034)
• Failed to detect peaks at m/z=1084 and 1638
Summary
• PROcess package:– Process SELDI-TOF-MS data– Advantage: produce more producible results
regarding peak quantification– Limitation: The results were not homogeneous
across laser intensities