gynecoloji/snakemake_ATACseq
None
Overview
Latest release: v1.1.0, Last update: 2026-07-15
Share link: https://snakemake.github.io/snakemake-workflow-catalog?wf=gynecoloji/snakemake_ATACseq
Quality control: linting: failed formatting: failed
Workflow Rule Graph
This visualization of the workflow’s rule graph was automatically generated using Snakevision
Deployment
Step 1: Install Snakemake and Snakedeploy
Snakemake and Snakedeploy are best installed via the Conda package manager. It is recommended to install conda via Miniforge. Run
conda create -c conda-forge -c bioconda -c nodefaults --name snakemake snakemake snakedeploy
to install both Snakemake and Snakedeploy in an isolated environment. For all following commands ensure that this environment is activated via
conda activate snakemake
For other installation methods, refer to the Snakemake and Snakedeploy documentation.
Step 2: Deploy workflow
With Snakemake and Snakedeploy installed, the workflow can be deployed as follows. First, create an appropriate project working directory on your system and enter it:
mkdir -p path/to/project-workdir
cd path/to/project-workdir
In all following steps, we will assume that you are inside of that directory. Then run
snakedeploy deploy-workflow https://github.com/gynecoloji/snakemake_ATACseq . --tag v1.1.0
Snakedeploy will create two folders, workflow and config. The former contains the deployment of the chosen workflow as a Snakemake module, the latter contains configuration files which will be modified in the next step in order to configure the workflow to your needs.
Step 3: Configure workflow
To configure the workflow, adapt config/config.yml to your needs following the instructions below.
Step 4: Run workflow
The deployment method is controlled using the --software-deployment-method (short --sdm) argument.
To run the workflow using apptainer/singularity, use
snakemake --cores all --sdm apptainer
To run the workflow using a combination of conda and apptainer/singularity for software deployment, use
snakemake --cores all --sdm conda apptainer
To run the workflow with automatic deployment of all required software via conda/mamba, use
snakemake --cores all --sdm conda
Snakemake will automatically detect the main Snakefile in the workflow subfolder and execute the workflow module that has been defined by the deployment in step 2.
For further options such as cluster and cloud execution, see the docs.
Step 5: Generate report
After finalizing your data analysis, you can automatically generate an interactive visual HTML report for inspection of results together with parameters and code inside of the browser using
snakemake --report report.zip
Configuration
The following section is imported from the workflow’s config/README.md.
Configuration
This workflow is configured through two files in this directory:
config.yaml— all workflow parameters (see below)samples.csv— the sample sheet
plus reference data you download into ref/ (not tracked in git; see
Reference data).
Sample sheet (config/samples.csv)
CSV with one row per sample and these columns:
column |
description |
|---|---|
|
Sample name. Raw reads must be |
|
Free-text condition label (e.g. |
|
Replicate group. Reproducibility handling is chosen from group size (below). |
Example:
sample_id,type,group
GSF4007-Control_1_S11,Control,group1
GSF4007-Control_2_S13,Control,group1
GSF4007-Control_3_S15,Control,group1
GSF4007-NICD3-V5_1_S12,NICD3,group2
GSF4007-NICD3-V5_2_S14,NICD3,group2
GSF4007-NICD3-V5_3_S16,NICD3,group2
Per-group reproducibility is derived automatically from the number of
replicates in each group:
≥ 3 replicates → majority vote (a peak is kept if it recurs in ≥
consensus_min_replicatesreplicates).exactly 2 replicates → IDR (
idr_threshold).1 replicate → the sample’s own peaks are used as-is.
Parameters (config/config.yaml)
Every parameter — with its type, default, and description — is defined once in the
config schema, workflow/schemas/config.schema.yaml.
That schema is the single source of truth: the workflow validates config.yaml
against it on every run (and fills in defaults for anything you omit), and the
Snakemake Workflow Catalog
renders it as a parameter table on the workflow page.
To configure a run, edit config.yaml directly — it ships with working defaults
and an inline comment on every parameter. At minimum, point the reference-file
paths (human_fasta, blacklist, gtf, promoter_bed, enhancer_bed) at the
files you provide (see Reference data).
Reference data
Genomes, indexes and large annotations are not shipped in the repo (they are
.gitignored). Download / place them under ref/ before running, matching the
paths in config.yaml:
ref/hg38.fa— chr-prefixed UCSC human genomeref/hg38_blacklist_regions.bed— ENCODE hg38 blacklist (shipped)ref/gencode.v36.annotation.gtf— GENCODE annotation (for TSS QC)ref/hg38.2bit— forcomputeGCBiasref/picard.jar— Picard (used by MarkDuplicates)ref/JASPAR2024_CORE_vertebrates.jaspar— optional, only for thefootprint_all(TOBIAS) stage; JASPAR-format motifs pointed to byjaspar_motifs(see the top-level README)
The Bowtie2 index (ref/BOWTIE2/) is built automatically by the
build_genome_index rule from human_fasta.
See the top-level README.md for full setup and run instructions.
Workflow parameters
The following table is automatically parsed from the workflow’s config.schema.y(a)ml file.
Parameter |
Type |
Description |
Required |
Default |
|---|---|---|---|---|
samples_table |
string |
Path to the sample sheet CSV. Columns: sample_id, type, group. Per-group reproducibility (majority vote / IDR / single) is derived from group size. |
yes |
config/samples.csv |
adapter_r1 |
string |
Optional. Explicit R1 adapter sequence that OVERRIDES fastp auto-detection. Leave unset to auto-detect adapters for paired-end reads (–detect_adapter_for_pe). |
||
adapter_r2 |
string |
Optional. Explicit R2 adapter sequence (used together with adapter_r1). |
||
human_fasta |
string |
Human genome FASTA. Must be chr-prefixed UCSC (chr1..chrX) to match the blacklist. |
yes |
ref/hg38.fa |
bowtie2_index |
string |
Bowtie2 index prefix for the built human reference (created automatically by the build_genome_index rule). |
yes |
ref/BOWTIE2/genome |
align_chroms |
array |
Human chromosomes kept when building the index (reads then align only to these). Use an empty list to keep all human chromosomes. |
yes |
|
keep_chroms |
array |
Analysis keep-set for the final human BAM (mito-% QC is recorded first). Must be a subset of align_chroms and consistent with keep_chroms_regex. |
yes |
|
blacklist |
string |
ENCODE-style blacklist BED (chr-prefixed). |
yes |
ref/hg38_blacklist_regions.bed |
peak_types |
array |
Peak types to analyze (narrowPeak for standard ATAC-seq; add broadPeak if needed). |
[‘narrowPeak’] |
|
effective_genome_size |
integer |
Effective genome size for deepTools RPGC normalization (hg38 default). |
yes |
2913022398 |
bin_size |
integer |
bigWig bin size in bp. |
yes |
25 |
consensus_window |
integer |
Fixed consensus peak width around each summit, in bp. |
yes |
500 |
consensus_min_replicates |
integer |
Majority-vote threshold for conditions with >=3 replicates. |
yes |
2 |
idr_threshold |
number |
IDR threshold for conditions with exactly 2 replicates. |
yes |
0.05 |
idr_relaxed_pvalue |
number |
MACS2 -p value for the relaxed peak calls used as IDR input. |
yes |
0.1 |
idr_top_n_peaks |
integer |
Number of top relaxed peaks retained per replicate for IDR. |
yes |
150000 |
keep_chroms_regex |
string |
Regex used by the consensus step to filter chromosomes; keep consistent with keep_chroms. |
yes |
^chr([1-9] |
macs2_genome |
string |
MACS2 -g effective genome preset (e.g. hs, mm, ce, dm). |
yes |
hs |
gtf |
string |
GENCODE GTF (chr-prefixed) used for TSS-enrichment QC. |
yes |
ref/gencode.v36.annotation.gtf |
promoter_bed |
string |
Promoter BED used for the reads-in-annotation QC. |
yes |
ref/promoter_chr1-22X.bed |
enhancer_bed |
string |
Enhancer BED used for the reads-in-annotation QC. |
yes |
ref/enhancer_chr1-22X.bed |
jaspar_motifs |
string |
JASPAR-format motif file for the optional TOBIAS footprinting stage (footprint_all target). Download the JASPAR CORE vertebrates PFMs into ref/ (see README). Not used by the primary or QC pipelines. |
ref/JASPAR2024_CORE_vertebrates.jaspar |
Linting and formatting
Linting results
1No validator found for JSON Schema version identifier 'http://json-schema.org/draft-07/schema#'
2Defaulting to validator for JSON Schema version 'https://json-schema.org/draft/2020-12/schema'
3Note that schema file may not be validated correctly.
4Lints for snakefile /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/common.smk:
5 * Mixed rules and functions in same snakefile.:
6 Small one-liner functions used only once should be defined as lambda
7 expressions. Other functions should be collected in a common module, e.g.
8 'rules/common.smk'. This makes the workflow steps more readable.
9 Also see:
10 https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
11
12Lints for snakefile /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/footprint.smk:
13 * Mixed rules and functions in same snakefile.:
14 Small one-liner functions used only once should be defined as lambda
15 expressions. Other functions should be collected in a common module, e.g.
16 'rules/common.smk'. This makes the workflow steps more readable.
17 Also see:
18 https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
19
20Lints for rule fastqc (line 49, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
21 * Param outdir is a prefix of input or output file but hardcoded:
22 If this is meant to represent a file path prefix, it will fail when
23 running workflow in environments without a shared filesystem. Instead,
24 provide a function that infers the appropriate prefix from the input or
25 output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
26 Also see:
27 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
28 https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
29
30Lints for rule fastp (line 70, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
31 * Shell command directly uses variable FASTP_DIR from outside of the rule:
32 It is recommended to pass all files as input and output, and non-file
33 parameters via the params directive. Otherwise, provenance tracking is
34 less accurate.
35 Also see:
36 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
37
38Lints for rule bowtie2_align (line 102, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
39 * No log directive defined:
40 Without a log directive, all output will be printed to the terminal. In
41 distributed environments, this means that errors are harder to discover.
42 In local environments, output of concurrent jobs will be mixed and become
43 unreadable.
44 Also see:
45 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
46 * Shell command directly uses variable ALIGN_DIR from outside of the rule:
47 It is recommended to pass all files as input and output, and non-file
48 parameters via the params directive. Otherwise, provenance tracking is
49 less accurate.
50 Also see:
51 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
52 * Shell command directly uses variable TMP_DIR from outside of the rule:
53 It is recommended to pass all files as input and output, and non-file
54 parameters via the params directive. Otherwise, provenance tracking is
55 less accurate.
56 Also see:
57 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
58 * Shell command directly uses variable TMP_DIR from outside of the rule:
59 It is recommended to pass all files as input and output, and non-file
60 parameters via the params directive. Otherwise, provenance tracking is
61 less accurate.
62 Also see:
63 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
64 * Param index is a prefix of input or output file but hardcoded:
65 If this is meant to represent a file path prefix, it will fail when
66 running workflow in environments without a shared filesystem. Instead,
67 provide a function that infers the appropriate prefix from the input or
68 output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
69 Also see:
70 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
71 https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
72
73Lints for rule samtools_sort_filter_index (line 132, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
74 * Shell command directly uses variable FILTERED_DIR from outside of the rule:
75 It is recommended to pass all files as input and output, and non-file
76 parameters via the params directive. Otherwise, provenance tracking is
77 less accurate.
78 Also see:
79 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
80 * Shell command directly uses variable TMP_DIR from outside of the rule:
81 It is recommended to pass all files as input and output, and non-file
82 parameters via the params directive. Otherwise, provenance tracking is
83 less accurate.
84 Also see:
85 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
86 * Shell command directly uses variable FILTERED_DIR from outside of the rule:
87 It is recommended to pass all files as input and output, and non-file
88 parameters via the params directive. Otherwise, provenance tracking is
89 less accurate.
90 Also see:
91 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
92 * Shell command directly uses variable TMP_DIR from outside of the rule:
93 It is recommended to pass all files as input and output, and non-file
94 parameters via the params directive. Otherwise, provenance tracking is
95 less accurate.
96 Also see:
97 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
98 * Shell command directly uses variable TMP_DIR from outside of the rule:
99 It is recommended to pass all files as input and output, and non-file
100 parameters via the params directive. Otherwise, provenance tracking is
101 less accurate.
102 Also see:
103 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
104 * Shell command directly uses variable TMP_DIR from outside of the rule:
105 It is recommended to pass all files as input and output, and non-file
106 parameters via the params directive. Otherwise, provenance tracking is
107 less accurate.
108 Also see:
109 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
110 * Shell command directly uses variable TMP_DIR from outside of the rule:
111 It is recommended to pass all files as input and output, and non-file
112 parameters via the params directive. Otherwise, provenance tracking is
113 less accurate.
114 Also see:
115 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
116 * Shell command directly uses variable TMP_DIR from outside of the rule:
117 It is recommended to pass all files as input and output, and non-file
118 parameters via the params directive. Otherwise, provenance tracking is
119 less accurate.
120 Also see:
121 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
122 * Shell command directly uses variable TMP_DIR from outside of the rule:
123 It is recommended to pass all files as input and output, and non-file
124 parameters via the params directive. Otherwise, provenance tracking is
125 less accurate.
126 Also see:
127 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
128 * Shell command directly uses variable TMP_DIR from outside of the rule:
129 It is recommended to pass all files as input and output, and non-file
130 parameters via the params directive. Otherwise, provenance tracking is
131 less accurate.
132 Also see:
133 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
134 * Shell command directly uses variable TMP_DIR from outside of the rule:
135 It is recommended to pass all files as input and output, and non-file
136 parameters via the params directive. Otherwise, provenance tracking is
137 less accurate.
138 Also see:
139 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
140 * Shell command directly uses variable TMP_DIR from outside of the rule:
141 It is recommended to pass all files as input and output, and non-file
142 parameters via the params directive. Otherwise, provenance tracking is
143 less accurate.
144 Also see:
145 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
146
147Lints for rule remove_duplicates (line 186, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
148 * Shell command directly uses variable DEDUP_DIR from outside of the rule:
149 It is recommended to pass all files as input and output, and non-file
150 parameters via the params directive. Otherwise, provenance tracking is
151 less accurate.
152 Also see:
153 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
154
155Lints for rule filter_blacklist (line 212, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
156 * Shell command directly uses variable BLACKLIST_FILTERED_DIR from outside of the rule:
157 It is recommended to pass all files as input and output, and non-file
158 parameters via the params directive. Otherwise, provenance tracking is
159 less accurate.
160 Also see:
161 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
162 * Shell command directly uses variable TMP_DIR from outside of the rule:
163 It is recommended to pass all files as input and output, and non-file
164 parameters via the params directive. Otherwise, provenance tracking is
165 less accurate.
166 Also see:
167 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
168
169Lints for rule call_peaks (line 289, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
170 * Param outdir is a prefix of input or output file but hardcoded:
171 If this is meant to represent a file path prefix, it will fail when
172 running workflow in environments without a shared filesystem. Instead,
173 provide a function that infers the appropriate prefix from the input or
174 output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
175 Also see:
176 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
177 https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
178
179Lints for rule build_genome_index (line 318, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
180 * Param index is a prefix of input or output file but hardcoded:
181 If this is meant to represent a file path prefix, it will fail when
182 running workflow in environments without a shared filesystem. Instead,
183 provide a function that infers the appropriate prefix from the input or
184 output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
185 Also see:
186 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
187 https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
188
189Lints for rule create_bigwig (line 347, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
190 * Shell command directly uses variable BIGWIG_DIR from outside of the rule:
191 It is recommended to pass all files as input and output, and non-file
192 parameters via the params directive. Otherwise, provenance tracking is
193 less accurate.
194 Also see:
195 https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
196
197Lints for rule relaxed_peaks (line 376, /tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk):
198 * Param outdir is a prefix of input or output file but hardcoded:
199 If this is meant to represent a file path prefix, it will fail when
200 running workflow in environments without a shared filesystem. Instead,
201
202... (truncated)
Formatting results
1[DEBUG]
2[DEBUG] In file "/tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/atacseq.smk": Formatted content is different from original
3[DEBUG]
4[DEBUG] In file "/tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/common.smk": Formatted content is different from original
5[DEBUG]
6[DEBUG] In file "/tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/footprint.smk": Formatted content is different from original
7[DEBUG]
8[DEBUG] In file "/tmp/tmpik6gy6sl/gynecoloji-snakemake_ATACseq-510f2e3/workflow/rules/qc.smk": Formatted content is different from original
9[DEBUG]
10[INFO] 4 file(s) would be changed 😬
11[INFO] 1 file(s) would be left unchanged 🎉
12
13snakefmt version: 0.11.5