smithery/gptomics

bio-chipseq-super-enhancers

Identifies super-enhancers from H3K27ac, MED1, or BRD4 ChIP-seq using ROSE, ROSE2, LILY, HOMER -style super, and ENCODE dELS cross-referencing. Handles peak stitching parameters, ranking choices, hockey-stick inflection, marker choice (H3K27ac vs MED1/BRD4), and cross-condition comparison with spike-in normalization. Constructs core regulatory circuitry (Saint-Andre 2016) from SE-encoded TFs. Use when identifying cell-identity / cancer-associated regulatory domains, comparing super-enhancers be…

Installation

$ npx skills add smithery/gptomics --skill bio-chip-seq-super-enhancers

Summary

  • Identifies super-enhancers from H3K27ac, MED1, or BRD4 ChIP-seq using ROSE, ROSE2, LILY, HOMER -style super, and ENCODE dELS cross-referencing.
  • Handles peak stitching parameters, ranking choices, hockey-stick inflection, marker choice (H3K27ac vs MED1/BRD4), and cross-condition comparison with spike-in normalization.
  • Constructs core regulatory circuitry (Saint-Andre 2016) from SE-encoded TFs.
  • Use when identifying cell-identity / cancer-associated regulatory domains, comparing super-enhancers between conditions, identifying master transcription factor networks, or predicting BET-inhibitor responsiveness.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/gptomics · top by installs.

npx skills add smithery/gptomics

Browse all from smithery/gptomics

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 16,484 B
  • docs SUMMARY.md 286 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Version Compatibility

Reference examples tested with: ROSE (stjude/ROSE, 2018+), ROSE2 (linlabbcm/rose2, 2021+), LILY (BoevaLab/LILY, 2020+), HOMER 4.11+, samtools 1.19+, bedtools 2.31+, GenomicRanges 1.54+.

The original Young-lab ROSE is Python 2; ROSE2 (linlabbcm/rose2) and the stjude/ROSE fork are the Python-3 implementations with the same algorithm. For hg38 data use stjude/ROSE (python ROSE_main.py, whose genomeDict includes HG38); rose2's released genomeDict covers only HG18/HG19/MM8/MM9/MM10/RN4/RN6, so rose2 -g HG38 fails. LILY (Boeva 2017) is a refactored implementation with input-control background subtraction for low-quality H3K27ac data.

Super-Enhancer Calling

"Identify super-enhancers driving cell identity / cancer biology" -> Stitch nearby active enhancer peaks (H3K27ac, MED1, or BRD4) within a stitching window, exclude proximal-promoter signal, rank by total signal, find the hockey-stick inflection point where signal sharply increases, and classify all stitched regions above the inflection as super-enhancers.

  • CLI (stjude/ROSE, Python 3): python ROSEmain.py -g HG38 -i peaks.gff -r h3k27ac.bam -c input.bam -s 12500 -t 2500 -o roseout/
  • CLI (HOMER): findPeaks tagdir/ -style super -i inputtag_dir/
  • CLI (LILY): variant with input-control background subtraction
  • R (custom hockey-stick): rank enhancers by signal, find tangent-line inflection

The SE concept (Whyte 2013) is a thresholding heuristic on a continuous signal distribution (Pott & Lieb 2015 Nat Genet), not a categorical biological category. Genetic dissection of super-enhancers (Hay 2016; Moorthy 2017) shows constituent elements contribute unequally and many are individually dispensable/redundant; the "SE" label is a useful operational definition for BET-inhibitor responsiveness and cell-identity gene regulation, not an absolute biological property.

Marker Choice: H3K27ac vs MED1 vs BRD4

Marker Captures When to prefer
H3K27ac Active regulatory elements broadly Most widely available; standard for SE definition since Whyte 2013
MED1 Mediator complex accumulation (the defining biology) Direct readout of SE; less common antibody; lower signal-to-noise
BRD4 BET cofactor accumulation Most predictive of BET-inhibitor responsiveness; clinical relevance
H3K27ac + MED1 intersection High-confidence SE Gold standard if both available
dELS from ENCODE cCREs Cell-type-agnostic distal enhancer registry Cross-reference; not SE-specific by itself

Operational rule: H3K27ac for discovery; MED1 or BRD4 ChIP for functional / therapeutic claims. SE called on H3K27ac alone may not respond to BET inhibitors; SE called on BRD4 will.

Algorithmic Taxonomy

