diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e460fbd3..995ed284c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,13 @@ * Fix `methods/pyliger` failing to build: louvain has no python 3.12 wheel and needs cmake to build igraph from source. * Bump `methods/cellplm`, `methods/condo`, `methods/drvi` and `metrics/bras` from base image `:1.0.0` to `:1`, so their `openproblems` is new enough for the component tests in `common`. +* Fix `methods/liger` failing to build: drop the GitHub install of RcppPlanc, which no longer configures; rliger already + pulls it in from CRAN. +* Register `methods/condo`, `methods/drvi`, `methods/limma_removebatcheffect`, `methods/seurat_cca`, `methods/seurat_rpca`, + `methods/stacas`, `metrics/bras` and `metrics/cilisi` in the `run_benchmark` workflow; they were never run. +* Add the missing `metric_type` to `metrics/cilisi` and `method_types` to `methods/drvi`, without which the workflow + never schedules them. +* Give `methods/scimilarity` a `gpu` label and let it use the GPU when one is available; it was running CPU-only. * Fix `methods/scanorama` scrambling its output: scanorama returns one object per batch with the genes sorted by name, so both axes ended up permuted with respect to the `obs` and `var` they were labelled with. This affected every metric, not just `hvg_overlap`. diff --git a/src/methods/drvi/config.vsh.yaml b/src/methods/drvi/config.vsh.yaml index 2c2a26968..a368e9c18 100644 --- a/src/methods/drvi/config.vsh.yaml +++ b/src/methods/drvi/config.vsh.yaml @@ -14,6 +14,7 @@ links: documentation: https://drvi.readthedocs.io/latest/index.html repository: https://github.com/theislab/DRVI?tab=readme-ov-file info: + method_types: [embedding] preferred_normalization: counts arguments: - name: --n_hvg diff --git a/src/methods/liger/config.vsh.yaml b/src/methods/liger/config.vsh.yaml index 4876172d0..7d02f0f42 100644 --- a/src/methods/liger/config.vsh.yaml +++ b/src/methods/liger/config.vsh.yaml @@ -26,7 +26,6 @@ engines: packages: cmake - type: r cran: rliger - github: welch-lab/RcppPlanc runners: - type: executable - type: nextflow diff --git a/src/methods/scimilarity/config.vsh.yaml b/src/methods/scimilarity/config.vsh.yaml index 053760649..2d22f8149 100644 --- a/src/methods/scimilarity/config.vsh.yaml +++ b/src/methods/scimilarity/config.vsh.yaml @@ -32,4 +32,4 @@ runners: - type: executable - type: nextflow directives: - label: [hightime, midmem, lowcpu] + label: [hightime, midmem, lowcpu, gpu] diff --git a/src/methods/scimilarity/script.py b/src/methods/scimilarity/script.py index 7dd9c57ce..36cc96163 100644 --- a/src/methods/scimilarity/script.py +++ b/src/methods/scimilarity/script.py @@ -6,6 +6,7 @@ import anndata as ad import scimilarity +import torch ## VIASH START par = { @@ -52,8 +53,12 @@ f"The 'model' argument should be a directory a .zip file or a .tar.gz file" ) -print("Load SCimilarity model", flush=True) -scimilarity_embedding = scimilarity.cell_embedding.CellEmbedding(model_path=model_dir) +use_gpu = torch.cuda.is_available() +print(f"Load SCimilarity model (use_gpu={use_gpu})", flush=True) +scimilarity_embedding = scimilarity.cell_embedding.CellEmbedding( + model_path=model_dir, + use_gpu=use_gpu, +) print("SCimilarity version:", scimilarity.__version__) print("Create input data", flush=True) diff --git a/src/metrics/cilisi/config.vsh.yaml b/src/metrics/cilisi/config.vsh.yaml index b82656ebf..398616740 100644 --- a/src/metrics/cilisi/config.vsh.yaml +++ b/src/metrics/cilisi/config.vsh.yaml @@ -1,6 +1,7 @@ __merge__: ../../api/comp_metric.yaml name: cilisi info: + metric_type: embedding metrics: - name: cilisi label: CiLISI diff --git a/src/workflows/run_benchmark/config.vsh.yaml b/src/workflows/run_benchmark/config.vsh.yaml index 2c0d1dd5e..bd381c19e 100644 --- a/src/workflows/run_benchmark/config.vsh.yaml +++ b/src/workflows/run_benchmark/config.vsh.yaml @@ -94,12 +94,15 @@ dependencies: - name: methods/cellplm - name: methods/combat - name: methods/combat_seq + - name: methods/condo - name: methods/density_adaptive + - name: methods/drvi - name: methods/fadvi - name: methods/geneformer - name: methods/harmony - name: methods/harmonypy - name: methods/liger + - name: methods/limma_removebatcheffect - name: methods/mnnpy - name: methods/pyliger - name: methods/sca @@ -112,12 +115,17 @@ dependencies: - name: methods/scimilarity - name: methods/scprint - name: methods/scvi + - name: methods/seurat_cca + - name: methods/seurat_rpca - name: methods/ss_stacas + - name: methods/stacas - name: methods/uce # metrics - name: metrics/asw_batch - name: metrics/asw_label + - name: metrics/bras - name: metrics/cell_cycle_conservation + - name: metrics/cilisi - name: metrics/clustering_overlap - name: metrics/graph_connectivity - name: metrics/hvg_overlap diff --git a/src/workflows/run_benchmark/main.nf b/src/workflows/run_benchmark/main.nf index 832f3c979..e9560c8de 100644 --- a/src/workflows/run_benchmark/main.nf +++ b/src/workflows/run_benchmark/main.nf @@ -24,12 +24,15 @@ methods = [ ), combat, combat_seq, + condo, density_adaptive, + drvi, fadvi, geneformer, harmony, harmonypy, liger, + limma_removebatcheffect, mnnpy, pyliger, sca, @@ -48,7 +51,10 @@ methods = [ ), scprint, scvi, + seurat_cca, + seurat_rpca, ss_stacas, + stacas, uce.run( args: [model: file("s3://openproblems-work/cache/uce-model-v5.zip")] ) @@ -58,7 +64,9 @@ methods = [ metrics = [ asw_batch, asw_label, + bras, cell_cycle_conservation, + cilisi, clustering_overlap, graph_connectivity, hvg_overlap,