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 ar...
Scanned 5/31/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill 26-umr-lmr-pmd-detection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of 26 Umr Lmr Pmd Detection Bisnake2001 Chromskills 2?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-26-umr-lmr-pmd-detection-bisnake2001-chromskills-2)More formats (shields.io, HTML) on the badges page.
---
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
```bash
LMR_PMD_calling/
regions/
UMRs.bed/
LMRs.bed/
PMDs.bed/
```
---
## 4. Decision Tree
### Step 1: Prepare the object for detecting UMR/LMR/PMD
```r
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
```r
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
```r
pmds <- segmentPMDs(m=gr, chr.sel=unique(seqnames(gr)),
seqLengths=seqlengths(gr))
```
## Notes & troubleshooting
- Install the required genome sequence or derived information with `BSgenome` package if not available
```r
# check available genomes
library(BSgenome)
available.genomes()
# install
BiocManager::install("BSgenome.Hsapiens.UCSC.hg38") # e.g. hg38
```Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!