gynecoloji/snakemake_CutandRunseq

Reproducible Snakemake workflow for paired-end CUT&RUN (no spike-in): MACS2 + SEACR peak calling with matched IgG/Input controls, mode-aware consensus count matrices, ENCODE-grade QC, and opt-in DESeq2 differential binding + ChIPseeker/HOMER downstream analysis

Overview

Latest release: v0.2.1, Last update: 2026-07-30

Share link: https://snakemake.github.io/snakemake-workflow-catalog?wf=gynecoloji/snakemake_CutandRunseq

Quality control: linting: failed formatting: failed

Topics: chipseeker cutandrun deeptools differential-binding epigenomics homer motif-enrichment peak-calling quality-control seacr snakemake

Workflow Rule Graph

This visualization of the workflow’s rule graph was automatically generated using Snakevision

Rule Graph light

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_CutandRunseq . --tag v0.2.1

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/ (see Reference data).

Sample sheet (config/samples.csv)

CSV with one row per sample and these columns:

column

description

sample_id

Sample name. Raw reads must be data/<sample_id>_R1_001.fastq.gz / _R2_001.fastq.gz.

condition

Free-text label. For treatment rows this is the replicate group used for reproducibility.

replicate

Replicate index within the condition (integer).

input_control

sample_id of the matched Input control for this row. Leave empty for control rows.

igg_control

sample_id of the matched IgG control for this row. Leave empty for control rows.

peak_mode

narrow or broad. Empty marks the row as a control (IgG/Input) — it is not peak-called.

notes

Free text; ignored by the pipeline.

The effective control used for peak calling (MACS2 -c, SEACR control track, bamCompare -b2) for each treatment row is chosen by control_type in config.yaml (input or igg, default igg): the named column is used if non-empty, otherwise the pipeline falls back to the other column.

Example:

sample_id,condition,replicate,input_control,igg_control,peak_mode,notes
GSF2801-ChIPseq-OVCAR3-3D-IP-cJun_S4,cJUN_3D,1,,GSF2801-ChIPseq-OVCAR3-3D-IP-IgG_S5,narrow,3D-cJUN
GSF2801-ChIPseq-OVCAR3-3D-IP-IgG_S5,IgG_3D,1,,,,3D-Igg
GSF2801-ChIPseq-OVCAR3-Control-IP-cJun_S1,cJUN_Ctrl,1,,GSF2801-ChIPseq-OVCAR3-Control-IP-IgG_S2,narrow,Ctrl-cJUN
GSF2801-ChIPseq-OVCAR3-Control-IP-IgG_S2,IgG_Ctrl,1,,,,Ctrl-Igg

Treatment vs control

  • A row is a control (IgG/Input) when peak_mode is empty. Controls are aligned, filtered, deduplicated, blacklist-filtered and turned into RPGC bigWigs, and are used as the MACS2 -c control, the SEACR control track, and the bamCompare -b2 for their matched treatments — but they are never peak-called themselves.

  • Every other row is a treatment. Its peak_mode (narrow/broad) selects MACS2 narrow vs --broad and the SEACR stringency; its input_control/igg_control name the controls to pair with it (see control_type above for which one is used).

Per-condition rules

  • condition is the reproducibility group. Reproducibility handling is derived from the number of replicates in each treatment condition:

    • ≥ 3 replicates → majority vote (kept if a peak recurs in ≥ consensus_min_replicates).

    • exactly 2 replicates → IDR (idr_threshold) for MACS2; 2-of-2 overlap for SEACR.

    • 1 replicate → the sample’s own peaks are used as-is.

  • All replicates of one condition must share the same peak_mode (a condition is either narrow or broad; consensus/IDR cannot mix the two). The workflow errors out if they differ.

  • Give biologically distinct groups distinct condition labels. If the same antibody target was profiled in two contexts (e.g. cJUN in “3D” and “Control”), label them cJUN_3D and cJUN_Ctrl — otherwise the two single-replicate rows would be treated as two replicates of one condition and (incorrectly) run through IDR.

  • Each treatment’s input_control/igg_control (whichever is filled in) must reference an existing control (peak_mode-empty) sample_id.

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 (filling in defaults for anything you omit).

To configure a run, edit config.yaml directly. At minimum, point the reference-file paths (genome_fasta, blacklist, gtf, promoter_bed, enhancer_bed) at the files you provide. CUT&RUN specifics worth reviewing: max_fragment_length (Bowtie2 -X, default 700), remove_duplicates (set false to keep duplicates for low-input libraries), control_type (input|igg, default igg — which sample-sheet control column drives peak calling, falling back to the other), and the macs2_* and seacr_* peak-calling knobs. Differential binding is the opt-in diffopen_all target (see the top-level README), keyed off diffopen_callers (which consensus matrices), diffopen_modes (none/anchor/rnastable), and diffopen_ref_label (the reference condition).

