Note
Click here to download the full example code
Plot initial states
This example shows how to compute and plot the initial states of the cell-state transition.
CellRank can be applied to any cell-state transition, be it differentiation, regeneration, reprogramming or other.
import cellrank as cr
adata = cr.datasets.pancreas_preprocessed("../example.h5ad")
adata
Out:
AnnData object with n_obs × n_vars = 2531 × 2000
obs: 'day', 'proliferation', 'G2M_score', 'S_score', 'phase', 'clusters_coarse', 'clusters', 'clusters_fine', 'louvain_Alpha', 'louvain_Beta', 'initial_size_unspliced', 'initial_size_spliced', 'initial_size', 'n_counts', 'velocity_self_transition', 'dpt_pseudotime'
var: 'highly_variable_genes', 'gene_count_corr', 'means', 'dispersions', 'dispersions_norm', 'fit_r2', 'fit_alpha', 'fit_beta', 'fit_gamma', 'fit_t_', 'fit_scaling', 'fit_std_u', 'fit_std_s', 'fit_likelihood', 'fit_u0', 'fit_s0', 'fit_pval_steady', 'fit_steady_u', 'fit_steady_s', 'fit_variance', 'fit_alignment_scaling', 'velocity_genes'
uns: 'clusters_colors', 'clusters_fine_colors', 'diffmap_evals', 'iroot', 'louvain_Alpha_colors', 'louvain_Beta_colors', 'neighbors', 'pca', 'recover_dynamics', 'velocity_graph', 'velocity_graph_neg', 'velocity_params'
obsm: 'X_diffmap', 'X_pca', 'X_umap', 'velocity_umap'
varm: 'PCs', 'loss'
layers: 'Ms', 'Mu', 'fit_t', 'fit_tau', 'fit_tau_', 'spliced', 'unspliced', 'velocity', 'velocity_u'
obsp: 'connectivities', 'distances'
First, we compute the initial states. By default, we’re using the cellrank.tl.estimators.GPCCA
estimator.
The parameter cluster_key
tries to associate the names of the initial states with cluster labels, whereas
n_cells
controls how many cells we take from each initial state as categorical observation - this is only
available to the above mentioned estimator. We can show some plots of interest by specifying show_plots=True
.
cr.tl.initial_states(
adata,
cluster_key="clusters",
n_cells=30,
softmax_scale=4,
n_states=1,
show_progress_bar=False,
)
Out:
/home/docs/checkouts/readthedocs.org/user_builds/cellrank/checkouts/stable/examples/plotting/plot_initial_states.py:20: DeprecationWarning: `cellrank.tl.initial_states` will be removed in version `2.0`. Please use the `cellrank.kernels` or `cellrank.estimators` interface instead.
cr.tl.initial_states(
/home/docs/checkouts/readthedocs.org/user_builds/cellrank/checkouts/stable/cellrank/tl/_init_term_states.py:156: DeprecationWarning: `cellrank.tl.transition_matrix` will be removed in version `2.0`. Please use the `cellrank.kernels` or `cellrank.estimators` interface instead.
kernel = transition_matrix(
We can now plot the initial states. By default, when using cellrank.tl.estimators.GPCCA
, we plot continuous
membership vectors to visualize individual cells associations with an initial state.
We can also plot membership vectors for different initial states separately if we computed more than one initial
state using same_plot=False
. As we only have one initial state here, this does not make sense.
cr.pl.initial_states(adata)

Lastly, we can discretize the assignment of cells to initial states by showing the cells most
likely to belong to the initial state by specifying the discrete
parameter.
cr.pl.initial_states(adata, discrete=True)

To see how to compute and plot the terminal states or the lineages, see Plot terminal states or Plot lineages, respectively.
Total running time of the script: ( 0 minutes 7.462 seconds)
Estimated memory usage: 298 MB