Skip to content

Commit 1953f37

Browse files
committed
add metrics include / exclude argument
1 parent 836ed4d commit 1953f37

3 files changed

Lines changed: 33 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124

125125
* Disabled parallelization of `metrics/cms` + cms distributions are now kept in the output AnnData object (PR #83).
126126

127-
* Add arguments for including/excluding methods in the benchmarking workflow (PR #100).
127+
* Add arguments for including/excluding methods and metrics in the benchmarking workflow (PR #100).
128128

129129

130130
## BUG FIXES

src/workflows/run_benchmark/config.vsh.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ argument_groups:
5858
multiple: true
5959
description: |
6060
A list of method ids to exclude. If specified, all methods except the ones listed will be run.
61+
- name: Metrics
62+
arguments:
63+
- name: "--metrics_include"
64+
type: string
65+
multiple: true
66+
description: |
67+
A list of metric ids to include. If specified, only these metrics will be run.
68+
- name: "--metrics_exclude"
69+
type: string
70+
multiple: true
71+
description: |
72+
A list of metric ids to exclude. If specified, all metrics except the ones listed will be run.
6173
6274
resources:
6375
- type: nextflow_script

src/workflows/run_benchmark/main.nf

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,15 @@ workflow run_wf {
135135

136136
// run only control methods & filter by method_ids
137137
filter: { id, state, comp ->
138-
def id_filter = !state.method_ids || state.method_ids.contains(comp.config.name)
138+
def method_check = checkItemAllowed(
139+
comp.config.name,
140+
state.methods_include,
141+
state.methods_exclude,
142+
"methods_include",
143+
"methods_exclude"
144+
)
139145
def method_filter = comp.config.info.type == "control_method"
140-
id_filter && method_filter
146+
method_check && method_filter
141147
},
142148

143149
// define a new 'id' by appending the method name to the dataset id
@@ -168,6 +174,18 @@ workflow run_wf {
168174
id: { id, state, comp ->
169175
id + "." + comp.config.name
170176
},
177+
filter: { id, state, comp ->
178+
// filter by metric_ids
179+
def metric_check = checkItemAllowed(
180+
comp.config.name,
181+
state.metrics_include,
182+
state.metrics_exclude,
183+
"metrics_include",
184+
"metrics_exclude"
185+
)
186+
// filter by method_id
187+
metric_check
188+
},
171189
// use 'fromState' to fetch the arguments the component requires from the overall state
172190
fromState: [
173191
input_unintegrated: "input_unintegrated",

0 commit comments

Comments
 (0)