Map nucleosome center positions, occupancy, and fuzziness from ATAC-seq fragment-size patterns. Covers V-plot interpretation, +1 nucleosome calling at TSSs, NucleoATAC vs ATACseqQC vs DANPOS3 vs scprinter selection, NRL estimation, and differential positioning between conditions. Provides the structural complement to peak-level (atac-peak-calling) and TF-level (footprinting) analyses.
# Dedicated NucleoATAC env (pinned because last release 2018)
conda create -n nucleoatac python=3.7 numpy=1.18 scipy=1.5 pysam
conda run -n nucleoatac pip install nucleoatac
conda install -c bioconda samtools
# DANPOS3 (python danpos.py) installs from github.com/sklasfeld/DANPOS3 (bioconda `danpos` is DANPOS2)
# scPrinter installs from source: git clone https://github.com/buenrostrolab/scPrinter && cd scPrinter && pip install ./
pip install pysam pyBigWig matplotlib
BiocManager::install(c('ATACseqQC', 'TxDb.Hsapiens.UCSC.hg38.knownGene',
'BSgenome.Hsapiens.UCSC.hg38', 'MotifDb', 'motifmatchr'))
Inputs: deduplicated, MAPQ-filtered, chrM-stripped paired-end BAM with >= 30M nuclear reads.
Tell your AI agent what you want to do: - "Run NucleoATAC on accessible regions to call per-base nucleosome occupancy" - "Generate a V-plot at TSSs to verify nucleosome positioning is recoverable" - "Estimate the nucleosome repeat length (NRL) from fragment-size autocorrelation" - "Call +1 nucleosomes downstream of every protein-coding TSS" - "Run DANPOS3 dpos with ATAC-tuned parameters for differential positioning" - "Use scprinter for single-cell nucleosome positioning per cell type"
"Run NucleoATAC on consensus peaks merged with bedtools (regions >= 500 bp). Use a dedicated conda env with Python 3.7 because NucleoATAC is pinned to old NumPy. Report nucpos.bed and occupancy bigWig."
"Generate a V-plot at TSSs (+/- 1 kb) to assess whether nucleosome positioning is recoverable. Classic V or W shape = positioning visible; flat horizontal band = library over-transposed and positioning is gone."
"Define gene bodies starting at TSS+50 to TSS+1000 (where +1 nucleosome lives in metazoa); run NucleoATAC; for each gene, report the most-downstream nucleosome center as the +1 position."
"Compare two conditions with DANPOS3 dpos using
--width 145 --smooth_width 80(ATAC-tuned). Filter to nucleosome shifts >= 30 bp at FDR < 0.05."
"Calculate the autocorrelation of cumulative Tn5 cut signal across a 2 kb window; the first non-zero peak position is the NRL. Compare against expected NRL for the cell type."
"Run scprinter on the scATAC fragment file to get per-cell nucleosome activity tracks; aggregate by cluster and plot V-plots per cluster."
| Goal | Tool |
|---|---|
| Per-base occupancy track | NucleoATAC (caveat: unmaintained); scprinter alternative |
| V-plot at features | ATACseqQC vPlot |
| Differential positioning between conditions | DANPOS3 dpos (ATAC-tuned params) |
| +1 calling | NucleoATAC + downstream filter |
| Single-cell | scprinter |
| NRL estimation | Custom autocorrelation script |
| Pattern | Meaning |
|---|---|
| Classic V at center | NFR with flanking nucleosomes; positioning recoverable |
| W (two V's) | Strong NFR + clear +1 / -1 |
| Inverted V (mountain) | Fragment fully enclosed; possibly nucleosome-bound TF |
| Flat horizontal band | No positioning info; library over-transposed |
| 10.4 bp helical sub-peaks | High-quality library with helical phasing visible |
| Class | Range | Use |
|---|---|---|
| NFR | < 100 bp | Footprinting input; TF binding |
| Mono-nuc | 180-247 bp | Standard nucleosome positioning |
| Di-nuc | 315-473 bp | Phasing, NRL estimation |
| Tri-nuc | 558-615 bp | Heterochromatin, dense phasing |
--width 145 --smooth_width 80.