Tool Method Strength Fails when
ROSE (Whyte 2013) Stitch within 12.5 kb, exclude ±2.5 kb of TSS, rank by signal, hockey-stick inflection Original; widely cited; canonical reference Original Young-lab code is Python 2; run the stjude/ROSE Py3 fork instead
ROSE2 (linlabbcm/rose2) Same algorithm, Python 3 port Maintained; pip-installable rose2 console command Released genomeDict has no HG38 (HG18/HG19/MM8/MM9/MM10/RN4/RN6 only) -> use stjude/ROSE for hg38
LILY (Boeva 2017) ROSE-like with input-control background subtraction Works on lower-quality H3K27ac data; subtracts input Adds complexity; less validated; specific to neuroblastoma/glioma in original paper
HOMER -style super Native ROSE-like in HOMER framework; stitching without TSS exclusion Integrated with HOMER workflow Different stitching defaults; not directly comparable to ROSE counts
Custom hockey-stick (R) Generic rank-by-signal + tangent inflection Flexible; works on any signal definition Reinvents algorithm; verify against ROSE on known dataset

Most papers use ROSE/ROSE2 with default stitching (12.5 kb) and TSS exclusion (2.5 kb). This is the de facto standard for cross-paper comparison. HOMER's -style super produces different counts and is not directly comparable.

Decision Tree: SE Calling Workflow

Scenario Recommended pipeline
Standard SE discovery, H3K27ac available ROSE2 with default -s 12500 -t 2500; input control for subtraction
Predict BET-inhibitor response BRD4 ChIP -> ROSE2 (or H3K27ac SE intersected with BRD4 peaks)
Compare SE between conditions (drug treatment) ROSE2 per condition + spike-in normalization (HDACi/BETi/EZH2i need ChIP-Rx)
Build core regulatory circuitry ROSE2 + Saint-Andre 2016 algorithm: identify TFs encoded by SE that bind own SE + cross-bind other SE-encoded TFs
Low-quality H3K27ac (low FRiP) LILY with input subtraction
Compare with ENCODE dELS atlas ROSE2 + intersect with ENCODE cCRE dELS BED
Differential SE between conditions ROSE2 per condition + signal-quantitative differential (DiffBind on SE regions)

ROSE / ROSE2 Workflow

Goal: Identify super-enhancers by stitching nearby active enhancer peaks within a stitching distance and ranking by total signal.

Approach: Convert peaks to GFF, exclude promoter-proximal peaks via -t (TSS exclusion window), stitch enhancers within -s (default 12.5 kb), rank by total H3K27ac (or MED1/BRD4) signal, find the hockey-stick inflection point, classify regions above as super-enhancers.

# Install ROSE2 (Python 3 port; unmaintained ROSE Py2 not recommended)
git clone https://github.com/linlabbcm/rose2.git
pip install ./rose2

# Convert peaks BED to GFF (ROSE requires GFF input)
awk 'BEGIN{OFS="\t"} {print $1,"peaks","enhancer",$2,$3,".",$6,".","ID="NR}' \
    peaks.narrowPeak > peaks.gff

# Filter promoter peaks before SE calling (within 2.5 kb of TSS)
# ROSE handles this via -t flag; preferable to pre-filter for clarity
bedtools intersect -a peaks.narrowPeak -b promoters_2kb.bed -v > enhancer_peaks.bed

# Run stjude/ROSE with input control (Python-3 fork; genomeDict includes HG38)
python ROSE_main.py -g HG38 -i peaks.gff \
    -r h3k27ac.bam -c input.bam \
    -o rose_output/ \
    -s 12500 \
    -t 2500

ROSE outputs:

  • *_AllEnhancers.table.txt — all stitched enhancer regions ranked by signal
  • *_SuperEnhancers.table.txt — SE only (above hockey-stick inflection)
  • *EnhancerswithSuper.bed — BED with SE / TE classification
  • *Plotpoints.png — hockey-stick plot

Cross-Condition SE Comparison

This is the analysis most often done wrong. SE calling thresholds depend on absolute signal, so any global shift (HDACi, BETi, EZH2i) confounds direct SE-count comparison.

Wrong approach: Call ROSE2 on condition A and condition B separately, intersect SE BEDs, report "gained/lost SE."

Right approach:

  1. Spike-in normalize signal between conditions (see chip-seq/spike-in-normalization)
  2. Build a union SE set from both conditions
  3. Quantify signal at union SE regions per condition (DiffBind on the union)
  4. Apply differential testing with appropriate normalization (background-bin TMM or spike-in)
library(DiffBind)
# Union of SE BED files from condition A and B
union_se <- rtracklayer::import('union_SE.bed')
# Run DiffBind quantification on this region set with spike-in normalization

