Nothing
## ----loadingPackage, warning=FALSE, message=FALSE-----------------------------
library(RJMCMCNucleosomes)
## ----createSample, collapse=TRUE, message=FALSE-------------------------------
## Load nucleoSim package
library(nucleoSim)
val.num <- 50 ### Number of well-positioned nucleosomes
val.del <- 10 ### Number of well-positioned nucleosomes to delete
val.var <- 30 ### variance associated to well-positioned nucleosomes
val.fuz <- 10 ### Number of fuzzy nucleosomes
val.fuz.var <- 50 ### variance associated to fuzzy nucleosomes
val.max.cover <- 70 ### Maximum coverage for one nucleosome
val.nuc.len <- 147 ### Distance between nucleosomes
val.len.var <- 10 ### Variance associated to the length of the reads
val.lin.len <- 20 ### The length of the DNA linker
val.rnd.seed <- 100 ### Set seed when result needs to be reproducible
val.offset <- 10000 ### The number of bases used to offset
### all nucleosomes and reads
## Create sample using a Normal distribution
sample <- nucleoSim::syntheticNucReadsFromDist(wp.num=val.num,
wp.del=val.del, wp.var=val.var,
fuz.num=val.del, fuz.var=val.fuz.var,
max.cover=val.max.cover,
nuc.len=val.nuc.len,
len.var=val.len.var,
lin.len=val.lin.len,
rnd.seed=val.rnd.seed,
distr="Normal", offset=val.offset)
## Create visual representation of the synthetic nucleosome sample
plot(sample)
## ----segment01, warning=FALSE, collapse=TRUE, message=FALSE-------------------
## Load needed packages
library(GenomicRanges)
## Transform sample dataset into GRanges object
sampleGRanges <- GRanges(seqnames = sample$dataIP$chr,
ranges = IRanges(start = sample$dataIP$start,
end = sample$dataIP$end),
strand = sample$dataIP$strand)
## Segment sample into candidate regions
sampleSegmented <- segmentation(reads = sampleGRanges, zeta = 147,
delta = 40, maxLength = 1000)
## Number of segments created
length(sampleSegmented)
## ----runRJMCMC01 , warning=FALSE, collapse=TRUE-------------------------------
## Extract the first segment
segment01 <- sampleSegmented[[1]]
## Run RJMCMC analysis
## A higher number of iterations is recommanded for real analysis
resultSegment01 <- rjmcmc(reads = segment01, nbrIterations = 100000,
lambda = 3, kMax = 30,
minInterval = 100, maxInterval = 200,
minReads = 5, vSeed = 1921)
## Print the predicted nucleosomes for the first segment
resultSegment01
## ----regroup01, warning=FALSE, collapse=TRUE, message=FALSE-------------------
## The directory containing the results of all segments
## On RDS file has been created for each segment
directory <- system.file("extdata", "demo_vignette",
package = "RJMCMCNucleosomes")
## Merging predicted nucleosomes from all segments
resultsAllMerged <- mergeAllRDSFilesFromDirectory(directory)
resultsAllMerged
## ----postProcess01, collapse=TRUE, message=FALSE------------------------------
## Split reads from the initial sample data into forward and reverse subsets
reads <- GRanges(sample$dataIP)
## Number of nucleosomes before the post-treatment
resultsAllMerged$k
## Use the post-treatment function
resultsPostTreatment <- postTreatment(reads = reads,
resultRJMCMC = resultsAllMerged,
extendingSize = 15,
chrLength = max(start(reads), end(reads)) + 1000)
## Number of nucleosomes after the post-treatment
length(resultsPostTreatment)
## ----visualisation, collapse=TRUE, message=FALSE, fig.height=6.5, fig.width=8----
## Extract reads to create a GRanges
reads <-GRanges(sample$dataIP)
## Merge predictions from before post-treatment and after post-treatment in
## a list so that both results will be shown in graph
# resultsBeforeAndAfter <- list(Sample = c(sample$wp$nucleopos,
# sample$fuz$nucleopos),
# BeforePostTreatment = resultsAllMerged$mu,
# AfterPostTreatment = resultsPostTreatment)
resultsBeforeAndAfter <- GRangesList(Sample = GRanges(
rep("chr_SYNTHETIC",
length(c(sample$wp$nucleopos,sample$fuz$nucleopos))),
ranges = IRanges(start=c(sample$wp$nucleopos,sample$fuz$nucleopos),
end=c(sample$wp$nucleopos,sample$fuz$nucleopos)),
strand=rep("*", length(c(sample$wp$nucleopos,
sample$fuz$nucleopos)))),
BeforePostTreatment = resultsAllMerged$mu,
AfterPostTreatment = resultsPostTreatment)
## Create graph using nucleosome positions and reads
## The plot will shows :
## 1. nucleosomes from the sample
## 2. nucleosomes detected by rjmcmc() function
## 3. nucleosomes obtained after post-treament
plotNucleosomes(nucleosomePositions = resultsBeforeAndAfter, reads = reads,
names=c("Sample", "RJMCMC", "After Post-Treatment"))
## ----rjmcmcCHR, collapse=TRUE, message=FALSE, eval=FALSE----------------------
# ## Load synthetic dataset of reads
# data(syntheticNucleosomeReads)
#
# ## Number of reads in the dataset
# nrow(syntheticNucleosomeReads$dataIP)
#
# ## Use the dataset to create a GRanges object
# sampleGRanges <- GRanges(syntheticNucleosomeReads$dataIP)
#
# ## All reads are related to one chromosome called "chr_SYNTHETIC"
# seqnames(sampleGRanges)
#
# ## Run RJMCMC on all reads
# result <- rjmcmcCHR(reads = sampleGRanges,
# seqName = "chr_SYNTHETIC", dirOut = "testRJMCMCCHR",
# zeta = 147, delta=50, maxLength=1200,
# nbrIterations = 500, lambda = 3, kMax = 30,
# minInterval = 146, maxInterval = 292, minReads = 5,
# vSeed = 10113, nbCores = 2, saveAsRDS = FALSE,
# saveSEG = FALSE)
#
# result
## ----sessionInfo, echo=FALSE--------------------------------------------------
sessionInfo()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.