Agent skill

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.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/26-umr-lmr-pmd-detection

SKILL.md

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

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results