From 8e7990ee4ca044ced90257d7ab5c0e0fbe168683 Mon Sep 17 00:00:00 2001 From: LouisK92 Date: Sat, 20 Sep 2025 13:33:33 +0200 Subject: [PATCH] Reduce sp and sc data to shared genes --- src/data_processors/process_dataset/script.py | 13 ++++++------- src/workflows/process_datasets/test.sh | 4 ++++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/data_processors/process_dataset/script.py b/src/data_processors/process_dataset/script.py index 098a98afe..5af769493 100644 --- a/src/data_processors/process_dataset/script.py +++ b/src/data_processors/process_dataset/script.py @@ -19,13 +19,12 @@ # Load the spatial data sdata = sd.read_zarr(par["input_sp"]) -# Subset the single-cell data to spatial genes -genes_sp = [] -for key in sdata.tables.keys(): - # todo: var column names need to be updated to match the rest of openproblems - genes_sp = genes_sp + sdata.tables[key].var_names.tolist() -genes_sp = list(np.unique(genes_sp)) -adata = adata[:,adata.var["feature_name"].isin(genes_sp)].copy() +# Subset single-cell and spatial data to shared genes +sp_genes = sdata['transcripts']['feature_name'].unique().compute().tolist() +sc_genes = adata.var["feature_name"].unique().tolist() +shared_genes = list(set(sp_genes) & set(sc_genes)) +sdata['transcripts'] = sdata['transcripts'].loc[sdata['transcripts']['feature_name'].isin(shared_genes)] +adata = adata[:,adata.var["feature_name"].isin(shared_genes)].copy() # Use feature names for adata instead of feature ids. convert to str adata.var.reset_index(inplace=True, drop=True) diff --git a/src/workflows/process_datasets/test.sh b/src/workflows/process_datasets/test.sh index 508a15480..e9fe8f498 100755 --- a/src/workflows/process_datasets/test.sh +++ b/src/workflows/process_datasets/test.sh @@ -1,5 +1,9 @@ #!/bin/bash +# NOTE: For local testing you might need to reduce the memory in src/data_processors/process_dataset/config.vsh.yaml +# Don't forget to rebuild that dependency of the workflow: +# viash ns build src/data_processors/process_dataset/config.vsh.yaml --setup cachedbuild + nextflow run . \ -main-script target/nextflow/workflows/process_datasets/main.nf \ -profile docker \