From 0905ff2c70b0256c73579ec79cd231075f6224aa Mon Sep 17 00:00:00 2001 From: Lilly Date: Sat, 31 Aug 2024 23:05:21 +0200 Subject: [PATCH 01/19] EdgeR example and first paired plot implementation --- pertpy/tools/__init__.py | 4 +- .../_differential_gene_expression/_base.py | 216 +++++++++++++++++- .../_differential_gene_expression/_edger.py | 8 +- pertpy/tools/_milo.py | 5 +- .../_perturbation_space.py | 2 +- .../test_edger.py | 5 +- 6 files changed, 228 insertions(+), 12 deletions(-) diff --git a/pertpy/tools/__init__.py b/pertpy/tools/__init__.py index 63fe91e8..47559b4b 100644 --- a/pertpy/tools/__init__.py +++ b/pertpy/tools/__init__.py @@ -49,7 +49,9 @@ def wrapper(*args, **kwargs): Tasccoda = lazy_import("pertpy.tools._coda._tasccoda", "Tasccoda", CODA_EXTRAS) DE_EXTRAS = ["formulaic", "pydeseq2"] -EdgeR = lazy_import("pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS + ["edger"]) +EdgeR = lazy_import( + "pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS +) # not edgeR as this is imported via rpy2 PyDESeq2 = lazy_import("pertpy.tools._differential_gene_expression", "PyDESeq2", DE_EXTRAS) Statsmodels = lazy_import("pertpy.tools._differential_gene_expression", "Statsmodels", DE_EXTRAS + ["statsmodels"]) TTest = lazy_import("pertpy.tools._differential_gene_expression", "TTest", DE_EXTRAS) diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 4ec2e841..a19a5f97 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -1,7 +1,9 @@ +import math import os from abc import ABC, abstractmethod +from collections.abc import Sequence from dataclasses import dataclass -from itertools import chain +from itertools import chain, zip_longest from types import MappingProxyType import adjustText @@ -10,7 +12,10 @@ import matplotlib.pyplot as plt import numpy as np import pandas as pd +import scipy import seaborn as sns +import statsmodels +from lamin_utils import logger from matplotlib.ticker import MaxNLocator from pertpy.tools._differential_gene_expression._checks import check_is_numeric_matrix @@ -149,6 +154,28 @@ def plot_volcano( x_label: Label for the x-axis. y_label: Label for the y-axis. **kwargs: Additional arguments for seaborn.scatterplot. + + Examples: + >>> # Example with EdgeR + >>> import pertpy as pt + >>> adata = pt.dt.zhang_2021() + >>> adata.layers["counts"] = adata.X.copy() + >>> ps = pt.tl.PseudobulkSpace() + >>> pdata = ps.compute( + ... adata, + ... target_col="Patient", + ... groups_col="Cluster", + ... layer_key="counts", + ... mode="sum", + ... min_cells=10, + ... min_counts=1000, + ... ) + >>> edgr = pt.tl.EdgeR(pdata, design="~Efficacy+Treatment") + >>> edgr.fit() + >>> res_df = edgr.test_contrasts( + ... edgr.contrast(column="Treatment", baseline="Chemo", group_to_compare="Anti-PD-L1+Chemo") + ... ) + >>> edgr.plot_volcano(res_df, log2fc_thresh=0) """ if colors is None: colors = ["gray", "#D62728", "#1F77B4"] @@ -243,7 +270,7 @@ def _map_genes_categories_highlight( if varm_key is None: raise ValueError("Please pass a .varm key to use for plotting") - raise NotImplementedError("Anndata not implemented yet") + raise NotImplementedError("Anndata not implemented yet") # TODO: Implement this df = data.varm[varm_key].copy() df = data.copy(deep=True) @@ -464,6 +491,191 @@ def _map_genes_categories_highlight( plt.show() + def plot_paired( + self, + adata: ad.AnnData, + var_names: Sequence[str], + groupby: str, + *, + pairedby: str = None, + hue: str = None, + return_fig: bool = False, + n_cols: int = 4, + panel_size: tuple[int, int] = (5, 5), + show_legend: bool = True, + size: int = 10, + y_label: str = "expression", + pvalues: Sequence[float] = None, # TODO + pvalue_template=lambda x: f"unadj. p={x:.2f}, t-test", # TODO + adjust_fdr: bool = False, + boxplot_properties=None, + palette=None, + ): + """Creates a pairwise expression plot from a pandas DataFrame or Anndata. + + Makes on panel with a paired scatterplot for each variable. + + Args: + adata: AnnData object, can be pseudobulked. + var_names: Variables to plot. + groupby: Column in adata.obs containing the grouping. Must contain exactly two different values. + pairedby: Column in adata.obs containing the pairing (e.g. "patient_id"). If None, an independent t-test is performed. + hue: Column in adata.obs to color by. + return_fig: Whether to return the figure. + n_cols: Number of columns in the plot. + panel_size: Size of each panel. + show_legend: Whether to show the legend. + size: Size of the points. + y_label: Label for the y-axis. + pvalues: P-values for each variable. If None, they are calculated. + pvalue_template: Template for the p-value string displayed in the title of each panel. + adjust_fdr: Whether to correct p-values for false discovery rate. + boxplot_properties: Additional properties for the boxplot, passed to seaborn.boxplot. + palette: Color palette for the line- and stripplot. + + + + + """ + if boxplot_properties is None: + boxplot_properties = {} + groups = adata.obs[groupby].unique() + if len(groups) != 2: + raise ValueError("The number of groups in the group_by column must be exactely 2") + + X = adata[:, var_names].X + try: + X = X.toarray() + except AttributeError: + pass + + groupby_cols = [groupby] + if pairedby is not None: + groupby_cols.insert(0, pairedby) + if hue is not None: + groupby_cols.insert(0, hue) + + df = adata.obs.loc[:, groupby_cols].join(pd.DataFrame(X, index=adata.obs_names, columns=var_names)) + + if pairedby is not None: + # remove unpaired samples + df[pairedby] = df[pairedby].astype(str) + df.set_index(pairedby, inplace=True) + has_matching_samples = df.groupby(pairedby).apply(lambda x: sorted(x[groupby]) == sorted(groups)) + has_matching_samples = has_matching_samples.index[has_matching_samples].values + removed_samples = adata.obs[pairedby].nunique() - len(has_matching_samples) + if removed_samples: + logger.warning(f"{removed_samples} unpaired samples removed") + + # perform statistics (paired ttest) + if pvalues is None: + _, pvalues = scipy.stats.ttest_rel( + df.loc[ + df[groupby] == groups[0], + var_names, + ].loc[has_matching_samples, :], + df.loc[ + df[groupby] == groups[1], + var_names, + ].loc[has_matching_samples], + ) + + df = df.loc[has_matching_samples, :] + df.reset_index(drop=False, inplace=True) + + else: + if pvalues is None: + _, pvalues = scipy.stats.ttest_ind( + df.loc[ + df[groupby] == groups[0], + var_names, + ], + df.loc[ + df[groupby] == groups[1], + var_names, + ], + ) + + if adjust_fdr: + pvalues = statsmodels.stats.multitest.fdrcorrection(pvalues)[1] + + # transform data for seaborn + df_melt = df.melt( + id_vars=groupby_cols, + var_name="var", + value_name="val", + ) + + # start plotting + n_panels = len(var_names) + nrows = math.ceil(n_panels / n_cols) + ncols = min(n_cols, n_panels) + + fig, axes = plt.subplots( + nrows, + ncols, + figsize=(ncols * panel_size[0], nrows * panel_size[1]), + tight_layout=True, + squeeze=False, + ) + axes = axes.flatten() + if hue is None: + hue = pairedby + for i, (var, ax) in enumerate(zip_longest(var_names, axes)): + if var is not None: + sns.boxplot( + x=groupby, + data=df_melt.loc[df_melt["var"] == var], + y="val", + ax=ax, + color="white", + fliersize=0, + **boxplot_properties, + ) + if pairedby is not None: + sns.lineplot( + x=groupby, + data=df_melt.loc[df_melt["var"] == var], + hue=hue, + y="val", + ax=ax, + legend=False, + errorbar=None, + palette=palette, + ) + sns.stripplot( + x=groupby, + data=df_melt.loc[df_melt["var"] == var], + y="val", + ax=ax, + hue=hue, + size=size, + linewidth=1, + palette=palette, + ) + + ax.set_xlabel("") + ax.tick_params( + axis="x", + # rotation=0, + labelsize=15, + ) + ax.legend().set_visible(False) + ax.set_ylabel(y_label) + ax.set_title(f"{var}\n{pvalue_template(pvalues[i])}") + else: + ax.set_visible(False) + fig.tight_layout() + + if show_legend is True: + axes[n_panels - 1].legend().set_visible(True) + axes[n_panels - 1].legend(bbox_to_anchor=(1.1, 1.05)) + + plt.show() + + if return_fig: + return fig + class LinearModelBase(MethodBase): def __init__(self, adata, design, *, mask=None, layer=None, **kwargs): diff --git a/pertpy/tools/_differential_gene_expression/_edger.py b/pertpy/tools/_differential_gene_expression/_edger.py index f50c1300..98849476 100644 --- a/pertpy/tools/_differential_gene_expression/_edger.py +++ b/pertpy/tools/_differential_gene_expression/_edger.py @@ -2,7 +2,7 @@ import numpy as np import pandas as pd -from scanpy import logging +from lamin_utils import logger from scipy.sparse import issparse from ._base import LinearModelBase @@ -60,13 +60,13 @@ def fit(self, **kwargs): # adata, design, mask, layer dge = edger.DGEList(counts=expr_r, samples=self.adata.obs) - logging.info("Calculating NormFactors") + logger.info("Calculating NormFactors") dge = edger.calcNormFactors(dge) - logging.info("Estimating Dispersions") + logger.info("Estimating Dispersions") dge = edger.estimateDisp(dge, design=self.design) - logging.info("Fitting linear model") + logger.info("Fitting linear model") fit = edger.glmQLFit(dge, design=self.design, **kwargs) ro.globalenv["fit"] = fit diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 6fa99959..eb7d5ad1 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -1,6 +1,5 @@ from __future__ import annotations -import logging import random import re from typing import TYPE_CHECKING, Literal @@ -125,7 +124,7 @@ def make_nhoods( try: use_rep = adata.uns["neighbors"]["params"]["use_rep"] except KeyError: - logging.warning("Using X_pca as default embedding") + logger.warning("Using X_pca as default embedding") use_rep = "X_pca" try: knn_graph = adata.obsp["connectivities"].copy() @@ -136,7 +135,7 @@ def make_nhoods( try: use_rep = adata.uns[neighbors_key]["params"]["use_rep"] except KeyError: - logging.warning("Using X_pca as default embedding") + logger.warning("Using X_pca as default embedding") use_rep = "X_pca" knn_graph = adata.obsp[neighbors_key + "_connectivities"].copy() diff --git a/pertpy/tools/_perturbation_space/_perturbation_space.py b/pertpy/tools/_perturbation_space/_perturbation_space.py index 3d6c4f67..9a5a475c 100644 --- a/pertpy/tools/_perturbation_space/_perturbation_space.py +++ b/pertpy/tools/_perturbation_space/_perturbation_space.py @@ -41,7 +41,7 @@ def compute_control_diff( # type: ignore Args: adata: Anndata object of size cells x genes. target_col: .obs column name that stores the label of the perturbation applied to each cell. - group_col: .obs column name that stores the label of the group of eah cell. If None, ignore groups. + group_col: .obs column name that stores the label of the group of each cell. If None, ignore groups. reference_key: The key of the control values. layer_key: Key of the AnnData layer to use for computation. new_layer_key: the results are stored in the given layer. diff --git a/tests/tools/_differential_gene_expression/test_edger.py b/tests/tools/_differential_gene_expression/test_edger.py index b00e826b..9967921b 100644 --- a/tests/tools/_differential_gene_expression/test_edger.py +++ b/tests/tools/_differential_gene_expression/test_edger.py @@ -6,7 +6,8 @@ def test_edger_simple(test_adata): 1. Initialized 2. Fitted - 3. and that test_contrast returns a DataFrame with the correct number of rows. + 3. That test_contrast returns a DataFrame with the correct number of rows + 4. That the plot_volcano method works """ method = EdgeR(adata=test_adata, design="~condition") method.fit() @@ -14,6 +15,8 @@ def test_edger_simple(test_adata): assert len(res_df) == test_adata.n_vars + method.plot_volcano(res_df, save=False) + def test_edger_complex(test_adata): """Check that the EdgeR method can be initialized with a different covariate name and fitted and that the test_contrast From 88812616a5587c355d44493e2729df30907f4a09 Mon Sep 17 00:00:00 2001 From: Lilly Date: Tue, 3 Sep 2024 00:41:28 +0200 Subject: [PATCH 02/19] Reuse plot parameters --- pertpy/_utils.py | 55 ++++++++++++ pertpy/preprocessing/_guide_rna.py | 16 +++- pertpy/tools/_augur.py | 31 +++---- pertpy/tools/_enrichment.py | 17 +++- pertpy/tools/_milo.py | 20 +++-- pertpy/tools/_mixscape.py | 93 ++++++++++----------- pertpy/tools/_perturbation_space/_simple.py | 33 ++++++++ 7 files changed, 185 insertions(+), 80 deletions(-) create mode 100644 pertpy/_utils.py diff --git a/pertpy/_utils.py b/pertpy/_utils.py new file mode 100644 index 00000000..5ed1279d --- /dev/null +++ b/pertpy/_utils.py @@ -0,0 +1,55 @@ +import matplotlib.pyplot as plt +import os +from matplotlib.pyplot import Figure +from textwrap import dedent + + +def savefig_or_show( + writekey: str, + show: bool, + save: bool | str, + return_fig: bool = False, + dpi: int = 150, + ext: str = "png", +) -> Figure | None: + if isinstance(save, str): + # check whether `save` contains a figure extension + for try_ext in [".svg", ".pdf", ".png"]: + if save.endswith(try_ext): + ext = try_ext[1:] + save = save.replace(try_ext, "") + break + # append extension + writekey += f"_{save}" + save = True + + if save: + os.makedirs("figures", exist_ok=True) + plt.savefig(os.path.join("figures", f"{writekey}.{ext}"), dpi=dpi, bbox_inches="tight") + if show: + plt.show() + if save: + plt.close() # clear figure + if return_fig: + return plt.gcf() + return None + + +def _doc_params(**kwds): # pragma: no cover + """\ + Docstrings should start with "\" in the first line for proper formatting. + """ + + def dec(obj): + obj.__orig_doc__ = obj.__doc__ + obj.__doc__ = dedent(obj.__doc__.format_map(kwds)) + return obj + + return dec + + +doc_common_plot_args = """\ +show: if `True`, shows the plot. + save: if `True`, saves the plot under a default filename. If `str`, appends the specified string to the default filename. + return_fig: if `True`, returns figure of the plot.\ +""" diff --git a/pertpy/preprocessing/_guide_rna.py b/pertpy/preprocessing/_guide_rna.py index 9ebded21..82b412f3 100644 --- a/pertpy/preprocessing/_guide_rna.py +++ b/pertpy/preprocessing/_guide_rna.py @@ -2,11 +2,13 @@ import uuid from typing import TYPE_CHECKING +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show import numpy as np import pandas as pd import scanpy as sc import scipy +import matplotlib.pyplot as plt if TYPE_CHECKING: from anndata import AnnData @@ -106,12 +108,16 @@ def assign_to_max_guide( return None + @_doc_params(common_plot_args=doc_common_plot_args) def plot_heatmap( self, adata: AnnData, layer: str | None = None, order_by: np.ndarray | str | None = None, key_to_save_order: str = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, ) -> list[Axes]: """Heatmap plotting of guide RNA expression matrix. @@ -131,10 +137,11 @@ def plot_heatmap( If a string is provided, adata.obs[order_by] will be used as the order. If a numpy array is provided, the array will be used for ordering. key_to_save_order: The obs key to save cell orders in the current plot. Only saves if not None. + {common_plot_args} kwargs: Are passed to sc.pl.heatmap. Returns: - List of Axes. Alternatively you can pass save or show parameters as they will be passed to sc.pl.heatmap. + If return_fig is True, returns a list of Axes. Alternatively you can pass save or show parameters as they will be passed to sc.pl.heatmap. Order of cells in the y-axis will be saved on adata.obs[key_to_save_order] if provided. Examples: @@ -180,9 +187,14 @@ def plot_heatmap( use_raw=False, dendrogram=False, layer=layer, + save=save, + show=False, **kwargs, ) finally: del adata.obs[temp_col_name] - return axis_group + if show: + plt.show() + if return_fig: + return axis_group diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index 81d317bc..2abb8553 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -5,6 +5,7 @@ from dataclasses import dataclass from math import floor, nan from typing import TYPE_CHECKING, Any, Literal +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show import anndata as ad import matplotlib.pyplot as plt @@ -15,7 +16,6 @@ from anndata import AnnData from joblib import Parallel, delayed from lamin_utils import logger -from rich import print from rich.progress import track from scipy import sparse, stats from sklearn.base import is_classifier, is_regressor @@ -1119,25 +1119,26 @@ def plot_important_features( return ax return None + @_doc_params(common_plot_args=doc_common_plot_args) def plot_lollipop( self, - data: dict[str, Any], + data: dict[str, Any] | AnnData, key: str = "augurpy_results", - return_fig: bool | None = None, ax: Axes = None, - show: bool | None = None, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Axes | Figure | None: """Plot a lollipop plot of the mean augur values. Args: - results: results after running `predict()` as dictionary or the AnnData object. - key: Key in the AnnData object of the results - ax: optionally, axes used to draw plot - return_figure: if `True` returns figure of the plot + data: results after running `predict()` as dictionary or the AnnData object. + key: .uns key in the results AnnData object. + ax: optionally, axes used to draw plot. + {common_plot_args} Returns: - Axes of the plot. + Axes of the plot, if `return_fig` is `True`, otherwise `None`. Examples: >>> import pertpy as pt @@ -1175,15 +1176,7 @@ def plot_lollipop( plt.ylabel("Cell Type") plt.yticks(y_axes_range, results["summary_metrics"].sort_values("mean_augur_score", axis=1).columns) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("augur_lollipop", show=show, save=save, return_fig=return_fig) def plot_scatterplot( self, diff --git a/pertpy/tools/_enrichment.py b/pertpy/tools/_enrichment.py index 7574cd7a..c5a8fee4 100644 --- a/pertpy/tools/_enrichment.py +++ b/pertpy/tools/_enrichment.py @@ -15,6 +15,7 @@ from statsmodels.stats.multitest import multipletests from pertpy.metadata import Drug +from pertpy._utils import _doc_params, doc_common_plot_args def _prepare_targets( @@ -290,6 +291,7 @@ def gsea( return enrichment + @_doc_params(common_plot_args=doc_common_plot_args) def plot_dotplot( self, adata: AnnData, @@ -300,8 +302,9 @@ def plot_dotplot( groupby: str = None, key: str = "pertpy_enrichment", ax: Axes | None = None, - save: bool | str | None = None, - show: bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, ) -> DotPlot | dict | None: """Plots a dotplot by groupby and categories. @@ -319,6 +322,7 @@ def plot_dotplot( category_name: The name of category used to generate a nested drug target set when `targets=None` and `source=dgidb|pharmgkb`. groupby: dotplot groupby such as clusters or cell types. key: Prefix key of enrichment results in `uns`. + {common_plot_args} kwargs: Passed to scanpy dotplot. Returns: @@ -403,17 +407,22 @@ def plot_dotplot( "var_group_labels": var_group_labels, } - return sc.pl.dotplot( + fig = sc.pl.dotplot( enrichment_score_adata, groupby=groupby, swap_axes=True, ax=ax, save=save, - show=show, + show=False, **plot_args, **kwargs, ) + if show: + plt.show() + if return_fig: + return fig + def plot_gsea( self, adata: AnnData, diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index eb7d5ad1..246ca60c 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -12,6 +12,7 @@ from anndata import AnnData from lamin_utils import logger from mudata import MuData +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show if TYPE_CHECKING: from collections.abc import Sequence @@ -712,6 +713,7 @@ def _graph_spatial_fdr( sample_adata.var["SpatialFDR"] = np.nan sample_adata.var.loc[keep_nhoods, "SpatialFDR"] = adjp + @_doc_params(common_plot_args=doc_common_plot_args) def plot_nhood_graph( self, mdata: MuData, @@ -723,8 +725,9 @@ def plot_nhood_graph( color_map: Colormap | str | None = None, palette: str | Sequence[str] | None = None, ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, ) -> None: """Visualize DA results on abstracted graph (wrapper around sc.pl.embedding) @@ -736,9 +739,7 @@ def plot_nhood_graph( min_size: Minimum size of nodes in visualization. (default: 10) plot_edges: If edges for neighbourhood overlaps whould be plotted. title: Plot title. - show: Show the plot, do not return axis. - save: If `True` or a `str`, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {`'.pdf'`, `'.png'`, `'.svg'`}. + {common_plot_args} **kwargs: Additional arguments to `scanpy.pl.embedding`. Examples: @@ -781,7 +782,7 @@ def plot_nhood_graph( vmax = np.max([nhood_adata.obs["graph_color"].max(), abs(nhood_adata.obs["graph_color"].min())]) vmin = -vmax - sc.pl.embedding( + fig = sc.pl.embedding( nhood_adata, "X_milo_graph", color="graph_color", @@ -797,11 +798,16 @@ def plot_nhood_graph( color_map=color_map, palette=palette, ax=ax, - show=show, + show=False, save=save, **kwargs, ) + if show: + plt.show() + if return_fig: + return fig + def plot_nhood( self, mdata: MuData, diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index 2184714c..c6f690ed 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -18,6 +18,7 @@ from sklearn.mixture import GaussianMixture import pertpy as pt +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show if TYPE_CHECKING: from collections.abc import Sequence @@ -506,6 +507,7 @@ def _define_normal_mixscape(self, X: np.ndarray | sparse.spmatrix | pd.DataFrame return [mu, sd] + @_doc_params(common_plot_args=doc_common_plot_args) def plot_barplot( # pragma: no cover self, adata: AnnData, @@ -516,10 +518,10 @@ def plot_barplot( # pragma: no cover axis_title_size: int = 8, legend_title_size: int = 8, legend_text_size: int = 8, - return_fig: bool | None = None, ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ): """Barplot to visualize perturbation scores calculated by the `mixscape` function. @@ -528,12 +530,10 @@ def plot_barplot( # pragma: no cover guide_rna_column: The column of `.obs` with guide RNA labels. The target gene labels. The format must be g<#>. Examples are 'STAT2g1' and 'ATF2g1'. mixscape_class_global: The column of `.obs` with mixscape global classification result (perturbed, NP or NT). - show: Show the plot, do not return axis. - save: If True or a str, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {'.pdf', '.png', '.svg'}. + {common_plot_args} Returns: - If `show==False`, return a :class:`~matplotlib.axes.Axes. + If `return_fig==True`, return a :class:`~matplotlib.axes.Axes. Examples: >>> import pertpy as pt @@ -604,7 +604,7 @@ def plot_barplot( # pragma: no cover ) plt.tight_layout() - _utils.savefig_or_show("mixscape_barplot", show=show, save=save) + return savefig_or_show("mixscape_barplot", show=show, save=save, return_fig=return_fig) def plot_heatmap( # pragma: no cover self, @@ -663,19 +663,25 @@ def plot_heatmap( # pragma: no cover sc.pp.scale(adata_subset, max_value=vmax) sc.pp.subsample(adata_subset, n_obs=subsample_number) - return sc.pl.rank_genes_groups_heatmap( + fig = sc.pl.rank_genes_groups_heatmap( adata_subset, groupby="mixscape_class", vmin=vmin, vmax=vmax, n_genes=20, groups=["NT"], - return_fig=return_fig, - show=show, + show=False, save=save, **kwds, ) + if show: + plt.show() + if return_fig: + return fig + + + @_doc_params(common_plot_args=doc_common_plot_args) def plot_perturbscore( # pragma: no cover self, adata: AnnData, @@ -687,11 +693,10 @@ def plot_perturbscore( # pragma: no cover split_by: str = None, before_mixscape: bool = False, perturbation_type: str = "KO", - return_fig: bool | None = None, - ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, - ) -> None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Density plots to visualize perturbation scores calculated by the `pt.tl.mixscape` function. Requires `pt.tl.mixscape` to be run first. @@ -710,6 +715,7 @@ def plot_perturbscore( # pragma: no cover before_mixscape: Option to split densities based on mixscape classification (default) or original target gene classification. Default is set to NULL and plots cells by original class ID. perturbation_type: Specify type of CRISPR perturbation expected for labeling mixscape classifications. + {common_plot_args} Examples: Visualizing the perturbation scores for the cells in a dataset: @@ -778,14 +784,7 @@ def plot_perturbscore( # pragma: no cover plt.legend(title="gene_target", title_fontsize=14, fontsize=12) sns.despine() - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return plt.gca() + return savefig_or_show("mixscape_perturbscore", show=show, save=save, return_fig=return_fig) # If before_mixscape is False, split densities based on mixscape classifications else: @@ -843,15 +842,9 @@ def plot_perturbscore( # pragma: no cover plt.legend(title="mixscape class", title_fontsize=14, fontsize=12) sns.despine() - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return plt.gca() + return savefig_or_show("mixscape_perturbscore", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_violin( # pragma: no cover self, adata: AnnData, @@ -872,10 +865,11 @@ def plot_violin( # pragma: no cover ylabel: str | Sequence[str] | None = None, rotation: float | None = None, ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, - ): + ) -> Axes | None: """Violin plot using mixscape results. Requires `pt.tl.mixscape` to be run first. @@ -892,10 +886,8 @@ def plot_violin( # pragma: no cover xlabel: Label of the x-axis. Defaults to `groupby` if `rotation` is `None`, otherwise, no label is shown. ylabel: Label of the y-axis. If `None` and `groupby` is `None`, defaults to `'value'`. If `None` and `groubpy` is not `None`, defaults to `keys`. - show: Show the plot, do not return axis. - save: If `True` or a `str`, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {`'.pdf'`, `'.png'`, `'.svg'`}. ax: A matplotlib axes object. Only works if plotting a single component. + {common_plot_args} **kwargs: Additional arguments to `seaborn.violinplot`. Returns: @@ -1045,9 +1037,10 @@ def plot_violin( # pragma: no cover show = settings.autoshow if show is None else show if hue is not None and stripplot is True: plt.legend(handles, labels) - _utils.savefig_or_show("mixscape_violin", show=show, save=save) - if not show: + savefig_or_show("mixscape_violin", show=show, save=save, return_fig=False) + + if return_fig: if multi_panel and groupby is None and len(ys) == 1: return g elif len(axs) == 1: @@ -1055,6 +1048,7 @@ def plot_violin( # pragma: no cover else: return axs + @_doc_params(common_plot_args=doc_common_plot_args) def plot_lda( # pragma: no cover self, adata: AnnData, @@ -1066,10 +1060,10 @@ def plot_lda( # pragma: no cover n_components: int | None = None, color_map: Colormap | str | None = None, palette: str | Sequence[str] | None = None, - return_fig: bool | None = None, ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwds, ) -> None: """Visualizing perturbation responses with Linear Discriminant Analysis. Requires `pt.tl.mixscape()` to be run first. @@ -1082,9 +1076,7 @@ def plot_lda( # pragma: no cover perturbation_type: Specify type of CRISPR perturbation expected for labeling mixscape classifications. lda_key: If not specified, lda looks .uns["mixscape_lda"] for the LDA results. n_components: The number of dimensions of the embedding. - show: Show the plot, do not return axis. - save: If `True` or a `str`, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {`'.pdf'`, `'.png'`, `'.svg'`}. + {common_plot_args} **kwds: Additional arguments to `scanpy.pl.umap`. Examples: @@ -1112,14 +1104,19 @@ def plot_lda( # pragma: no cover n_components = adata_subset.uns[lda_key].shape[1] sc.pp.neighbors(adata_subset, use_rep=lda_key) sc.tl.umap(adata_subset, n_components=n_components) - sc.pl.umap( + fig = sc.pl.umap( adata_subset, color=mixscape_class, palette=palette, color_map=color_map, return_fig=return_fig, - show=show, + show=False, save=save, ax=ax, **kwds, ) + + if show: + plt.show() + if return_fig: + return fig diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index c59604b2..63f4a084 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -7,6 +7,7 @@ from pertpy.tools._perturbation_space._clustering import ClusteringSpace from pertpy.tools._perturbation_space._perturbation_space import PerturbationSpace +from pertpy._utils import savefig_or_show class CentroidSpace(PerturbationSpace): @@ -168,6 +169,38 @@ def compute( return ps_adata + def plot_psbulk_samples(self, + adata: AnnData, + groupby:str, + show: bool = True, + save: bool | str | None = None, + **kwargs + ) -> Axes | Figure | None: + """Plot the pseudobulk samples of an AnnData object. It uses Decoupler implementation. + + Args: + adata: Anndata containing pseudobulk samples. + groupby: .obs column to color the samples by. + show: If True, the plot is shown and the figure/axis is not returned. Set to False to return the figure. Defaults to True. + save: + **kwargs: Are passed to decoupler's plot_psbulk_samples. + + Returns: + None + + Examples: + >>> import pertpy as pt + >>> mdata = pt.dt.papalexi_2021() + >>> ps = pt.tl.PseudobulkSpace() + #TODO + >>> ps.plot_psbulk_samples(mdata["rna"], target_col="gene_target") + + Preview: + + """ + dc.plot_psbulk_samples(adata, groupby, **kwargs) + savefig_or_show("pseudobulk_samples", show, save) + class KMeansSpace(ClusteringSpace): """Computes K-Means clustering of the expression values.""" From 32f878eff464706e8b1b1d862617c8a1a01b91bb Mon Sep 17 00:00:00 2001 From: Lilly Date: Wed, 4 Sep 2024 18:35:46 +0200 Subject: [PATCH 03/19] Added DE plotting functionalities --- .github/workflows/test.yml | 14 +- .../docstring_previews/paired_expression.png | Bin 0 -> 208172 bytes .../docstring_previews/pseudobulk_samples.png | Bin 0 -> 368170 bytes pertpy/_utils.py | 9 +- pertpy/preprocessing/_guide_rna.py | 6 +- pertpy/tools/__init__.py | 2 +- pertpy/tools/_augur.py | 3 +- .../_differential_gene_expression/_base.py | 293 +++++++++++++++--- pertpy/tools/_enrichment.py | 9 +- pertpy/tools/_milo.py | 1 + pertpy/tools/_mixscape.py | 13 +- pertpy/tools/_perturbation_space/_simple.py | 49 ++- 12 files changed, 322 insertions(+), 77 deletions(-) create mode 100644 docs/_static/docstring_previews/paired_expression.png create mode 100644 docs/_static/docstring_previews/pseudobulk_samples.png diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 27cf8217..4b0b485d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,13 +27,13 @@ jobs: - os: ubuntu-latest python: "3.12" run_mode: "slow" -# - os: ubuntu-latest -# python: "3.12" -# run_mode: "fast" -# - os: ubuntu-latest -# python: "3.12" -# run_mode: slow -# pip-flags: "--pre" + # - os: ubuntu-latest + # python: "3.12" + # run_mode: "fast" + # - os: ubuntu-latest + # python: "3.12" + # run_mode: slow + # pip-flags: "--pre" env: OS: ${{ matrix.os }} diff --git a/docs/_static/docstring_previews/paired_expression.png b/docs/_static/docstring_previews/paired_expression.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7298df95c0bc8a8e2c626a4a16e0f296df929e GIT binary patch literal 208172 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

