From 592bdd3433403e3efd35af4be6ff46624323bce3 Mon Sep 17 00:00:00 2001 From: Robrecht Cannoodt Date: Wed, 29 Jul 2026 09:47:19 +0200 Subject: [PATCH] record all removed vars in novel_train rem_var holds every all-zero training feature, but only rem_var[0] was stored, so novel_predict removed one column from the test matrix no matter how many the model had dropped. --- CHANGELOG.md | 6 ++++++ src/methods/novel/novel_train/script.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9a8396c..c0fd6e29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# task_predict_modality 0.2.0 + +## BUG FIXES + +* `novel`: Record every all-zero training feature in `uns["removed_vars"]`, not just the first. With more than one such feature, `novel_predict` left extra columns in the test matrix and the model dimensions no longer lined up (PR #33). + # task_predict_modality 0.1.1 ## NEW FUNCTIONALITY diff --git a/src/methods/novel/novel_train/script.py b/src/methods/novel/novel_train/script.py index 0cd94124..4b24f527 100644 --- a/src/methods/novel/novel_train/script.py +++ b/src/methods/novel/novel_train/script.py @@ -150,7 +150,7 @@ # Add model dim for use in predict part adata.uns["model_dim"] = {"mod1": n_vars_mod1, "mod2": n_vars_mod2} if rem_var is not None: - adata.uns["removed_vars"] = [rem_var[0]] + adata.uns["removed_vars"] = list(rem_var) adata.write_h5ad(output_h5ad, compression="gzip") if mod1 != 'ADT':