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.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
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.
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)
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
Method
Inputs
Mathematics
Strength
Fails when
ABC (Fulco 2019, Nasser 2021)
ATAC + H3K27ac + Hi-C/Micro-C
ABC = (Activity_E x Contact_E,G) / sum_e(Activity_e x Contact_e,G); threshold typically >= 0.02
Mechanistically grounded; published gold-standard for human cell lines
Requires matched Hi-C / Micro-C; cell-type-specific; default contact uses average across 10 ENCODE cell types if Hi-C not available
ENCODE-rE2G (Gschwind 2023)
ATAC + H3K27ac + (Hi-C optional)
Logistic regression trained on CRISPRi-FlowFISH ground truth; uses ABC features + sequence features + distance
ENCODE 4 standard; pre-trained models for many cell types
Pre-trained models only available for ENCODE cell types; retraining requires CRISPRi data
Cicero (Pliner 2018)
scATAC peak-cell matrix
Graphical lasso on metacell co-accessibility
ATAC-only; works without Hi-C
Less concordant with Hi-C than ABC; cis-distance-limited; alpha-sensitive
HiChIP H3K27ac + FitHiChIP
H3K27ac HiChIP
Statistically significant loops at FDR < 0.05
Direct experimental loop measurement; cell-type-specific; orthogonal to ATAC
Requires HiChIP wet-lab; only captures loops within HiChIP resolution (~10 kb)
Hi-C + HiCCUPS
Bulk Hi-C
Fold-enrichment loop calling
Most-validated 3D contact method
Resolution typically 5-25 kb; misses sub-loop fine structure
Capture Hi-C / PCHi-C (CHiCAGO)
Promoter Capture Hi-C
Asymptotic CHiCAGO score
High-resolution promoter-anchored
Wet-lab cost; promoter capture only
EpiMap (Boix 2021) reference
None (pre-computed lookup)
Bulk-derived enhancer-gene predictions in 833 epigenomes
Fast, comprehensive
Cell-type-agnostic for tissues outside the reference set
GeneHancer / FANTOM5 (legacy)
None (pre-computed lookup)
Pre-computed; varied methods per database
Comprehensive lookup; widely cited
Older; 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)
Threshold typical: ABC >= 0.02 for high-confidence; >= 0.01 for exploratory.
When Hi-C is unavailable, ABC uses an "average contact" averaged across 10 ENCODE Hi-C cell types as proxy (Nasser 2021); it performs comparably to cell-type-matched Hi-C. The alternative powerlaw approximation of contact-vs-distance is the Fulco 2019 fallback.
ENCODE-rE2G Differences from ABC
ENCODE-rE2G (Gschwind et al 2023, bioRxiv) is a reformulation:
Logistic regression trained on CRISPRi-FlowFISH ground truth (~10 cell types)
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" (10-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 reference/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.
Approach: Define non-promoter candidate enhancers from ATAC peaks, run ABC neighborhoods (which counts reads directly from the ATAC/H3K27ac BAMs) to compute per-candidate activity, then run ABC predict against a Hi-C contact matrix and threshold the per-pair ABC score.
# 1. (Optional, browser tracks only) ATAC/H3K27ac bigWigs -- ABC neighborhoods below reads the BAMs directly, not bigWigs
bamCoverage --bam atac.bam --outFileName atac.bw --binSize 50 --normalizeUsing RPGC \
--effectiveGenomeSize 2701495711 --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.bam \
--DHS atac.bam \
--chrom_sizes hg38.chrom.sizes \
--chrom_sizes_bed hg38.chrom.sizes.bed \
--ubiquitously_expressed_genes Genes.ubiquitously_expressed.txt \
--cellType MyCellType \
--outdir abc_out/
# 4. Run ABC predictions (Activity * Contact) -- generates ALL unthresholded links
python /path/ABC-Enhancer-Gene-Prediction/workflow/scripts/predict.py \
--enhancers abc_out/EnhancerList.txt \
--genes abc_out/GeneList.txt \
--hic_file hic_data/ \
--hic_type avg \
`# --hic_type choices: hic | juicebox | bedpe | avg -- must match the Hi-C input format` \
--hic_resolution 5000 \
--hic_pseudocount_distance 5000 \
`# --hic_pseudocount_distance (required): powerlaw fit at this distance is added as a pseudocount (config default 5000)` \
--chrom_sizes hg38.chrom.sizes \
--score_column ABC.Score \
--cellType MyCellType \
--outdir abc_out/Predictions/
# predict.py writes EnhancerPredictionsAllPutative.tsv.gz (all unthresholded E-G links).# 5. Threshold at ABC.Score >= 0.02. The ABC Snakemake pipeline runs filter_predictions.py with its# full set of --output_* arguments; for a standalone cut, select by the ABC.Score column (by header):
zcat abc_out/Predictions/EnhancerPredictionsAllPutative.tsv.gz | \
awk -F'\t''NR==1{for(i=1;i<=NF;i++)if($i=="ABC.Score")c=i; print; next} $c>=0.02' \
> abc_out/Predictions/EnhancerPredictions_thresholded.tsv
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
# Inputs are supplied through config/config.yaml, whose ABC_BIOSAMPLES field points to# an ABC biosamples TSV carrying the cell type and the ATAC / H3K27ac / Hi-C paths --# there is no cell_type=/atac_bw= --config override interface.
snakemake -j1 --use-conda
# Output: encode_e2g_predictions.tsv.gz with per-pair ENCODE-rE2G.Score and thresholded predictions
Different feature weighting; different training distributions
Both valid; report intersection as high-confidence
ABC strong, Cicero weak
Co-accessibility sparse for that cell type
Trust ABC if Hi-C is matched
HiChIP loop with no ABC prediction
Loop is below ABC threshold; or peak set too narrow
Lower threshold or expand candidate enhancers
ENCODE-rE2G high probability, no CRISPRi support
Could be context-dependent biology or false positive
Prioritize for follow-up; not a publishable claim alone
EpiMap pair not in ABC
Pre-computed reference is cell-type-aggregated
Use 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.