Last data update: 2014.03.03

R: Segmentation of Bis-seq methylation data
MethylSeekR-packageR Documentation

Segmentation of Bis-seq methylation data

Description

This is a package for the discovery of regulatory regions from Bis-seq data

Details

Package: MethylSeekR
Type: Package
Version: 1.0
Date: 2012-10-10
License: None

Author(s)

Lukas Burger

Maintainer: Lukas Burger <Lukas.Burger@fmi.ch>

References

Stadler, Murr, Burger et al, DNA-binding factors shape the mouse methylome at distal regulatory regions, Nature 2011.

Examples


library(MethylSeekR)

# get chromosome lengths
library("BSgenome.Hsapiens.UCSC.hg18")
sLengths=seqlengths(Hsapiens)

# read methylation data
methFname <- system.file("extdata", "Lister2009_imr90_hg18_chr22.tab",
package="MethylSeekR")
meth.gr <- readMethylome(FileName=methFname, seqLengths=sLengths)

#read SNP data
snpFname <- system.file("extdata", "SNVs_hg18_chr22.tab",
package="MethylSeekR")
snps.gr <- readSNPTable(FileName=snpFname, seqLengths=sLengths)

# remove SNPs
meth.gr <- removeSNPs(meth.gr, snps.gr)

#calculate alpha distribution for one chromosome
plotAlphaDistributionOneChr(m=meth.gr, chr.sel="chr22", num.cores=1)

#segment PMDs
PMDsegments.gr <- segmentPMDs(m=meth.gr, chr.sel="chr22", num.cores=1,
seqLengths=sLengths)

#plot PMD segmentation examples
plotPMDSegmentation(m=meth.gr, segs=PMDsegments.gr, numRegions=1)

#save PMD segments
savePMDSegments(PMDs=PMDsegments.gr, GRangesFilename="PMDs.gr.rds",
 TableFilename="PMDs.tab")

#load CpG islands
library(rtracklayer)
session <- browserSession()
genome(session) <- "hg18"
query <- ucscTableQuery(session, "cpgIslandExt")
CpGislands.gr <- track(query)
genome(CpGislands.gr) <- NA
CpGislands.gr <- resize(CpGislands.gr, 5000, fix="center")

#calculate FDRs
stats <- calculateFDRs(m=meth.gr, CGIs=CpGislands.gr,
PMDs=PMDsegments.gr, num.cores=1)

# select FDR cut-off and determine segmentation parameters
FDR.cutoff <- 5 
m.sel <- 0.5 
n.sel=as.integer(names(stats$FDRs[as.character(m.sel), ]
[stats$FDRs[as.character(m.sel), ]<FDR.cutoff])[1])

#segment UMRs and LMRs 
UMRLMRsegments.gr <- segmentUMRsLMRs(m=meth.gr, meth.cutoff=m.sel,
nCpG.cutoff=n.sel, PMDs=PMDsegments.gr, num.cores=1,
myGenomeSeq=Hsapiens, seqLengths=sLengths)

#plot final segmentation including PMDs, UMRs and LMRs
plotFinalSegmentation(m=meth.gr, segs=UMRLMRsegments.gr, PMDs=PMDsegments.gr,
meth.cutoff=m.sel, numRegions=1)

#save UMRs and LMRs
saveUMRLMRSegments(segs=UMRLMRsegments.gr, GRangesFilename="UMRsLMRs.gr.rds",
 TableFilename="UMRsLMRs.tab")


Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(MethylSeekR)
Loading required package: rtracklayer
Loading required package: GenomicRanges
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: 'BiocGenerics'

The following objects are masked from 'package:parallel':

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
    clusterExport, clusterMap, parApply, parCapply, parLapply,
    parLapplyLB, parRapply, parSapply, parSapplyLB

The following objects are masked from 'package:stats':

    IQR, mad, xtabs

The following objects are masked from 'package:base':

    Filter, Find, Map, Position, Reduce, anyDuplicated, append,
    as.data.frame, cbind, colnames, do.call, duplicated, eval, evalq,
    get, grep, grepl, intersect, is.unsorted, lapply, lengths, mapply,
    match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, rank,
    rbind, rownames, sapply, setdiff, sort, table, tapply, union,
    unique, unsplit

Loading required package: S4Vectors
Loading required package: stats4

Attaching package: 'S4Vectors'

The following objects are masked from 'package:base':

    colMeans, colSums, expand.grid, rowMeans, rowSums

Loading required package: IRanges
Loading required package: GenomeInfoDb
Loading required package: mhsmm
Loading required package: mvtnorm
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/MethylSeekR/MethylSeekR-package.Rd_%03d_medium.png", width=480, height=480)
> ### Name: MethylSeekR-package
> ### Title: Segmentation of Bis-seq methylation data
> ### Aliases: MethylSeekR-package MethylSeekR
> ### Keywords: package
> 
> ### ** Examples
> 
> 
> library(MethylSeekR)
> 
> # get chromosome lengths
> library("BSgenome.Hsapiens.UCSC.hg18")
Loading required package: BSgenome
Loading required package: Biostrings
Loading required package: XVector
> sLengths=seqlengths(Hsapiens)
> 
> # read methylation data
> methFname <- system.file("extdata", "Lister2009_imr90_hg18_chr22.tab",
+ package="MethylSeekR")
> meth.gr <- readMethylome(FileName=methFname, seqLengths=sLengths)
reading methylome data
Read 200000 records
> 
> #read SNP data
> snpFname <- system.file("extdata", "SNVs_hg18_chr22.tab",
+ package="MethylSeekR")
> snps.gr <- readSNPTable(FileName=snpFname, seqLengths=sLengths)
reading SNP table
Read 11750 records
> 
> # remove SNPs
> meth.gr <- removeSNPs(meth.gr, snps.gr)
removing SNPs
11604 (6.2%) CpGs removed
> 
> #calculate alpha distribution for one chromosome
> plotAlphaDistributionOneChr(m=meth.gr, chr.sel="chr22", num.cores=1)
determining alpha distribution for chromosome: chr22
> 
> #segment PMDs
> PMDsegments.gr <- segmentPMDs(m=meth.gr, chr.sel="chr22", num.cores=1,
+ seqLengths=sLengths)
training PMD-HMM on chromosome chr22
performing viterbi segmentation
creating GRanges object
> 
> #plot PMD segmentation examples
> plotPMDSegmentation(m=meth.gr, segs=PMDsegments.gr, numRegions=1)
> 
> #save PMD segments
> savePMDSegments(PMDs=PMDsegments.gr, GRangesFilename="PMDs.gr.rds",
+  TableFilename="PMDs.tab")
> 
> #load CpG islands
> library(rtracklayer)
> session <- browserSession()
> genome(session) <- "hg18"
Error in `genome<-`(`*tmp*`, value = "hg18") : 
  Failed to set session genome to 'hg18'
Calls: genome<- -> genome<-
Execution halted