8WjL*J1eRzF--xg2D!Wy}qjKTf)7`(97HGyF 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

(aP)(Flgo!i1))Cwy1*lJeO(B%txODN7wSCsV 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

B-PGbJ<`4Nr$f!Buzwzg=? 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%0De4 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

KgEr}?0*3i;)-vk} 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

ikR{r(H)2ejZz4F%= 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

6nS{=|3tRiuru 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

L3o>l5 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'E8+XK(~hIRtb-9FNvl}F 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

-dbPaX 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 sfeh_mYZWbjfAjx+s`t>f{30IwRCdjJ3c literal 0 HcmV?d00001 diff --git a/pertpy/_utils.py b/pertpy/_utils.py index 5ed1279d..95cf5c4a 100644 --- a/pertpy/_utils.py +++ b/pertpy/_utils.py @@ -1,7 +1,8 @@ +from pathlib import Path +from textwrap import dedent + import matplotlib.pyplot as plt -import os from matplotlib.pyplot import Figure -from textwrap import dedent def savefig_or_show( @@ -24,8 +25,8 @@ def savefig_or_show( save = True if save: - os.makedirs("figures", exist_ok=True) - plt.savefig(os.path.join("figures", f"{writekey}.{ext}"), dpi=dpi, bbox_inches="tight") + Path.mkdir(Path("figures"), exist_ok=True) + plt.savefig(f"figures/{writekey}.{ext}", dpi=dpi, bbox_inches="tight") if show: plt.show() if save: diff --git a/pertpy/preprocessing/_guide_rna.py b/pertpy/preprocessing/_guide_rna.py index 82b412f3..3a5e9763 100644 --- a/pertpy/preprocessing/_guide_rna.py +++ b/pertpy/preprocessing/_guide_rna.py @@ -2,13 +2,14 @@ import uuid from typing import TYPE_CHECKING -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +import matplotlib.pyplot as plt import numpy as np import pandas as pd import scanpy as sc import scipy -import matplotlib.pyplot as plt + +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show if TYPE_CHECKING: from anndata import AnnData @@ -198,3 +199,4 @@ def plot_heatmap( plt.show() if return_fig: return axis_group + return None diff --git a/pertpy/tools/__init__.py b/pertpy/tools/__init__.py index d0f26e77..10565cee 100644 --- a/pertpy/tools/__init__.py +++ b/pertpy/tools/__init__.py @@ -46,7 +46,7 @@ def __init__(self, *args, **kwargs): Tasccoda = lazy_import("pertpy.tools._coda._tasccoda", "Tasccoda", CODA_EXTRAS) DE_EXTRAS = ["formulaic", "pydeseq2"] -EdgeR = lazy_import("pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS) # edgeR will be imported via rpy2 +EdgeR = lazy_import("pertpy.tools._differential_gene_expression", "EdgeR", DE_EXTRAS) # edgeR will be imported via rpy2 PyDESeq2 = lazy_import("pertpy.tools._differential_gene_expression", "PyDESeq2", DE_EXTRAS) Statsmodels = lazy_import("pertpy.tools._differential_gene_expression", "Statsmodels", DE_EXTRAS + ["statsmodels"]) TTest = lazy_import("pertpy.tools._differential_gene_expression", "TTest", DE_EXTRAS) diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index 2abb8553..889405a7 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -5,7 +5,6 @@ from dataclasses import dataclass from math import floor, nan from typing import TYPE_CHECKING, Any, Literal -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show import anndata as ad import matplotlib.pyplot as plt @@ -37,6 +36,8 @@ from skmisc.loess import loess from statsmodels.stats.multitest import fdrcorrection +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show + if TYPE_CHECKING: from matplotlib.axes import Axes from matplotlib.figure import Figure diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index a19a5f97..901a341f 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -16,8 +16,11 @@ import seaborn as sns import statsmodels from lamin_utils import logger +from matplotlib.pyplot import Figure from matplotlib.ticker import MaxNLocator +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy.tools import PseudobulkSpace from pertpy.tools._differential_gene_expression._checks import check_is_numeric_matrix from pertpy.tools._differential_gene_expression._formulaic import ( AmbiguousAttributeError, @@ -99,6 +102,7 @@ def compare_groups( """ ... + @_doc_params(common_plot_args=doc_common_plot_args) def plot_volcano( self, data: pd.DataFrame | ad.AnnData, @@ -120,13 +124,15 @@ def plot_volcano( figsize: tuple[int, int] = (5, 5), legend_pos: tuple[float, float] = (1.6, 1), point_sizes: tuple[int, int] = (15, 150), - save: bool | str | None = None, shapes: list[str] | None = None, shape_order: list[str] | None = None, x_label: str | None = None, y_label: str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs: int, - ) -> None: + ) -> Figure | None: """Creates a volcano plot from a pandas DataFrame or Anndata. Args: @@ -148,13 +154,16 @@ def plot_volcano( top_right_frame: Whether to show the top and right frame of the plot. figsize: Size of the figure. legend_pos: Position of the legend as determined by matplotlib. - save: Saves the plot if True or to the path provided. shapes: List of matplotlib marker ids. shape_order: Order of categories for shapes. x_label: Label for the x-axis. y_label: Label for the y-axis. + {common_plot_args} **kwargs: Additional arguments for seaborn.scatterplot. + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + Examples: >>> # Example with EdgeR >>> import pertpy as pt @@ -476,21 +485,9 @@ def _map_genes_categories_highlight( plt.legend(loc=1, bbox_to_anchor=legend_pos, frameon=False) - # TODO replace with scanpy save style - if save: - files = os.listdir() - for x in range(100): - file_pref = "volcano_" + "%02d" % (x,) - if len([x for x in files if x.startswith(file_pref)]) == 0: - plt.savefig(file_pref + ".png", dpi=300, bbox_inches="tight") - plt.savefig(file_pref + ".svg", bbox_inches="tight") - break - elif isinstance(save, str): - plt.savefig(save + ".png", dpi=300, bbox_inches="tight") - plt.savefig(save + ".svg", bbox_inches="tight") - - plt.show() + return savefig_or_show("volcano_de", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_paired( self, adata: ad.AnnData, @@ -499,7 +496,7 @@ def plot_paired( *, pairedby: str = None, hue: str = None, - return_fig: bool = False, + layer: str = None, n_cols: int = 4, panel_size: tuple[int, int] = (5, 5), show_legend: bool = True, @@ -510,7 +507,10 @@ def plot_paired( adjust_fdr: bool = False, boxplot_properties=None, palette=None, - ): + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Creates a pairwise expression plot from a pandas DataFrame or Anndata. Makes on panel with a paired scatterplot for each variable. @@ -521,7 +521,7 @@ def plot_paired( groupby: Column in adata.obs containing the grouping. Must contain exactly two different values. pairedby: Column in adata.obs containing the pairing (e.g. "patient_id"). If None, an independent t-test is performed. hue: Column in adata.obs to color by. - return_fig: Whether to return the figure. + layer: Layer to use for plotting. n_cols: Number of columns in the plot. panel_size: Size of each panel. show_legend: Whether to show the legend. @@ -532,18 +532,57 @@ def plot_paired( adjust_fdr: Whether to correct p-values for false discovery rate. boxplot_properties: Additional properties for the boxplot, passed to seaborn.boxplot. palette: Color palette for the line- and stripplot. + {common_plot_args} + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + Examples: + >>> # Example with EdgeR + >>> import pertpy as pt + >>> adata = pt.dt.zhang_2021() + >>> adata.layers["counts"] = adata.X.copy() + >>> ps = pt.tl.PseudobulkSpace() + >>> pdata = ps.compute( + ... adata, + ... target_col="Patient", + ... groups_col="Cluster", + ... layer_key="counts", + ... mode="sum", + ... min_cells=10, + ... min_counts=1000, + ... ) + >>> edgr = pt.tl.EdgeR(pdata, design="~Efficacy+Treatment") + >>> edgr.fit() + >>> res_df = edgr.test_contrasts( + ... edgr.contrast(column="Treatment", baseline="Chemo", group_to_compare="Anti-PD-L1+Chemo") + ... ) + >>> edgr.plot_paired(pdata, var_names=res_df["variable"][:8], groupby="Treatment", pairedby="Major celltype") - + Preview: + .. image:: /_static/docstring_previews/paired_expression.png """ if boxplot_properties is None: boxplot_properties = {} groups = adata.obs[groupby].unique() if len(groups) != 2: - raise ValueError("The number of groups in the group_by column must be exactely 2") + raise ValueError("The number of groups in the group_by column must be exactly 2 to enable paired testing") + if pairedby is not None and hue is not None and (adata.obs.groupby(pairedby)[hue].nunique().max() > 1): + raise ValueError("Each paired sample must have an unambiguous hue") + + adata = adata[:, var_names] + + if pairedby is not None and any(adata.obs[[groupby, pairedby]].value_counts() > 1): + logger.info("Performing pseudobulk for paired samples") + ps = PseudobulkSpace() + adata = ps.compute( + adata, target_col=groupby, groups_col=pairedby, layer_key=layer, mode="sum", min_cells=1, min_counts=1 + ) - X = adata[:, var_names].X + if layer is not None: + X = adata.layers[layer] + else: + X = adata.X try: X = X.toarray() except AttributeError: @@ -559,12 +598,15 @@ def plot_paired( if pairedby is not None: # remove unpaired samples - df[pairedby] = df[pairedby].astype(str) - df.set_index(pairedby, inplace=True) - has_matching_samples = df.groupby(pairedby).apply(lambda x: sorted(x[groupby]) == sorted(groups)) - has_matching_samples = has_matching_samples.index[has_matching_samples].values - removed_samples = adata.obs[pairedby].nunique() - len(has_matching_samples) - if removed_samples: + paired_samples = set(df[df[groupby] == groups[0]][pairedby]) & set(df[df[groupby] == groups[1]][pairedby]) + df = df[df[pairedby].isin(paired_samples)] + + # df[pairedby] = df[pairedby].astype(str) TODO: Tidy up! + # df.set_index(pairedby, inplace=True) + # has_matching_samples = df.groupby(pairedby).apply(lambda x: sorted(x[groupby]) == sorted(groups)) + # has_matching_samples = has_matching_samples.index[has_matching_samples].values + removed_samples = adata.obs[pairedby].nunique() - len(df[pairedby].unique()) + if removed_samples > 0: logger.warning(f"{removed_samples} unpaired samples removed") # perform statistics (paired ttest) @@ -573,14 +615,14 @@ def plot_paired( df.loc[ df[groupby] == groups[0], var_names, - ].loc[has_matching_samples, :], + ], # .loc[has_matching_samples, :] df.loc[ df[groupby] == groups[1], var_names, - ].loc[has_matching_samples], + ], # .loc[has_matching_samples] ) - df = df.loc[has_matching_samples, :] + # df = df.loc[has_matching_samples, :] df.reset_index(drop=False, inplace=True) else: @@ -643,12 +685,14 @@ def plot_paired( errorbar=None, palette=palette, ) + jitter = 0 if pairedby else True sns.stripplot( x=groupby, data=df_melt.loc[df_melt["var"] == var], y="val", ax=ax, hue=hue, + jitter=jitter, size=size, linewidth=1, palette=palette, @@ -657,7 +701,6 @@ def plot_paired( ax.set_xlabel("") ax.tick_params( axis="x", - # rotation=0, labelsize=15, ) ax.legend().set_visible(False) @@ -671,10 +714,188 @@ def plot_paired( axes[n_panels - 1].legend().set_visible(True) axes[n_panels - 1].legend(bbox_to_anchor=(1.1, 1.05)) - plt.show() + return savefig_or_show("paired_expression", show=show, save=save, return_fig=return_fig) + + @_doc_params(common_plot_args=doc_common_plot_args) + def plot_fold_change( + self, + results_df: pd.DataFrame, + *, + pairedby: str = None, # TODO: Discuss how to include + var_names: Sequence[str] = None, + n_top_vars=15, + y_label: str = "Log2 fold change", + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + **barplot_kwargs, + ) -> Figure | None: + """Plot a metric from the results as a bar chart, optionally with additional information about paired samples in a scatter plot. + + Args: + results_df: DataFrame with results from DE analysis. + pairedby: Column in results_df containing information about paired samples. + var_names: Variables to plot. If None, the top n_top_vars variables based on the log2 fold change are plotted. + n_top_vars: Number of top variables to plot. The top and bottom n_top_vars variables are plotted, respectively. + y_label: Label for the y-axis. + {common_plot_args} + **barplot_kwargs: Additional arguments for seaborn.barplot. + + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + + Examples: + >>> # Example with EdgeR + >>> import pertpy as pt + >>> adata = pt.dt.zhang_2021() + >>> adata.layers["counts"] = adata.X.copy() + >>> ps = pt.tl.PseudobulkSpace() + >>> pdata = ps.compute( + ... adata, + ... target_col="Patient", + ... groups_col="Cluster", + ... layer_key="counts", + ... mode="sum", + ... min_cells=10, + ... min_counts=1000, + ... ) + >>> edgr = pt.tl.EdgeR(pdata, design="~Efficacy+Treatment") + >>> edgr.fit() + >>> res_df = edgr.test_contrasts( + ... edgr.contrast(column="Treatment", baseline="Chemo", group_to_compare="Anti-PD-L1+Chemo") + ... ) + >>> edgr.plot_fold_change(res_df) + + Preview: + .. image:: /_static/docstring_previews/TODO.png + """ + if var_names is None: + var_names = results_df.sort_values("log_fc", ascending=False).head(n_top_vars)["variable"].tolist() + var_names += results_df.sort_values("log_fc", ascending=True).head(n_top_vars)["variable"].tolist() + assert len(var_names) == 2 * n_top_vars + + df = results_df[results_df["variable"].isin(var_names)] + df.sort_values("log_fc", ascending=False, inplace=True) + + max_fc = max(df["log_fc"]) + min_fc = min(df["log_fc"]) + + def value_to_color(val): + if val > 0: + return plt.cm.Reds(val / max_fc) + elif val < 0: + return plt.cm.Blues(val / min_fc) + else: + return "grey" + + df["color"] = df["log_fc"].apply(value_to_color) + + sns.barplot( + x="variable", + y="log_fc", + data=df, + hue="variable", + palette=df["color"].tolist(), + legend=False, + **barplot_kwargs, + ) + plt.xticks(rotation=90) + plt.xlabel("") + plt.ylabel(y_label) + + return savefig_or_show("paired_fc", show=show, save=save, return_fig=return_fig) + + @_doc_params(common_plot_args=doc_common_plot_args) + def plot_multicomparison_fc( + self, + results_df: pd.DataFrame, + *, + n_top_vars=15, + contrast_col: str = "contrast", + log2fc_col: str = "log_fc", + pvalue_col: str = "adj_p_value", + symbol_col: str = "variable", + marker_size: int = 100, + figsize: tuple[int, int] = (10, 2), + x_label: str = "Contrast", + y_label: str = "Gene", + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + **heatmap_kwargs, + ) -> Figure | None: + """Plot a matrix of log2 fold changes from the results. + + Args: + results_df: DataFrame with results from DE analysis. + n_top_vars: Number of top variables to plot per group. + contrast_col: Column in results_df containing information about the contrast. + log2fc_col: Column in results_df containing the log2 fold change. + pvalue_col: Column in results_df containing the p-value. Can be used to switch between adjusted and unadjusted p-values. + symbol_col: Column in results_df containing the gene symbol. + marker_size: Size of the biggest marker for significant variables. + figsize: Size of the figure. + x_label: Label for the x-axis. + y_label: Label for the y-axis. + {common_plot_args} + **heatmap_kwargs: Additional arguments for seaborn.heatmap. + + #TODO + """ + groups = results_df[contrast_col].unique().tolist() + + results_df["abs_log_fc"] = results_df[log2fc_col].abs() + + def _get_significance(p_val): + if p_val < 0.001: + return "< 0.001" + elif p_val < 0.01: + return "< 0.01" + elif p_val < 0.1: + return "< 0.1" + else: + return "n.s." + + results_df["significance"] = results_df[pvalue_col].apply(_get_significance) + + var_names = [] + for group in groups: + var_names += ( + results_df[results_df[contrast_col] == group] + .sort_values("abs_log_fc", ascending=False) + .head(n_top_vars)[symbol_col] + .tolist() + ) + + results_df = results_df[results_df[symbol_col].isin(var_names)] + df = results_df.pivot(index=contrast_col, columns=symbol_col, values=log2fc_col)[var_names] + + plt.figure(figsize=figsize) + sns.heatmap(df, **heatmap_kwargs, cmap="coolwarm", center=0, cbar_kws={"label": "Log2 fold change"}) + + _size = {"< 0.001": marker_size, "< 0.01": math.floor(marker_size / 2), "< 0.1": math.floor(marker_size / 4)} + x_locs, x_labels = plt.xticks()[0], [label.get_text() for label in plt.xticks()[1]] + y_locs, y_labels = plt.yticks()[0], [label.get_text() for label in plt.yticks()[1]] + + for _i, row in results_df.iterrows(): + if row["significance"] != "n.s.": + plt.scatter( + x=x_locs[x_labels.index(row[symbol_col])], + y=y_locs[y_labels.index(row[contrast_col])], + s=_size[row["significance"]], + marker="*", + c="white", + ) + + plt.scatter([], [], s=marker_size, marker="*", c="white", label="< 0.001") + plt.scatter([], [], s=math.floor(marker_size / 2), marker="*", c="white", label="< 0.01") + plt.scatter([], [], s=math.floor(marker_size / 4), marker="*", c="white", label="< 0.1") + plt.legend(title="Significance", bbox_to_anchor=(1.2, -0.05)) + + plt.xlabel(x_label) + plt.ylabel(y_label) - if return_fig: - return fig + return savefig_or_show("multicomparison_fc", show=show, save=save, return_fig=return_fig) class LinearModelBase(MethodBase): diff --git a/pertpy/tools/_enrichment.py b/pertpy/tools/_enrichment.py index c5a8fee4..2a8b8868 100644 --- a/pertpy/tools/_enrichment.py +++ b/pertpy/tools/_enrichment.py @@ -3,6 +3,7 @@ from typing import Any, Literal import blitzgsea +import matplotlib.pyplot as plt import numpy as np import pandas as pd import scanpy as sc @@ -14,8 +15,8 @@ from scipy.stats import hypergeom from statsmodels.stats.multitest import multipletests -from pertpy.metadata import Drug from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy.metadata import Drug def _prepare_targets( @@ -306,7 +307,7 @@ def plot_dotplot( save: str | bool = False, return_fig: bool = False, **kwargs, - ) -> DotPlot | dict | None: + ) -> DotPlot | None: """Plots a dotplot by groupby and categories. Wraps scanpy's dotplot but formats it nicely by categories. @@ -326,8 +327,7 @@ def plot_dotplot( kwargs: Passed to scanpy dotplot. Returns: - If `return_fig` is `True`, returns a :class:`~scanpy.pl.DotPlot` object, - else if `show` is false, return axes dict. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -422,6 +422,7 @@ def plot_dotplot( plt.show() if return_fig: return fig + return None def plot_gsea( self, diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 246ca60c..95a71edf 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -12,6 +12,7 @@ from anndata import AnnData from lamin_utils import logger from mudata import MuData + from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show if TYPE_CHECKING: diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index c6f690ed..35560700 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -26,6 +26,7 @@ from anndata import AnnData from matplotlib.axes import Axes from matplotlib.colors import Colormap + from matplotlib.pyplot import Figure from scipy import sparse @@ -606,6 +607,7 @@ def plot_barplot( # pragma: no cover plt.tight_layout() return savefig_or_show("mixscape_barplot", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_heatmap( # pragma: no cover self, adata: AnnData, @@ -617,9 +619,9 @@ def plot_heatmap( # pragma: no cover subsample_number: int | None = 900, vmin: float | None = -2, vmax: float | None = 2, - return_fig: bool | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwds, ) -> Axes | None: """Heatmap plot using mixscape results. Requires `pt.tl.mixscape()` to be run first. @@ -641,7 +643,7 @@ def plot_heatmap( # pragma: no cover **kwds: Additional arguments to `scanpy.pl.rank_genes_groups_heatmap`. Returns: - If `show==False`, return a :class:`~matplotlib.axes.Axes`. + If `return_fig` is `True`, return a :class:`~matplotlib.axes.Axes`. Examples: >>> import pertpy as pt @@ -679,7 +681,7 @@ def plot_heatmap( # pragma: no cover plt.show() if return_fig: return fig - + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_perturbscore( # pragma: no cover @@ -1047,6 +1049,7 @@ def plot_violin( # pragma: no cover return axs[0] else: return axs + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_lda( # pragma: no cover diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index 63f4a084..15fc5a60 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -1,13 +1,18 @@ from __future__ import annotations +from typing import TYPE_CHECKING + import decoupler as dc import numpy as np from anndata import AnnData from sklearn.cluster import DBSCAN, KMeans +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show from pertpy.tools._perturbation_space._clustering import ClusteringSpace from pertpy.tools._perturbation_space._perturbation_space import PerturbationSpace -from pertpy._utils import savefig_or_show + +if TYPE_CHECKING: + from matplotlib.pyplot import Figure class CentroidSpace(PerturbationSpace): @@ -169,37 +174,47 @@ def compute( return ps_adata - def plot_psbulk_samples(self, - adata: AnnData, - groupby:str, - show: bool = True, - save: bool | str | None = None, - **kwargs - ) -> Axes | Figure | None: + @_doc_params(common_plot_args=doc_common_plot_args) + def plot_psbulk_samples( + self, + adata: AnnData, + groupby: str, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + **kwargs, + ) -> Figure | None: """Plot the pseudobulk samples of an AnnData object. It uses Decoupler implementation. + Plot the count number vs. the number of cells per pseudobulk sample. + Args: adata: Anndata containing pseudobulk samples. groupby: .obs column to color the samples by. - show: If True, the plot is shown and the figure/axis is not returned. Set to False to return the figure. Defaults to True. - save: + {common_plot_args} **kwargs: Are passed to decoupler's plot_psbulk_samples. Returns: - None + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt - >>> mdata = pt.dt.papalexi_2021() + >>> adata = pt.dt.zhang_2021() >>> ps = pt.tl.PseudobulkSpace() - #TODO - >>> ps.plot_psbulk_samples(mdata["rna"], target_col="gene_target") + >>> pdata = ps.compute( + ... adata, target_col="Patient", groups_col="Cluster", mode="sum", min_cells=10, min_counts=1000 + ... ) + >>> ps.plot_psbulk_samples(pdata, groupby=["Patient", "Major celltype"], figsize=(12, 4)) Preview: - + .. image:: /_static/docstring_previews/pseudobulk_samples.png """ - dc.plot_psbulk_samples(adata, groupby, **kwargs) - savefig_or_show("pseudobulk_samples", show, save) + fig = dc.plot_psbulk_samples(adata, groupby, return_fig=True, **kwargs) + savefig_or_show("pseudobulk_samples", show=show, save=save, return_fig=False) + + if return_fig: + return fig + return None class KMeansSpace(ClusteringSpace): From 914b95c5efe43a1de2e84421d781d80f5c0eaa6f Mon Sep 17 00:00:00 2001 From: Lilly Date: Wed, 4 Sep 2024 21:37:01 +0200 Subject: [PATCH 04/19] Added plot previews --- .../docstring_previews/fold_change.png | Bin 0 -> 30762 bytes .../docstring_previews/multicompaison_fc.png | Bin 0 -> 38562 bytes .../_differential_gene_expression/_base.py | 32 ++++++++++++++++-- pertpy/tools/_mixscape.py | 5 +-- 4 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 docs/_static/docstring_previews/fold_change.png create mode 100644 docs/_static/docstring_previews/multicompaison_fc.png diff --git a/docs/_static/docstring_previews/fold_change.png b/docs/_static/docstring_previews/fold_change.png new file mode 100644 index 0000000000000000000000000000000000000000..4c7b88ed62946c8be42d614231f176ce53b1a298 GIT binary patch literal 30762 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

GyGAX@@Z=MCs|HXS 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 R;iliGs-&ryvg@$N{{g{SL@WRR literal 0 HcmV?d00001 diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 901a341f..93224647 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -723,8 +723,9 @@ def plot_fold_change( *, pairedby: str = None, # TODO: Discuss how to include var_names: Sequence[str] = None, - n_top_vars=15, + n_top_vars: int = 15, y_label: str = "Log2 fold change", + figsize: tuple[int, int] = (10, 5), show: bool = True, save: str | bool = False, return_fig: bool = False, @@ -738,6 +739,7 @@ def plot_fold_change( var_names: Variables to plot. If None, the top n_top_vars variables based on the log2 fold change are plotted. n_top_vars: Number of top variables to plot. The top and bottom n_top_vars variables are plotted, respectively. y_label: Label for the y-axis. + figsize: Size of the figure. {common_plot_args} **barplot_kwargs: Additional arguments for seaborn.barplot. @@ -767,7 +769,7 @@ def plot_fold_change( >>> edgr.plot_fold_change(res_df) Preview: - .. image:: /_static/docstring_previews/TODO.png + .. image:: /_static/docstring_previews/fold_change.png """ if var_names is None: var_names = results_df.sort_values("log_fc", ascending=False).head(n_top_vars)["variable"].tolist() @@ -790,6 +792,7 @@ def value_to_color(val): df["color"] = df["log_fc"].apply(value_to_color) + plt.figure(figsize=figsize) sns.barplot( x="variable", y="log_fc", @@ -840,7 +843,30 @@ def plot_multicomparison_fc( {common_plot_args} **heatmap_kwargs: Additional arguments for seaborn.heatmap. - #TODO + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + + Examples: + >>> # Example with EdgeR + >>> import pertpy as pt + >>> adata = pt.dt.zhang_2021() + >>> adata.layers["counts"] = adata.X.copy() + >>> ps = pt.tl.PseudobulkSpace() + >>> pdata = ps.compute( + ... adata, + ... target_col="Patient", + ... groups_col="Cluster", + ... layer_key="counts", + ... mode="sum", + ... min_cells=10, + ... min_counts=1000, + ... ) + >>> edgr = pt.tl.EdgeR(pdata, design="~Efficacy+Treatment") + >>> res_df = edgr.compare_groups(pdata, column="Efficacy", baseline="SD", groups_to_compare=["PR", "PD"]) + >>> edgr.plot_multicomparison_fc(res_df) + + Preview: + .. image:: /_static/docstring_previews/multicomparison_fc.png """ groups = results_df[contrast_col].unique().tolist() diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index 35560700..fa48bbdf 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -636,10 +636,7 @@ def plot_heatmap( # pragma: no cover subsample_number: Subsample to this number of observations. vmin: The value representing the lower limit of the color scale. Values smaller than vmin are plotted with the same color as vmin. vmax: The value representing the upper limit of the color scale. Values larger than vmax are plotted with the same color as vmax. - show: Show the plot, do not return axis. - save: If `True` or a `str`, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {`'.pdf'`, `'.png'`, `'.svg'`}. - ax: A matplotlib axes object. Only works if plotting a single component. + {common_plot_args} **kwds: Additional arguments to `scanpy.pl.rank_genes_groups_heatmap`. Returns: From dda5a3542c29cf40cc351f16c945311762d0c5c8 Mon Sep 17 00:00:00 2001 From: Lilly Date: Wed, 4 Sep 2024 22:18:43 +0200 Subject: [PATCH 05/19] Unify plotting API --- .../{fold_change.png => de_fold_change.png} | Bin ...aison_fc.png => de_multicomparison_fc.png} | Bin ...xpression.png => de_paired_expression.png} | Bin .../_static/docstring_previews/de_volcano.png | Bin 0 -> 74889 bytes pertpy/metadata/_cell_line.py | 14 +++- pertpy/tools/_cinemaot.py | 17 +++-- .../_differential_gene_expression/_base.py | 34 +++++++-- pertpy/tools/_milo.py | 67 ++++++++---------- pertpy/tools/_mixscape.py | 5 +- 9 files changed, 85 insertions(+), 52 deletions(-) rename docs/_static/docstring_previews/{fold_change.png => de_fold_change.png} (100%) rename docs/_static/docstring_previews/{multicompaison_fc.png => de_multicomparison_fc.png} (100%) rename docs/_static/docstring_previews/{paired_expression.png => de_paired_expression.png} (100%) create mode 100644 docs/_static/docstring_previews/de_volcano.png diff --git a/docs/_static/docstring_previews/fold_change.png b/docs/_static/docstring_previews/de_fold_change.png similarity index 100% rename from docs/_static/docstring_previews/fold_change.png rename to docs/_static/docstring_previews/de_fold_change.png diff --git a/docs/_static/docstring_previews/multicompaison_fc.png b/docs/_static/docstring_previews/de_multicomparison_fc.png similarity index 100% rename from docs/_static/docstring_previews/multicompaison_fc.png rename to docs/_static/docstring_previews/de_multicomparison_fc.png diff --git a/docs/_static/docstring_previews/paired_expression.png b/docs/_static/docstring_previews/de_paired_expression.png similarity index 100% rename from docs/_static/docstring_previews/paired_expression.png rename to docs/_static/docstring_previews/de_paired_expression.png diff --git a/docs/_static/docstring_previews/de_volcano.png b/docs/_static/docstring_previews/de_volcano.png new file mode 100644 index 0000000000000000000000000000000000000000..7832454086114963bc8dc4803fea03539f79bb0b GIT binary patch literal 74889 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 aNB$^Lvrcb&<9SfvA4S=xGR0CR0sjx<1tQY` literal 0 HcmV?d00001 diff --git a/pertpy/metadata/_cell_line.py b/pertpy/metadata/_cell_line.py index b0e79864..16ea773d 100644 --- a/pertpy/metadata/_cell_line.py +++ b/pertpy/metadata/_cell_line.py @@ -8,12 +8,15 @@ if TYPE_CHECKING: from collections.abc import Iterable + from matplotlib.pyplot import Figure + import matplotlib.pyplot as plt import numpy as np import pandas as pd from scanpy import settings from scipy import stats +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show from pertpy.data._dataloader import _download from ._look_up import LookUp @@ -690,6 +693,7 @@ def correlate( return corr, pvals, new_corr, new_pvals + @_doc_params(common_plot_args=doc_common_plot_args) def plot_correlation( self, adata: AnnData, @@ -700,7 +704,10 @@ def plot_correlation( metadata_key: str = "bulk_rna_broad", category: str = "cell line", subset_identifier: str | int | Iterable[str] | Iterable[int] | None = None, - ) -> None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Visualise the correlation of cell lines with annotated metadata. Args: @@ -713,6 +720,8 @@ def plot_correlation( subset_identifier: Selected identifiers for scatter plot visualization between the X matrix and `metadata_key`. If not None, only the chosen cell line will be plotted, either specified as a value in `identifier` (string) or as an index number. If None, all cell lines will be plotted. + {common_plot_args} + Returns: Pearson correlation coefficients and their corresponding p-values for matched and unmatched cell lines separately. """ @@ -790,6 +799,7 @@ def plot_correlation( "edgecolor": "black", }, ) - plt.show() + + return savefig_or_show("cell_line_correlation", show=show, save=save, return_fig=return_fig) else: raise NotImplementedError diff --git a/pertpy/tools/_cinemaot.py b/pertpy/tools/_cinemaot.py index a4a77273..6c83def0 100644 --- a/pertpy/tools/_cinemaot.py +++ b/pertpy/tools/_cinemaot.py @@ -18,9 +18,12 @@ from sklearn.linear_model import LinearRegression from sklearn.neighbors import NearestNeighbors +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show + if TYPE_CHECKING: from anndata import AnnData from matplotlib.axes import Axes + from matplotlib.pyplot import Figure from statsmodels.tools.typing import ArrayLike @@ -639,6 +642,7 @@ def attribution_scatter( s_effect = (np.linalg.norm(e1, axis=0) + 1e-6) / (np.linalg.norm(e0, axis=0) + 1e-6) return c_effect, s_effect + @_doc_params(common_plot_args=doc_common_plot_args) def plot_vis_matching( self, adata: AnnData, @@ -652,11 +656,12 @@ def plot_vis_matching( normalize: str = "col", title: str = "CINEMA-OT matching matrix", min_val: float = 0.01, - show: bool = True, - save: str | None = None, ax: Axes | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, - ) -> None: + ) -> Figure | None: """Visualize the CINEMA-OT matching matrix. Args: @@ -710,12 +715,14 @@ def plot_vis_matching( g = sns.heatmap(df, annot=True, ax=ax, **kwargs) plt.title(title) - _utils.savefig_or_show("matching_heatmap", show=show, save=save) - if not show: + + savefig_or_show("matching_heatmap", show=show, save=save, return_fig=False) + if return_fig: if ax is not None: return ax else: return g + return None class Xi: diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 93224647..733e12b1 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -99,6 +99,24 @@ def compare_groups( Returns: Pandas dataframe with results ordered by significance. If multiple comparisons were performed this is indicated in an additional column. + + Examples: + >>> # Example with EdgeR + >>> import pertpy as pt + >>> adata = pt.dt.zhang_2021() + >>> adata.layers["counts"] = adata.X.copy() + >>> ps = pt.tl.PseudobulkSpace() + >>> pdata = ps.compute( + ... adata, + ... target_col="Patient", + ... groups_col="Cluster", + ... layer_key="counts", + ... mode="sum", + ... min_cells=10, + ... min_counts=1000, + ... ) + >>> edgr = pt.tl.EdgeR(pdata, design="~Efficacy+Treatment") + >>> res_df = edgr.compare_groups(pdata, column="Efficacy", baseline="SD", groups_to_compare=["PR", "PD"]) """ ... @@ -185,6 +203,9 @@ def plot_volcano( ... edgr.contrast(column="Treatment", baseline="Chemo", group_to_compare="Anti-PD-L1+Chemo") ... ) >>> edgr.plot_volcano(res_df, log2fc_thresh=0) + + Preview: + .. image:: /_static/docstring_previews/de_volcano.png """ if colors is None: colors = ["gray", "#D62728", "#1F77B4"] @@ -560,7 +581,7 @@ def plot_paired( >>> edgr.plot_paired(pdata, var_names=res_df["variable"][:8], groupby="Treatment", pairedby="Major celltype") Preview: - .. image:: /_static/docstring_previews/paired_expression.png + .. image:: /_static/docstring_previews/de_paired_expression.png """ if boxplot_properties is None: boxplot_properties = {} @@ -769,7 +790,7 @@ def plot_fold_change( >>> edgr.plot_fold_change(res_df) Preview: - .. image:: /_static/docstring_previews/fold_change.png + .. image:: /_static/docstring_previews/de_fold_change.png """ if var_names is None: var_names = results_df.sort_values("log_fc", ascending=False).head(n_top_vars)["variable"].tolist() @@ -866,7 +887,7 @@ def plot_multicomparison_fc( >>> edgr.plot_multicomparison_fc(res_df) Preview: - .. image:: /_static/docstring_previews/multicomparison_fc.png + .. image:: /_static/docstring_previews/de_multicomparison_fc.png """ groups = results_df[contrast_col].unique().tolist() @@ -1042,9 +1063,10 @@ def test_reduced(self, modelB): modelB: the reduced model against which to test. Example: - modelA = Model().fit() - modelB = Model().fit() - modelA.test_reduced(modelB) + >>> import pertpy as pt + >>> modelA = Model().fit() + >>> modelB = Model().fit() + >>> modelA.test_reduced(modelB) """ raise NotImplementedError diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 95a71edf..10bc6275 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -809,6 +809,7 @@ def plot_nhood_graph( if return_fig: return fig + @_doc_params(common_plot_args=doc_common_plot_args) def plot_nhood( self, mdata: MuData, @@ -817,20 +818,23 @@ def plot_nhood( basis: str = "X_umap", color_map: Colormap | str | None = None, palette: str | Sequence[str] | None = None, - return_fig: bool | None = None, ax: Axes | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, - ) -> None: + ) -> Figure | None: """Visualize cells in a neighbourhood. Args: mdata: MuData object with feature_key slot, storing neighbourhood assignments in `mdata[feature_key].obsm['nhoods']` ix: index of neighbourhood to visualize + feature_key: Key in mdata to the cell-level AnnData object. basis: Embedding to use for visualization. - show: Show the plot, do not return axis. - save: If True or a str, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf', '.png', '.svg'}. + color_map: Colormap to use for coloring. + palette: Color palette to use for coloring. + ax: Axes to plot on. + {common_plot_args} **kwargs: Additional arguments to `scanpy.pl.embedding`. Examples: @@ -848,7 +852,7 @@ def plot_nhood( .. image:: /_static/docstring_previews/milo_nhood.png """ mdata[feature_key].obs["Nhood"] = mdata[feature_key].obsm["nhoods"][:, ix].toarray().ravel() - sc.pl.embedding( + fig = sc.pl.embedding( mdata[feature_key], basis, color="Nhood", @@ -858,11 +862,16 @@ def plot_nhood( palette=palette, return_fig=return_fig, ax=ax, - show=show, + show=False, save=save, **kwargs, ) + if show: + plt.show() + return fig if return_fig else None + + @_doc_params(common_plot_args=doc_common_plot_args) def plot_da_beeswarm( self, mdata: MuData, @@ -871,19 +880,21 @@ def plot_da_beeswarm( alpha: float = 0.1, subset_nhoods: list[str] = None, palette: str | Sequence[str] | dict[str, str] | None = None, - return_fig: bool | None = None, - save: bool | str | None = None, - show: bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Figure | Axes | None: """Plot beeswarm plot of logFC against nhood labels Args: mdata: MuData object + feature_key: Key in mdata to the cell-level AnnData object. anno_col: Column in adata.uns['nhood_adata'].obs to use as annotation. (default: 'nhood_annotation'.) alpha: Significance threshold. (default: 0.1) subset_nhoods: List of nhoods to plot. If None, plot all nhoods. palette: Name of Seaborn color palette for violinplots. Defaults to pre-defined category colors for violinplots. + {common_plot_args} Examples: >>> import pertpy as pt @@ -979,28 +990,18 @@ def plot_da_beeswarm( plt.legend(loc="upper left", title=f"< {int(alpha * 100)}% SpatialFDR", bbox_to_anchor=(1, 1), frameon=False) plt.axvline(x=0, ymin=0, ymax=1, color="black", linestyle="--") - if save: - plt.savefig(save, bbox_inches="tight") - return None - if show: - plt.show() - return None - if return_fig: - return plt.gcf() - if (not show and not save) or (show is None and save is None): - return plt.gca() - - return None + return savefig_or_show("da_beeswarm", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_nhood_counts_by_cond( self, mdata: MuData, test_var: str, subset_nhoods: list[str] = None, log_counts: bool = False, - return_fig: bool | None = None, - save: bool | str | None = None, - show: bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Figure | Axes | None: """Plot boxplot of cell numbers vs condition of interest. @@ -1009,6 +1010,7 @@ def plot_nhood_counts_by_cond( test_var: Name of column in adata.obs storing condition of interest (y-axis for boxplot) subset_nhoods: List of obs_names for neighbourhoods to include in plot. If None, plot all nhoods. log_counts: Whether to plot log1p of cell counts. + {common_plot_args} """ try: nhood_adata = mdata["milo"].T.copy() @@ -1037,15 +1039,4 @@ def plot_nhood_counts_by_cond( plt.xticks(rotation=90) plt.xlabel(test_var) - if save: - plt.savefig(save, bbox_inches="tight") - return None - if show: - plt.show() - return None - if return_fig: - return plt.gcf() - if not (show or save): - return plt.gca() - - return None + return savefig_or_show("nhood_counts_by_cond", show=show, save=save, return_fig=return_fig) diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index fa48bbdf..8c3b5c0c 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -534,7 +534,7 @@ def plot_barplot( # pragma: no cover {common_plot_args} Returns: - If `return_fig==True`, return a :class:`~matplotlib.axes.Axes. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -716,6 +716,9 @@ def plot_perturbscore( # pragma: no cover perturbation_type: Specify type of CRISPR perturbation expected for labeling mixscape classifications. {common_plot_args} + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + Examples: Visualizing the perturbation scores for the cells in a dataset: From 8616d78bca491cb749da18ac2480693f411be1d6 Mon Sep 17 00:00:00 2001 From: Lilly Date: Thu, 5 Sep 2024 21:35:44 +0200 Subject: [PATCH 06/19] Updated all plots to new API --- pertpy/tools/_augur.py | 70 +++++--------- pertpy/tools/_coda/_base_coda.py | 161 +++++++++++++------------------ pertpy/tools/_dialogue.py | 47 ++++----- pertpy/tools/_scgen/_scgen.py | 80 ++++++++------- 4 files changed, 158 insertions(+), 200 deletions(-) diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index 889405a7..b42c71bc 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -975,24 +975,26 @@ def predict_differential_prioritization( return delta + @_doc_params(common_plot_args=doc_common_plot_args) def plot_dp_scatter( self, results: pd.DataFrame, top_n: int = None, - return_fig: bool | None = None, ax: Axes = None, - show: bool | None = None, - save: str | bool | None = None, - ) -> Axes | Figure | None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Plot scatterplot of differential prioritization. Args: results: Results after running differential prioritization. top_n: optionally, the number of top prioritized cell types to label in the plot ax: optionally, axes used to draw plot + {common_plot_args} Returns: - Axes of the plot. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1039,37 +1041,30 @@ def plot_dp_scatter( legend1 = ax.legend(*scatter.legend_elements(), loc="center left", title="z-scores", bbox_to_anchor=(1, 0.5)) ax.add_artist(legend1) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("augur_dp_scatter", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_important_features( self, data: dict[str, Any], key: str = "augurpy_results", top_n: int = 10, - return_fig: bool | None = None, ax: Axes = None, - show: bool | None = None, - save: str | bool | None = None, - ) -> Axes | None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Plot a lollipop plot of the n features with largest feature importances. Args: - results: results after running `predict()` as dictionary or the AnnData object. + data: results after running `predict()` as dictionary or the AnnData object. key: Key in the AnnData object of the results top_n: n number feature importance values to plot. Default is 10. ax: optionally, axes used to draw plot - return_figure: if `True` returns figure of the plot, default is `False` + {common_plot_args} Returns: - Axes of the plot. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1110,15 +1105,7 @@ def plot_important_features( plt.ylabel("Gene") plt.yticks(y_axes_range, n_features["genes"]) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("augur_important_features", show=show, save=save, return_fig=return_fig) @_doc_params(common_plot_args=doc_common_plot_args) def plot_lollipop( @@ -1139,7 +1126,7 @@ def plot_lollipop( {common_plot_args} Returns: - Axes of the plot, if `return_fig` is `True`, otherwise `None`. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1179,22 +1166,23 @@ def plot_lollipop( return savefig_or_show("augur_lollipop", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_scatterplot( self, results1: dict[str, Any], results2: dict[str, Any], top_n: int = None, - return_fig: bool | None = None, - show: bool | None = None, - save: str | bool | None = None, - ) -> Axes | Figure | None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> Figure | None: """Create scatterplot with two augur results. Args: results1: results after running `predict()` results2: results after running `predict()` top_n: optionally, the number of top prioritized cell types to label in the plot - return_figure: if `True` returns figure of the plot + {common_plot_args} Returns: Axes of the plot. @@ -1243,12 +1231,4 @@ def plot_scatterplot( plt.xlabel("Augur scores 1") plt.ylabel("Augur scores 2") - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("augur_scatterplot", show=show, save=save, return_fig=return_fig) diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index c2cc4cba..6266ba1c 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -26,6 +26,8 @@ from rich.table import Table from scipy.cluster import hierarchy as sp_hierarchy +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show + if TYPE_CHECKING: from collections.abc import Sequence @@ -1185,6 +1187,7 @@ def _stackbar( # pragma: no cover return ax + @_doc_params(common_plot_args=doc_common_plot_args) def plot_stacked_barplot( # pragma: no cover self, data: AnnData | MuData, @@ -1195,12 +1198,10 @@ def plot_stacked_barplot( # pragma: no cover level_order: list[str] = None, figsize: tuple[float, float] | None = None, dpi: int | None = 100, - return_fig: bool | None = None, - ax: plt.Axes | None = None, - show: bool | None = None, - save: str | bool | None = None, - **kwargs, - ) -> plt.Axes | plt.Figure | None: + show: bool = True, + save: str | bool = False, + return_fig: bool = False, + ) -> plt.Axes | Figure | None: """Plots a stacked barplot for all levels of a covariate or all samples (if feature_name=="samples"). Args: @@ -1212,9 +1213,10 @@ def plot_stacked_barplot( # pragma: no cover palette: The matplotlib color map for the barplot. show_legend: If True, adds a legend. level_order: Custom ordering of bars on the x-axis. + {common_plot_args} Returns: - A :class:`~matplotlib.axes.Axes` object + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1239,7 +1241,7 @@ def plot_stacked_barplot( # pragma: no cover if level_order: assert set(level_order) == set(data.obs.index), "level order is inconsistent with levels" data = data[level_order] - ax = self._stackbar( + self._stackbar( data.X, type_names=data.var.index, title="samples", @@ -1265,7 +1267,7 @@ def plot_stacked_barplot( # pragma: no cover l_indices = np.where(data.obs[feature_name] == levels[level]) feature_totals[level] = np.sum(data.X[l_indices], axis=0) - ax = self._stackbar( + self._stackbar( feature_totals, type_names=ct_names, title=feature_name, @@ -1276,16 +1278,9 @@ def plot_stacked_barplot( # pragma: no cover show_legend=show_legend, ) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("coda_stacked_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_effects_barplot( # pragma: no cover self, data: AnnData | MuData, @@ -1300,10 +1295,9 @@ def plot_effects_barplot( # pragma: no cover args_barplot: dict | None = None, figsize: tuple[float, float] | None = None, dpi: int | None = 100, - return_fig: bool | None = None, - ax: plt.Axes | None = None, - show: bool | None = None, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: """Barplot visualization for effects. @@ -1323,6 +1317,7 @@ def plot_effects_barplot( # pragma: no cover palette: The seaborn color map for the barplot. level_order: Custom ordering of bars on the x-axis. args_barplot: Arguments passed to sns.barplot. + {common_plot_args} Returns: Depending on `plot_facets`, returns a :class:`~matplotlib.axes.Axes` (`plot_facets = False`) @@ -1437,15 +1432,7 @@ def plot_effects_barplot( # pragma: no cover if ax.get_xticklabels()[0]._text == "zero": ax.set_xticks([]) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return g - return None + return savefig_or_show("coda_effects_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) # If not plot as facets, call barplot to plot cell types on the x-axis. else: @@ -1478,16 +1465,9 @@ def plot_effects_barplot( # pragma: no cover cell_types = pd.unique(plot_df["Cell Type"]) ax.set_xticklabels(cell_types, rotation=90) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("coda_effects_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_boxplots( # pragma: no cover self, data: AnnData | MuData, @@ -1504,10 +1484,9 @@ def plot_boxplots( # pragma: no cover level_order: list[str] = None, figsize: tuple[float, float] | None = None, dpi: int | None = 100, - return_fig: bool | None = None, - ax: plt.Axes | None = None, - show: bool | None = None, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: """Grouped boxplot visualization. @@ -1530,6 +1509,7 @@ def plot_boxplots( # pragma: no cover palette: The seaborn color map for the barplot. show_legend: If True, adds a legend. level_order: Custom ordering of bars on the x-axis. + {common_plot_args} Returns: Depending on `plot_facets`, returns a :class:`~matplotlib.axes.Axes` (`plot_facets = False`) @@ -1651,15 +1631,7 @@ def plot_boxplots( # pragma: no cover **args_swarmplot, ).set_titles("{col_name}") - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return g - return None + return savefig_or_show("coda_boxplots", show=show, save=save, return_fig=return_fig, dpi=dpi) # If not plot as facets, call boxplot to plot cell types on the x-axis. else: @@ -1724,16 +1696,9 @@ def plot_boxplots( # pragma: no cover title=feature_name, ) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("coda_boxplots", show=show, save=save, return_fig=return_fig, dpi=dpi) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_rel_abundance_dispersion_plot( # pragma: no cover self, data: AnnData | MuData, @@ -1744,10 +1709,10 @@ def plot_rel_abundance_dispersion_plot( # pragma: no cover label_cell_types: bool = True, figsize: tuple[float, float] | None = None, dpi: int | None = 100, - return_fig: bool | None = None, ax: plt.Axes | None = None, - show: bool | None = None, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> plt.Axes | plt.Figure | None: """Plots total variance of relative abundance versus minimum relative abundance of all cell types for determination of a reference cell type. @@ -1763,6 +1728,7 @@ def plot_rel_abundance_dispersion_plot( # pragma: no cover figsize: Figure size. dpi: Dpi setting. ax: A matplotlib axes object. Only works if plotting a single component. + {common_plot_args} Returns: A :class:`~matplotlib.axes.Axes` object @@ -1849,16 +1815,11 @@ def label_point(x, y, val, ax): ax.legend(loc="upper left", bbox_to_anchor=(1, 1), ncol=1, title="Is abundant") - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show( + "coda_rel_abundance_dispersion_plot", show=show, save=save, return_fig=return_fig, dpi=dpi + ) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_draw_tree( # pragma: no cover self, data: AnnData | MuData, @@ -1869,8 +1830,9 @@ def plot_draw_tree( # pragma: no cover units: Literal["px", "mm", "in"] | None = "px", figsize: tuple[float, float] | None = (None, None), dpi: int | None = 100, - show: bool | None = True, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Tree | None: """Plot a tree using input ete3 tree object. @@ -1887,6 +1849,7 @@ def plot_draw_tree( # pragma: no cover units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. + {common_plot_args} Returns: Depending on `show`, returns :class:`ete3.TreeNode` and :class:`ete3.TreeStyle` (`show = False`) or plot the tree inline (`show = False`) @@ -1936,9 +1899,11 @@ def my_layout(node): tree.render(save, tree_style=tree_style, units=units, w=figsize[0], h=figsize[1], dpi=dpi) # type: ignore if show: return tree.render("%%inline", tree_style=tree_style, units=units, w=figsize[0], h=figsize[1], dpi=dpi) # type: ignore - else: + if return_fig: return tree, tree_style + return None + @_doc_params(common_plot_args=doc_common_plot_args) def plot_draw_effects( # pragma: no cover self, data: AnnData | MuData, @@ -1952,8 +1917,9 @@ def plot_draw_effects( # pragma: no cover units: Literal["px", "mm", "in"] | None = "px", figsize: tuple[float, float] | None = (None, None), dpi: int | None = 100, - show: bool | None = True, - save: str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Tree | None: """Plot a tree with colored circles on the nodes indicating significant effects with bar plots which indicate leave-level significant effects. @@ -1968,15 +1934,15 @@ def plot_draw_effects( # pragma: no cover tight_text: When False, boundaries of the text are approximated according to general font metrics, producing slightly worse aligned text faces but improving the performance of tree visualization in scenes with a lot of text faces. show_scale: Include the scale legend in the tree image or not. - show: If True, plot the tree inline. If false, return tree and tree_style objects. file_name: Path to the output image file. valid extensions are .SVG, .PDF, .PNG. Output image can be saved whether show is True or not. units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. + {common_plot_args} Returns: - Depending on `show`, returns :class:`ete3.TreeNode` and :class:`ete3.TreeStyle` (`show = False`) - or plot the tree inline (`show = False`) + Returns :class:`ete3.TreeNode` and :class:`ete3.TreeStyle` (`return_fig = False`) + or plot the tree inline (`show = True`) Examples: >>> import pertpy as pt @@ -2117,19 +2083,20 @@ def my_layout(node): plt.xlim(-leaf_eff_max, leaf_eff_max) plt.subplots_adjust(wspace=0) - if save is not None: + if save: plt.savefig(save) - if save is not None and not show_leaf_effects: + if save and not show_leaf_effects: tree2.render(save, tree_style=tree_style, units=units) if show: if not show_leaf_effects: return tree2.render("%%inline", tree_style=tree_style, units=units, w=figsize[0], h=figsize[1], dpi=dpi) - else: + if return_fig: if not show_leaf_effects: return tree2, tree_style return None + @_doc_params(common_plot_args=doc_common_plot_args) def plot_effects_umap( # pragma: no cover self, mdata: MuData, @@ -2139,10 +2106,10 @@ def plot_effects_umap( # pragma: no cover modality_key_2: str = "coda", color_map: Colormap | str | None = None, palette: str | Sequence[str] | None = None, - return_fig: bool | None = None, ax: Axes = None, - show: bool = None, - save: str | bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, ) -> plt.Axes | plt.Figure | None: """Plot a UMAP visualization colored by effect strength. @@ -2151,18 +2118,20 @@ def plot_effects_umap( # pragma: no cover (default is data['rna']) depending on the cluster they were assigned to. Args: - mudata: MuData object. + mdata: MuData object. effect_name: The name of the effect results in .varm of aggregated sample-level AnnData to plot cluster_key: The cluster information in .obs of cell-level AnnData (default is data['rna']). To assign cell types' effects to original cells. modality_key_1: Key to the cell-level AnnData in the MuData object. modality_key_2: Key to the aggregated sample-level AnnData object in the MuData object. - show: Whether to display the figure or return axis. + color_map: The color map to use for plotting. + palette: The color palette to use for plotting. ax: A matplotlib axes object. Only works if plotting a single component. + {common_plot_args} **kwargs: All other keyword arguments are passed to `scanpy.plot.umap()` Returns: - If `show==False` a :class:`~matplotlib.axes.Axes` or a list of it. + If `return_fig==True` a :class:`~matplotlib.axes.Axes` or a list of it. Examples: >>> import pertpy as pt @@ -2220,7 +2189,7 @@ def plot_effects_umap( # pragma: no cover else: vmax = max(data_rna.obs[effect].max() for _, effect in enumerate(effect_name)) - return sc.pl.umap( + fig = sc.pl.umap( data_rna, color=effect_name, vmax=vmax, @@ -2229,11 +2198,17 @@ def plot_effects_umap( # pragma: no cover color_map=color_map, return_fig=return_fig, ax=ax, - show=show, + show=False, save=save, **kwargs, ) + if show: + plt.show() + if return_fig: + return fig + return None + def get_a( tree: tt.core.ToyTree, diff --git a/pertpy/tools/_dialogue.py b/pertpy/tools/_dialogue.py index becd4a7b..a276e77a 100644 --- a/pertpy/tools/_dialogue.py +++ b/pertpy/tools/_dialogue.py @@ -25,6 +25,8 @@ from sparsecca import lp_pmd, multicca_permute, multicca_pmd from statsmodels.sandbox.stats.multicomp import multipletests +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show + if TYPE_CHECKING: from matplotlib.axes import Axes from matplotlib.figure import Figure @@ -1059,6 +1061,7 @@ def get_extrema_MCP_genes(self, ct_subs: dict, fraction: float = 0.1): return rank_dfs + @_doc_params(common_plot_args=doc_common_plot_args) def plot_split_violins( self, adata: AnnData, @@ -1066,10 +1069,9 @@ def plot_split_violins( celltype_key: str, split_which: tuple[str, str] = None, mcp: str = "mcp_0", - return_fig: bool | None = None, - ax: Axes | None = None, - save: bool | str | None = None, - show: bool | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> Axes | Figure | None: """Plots split violin plots for a given MCP and split variable. @@ -1081,9 +1083,10 @@ def plot_split_violins( celltype_key: Key for cell type annotations. split_which: Which values of split_key to plot. Required if more than 2 values in split_key. mcp: Key for MCP data. + {common_plot_args} Returns: - A :class:`~matplotlib.axes.Axes` object + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1108,16 +1111,9 @@ def plot_split_violins( ax.set_xticklabels(ax.get_xticklabels(), rotation=90) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + return savefig_or_show("dialogue_violin", show=show, save=save, return_fig=return_fig) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_pairplot( self, adata: AnnData, @@ -1125,9 +1121,9 @@ def plot_pairplot( color: str, sample_id: str, mcp: str = "mcp_0", - return_fig: bool | None = None, - show: bool | None = None, - save: bool | str | None = None, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> PairGrid | Figure | None: """Generate a pairplot visualization for multi-cell perturbation (MCP) data. @@ -1140,9 +1136,10 @@ def plot_pairplot( color: Key in `adata.obs` for color annotations. This parameter is used as the hue sample_id: Key in `adata.obs` for the sample annotations. mcp: Key in `adata.obs` for MCP feature values. + {common_plot_args} Returns: - Seaborn Pairgrid object. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1165,14 +1162,6 @@ def plot_pairplot( aggstats = aggstats.loc[list(mcp_pivot.index), :] aggstats[color] = aggstats["top"] mcp_pivot = pd.concat([mcp_pivot, aggstats[color]], axis=1) - ax = sns.pairplot(mcp_pivot, hue=color, corner=True) - - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if return_fig: - return plt.gcf() - if not (show or save): - return ax - return None + sns.pairplot(mcp_pivot, hue=color, corner=True) + + return savefig_or_show("dialogue_pairplot", show=show, save=save, return_fig=return_fig) diff --git a/pertpy/tools/_scgen/_scgen.py b/pertpy/tools/_scgen/_scgen.py index bdd19eed..7fc04636 100644 --- a/pertpy/tools/_scgen/_scgen.py +++ b/pertpy/tools/_scgen/_scgen.py @@ -18,12 +18,16 @@ from scvi.model.base import BaseModelClass, JaxTrainingMixin from scvi.utils import setup_anndata_dsp +from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show + from ._scgenvae import JaxSCGENVAE from ._utils import balancer, extractor if TYPE_CHECKING: from collections.abc import Sequence + from matplotlib.pyplot import Figure + font = {"family": "Arial", "size": 14} @@ -371,15 +375,14 @@ def get_latent_representation( return self.module.as_numpy_array(latent) + @_doc_params(common_plot_args=doc_common_plot_args) def plot_reg_mean_plot( self, adata, condition_key: str, axis_keys: dict[str, str], labels: dict[str, str], - save: str | bool | None = None, gene_list: list[str] = None, - show: bool = False, top_100_genes: list[str] = None, verbose: bool = False, legend: bool = True, @@ -387,8 +390,11 @@ def plot_reg_mean_plot( x_coeff: float = 0.30, y_coeff: float = 0.8, fontsize: float = 14, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, - ) -> tuple[float, float] | float: + ) -> tuple[Figure, float, float] | tuple[Figure, float] | tuple[float, float] | float: """Plots mean matching for a set of specified genes. Args: @@ -399,7 +405,6 @@ def plot_reg_mean_plot( axis_keys: Dictionary of `adata.obs` keys that are used by the axes of the plot. Has to be in the following form: `{"x": "Key for x-axis", "y": "Key for y-axis"}`. labels: Dictionary of axes labels of the form `{"x": "x-axis-name", "y": "y-axis name"}`. - path_to_save: path to save the plot. save: Specify if the plot should be saved or not. gene_list: list of gene names to be plotted. show: if `True`: will show to the plot after saving it. @@ -410,8 +415,13 @@ def plot_reg_mean_plot( x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. + {common_plot_args} **kwargs: + Returns: + If `return_fig` is `True`, returns the matplotlib figure. Additionally, returns R^2 value for all genes and + R^2 value for top 100 DEGs if `top_100_genes` is not `None`. + Examples: >>> import pertpy as pt >>> data = pt.dt.kang_2018() @@ -498,34 +508,40 @@ def plot_reg_mean_plot( r"$\mathrm{R^2_{\mathrm{\mathsf{top\ 100\ DEGs}}}}$= " + f"{r_value_diff ** 2:.2f}", fontsize=kwargs.get("textsize", fontsize), ) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - plt.close() + + fig = savefig_or_show("scgen_reg_mean", save=save, show=show, return_fig=True) + if diff_genes is not None: - return r_value**2, r_value_diff**2 + if return_fig: + return fig, r_value**2, r_value_diff**2 + else: + return r_value**2, r_value_diff**2 else: - return r_value**2 + if return_fig: + return fig, r_value**2 + else: + return r_value**2 + @_doc_params(common_plot_args=doc_common_plot_args) def plot_reg_var_plot( self, adata, condition_key: str, axis_keys: dict[str, str], labels: dict[str, str], - save: str | bool | None = None, gene_list: list[str] = None, top_100_genes: list[str] = None, - show: bool = False, legend: bool = True, title: str = None, verbose: bool = False, x_coeff: float = 0.3, y_coeff: float = 0.8, fontsize: float = 14, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, **kwargs, - ) -> tuple[float, float] | float: + ) -> tuple[Figure, float, float] | tuple[Figure, float] | tuple[float, float] | float: """Plots variance matching for a set of specified genes. Args: @@ -536,7 +552,6 @@ def plot_reg_var_plot( axis_keys: Dictionary of `adata.obs` keys that are used by the axes of the plot. Has to be in the following form: `{"x": "Key for x-axis", "y": "Key for y-axis"}`. labels: Dictionary of axes labels of the form `{"x": "x-axis-name", "y": "y-axis name"}`. - path_to_save: path to save the plot. save: Specify if the plot should be saved or not. gene_list: list of gene names to be plotted. show: if `True`: will show to the plot after saving it. @@ -547,6 +562,7 @@ def plot_reg_var_plot( x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. + {common_plot_args} """ import seaborn as sns @@ -626,16 +642,20 @@ def plot_reg_var_plot( fontsize=kwargs.get("textsize", fontsize), ) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - plt.close() + fig = savefig_or_show("scgen_reg_mean", save=save, show=show, return_fig=True) + if diff_genes is not None: - return r_value**2, r_value_diff**2 + if return_fig: + return fig, r_value**2, r_value_diff**2 + else: + return r_value**2, r_value_diff**2 else: - return r_value**2 + if return_fig: + return fig, r_value**2 + else: + return r_value**2 + @_doc_params(common_plot_args=doc_common_plot_args) def plot_binary_classifier( self, scgen: Scgen, @@ -643,9 +663,10 @@ def plot_binary_classifier( delta: np.ndarray, ctrl_key: str, stim_key: str, - show: bool = False, - save: str | bool | None = None, fontsize: float = 14, + show: bool = True, + save: str | bool = False, + return_fig: bool = False, ) -> plt.Axes | None: """Plots the dot product between delta and latent representation of a linear classifier. @@ -661,9 +682,8 @@ def plot_binary_classifier( delta: Difference between stimulated and control cells in latent space ctrl_key: Key for `control` part of the `data` found in `condition_key`. stim_key: Key for `stimulated` part of the `data` found in `condition_key`. - path_to_save: Path to save the plot. - save: Specify if the plot should be saved or not. fontsize: Set the font size of the plot. + {common_plot_args} """ plt.close("all") adata = scgen._validate_anndata(adata) @@ -693,13 +713,7 @@ def plot_binary_classifier( ax = plt.gca() ax.grid(False) - if save: - plt.savefig(save, bbox_inches="tight") - if show: - plt.show() - if not (show or save): - return ax - return None + return savefig_or_show("scgen_binary_classifier", save=save, show=show, return_fig=return_fig) # compatibility From 15ebd8f4c1770d99cb8bfcd6075a687081989171 Mon Sep 17 00:00:00 2001 From: Lilly Date: Thu, 5 Sep 2024 22:10:38 +0200 Subject: [PATCH 07/19] Resolved ToDos --- pertpy/_utils.py | 2 +- pertpy/tools/_cinemaot.py | 4 +- .../_differential_gene_expression/_base.py | 14 +--- pertpy/tools/_scgen/_scgen.py | 73 ++++++++----------- 4 files changed, 36 insertions(+), 57 deletions(-) diff --git a/pertpy/_utils.py b/pertpy/_utils.py index 95cf5c4a..a74e924f 100644 --- a/pertpy/_utils.py +++ b/pertpy/_utils.py @@ -51,6 +51,6 @@ def dec(obj): doc_common_plot_args = """\ show: if `True`, shows the plot. - save: if `True`, saves the plot under a default filename. If `str`, appends the specified string to the default filename. + save: if `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {`.pdf`, `.png`, `.svg`}. return_fig: if `True`, returns figure of the plot.\ """ diff --git a/pertpy/tools/_cinemaot.py b/pertpy/tools/_cinemaot.py index 6c83def0..31736a99 100644 --- a/pertpy/tools/_cinemaot.py +++ b/pertpy/tools/_cinemaot.py @@ -675,9 +675,7 @@ def plot_vis_matching( normalize: normalize the coarse-grained matching matrix by row / column. title: the title for the figure. min_val: The min value to truncate the matching matrix. - show: Show the plot, do not return axis. - save: If `True` or a `str`, save the figure. A string is appended to the default filename. - Infer the filetype if ending on {`'.pdf'`, `'.png'`, `'.svg'`}. + {common_plot_args} **kwargs: Other parameters to input for seaborn.heatmap. Examples: diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 733e12b1..c2fd3bda 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -523,8 +523,8 @@ def plot_paired( show_legend: bool = True, size: int = 10, y_label: str = "expression", - pvalues: Sequence[float] = None, # TODO - pvalue_template=lambda x: f"unadj. p={x:.2f}, t-test", # TODO + pvalues: Sequence[float] = None, + pvalue_template=lambda x: f"unadj. p={x:.2f}, t-test", adjust_fdr: bool = False, boxplot_properties=None, palette=None, @@ -621,11 +621,6 @@ def plot_paired( # remove unpaired samples paired_samples = set(df[df[groupby] == groups[0]][pairedby]) & set(df[df[groupby] == groups[1]][pairedby]) df = df[df[pairedby].isin(paired_samples)] - - # df[pairedby] = df[pairedby].astype(str) TODO: Tidy up! - # df.set_index(pairedby, inplace=True) - # has_matching_samples = df.groupby(pairedby).apply(lambda x: sorted(x[groupby]) == sorted(groups)) - # has_matching_samples = has_matching_samples.index[has_matching_samples].values removed_samples = adata.obs[pairedby].nunique() - len(df[pairedby].unique()) if removed_samples > 0: logger.warning(f"{removed_samples} unpaired samples removed") @@ -636,14 +631,13 @@ def plot_paired( df.loc[ df[groupby] == groups[0], var_names, - ], # .loc[has_matching_samples, :] + ], df.loc[ df[groupby] == groups[1], var_names, - ], # .loc[has_matching_samples] + ], ) - # df = df.loc[has_matching_samples, :] df.reset_index(drop=False, inplace=True) else: diff --git a/pertpy/tools/_scgen/_scgen.py b/pertpy/tools/_scgen/_scgen.py index 7fc04636..844529d2 100644 --- a/pertpy/tools/_scgen/_scgen.py +++ b/pertpy/tools/_scgen/_scgen.py @@ -375,7 +375,6 @@ def get_latent_representation( return self.module.as_numpy_array(latent) - @_doc_params(common_plot_args=doc_common_plot_args) def plot_reg_mean_plot( self, adata, @@ -390,11 +389,10 @@ def plot_reg_mean_plot( x_coeff: float = 0.30, y_coeff: float = 0.8, fontsize: float = 14, - show: bool = True, - save: str | bool = False, - return_fig: bool = False, + show: bool = False, + save: str | bool | None = None, **kwargs, - ) -> tuple[Figure, float, float] | tuple[Figure, float] | tuple[float, float] | float: + ) -> tuple[float, float] | float: """Plots mean matching for a set of specified genes. Args: @@ -403,24 +401,22 @@ def plot_reg_mean_plot( corresponding to batch and cell type metadata, respectively. condition_key: The key for the condition axis_keys: Dictionary of `adata.obs` keys that are used by the axes of the plot. Has to be in the following form: - `{"x": "Key for x-axis", "y": "Key for y-axis"}`. - labels: Dictionary of axes labels of the form `{"x": "x-axis-name", "y": "y-axis name"}`. - save: Specify if the plot should be saved or not. + {`x`: `Key for x-axis`, `y`: `Key for y-axis`}. + labels: Dictionary of axes labels of the form {`x`: `x-axis-name`, `y`: `y-axis name`}. gene_list: list of gene names to be plotted. - show: if `True`: will show to the plot after saving it. top_100_genes: List of the top 100 differentially expressed genes. Specify if you want the top 100 DEGs to be assessed extra. - verbose: Specify if you want information to be printed while creating the plot., + verbose: Specify if you want information to be printed while creating the plot. legend: Whether to plot a legend. title: Set if you want the plot to display a title. x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. - {common_plot_args} + show: if `True`: will show to the plot after saving it. + save: Specify if the plot should be saved or not. **kwargs: Returns: - If `return_fig` is `True`, returns the matplotlib figure. Additionally, returns R^2 value for all genes and - R^2 value for top 100 DEGs if `top_100_genes` is not `None`. + Returns R^2 value for all genes and R^2 value for top 100 DEGs if `top_100_genes` is not `None`. Examples: >>> import pertpy as pt @@ -509,20 +505,16 @@ def plot_reg_mean_plot( fontsize=kwargs.get("textsize", fontsize), ) - fig = savefig_or_show("scgen_reg_mean", save=save, show=show, return_fig=True) - + if save: + plt.savefig(save, bbox_inches="tight") + if show: + plt.show() + plt.close() if diff_genes is not None: - if return_fig: - return fig, r_value**2, r_value_diff**2 - else: - return r_value**2, r_value_diff**2 + return r_value**2, r_value_diff**2 else: - if return_fig: - return fig, r_value**2 - else: - return r_value**2 + return r_value**2 - @_doc_params(common_plot_args=doc_common_plot_args) def plot_reg_var_plot( self, adata, @@ -538,10 +530,9 @@ def plot_reg_var_plot( y_coeff: float = 0.8, fontsize: float = 14, show: bool = True, - save: str | bool = False, - return_fig: bool = False, + save: str | bool | None = None, **kwargs, - ) -> tuple[Figure, float, float] | tuple[Figure, float] | tuple[float, float] | float: + ) -> tuple[float, float] | float: """Plots variance matching for a set of specified genes. Args: @@ -550,19 +541,18 @@ def plot_reg_var_plot( corresponding to batch and cell type metadata, respectively. condition_key: Key of the condition. axis_keys: Dictionary of `adata.obs` keys that are used by the axes of the plot. Has to be in the following form: - `{"x": "Key for x-axis", "y": "Key for y-axis"}`. - labels: Dictionary of axes labels of the form `{"x": "x-axis-name", "y": "y-axis name"}`. - save: Specify if the plot should be saved or not. + {"x": "Key for x-axis", "y": "Key for y-axis"}. + labels: Dictionary of axes labels of the form {"x": "x-axis-name", "y": "y-axis name"}. gene_list: list of gene names to be plotted. - show: if `True`: will show to the plot after saving it. top_100_genes: List of the top 100 differentially expressed genes. Specify if you want the top 100 DEGs to be assessed extra. - legend: Whether to plot a elgend + legend: Whether to plot a legend. title: Set if you want the plot to display a title. verbose: Specify if you want information to be printed while creating the plot. x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. - {common_plot_args} + show: if `True`: will show to the plot after saving it. + save: Specify if the plot should be saved or not. """ import seaborn as sns @@ -642,18 +632,15 @@ def plot_reg_var_plot( fontsize=kwargs.get("textsize", fontsize), ) - fig = savefig_or_show("scgen_reg_mean", save=save, show=show, return_fig=True) - + if save: + plt.savefig(save, bbox_inches="tight") + if show: + plt.show() + plt.close() if diff_genes is not None: - if return_fig: - return fig, r_value**2, r_value_diff**2 - else: - return r_value**2, r_value_diff**2 + return r_value**2, r_value_diff**2 else: - if return_fig: - return fig, r_value**2 - else: - return r_value**2 + return r_value**2 @_doc_params(common_plot_args=doc_common_plot_args) def plot_binary_classifier( From fce62495c1d3c97205b408a065fcee143d77b486 Mon Sep 17 00:00:00 2001 From: Lilly Date: Fri, 6 Sep 2024 12:16:12 +0200 Subject: [PATCH 08/19] Coda plots docs with dict --- .github/workflows/test.yml | 6 +++--- pertpy/tools/_coda/_base_coda.py | 12 ++++-------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41b68fd2..712a3ad1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,9 +27,9 @@ jobs: - os: ubuntu-latest python: "3.12" run_mode: "slow" -# - os: ubuntu-latest -# python: "3.12" -# run_mode: "fast" + # - os: ubuntu-latest + # python: "3.12" + # run_mode: "fast" - os: ubuntu-latest python: "3.12" run_mode: slow diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index 6266ba1c..fd3e58db 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -1025,7 +1025,7 @@ def get_node_df(self, data: AnnData | MuData, modality_key: str = "coda"): >>> key_added="lineage", add_level_name=True >>> ) >>> mdata = tasccoda.prepare( - >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args={"phi": 0} + >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args={"phi" : 0} >>> ) >>> tasccoda.run_nuts(mdata, num_samples=1000, num_warmup=100, rng_key=42) >>> node_effects = tasccoda.get_node_df(mdata) @@ -1843,9 +1843,6 @@ def plot_draw_tree( # pragma: no cover tight_text: When False, boundaries of the text are approximated according to general font metrics, producing slightly worse aligned text faces but improving the performance of tree visualization in scenes with a lot of text faces. show_scale: Include the scale legend in the tree image or not. - show: If True, plot the tree inline. If false, return tree and tree_style objects. - file_name: Path to the output image file. Valid extensions are .SVG, .PDF, .PNG. - Output image can be saved whether show is True or not. units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. @@ -1864,7 +1861,7 @@ def plot_draw_tree( # pragma: no cover >>> key_added="lineage", add_level_name=True >>> ) >>> mdata = tasccoda.prepare( - >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args={"phi": 0} + >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args=dict(phi=0) >>> ) >>> tasccoda.run_nuts(mdata, num_samples=1000, num_warmup=100, rng_key=42) >>> tasccoda.plot_draw_tree(mdata, tree="lineage") @@ -1934,7 +1931,6 @@ def plot_draw_effects( # pragma: no cover tight_text: When False, boundaries of the text are approximated according to general font metrics, producing slightly worse aligned text faces but improving the performance of tree visualization in scenes with a lot of text faces. show_scale: Include the scale legend in the tree image or not. - file_name: Path to the output image file. valid extensions are .SVG, .PDF, .PNG. Output image can be saved whether show is True or not. units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. @@ -1954,7 +1950,7 @@ def plot_draw_effects( # pragma: no cover >>> key_added="lineage", add_level_name=True >>> ) >>> mdata = tasccoda.prepare( - >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args={"phi": 0} + >>> mdata, formula="Health", reference_cell_type="automatic", tree_key="lineage", pen_args=dict(phi=0) >>> ) >>> tasccoda.run_nuts(mdata, num_samples=1000, num_warmup=100, rng_key=42) >>> tasccoda.plot_draw_effects(mdata, covariate="Health[T.Inflamed]", tree="lineage") @@ -2151,7 +2147,7 @@ def plot_effects_umap( # pragma: no cover >>> modality_key="coda", >>> reference_cell_type="18", >>> formula="condition", - >>> pen_args={"phi": 0, "lambda_1": 3.5}, + >>> pen_args=dict(phi=0, lambda_1=3.5), >>> tree_key="tree" >>> ) >>> tasccoda_model.run_nuts( From faa09d3114783fbeddf845f609889debc9be1ece Mon Sep 17 00:00:00 2001 From: Lilly Date: Fri, 6 Sep 2024 14:11:56 +0200 Subject: [PATCH 09/19] Final coda docs edits --- .github/workflows/test.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 712a3ad1..e03399e5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,13 +27,13 @@ jobs: - os: ubuntu-latest python: "3.12" run_mode: "slow" - # - os: ubuntu-latest - # python: "3.12" - # run_mode: "fast" - - os: ubuntu-latest - python: "3.12" - run_mode: slow - pip-flags: "--pre" + # - os: ubuntu-latest + # python: "3.12" + # run_mode: "fast" + # - os: ubuntu-latest + # python: "3.12" + # run_mode: slow + # pip-flags: "--pre" env: OS: ${{ matrix.os }} From 7753a9f2f4efcb37a5461f755ee5e4c6d5ef85a0 Mon Sep 17 00:00:00 2001 From: Lilly Date: Fri, 6 Sep 2024 22:23:16 +0200 Subject: [PATCH 10/19] Plot stars in legend in black --- .../de_multicomparison_fc.png | Bin 38562 -> 39316 bytes .../_differential_gene_expression/_base.py | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_static/docstring_previews/de_multicomparison_fc.png b/docs/_static/docstring_previews/de_multicomparison_fc.png index f5399ce0077c6e8a87fdb935aa38931c73f032aa..191ce034557b24508b5a64a574515241677791b0 100644 GIT binary patch literal 39316 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 R;iliGs-&ryvg@$N{{g{SL@WRR diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index c2fd3bda..c268b433 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -928,9 +928,9 @@ def _get_significance(p_val): c="white", ) - plt.scatter([], [], s=marker_size, marker="*", c="white", label="< 0.001") - plt.scatter([], [], s=math.floor(marker_size / 2), marker="*", c="white", label="< 0.01") - plt.scatter([], [], s=math.floor(marker_size / 4), marker="*", c="white", label="< 0.1") + plt.scatter([], [], s=marker_size, marker="*", c="black", label="< 0.001") + plt.scatter([], [], s=math.floor(marker_size / 2), marker="*", c="black", label="< 0.01") + plt.scatter([], [], s=math.floor(marker_size / 4), marker="*", c="black", label="< 0.1") plt.legend(title="Significance", bbox_to_anchor=(1.2, -0.05)) plt.xlabel(x_label) From fc61f88277baf5d3ef53161e32cf60659fbdcc43 Mon Sep 17 00:00:00 2001 From: Lilly May <93096564+Lilly-May@users.noreply.github.com> Date: Fri, 6 Sep 2024 22:56:21 +0200 Subject: [PATCH 11/19] Apply suggestions from code review Co-authored-by: Lukas Heumos --- pertpy/_utils.py | 2 -- pertpy/tools/_perturbation_space/_simple.py | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pertpy/_utils.py b/pertpy/_utils.py index a74e924f..c73953ab 100644 --- a/pertpy/_utils.py +++ b/pertpy/_utils.py @@ -14,13 +14,11 @@ def savefig_or_show( ext: str = "png", ) -> Figure | None: if isinstance(save, str): - # check whether `save` contains a figure extension for try_ext in [".svg", ".pdf", ".png"]: if save.endswith(try_ext): ext = try_ext[1:] save = save.replace(try_ext, "") break - # append extension writekey += f"_{save}" save = True diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index 15fc5a60..3cc19efa 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -184,13 +184,13 @@ def plot_psbulk_samples( return_fig: bool = False, **kwargs, ) -> Figure | None: - """Plot the pseudobulk samples of an AnnData object. It uses Decoupler implementation. + """Plot the pseudobulk samples of an AnnData object. Plot the count number vs. the number of cells per pseudobulk sample. Args: adata: Anndata containing pseudobulk samples. - groupby: .obs column to color the samples by. + groupby: `.obs` column to color the samples by. {common_plot_args} **kwargs: Are passed to decoupler's plot_psbulk_samples. From 0d59f41fb114a45ca303da14adda501142d4cc14 Mon Sep 17 00:00:00 2001 From: Lilly May <93096564+Lilly-May@users.noreply.github.com> Date: Fri, 6 Sep 2024 22:56:51 +0200 Subject: [PATCH 12/19] Update pertpy/tools/_differential_gene_expression/_base.py Co-authored-by: Lukas Heumos --- pertpy/tools/_differential_gene_expression/_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index c268b433..42568002 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -534,7 +534,7 @@ def plot_paired( ) -> Figure | None: """Creates a pairwise expression plot from a pandas DataFrame or Anndata. - Makes on panel with a paired scatterplot for each variable. + Visualizes a panel of paired scatterplots per variable. Args: adata: AnnData object, can be pseudobulked. From 4ef0295c95f6e366746770293edce68a6d3a6e02 Mon Sep 17 00:00:00 2001 From: Lilly May <93096564+Lilly-May@users.noreply.github.com> Date: Fri, 6 Sep 2024 22:57:04 +0200 Subject: [PATCH 13/19] Update pertpy/tools/_differential_gene_expression/_base.py Co-authored-by: Lukas Heumos --- pertpy/tools/_differential_gene_expression/_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 42568002..02c12b8b 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -532,7 +532,7 @@ def plot_paired( save: str | bool = False, return_fig: bool = False, ) -> Figure | None: - """Creates a pairwise expression plot from a pandas DataFrame or Anndata. + """Creates a pairwise expression plot from a Pandas DataFrame or Anndata. Visualizes a panel of paired scatterplots per variable. From 910226aa7abe2d4706778ad8451b665e62d874ad Mon Sep 17 00:00:00 2001 From: Lilly Date: Mon, 9 Sep 2024 14:22:53 +0200 Subject: [PATCH 14/19] Removed all save parameters --- pertpy/_utils.py | 22 +---- pertpy/metadata/_cell_line.py | 9 +- pertpy/preprocessing/_guide_rna.py | 4 +- pertpy/tools/_augur.py | 30 +++++-- pertpy/tools/_cinemaot.py | 6 +- pertpy/tools/_coda/_base_coda.py | 44 ++++++---- pertpy/tools/_dialogue.py | 17 ++-- .../_differential_gene_expression/_base.py | 30 +++++-- pertpy/tools/_enrichment.py | 2 - pertpy/tools/_milo.py | 27 +++--- pertpy/tools/_mixscape.py | 87 ++++++++++--------- pertpy/tools/_perturbation_space/_simple.py | 7 +- pertpy/tools/_scgen/_scgen.py | 13 +-- 13 files changed, 163 insertions(+), 135 deletions(-) diff --git a/pertpy/_utils.py b/pertpy/_utils.py index c73953ab..212692bf 100644 --- a/pertpy/_utils.py +++ b/pertpy/_utils.py @@ -5,30 +5,13 @@ from matplotlib.pyplot import Figure -def savefig_or_show( - writekey: str, +def return_fig_or_show( show: bool, - save: bool | str, return_fig: bool = False, - dpi: int = 150, - ext: str = "png", ) -> Figure | None: - if isinstance(save, str): - for try_ext in [".svg", ".pdf", ".png"]: - if save.endswith(try_ext): - ext = try_ext[1:] - save = save.replace(try_ext, "") - break - writekey += f"_{save}" - save = True - - if save: - Path.mkdir(Path("figures"), exist_ok=True) - plt.savefig(f"figures/{writekey}.{ext}", dpi=dpi, bbox_inches="tight") + plt.tight_layout() if show: plt.show() - if save: - plt.close() # clear figure if return_fig: return plt.gcf() return None @@ -49,6 +32,5 @@ def dec(obj): doc_common_plot_args = """\ show: if `True`, shows the plot. - save: if `True` or a `str`, save the figure. A string is appended to the default filename. Infer the filetype if ending on {`.pdf`, `.png`, `.svg`}. return_fig: if `True`, returns figure of the plot.\ """ diff --git a/pertpy/metadata/_cell_line.py b/pertpy/metadata/_cell_line.py index 16ea773d..07e6af87 100644 --- a/pertpy/metadata/_cell_line.py +++ b/pertpy/metadata/_cell_line.py @@ -16,7 +16,7 @@ from scanpy import settings from scipy import stats -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args from pertpy.data._dataloader import _download from ._look_up import LookUp @@ -705,7 +705,6 @@ def plot_correlation( category: str = "cell line", subset_identifier: str | int | Iterable[str] | Iterable[int] | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Visualise the correlation of cell lines with annotated metadata. @@ -800,6 +799,10 @@ def plot_correlation( }, ) - return savefig_or_show("cell_line_correlation", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None else: raise NotImplementedError diff --git a/pertpy/preprocessing/_guide_rna.py b/pertpy/preprocessing/_guide_rna.py index 3a5e9763..6d280610 100644 --- a/pertpy/preprocessing/_guide_rna.py +++ b/pertpy/preprocessing/_guide_rna.py @@ -9,7 +9,7 @@ import scanpy as sc import scipy -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from anndata import AnnData @@ -117,7 +117,6 @@ def plot_heatmap( order_by: np.ndarray | str | None = None, key_to_save_order: str = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> list[Axes]: @@ -188,7 +187,6 @@ def plot_heatmap( use_raw=False, dendrogram=False, layer=layer, - save=save, show=False, **kwargs, ) diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index b42c71bc..b766e481 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -36,7 +36,7 @@ from skmisc.loess import loess from statsmodels.stats.multitest import fdrcorrection -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from matplotlib.axes import Axes @@ -982,7 +982,6 @@ def plot_dp_scatter( top_n: int = None, ax: Axes = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Plot scatterplot of differential prioritization. @@ -1041,7 +1040,11 @@ def plot_dp_scatter( legend1 = ax.legend(*scatter.legend_elements(), loc="center left", title="z-scores", bbox_to_anchor=(1, 0.5)) ax.add_artist(legend1) - return savefig_or_show("augur_dp_scatter", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_important_features( @@ -1051,7 +1054,6 @@ def plot_important_features( top_n: int = 10, ax: Axes = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Plot a lollipop plot of the n features with largest feature importances. @@ -1105,7 +1107,11 @@ def plot_important_features( plt.ylabel("Gene") plt.yticks(y_axes_range, n_features["genes"]) - return savefig_or_show("augur_important_features", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_lollipop( @@ -1114,7 +1120,6 @@ def plot_lollipop( key: str = "augurpy_results", ax: Axes = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Axes | Figure | None: """Plot a lollipop plot of the mean augur values. @@ -1164,7 +1169,11 @@ def plot_lollipop( plt.ylabel("Cell Type") plt.yticks(y_axes_range, results["summary_metrics"].sort_values("mean_augur_score", axis=1).columns) - return savefig_or_show("augur_lollipop", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_scatterplot( @@ -1173,7 +1182,6 @@ def plot_scatterplot( results2: dict[str, Any], top_n: int = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Create scatterplot with two augur results. @@ -1231,4 +1239,8 @@ def plot_scatterplot( plt.xlabel("Augur scores 1") plt.ylabel("Augur scores 2") - return savefig_or_show("augur_scatterplot", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None diff --git a/pertpy/tools/_cinemaot.py b/pertpy/tools/_cinemaot.py index 31736a99..3e098ea4 100644 --- a/pertpy/tools/_cinemaot.py +++ b/pertpy/tools/_cinemaot.py @@ -18,7 +18,7 @@ from sklearn.linear_model import LinearRegression from sklearn.neighbors import NearestNeighbors -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from anndata import AnnData @@ -658,7 +658,6 @@ def plot_vis_matching( min_val: float = 0.01, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> Figure | None: @@ -714,7 +713,8 @@ def plot_vis_matching( g = sns.heatmap(df, annot=True, ax=ax, **kwargs) plt.title(title) - savefig_or_show("matching_heatmap", show=show, save=save, return_fig=False) + if show: + plt.show() if return_fig: if ax is not None: return ax diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index fd3e58db..e7c91ea7 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -26,7 +26,7 @@ from rich.table import Table from scipy.cluster import hierarchy as sp_hierarchy -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence @@ -1199,7 +1199,6 @@ def plot_stacked_barplot( # pragma: no cover figsize: tuple[float, float] | None = None, dpi: int | None = 100, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> plt.Axes | Figure | None: """Plots a stacked barplot for all levels of a covariate or all samples (if feature_name=="samples"). @@ -1278,7 +1277,11 @@ def plot_stacked_barplot( # pragma: no cover show_legend=show_legend, ) - return savefig_or_show("coda_stacked_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_effects_barplot( # pragma: no cover @@ -1296,7 +1299,6 @@ def plot_effects_barplot( # pragma: no cover figsize: tuple[float, float] | None = None, dpi: int | None = 100, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: """Barplot visualization for effects. @@ -1432,8 +1434,6 @@ def plot_effects_barplot( # pragma: no cover if ax.get_xticklabels()[0]._text == "zero": ax.set_xticks([]) - return savefig_or_show("coda_effects_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) - # If not plot as facets, call barplot to plot cell types on the x-axis. else: _, ax = plt.subplots(figsize=figsize, dpi=dpi) @@ -1465,7 +1465,11 @@ def plot_effects_barplot( # pragma: no cover cell_types = pd.unique(plot_df["Cell Type"]) ax.set_xticklabels(cell_types, rotation=90) - return savefig_or_show("coda_effects_barplot", show=show, save=save, return_fig=return_fig, dpi=dpi) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_boxplots( # pragma: no cover @@ -1485,7 +1489,6 @@ def plot_boxplots( # pragma: no cover figsize: tuple[float, float] | None = None, dpi: int | None = 100, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: """Grouped boxplot visualization. @@ -1631,8 +1634,6 @@ def plot_boxplots( # pragma: no cover **args_swarmplot, ).set_titles("{col_name}") - return savefig_or_show("coda_boxplots", show=show, save=save, return_fig=return_fig, dpi=dpi) - # If not plot as facets, call boxplot to plot cell types on the x-axis. else: if level_order: @@ -1696,7 +1697,11 @@ def plot_boxplots( # pragma: no cover title=feature_name, ) - return savefig_or_show("coda_boxplots", show=show, save=save, return_fig=return_fig, dpi=dpi) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_rel_abundance_dispersion_plot( # pragma: no cover @@ -1711,7 +1716,6 @@ def plot_rel_abundance_dispersion_plot( # pragma: no cover dpi: int | None = 100, ax: plt.Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> plt.Axes | plt.Figure | None: """Plots total variance of relative abundance versus minimum relative abundance of all cell types for determination of a reference cell type. @@ -1815,9 +1819,11 @@ def label_point(x, y, val, ax): ax.legend(loc="upper left", bbox_to_anchor=(1, 1), ncol=1, title="Is abundant") - return savefig_or_show( - "coda_rel_abundance_dispersion_plot", show=show, save=save, return_fig=return_fig, dpi=dpi - ) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_draw_tree( # pragma: no cover @@ -1830,8 +1836,8 @@ def plot_draw_tree( # pragma: no cover units: Literal["px", "mm", "in"] | None = "px", figsize: tuple[float, float] | None = (None, None), dpi: int | None = 100, - show: bool = True, save: str | bool = False, + show: bool = True, return_fig: bool = False, ) -> Tree | None: """Plot a tree using input ete3 tree object. @@ -1846,6 +1852,7 @@ def plot_draw_tree( # pragma: no cover units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. + save: Save the tree plot to a file. You can specify the file name here. {common_plot_args} Returns: @@ -1914,8 +1921,8 @@ def plot_draw_effects( # pragma: no cover units: Literal["px", "mm", "in"] | None = "px", figsize: tuple[float, float] | None = (None, None), dpi: int | None = 100, - show: bool = True, save: str | bool = False, + show: bool = True, return_fig: bool = False, ) -> Tree | None: """Plot a tree with colored circles on the nodes indicating significant effects with bar plots which indicate leave-level significant effects. @@ -1934,6 +1941,7 @@ def plot_draw_effects( # pragma: no cover units: Unit of image sizes. “px”: pixels, “mm”: millimeters, “in”: inches. figsize: Figure size. dpi: Dots per inches. + save: Save the tree plot to a file. You can specify the file name here. {common_plot_args} Returns: @@ -2104,7 +2112,6 @@ def plot_effects_umap( # pragma: no cover palette: str | Sequence[str] | None = None, ax: Axes = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> plt.Axes | plt.Figure | None: @@ -2195,7 +2202,6 @@ def plot_effects_umap( # pragma: no cover return_fig=return_fig, ax=ax, show=False, - save=save, **kwargs, ) diff --git a/pertpy/tools/_dialogue.py b/pertpy/tools/_dialogue.py index a276e77a..8e916437 100644 --- a/pertpy/tools/_dialogue.py +++ b/pertpy/tools/_dialogue.py @@ -25,7 +25,7 @@ from sparsecca import lp_pmd, multicca_permute, multicca_pmd from statsmodels.sandbox.stats.multicomp import multipletests -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from matplotlib.axes import Axes @@ -1070,7 +1070,6 @@ def plot_split_violins( split_which: tuple[str, str] = None, mcp: str = "mcp_0", show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Axes | Figure | None: """Plots split violin plots for a given MCP and split variable. @@ -1108,10 +1107,13 @@ def plot_split_violins( df[split_key] = df[split_key].cat.remove_unused_categories() ax = sns.violinplot(data=df, x=celltype_key, y=mcp, hue=split_key, split=True) - ax.set_xticklabels(ax.get_xticklabels(), rotation=90) - return savefig_or_show("dialogue_violin", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_pairplot( @@ -1122,7 +1124,6 @@ def plot_pairplot( sample_id: str, mcp: str = "mcp_0", show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> PairGrid | Figure | None: """Generate a pairplot visualization for multi-cell perturbation (MCP) data. @@ -1164,4 +1165,8 @@ def plot_pairplot( mcp_pivot = pd.concat([mcp_pivot, aggstats[color]], axis=1) sns.pairplot(mcp_pivot, hue=color, corner=True) - return savefig_or_show("dialogue_pairplot", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 02c12b8b..718aee49 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -19,7 +19,7 @@ from matplotlib.pyplot import Figure from matplotlib.ticker import MaxNLocator -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args from pertpy.tools import PseudobulkSpace from pertpy.tools._differential_gene_expression._checks import check_is_numeric_matrix from pertpy.tools._differential_gene_expression._formulaic import ( @@ -147,7 +147,6 @@ def plot_volcano( x_label: str | None = None, y_label: str | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs: int, ) -> Figure | None: @@ -506,7 +505,11 @@ def _map_genes_categories_highlight( plt.legend(loc=1, bbox_to_anchor=legend_pos, frameon=False) - return savefig_or_show("volcano_de", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_paired( @@ -529,7 +532,6 @@ def plot_paired( boxplot_properties=None, palette=None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Creates a pairwise expression plot from a Pandas DataFrame or Anndata. @@ -729,7 +731,11 @@ def plot_paired( axes[n_panels - 1].legend().set_visible(True) axes[n_panels - 1].legend(bbox_to_anchor=(1.1, 1.05)) - return savefig_or_show("paired_expression", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_fold_change( @@ -742,7 +748,6 @@ def plot_fold_change( y_label: str = "Log2 fold change", figsize: tuple[int, int] = (10, 5), show: bool = True, - save: str | bool = False, return_fig: bool = False, **barplot_kwargs, ) -> Figure | None: @@ -821,7 +826,11 @@ def value_to_color(val): plt.xlabel("") plt.ylabel(y_label) - return savefig_or_show("paired_fc", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_multicomparison_fc( @@ -838,7 +847,6 @@ def plot_multicomparison_fc( x_label: str = "Contrast", y_label: str = "Gene", show: bool = True, - save: str | bool = False, return_fig: bool = False, **heatmap_kwargs, ) -> Figure | None: @@ -936,7 +944,11 @@ def _get_significance(p_val): plt.xlabel(x_label) plt.ylabel(y_label) - return savefig_or_show("multicomparison_fc", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None class LinearModelBase(MethodBase): diff --git a/pertpy/tools/_enrichment.py b/pertpy/tools/_enrichment.py index 2a8b8868..151406b0 100644 --- a/pertpy/tools/_enrichment.py +++ b/pertpy/tools/_enrichment.py @@ -304,7 +304,6 @@ def plot_dotplot( key: str = "pertpy_enrichment", ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> DotPlot | None: @@ -412,7 +411,6 @@ def plot_dotplot( groupby=groupby, swap_axes=True, ax=ax, - save=save, show=False, **plot_args, **kwargs, diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 10bc6275..98222964 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -13,7 +13,7 @@ from lamin_utils import logger from mudata import MuData -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence @@ -727,10 +727,9 @@ def plot_nhood_graph( palette: str | Sequence[str] | None = None, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, - ) -> None: + ) -> Figure | None: """Visualize DA results on abstracted graph (wrapper around sc.pl.embedding) Args: @@ -800,7 +799,6 @@ def plot_nhood_graph( palette=palette, ax=ax, show=False, - save=save, **kwargs, ) @@ -808,6 +806,7 @@ def plot_nhood_graph( plt.show() if return_fig: return fig + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_nhood( @@ -820,7 +819,6 @@ def plot_nhood( palette: str | Sequence[str] | None = None, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> Figure | None: @@ -863,13 +861,14 @@ def plot_nhood( return_fig=return_fig, ax=ax, show=False, - save=save, **kwargs, ) if show: plt.show() - return fig if return_fig else None + if return_fig: + return fig + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_da_beeswarm( @@ -881,7 +880,6 @@ def plot_da_beeswarm( subset_nhoods: list[str] = None, palette: str | Sequence[str] | dict[str, str] | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | Axes | None: """Plot beeswarm plot of logFC against nhood labels @@ -990,7 +988,11 @@ def plot_da_beeswarm( plt.legend(loc="upper left", title=f"< {int(alpha * 100)}% SpatialFDR", bbox_to_anchor=(1, 1), frameon=False) plt.axvline(x=0, ymin=0, ymax=1, color="black", linestyle="--") - return savefig_or_show("da_beeswarm", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_nhood_counts_by_cond( @@ -1000,7 +1002,6 @@ def plot_nhood_counts_by_cond( subset_nhoods: list[str] = None, log_counts: bool = False, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | Axes | None: """Plot boxplot of cell numbers vs condition of interest. @@ -1039,4 +1040,8 @@ def plot_nhood_counts_by_cond( plt.xticks(rotation=90) plt.xlabel(test_var) - return savefig_or_show("nhood_counts_by_cond", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index 8c3b5c0c..c3a88f57 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -18,7 +18,7 @@ from sklearn.mixture import GaussianMixture import pertpy as pt -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence @@ -521,7 +521,6 @@ def plot_barplot( # pragma: no cover legend_text_size: int = 8, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, ): """Barplot to visualize perturbation scores calculated by the `mixscape` function. @@ -566,33 +565,31 @@ def plot_barplot( # pragma: no cover all_cells_percentage["guide_number"] = "g" + all_cells_percentage["guide_number"] NP_KO_cells = all_cells_percentage[all_cells_percentage["gene"] != "NT"] - if show: - color_mapping = {"KO": "salmon", "NP": "lightgray", "NT": "grey"} - unique_genes = NP_KO_cells["gene"].unique() - fig, axs = plt.subplots(int(len(unique_genes) / 5), 5, figsize=(25, 25), sharey=True) - for i, gene in enumerate(unique_genes): - ax = axs[int(i / 5), i % 5] - grouped_df = ( - NP_KO_cells[NP_KO_cells["gene"] == gene] - .groupby(["guide_number", "mixscape_class_global"], observed=False)["value"] - .sum() - .unstack() - ) - grouped_df.plot( - kind="bar", - stacked=True, - color=[color_mapping[col] for col in grouped_df.columns], - ax=ax, - width=0.8, - legend=False, - ) - ax.set_title( - gene, bbox={"facecolor": "white", "edgecolor": "black", "pad": 1}, fontsize=axis_title_size - ) - ax.set(xlabel="sgRNA", ylabel="% of cells") - sns.despine(ax=ax, top=True, right=True, left=False, bottom=False) - ax.set_xticklabels(ax.get_xticklabels(), rotation=0, ha="right", fontsize=axis_text_x_size) - ax.set_yticklabels(ax.get_yticklabels(), rotation=0, fontsize=axis_text_y_size) + color_mapping = {"KO": "salmon", "NP": "lightgray", "NT": "grey"} + unique_genes = NP_KO_cells["gene"].unique() + fig, axs = plt.subplots(int(len(unique_genes) / 5), 5, figsize=(25, 25), sharey=True) + for i, gene in enumerate(unique_genes): + ax = axs[int(i / 5), i % 5] + grouped_df = ( + NP_KO_cells[NP_KO_cells["gene"] == gene] + .groupby(["guide_number", "mixscape_class_global"], observed=False)["value"] + .sum() + .unstack() + ) + grouped_df.plot( + kind="bar", + stacked=True, + color=[color_mapping[col] for col in grouped_df.columns], + ax=ax, + width=0.8, + legend=False, + ) + ax.set_title(gene, bbox={"facecolor": "white", "edgecolor": "black", "pad": 1}, fontsize=axis_title_size) + ax.set(xlabel="sgRNA", ylabel="% of cells") + sns.despine(ax=ax, top=True, right=True, left=False, bottom=False) + ax.set_xticklabels(ax.get_xticklabels(), rotation=0, ha="right", fontsize=axis_text_x_size) + ax.set_yticklabels(ax.get_yticklabels(), rotation=0, fontsize=axis_text_y_size) + fig.subplots_adjust(right=0.8) fig.subplots_adjust(hspace=0.5, wspace=0.5) ax.legend( @@ -604,8 +601,11 @@ def plot_barplot( # pragma: no cover title_fontsize=legend_title_size, ) - plt.tight_layout() - return savefig_or_show("mixscape_barplot", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_heatmap( # pragma: no cover @@ -620,7 +620,6 @@ def plot_heatmap( # pragma: no cover vmin: float | None = -2, vmax: float | None = 2, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwds, ) -> Axes | None: @@ -670,7 +669,6 @@ def plot_heatmap( # pragma: no cover n_genes=20, groups=["NT"], show=False, - save=save, **kwds, ) @@ -693,7 +691,6 @@ def plot_perturbscore( # pragma: no cover before_mixscape: bool = False, perturbation_type: str = "KO", show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> Figure | None: """Density plots to visualize perturbation scores calculated by the `pt.tl.mixscape` function. @@ -786,7 +783,11 @@ def plot_perturbscore( # pragma: no cover plt.legend(title="gene_target", title_fontsize=14, fontsize=12) sns.despine() - return savefig_or_show("mixscape_perturbscore", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None # If before_mixscape is False, split densities based on mixscape classifications else: @@ -844,7 +845,11 @@ def plot_perturbscore( # pragma: no cover plt.legend(title="mixscape class", title_fontsize=14, fontsize=12) sns.despine() - return savefig_or_show("mixscape_perturbscore", show=show, save=save, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None @_doc_params(common_plot_args=doc_common_plot_args) def plot_violin( # pragma: no cover @@ -868,7 +873,6 @@ def plot_violin( # pragma: no cover rotation: float | None = None, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> Axes | None: @@ -1040,8 +1044,8 @@ def plot_violin( # pragma: no cover if hue is not None and stripplot is True: plt.legend(handles, labels) - savefig_or_show("mixscape_violin", show=show, save=save, return_fig=False) - + if show: + plt.show() if return_fig: if multi_panel and groupby is None and len(ys) == 1: return g @@ -1065,10 +1069,9 @@ def plot_lda( # pragma: no cover palette: str | Sequence[str] | None = None, ax: Axes | None = None, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwds, - ) -> None: + ) -> Figure | None: """Visualizing perturbation responses with Linear Discriminant Analysis. Requires `pt.tl.mixscape()` to be run first. Args: @@ -1114,7 +1117,6 @@ def plot_lda( # pragma: no cover color_map=color_map, return_fig=return_fig, show=False, - save=save, ax=ax, **kwds, ) @@ -1123,3 +1125,4 @@ def plot_lda( # pragma: no cover plt.show() if return_fig: return fig + return None diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index 3cc19efa..5a7ad129 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -3,11 +3,12 @@ from typing import TYPE_CHECKING import decoupler as dc +import matplotlib.pyplot as plt import numpy as np from anndata import AnnData from sklearn.cluster import DBSCAN, KMeans -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args from pertpy.tools._perturbation_space._clustering import ClusteringSpace from pertpy.tools._perturbation_space._perturbation_space import PerturbationSpace @@ -180,7 +181,6 @@ def plot_psbulk_samples( adata: AnnData, groupby: str, show: bool = True, - save: str | bool = False, return_fig: bool = False, **kwargs, ) -> Figure | None: @@ -210,8 +210,9 @@ def plot_psbulk_samples( .. image:: /_static/docstring_previews/pseudobulk_samples.png """ fig = dc.plot_psbulk_samples(adata, groupby, return_fig=True, **kwargs) - savefig_or_show("pseudobulk_samples", show=show, save=save, return_fig=False) + if show: + plt.show() if return_fig: return fig return None diff --git a/pertpy/tools/_scgen/_scgen.py b/pertpy/tools/_scgen/_scgen.py index 844529d2..8a213315 100644 --- a/pertpy/tools/_scgen/_scgen.py +++ b/pertpy/tools/_scgen/_scgen.py @@ -18,7 +18,7 @@ from scvi.model.base import BaseModelClass, JaxTrainingMixin from scvi.utils import setup_anndata_dsp -from pertpy._utils import _doc_params, doc_common_plot_args, savefig_or_show +from pertpy._utils import _doc_params, doc_common_plot_args from ._scgenvae import JaxSCGENVAE from ._utils import balancer, extractor @@ -411,7 +411,7 @@ def plot_reg_mean_plot( x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. - show: if `True`: will show to the plot after saving it. + show: if `True`, will show to the plot after saving it. save: Specify if the plot should be saved or not. **kwargs: @@ -551,7 +551,7 @@ def plot_reg_var_plot( x_coeff: Offset to print the R^2 value in x-direction. y_coeff: Offset to print the R^2 value in y-direction. fontsize: Fontsize used for text in the plot. - show: if `True`: will show to the plot after saving it. + show: if `True`, will show to the plot after saving it. save: Specify if the plot should be saved or not. """ import seaborn as sns @@ -652,7 +652,6 @@ def plot_binary_classifier( stim_key: str, fontsize: float = 14, show: bool = True, - save: str | bool = False, return_fig: bool = False, ) -> plt.Axes | None: """Plots the dot product between delta and latent representation of a linear classifier. @@ -700,7 +699,11 @@ def plot_binary_classifier( ax = plt.gca() ax.grid(False) - return savefig_or_show("scgen_binary_classifier", save=save, show=show, return_fig=return_fig) + if show: + plt.show() + if return_fig: + return plt.gcf() + return None # compatibility From 6d1ffe8a483b051545a55dacd9cf6f313bf40e26 Mon Sep 17 00:00:00 2001 From: Lilly Date: Mon, 9 Sep 2024 14:31:58 +0200 Subject: [PATCH 15/19] Removed _utils.py file --- pertpy/{_utils.py => _doc.py} | 16 ---------------- pertpy/metadata/_cell_line.py | 2 +- pertpy/preprocessing/_guide_rna.py | 2 +- pertpy/tools/_augur.py | 2 +- pertpy/tools/_cinemaot.py | 2 +- pertpy/tools/_coda/_base_coda.py | 2 +- pertpy/tools/_dialogue.py | 2 +- .../tools/_differential_gene_expression/_base.py | 2 +- pertpy/tools/_enrichment.py | 2 +- pertpy/tools/_milo.py | 2 +- pertpy/tools/_mixscape.py | 2 +- pertpy/tools/_perturbation_space/_simple.py | 2 +- pertpy/tools/_scgen/_scgen.py | 2 +- 13 files changed, 12 insertions(+), 28 deletions(-) rename pertpy/{_utils.py => _doc.py} (60%) diff --git a/pertpy/_utils.py b/pertpy/_doc.py similarity index 60% rename from pertpy/_utils.py rename to pertpy/_doc.py index 212692bf..14c7fb31 100644 --- a/pertpy/_utils.py +++ b/pertpy/_doc.py @@ -1,21 +1,5 @@ -from pathlib import Path from textwrap import dedent -import matplotlib.pyplot as plt -from matplotlib.pyplot import Figure - - -def return_fig_or_show( - show: bool, - return_fig: bool = False, -) -> Figure | None: - plt.tight_layout() - if show: - plt.show() - if return_fig: - return plt.gcf() - return None - def _doc_params(**kwds): # pragma: no cover """\ diff --git a/pertpy/metadata/_cell_line.py b/pertpy/metadata/_cell_line.py index 07e6af87..ac89ae59 100644 --- a/pertpy/metadata/_cell_line.py +++ b/pertpy/metadata/_cell_line.py @@ -16,7 +16,7 @@ from scanpy import settings from scipy import stats -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args from pertpy.data._dataloader import _download from ._look_up import LookUp diff --git a/pertpy/preprocessing/_guide_rna.py b/pertpy/preprocessing/_guide_rna.py index 6d280610..d8ddc764 100644 --- a/pertpy/preprocessing/_guide_rna.py +++ b/pertpy/preprocessing/_guide_rna.py @@ -9,7 +9,7 @@ import scanpy as sc import scipy -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from anndata import AnnData diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index b766e481..5c682128 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -36,7 +36,7 @@ from skmisc.loess import loess from statsmodels.stats.multitest import fdrcorrection -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from matplotlib.axes import Axes diff --git a/pertpy/tools/_cinemaot.py b/pertpy/tools/_cinemaot.py index 3e098ea4..a2f1cd38 100644 --- a/pertpy/tools/_cinemaot.py +++ b/pertpy/tools/_cinemaot.py @@ -18,7 +18,7 @@ from sklearn.linear_model import LinearRegression from sklearn.neighbors import NearestNeighbors -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from anndata import AnnData diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index e7c91ea7..c320b1b3 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -26,7 +26,7 @@ from rich.table import Table from scipy.cluster import hierarchy as sp_hierarchy -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence diff --git a/pertpy/tools/_dialogue.py b/pertpy/tools/_dialogue.py index 8e916437..61a842ca 100644 --- a/pertpy/tools/_dialogue.py +++ b/pertpy/tools/_dialogue.py @@ -25,7 +25,7 @@ from sparsecca import lp_pmd, multicca_permute, multicca_pmd from statsmodels.sandbox.stats.multicomp import multipletests -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from matplotlib.axes import Axes diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 718aee49..9cf4fd69 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -19,7 +19,7 @@ from matplotlib.pyplot import Figure from matplotlib.ticker import MaxNLocator -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args from pertpy.tools import PseudobulkSpace from pertpy.tools._differential_gene_expression._checks import check_is_numeric_matrix from pertpy.tools._differential_gene_expression._formulaic import ( diff --git a/pertpy/tools/_enrichment.py b/pertpy/tools/_enrichment.py index 151406b0..63f9b5fa 100644 --- a/pertpy/tools/_enrichment.py +++ b/pertpy/tools/_enrichment.py @@ -15,7 +15,7 @@ from scipy.stats import hypergeom from statsmodels.stats.multitest import multipletests -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args from pertpy.metadata import Drug diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 98222964..2244788c 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -13,7 +13,7 @@ from lamin_utils import logger from mudata import MuData -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index c3a88f57..53577a2b 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -18,7 +18,7 @@ from sklearn.mixture import GaussianMixture import pertpy as pt -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args if TYPE_CHECKING: from collections.abc import Sequence diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index 5a7ad129..6a6db40c 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -8,7 +8,7 @@ from anndata import AnnData from sklearn.cluster import DBSCAN, KMeans -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args from pertpy.tools._perturbation_space._clustering import ClusteringSpace from pertpy.tools._perturbation_space._perturbation_space import PerturbationSpace diff --git a/pertpy/tools/_scgen/_scgen.py b/pertpy/tools/_scgen/_scgen.py index 8a213315..3168de01 100644 --- a/pertpy/tools/_scgen/_scgen.py +++ b/pertpy/tools/_scgen/_scgen.py @@ -18,7 +18,7 @@ from scvi.model.base import BaseModelClass, JaxTrainingMixin from scvi.utils import setup_anndata_dsp -from pertpy._utils import _doc_params, doc_common_plot_args +from pertpy._doc import _doc_params, doc_common_plot_args from ._scgenvae import JaxSCGENVAE from ._utils import balancer, extractor From 0ddfe79316c78c4a7221a9160a83f94dd2c45a94 Mon Sep 17 00:00:00 2001 From: Lilly Date: Mon, 9 Sep 2024 15:23:57 +0200 Subject: [PATCH 16/19] Fixed edgeR test --- pertpy/tools/_differential_gene_expression/_base.py | 1 - tests/tools/_differential_gene_expression/test_edger.py | 3 --- 2 files changed, 4 deletions(-) diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 9cf4fd69..369b082c 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -742,7 +742,6 @@ def plot_fold_change( self, results_df: pd.DataFrame, *, - pairedby: str = None, # TODO: Discuss how to include var_names: Sequence[str] = None, n_top_vars: int = 15, y_label: str = "Log2 fold change", diff --git a/tests/tools/_differential_gene_expression/test_edger.py b/tests/tools/_differential_gene_expression/test_edger.py index 9967921b..27b4584a 100644 --- a/tests/tools/_differential_gene_expression/test_edger.py +++ b/tests/tools/_differential_gene_expression/test_edger.py @@ -7,7 +7,6 @@ def test_edger_simple(test_adata): 1. Initialized 2. Fitted 3. That test_contrast returns a DataFrame with the correct number of rows - 4. That the plot_volcano method works """ method = EdgeR(adata=test_adata, design="~condition") method.fit() @@ -15,8 +14,6 @@ def test_edger_simple(test_adata): assert len(res_df) == test_adata.n_vars - method.plot_volcano(res_df, save=False) - def test_edger_complex(test_adata): """Check that the EdgeR method can be initialized with a different covariate name and fitted and that the test_contrast From 5a2e14dc95f609972be2453e3a0982c0153be51a Mon Sep 17 00:00:00 2001 From: Lilly Date: Mon, 9 Sep 2024 21:45:03 +0200 Subject: [PATCH 17/19] Use p-values from results_df in plot_paired --- .../_differential_gene_expression/_base.py | 130 ++++++------------ 1 file changed, 44 insertions(+), 86 deletions(-) diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 369b082c..54ce26ea 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -515,20 +515,21 @@ def _map_genes_categories_highlight( def plot_paired( self, adata: ad.AnnData, - var_names: Sequence[str], + results_df: pd.DataFrame, groupby: str, + pairedby: str, *, - pairedby: str = None, - hue: str = None, + var_names: Sequence[str] = None, + n_top_vars: int = 15, layer: str = None, + pvalue_col: str = "adj_p_value", + symbol_col: str = "variable", n_cols: int = 4, panel_size: tuple[int, int] = (5, 5), show_legend: bool = True, size: int = 10, y_label: str = "expression", - pvalues: Sequence[float] = None, - pvalue_template=lambda x: f"unadj. p={x:.2f}, t-test", - adjust_fdr: bool = False, + pvalue_template=lambda x: f"unadj. p={x:.2e}, t-test", boxplot_properties=None, palette=None, show: bool = True, @@ -540,19 +541,20 @@ def plot_paired( Args: adata: AnnData object, can be pseudobulked. + results_df: DataFrame with results from a differential expression test. + groupby: .obs column containing the grouping. Must contain exactly two different values. + pairedby: .obs column containing the pairing (e.g. "patient_id"). If None, an independent t-test is performed. var_names: Variables to plot. - groupby: Column in adata.obs containing the grouping. Must contain exactly two different values. - pairedby: Column in adata.obs containing the pairing (e.g. "patient_id"). If None, an independent t-test is performed. - hue: Column in adata.obs to color by. + n_top_vars: Number of top variables to plot. layer: Layer to use for plotting. + pvalue_col: Column name of the p values. + symbol_col: Column name of gene IDs. n_cols: Number of columns in the plot. panel_size: Size of each panel. show_legend: Whether to show the legend. size: Size of the points. y_label: Label for the y-axis. - pvalues: P-values for each variable. If None, they are calculated. pvalue_template: Template for the p-value string displayed in the title of each panel. - adjust_fdr: Whether to correct p-values for false discovery rate. boxplot_properties: Additional properties for the boxplot, passed to seaborn.boxplot. palette: Color palette for the line- and stripplot. {common_plot_args} @@ -580,7 +582,7 @@ def plot_paired( >>> res_df = edgr.test_contrasts( ... edgr.contrast(column="Treatment", baseline="Chemo", group_to_compare="Anti-PD-L1+Chemo") ... ) - >>> edgr.plot_paired(pdata, var_names=res_df["variable"][:8], groupby="Treatment", pairedby="Major celltype") + >>> edgr.plot_paired(pdata, results_df=res_df, n_top_vars=8, groupby="Treatment", pairedby="Efficacy") Preview: .. image:: /_static/docstring_previews/de_paired_expression.png @@ -590,12 +592,13 @@ def plot_paired( groups = adata.obs[groupby].unique() if len(groups) != 2: raise ValueError("The number of groups in the group_by column must be exactly 2 to enable paired testing") - if pairedby is not None and hue is not None and (adata.obs.groupby(pairedby)[hue].nunique().max() > 1): - raise ValueError("Each paired sample must have an unambiguous hue") + + if var_names is None: + var_names = results_df.sort_values(pvalue_col, ascending=True).head(n_top_vars)[symbol_col].tolist() adata = adata[:, var_names] - if pairedby is not None and any(adata.obs[[groupby, pairedby]].value_counts() > 1): + if any(adata.obs[[groupby, pairedby]].value_counts() > 1): logger.info("Performing pseudobulk for paired samples") ps = PseudobulkSpace() adata = ps.compute( @@ -611,52 +614,18 @@ def plot_paired( except AttributeError: pass - groupby_cols = [groupby] - if pairedby is not None: - groupby_cols.insert(0, pairedby) - if hue is not None: - groupby_cols.insert(0, hue) - + groupby_cols = [pairedby, groupby] df = adata.obs.loc[:, groupby_cols].join(pd.DataFrame(X, index=adata.obs_names, columns=var_names)) - if pairedby is not None: - # remove unpaired samples - paired_samples = set(df[df[groupby] == groups[0]][pairedby]) & set(df[df[groupby] == groups[1]][pairedby]) - df = df[df[pairedby].isin(paired_samples)] - removed_samples = adata.obs[pairedby].nunique() - len(df[pairedby].unique()) - if removed_samples > 0: - logger.warning(f"{removed_samples} unpaired samples removed") - - # perform statistics (paired ttest) - if pvalues is None: - _, pvalues = scipy.stats.ttest_rel( - df.loc[ - df[groupby] == groups[0], - var_names, - ], - df.loc[ - df[groupby] == groups[1], - var_names, - ], - ) - - df.reset_index(drop=False, inplace=True) + # remove unpaired samples + paired_samples = set(df[df[groupby] == groups[0]][pairedby]) & set(df[df[groupby] == groups[1]][pairedby]) + df = df[df[pairedby].isin(paired_samples)] + removed_samples = adata.obs[pairedby].nunique() - len(df[pairedby].unique()) + if removed_samples > 0: + logger.warning(f"{removed_samples} unpaired samples removed") - else: - if pvalues is None: - _, pvalues = scipy.stats.ttest_ind( - df.loc[ - df[groupby] == groups[0], - var_names, - ], - df.loc[ - df[groupby] == groups[1], - var_names, - ], - ) - - if adjust_fdr: - pvalues = statsmodels.stats.multitest.fdrcorrection(pvalues)[1] + pvalues = results_df.set_index(symbol_col).loc[var_names, pvalue_col].values + df.reset_index(drop=False, inplace=True) # transform data for seaborn df_melt = df.melt( @@ -665,7 +634,6 @@ def plot_paired( value_name="val", ) - # start plotting n_panels = len(var_names) nrows = math.ceil(n_panels / n_cols) ncols = min(n_cols, n_panels) @@ -678,8 +646,6 @@ def plot_paired( squeeze=False, ) axes = axes.flatten() - if hue is None: - hue = pairedby for i, (var, ax) in enumerate(zip_longest(var_names, axes)): if var is not None: sns.boxplot( @@ -695,9 +661,9 @@ def plot_paired( sns.lineplot( x=groupby, data=df_melt.loc[df_melt["var"] == var], - hue=hue, y="val", ax=ax, + hue=pairedby, legend=False, errorbar=None, palette=palette, @@ -708,7 +674,7 @@ def plot_paired( data=df_melt.loc[df_melt["var"] == var], y="val", ax=ax, - hue=hue, + hue=pairedby, jitter=jitter, size=size, linewidth=1, @@ -729,8 +695,11 @@ def plot_paired( if show_legend is True: axes[n_panels - 1].legend().set_visible(True) - axes[n_panels - 1].legend(bbox_to_anchor=(1.1, 1.05)) + axes[n_panels - 1].legend( + bbox_to_anchor=(0.5, -0.1), loc="upper center", ncol=adata.obs[pairedby].nunique() + ) + plt.tight_layout() if show: plt.show() if return_fig: @@ -744,6 +713,8 @@ def plot_fold_change( *, var_names: Sequence[str] = None, n_top_vars: int = 15, + log2fc_col: str = "log_fc", + symbol_col: str = "variable", y_label: str = "Log2 fold change", figsize: tuple[int, int] = (10, 5), show: bool = True, @@ -754,9 +725,10 @@ def plot_fold_change( Args: results_df: DataFrame with results from DE analysis. - pairedby: Column in results_df containing information about paired samples. var_names: Variables to plot. If None, the top n_top_vars variables based on the log2 fold change are plotted. n_top_vars: Number of top variables to plot. The top and bottom n_top_vars variables are plotted, respectively. + log2fc_col: Column name of log2 Fold-Change values. + symbol_col: Column name of gene IDs. y_label: Label for the y-axis. figsize: Size of the figure. {common_plot_args} @@ -791,33 +763,19 @@ def plot_fold_change( .. image:: /_static/docstring_previews/de_fold_change.png """ if var_names is None: - var_names = results_df.sort_values("log_fc", ascending=False).head(n_top_vars)["variable"].tolist() - var_names += results_df.sort_values("log_fc", ascending=True).head(n_top_vars)["variable"].tolist() + var_names = results_df.sort_values(log2fc_col, ascending=False).head(n_top_vars)[symbol_col].tolist() + var_names += results_df.sort_values(log2fc_col, ascending=True).head(n_top_vars)[symbol_col].tolist() assert len(var_names) == 2 * n_top_vars - df = results_df[results_df["variable"].isin(var_names)] - df.sort_values("log_fc", ascending=False, inplace=True) - - max_fc = max(df["log_fc"]) - min_fc = min(df["log_fc"]) - - def value_to_color(val): - if val > 0: - return plt.cm.Reds(val / max_fc) - elif val < 0: - return plt.cm.Blues(val / min_fc) - else: - return "grey" - - df["color"] = df["log_fc"].apply(value_to_color) + df = results_df[results_df[symbol_col].isin(var_names)] + df.sort_values(log2fc_col, ascending=False, inplace=True) plt.figure(figsize=figsize) sns.barplot( - x="variable", - y="log_fc", + x=symbol_col, + y=log2fc_col, data=df, - hue="variable", - palette=df["color"].tolist(), + palette="RdBu", legend=False, **barplot_kwargs, ) From 407df8cafeec43c8bed0a2033bf2b2f9439e4d4d Mon Sep 17 00:00:00 2001 From: Lilly Date: Tue, 10 Sep 2024 11:30:16 +0200 Subject: [PATCH 18/19] PR Reviews --- pertpy/preprocessing/_guide_rna.py | 13 ++++----- pertpy/tools/_augur.py | 6 ++++- pertpy/tools/_cinemaot.py | 9 ++++--- pertpy/tools/_coda/_base_coda.py | 27 +++++++++++-------- pertpy/tools/_dialogue.py | 6 +++-- .../_differential_gene_expression/_base.py | 4 +-- pertpy/tools/_enrichment.py | 2 ++ pertpy/tools/_milo.py | 14 ++++++++-- pertpy/tools/_mixscape.py | 16 ++++++----- pertpy/tools/_perturbation_space/_simple.py | 1 + pertpy/tools/_scgen/_scgen.py | 8 +++++- 11 files changed, 71 insertions(+), 35 deletions(-) diff --git a/pertpy/preprocessing/_guide_rna.py b/pertpy/preprocessing/_guide_rna.py index d8ddc764..50fad2bf 100644 --- a/pertpy/preprocessing/_guide_rna.py +++ b/pertpy/preprocessing/_guide_rna.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: from anndata import AnnData - from matplotlib.axes import Axes + from matplotlib.pyplot import Figure class GuideAssignment: @@ -113,13 +113,14 @@ def assign_to_max_guide( def plot_heatmap( self, adata: AnnData, + *, layer: str | None = None, order_by: np.ndarray | str | None = None, key_to_save_order: str = None, show: bool = True, return_fig: bool = False, **kwargs, - ) -> list[Axes]: + ) -> Figure | None: """Heatmap plotting of guide RNA expression matrix. Assuming guides have sparse expression, this function reorders cells @@ -141,8 +142,8 @@ def plot_heatmap( kwargs: Are passed to sc.pl.heatmap. Returns: - If return_fig is True, returns a list of Axes. Alternatively you can pass save or show parameters as they will be passed to sc.pl.heatmap. - Order of cells in the y-axis will be saved on adata.obs[key_to_save_order] if provided. + If `return_fig` is `True`, returns the figure, otherwise `None`. + Order of cells in the y-axis will be saved on `adata.obs[key_to_save_order]` if provided. Examples: Each cell is assigned to gRNA that occurs at least 5 times in the respective cell, which is then @@ -179,7 +180,7 @@ def plot_heatmap( adata.obs[key_to_save_order] = pd.Categorical(order) try: - axis_group = sc.pl.heatmap( + fig = sc.pl.heatmap( adata[order, :], var_names=adata.var.index.tolist(), groupby=temp_col_name, @@ -196,5 +197,5 @@ def plot_heatmap( if show: plt.show() if return_fig: - return axis_group + return fig return None diff --git a/pertpy/tools/_augur.py b/pertpy/tools/_augur.py index 5c682128..bd226f6f 100644 --- a/pertpy/tools/_augur.py +++ b/pertpy/tools/_augur.py @@ -979,6 +979,7 @@ def predict_differential_prioritization( def plot_dp_scatter( self, results: pd.DataFrame, + *, top_n: int = None, ax: Axes = None, show: bool = True, @@ -1050,6 +1051,7 @@ def plot_dp_scatter( def plot_important_features( self, data: dict[str, Any], + *, key: str = "augurpy_results", top_n: int = 10, ax: Axes = None, @@ -1117,11 +1119,12 @@ def plot_important_features( def plot_lollipop( self, data: dict[str, Any] | AnnData, + *, key: str = "augurpy_results", ax: Axes = None, show: bool = True, return_fig: bool = False, - ) -> Axes | Figure | None: + ) -> Figure | None: """Plot a lollipop plot of the mean augur values. Args: @@ -1180,6 +1183,7 @@ def plot_scatterplot( self, results1: dict[str, Any], results2: dict[str, Any], + *, top_n: int = None, show: bool = True, return_fig: bool = False, diff --git a/pertpy/tools/_cinemaot.py b/pertpy/tools/_cinemaot.py index a2f1cd38..f79ea951 100644 --- a/pertpy/tools/_cinemaot.py +++ b/pertpy/tools/_cinemaot.py @@ -651,6 +651,7 @@ def plot_vis_matching( control: str, de_label: str, source_label: str, + *, matching_rep: str = "ot", resolution: float = 0.5, normalize: str = "col", @@ -677,6 +678,9 @@ def plot_vis_matching( {common_plot_args} **kwargs: Other parameters to input for seaborn.heatmap. + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + Examples: >>> import pertpy as pt >>> adata = pt.dt.cinemaot_example() @@ -716,10 +720,7 @@ def plot_vis_matching( if show: plt.show() if return_fig: - if ax is not None: - return ax - else: - return g + return g return None diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index c320b1b3..65110586 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -1192,6 +1192,7 @@ def plot_stacked_barplot( # pragma: no cover self, data: AnnData | MuData, feature_name: str, + *, modality_key: str = "coda", palette: ListedColormap | None = cm.tab20, show_legend: bool | None = True, @@ -1200,7 +1201,7 @@ def plot_stacked_barplot( # pragma: no cover dpi: int | None = 100, show: bool = True, return_fig: bool = False, - ) -> plt.Axes | Figure | None: + ) -> Figure | None: """Plots a stacked barplot for all levels of a covariate or all samples (if feature_name=="samples"). Args: @@ -1287,6 +1288,7 @@ def plot_stacked_barplot( # pragma: no cover def plot_effects_barplot( # pragma: no cover self, data: AnnData | MuData, + *, modality_key: str = "coda", covariates: str | list | None = None, parameter: Literal["log2-fold change", "Final Parameter", "Expected Sample"] = "log2-fold change", @@ -1300,7 +1302,7 @@ def plot_effects_barplot( # pragma: no cover dpi: int | None = 100, show: bool = True, return_fig: bool = False, - ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: + ) -> Figure | None: """Barplot visualization for effects. The effect results for each covariate are shown as a group of barplots, with intra--group separation by cell types. @@ -1322,8 +1324,7 @@ def plot_effects_barplot( # pragma: no cover {common_plot_args} Returns: - Depending on `plot_facets`, returns a :class:`~matplotlib.axes.Axes` (`plot_facets = False`) - or :class:`~sns.axisgrid.FacetGrid` (`plot_facets = True`) object + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1476,6 +1477,7 @@ def plot_boxplots( # pragma: no cover self, data: AnnData | MuData, feature_name: str, + *, modality_key: str = "coda", y_scale: Literal["relative", "log", "log10", "count"] = "relative", plot_facets: bool = False, @@ -1490,7 +1492,7 @@ def plot_boxplots( # pragma: no cover dpi: int | None = 100, show: bool = True, return_fig: bool = False, - ) -> plt.Axes | plt.Figure | sns.axisgrid.FacetGrid | None: + ) -> Figure | None: """Grouped boxplot visualization. The cell counts for each cell type are shown as a group of boxplots @@ -1515,8 +1517,7 @@ def plot_boxplots( # pragma: no cover {common_plot_args} Returns: - Depending on `plot_facets`, returns a :class:`~matplotlib.axes.Axes` (`plot_facets = False`) - or :class:`~sns.axisgrid.FacetGrid` (`plot_facets = True`) object + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1707,6 +1708,7 @@ def plot_boxplots( # pragma: no cover def plot_rel_abundance_dispersion_plot( # pragma: no cover self, data: AnnData | MuData, + *, modality_key: str = "coda", abundant_threshold: float | None = 0.9, default_color: str | None = "Grey", @@ -1717,7 +1719,7 @@ def plot_rel_abundance_dispersion_plot( # pragma: no cover ax: plt.Axes | None = None, show: bool = True, return_fig: bool = False, - ) -> plt.Axes | plt.Figure | None: + ) -> Figure | None: """Plots total variance of relative abundance versus minimum relative abundance of all cell types for determination of a reference cell type. If the count of the cell type is larger than 0 in more than abundant_threshold percent of all samples, the cell type will be marked in a different color. @@ -1735,7 +1737,7 @@ def plot_rel_abundance_dispersion_plot( # pragma: no cover {common_plot_args} Returns: - A :class:`~matplotlib.axes.Axes` object + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -1829,6 +1831,7 @@ def label_point(x, y, val, ax): def plot_draw_tree( # pragma: no cover self, data: AnnData | MuData, + *, modality_key: str = "coda", tree: str = "tree", # Also type ete3.Tree. Omitted due to import errors tight_text: bool | None = False, @@ -1912,6 +1915,7 @@ def plot_draw_effects( # pragma: no cover self, data: AnnData | MuData, covariate: str, + *, modality_key: str = "coda", tree: str = "tree", # Also type ete3.Tree. Omitted due to import errors show_legend: bool | None = None, @@ -2106,6 +2110,7 @@ def plot_effects_umap( # pragma: no cover mdata: MuData, effect_name: str | list | None, cluster_key: str, + *, modality_key_1: str = "rna", modality_key_2: str = "coda", color_map: Colormap | str | None = None, @@ -2114,7 +2119,7 @@ def plot_effects_umap( # pragma: no cover show: bool = True, return_fig: bool = False, **kwargs, - ) -> plt.Axes | plt.Figure | None: + ) -> Figure | None: """Plot a UMAP visualization colored by effect strength. Effect results in .varm of aggregated sample-level AnnData (default is data['coda']) are assigned to cell-level AnnData @@ -2134,7 +2139,7 @@ def plot_effects_umap( # pragma: no cover **kwargs: All other keyword arguments are passed to `scanpy.plot.umap()` Returns: - If `return_fig==True` a :class:`~matplotlib.axes.Axes` or a list of it. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt diff --git a/pertpy/tools/_dialogue.py b/pertpy/tools/_dialogue.py index 61a842ca..9eaf349e 100644 --- a/pertpy/tools/_dialogue.py +++ b/pertpy/tools/_dialogue.py @@ -1067,11 +1067,12 @@ def plot_split_violins( adata: AnnData, split_key: str, celltype_key: str, + *, split_which: tuple[str, str] = None, mcp: str = "mcp_0", show: bool = True, return_fig: bool = False, - ) -> Axes | Figure | None: + ) -> Figure | None: """Plots split violin plots for a given MCP and split variable. Any cells with a value for split_key not in split_which are removed from the plot. @@ -1122,10 +1123,11 @@ def plot_pairplot( celltype_key: str, color: str, sample_id: str, + *, mcp: str = "mcp_0", show: bool = True, return_fig: bool = False, - ) -> PairGrid | Figure | None: + ) -> Figure | None: """Generate a pairplot visualization for multi-cell perturbation (MCP) data. Computes the mean of a specified MCP feature (mcp) for each combination of sample and cell type, diff --git a/pertpy/tools/_differential_gene_expression/_base.py b/pertpy/tools/_differential_gene_expression/_base.py index 54ce26ea..c6c30293 100644 --- a/pertpy/tools/_differential_gene_expression/_base.py +++ b/pertpy/tools/_differential_gene_expression/_base.py @@ -529,7 +529,7 @@ def plot_paired( show_legend: bool = True, size: int = 10, y_label: str = "expression", - pvalue_template=lambda x: f"unadj. p={x:.2e}, t-test", + pvalue_template=lambda x: f"p={x:.2e}", boxplot_properties=None, palette=None, show: bool = True, @@ -594,7 +594,7 @@ def plot_paired( raise ValueError("The number of groups in the group_by column must be exactly 2 to enable paired testing") if var_names is None: - var_names = results_df.sort_values(pvalue_col, ascending=True).head(n_top_vars)[symbol_col].tolist() + var_names = results_df.head(n_top_vars)[symbol_col].tolist() adata = adata[:, var_names] diff --git a/pertpy/tools/_enrichment.py b/pertpy/tools/_enrichment.py index 63f9b5fa..8c6b6bc5 100644 --- a/pertpy/tools/_enrichment.py +++ b/pertpy/tools/_enrichment.py @@ -296,6 +296,7 @@ def gsea( def plot_dotplot( self, adata: AnnData, + *, targets: dict[str, dict[str, list[str]]] = None, source: Literal["chembl", "dgidb", "pharmgkb"] = "chembl", category_name: str = "interaction_type", @@ -426,6 +427,7 @@ def plot_gsea( self, adata: AnnData, enrichment: dict[str, pd.DataFrame], + *, n: int = 10, key: str = "pertpy_enrichment_gsea", interactive_plot: bool = False, diff --git a/pertpy/tools/_milo.py b/pertpy/tools/_milo.py index 2244788c..53bda6b9 100644 --- a/pertpy/tools/_milo.py +++ b/pertpy/tools/_milo.py @@ -718,6 +718,7 @@ def _graph_spatial_fdr( def plot_nhood_graph( self, mdata: MuData, + *, alpha: float = 0.1, min_logFC: float = 0, min_size: int = 10, @@ -813,6 +814,7 @@ def plot_nhood( self, mdata: MuData, ix: int, + *, feature_key: str | None = "rna", basis: str = "X_umap", color_map: Colormap | str | None = None, @@ -874,6 +876,7 @@ def plot_nhood( def plot_da_beeswarm( self, mdata: MuData, + *, feature_key: str | None = "rna", anno_col: str = "nhood_annotation", alpha: float = 0.1, @@ -881,7 +884,7 @@ def plot_da_beeswarm( palette: str | Sequence[str] | dict[str, str] | None = None, show: bool = True, return_fig: bool = False, - ) -> Figure | Axes | None: + ) -> Figure | None: """Plot beeswarm plot of logFC against nhood labels Args: @@ -894,6 +897,9 @@ def plot_da_beeswarm( Defaults to pre-defined category colors for violinplots. {common_plot_args} + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. + Examples: >>> import pertpy as pt >>> import scanpy as sc @@ -999,11 +1005,12 @@ def plot_nhood_counts_by_cond( self, mdata: MuData, test_var: str, + *, subset_nhoods: list[str] = None, log_counts: bool = False, show: bool = True, return_fig: bool = False, - ) -> Figure | Axes | None: + ) -> Figure | None: """Plot boxplot of cell numbers vs condition of interest. Args: @@ -1012,6 +1019,9 @@ def plot_nhood_counts_by_cond( subset_nhoods: List of obs_names for neighbourhoods to include in plot. If None, plot all nhoods. log_counts: Whether to plot log1p of cell counts. {common_plot_args} + + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. """ try: nhood_adata = mdata["milo"].T.copy() diff --git a/pertpy/tools/_mixscape.py b/pertpy/tools/_mixscape.py index 53577a2b..ade7ea49 100644 --- a/pertpy/tools/_mixscape.py +++ b/pertpy/tools/_mixscape.py @@ -513,16 +513,16 @@ def plot_barplot( # pragma: no cover self, adata: AnnData, guide_rna_column: str, + *, mixscape_class_global: str = "mixscape_class_global", axis_text_x_size: int = 8, axis_text_y_size: int = 6, axis_title_size: int = 8, legend_title_size: int = 8, legend_text_size: int = 8, - ax: Axes | None = None, show: bool = True, return_fig: bool = False, - ): + ) -> Figure | None: """Barplot to visualize perturbation scores calculated by the `mixscape` function. Args: @@ -614,6 +614,7 @@ def plot_heatmap( # pragma: no cover labels: str, target_gene: str, control: str, + *, layer: str | None = None, method: str | None = "wilcoxon", subsample_number: int | None = 900, @@ -622,7 +623,7 @@ def plot_heatmap( # pragma: no cover show: bool = True, return_fig: bool = False, **kwds, - ) -> Axes | None: + ) -> Figure | None: """Heatmap plot using mixscape results. Requires `pt.tl.mixscape()` to be run first. Args: @@ -639,7 +640,7 @@ def plot_heatmap( # pragma: no cover **kwds: Additional arguments to `scanpy.pl.rank_genes_groups_heatmap`. Returns: - If `return_fig` is `True`, return a :class:`~matplotlib.axes.Axes`. + If `return_fig` is `True`, returns the figure, otherwise `None`. Examples: >>> import pertpy as pt @@ -684,6 +685,7 @@ def plot_perturbscore( # pragma: no cover adata: AnnData, labels: str, target_gene: str, + *, mixscape_class: str = "mixscape_class", color: str = "orange", palette: dict[str, str] = None, @@ -856,6 +858,7 @@ def plot_violin( # pragma: no cover self, adata: AnnData, target_gene_idents: str | list[str], + *, keys: str | Sequence[str] = "mixscape_class_p_ko", groupby: str | None = "mixscape_class", log: bool = False, @@ -875,7 +878,7 @@ def plot_violin( # pragma: no cover show: bool = True, return_fig: bool = False, **kwargs, - ) -> Axes | None: + ) -> Axes | Figure | None: """Violin plot using mixscape results. Requires `pt.tl.mixscape` to be run first. @@ -897,7 +900,7 @@ def plot_violin( # pragma: no cover **kwargs: Additional arguments to `seaborn.violinplot`. Returns: - A :class:`~matplotlib.axes.Axes` object if `ax` is `None` else `None`. + If `return_fig` is `True`, returns the figure (as Axes list if it's a multi-panel plot), otherwise `None`. Examples: >>> import pertpy as pt @@ -1060,6 +1063,7 @@ def plot_lda( # pragma: no cover self, adata: AnnData, control: str, + *, mixscape_class: str = "mixscape_class", mixscape_class_global: str = "mixscape_class_global", perturbation_type: str | None = "KO", diff --git a/pertpy/tools/_perturbation_space/_simple.py b/pertpy/tools/_perturbation_space/_simple.py index 6a6db40c..a3cd954d 100644 --- a/pertpy/tools/_perturbation_space/_simple.py +++ b/pertpy/tools/_perturbation_space/_simple.py @@ -180,6 +180,7 @@ def plot_psbulk_samples( self, adata: AnnData, groupby: str, + *, show: bool = True, return_fig: bool = False, **kwargs, diff --git a/pertpy/tools/_scgen/_scgen.py b/pertpy/tools/_scgen/_scgen.py index 3168de01..eca887ee 100644 --- a/pertpy/tools/_scgen/_scgen.py +++ b/pertpy/tools/_scgen/_scgen.py @@ -381,6 +381,7 @@ def plot_reg_mean_plot( condition_key: str, axis_keys: dict[str, str], labels: dict[str, str], + *, gene_list: list[str] = None, top_100_genes: list[str] = None, verbose: bool = False, @@ -521,6 +522,7 @@ def plot_reg_var_plot( condition_key: str, axis_keys: dict[str, str], labels: dict[str, str], + *, gene_list: list[str] = None, top_100_genes: list[str] = None, legend: bool = True, @@ -650,10 +652,11 @@ def plot_binary_classifier( delta: np.ndarray, ctrl_key: str, stim_key: str, + *, fontsize: float = 14, show: bool = True, return_fig: bool = False, - ) -> plt.Axes | None: + ) -> Figure | None: """Plots the dot product between delta and latent representation of a linear classifier. Builds a linear classifier based on the dot product between @@ -670,6 +673,9 @@ def plot_binary_classifier( stim_key: Key for `stimulated` part of the `data` found in `condition_key`. fontsize: Set the font size of the plot. {common_plot_args} + + Returns: + If `return_fig` is `True`, returns the figure, otherwise `None`. """ plt.close("all") adata = scgen._validate_anndata(adata) From 7e814fa1def1d0aec8714df65348d46d655bf03c Mon Sep 17 00:00:00 2001 From: Lilly Date: Tue, 10 Sep 2024 14:09:47 +0200 Subject: [PATCH 19/19] Pull submodule --- docs/tutorials/notebooks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/notebooks b/docs/tutorials/notebooks index 7b014d1f..55d33929 160000 --- a/docs/tutorials/notebooks +++ b/docs/tutorials/notebooks @@ -1 +1 @@ -Subproject commit 7b014d1f11135821667188a4d26bf2156fb18b9a +Subproject commit 55d33929ce3ab5d4d38d5ae8b7684c822f720124