koesterlab/rossi-ips-dmr

Calling and plotting of differentially methylated regions between two or more biological samples in BAM format

Overview

Topics:

Latest release: None, Last update: 2025-06-26

Linting: linting: failed, Formatting: formatting: failed

Deployment

Step 1: Install Snakemake and Snakedeploy

Snakemake and Snakedeploy are best installed via the Mamba package manager (a drop-in replacement for conda). If you have neither Conda nor Mamba, it is recommended to install Miniforge. More details regarding Mamba can be found here.

When using Mamba, run

mamba create -c conda-forge -c bioconda --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

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/koesterlab/rossi-ips-dmr . --tag None

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 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.

Describe how to configure the workflow (using config.yaml and maybe additional files). All of them need to be present with example entries inside of the config folder.

Linting and formatting

Linting results

  1Workflow defines that rule get_genome is eligible for caching between workflows (use the --cache argument to enable this).
  2Workflow defines that rule get_gene_elements_annotation is eligible for caching between workflows (use the --cache argument to enable this).
  3Lints for snakefile /tmp/tmpexe8bu7h/workflow/Snakefile:
  4    * Absolute path "/homes/aprinz/enrichment/workflow/Snakefile" in line 46:
  5      Do not define absolute paths inside of the workflow, since this renders
  6      your workflow irreproducible on other machines. Use path relative to the
  7      working directory instead, or make the path configurable via a config
  8      file.
  9      Also see:
 10      https://snakemake.readthedocs.io/en/latest/snakefiles/configuration.html#configuration
 11
 12Lints for snakefile https://:raw.githubusercontent.com/Addimator/enrichment/main/workflow/rules/datavzrd.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 download_metilene (line 3, /tmp/tmpexe8bu7h/workflow/rules/dmr_calling.smk):
 21    * No log directive defined:
 22      Without a log directive, all output will be printed to the terminal. In
 23      distributed environments, this means that errors are harder to discover.
 24      In local environments, output of concurrent jobs will be mixed and become
 25      unreadable.
 26      Also see:
 27      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 28
 29Lints for rule unpack_metilene (line 12, /tmp/tmpexe8bu7h/workflow/rules/dmr_calling.smk):
 30    * No log directive defined:
 31      Without a log directive, all output will be printed to the terminal. In
 32      distributed environments, this means that errors are harder to discover.
 33      In local environments, output of concurrent jobs will be mixed and become
 34      unreadable.
 35      Also see:
 36      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 37
 38Lints for rule call_metilene (line 40, /tmp/tmpexe8bu7h/workflow/rules/dmr_calling.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
 47Lints for rule plot_dmrs (line 75, /tmp/tmpexe8bu7h/workflow/rules/dmr_calling.smk):
 48    * No log directive defined:
 49      Without a log directive, all output will be printed to the terminal. In
 50      distributed environments, this means that errors are harder to discover.
 51      In local environments, output of concurrent jobs will be mixed and become
 52      unreadable.
 53      Also see:
 54      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 55
 56Lints for rule most_variable_positions (line 36, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
 57    * No log directive defined:
 58      Without a log directive, all output will be printed to the terminal. In
 59      distributed environments, this means that errors are harder to discover.
 60      In local environments, output of concurrent jobs will be mixed and become
 61      unreadable.
 62      Also see:
 63      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 64
 65Lints for rule scatter_plot (line 47, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
 66    * No log directive defined:
 67      Without a log directive, all output will be printed to the terminal. In
 68      distributed environments, this means that errors are harder to discover.
 69      In local environments, output of concurrent jobs will be mixed and become
 70      unreadable.
 71      Also see:
 72      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 73
 74Lints for rule scatter_plot_pb_np (line 74, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
 75    * No log directive defined:
 76      Without a log directive, all output will be printed to the terminal. In
 77      distributed environments, this means that errors are harder to discover.
 78      In local environments, output of concurrent jobs will be mixed and become
 79      unreadable.
 80      Also see:
 81      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 82
 83Lints for rule scatter_plot_endo_meso (line 90, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
 84    * No log directive defined:
 85      Without a log directive, all output will be printed to the terminal. In
 86      distributed environments, this means that errors are harder to discover.
 87      In local environments, output of concurrent jobs will be mixed and become
 88      unreadable.
 89      Also see:
 90      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
 91
 92Lints for rule pluripotency_score_psc (line 116, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
 93    * No log directive defined:
 94      Without a log directive, all output will be printed to the terminal. In
 95      distributed environments, this means that errors are harder to discover.
 96      In local environments, output of concurrent jobs will be mixed and become
 97      unreadable.
 98      Also see:
 99      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
100
101Lints for rule pluripotency_score_all (line 136, /tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk):
102    * No log directive defined:
103      Without a log directive, all output will be printed to the terminal. In
104      distributed environments, this means that errors are harder to discover.
105      In local environments, output of concurrent jobs will be mixed and become
106      unreadable.
107      Also see:
108      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
109
110Lints for rule index_alignment (line 49, /tmp/tmpexe8bu7h/workflow/rules/prepare_meth_calling.smk):
111    * No log directive defined:
112      Without a log directive, all output will be printed to the terminal. In
113      distributed environments, this means that errors are harder to discover.
114      In local environments, output of concurrent jobs will be mixed and become
115      unreadable.
116      Also see:
117      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
118
119Lints for rule pb_CpG_rename_output (line 37, /tmp/tmpexe8bu7h/workflow/rules/pbCpgTools.smk):
120    * No log directive defined:
121      Without a log directive, all output will be printed to the terminal. In
122      distributed environments, this means that errors are harder to discover.
123      In local environments, output of concurrent jobs will be mixed and become
124      unreadable.
125      Also see:
126      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
127
128Lints for rule compute_meth_observations (line 50, /tmp/tmpexe8bu7h/workflow/rules/methylation_calling.smk):
129    * No log directive defined:
130      Without a log directive, all output will be printed to the terminal. In
131      distributed environments, this means that errors are harder to discover.
132      In local environments, output of concurrent jobs will be mixed and become
133      unreadable.
134      Also see:
135      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
136
137Lints for rule call_methylation (line 73, /tmp/tmpexe8bu7h/workflow/rules/methylation_calling.smk):
138    * No log directive defined:
139      Without a log directive, all output will be printed to the terminal. In
140      distributed environments, this means that errors are harder to discover.
141      In local environments, output of concurrent jobs will be mixed and become
142      unreadable.
143      Also see:
144      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
145
146Lints for rule filter_calls (line 90, /tmp/tmpexe8bu7h/workflow/rules/methylation_calling.smk):
147    * No log directive defined:
148      Without a log directive, all output will be printed to the terminal. In
149      distributed environments, this means that errors are harder to discover.
150      In local environments, output of concurrent jobs will be mixed and become
151      unreadable.
152      Also see:
153      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
154
155Lints for rule calls_to_vcf (line 108, /tmp/tmpexe8bu7h/workflow/rules/methylation_calling.smk):
156    * No log directive defined:
157      Without a log directive, all output will be printed to the terminal. In
158      distributed environments, this means that errors are harder to discover.
159      In local environments, output of concurrent jobs will be mixed and become
160      unreadable.
161      Also see:
162      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
163
164Lints for rule gather_calls (line 122, /tmp/tmpexe8bu7h/workflow/rules/methylation_calling.smk):
165    * No log directive defined:
166      Without a log directive, all output will be printed to the terminal. In
167      distributed environments, this means that errors are harder to discover.
168      In local environments, output of concurrent jobs will be mixed and become
169      unreadable.
170      Also see:
171      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
172
173Lints for rule rna_seq_annotations (line 28, /tmp/tmpexe8bu7h/workflow/rules/compare_rna.smk):
174    * No log directive defined:
175      Without a log directive, all output will be printed to the terminal. In
176      distributed environments, this means that errors are harder to discover.
177      In local environments, output of concurrent jobs will be mixed and become
178      unreadable.
179      Also see:
180      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
181
182Lints for rule download_regulatory_elements (line 1, /tmp/tmpexe8bu7h/workflow/rules/annotate_dmrs.smk):
183    * No log directive defined:
184      Without a log directive, all output will be printed to the terminal. In
185      distributed environments, this means that errors are harder to discover.
186      In local environments, output of concurrent jobs will be mixed and become
187      unreadable.
188      Also see:
189      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
190
191Lints for rule annotate_regulatory_elements (line 16, /tmp/tmpexe8bu7h/workflow/rules/annotate_dmrs.smk):
192    * No log directive defined:
193      Without a log directive, all output will be printed to the terminal. In
194      distributed environments, this means that errors are harder to discover.
195      In local environments, output of concurrent jobs will be mixed and become
196      unreadable.
197      Also see:
198      https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files
199
200Lints for rule add_regulatory_elements_header (line 30, /tmp/tmpexe8bu7h/workflow/rules/annotate_dmrs.smk):
201
202... (truncated)

Formatting results

 1[DEBUG] 
 2[DEBUG] 
 3[DEBUG] 
 4[WARNING] In file "/tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk":  Keyword "input" at line 6 has comments under a value.
 5	PEP8 recommends block comments appear before what they describe
 6(see https://www.python.org/dev/peps/pep-0008/#id30)
 7[WARNING] In file "/tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk":  Keyword "input" at line 48 has comments under a value.
 8	PEP8 recommends block comments appear before what they describe
 9(see https://www.python.org/dev/peps/pep-0008/#id30)
10[ERROR] In file "/tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk":  NoParametersError: L84: In wildcard_constraints definition.
11[DEBUG] In file "/tmp/tmpexe8bu7h/workflow/rules/plots_paper.smk":  
12[DEBUG] 
13[DEBUG] 
14[DEBUG] In file "/tmp/tmpexe8bu7h/workflow/rules/modkit.smk":  Formatted content is different from original
15[DEBUG] 
16[DEBUG] 
17[DEBUG] 
18[WARNING] In file "/tmp/tmpexe8bu7h/workflow/Snakefile":  Keyword "snakefile" at line 39 has comments under a value.
19	PEP8 recommends block comments appear before what they describe
20(see https://www.python.org/dev/peps/pep-0008/#id30)
21[DEBUG] In file "/tmp/tmpexe8bu7h/workflow/Snakefile":  Formatted content is different from original
22[DEBUG] 
23[DEBUG] 
24[WARNING] In file "/tmp/tmpexe8bu7h/workflow/rules/pbCpgTools.smk":  Keyword "input" at line 38 has comments under a value.
25	PEP8 recommends block comments appear before what they describe
26(see https://www.python.org/dev/peps/pep-0008/#id30)
27[DEBUG] In file "/tmp/tmpexe8bu7h/workflow/rules/pbCpgTools.smk":  Formatted content is different from original
28[DEBUG] 
29[INFO] 1 file(s) raised parsing errors 🤕
30[INFO] 3 file(s) would be changed 😬
31[INFO] 8 file(s) would be left unchanged 🎉
32
33snakefmt version: 0.11.0