diff --git a/pyproject.toml b/pyproject.toml index 8a3b4c0d..e0bb5658 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ dependencies = [ "umap-learn>=0.3.10", "numba>=0.41.0", "numpy>=1.17", - "pandas>=0.23, !=1.4.0", + "pandas>=1.1.1, !=1.4.0", "scipy>=1.4.1", "scikit-learn>=0.21.2, <1.2.0", "scvi-tools>=0.20.1", diff --git a/scvelo/core/_anndata.py b/scvelo/core/_anndata.py index 0429c7bc..782d0265 100644 --- a/scvelo/core/_anndata.py +++ b/scvelo/core/_anndata.py @@ -292,17 +292,6 @@ def get_df( ) df = df.sort_values(by=sort_by, ascending=False) - if hasattr(data, "var_names"): - if df.index[0] in data.var_names: - df.var_names = df.index - elif df.columns[0] in data.var_names: - df.var_names = df.columns - if hasattr(data, "obs_names"): - if df.index[0] in data.obs_names: - df.obs_names = df.index - elif df.columns[0] in data.obs_names: - df.obs_names = df.columns - return df diff --git a/scvelo/plotting/utils.py b/scvelo/plotting/utils.py index 612092ff..2e61531d 100644 --- a/scvelo/plotting/utils.py +++ b/scvelo/plotting/utils.py @@ -641,7 +641,8 @@ def set_legend( if legend_fontoutline is None: legend_fontoutline = 1 obs_vals = adata.obs[value_to_plot] - obs_vals.cat.categories = obs_vals.cat.categories.astype(str) + str_cats = obs_vals.cat.categories.astype(str) + obs_vals = obs_vals.cat.set_categories(str_cats, rename=True) color_keys = adata.uns[f"{value_to_plot}_colors"] if isinstance(color_keys, dict): color_keys = np.array([color_keys[c] for c in obs_vals.cat.categories]) @@ -964,7 +965,6 @@ def set_colorbar(smp, ax, orientation="vertical", labelsize=None): cb = pl.colorbar(smp, orientation=orientation, cax=cax) cb.set_alpha(1) cb.ax.tick_params(labelsize=labelsize) - cb.draw_all() cb.locator = MaxNLocator(nbins=3, integer=True) cb.update_ticks() diff --git a/scvelo/settings.py b/scvelo/settings.py index a9a30245..c39f91af 100644 --- a/scvelo/settings.py +++ b/scvelo/settings.py @@ -4,7 +4,8 @@ from cycler import cycler from packaging.version import parse -from matplotlib import cbook, cm, colors, rcParams +import matplotlib as mpl +from matplotlib import cm, colors, rcParams """Settings """ @@ -88,7 +89,7 @@ # Functions # -------------------------------------------------------------------------------- -warnings.filterwarnings("ignore", category=cbook.mplDeprecation) +warnings.filterwarnings("ignore", category=mpl.MatplotlibDeprecationWarning) # default matplotlib 2.0 palette slightly modified. diff --git a/scvelo/tools/rank_velocity_genes.py b/scvelo/tools/rank_velocity_genes.py index 3759ae5b..dcfd426e 100644 --- a/scvelo/tools/rank_velocity_genes.py +++ b/scvelo/tools/rank_velocity_genes.py @@ -170,8 +170,8 @@ def velocity_clusters( vc = vdata.obs["louvain"] vc_cats = vc.cat.categories mean_times = [np.mean(vdata.obs[sort_by][vc == cat]) for cat in vc_cats] - vdata.obs["louvain"].cat.reorder_categories( - vc_cats[np.argsort(mean_times)], inplace=True + vdata.obs["louvain"] = vdata.obs["louvain"].cat.reorder_categories( + vc_cats[np.argsort(mean_times)] ) if isinstance(match_with, str) and match_with in adata.obs.keys(): diff --git a/scvelo/tools/velocity_graph.py b/scvelo/tools/velocity_graph.py index c29f2644..ad2bf7f5 100644 --- a/scvelo/tools/velocity_graph.py +++ b/scvelo/tools/velocity_graph.py @@ -156,11 +156,15 @@ def __init__( self.graph_neg = adata.uns[gkey_] if gkey_ in adata.uns.keys() else [] if tkey in adata.obs.keys(): - self.t0 = adata.obs[tkey].copy() + self.t0 = adata.obs[tkey].astype("category").copy() init = min(self.t0) if isinstance(min(self.t0), int) else 0 - self.t0.cat.categories = np.arange(init, len(self.t0.cat.categories)) + self.t0 = self.t0.cat.set_categories( + np.arange(init, len(self.t0.cat.categories)), rename=True + ) self.t1 = self.t0.copy() - self.t1.cat.categories = self.t0.cat.categories + 1 + self.t1 = self.t1.cat.set_categories( + self.t0.cat.categories + 1, rename=True + ) else: self.t0 = None @@ -184,6 +188,7 @@ def compute_cosines(self, n_jobs=None, backend="loky"): n_jobs=n_jobs, unit="cells", backend=backend, + as_array=False, )() uncertainties, vals, rows, cols = map(_flatten, zip(*res)) diff --git a/tests/conftest.py b/tests/conftest.py index b72e1a07..ad27a231 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,6 +4,8 @@ import pytest from hypothesis import settings +import matplotlib as mpl + import scanpy as sc from anndata import AnnData @@ -25,6 +27,11 @@ _pancreas_100obs_preprocessed = sc.read("tests/_data/pancreas_100obs_preprocessed.h5ad") +def pytest_sessionstart(session: pytest.Session) -> None: + del session + mpl.use("Agg") + + @pytest.fixture def dentategyrus_50obs() -> AnnData: return _dentategyrus_50obs.copy()