DMRcaller {DMRcaller} | R Documentation |
Uses bisulfite sequencing data in two conditions and identifies differentially methylated regions between the conditions in CG and non-CG context. The input is the CX report files produced by Bismark and the output is a list of DMRs stored as GRanges objects.
The most important functions in the DMRcaller are:
readBismark
reads the Bismark CX report files in a
GRanges
object.
readBismarkPool
Reads multiple CX report files and pools them together.
saveBismark
saves the methylation data stored in a
GRanges
object into a Bismark CX report file.
poolMethylationDatasets
pools together multiple methylation datasets.
poolTwoMethylationDatasets
pools together two methylation datasets.
computeMethylationDataCoverage
Computes the coverage for the bisulfite sequencing data.
plotMethylationDataCoverage
Plots the coverage for the bisulfite sequencing data.
computeMethylationDataSpatialCorrelation
Computes the correlation between methylation levels as a function of the distances between the Cytosines.
plotMethylationDataSpatialCorrelation
Plots the correlation of methylation levels for Cytosines located at a certain distance apart.
computeMethylationProfile
Computes the low resolution profiles for the bisulfite sequencing data at certain locations.
plotMethylationProfile
Plots the low resolution profiles for the bisulfite sequencing data at certain locations.
plotMethylationProfileFromData
Plots the low resolution profiles for the loaded bisulfite sequencing data.
computeDMRs
Computes the differentially methylated regions between two conditions.
filterDMRs
Filters a list of (potential) differentially methylated regions.
mergeDMRsIteratively
Merge DMRs iteratively.
analyseReadsInsideRegionsForCondition
Analyse reads inside regions for condition.
plotLocalMethylationProfile
Plots the methylation profile at one locus for the bisulfite sequencing data.
computeOverlapProfile
Computes the distribution of a set of subregions on a large region.
plotOverlapProfile
Plots the distribution of a set of subregions on a large region.
getWholeChromosomes
Computes the GRanges objects with each chromosome as an element from the methylationData.
joinReplicates
Merges two GRanges objects with single reads columns. It is necessary to start the analysis of DMRs with biological replicates.
computeDMRsReplicates
Computes the differentially methylated regions between two conditions with multiple biological replicates.
Nicolae Radu Zabet n.r.zabet@gen.cam.ac.uk, Jonathan Michael Foonlan Tsang jmft2@cam.ac.uk Alessandro Pio Greco apgrec@essex.ac.uk
Maintainer: Nicolae Radu Zabet n.r.zabet@gen.cam.ac.uk
See vignette("rd", package = "DMRcaller")
for an overview
of the package.
## Not run: # load the methylation data data(methylationDataList) #plot the low resolution profile at 5 Kb resolution par(mar=c(4, 4, 3, 1)+0.1) plotMethylationProfileFromData(methylationDataList[["WT"]], methylationDataList[["met1-3"]], conditionsNames=c("WT", "met1-3"), windowSize = 5000, autoscale = TRUE, context = c("CG", "CHG", "CHH"), labels = LETTERS) # compute low resolution profile in 10 Kb windows in CG context lowResProfileWTCG <- computeMethylationProfile(methylationDataList[["WT"]], region, windowSize = 10000, context = "CG") lowResProfileMet13CG <- computeMethylationProfile( methylationDataList[["met1-3"]], region, windowSize = 10000, context = "CG") lowResProfileCG <- GRangesList("WT" = lowResProfileWTCG, "met1-3" = lowResProfileMet13CG) # compute low resolution profile in 10 Kb windows in CHG context lowResProfileWTCHG <- computeMethylationProfile(methylationDataList[["WT"]], region, windowSize = 10000, context = "CHG") lowResProfileMet13CHG <- computeMethylationProfile( methylationDataList[["met1-3"]], region, windowSize = 10000, context = "CHG") lowResProfileCHG <- GRangesList("WT" = lowResProfileWTCHG, "met1-3" = lowResProfileMet13CHG) # plot the low resolution profile par(mar=c(4, 4, 3, 1)+0.1) par(mfrow=c(2,1)) plotMethylationProfile(lowResProfileCG, autoscale = FALSE, labels = LETTERS[1], title="CG methylation on Chromosome 3", col=c("#D55E00","#E69F00"), pch = c(1,0), lty = c(4,1)) plotMethylationProfile(lowResProfileCHG, autoscale = FALSE, labels = LETTERS[2], title="CHG methylation on Chromosome 3", col=c("#0072B2", "#56B4E9"), pch = c(16,2), lty = c(3,2)) # plot the coverage in all three contexts plotMethylationDataCoverage(methylationDataList[["WT"]], methylationDataList[["met1-3"]], breaks = 1:15, regions = NULL, conditionsNames = c("WT","met1-3"), context = c("CG", "CHG", "CHH"), proportion = TRUE, labels = LETTERS, col = NULL, pch = c(1,0,16,2,15,17), lty = c(4,1,3,2,6,5), contextPerRow = FALSE) # plot the correlation of methylation levels as a function of distance plotMethylationDataSpatialCorrelation(methylationDataList[["WT"]], distances = c(1,5,10,15), regions = NULL, conditionsNames = c("WT","met1-3"), context = c("CG"), labels = LETTERS, col = NULL, pch = c(1,0,16,2,15,17), lty = c(4,1,3,2,6,5), contextPerRow = FALSE) # the regions where to compute the DMRs regions <- GRanges(seqnames = Rle("Chr3"), ranges = IRanges(1,1E6)) # compute the DMRs in CG context with noise_filter method DMRsNoiseFilterCG <- computeDMRs(methylationDataList[["WT"]], methylationDataList[["met1-3"]], regions = regions, context = "CG", method = "noise_filter", windowSize = 100, kernelFunction = "triangular", test = "score", pValueThreshold = 0.01, minCytosinesCount = 4, minProportionDifference = 0.4, minGap = 200, minSize = 50, minReadsPerCytosine = 4, cores = 1) # compute the DMRs in CG context with neighbourhood method DMRsNeighbourhoodCG <- computeDMRs(methylationDataList[["WT"]], methylationDataList[["met1-3"]], regions = regions, context = "CG", method = "neighbourhood", test = "score", pValueThreshold = 0.01, minCytosinesCount = 4, minProportionDifference = 0.4, minGap = 200, minSize = 50, minReadsPerCytosine = 4, cores = 1) # compute the DMRs in CG context with bins method DMRsBinsCG <- computeDMRs(methylationDataList[["WT"]], methylationDataList[["met1-3"]], regions = regions, context = "CG", method = "bins", binSize = 100, test = "score", pValueThreshold = 0.01, minCytosinesCount = 4, minProportionDifference = 0.4, minGap = 200, minSize = 50, minReadsPerCytosine = 4, cores = 1) # load the gene annotation data data(GEs) #select the genes genes <- GEs[which(GEs$type == "gene")] # the regions where to compute the DMRs genes <- genes[overlapsAny(genes, regions)] # filter genes that are differntially methylated in the two conditions DMRsGenesCG <- filterDMRs(methylationDataList[["WT"]], methylationDataList[["met1-3"]], potentialDMRs = genes, context = "CG", test = "score", pValueThreshold = 0.01, minCytosinesCount = 4, minProportionDifference = 0.4, minReadsPerCytosine = 3, cores = 1) #merge the DMRs DMRsNoiseFilterCGLarger <- mergeDMRsIteratively(DMRsNoiseFilterCG, minGap = 500, respectSigns = TRUE, methylationDataList[["WT"]], methylationDataList[["met1-3"]], context = "CG", minProportionDifference=0.4, minReadsPerCytosine = 1, pValueThreshold=0.01, test="score",alternative = "two.sided") #select the genes genes <- GEs[which(GEs$type == "gene")] # the coordinates of the area to be plotted chr3Reg <- GRanges(seqnames = Rle("Chr3"), ranges = IRanges(510000,530000)) # load the DMRs in CG context data(DMRsNoiseFilterCG) DMRsCGlist <- list("noise filter"=DMRsNoiseFilterCG, "neighbourhood"=DMRsNeighbourhoodCG, "bins"=DMRsBinsCG, "genes"=DMRsGenesCG) # plot the CG methylation par(mar=c(4, 4, 3, 1)+0.1) par(mfrow=c(1,1)) plotLocalMethylationProfile(methylationDataList[["WT"]], methylationDataList[["met1-3"]], chr3Reg, DMRsCGlist, c("WT", "met1-3"), GEs, windowSize=100, main="CG methylation") hotspotsHypo <- computeOverlapProfile( DMRsNoiseFilterCG[(DMRsNoiseFilterCG$regionType == "loss")], region, windowSize=2000, binary=TRUE, cores=1) hotspotsHyper <- computeOverlapProfile( DMRsNoiseFilterCG[(DMRsNoiseFilterCG$regionType == "gain")], region, windowSize=2000, binary=TRUE, cores=1) plotOverlapProfile(GRangesList("Chr3"=hotspotsHypo), GRangesList("Chr3"=hotspotsHyper), names=c("loss", "gain"), title="CG methylation") # loading synthetic data data("syntheticDataReplicates") # creating condition vector condition <- c("a", "a", "b", "b") # computing DMRs using the neighbourhood method DMRsReplicatesNeighbourhood <- computeDMRsReplicates(methylationData = methylationData, condition = condition, regions = NULL, context = "CHH", method = "neighbourhood", test = "betareg", pseudocountM = 1, pseudocountN = 2, pValueThreshold = 0.01, minCytosinesCount = 4, minProportionDifference = 0.4, minGap = 200, minSize = 50, minReadsPerCytosine = 4, cores = 1) ## End(Not run)