Chatomics Field GuideWhat They Don't Teach You

Comparison · assay

Single-Cell ATAC-seq vs ATAC-seq: Which One Should You Use?

Bulk ATAC-seq gives you cleaner peaks and honest statistics; scATAC-seq trades that precision for cell-type resolution you can't get any other way.

By Ming "Tommy" Tang, Director of Bioinformatics in Big Pharma · Reviewed September 2026 · 4 min read

The verdict

Default to bulk ATAC-seq. If you can sort or otherwise define your population of interest, bulk gives you a denser, better-characterized signal, a single official standard to benchmark against (ENCODE4), and a peak-calling and differential-accessibility workflow with far fewer assay-specific footguns. It's also cheaper to run well: you're spending sequencing depth on fewer, deeper libraries instead of spreading it thin across thousands of cells.

Reach for scATAC-seq specifically when the question requires cell-type resolution you can't get by sorting: a heterogeneous tissue with unknown or unsortable subpopulations, a search for regulatory elements specific to a rare (around 1%) cell type that bulk signal would average out, or a need to link chromatin accessibility to a matched scRNA-seq/multiome dataset via gene activity scores. If your experiment is really "compare open chromatin between two known, purified conditions," scATAC-seq's sparsity and extra normalization and QC burden buy you nothing bulk ATAC-seq doesn't already handle better.

Both assays start from the same trick: Tn5 transposase cuts open chromatin and tags the ends with sequencing adapters in one step. What happens after that diverges completely. Bulk ATAC-seq pools millions of cells, so you get a dense, well-sampled fragment pileup across the population. You align, strip mitochondrial reads and PCR duplicates, shift coordinates by the Tn5 +4/-5 offset, call peaks, and build a consensus peak set scored against ENCODE4 thresholds like TSS enrichment and FRiP.

Single-cell ATAC-seq starts from the same chemistry but each cell only contributes a few thousand fragments, so the resulting peak-by-cell matrix is sparse and close to binary, roughly 1-10% peak detection per cell versus 10-45% gene detection in comparable scRNA-seq data. That sparsity rules out log-normalization and PCA the way you'd use them on gene expression; instead you TF-IDF normalize and run SVD (LSI), treating cells as documents and peaks as words. Peaks can't be called per cell either. You aggregate cells into clusters first, then call peaks on those pseudobulk profiles, or you silently lose the cell-type-specific regions that pooled calling would average away.

The practical consequence: bulk ATAC-seq answers "where is chromatin open in this population, and how does that change between two conditions" with high confidence and a mature, standardized pipeline. scATAC-seq answers "which cell type has this region open" at the cost of a sparser matrix, an extra normalization step, and QC thresholds that don't map cleanly onto the bulk standards you might already know.

Head to head

