Ovewh/ACP-haugvaldstad-et-al-2025

Source code for the analysis related to Haugvaldstad et al 2025, ACP

Overview

Topics:

Latest release: haugvaldstad-et-al-preprint-release, Last update: 2025-03-04

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/Ovewh/ACP-haugvaldstad-et-al-2025 . --tag haugvaldstad-et-al-preprint-release

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

  1/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:410: SyntaxWarning: invalid escape sequence '\D'
  2  outpath = outdir + 'figs/AerChemMIP/delta_{variable}_{plevel}_piClim-2xdust.png'
  3/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:457: SyntaxWarning: invalid escape sequence '\D'
  4  'UKESM1-0-LL', 'MPI-ESM-1-2-HAM',
  5/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:503: SyntaxWarning: invalid escape sequence '\D'
  6  notebook:
  7/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:542: SyntaxWarning: invalid escape sequence '\D'
  8  model=['EC-Earth3-AerChem','GISS-E2-1-G', 'MIROC6',
  9/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:587: SyntaxWarning: invalid escape sequence '\D'
 10  scaling_factor = 1e-9,
 11/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:636: SyntaxWarning: invalid escape sequence '\D'
 12  
 13/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:1023: SyntaxWarning: invalid escape sequence '\D'
 14/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:1070: SyntaxWarning: invalid escape sequence '\D'
 15/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:1121: SyntaxWarning: invalid escape sequence '\D'
 16Lints for snakefile /tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/Snakefile:
 17    * Path composition with '+' in line 78:
 18      This becomes quickly unreadable. Usually, it is better to endure some
 19      redundancy against having a more readable workflow. Hence, just repeat
 20      common prefixes. If path composition is unavoidable, use pathlib or
 21      (python >= 3.6) string formatting with f"...".
 22    * Path composition with '+' in line 79:
 23      This becomes quickly unreadable. Usually, it is better to endure some
 24      redundancy against having a more readable workflow. Hence, just repeat
 25      common prefixes. If path composition is unavoidable, use pathlib or
 26      (python >= 3.6) string formatting with f"...".
 27    * Path composition with '+' in line 80:
 28      This becomes quickly unreadable. Usually, it is better to endure some
 29      redundancy against having a more readable workflow. Hence, just repeat
 30      common prefixes. If path composition is unavoidable, use pathlib or
 31      (python >= 3.6) string formatting with f"...".
 32    * Path composition with '+' in line 81:
 33      This becomes quickly unreadable. Usually, it is better to endure some
 34      redundancy against having a more readable workflow. Hence, just repeat
 35      common prefixes. If path composition is unavoidable, use pathlib or
 36      (python >= 3.6) string formatting with f"...".
 37    * Path composition with '+' in line 82:
 38      This becomes quickly unreadable. Usually, it is better to endure some
 39      redundancy against having a more readable workflow. Hence, just repeat
 40      common prefixes. If path composition is unavoidable, use pathlib or
 41      (python >= 3.6) string formatting with f"...".
 42    * Path composition with '+' in line 83:
 43      This becomes quickly unreadable. Usually, it is better to endure some
 44      redundancy against having a more readable workflow. Hence, just repeat
 45      common prefixes. If path composition is unavoidable, use pathlib or
 46      (python >= 3.6) string formatting with f"...".
 47    * Path composition with '+' in line 84:
 48      This becomes quickly unreadable. Usually, it is better to endure some
 49      redundancy against having a more readable workflow. Hence, just repeat
 50      common prefixes. If path composition is unavoidable, use pathlib or
 51      (python >= 3.6) string formatting with f"...".
 52    * Path composition with '+' in line 85:
 53      This becomes quickly unreadable. Usually, it is better to endure some
 54      redundancy against having a more readable workflow. Hence, just repeat
 55      common prefixes. If path composition is unavoidable, use pathlib or
 56      (python >= 3.6) string formatting with f"...".
 57    * Path composition with '+' in line 86:
 58      This becomes quickly unreadable. Usually, it is better to endure some
 59      redundancy against having a more readable workflow. Hence, just repeat
 60      common prefixes. If path composition is unavoidable, use pathlib or
 61      (python >= 3.6) string formatting with f"...".
 62    * Path composition with '+' in line 87:
 63      This becomes quickly unreadable. Usually, it is better to endure some
 64      redundancy against having a more readable workflow. Hence, just repeat
 65      common prefixes. If path composition is unavoidable, use pathlib or
 66      (python >= 3.6) string formatting with f"...".
 67
 68Lints for snakefile /tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/compute_ERF.smk:
 69    * Path composition with '+' in line 25:
 70      This becomes quickly unreadable. Usually, it is better to endure some
 71      redundancy against having a more readable workflow. Hence, just repeat
 72      common prefixes. If path composition is unavoidable, use pathlib or
 73      (python >= 3.6) string formatting with f"...".
 74    * Path composition with '+' in line 53:
 75      This becomes quickly unreadable. Usually, it is better to endure some
 76      redundancy against having a more readable workflow. Hence, just repeat
 77      common prefixes. If path composition is unavoidable, use pathlib or
 78      (python >= 3.6) string formatting with f"...".
 79    * Path composition with '+' in line 80:
 80      This becomes quickly unreadable. Usually, it is better to endure some
 81      redundancy against having a more readable workflow. Hence, just repeat
 82      common prefixes. If path composition is unavoidable, use pathlib or
 83      (python >= 3.6) string formatting with f"...".
 84    * Path composition with '+' in line 96:
 85      This becomes quickly unreadable. Usually, it is better to endure some
 86      redundancy against having a more readable workflow. Hence, just repeat
 87      common prefixes. If path composition is unavoidable, use pathlib or
 88      (python >= 3.6) string formatting with f"...".
 89    * Path composition with '+' in line 128:
 90      This becomes quickly unreadable. Usually, it is better to endure some
 91      redundancy against having a more readable workflow. Hence, just repeat
 92      common prefixes. If path composition is unavoidable, use pathlib or
 93      (python >= 3.6) string formatting with f"...".
 94    * Path composition with '+' in line 141:
 95      This becomes quickly unreadable. Usually, it is better to endure some
 96      redundancy against having a more readable workflow. Hence, just repeat
 97      common prefixes. If path composition is unavoidable, use pathlib or
 98      (python >= 3.6) string formatting with f"...".
 99    * Path composition with '+' in line 142:
100      This becomes quickly unreadable. Usually, it is better to endure some
101      redundancy against having a more readable workflow. Hence, just repeat
102      common prefixes. If path composition is unavoidable, use pathlib or
103      (python >= 3.6) string formatting with f"...".
104    * Path composition with '+' in line 144:
105      This becomes quickly unreadable. Usually, it is better to endure some
106      redundancy against having a more readable workflow. Hence, just repeat
107      common prefixes. If path composition is unavoidable, use pathlib or
108      (python >= 3.6) string formatting with f"...".
109    * Path composition with '+' in line 8:
110      This becomes quickly unreadable. Usually, it is better to endure some
111      redundancy against having a more readable workflow. Hence, just repeat
112      common prefixes. If path composition is unavoidable, use pathlib or
113      (python >= 3.6) string formatting with f"...".
114
115Lints for snakefile /tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/utils.smk:
116    * Path composition with '+' in line 80:
117      This becomes quickly unreadable. Usually, it is better to endure some
118      redundancy against having a more readable workflow. Hence, just repeat
119      common prefixes. If path composition is unavoidable, use pathlib or
120      (python >= 3.6) string formatting with f"...".
121    * Path composition with '+' in line 94:
122      This becomes quickly unreadable. Usually, it is better to endure some
123      redundancy against having a more readable workflow. Hence, just repeat
124      common prefixes. If path composition is unavoidable, use pathlib or
125      (python >= 3.6) string formatting with f"...".
126    * Path composition with '+' in line 108:
127      This becomes quickly unreadable. Usually, it is better to endure some
128      redundancy against having a more readable workflow. Hence, just repeat
129      common prefixes. If path composition is unavoidable, use pathlib or
130      (python >= 3.6) string formatting with f"...".
131    * Path composition with '+' in line 126:
132      This becomes quickly unreadable. Usually, it is better to endure some
133      redundancy against having a more readable workflow. Hence, just repeat
134      common prefixes. If path composition is unavoidable, use pathlib or
135      (python >= 3.6) string formatting with f"...".
136    * Path composition with '+' in line 149:
137      This becomes quickly unreadable. Usually, it is better to endure some
138      redundancy against having a more readable workflow. Hence, just repeat
139      common prefixes. If path composition is unavoidable, use pathlib or
140      (python >= 3.6) string formatting with f"...".
141    * Path composition with '+' in line 168:
142      This becomes quickly unreadable. Usually, it is better to endure some
143      redundancy against having a more readable workflow. Hence, just repeat
144      common prefixes. If path composition is unavoidable, use pathlib or
145      (python >= 3.6) string formatting with f"...".
146    * Path composition with '+' in line 183:
147      This becomes quickly unreadable. Usually, it is better to endure some
148      redundancy against having a more readable workflow. Hence, just repeat
149      common prefixes. If path composition is unavoidable, use pathlib or
150      (python >= 3.6) string formatting with f"...".
151    * Path composition with '+' in line 198:
152      This becomes quickly unreadable. Usually, it is better to endure some
153      redundancy against having a more readable workflow. Hence, just repeat
154      common prefixes. If path composition is unavoidable, use pathlib or
155      (python >= 3.6) string formatting with f"...".
156    * Path composition with '+' in line 210:
157      This becomes quickly unreadable. Usually, it is better to endure some
158      redundancy against having a more readable workflow. Hence, just repeat
159      common prefixes. If path composition is unavoidable, use pathlib or
160      (python >= 3.6) string formatting with f"...".
161    * Path composition with '+' in line 234:
162      This becomes quickly unreadable. Usually, it is better to endure some
163      redundancy against having a more readable workflow. Hence, just repeat
164      common prefixes. If path composition is unavoidable, use pathlib or
165      (python >= 3.6) string formatting with f"...".
166    * Path composition with '+' in line 238:
167      This becomes quickly unreadable. Usually, it is better to endure some
168      redundancy against having a more readable workflow. Hence, just repeat
169      common prefixes. If path composition is unavoidable, use pathlib or
170      (python >= 3.6) string formatting with f"...".
171
172Lints for snakefile /tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk:
173    * Path composition with '+' in line 159:
174      This becomes quickly unreadable. Usually, it is better to endure some
175      redundancy against having a more readable workflow. Hence, just repeat
176      common prefixes. If path composition is unavoidable, use pathlib or
177      (python >= 3.6) string formatting with f"...".
178    * Path composition with '+' in line 410:
179      This becomes quickly unreadable. Usually, it is better to endure some
180      redundancy against having a more readable workflow. Hence, just repeat
181      common prefixes. If path composition is unavoidable, use pathlib or
182      (python >= 3.6) string formatting with f"...".
183    * Path composition with '+' in line 541:
184      This becomes quickly unreadable. Usually, it is better to endure some
185      redundancy against having a more readable workflow. Hence, just repeat
186      common prefixes. If path composition is unavoidable, use pathlib or
187      (python >= 3.6) string formatting with f"...".
188    * Path composition with '+' in line 545:
189      This becomes quickly unreadable. Usually, it is better to endure some
190      redundancy against having a more readable workflow. Hence, just repeat
191      common prefixes. If path composition is unavoidable, use pathlib or
192      (python >= 3.6) string formatting with f"...".
193    * Path composition with '+' in line 569:
194      This becomes quickly unreadable. Usually, it is better to endure some
195      redundancy against having a more readable workflow. Hence, just repeat
196      common prefixes. If path composition is unavoidable, use pathlib or
197      (python >= 3.6) string formatting with f"...".
198    * Path composition with '+' in line 573:
199      This becomes quickly unreadable. Usually, it is better to endure some
200      redundancy against having a more readable workflow. Hence, just repeat
201
202... (truncated)

Formatting results

 1[DEBUG] 
 2[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/compute_ERF.smk":  Formatted content is different from original
 3[DEBUG] 
 4[WARNING] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/utils.smk":  Keyword "input" at line 27 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[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/utils.smk":  Formatted content is different from original
 8[DEBUG] 
 9[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/dust_analysis.smk":  Formatted content is different from original
10[DEBUG] 
11<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
12<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
13<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
14<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
15<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
16<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
17<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
18<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
19<unknown>:1: SyntaxWarning: invalid escape sequence '\D'
20[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/plotAerChemMIP.smk":  Formatted content is different from original
21[DEBUG] 
22[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/Snakefile":  Formatted content is different from original
23[DEBUG] 
24[DEBUG] In file "/tmp/tmpw9ni4sng/Ovewh-ACP-haugvaldstad-et-al-2025-0f44987/workflow/rules/make_table.smk":  Formatted content is different from original
25[INFO] 6 file(s) would be changed 😬
26
27snakefmt version: 0.10.2