agentsclimarketplace

Enhancer gene linking

Skill BioTender-max/awesome-bio-agent-skills/skills/bioskills/enhancer-gene-linking

Predict enhancer-gene regulatory connections from ATAC-seq using ABC, ENCODE-rE2G, HiChIP, or Cicero. Use when linking distal enhancers to target genes, choosing between contact-aware (ABC, ENCODE-rE2G), accessibility-only (Cicero), and orthogonal (HiChIP H3K27ac, EpiMap) approaches, validating predictions against CRISPRi-FlowFISH gold-standard, or building cell-type-specific regulatory maps for fine-mapping or therapeutic target discovery.From its SKILL.md

Install
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill enhancer-gene-linking

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

16.9 KB, ~4.5k tokens by cl100k_base, as published. Nobody here has run it

Version Compatibility

Reference examples tested with: ABC-Enhancer-Gene-Prediction 0.2.2+ (Engreitz lab), ENCODE-rE2G v1.0+ (2024 release), Cicero 1.20+, GenomicInteractions 1.36+, FitHiChIP 9.1+, hicpro 3.1+, FAN-C 0.9+, MACS3 3.0+, samtools 1.19+, bedtools 2.31+.

Verify before use:

  • CLI: <tool> --version then <tool> --help to confirm flags
  • R: packageVersion('<pkg>') then ?function_name to verify parameters
  • Python: pip show <package> then help(module.function) to check signatures

If code throws unexpected errors, introspect the installed package and adapt rather than retrying.

Enhancer-Gene Linking

"Which gene does this distal accessible region regulate?" -> Predict the enhancer's target gene using a model that combines accessibility activity, 3D contact frequency, and (optionally) sequence-based chromatin predictions. Output is a per-(enhancer, gene) score that can be thresholded for high-confidence calls.

  • CLI: ABC pipeline (run.neighborhoods.py, predict.py from Engreitz lab)
  • CLI: ENCODE-rE2G (Snakemake-based; ENCODE 4 standard 2024)
  • R: Cicero (ATAC-only; covered in atac-seq/co-accessibility)
  • CLI: FitHiChIP / hichipper for HiChIP H3K27ac loops
  • Database: EpiMap (Boix 2021), GeneHancer, FANTOM5 (pre-computed reference)

ABC and ENCODE-rE2G are the canonical predictors when Hi-C/Micro-C data is available. Cicero is the ATAC-only fallback. CRISPRi-FlowFISH (Fulco 2019) is the gold-standard experimental validation.

Algorithmic Taxonomy

MethodInputsMathematicsStrengthFails when
ABC (Fulco 2019, Nasser 2021)ATAC + H3K27ac + Hi-C/Micro-CABC = (Activity_E x Contact_E,G) / sum_e(Activity_e x Contact_e,G); threshold typically >= 0.02Mechanistically grounded; published gold-standard for human cell linesRequires matched Hi-C / Micro-C; cell-type-specific; default contact uses average across 5 ENCODE cell types if Hi-C not available
ENCODE-rE2G (ENCODE 2024)ATAC + H3K27ac + (Hi-C optional)Logistic regression trained on CRISPRi-FlowFISH ground truth; uses ABC features + sequence features + distanceENCODE 4 standard; pre-trained models for many cell typesPre-trained models only available for ENCODE cell types; retraining requires CRISPRi data
Cicero (Pliner 2018)scATAC peak-cell matrixGraphical lasso on metacell co-accessibilityATAC-only; works without Hi-CLess concordant with Hi-C than ABC; cis-distance-limited; alpha-sensitive
HiChIP H3K27ac + FitHiChIPH3K27ac HiChIPStatistically significant loops at FDR < 0.05Direct experimental loop measurement; cell-type-specific; orthogonal to ATACRequires HiChIP wet-lab; only captures loops within HiChIP resolution (~10 kb)
Hi-C + HiCCUPSBulk Hi-CFold-enrichment loop callingMost-validated 3D contact methodResolution typically 5-25 kb; misses sub-loop fine structure
Capture Hi-C / PCHi-C (CHiCAGO)Promoter Capture Hi-CAsymptotic CHiCAGO scoreHigh-resolution promoter-anchoredWet-lab cost; promoter capture only
EpiMap (Boix 2021) referenceNone (pre-computed lookup)Bulk-derived enhancer-gene predictions in 833 epigenomesFast, comprehensiveCell-type-agnostic for tissues outside the reference set
GeneHancer / FANTOM5 (legacy)None (pre-computed lookup)Pre-computed; varied methods per databaseComprehensive lookup; widely citedOlder; less reliable than ABC for cell-type-specific

Methodology evolves; verify against current Engreitz lab releases (ABC), ENCODE 4 publications (ENCODE-rE2G), and Mumbach 2017 (HiChIP) before locking pipelines.

