UMR-LMR-PMD-detection
This pipeline performs genome-wide segmentation of CpG methylation profiles to identify Unmethylated Regions (UMRs), Low-Methylated Regions (LMRs), and Partially Methylated Domains (PMDs) using whole-genome bisulfite sequencing (WGBS) methylation calls. The pipeline provides high-resolution enhancer-like LMRs, promoter-associated UMRs, and large-scale PMDs characteristic of reprogramming, aging, or cancer methylomes, enabling integration with chromatin accessibility, TF binding, and genome architecture analyses.
$ Installer
git clone https://github.com/BIsnake2001/ChromSkills /tmp/ChromSkills && cp -r /tmp/ChromSkills/26.UMR-LMR-PMD-detection ~/.claude/skills/ChromSkills// tip: Run this command in your terminal to install the skill
name: UMR-LMR-PMD-detection description: This pipeline performs genome-wide segmentation of CpG methylation profiles to identify Unmethylated Regions (UMRs), Low-Methylated Regions (LMRs), and Partially Methylated Domains (PMDs) using whole-genome bisulfite sequencing (WGBS) methylation calls. The pipeline provides high-resolution enhancer-like LMRs, promoter-associated UMRs, and large-scale PMDs characteristic of reprogramming, aging, or cancer methylomes, enabling integration with chromatin accessibility, TF binding, and genome architecture analyses.
Unmethylated Regions (UMR) & Low-Methylated Region (LMR) & Partially Methylated Domain (PMD) Detection
1. Overview
This pipeline performs genome-wide segmentation of CpG methylation profiles to identify Unmethylated Regions (UMRs), Low-Methylated Regions (LMRs), and Partially Methylated Domains (PMDs) using whole-genome bisulfite sequencing (WGBS) methylation calls.
Main steps include:
- Refer to the Inputs & Outputs section to check available inputs and design the output structure.
- Always prompt user for genome assembly used.
- Always prompt user for which columns are methylation fraction/percent and coverage and strand.
- Convert BED → GRanges with mC/nC counts.
- Perform CpG filtering (coverage threshold).
- Call UMRs/LMRs using MethylSeekR segmentation.
- Mask UMR/LMR and detect PMDs using a 2-state HMM (optional).
- Export annotations as BED files and summary tables.
2. When to Use This Skill
Biological questions
Use this skill when your research aims to:
- Identify enhancer-like hypomethylated domains (LMRs).
- Detect large-scale methylation erosion (PMDs).
- Quantify global methylation heterogeneity.
- Explore regulatory element accessibility from WGBS alone.
- Integrate methylome segmentation with ATAC-seq, ChIP-seq, or chromatin states.
3. Inputs & Outputs
Inputs
<sample>.bed
Outputs
LMR_PMD_calling/
regions/
UMRs.bed/
LMRs.bed/
PMDs.bed/
4. Decision Tree
Step 1: Prepare the object for detecting UMR/LMR/PMD
library(MethylSeekR)
library(GenomicRanges)
bed <- read.table("sample.bed")
bed <- bed[, c(1,2,3,6,10,11)] # column index provided by user
colnames(bed) <- c("chr","start","end","percentage","coverage","strand")
bed$mC <- round(bed$beta * bed$coverage) # beta = 0.01 * percentage
bed$nC <- bed$coverage - bed$mC
gr <- GRanges(seqnames=bed$chr,
ranges=IRanges(bed$start, bed$end),
strand=bed$strand,
mC=bed$mC,
nC=bed$nC)
Step 2: UMR and LMR detection
library("BSgenome.Hsapiens.UCSC.hg38") # provided by user
sLengths=seqlengths(Hsapiens)
lmr_cutoff = 0.5
res <- segmentUMRsLMRs(m = gr, meth.cutoff = lmr_cutoff, seqLengths = sLengths, myGenomeSeq=Hsapiens)
UMRs <- res$UMRs
LMRs <- res$LMRs
# save UMR and LMR to the BED format files if more than zero UMRs and LMRs detected
Step 3: PMD detection
pmds <- segmentPMDs(m=gr, chr.sel=unique(seqnames(gr)),
seqLengths=seqlengths(gr))
Notes & troubleshooting
- Install the required genome sequence or derived information with
BSgenomepackage if not available
# check available genomes
library(BSgenome)
available.genomes()
# install
BiocManager::install("BSgenome.Hsapiens.UCSC.hg38") # e.g. hg38
Repository
