The BDB-Genomics ATAC-seq pipeline ships a ready-made SLURM profile atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/BDB-Genomics/atacseq-pipeline/llms.txt
Use this file to discover all available pages before exploring further.
profile/slurm/config.yaml that maps every Snakemake rule to a SLURM batch job automatically. You do not need to write any sbatch scripts. Snakemake reads the per-rule resources blocks declared in config.yaml and translates them directly into SLURM --mem, --time, and --partition flags. The profile supports up to 100 concurrent jobs, automatic retry on transient failures, and structured failure logging.
Profile Configuration
| Setting | Value | Effect |
|---|---|---|
executor | slurm | Use the Snakemake SLURM executor plugin |
jobs | 100 | Maximum concurrent SLURM jobs |
latency-wait | 60 | Seconds to wait for output files to appear on shared filesystems |
restart-times | 1 | Automatically resubmit a failed job once before marking it failed |
keep-going | true | Continue running other samples when one sample’s job fails |
rerun-incomplete | true | Re-run jobs whose output files are incomplete from a previous run |
slurm_partition | standard | Default SLURM partition (queue) |
slurm_account | bdb_genomics | SLURM accounting group |
Running the Pipeline
config.yaml use those values; all other rules fall back to the default-resources declared in the profile.
Per-Rule Resource Overrides
Resource limits inconfig.yaml are automatically respected by the SLURM executor. Memory-intensive rules request more RAM; quick bookkeeping rules stay well within the defaults:
Customising Partition and Account
Most HPC sites use site-specific partition names and accounting groups. Edit thedefault-resources block in profile/slurm/config.yaml to match your cluster:
config.yaml:
Handling Transient Failures
SLURM jobs can fail for reasons unrelated to the pipeline (node preemption, filesystem timeouts, memory allocation races). The profile setsrestart-times: 1 so Snakemake automatically resubmits a failed job once. If it fails a second time, Snakemake marks the rule as definitively failed and — because keep-going: true is set — continues processing all other samples.
Monitoring Jobs
- squeue
- sacct
- Snakemake logs
Check the status of all running and pending jobs submitted by your account:Filter to jobs with “snakemake” in the name:
Resuming a Partial Run
If the pipeline is interrupted, restart with the same command. Thererun-incomplete: true setting ensures Snakemake identifies and re-runs any rules whose output files are partial or missing, without re-running rules that completed successfully:
Dry Run Before Submission
Preview the full DAG and resource requirements before submitting to the queue:sbatch.
Structured Execution Summary
On completion or failure the pipeline writes a JSON execution summary:logs/. The benchmarks/ directory contains full per-job resource consumption records written by Snakemake’s built-in benchmarking.
The structured JSON summary is generated by
rules/scripts/aggregate_logs.py, which is called automatically in the Snakefile onsuccess and onerror lifecycle hooks. No manual invocation is required.