Reference data

Genomes, indexes and large annotations are not shipped in the repo. Download / place them under ref/ before running, matching the paths in config.yaml:

  • ref/genome.fa — chr-prefixed UCSC human genome (hg38)

  • ref/hg38_blacklist_regions.bed — ENCODE hg38 blacklist (shipped)

  • ref/gencode.v36.annotation.gtf — GENCODE annotation (for TSS QC)

  • ref/hg38.2bit — for computeGCBias

  • ref/picard.jar — Picard (used by MarkDuplicates)

  • ref/promoter_chr1-22X.bed, ref/enhancer_chr1-22X.bed — Ensembl Regulatory Build (shipped)

The Bowtie2 index (ref/genome/) and ref/genome.chrom.sizes are built automatically by the build_genome_index / genome_chrom_sizes rules.

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, condition, replicate, input_control, igg_control, peak_mode, notes.

yes

config/samples.csv

adapter_r1

string

Optional explicit R1 adapter that OVERRIDES fastp auto-detection.

adapter_r2

string

Optional explicit R2 adapter (used with adapter_r1).

genome_fasta

string

Genome FASTA, chr-prefixed UCSC (hg38) to match the blacklist.

yes

ref/genome.fa

genome_index

string

Bowtie2 index prefix, built automatically by build_genome_index.

yes

ref/genome/genome

align_chroms

array

Chromosomes kept when building the index ([] = keep all).

yes

keep_chroms

array

Analysis keep-set for the final BAM (mito-% QC recorded first).

yes

blacklist

string

ENCODE-style blacklist BED (chr-prefixed).

yes

ref/hg38_blacklist_regions.bed

effective_genome_size

integer

Effective genome size for deepTools RPGC normalization (hg38).

yes

2913022398

bin_size

integer

bigWig bin size in bp.

yes

25

max_fragment_length

integer

Bowtie2 -X maximum fragment length (CUT&RUN default 700).

yes

700

remove_duplicates

boolean

Picard REMOVE_DUPLICATES. false keeps (marks) dups for low-input CUT&RUN.

yes

true

macs2_genome

string

MACS2 -g effective genome preset (hs, mm, ce, dm).

yes

hs

macs2_qvalue

number

MACS2 -q cutoff for narrow/broad peak calls.

yes

0.05

macs2_broad_cutoff

number

MACS2 –broad-cutoff for broad peak calls.

yes

0.1

control_type

string

Which control column drives peak calling (falls back to the other). CUT&RUN default igg.

yes

igg

seacr_norm

string

SEACR normalization mode (norm when using an IgG control).

yes

norm

seacr_narrow_stringency

string

SEACR stringency for peak_mode=narrow samples.

yes

stringent

seacr_broad_stringency

string

SEACR stringency for peak_mode=broad samples.

yes

relaxed

consensus_window

integer

Fixed MACS2-consensus peak width around each summit, 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 for the relaxed peak calls used as IDR input.

yes

0.1

idr_top_n_peaks

integer

Top relaxed peaks retained per replicate for IDR.

yes

150000

keep_chroms_regex

string

Regex used by the consensus step to filter chromosomes.

yes

