Source code for ehrapy.plot._qc
from __future__ import annotations
from anndata import AnnData
from rich.console import Console
from rich.table import Table
[docs]def qc_metrics(adata: AnnData, extra_columns: list[str] | None = None) -> None: # pragma: no cover
"""Plots the calculated quality control metrics for var of adata.
Per default this will display the following features:
``missing_values_abs``, ``missing_values_pct``, ``mean``, ``median``, ``standard_deviation``, ``max``, ``min``.
Args:
adata: Annotated data matrix.
extra_columns: List of custom (qc) var columns to be displayed additionally.
Examples:
>>> import ehrapy as ep
>>> adata = ep.dt.mimic_2(encoded=True)
>>> ep.pp.qc_metrics(adata)
>>> ep.pl.qc_metrics(adata)
"""
table = Table(title="[bold blue]Ehrapy qc metrics of var")
# add special column header for the column name
table.add_column("[bold blue]Column name", justify="right", style="bold green")
var_names = list(adata.var_names)
# default qc columns added to var
fixed_qc_columns = [
"missing_values_abs",
"missing_values_pct",
"mean",
"median",
"standard_deviation",
"min",
"max",
]
# update columns to display with extra columns (if any)
columns_to_display = fixed_qc_columns if not extra_columns else fixed_qc_columns + extra_columns
# check whether all columns exist (qc has been executed before and extra columns are var columns)
if (set(columns_to_display) & set(adata.var.columns)) != set(columns_to_display):
raise AttributeError(
"Cannot display QC metrics of current AnnData object. Either QC has not been executed before or "
"some column(s) of the extra_columns parameter are not in var!"
)
vars_to_display = adata.var[columns_to_display]
# add column headers
for col in vars_to_display:
table.add_column(f"[bold blue]{col}", justify="right", style="bold green")
for var in range(len(vars_to_display)):
table.add_row(var_names[var], *map(str, list(vars_to_display.iloc[var])))
console = Console()
console.print(table)