R: Compute the b and y Fragment Ions of a Peptide Sequence

fragmentIon {protViz} | R Documentation

## Compute the b and y Fragment Ions of a Peptide Sequence

### Description

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.

### Usage

        fragmentIon(sequence, FUN, modified, modification, N_term, C_term)

### Arguments

`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 `fragmentIon` will use `defaultIon`.
`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.

### Details

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.

### Author(s)

Christian Panse, Bertran Gerrits 2006.

### References

http://www.ncbi.nlm.nih.gov/pubmed/6525415

Protein Sequencing and Identification Using Tandem Mass Spectrometry, Michael Kinter and Nicholas E. Sherman, Wiley-Interscience; 1st edition (September 18, 2000)

### See Also

first used in `peakplot`.

### Examples

    # 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))
    }

[Package protViz version 0.6.8 Index]