diff --git a/popv/__init__.py b/popv/__init__.py index cd896d9..228939c 100644 --- a/popv/__init__.py +++ b/popv/__init__.py @@ -6,7 +6,7 @@ if sys.version_info[:2] != (3, 10): warnings.warn( "Pretrained models on huggingface are trained with Python 3.11. " - f"Detected Python {sys.version.split()[0]} will not load these models.", + "Detected Python {sys.version.split()[:2]} will not load these models.", UserWarning, stacklevel=3, ) diff --git a/popv/algorithms/_svm.py b/popv/algorithms/_svm.py index bbab91d..1af2c3f 100644 --- a/popv/algorithms/_svm.py +++ b/popv/algorithms/_svm.py @@ -76,6 +76,7 @@ def predict(self, adata): if adata.uns["_prediction_mode"] == "retrain": train_idx = adata.obs["_ref_subsample"] train_x = adata[train_idx].layers[self.layer_key] if self.layer_key else adata[train_idx].X + train_x = np.array(train_x.todense()) train_y = adata.obs.loc[train_idx, self.labels_key].cat.codes.to_numpy() if settings.cuml: from cuml.svm import LinearSVC @@ -83,7 +84,6 @@ def predict(self, adata): self.classifier_dict["probability"] = self.return_probabilities clf = OneVsRestClassifier(LinearSVC(**self.classifier_dict)) - train_x = train_x.todense() clf.fit(train_x, train_y) joblib.dump( clf, @@ -131,7 +131,7 @@ def predict(self, adata): for i in range(0, adata.n_obs, shard_size): tmp_x = test_x[i : i + shard_size] names_x = adata.obs_names[i : i + shard_size] - tmp_x = tmp_x.todense() + tmp_x = np.array(tmp_x.todense()) result_df.loc[names_x, self.result_key] = adata.uns["label_categories"][clf.predict(tmp_x).astype(int)] if self.return_probabilities: result_df.loc[names_x, f"{self.result_key}_probabilities"] = np.max( diff --git a/popv/hub/_metadata.py b/popv/hub/_metadata.py index 48cacb0..20217fd 100644 --- a/popv/hub/_metadata.py +++ b/popv/hub/_metadata.py @@ -2,6 +2,7 @@ import json import os +import sys from dataclasses import asdict, dataclass, field from anndata import AnnData @@ -194,6 +195,7 @@ def _to_model_card(self) -> ModelCard: "genomics", "single-cell", f"anndata_version:{self.anndata_version}", + f"python_version:{'.'.join([str(i) for i in sys.version_info[:3]])}", "popV", ] for t in self.tissues: