## ----style, echo = FALSE, results = 'asis'------------------------------------
BiocStyle::markdown()

## ----eval=FALSE---------------------------------------------------------------
#  if (!requireNamespace("BiocManager", quietly=TRUE))
#      install.packages("BiocManager")
#  BiocManager::install("XBSeq")

## ----message = FALSE, warning=FALSE-------------------------------------------
library("XBSeq")

## ----eval=FALSE---------------------------------------------------------------
#  library(devtools)
#  install_github('liuy12/XBSeq')

## ----eval=FALSE---------------------------------------------------------------
#  fc_signal <- featureCounts(files = bamLists, annot.ext = gtf_file, isGTFAnnotationFile = TRUE)
#  fc_bg <- featureCounts(files = bamLists, annot.ext = gtf_file_bg, isGTFAnnotationFile = TRUE)

## ----eval=FALSE---------------------------------------------------------------
#  features_signal <- import(gtf_file)
#  features_signal <- split(features_signal, mcols(features_signal)$gene_id)
#  so_signal <- summarizeOverlaps(features_signal, bamLists)
#  
#  ## for background noise
#  features_bg <- import(gtf_file_bg)
#  features_bg <- split(features_bg, mcols(features_bg)$gene_id)
#  so_bg <- summarizeOverlaps(features_bg, bamLists)

## ----eval=FALSE---------------------------------------------------------------
#  apaStats <- apaUsage(bamTreatment, bamControl, apaAnno)

## -----------------------------------------------------------------------------
data(ExampleData)

## -----------------------------------------------------------------------------
head(Observed)
head(Background)

## ----tidy=TRUE----------------------------------------------------------------
conditions <- factor(c(rep('C',3), rep('T', 3)))
XB <- XBSeqDataSet(Observed, Background, conditions)

## ----tidy=TRUE,fig.width=5,fig.height=4---------------------------------------
XBplot(XB, Samplenum = 1, unit = "LogTPM", Genelength = genelength[,2])

## ---- tidy=TRUE---------------------------------------------------------------
XB <- estimateRealCount(XB)
XB <- estimateSizeFactors(XB)
XB <- estimateSCV( XB, method='pooled', sharingMode='maximum', fitType='local' )

## ----fig.width=3,fig.height=3-------------------------------------------------
plotSCVEsts(XB)

## -----------------------------------------------------------------------------
Teststas <- XBSeqTest( XB, levels(conditions)[1L], levels(conditions)[2L], method ='NP')

## ----fig.width=3,fig.height=3-------------------------------------------------
MAplot(Teststas, padj = FALSE, pcuff = 0.01, lfccuff = 1)

## ----eval=FALSE,tidy=TRUE-----------------------------------------------------
#  # Alternatively, all the codes above can be done with a wrapper function XBSeq
#  Teststats <- XBSeq( Observed, Background, conditions, method='pooled', sharingMode='maximum',
#    fitType='local', pvals_only=FALSE, paraMethod = 'NP' )

## ----eval=FALSE---------------------------------------------------------------
#  BiocManager::install("DESeq")

## ----message=FALSE------------------------------------------------------------
library('DESeq')
library('ggplot2')
de <- newCountDataSet(Observed, conditions)
de <- estimateSizeFactors(de)
de <- estimateDispersions(de, method = "pooled", fitType="local")
res <- nbinomTest(de, levels(conditions)[1], levels(conditions)[2])

## ----warning=FALSE,message=FALSE,tidy=TRUE, fig.width=3,fig.height=3----------
DE_index_DESeq <- with(res, which(pval<0.01 & abs(log2FoldChange)>1))
DE_index_XBSeq <- with(Teststas, which(pval<0.01 & abs(log2FoldChange)>1))
DE_index_inters <- intersect(DE_index_DESeq, DE_index_XBSeq)
DE_index_DESeq_uniq <- setdiff(DE_index_DESeq, DE_index_XBSeq)
DE_plot <- MAplot(Teststas, padj = FALSE, pcuff = 0.01, lfccuff = 1, shape=16)
DE_plot + geom_point( data=Teststas[DE_index_inters,], aes(x=baseMean, y=log2FoldChange), color= 'green', shape=16 ) + 
  geom_point( data=Teststas[DE_index_DESeq_uniq,], aes( x=baseMean, y=log2FoldChange ), color= 'blue', shape=16 )

## -----------------------------------------------------------------------------
sessionInfo()

