FScanR: detect programmed ribosomal frameshifting events from various genomes

knitr::opts_chunk$set(tidy = FALSE,
           message = FALSE)
CRANpkg <- function (pkg) {
    cran <- "https://CRAN.R-project.org/package"
    fmt <- "[%s](%s=%s)"
    sprintf(fmt, pkg, cran, pkg)

Biocpkg <- function (pkg) {
    sprintf("[%s](http://bioconductor.org/packages/%s)", pkg, pkg)


'FScanR' identifies Programmed Ribosomal Frameshifting (PRF) events from BLASTX homolog sequence alignment between targeted genomic/cDNA/mRNA sequences against the peptide library of the same species or a close relative. The output by BLASTX or diamond BLASTX will be used as input of 'FScanR' and should be in a tabular format with 14 columns.

For BLASTX, the output parameter should be:

-outfmt '6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qframe sframe'

For diamond BLASTX, the output parameter should be:

-outfmt 6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore qframe qframe

For details, please visit https://doi.org/10.1111/1755-0998.13023.


Ribosomal frameshifting, also known as translational frameshifting or translational recoding, is a biological phenomenon that occurs during translation that results in the production of multiple, unique proteins from a single mRNA. The process can be programmed by the nucleotide sequence of the mRNA and is sometimes affected by the secondary, 3-dimensional mRNA structure. It has been described mainly in viruses (especially retroviruses), retrotransposons and bacterial insertion elements, and also in some cellular genes.

For details, please visit Ribosomal frameshift.

Install FScanR

##  Install FScanR in R (>= 3.5.0)
if(!requireNamespace("BiocManager", quietly = TRUE))

Load FScanR and test data

The dataset test in this vignettes was homolog sequence alignment between Euplotes vannus mRNA and protein sequences, output by BLASTX, from Chen et al., 2019.

## loading package
## loading test data
test_data <- read.table(system.file("extdata", "test.tab", package = "FScanR"), header=TRUE, sep="\t")

PRF events detection

The default cutoffs for E-value and frameDist are 1e-05 and 10 (nt), respectively.

Low E-value cutoff ensures the fidelity of sequence alignment, but a too strict cutoff may also leads to false-negative detection.

Small frameDist cutoff avoids the false-positive PRF events introduced by introns, especially when using genomic sequences as query sequence. frameDist cutoff should be at least 4 nt.

Detected high PRF events will be output in tabular format with 7 columns. The column FS_type contains the type information (-2, -1, +1, +2) of PRF events.

## loading packages
prf <- FScanR(test_data, evalue_cutoff = 1e-05, frameDist_cutoff = 10)

PRF event types plot

In this vignettes, the number of detected events of four PRF types are presented in a pie chart.

## plot the 4-type PRF events detected
mytable <- table(prf$FS_type)
lbls <- paste(names(mytable), " : ", mytable, sep="")
pie(mytable, labels = NA, main=paste0("PRF events"), cex=0.5, col=cm.colors(length(mytable)))
legend("right",legend=lbls[!is.na(lbls)], bty="n", cex=1,  fill=cm.colors(length(mytable))[!is.na(lbls)])


If you use FScanR in published research, please cite the most appropriate paper(s) from this list:

  1. X Chen, Y Jiang, F Gao*, W Zheng, TJ Krock, NA Stover, C Lu, LA Katz & W Song (2019). Genome analyses of the new model protist Euplotes vannus focusing on genome rearrangement and resistance to environmental stressors. Molecular Ecology Resources, 19(5):1292-1308. doi: 10.1111/1755-0998.13023.

Session Information

Here is the output of sessionInfo() on the system on which this document was compiled:


Try the FScanR package in your browser

Any scripts or data that you put into this service are public.

FScanR documentation built on Nov. 8, 2020, 5:26 p.m.