ABC Mathematics

For each candidate (enhancer E, gene G) pair within the cis window (default 5 Mb):

ABC(E -> G) = Activity_E * Contact_E,G / sum_{all e in window}(Activity_e * Contact_e,G)
  • Activity_E = ATAC reads at E * H3K27ac reads at E (geometric mean of normalized signals; reflects "enhancer strength")
  • Contact_E,G = Hi-C/Micro-C contact frequency from E to G's TSS (after distance-correction)
  • Window = +/- 5 Mb cis (default; ENCODE-rE2G uses 1 Mb)

Threshold typical: ABC >= 0.02 for high-confidence; >= 0.01 for exploratory.

When Hi-C is unavailable, ABC uses an "average contact" derived from 5 ENCODE Hi-C cell types as proxy. Performance degrades but it's not zero (Fulco 2019).

ENCODE-rE2G Differences from ABC

ENCODE-rE2G (2024) is a reformulation:

  • Logistic regression trained on CRISPRi-FlowFISH ground truth (~10 cell types)
  • Features: ABC score components + 3D contact + distance + activity ratios
  • Multiple feature configurations: "abc-features", "no-hic-features" for cells without 3D data
  • Output: Per-pair probability of regulatory connection
  • Pre-trained models for ENCODE cell lines; logistic params vary by cell type

ENCODE-rE2G generally outperforms ABC at CRISPRi recall, especially at modest distances (50-500 kb). For ENCODE cell types, prefer ENCODE-rE2G; for novel cell types, ABC remains the default.

Per-Tool Failure Modes

ABC -- Wrong cell-type-matched Hi-C

Trigger: Using K562 Hi-C contact when actual cell type is GM12878.

Mechanism: Contact frequencies differ across cell types at compartment and TAD boundaries; using mismatched Hi-C produces wrong ABC scores.

Symptom: ABC predictions concentrate at known K562-specific loci even when ATAC data is from GM12878.

Fix: Use cell-type-matched Hi-C or Micro-C. If unavailable, ABC's "average HiC" (5-cell-type pooled) is the documented fallback with acknowledged degradation. Document the proxy in methods.

ABC -- H3K27ac normalization

Trigger: H3K27ac ChIP-seq with different sequencing depth than ATAC.

Mechanism: ABC's "Activity" is the geometric mean of accessibility and H3K27ac signals; both must be normalized to the same scale.

Symptom: Activity scores skewed; some peaks have very high activity from H3K27ac alone, others from ATAC alone.

Fix: Normalize both signals to reads-per-million in peaks (RPM-IP) before combining. Use ABC's --qnorm flag with a quantile-normalization reference file (e.g. --qnorm src/EnhancersQNormRef.K562.txt from the ABC repo).

ENCODE-rE2G -- Cell type not in pre-trained set

Trigger: Running pre-trained model on a primary cell type not in CRISPRi training.

Mechanism: Logistic regression coefficients learned from ENCODE cell types may not transfer to primary tissues.

Fix: Use the closest ENCODE cell type (myeloid lineage -> K562; lymphoid -> GM12878; hepatic -> HepG2). Document the proxy. For high-stakes use, custom retraining requires CRISPRi-FlowFISH data.

Cicero -- No Hi-C concordance benchmark

Trigger: Reporting Cicero connections as enhancer-gene calls without external validation.

Mechanism: Cicero is statistical co-accessibility; correlation with Hi-C 3D contacts is ~30-50%. Many strong Cicero connections are NOT Hi-C-validated.

Fix: When Hi-C is available, cross-validate; report both. When only ATAC, use Cicero with the explicit caveat that connections are co-accessibility hypotheses, not contact predictions.

HiChIP -- Loop calling threshold

Trigger: Default FitHiChIP at FDR < 0.05.

Mechanism: HiChIP loops are abundant (10k-100k per dataset); FDR alone produces a long tail of weak loops.

Fix: Threshold at FDR < 0.05 AND number of contacts per loop >= 5; or use the top N most significant where N = expected number of loops based on cell type.

EpiMap / GeneHancer -- Cell-type-agnostic limitation

Trigger: Using EpiMap or GeneHancer pre-computed pairs for a specific cell type.

Mechanism: These references aggregate across many tissues / experiments; cell-type-specific connections are diluted.

Fix: Use as a baseline / sanity check, not as the primary call. ABC or ENCODE-rE2G in the actual cell type is preferred.

Decision Tree by Available Data