CriterionSingle-Cell ATAC-seqATAC-seqEdge
What you're modeling per unitEach cell yields a sparse, near-binary peak-by-cell matrix (~3% non-zero entries, 1-10% peak detection per cell)Each sample yields a dense fragment pileup across the whole population, aggregated into a single consensus peak setATAC-seq
Sparsity is the defining constraint of scATAC-seq analysis
Normalization approachTF-IDF (term frequency-inverse document frequency) followed by SVD, i.e. LSI, treating cells as documents and peaks as words (Signac)Library-size and blacklist/duplicate-aware normalization feeding into a fixed consensus peak count matrix scored by FRiPTie
Different data shapes force different math; neither transfers to the other
Peak callingSingle-cell resolution is too sparse/binary to call peaks per cell; peaks are called on pseudobulk aggregates per clusterPeaks are called directly per sample/replicate on dense signal, then merged into a consensus set across replicatesATAC-seq
But per-cluster calling is what recovers cell-type-specific peaks pooled calling misses
Rare population sensitivityPer-cluster peak calling recovers cell-type-specific accessible regions; pooled calling detects only ~18% of peaks from a rare population at 1% prevalenceA rare population that isn't isolated by sorting is invisible; its signal is averaged into the bulk profileSingle-Cell ATAC-seq
This is the core reason to pay the sparsity tax
QC metrics and thresholdsNucleosome signal <4, TSS enrichment >4, 9,000-100,000 fragments/cell, FRiP >40%, blacklist ratio <0.01 (Signac defaults)TSS enrichment >7 (GRCh38, ideal >15 for mm10), FRiP >0.3, NRF >0.9, PBC1 >0.9, PBC2 >3, 25-50M non-duplicate non-mito reads/replicate (ENCODE4)Tie
Numbers look similar in name only; they are not on the same scale and don't transfer between assays
Dimensionality-reduction footgunsThe first LSI component routinely tracks sequencing depth, not biology, and must be dropped or filtered by correlation cutoff before clusteringNo equivalent artifact; consensus-peak count matrices go straight into standard differential accessibility testingATAC-seq
One extra, assay-specific trap scATAC-seq users have to know to check for
Compute and matrix sizeFeature sets run 10-20x larger than a comparable gene-by-cell matrix; needs memory-efficient structures at 80,000+ cellsConsensus peak sets are far smaller and fit comfortably in memory on a laptop for typical sample countsATAC-seq
scATAC-seq analysis has a real infrastructure cost
Gene-level readoutGene activity scores (Signac default: 2kb upstream, 0bp downstream of TSS) give an imputed, scRNA-seq-like readout usable for label transferNo built-in gene-level score; you annotate peaks to nearest gene or link peaks to genes separatelySingle-Cell ATAC-seq
Matters most when you're integrating with a matched scRNA-seq or multiome experiment
Shared contamination sourcesMitochondrial reads and ENCODE blacklist regions inflate apparent signal; doublets show up as cells with abnormally high peak countsMitochondrial reads (commonly 20-80% of output) and blacklist regions must be removed before peak calling or they masquerade as biologyTie
Neither assay is immune to these two contaminants
Base-resolution footprintingPossible after pseudobulk aggregation per cluster, still needs the Tn5 +4/-5 offset correction and enough aggregated depthStandard workflow step on deep per-sample coverage; Tn5 +4/-5 offset correction is a routine pipeline stageATAC-seq
Deep bulk coverage per condition beats thin per-cell coverage for TF footprint calls
Ecosystem and standardsSplit across Signac/Seurat and ArchR, with different defaults (e.g. LSI filtering, gene activity window) and no single official standardOne official ENCODE4 pipeline with versioned, published thresholds for every QC metricATAC-seq
Bulk ATAC-seq is easier to benchmark against a fixed external standard

Use Single-Cell ATAC-seq when

  • You're working with a heterogeneous tissue or PBMC-type sample where the cell types of interest can't be cleanly sorted before the assay.
  • You need to find regulatory elements specific to a rare population (on the order of 1% of cells) that pooled bulk signal would average away.
  • You have or plan to generate a matched scRNA-seq or multiome dataset and want gene activity scores for label transfer and joint clustering.
  • You're building a cell-type-resolved atlas of accessible chromatin and can tolerate the compute and QC overhead that comes with it.
  • You need per-cluster TF motif or regulon differences across many subpopulations in a single experiment.

Use ATAC-seq when

  • You already have sorted or otherwise purified populations (FACS, MACS, defined cell lines) and don't need per-cell resolution.
  • You want the cleanest, highest-confidence peak set and differential accessibility test between a small number of defined conditions.
  • You need deep, base-resolution TF footprinting, which needs coverage per sample, not thin coverage spread across thousands of cells.
  • Your budget or cell input is limited and you'd rather spend depth on fewer, deeper libraries than many shallow single-cell profiles.
  • You want to benchmark against a single, versioned external standard (ENCODE4) rather than reconcile defaults across two competing single-cell toolkits.

Switching between them

Moving from bulk ATAC-seq to scATAC-seq analysis means abandoning library-size normalization and consensus-peak-count matrices in favor of TF-IDF plus SVD (LSI), and you have to actively check the first LSI component for a depth correlation and drop or filter it before clustering. QC thresholds don't carry over even though the metric names look identical: bulk's TSS enrichment >7 and FRiP >0.3 (ENCODE4) are not the same scale as scATAC-seq's TSS >4 and FRiP >40% (Signac defaults), and per-cell fragment counts (9,000-100,000) replace per-replicate read totals (25-50M) as the depth target. Peak sets also don't match 1:1 across assays: a bulk consensus peak set from sorted populations will differ from per-cluster pseudobulk peaks called on aggregated scATAC-seq cells, so don't expect the same BED file to drop into both workflows. What does carry over unchanged: chrM read removal, ENCODE blacklist filtering, and the Tn5 +4/-5 coordinate offset correction for footprinting, all of which apply identically regardless of assay.

