A unified computational framework for genomic feature annotation, differential expression analysis of circular RNAs
circMeta is a unified computational framework for circRNA analyses. circMeta mainly includes three function modules: (i) provide a comprehensive genomic feature annotation related to circRNA biogenesis, including length of introns flanking circularized exons, repetitive elements such as Alu and SINEs, competition score for forming circulation and RNA editing in back-spliced flanking introns (ii) develop a two-stage DE approach of circRNAs based on splicing junction reads (iii) develop a Bayesian hierarchical model for DE analysis of circRNAs based the ratio of circular reads to linear reads in spliced sites. circMeta mainly consists of four modules: circClass, circFeature, circJuncDE, circCLRDE.
Li Chen li.chen1@ufl.edu
install.packages("devtools")
library(devtools)
install_github("lichen-lab/circMeta")
circJuncDE(files,designs, circ.method=c('findcirc','CIRCexplorer','CIRI'), DE.method=c('pois.ztest','DESeq2','edgeR','pois.glm','nb.glm'), gene=NULL,gexon=NULL, cutoff=2,sf=TRUE)
circCLEDE(x1,n1,x2,n2,DE.method=c('wald','lr','fisher','chisq'),is.shrink=TRUE,is.equalrho=FALSE,is.peudo=TRUE)
circClass(files,circ.method=c('findcirc','CIRCexplorer','CIRI'),gene=NULL,gexon=NULL)
circFeature(files,circ.method=c('findcirc','CIRCexplorer','CIRI'), gene,gexon,gintron,galu,gsine, atoi=NULL,DARNED=NULL,RADAR=NULL)
circLinear(gcirc,bamfiles)
Files used in the examples could be downloaded from link
Use circJuncDE to detect differential expressed circRNAs based on back-spliced junction reads
library(circMeta)
CIRI.files=c(
"data/frontcortex/CIRI/CIRI1.circ",
"data/frontcortex/CIRI/CIRI2.circ",
"data/cerebellum/CIRI/CIRI1.circ",
"data/cerebellum/CIRI/CIRI2.circ",
"data/diencephalon/CIRI/CIRI1.circ",
"data/diencephalon/CIRI/CIRI2.circ"
)
designs=c(0,0,1,1)
fdr.level=0.05
res1=circJuncDE(CIRI.files[c(1,2,3,4)],designs,circ.method='CIRI',DE.method='pois.ztest')
id1=rownames(res1)[res1$fdr<fdr.level]
res2=circJuncDE(CIRI.files[c(1,2,3,4)],designs,circ.method='CIRI',DE.method='edgeR')
id2=rownames(res2)[res2$fdr<fdr.level]
res3=circJuncDE(CIRI.files[c(1,2,3,4)],designs,circ.method='CIRI',DE.method='DESeq2')
id3=rownames(res3)[res3$fdr<fdr.level]
id1=rownames(res1)[res1$fdr<fdr.level]
length(id1)
id2=rownames(res2)[res2$fdr<fdr.level]
length(id2)
id3=rownames(res3)[res3$fdr<fdr.level]
length(id3)
length(intersect(id1,id3))
length(intersect(id2,id3))
length(intersect(id1,id2))
Use circCLRDE to detect differential expressed circRNAs based on Circular-to-Linear Ratio (CLR)
res=circJuncDE(CIRI.files[c(1,2,3,4)],designs,circ.method='CIRI',DE.method='pois.ztest')
tmp=getCLR(res)
x1=tmp$x1
n1=tmp$n1
x2=tmp$x2
n2=tmp$n2
res1=circCLRDE(x1,n1,x2,n2,DE.method='wald',is.shrink=F)
sum(res1$fdr<fdr.level)
res2=circCLRDE(x1,n1,x2,n2,DE.method='wald',is.shrink=T)
sum(res2$fdr<fdr.level)
res3=circCLRDE(x1,n1,x2,n2,DE.method='lr',is.shrink=F)
sum(res3$fdr<fdr.level)
res4=circCLRDE(x1,n1,x2,n2,DE.method='lr',is.shrink=T)
sum(res4$fdr<fdr.level)
Use circClass to annotate host genes for circRNAs
load('hg19/Exon.hg19.rda')
load('hg19/Gene.hg19.rda')
load('hg19/Intron.hg19.rda')
gcirc=circClass(files=CIRI.files[1:2],circ.method='CIRI',gene=gene, gexon=gexon)
gcirc
Use circFeature to annotate genomic features for circRNAs
load('hg19/Alu.hg19.rda')
load('hg19/SINE.hg19.rda')
# Add Alu/SINE enrichment, Alu/SINE competing score
gcirc=circFeature(files=CIRI.files[1:2],circ.method='CIRI',
gene,gexon,gintron,galu,gsine)
# Add A-to-I editing
load('hg19/DARNED.rda')
load('hg19/RADAR.rda')
atoi=getAtoI('hg19/frontalcortex.vcf2')
gcirc=circFeature(files=CIRI.files[1:2],circ.method='CIRI',
gene,gexon,gintron,galu,gsine,atoi,DARNED,RADAR)
Use circLinear to add linear reads to back-spliced junctions
llinear.files=c(
'hg19/accepted_hits1.bam',
'hg19/accepted_hits2.bam'
)
gcirc=circLinear(gcirc,linear.files)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.