Bulk ATAC-seq nf-core Workflow
Run nf-core/atacseq from samplesheet setup through QC, peaks, and differential analysis
What it does
This workflow uses nf-core/atacseq as an end-to-end bulk ATAC-seq preprocessing and analysis pipeline. The committed README covers samplesheet setup, cluster execution with Nextflow, major output categories, and the key parameters that control alignment, peak calling, annotation, and consensus peak generation.
When to use it
Use this workflow when you want a reproducible, containerized ATAC-seq pipeline rather than a hand-built series of shell steps. It is most useful when the project needs standardized QC, alignment, peak calling, and differential accessibility outputs from raw FASTQ files.
Prerequisites
- Source folder:
ATACseq_preprocessing - Main documentation:
README.md - Required software:
NextflowSingularityorDocker- optional
SLURMfor cluster execution
- Required inputs:
- paired-end ATAC-seq FASTQ files
- a CSV samplesheet with sample names, FASTQs, and replicate labels
Steps
Build the samplesheet and define the run wrapper
The README expects a project directory with a samplesheet plus a small run_atac.sh wrapper that sets NXF_HOME, loads Java, and launches nf-core/atacseq.
sample,fastq_1,fastq_2,replicate
CONTROL,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,1
CONTROL,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz,2
CONTROL,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz,3
#!/usr/bin/bash
#SBATCH --job-name=atac
#SBATCH --time=20:00:00
#SBATCH --mem=128G
#SBATCH --cpus-per-task=40
mkdir results .nextflow_home
export NXF_HOME=$(pwd)/.nextflow_home
module load java/21.0.2
nextflow run nf-core/atacseq \
--input ./samplesheet.csv \
--outdir ./results \
--genome mm10 \
--read_length 150 \
-profile singularity \
-resumeThe samplesheet plus wrapper-script combination is the main operational pattern in this folder: project-specific inputs live in the sheet, while resource and runtime settings live in the launch script.
Use the built-in nf-core outputs for QC, peaks, and accessibility review
The README organizes the outputs conceptually into alignment results, peak calling, QC reports, differential analysis, and visualization assets rather than giving a custom downstream notebook.
The main checkpoints are: - alignment BAMs and BigWigs - peak sets and annotations - MultiQC and alignment metrics - consensus peaks and differential accessibility results
That means the first review step after a run is not a custom result script; it is reading the nf-core output tree and identifying which directories matter for your downstream question.
Tune optional pipeline flags only where the experiment requires it
The committed guide lists the most important flags for customizing the pipeline, including aligner choice, peak mode, and skip flags.
--input
--outdir
--genome
--read_length
--aligner
--narrow_peak
--broad_peak
--skip_trimming
--skip_peak_calling
--skip_peak_annotation
--skip_consensus_peaks
This page stays concise because the repo source is concise, but the main practical message is that read length, genome, and aligner choice are part of the run contract and should be set deliberately.
Start with test mode when validating a new environment
One practical note worth preserving from the README is the recommendation to begin with -profile test when you are validating the environment or the basic pipeline setup. That is especially useful for distinguishing configuration problems from full-scale dataset runtime issues.
Gotchas / notes
- This folder is README-driven and does not include a committed notebook or figures.
- The README title has a small typo (
atacseqx), but the actual commands and linked docs clearly targetnf-core/atacseq. - The guide recommends testing first with
-profile test, which is worth preserving for users validating their environment. - Resource settings in the example script are substantial; readers should adapt them to their dataset size and scheduler limits.
- The example wrapper assumes paired-end data and a specific Java/module environment, so readers should adapt both compute settings and runtime modules to their own system.