Ovewh/ACP-haugvaldstad-et-al-2025

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

Overview

Latest release: haugvaldstad-et-al-final-release, Last update: 2025-08-25

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-final-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/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:410: SyntaxWarning: invalid escape sequence '\D'
  2  plevel='low|middle|high'
  3/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:457: SyntaxWarning: invalid escape sequence '\D'
  4  nlevels=16,
  5/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:503: SyntaxWarning: invalid escape sequence '\D'
  6  areacello = 'workflow/input_data/common_grid.nc'
  7/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:542: SyntaxWarning: invalid escape sequence '\D'
  8/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:588: SyntaxWarning: invalid escape sequence '\D'
  9/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:881: SyntaxWarning: invalid escape sequence '\D'
 10/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:928: SyntaxWarning: invalid escape sequence '\D'
 11Lints for snakefile /tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/Snakefile:
 12    * Path composition with '+' in line 78:
 13      This becomes quickly unreadable. Usually, it is better to endure some
 14      redundancy against having a more readable workflow. Hence, just repeat
 15      common prefixes. If path composition is unavoidable, use pathlib or
 16      (python >= 3.6) string formatting with f"...".
 17    * Path composition with '+' in line 79:
 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 80:
 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 81:
 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 82:
 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 83:
 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 84:
 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 85:
 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 86:
 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 87:
 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 88:
 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    * Path composition with '+' in line 89:
 68      This becomes quickly unreadable. Usually, it is better to endure some
 69      redundancy against having a more readable workflow. Hence, just repeat
 70      common prefixes. If path composition is unavoidable, use pathlib or
 71      (python >= 3.6) string formatting with f"...".
 72    * Path composition with '+' in line 90:
 73      This becomes quickly unreadable. Usually, it is better to endure some
 74      redundancy against having a more readable workflow. Hence, just repeat
 75      common prefixes. If path composition is unavoidable, use pathlib or
 76      (python >= 3.6) string formatting with f"...".
 77    * Path composition with '+' in line 91:
 78      This becomes quickly unreadable. Usually, it is better to endure some
 79      redundancy against having a more readable workflow. Hence, just repeat
 80      common prefixes. If path composition is unavoidable, use pathlib or
 81      (python >= 3.6) string formatting with f"...".
 82    * Path composition with '+' in line 92:
 83      This becomes quickly unreadable. Usually, it is better to endure some
 84      redundancy against having a more readable workflow. Hence, just repeat
 85      common prefixes. If path composition is unavoidable, use pathlib or
 86      (python >= 3.6) string formatting with f"...".
 87
 88Lints for snakefile /tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/compute_ERF.smk:
 89    * Path composition with '+' in line 25:
 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 53:
 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 80:
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 96:
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 130:
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    * Path composition with '+' in line 143:
115      This becomes quickly unreadable. Usually, it is better to endure some
116      redundancy against having a more readable workflow. Hence, just repeat
117      common prefixes. If path composition is unavoidable, use pathlib or
118      (python >= 3.6) string formatting with f"...".
119    * Path composition with '+' in line 144:
120      This becomes quickly unreadable. Usually, it is better to endure some
121      redundancy against having a more readable workflow. Hence, just repeat
122      common prefixes. If path composition is unavoidable, use pathlib or
123      (python >= 3.6) string formatting with f"...".
124    * Path composition with '+' in line 146:
125      This becomes quickly unreadable. Usually, it is better to endure some
126      redundancy against having a more readable workflow. Hence, just repeat
127      common prefixes. If path composition is unavoidable, use pathlib or
128      (python >= 3.6) string formatting with f"...".
129    * Path composition with '+' in line 8:
130      This becomes quickly unreadable. Usually, it is better to endure some
131      redundancy against having a more readable workflow. Hence, just repeat
132      common prefixes. If path composition is unavoidable, use pathlib or
133      (python >= 3.6) string formatting with f"...".
134
135Lints for snakefile /tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/utils.smk:
136    * Path composition with '+' in line 77:
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 91:
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 105:
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 123:
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 146:
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 162:
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 177:
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    * Path composition with '+' in line 192:
172      This becomes quickly unreadable. Usually, it is better to endure some
173      redundancy against having a more readable workflow. Hence, just repeat
174      common prefixes. If path composition is unavoidable, use pathlib or
175      (python >= 3.6) string formatting with f"...".
176    * Path composition with '+' in line 204:
177      This becomes quickly unreadable. Usually, it is better to endure some
178      redundancy against having a more readable workflow. Hence, just repeat
179      common prefixes. If path composition is unavoidable, use pathlib or
180      (python >= 3.6) string formatting with f"...".
181
182Lints for snakefile /tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk:
183    * Path composition with '+' in line 159:
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 360:
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 467:
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 471:
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/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/compute_ERF.smk":  Formatted content is different from original
 3[DEBUG] 
 4[DEBUG] In file "/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/Snakefile":  Formatted content is different from original
 5[DEBUG] 
 6[DEBUG] In file "/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/utils.smk":  Formatted content is different from original
 7[DEBUG] 
 8[DEBUG] In file "/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/make_table.smk":  Formatted content is different from original
 9[DEBUG] 
10[DEBUG] In file "/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/dust_analysis.smk":  Formatted content is different from original
11[DEBUG] 
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[DEBUG] In file "/tmp/tmpojta8ph0/Ovewh-ACP-haugvaldstad-et-al-2025-e88b987/workflow/rules/plotAerChemMIP.smk":  Formatted content is different from original
20[INFO] 6 file(s) would be changed 😬
21
22snakefmt version: 0.11.1