For BET-inhibitor experiments: the biology IS that all SE decrease globally; spike-in is mandatory.

Core Regulatory Circuitry (Saint-André 2016)

The CRC algorithm identifies master TF networks from SE annotations:

  1. List all TFs encoded by SE-associated genes
  2. For each such TF, check if its motif appears in its own SE (auto-regulation)
  3. Build a graph where TFs encoded by SE-A bind to motifs in SE-B
  4. Identify highly-interconnected sub-networks (CRC)
# Install CRC pipeline (console command is `crc`; -g is the genome BUILD, not a GTF)
pip install git+https://github.com/linlabcode/CRC.git

# Requires: SE enhancer table, subpeak BED, chromosome-FASTA dir
crc -e SE_table.txt -g HG38 -s subpeaks.bed -c chroms/ -o crc_out/ -n SAMPLE

CRC outputs the connected components of the regulatory network. Master TFs typically appear in the largest component with high out-degree.

ENCODE dELS Cross-Reference

ENCODE distal Enhancer-Like Signatures (dELS) are the cell-type-agnostic regulatory atlas (see chip-seq/peak-annotation). Cross-referencing SE against dELS:

  • Validates SE constituents are at canonical regulatory elements
  • Identifies SE constituents NOT in the dELS registry (potentially cell-type-specific)
  • Provides chromatin-state context (DNase + H3K27ac signatures)
wget https://downloads.wenglab.org/Registry-V4/GRCh38-cCREs.bed
awk -F'\t' '$NF == "dELS"' GRCh38-cCREs.bed > dels.bed

# Fraction of SE constituents overlapping dELS
bedtools intersect -a SuperEnhancers.bed -b dels.bed -u | wc -l
bedtools intersect -a SuperEnhancers.bed -b dels.bed -wa -wb > se_with_dels.tsv

Per-Tool Failure Modes

ROSE -- Python 2 dependency

Trigger: Running the original Young-lab ROSE_main.py (Python 2 code) on a modern system.

Mechanism: The original ROSE is Python 2 code; print statements without parens, dict.iteritems(), etc.

Symptom: SyntaxError on first import.

Fix: Use the stjude/ROSE fork (python ROSE_main.py, Python 3, genomeDict includes HG38) or ROSE2 (rose2, Python 3, but its released genomeDict has no HG38 -- HG18/HG19/MM8/MM9/MM10/RN4/RN6 only); identical algorithm and output format.

ROSE / ROSE2 -- Stitching distance default not appropriate for all biology

Trigger: Using default -s 12500 (12.5 kb) on small genomes or compact gene structures.

Mechanism: Default was set on human/mouse vertebrate genomes; Drosophila / yeast / plants have different regulatory architecture.

Fix: For non-vertebrate genomes, reduce stitching distance proportionally (e.g., -s 2500 for Drosophila, -s 500 for yeast).

ROSE / ROSE2 -- TSS exclusion can remove promoter-associated enhancers

Trigger: Default -t 2500 (exclude peaks within 2.5 kb of TSS) on promoter-proximal enhancers (e.g., pELS class).

Mechanism: TSS-proximal enhancers are filtered out; SE definition becomes distal-only.

Symptom: Lower SE counts than expected for cell types with promoter-enhancer architecture (e.g., human ES cells).

Fix: Reduce TSS exclusion to -t 500 or -t 0 if including promoter-proximal regulatory regions; document the decision.

H3K27ac SE vs BRD4 SE -- BET-inhibitor mismatch

Trigger: Calling SE on H3K27ac and claiming BET-inhibitor responsiveness.

Mechanism: H3K27ac marks active enhancers broadly; not all H3K27ac-positive SE have BRD4 accumulation.

Symptom: Predicted BET-sensitive genes don't respond to BET inhibitors in cell-based assays.

Fix: For BET-inhibitor claims, use BRD4 ChIP for SE calling, or intersect H3K27ac SE with BRD4 peaks.

Cross-condition SE counting -- Wrong normalization

Trigger: Comparing SE counts in HDACi-treated vs DMSO without spike-in normalization.

Mechanism: SE calling thresholds depend on absolute signal; HDACi globally increases H3K27ac, raising every region's signal and shifting the hockey-stick inflection.

Symptom: Reports "1000 SE in HDACi vs 500 in DMSO" when biology is just global H3K27ac increase.

Fix: Spike-in normalize BAMs (ChIP-Rx with Drosophila chromatin), call SE on scaled signal; OR quantify signal at a union peak set rather than calling SE per condition.

