diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dc296a7..065a7c44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -112,6 +112,8 @@ * `senkin_tmp_train`, `senkin_tmp_predict`: Store the model bundle (the test predictions, as the solution is transductive) as an h5ad file in a directory instead of a pickle. The train image is built from `nvidia/cuda` with the current pandas 3, the predict image `openproblems/base_pytorch_nvidia:1` ships pandas 2, and unpickling the bundled `var` DataFrame raised `NotImplementedError` in `NDArrayBacked.__setstate__`, so senkin_tmp finished both CITE training runs of run_2026-09-23 but never produced a prediction. The predict step still reads the old pickle until the test resources are regenerated (PR #73). +* `senkin_tmp_predict`: Compare the cell and protein names of the stored predictions as lists. The train and predict images run different pandas versions, so the same names were read back with a different index dtype and `Index.equals()` failed on every dataset (PR #75). + * `scipenn`: Exit 99 (non-applicable) instead of raising a `ValueError` on anything other than GEX -> ADT (PR #77). # task_predict_modality 0.1.1 diff --git a/src/methods/senkin_tmp/senkin_tmp_predict/script.py b/src/methods/senkin_tmp/senkin_tmp_predict/script.py index f6af47f4..67b6fd43 100644 --- a/src/methods/senkin_tmp/senkin_tmp_predict/script.py +++ b/src/methods/senkin_tmp/senkin_tmp_predict/script.py @@ -46,8 +46,8 @@ def read_predictions(model_dir): logger.info("Loading the predictions of the train step...") adata_predictions = read_predictions(par["input_model"]) # The train step predicted the test cells of input_test_mod1 in their order; make sure nothing changed -assert adata_predictions.obs_names.equals(adata_rna_test.obs_names), "test cells do not match the trained model" -assert adata_predictions.var_names.equals(adata_prot_train.var_names), "proteins do not match the trained model" +assert adata_predictions.obs_names.tolist() == adata_rna_test.obs_names.tolist(), "test cells do not match the trained model" +assert adata_predictions.var_names.tolist() == adata_prot_train.var_names.tolist(), "proteins do not match the trained model" logger.info("Writing predictions...") adata_out = ad.AnnData(