Pitfalls with either

  • Treating the first LSI component as real biological variation when it usually tracks sequencing depth, drop it or use a correlation-cutoff filter (like ArchR's corCutOff) before clustering.
  • Calling peaks once on the pooled/aggregate scATAC-seq signal and assuming it captures every cell type, pooled calling detects only about 18% of peaks specific to a rare (1%) population, so call peaks per cluster on pseudobulk aggregates instead.
  • Applying bulk ATAC-seq ENCODE thresholds (TSS >7, FRiP >0.3) directly to single-cell QC, the metrics are computed differently at single-cell resolution and the comparable scATAC-seq thresholds (TSS >4, FRiP >40%) are not interchangeable.
  • Skipping mitochondrial and blacklist-region filtering because peak calling will 'sort it out', chrM reads can be 20-80% of output and blacklisted regions produce anomalously high signal in either assay; filter both before calling peaks.
  • Running footprinting or base-resolution motif analysis without the Tn5 +4/-5 coordinate offset correction, without it, the inferred center of transposition is wrong in both bulk and single-cell footprint calls.
  • Reusing scRNA-seq QC intuition (UMI/gene counts) for scATAC-seq cell filtering, fragments-per-cell (9,000-100,000) and FRiP are different metrics from RNA counts, and naive reuse throws out good cells or keeps technical artifacts.

Questions people ask

Can you call peaks on a single cell in scATAC-seq?

No. At single-cell resolution the data is essentially binary (accessible or not per allele), so there isn't enough signal in one cell to call a peak. Peaks are called on pseudobulk aggregates built from cells within a cluster, which is also why per-cluster calling recovers cell-type-specific peaks that pooled calling misses.

Are scATAC-seq and bulk ATAC-seq QC thresholds comparable?

No, even though the metric names overlap. Bulk ATAC-seq follows ENCODE4 standards (TSS enrichment >7, FRiP >0.3, NRF >0.9, 25-50M reads per replicate), while Signac's scATAC-seq defaults use TSS >4, FRiP >40%, and 9,000-100,000 fragments per cell. Don't port one set of thresholds to the other assay.

Do I need replicates for scATAC-seq the way ENCODE requires for bulk ATAC-seq?

ENCODE4 bulk ATAC-seq standards explicitly require a minimum of two biological replicates per condition. scATAC-seq documentation in the research packet doesn't specify an equivalent replicate standard; treat any single scATAC-seq run as you would any single-cell experiment and validate cluster-level findings against an independent sample before trusting them.

Can I get a gene-expression-like readout from ATAC-seq data?

In scATAC-seq, yes: Signac's GeneActivity function scores fragments within a window (2kb upstream, 0bp downstream of the TSS by default) to approximate gene activity, useful for label transfer against scRNA-seq. Bulk ATAC-seq has no built-in equivalent; you annotate peaks to nearby genes or link them separately.

Is scATAC-seq or bulk ATAC-seq cheaper to run?

Bulk ATAC-seq spends its budget on depth per sample (25-50M reads per replicate, two replicates minimum) and produces cleaner peaks for a fixed, sorted population. scATAC-seq spends its budget on cell number and per-cell depth (9,000-100,000 fragments/cell across thousands of cells), which buys cell-type resolution at the cost of sparser signal per unit.

Related pages

Related reading on the blog

Sources

  1. ATAC-seq Data Standards and Processing Pipeline (ENCODE4) — ENCODE4 QC thresholds: TSS enrichment, FRiP, NRF, PBC1/PBC2, read depth requirements
  2. Analyzing PBMC scATAC-seq • Signac — TF-IDF/LSI normalization and Signac's scATAC-seq QC thresholds
  3. Chapter 12 Calling Peaks with ArchR — Per-cluster pseudobulk peak calling in scATAC-seq
  4. Assessment of computational methods for the analysis of single-cell ATAC-seq data — Sparsity statistics and rare cell-type peak detection rates
  5. Calculate scATACseq TSS enrichment score — How TSS enrichment is computed for scATAC-seq
  6. Signac Reference: GeneActivity — Default gene activity score window