^chr([1-9]

diffopen_callers

array

Which consensus count matrices differential binding runs on.

[‘macs2’, ‘seacr’]

diffopen_modes

array

Normalizations for diffopen_all (rnastable needs diffopen_rna_table).

[‘none’, ‘anchor’]

diffopen_ref_label

string

Reference level of the condition column for the differential test.

Control

anchor_bed

string

Invariant reference regions for the anchor normalization mode.

ref/constitutive_ctcf_hg38.bed

anchor_trim_k

number

MAD multiplier for trimming anchors that move between conditions.

2.5

anchor_trim_iter

integer

Trim/re-estimate iterations for the anchor mode.

2

anchor_min_anchors

integer

Refuse to normalize on fewer than this many anchors.

100

diffopen_min_genes

integer

GO-enrichment / tracks gate; gene sets at or below this are skipped.

10

diffopen_go_ont

string

GO ontology for clusterProfiler enrichment.

BP

diffopen_track_tier

string

Which significance tier to draw Gviz tracks for (e.g. p01).

p01

diffopen_track_top

integer

Top N up and N down regions per class for browser tracks.

5

diffopen_rna_table

string

Path to an RNA-seq DE results table (required only for rnastable mode).

gtf

string

GENCODE GTF (chr-prefixed) used for TSS-enrichment QC.

yes

ref/gencode.v36.annotation.gtf

promoter_bed

string

Promoter BED for reads-in-annotation QC and promoter/distal split.

yes

ref/promoter_chr1-22X.bed

enhancer_bed

string

Enhancer BED for reads-in-annotation QC.

yes

ref/enhancer_chr1-22X.bed

Linting and formatting

Linting results
  1Lints for snakefile /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/downstream.smk:
  2    * Mixed rules and functions in same snakefile.:
  3      Small one-liner functions used only once should be defined as lambda
  4      expressions. Other functions should be collected in a common module, e.g.
  5      'rules/common.smk'. This makes the workflow steps more readable.
  6      Also see:
  7      https://snakemake.readthedocs.io/en/latest/snakefiles/modularization.html#includes
  8
  9Lints for rule build_genome_index (line 55, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
 10    * Param index is a prefix of input or output file but hardcoded:
 11      If this is meant to represent a file path prefix, it will fail when
 12      running workflow in environments without a shared filesystem. Instead,
 13      provide a function that infers the appropriate prefix from the input or
 14      output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
 15      Also see:
 16      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 17      https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
 18
 19Lints for rule bowtie2_align (line 84, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
 20    * No log directive defined:
 21      Without a log directive, all output will be printed to the terminal. In
 22      distributed environments, this means that errors are harder to discover.
 23      In local environments, output of concurrent jobs will be mixed and become
 24      unreadable.
 25      Also see:
 26      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 27    * Shell command directly uses variable ALIGN_DIR from outside of the rule:
 28      It is recommended to pass all files as input and output, and non-file
 29      parameters via the params directive. Otherwise, provenance tracking is
 30      less accurate.
 31      Also see:
 32      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 33    * Shell command directly uses variable TMP_DIR from outside of the rule:
 34      It is recommended to pass all files as input and output, and non-file
 35      parameters via the params directive. Otherwise, provenance tracking is
 36      less accurate.
 37      Also see:
 38      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 39    * Shell command directly uses variable TMP_DIR from outside of the rule:
 40      It is recommended to pass all files as input and output, and non-file
 41      parameters via the params directive. Otherwise, provenance tracking is
 42      less accurate.
 43      Also see:
 44      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 45    * Param index is a prefix of input or output file but hardcoded:
 46      If this is meant to represent a file path prefix, it will fail when
 47      running workflow in environments without a shared filesystem. Instead,
 48      provide a function that infers the appropriate prefix from the input or
 49      output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
 50      Also see:
 51      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 52      https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
 53
 54Lints for rule samtools_sort_filter_index (line 113, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
 55    * Shell command directly uses variable FILTERED_DIR from outside of the rule:
 56      It is recommended to pass all files as input and output, and non-file
 57      parameters via the params directive. Otherwise, provenance tracking is
 58      less accurate.
 59      Also see:
 60      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 61    * Shell command directly uses variable TMP_DIR from outside of the rule:
 62      It is recommended to pass all files as input and output, and non-file
 63      parameters via the params directive. Otherwise, provenance tracking is
 64      less accurate.
 65      Also see:
 66      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 67    * Shell command directly uses variable FILTERED_DIR from outside of the rule:
 68      It is recommended to pass all files as input and output, and non-file
 69      parameters via the params directive. Otherwise, provenance tracking is
 70      less accurate.
 71      Also see:
 72      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 73    * Shell command directly uses variable TMP_DIR from outside of the rule:
 74      It is recommended to pass all files as input and output, and non-file
 75      parameters via the params directive. Otherwise, provenance tracking is
 76      less accurate.
 77      Also see:
 78      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 79    * Shell command directly uses variable TMP_DIR from outside of the rule:
 80      It is recommended to pass all files as input and output, and non-file
 81      parameters via the params directive. Otherwise, provenance tracking is
 82      less accurate.
 83      Also see:
 84      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 85    * Shell command directly uses variable TMP_DIR from outside of the rule:
 86      It is recommended to pass all files as input and output, and non-file
 87      parameters via the params directive. Otherwise, provenance tracking is
 88      less accurate.
 89      Also see:
 90      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 91    * Shell command directly uses variable TMP_DIR from outside of the rule:
 92      It is recommended to pass all files as input and output, and non-file
 93      parameters via the params directive. Otherwise, provenance tracking is
 94      less accurate.
 95      Also see:
 96      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
 97    * Shell command directly uses variable TMP_DIR from outside of the rule:
 98      It is recommended to pass all files as input and output, and non-file
 99      parameters via the params directive. Otherwise, provenance tracking is
100      less accurate.
101      Also see:
102      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
103    * Shell command directly uses variable TMP_DIR from outside of the rule:
104      It is recommended to pass all files as input and output, and non-file
105      parameters via the params directive. Otherwise, provenance tracking is
106      less accurate.
107      Also see:
108      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
109    * Shell command directly uses variable TMP_DIR from outside of the rule:
110      It is recommended to pass all files as input and output, and non-file
111      parameters via the params directive. Otherwise, provenance tracking is
112      less accurate.
113      Also see:
114      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
115    * Shell command directly uses variable TMP_DIR from outside of the rule:
116      It is recommended to pass all files as input and output, and non-file
117      parameters via the params directive. Otherwise, provenance tracking is
118      less accurate.
119      Also see:
120      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
121    * Shell command directly uses variable TMP_DIR from outside of the rule:
122      It is recommended to pass all files as input and output, and non-file
123      parameters via the params directive. Otherwise, provenance tracking is
124      less accurate.
125      Also see:
126      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
127
128Lints for rule remove_duplicates (line 166, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
129    * Shell command directly uses variable DEDUP_DIR from outside of the rule:
130      It is recommended to pass all files as input and output, and non-file
131      parameters via the params directive. Otherwise, provenance tracking is
132      less accurate.
133      Also see:
134      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
135
136Lints for rule fastqc (line 196, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
137    * Param outdir is a prefix of input or output file but hardcoded:
138      If this is meant to represent a file path prefix, it will fail when
139      running workflow in environments without a shared filesystem. Instead,
140      provide a function that infers the appropriate prefix from the input or
141      output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
142      Also see:
143      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
144      https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
145
146Lints for rule fastp (line 217, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
147    * Shell command directly uses variable FASTP_DIR from outside of the rule:
148      It is recommended to pass all files as input and output, and non-file
149      parameters via the params directive. Otherwise, provenance tracking is
150      less accurate.
151      Also see:
152      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
153
154Lints for rule filter_blacklist (line 249, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
155    * Shell command directly uses variable BLACKLIST_FILTERED_DIR from outside of the rule:
156      It is recommended to pass all files as input and output, and non-file
157      parameters via the params directive. Otherwise, provenance tracking is
158      less accurate.
159      Also see:
160      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
161    * Shell command directly uses variable TMP_DIR from outside of the rule:
162      It is recommended to pass all files as input and output, and non-file
163      parameters via the params directive. Otherwise, provenance tracking is
164      less accurate.
165      Also see:
166      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
167
168Lints for rule create_bigwig (line 328, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
169    * Shell command directly uses variable BIGWIG_DIR from outside of the rule:
170      It is recommended to pass all files as input and output, and non-file
171      parameters via the params directive. Otherwise, provenance tracking is
172      less accurate.
173      Also see:
174      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
175
176Lints for rule create_log2ratio_bigwig (line 358, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
177    * Shell command directly uses variable LOG2_BIGWIG_DIR from outside of the rule:
178      It is recommended to pass all files as input and output, and non-file
179      parameters via the params directive. Otherwise, provenance tracking is
180      less accurate.
181      Also see:
182      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
183
184Lints for rule call_peaks_macs2_narrow (line 388, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
185    * Param outdir is a prefix of input or output file but hardcoded:
186      If this is meant to represent a file path prefix, it will fail when
187      running workflow in environments without a shared filesystem. Instead,
188      provide a function that infers the appropriate prefix from the input or
189      output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
190      Also see:
191      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules
192      https://snakemake.readthedocs.io/en/stable/tutorial/advanced.html#tutorial-input-functions
193
194Lints for rule call_peaks_macs2_broad (line 416, /tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk):
195    * Param outdir is a prefix of input or output file but hardcoded:
196      If this is meant to represent a file path prefix, it will fail when
197      running workflow in environments without a shared filesystem. Instead,
198      provide a function that infers the appropriate prefix from the input or
199      output file, e.g.: lambda w, input: os.path.splitext(input[0])[0]
200      Also see:
201
202... (truncated)
Formatting results
 1[DEBUG] 
 2[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/cutandrun.smk":  Formatted content is different from original
 3[DEBUG] 
 4[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/downstream.smk":  Formatted content is different from original
 5[DEBUG] 
 6[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/common.smk":  Formatted content is different from original
 7[DEBUG] 
 8[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/qc.smk":  Formatted content is different from original
 9[DEBUG] 
10[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/rules/diffopen.smk":  Formatted content is different from original
11[DEBUG] 
12[DEBUG] In file "/tmp/tmps_sziqfk/gynecoloji-snakemake_CutandRunseq-9f0d115/workflow/Snakefile":  Formatted content is different from original
13[INFO] 6 file(s) would be changed 😬
14
15snakefmt version: 0.11.5