Available dataRecommended method
ATAC + H3K27ac + matched Hi-C/Micro-CABC or ENCODE-rE2G (with cell-type-matched contact)
ATAC + H3K27ac, no Hi-CABC with average HiC fallback; or ENCODE-rE2G no-hic model
ATAC only, no H3K27acCicero (atac-seq/co-accessibility); ABC with synthetic activity
ATAC + H3K27ac HiChIPFitHiChIP loops + ABC; intersect for high confidence
Multiome (ATAC + RNA same cell)LinkPeaks (Signac) for direct correlation; SCENIC+ for TF networks
ENCODE cell typePre-computed ENCODE-rE2G predictions (download)
Tissue with limited public dataABC + acknowledge proxy; do not rely on EpiMap
Multi-cell-type scATACscBasset (atac-seq/deep-learning-atac) for sequence-based per-cell
Want experimental validationCRISPRi-FlowFISH design; use predictions as targeted hypotheses

ABC Standard Pipeline

Goal: Compute per-(enhancer, gene) ABC scores combining ATAC accessibility, H3K27ac activity, and Hi-C contact.

Approach: Build RPGC-normalized ATAC and H3K27ac bigWigs, define non-promoter candidate enhancers from ATAC peaks, run ABC neighborhoods to compute per-candidate activity, then run ABC predict against a Hi-C contact matrix and threshold the per-pair ABC score.

# 1. Generate ATAC and H3K27ac signal tracks (BAM -> bigWig)
bamCoverage --bam atac.bam --outFileName atac.bw --binSize 50 --normalizeUsing RPGC \
    --effectiveGenomeSize 2913022398 --numberOfProcessors 8

# 2. Define enhancer candidates (typically MACS narrowPeak from ATAC)
# Filter to non-promoter regions
bedtools intersect -v -a atac_peaks.narrowPeak -b promoter_regions.bed > candidate_enhancers.bed

# 3. Run ABC neighborhoods (compute Activity per candidate)
# Script path: legacy ABC = src/run.neighborhoods.py; Snakemake-based modern = workflow/scripts/run.neighborhoods.py
python /path/ABC-Enhancer-Gene-Prediction/workflow/scripts/run.neighborhoods.py \
    --candidate_enhancer_regions candidate_enhancers.bed \
    --genes refseq_protein_coding.bed \
    --H3K27ac h3k27ac.bw \
    --DHS atac.bw \
    --chrom_sizes hg38.chrom.sizes \
    --ubiquitously_expressed_genes Genes.ubiquitously_expressed.txt \
    --cellType MyCellType \
    --outdir abc_out/

# 4. Run ABC predictions (Activity * Contact)
python /path/ABC-Enhancer-Gene-Prediction/workflow/scripts/predict.py \
    --enhancers abc_out/EnhancerList.txt \
    --genes abc_out/GeneList.txt \
    --HiCdir hic_data/ \
    --hic_resolution 5000 \
    --score_column ABC.Score \
    --threshold 0.02 \
    --cellType MyCellType \
    --outdir abc_out/Predictions/

# Output: EnhancerPredictionsAllPutative.txt with per-pair ABC scores

ABC.Score >= 0.02 is the standard threshold validated in Fulco 2019 against CRISPRi-FlowFISH; >= 0.04 is a stricter cut sometimes used in the ABC pipeline documentation for higher precision (no separate primary-paper calibration).

ENCODE-rE2G

# Snakemake-based; clone the ENCODE-rE2G repo
git clone https://github.com/EngreitzLab/ENCODE_rE2G
cd ENCODE_rE2G

# Edit config.yaml with cell type, ATAC, H3K27ac paths
# Run with appropriate model (cell-type-matched logistic regression weights)
snakemake --use-conda --cores 16 \
    --config cell_type=K562 \
             atac_bw=atac.bw \
             h3k27ac_bw=h3k27ac.bw \
             hic_directory=hic_data/

# Output: scored_predictions.tsv.gz with per-pair scores and binarized predictions

Pre-trained models are at https://github.com/EngreitzLab/ENCODE_rE2G/tree/main/models. Choose by tissue similarity if exact cell type not present.

CRISPRi-FlowFISH Validation Framework

CRISPRi-FlowFISH (Fulco 2019) is the experimental gold-standard:

  1. Design sgRNAs tiling each candidate enhancer
  2. Transduce CRISPRi-expressing cells; FACS by gene expression (FlowFISH for endogenous; reporter for ectopic)
  3. Sequence sgRNAs in low- vs high-expression bins; compute log2 enrichment per sgRNA
  4. Significance: meta-test across sgRNAs in same enhancer

A 2-fold expression decrease (p < 0.05) confirms the enhancer regulates the gene.

For predictions to be publication-grade, ENCODE 4 expects:

  • Test set sensitivity / specificity against published CRISPRi-FlowFISH catalogs (Fulco 2019: K562; Gasperini 2019; Schraivogel 2020 multi-cell-type)
  • Effect-size correlation between predicted score and observed expression effect
  • Distance bias check (predictors over-rank close-distance pairs)

