fragmentIon | R Documentation |
The function computes the fragment ions of a peptide sequence, according to the rules of fragmentation in a collision cell. It can be either CID fragmentation (collision-induced dissociation) or ETD (electron transfer dissociation) which are common in proteomics experiments. All are in a positive mode.
If multiple peptide sequences are given it returns a list of fragment ion table.
fragmentIon(sequence, FUN, modified, modification, N_term, C_term)
sequence |
peptide sequence encoded as character sequence using the 20 amino acid letters or a double vector of amino acid weights. |
FUN |
the function to be applied to compute further ions.
If no function is assigned |
modified |
a vector of interger containing the varmod id of the peptide position. |
modification |
a double vector of defining the varmod mass in Dalton. |
N_term |
N-Term mass in Dalton. Default is set to 1.007825. |
C_term |
C-Term mass in Dalton. Default is set to 17.002740. |
The fragment ions of a peptide can be computed following the rules proposed in PMID:6525415.
Beside the b
and y
ions the FUN
argument of fragmentIon
defines
which ions are computed.
the default ions beeing computed are defined in the function defaultIon
.
The are no limits for defining other forms of fragment ions for ETD (c and z ions) CID (b and y ions).
NOTE: for simplicity, we have set a Carbamidomethyl (C) fixed modification with 160.030649 (Cysteine mono mass is 103.00919). The fixed modifications setting are not enabled in the package yet.
If only a vector of amino acids weights is given fragmentIon
computes the ions series according to weights.
If this case applies, the function returns only a list having one data frame.
Christian Panse, Bertran Gerrits 2006.
Protein Sequencing and Identification Using Tandem Mass Spectrometry, Michael Kinter and Nicholas E. Sherman, Wiley-Interscience; 1st edition (September 18, 2000)
first used in peakplot
.
# Example 1
peptide.AA<-"KINHSFLR";
peptide.AA.weights <- c(128.09496,113.08406,114.04293,
137.05891,87.03203,147.06841,113.08406,156.10111);
fragmentIon(peptide.AA);
fragmentIon(peptide.AA.weights);
HCD_Ion <- function(b, y){
return(cbind(b = b, y = y))
}
ETD_Ion <- function(b, y){
Hydrogen <- 1.007825
Oxygen <- 15.994915
Nitrogen <- 14.003074
y_0 <- y - Oxygen - Hydrogen - Hydrogen
c <- b + (Nitrogen + (3 * Hydrogen))
z <- y - (Nitrogen + (3 * Hydrogen))
return(cbind(y_0, c, z))
}
fragmentIon(peptide.AA, FUN = ETD_Ion)
peptides<-c('HTLNQIDSVK', 'ALGGEDVR', 'TPIVGQPSIPGGPVR')
pim <- parentIonMass(peptides)
fi <- fragmentIon(peptides)
(df <- as.data.frame(fi))
op <- par(mfrow=c(3,1));
for (i in 1:length(peptides)){
plot(0, 0,
xlab='m/Z',
ylab='',
xlim=range(c(fi[[i]]$b,fi[[i]]$y)),
ylim=c(0,1),
type='n',
axes=FALSE,
sub=paste(peptides[i], "/", pim[i], "Da"));
box()
axis(1, fi[[i]]$b, round(fi[[i]]$b,1), las=2)
axis(1, fi[[i]]$y, round(fi[[i]]$y,1), las=2)
pepSeq<-strsplit(peptides[i], "")
axis(3,fi[[i]]$b, paste("b", row.names(fi[[i]]),sep=''),las=2)
axis(3,fi[[i]]$y, paste("y", row.names(fi[[i]]),sep=''),las=2)
text(fi[[i]]$b, rep(0.3, nchar(peptides[i])),
pepSeq[[1]],pos=3,cex=4, lwd=4, col="#aaaaaaaa")
abline(v=fi[[i]]$b, col='red')
abline(v=fi[[i]]$y, col='blue',lwd=2)
}
par(op)
fi <- fragmentIon(c("ATSFYK","XGXFNAGVGK"))[[2]]
fi$b[1] + fi$y[9]
fi$b[2] + fi$y[8]
ION2C <- function(b, y){
Hydrogen <- 1.007825
Oxygen <- 15.994915
Nitrogen <- 14.003074
# yo <- fi$y - Oxygen - Hydrogen - Hydrogen
c <- b + (Nitrogen + (3 * Hydrogen))
z <- y - (Nitrogen + (3 * Hydrogen))
# compute doubly charged fragment ions
b2 <- (b + Hydrogen) / 2
y2 <- (y + Hydrogen) / 2
return(cbind(b, y, b2 ,y2))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.