本文へ移動
cccskills
無料GitHub で公開

bio-atac-seq-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.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md16.9 KB
  • examples/run_abc.sh2.9 KB
  • usage-guide.md6.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

生成图文并茂的分析报告/实验报告/质检报告(固定模版)。当用户要求"生成报告/总结报告/实验报告/质检报告/QC报告",或分析流程收尾需要交付报告时使用。报告必须基于真实分析输出,包含固定章节结构、关键指标表格和真实结果图。

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Predicts ADMET properties using ADMETlab 3.0 (119 endpoints with uncertainty), ADMET-AI, DeepChem MolNet, and chemprop D-MPNN with explicit handling of OECD QSAR principles, applicability domain assessment, calibration, hERG/CYP/AMES gold-standard endpoints, and PAINS / Lipinski / Ro5 / Veber / BBB druglikeness filters. Use when filtering compounds for drug-likeness, prioritizing leads by predicted safety, or building an in-house ADMET QSAR model.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Trim PCR primers from aligned reads in amplicon-panel BAMs using samtools ampliconclip. Use when processing SARS-CoV-2 ARTIC, hereditary cancer panels, ctDNA hot-spot panels, or any amplicon assay where primer-derived bases would falsely confirm reference at primer footprints.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Filter alignments by flags, mapping quality, and regions using samtools view and pysam. Use when extracting specific reads, removing low-quality alignments, or subsetting to target regions.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam. Use when enabling random access to alignment files or fetching specific genomic regions.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

peacezha のスキルをすべて見る

このスキルの問題を報告する