LILY -- Input subtraction artifacts

Trigger: Running LILY without high-quality matched input control.

Mechanism: LILY subtracts background based on input signal; mismatched input introduces artifactual negative signal.

Fix: Use LILY only when input quality is good (same library prep, same depth, same fragmentation); otherwise use ROSE2 with standard input handling.

Hockey-stick inflection -- Sensitive to peak count

Trigger: Calling SE on a small peak set (< 5000 enhancers).

Mechanism: Hockey-stick inflection depends on having a long "tail" of typical enhancers; few peaks distort the inflection.

Symptom: SE count is unreasonably high (50%+ of all peaks called SE) or unreasonably low (< 50 SE).

Fix: Require ≥ 5000 enhancer peaks input to ROSE2; if fewer, use absolute signal cutoff (e.g., top 5% by signal density) rather than hockey-stick.

Reconciliation: When SE Calls Disagree

Pattern Likely cause Action
ROSE2 vs HOMER -style super differ Different stitching distance / TSS handling Use ROSE2 standard for cross-paper comparison; HOMER for HOMER-integrated workflows
H3K27ac SE ≠ MED1 SE at same locus H3K27ac is broad; MED1 marks subset of active SE MED1 SE is the more functional definition; H3K27ac includes inactive-but-acetylated regions
SE called in DMSO but not in BETi (or vice versa) Global signal shift confounds threshold Spike-in normalize; compare quantitatively at union SE set
SE shifts location between replicates Marginal calls below inflection; hockey-stick inflection noisy Use top N SE by rank for robustness; or require SE in ≥ 2/3 replicates
LILY and ROSE2 disagree on SE count LILY's input subtraction differs Trust ROSE2 unless input quality is poor (low FRiP)

Common Errors

Error / symptom Cause Solution
SyntaxError: invalid syntax in ROSE Python 2 codebase Use ROSE2 (linlabbcm) Python 3 port
GFF format error Wrong column ordering Use awk template: chr<TAB>peaks<TAB>enhancer<TAB>start<TAB>end<TAB>.<TAB>strand<TAB>.<TAB>ID=N
ROSE2 reports 0 SE Hockey-stick inflection failed; too few enhancers Inspect Plotpoints.png; ≥ 5000 peaks input recommended
Genome flag error in ROSE2 Genome not pre-configured Genome flag must be one of HG18, HG19, HG38, MM8, MM9, MM10
All SE at promoters TSS exclusion too narrow OR data dominated by promoter signal Verify -t 2500; check input is H3K27ac at enhancers not full chromatin
Cross-condition SE gain/loss not reproducible No spike-in normalization Spike-in (ChIP-Rx) or quantitative differential on union SE

References

  • Whyte WA et al 2013 Cell 153:307 (super-enhancers, ROSE)
  • Lovén J et al 2013 Cell 153:320 (SE characterization, BET sensitivity)
  • Hnisz D et al 2013 Cell 155:934 (SE in cell identity)
  • Pott S & Lieb JD 2015 Nat Genet 47:8 (SE as continuum critique)
  • Lin CY et al 2016 Nature 530:57-62 (medulloblastoma super-enhancers)
  • Saint-André V et al 2016 Genome Res 26:385 (core regulatory circuitry)
  • Boeva V et al 2017 Nat Genet 49:1408 (LILY; neuroblastoma SE)
  • Hnisz D et al 2017 Cell 169:13 (phase-separation model of transcriptional control)
  • Hay D et al 2016 Nat Genet 48:895 (genetic dissection of the alpha-globin super-enhancer)
  • Moorthy S et al 2017 Genome Res 27:246 (SE constituents have equivalent/redundant regulatory roles in ESCs)
  • Sengupta S & George RE 2017 Trends Cancer 3:269 (SE function review)

Related Skills

  • chip-seq/peak-calling - Generate H3K27ac / MED1 / BRD4 peaks for SE input
  • chip-seq/chipseq-qc - Filter hyper-ChIPable peaks before SE calling
  • chip-seq/spike-in-normalization - Mandatory for cross-condition SE comparison
  • chip-seq/differential-binding - Quantitative differential testing on union SE set
  • chip-seq/peak-annotation - Annotate SE-associated genes; cross-reference dELS
  • chip-seq/cut-and-run-tag - SE calling on CUT&RUN/CUT&Tag H3K27ac (different spike-in)
  • atac-seq/enhancer-gene-linking - ENCODE-rE2G for SE-target gene assignment
  • data-visualization/genome-tracks - SE region visualization