Reconciling Methods

PatternLikely causeAction
ABC and ENCODE-rE2G disagreeDifferent feature weighting; different training distributionsBoth valid; report intersection as high-confidence
ABC strong, Cicero weakCo-accessibility sparse for that cell typeTrust ABC if Hi-C is matched
HiChIP loop with no ABC predictionLoop is below ABC threshold; or peak set too narrowLower threshold or expand candidate enhancers
ENCODE-rE2G high probability, no CRISPRi supportCould be context-dependent biology or false positivePrioritize for follow-up; not a publishable claim alone
EpiMap pair not in ABCPre-computed reference is cell-type-aggregatedUse ABC for cell-type-specific

Operational rule for high-confidence reporting: Predictions used for therapeutic target nomination must be (a) above ABC >= 0.02 OR ENCODE-rE2G >= 0.5, AND (b) consistent across two methods (ABC + ENCODE-rE2G or ABC + HiChIP), AND (c) validated experimentally (CRISPRi-FlowFISH preferred). Single-method high-score predictions are exploratory hypotheses.

Combining Multiple Predictions

Goal: Build a high-confidence enhancer-gene set by intersecting ABC, ENCODE-rE2G, and HiChIP evidence.

Approach: Load each method's output, merge ABC and ENCODE-rE2G on enhancer-gene pair above per-method thresholds, then flag pairs with HiChIP loop support for triple-method evidence.

import pandas as pd
abc = pd.read_csv('abc_predictions.tsv', sep='\t')
re2g = pd.read_csv('encode_re2g.tsv.gz', sep='\t')
hichip = pd.read_csv('fithichip_loops.bedpe', sep='\t', header=None,
                     names=['chr1','s1','e1','chr2','s2','e2','name','score'])

# High-confidence intersection
high_conf = abc[abc['ABC.Score'] >= 0.02].merge(
    re2g[re2g['re2g_score'] >= 0.5],
    on=['enhancer_id', 'gene'])

# Add HiChIP support flag
hichip_anchors = ...    # extract enhancer/gene pairs from HiChIP loops
high_conf['hichip_support'] = high_conf['enhancer_id'].isin(hichip_anchors)

Common Errors

Error / symptomCauseSolution
ABC predictions concentrate at TSSsDid not exclude promoter regions from candidatesPre-filter bedtools intersect -v against promoters
Activity scores all very smallH3K27ac or ATAC bigWig in wrong scaleUse RPGC normalization
ENCODE-rE2G model not convergingPre-trained model loaded for wrong cell typeMatch training cell type via cell_type config
Cicero connections used as enhancer-gene callsMethod confusion (co-accessibility vs contact)Switch to ABC if Hi-C available; or document as co-accessibility hypothesis
Hi-C resolution too coarseDefault 25 kb resolution masks fine ABC structureUse 5 kb or 10 kb if Micro-C available
FitHiChIP many loops, low specificityDefault FDR aloneAdd contact count threshold; or use ENCODE-rE2G HiChIP-trained model
GeneHancer / FANTOM5 used as primary callCell-type-agnostic limitationUse as baseline only

References

  • Fulco CP et al 2019 Nat Genet 51:1664 (ABC; CRISPRi-FlowFISH validation)
  • Nasser J et al 2021 Nature 593:238 (ABC genome-wide application)
  • ENCODE Project Consortium 2024 (ENCODE-rE2G)
  • Mumbach MR et al 2017 Nat Genet 49:1602 (HiChIP H3K27ac)
  • Bhattacharyya S et al 2019 Nature Communications 10:4221 (FitHiChIP)
  • Boix CA et al 2021 Nature 590:300 (EpiMap reference)
  • Gasperini M et al 2019 Cell 176:377 (CRISPRi at scale)
  • Schraivogel D et al 2020 Nat Methods 17:629 (multi-cell-type CRISPRi)
  • Pliner HA et al 2018 Mol Cell 71:858 (Cicero co-accessibility)

Related Skills

  • atac-seq/co-accessibility - Cicero (ATAC-only enhancer-promoter inference)
  • atac-seq/atac-peak-calling - Generate enhancer candidates
  • atac-seq/consensus-peakset - Fixed-width enhancer regions
  • atac-seq/deep-learning-atac - chromBPNet variant effect at predicted enhancers
  • atac-seq/single-cell-atac - Per-cell-type scATAC inputs
  • hi-c-analysis/loop-calling - Hi-C / Micro-C contact prediction
  • hi-c-analysis/contact-pairs - Hi-C / Micro-C input
  • chip-seq/peak-calling - H3K27ac peaks
  • gene-regulatory-networks/scenic-regulons - Downstream TF -> target inference

What ships with it: 2 files

9.2 KB alongside SKILL.md, 1 of them executable

examples/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.