Skip to content

Commit 911a0cd

Browse files
committed
Avoid reading/writing full MuData
1 parent 6e63b5f commit 911a0cd

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

src/annotate/calculate_marker_genes_scanpy/config.vsh.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ resources:
108108
- type: python_script
109109
path: script.py
110110
- path: /src/utils/setup_logger.py
111+
- path: /src/utils/compress_h5mu.py
111112

112113
test_resources:
113114
- type: python_script

src/annotate/calculate_marker_genes_scanpy/script.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
sys.path.append(meta["resources_dir"])
2929
from setup_logger import setup_logger
30-
30+
from compress_h5mu import write_h5ad_to_h5mu_with_compression
3131

3232
logger = setup_logger()
3333

@@ -112,15 +112,10 @@ def format_results(adata, par, filtered_key_added=None):
112112

113113

114114
def main(par):
115-
logger.info("Loading MuData from '%s'", par["input"])
116-
mdata = mu.read_h5mu(par["input"])
117-
118-
logger.info("Selecting modality '%s'", par["modality"])
119-
if par["modality"] not in mdata.mod:
120-
raise ValueError(
121-
f"'{par['modality']}' is not a modality in the input data. Available modalities: {list(mdata.mod.keys())}."
122-
)
123-
adata = mdata[par["modality"]]
115+
logger.info(
116+
"Loading AnnData from '%s' modality '%s'", par["input"], par["modality"]
117+
)
118+
adata = mu.read_anndata(par["input"], mod=par["modality"])
124119

125120
logger.info("Selecting clustering column '%s'", par["obs_clustering"])
126121
if par["obs_clustering"] not in adata.obs.columns:
@@ -142,7 +137,13 @@ def main(par):
142137
results = format_results(adata, par, filtered_key_added)
143138

144139
logger.info("Writing MuData output to '%s'", par["output"])
145-
mdata.write_h5mu(par["output"], compression=par["output_compression"])
140+
write_h5ad_to_h5mu_with_compression(
141+
par["output"],
142+
par["input"],
143+
par["modality"],
144+
adata,
145+
par["output_compression"],
146+
)
146147

147148
logger.info("Writing marker results to '%s'", par["output_markers"])
148149
results.to_csv(par["output_markers"], index=False)

0 commit comments

Comments
 (0)