import cellrank as cr
import scanpy as sc
sc.settings.set_figure_params(frameon=False, dpi=100)
cr.settings.verbosity = 2
import warnings
warnings.simplefilter("ignore", category=UserWarning)
import scvelo as scv
scv.set_figure_params('scvelo')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as snsHuman CellRank
human_adata = sc.read('../results/02_human_integration/scvi/adata.h5ad')human_adata.obs.head()| day | ct | experiment | technology | n_counts | n_genes | ct_fine | batch | stage | timepoint | ct_orig | _scvi_batch | _scvi_labels | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| index | |||||||||||||
| ERX3015937_ERX3015937 | 5.0 | Unknown | Meistermann et al., 2021 | SMARTSeq2 | 708313.0 | 5761 | Unknown | Meistermann et al., 2021 | Unknown | E5.0 | Unknown | 0 | 0 |
| ERX3015939_ERX3015939 | 5.0 | Unknown | Meistermann et al., 2021 | SMARTSeq2 | 402557.0 | 5689 | Unknown | Meistermann et al., 2021 | Unknown | E5.0 | Unknown | 0 | 0 |
| ERX3015940_ERX3015940 | 5.0 | Unknown | Meistermann et al., 2021 | SMARTSeq2 | 511338.0 | 6039 | Unknown | Meistermann et al., 2021 | Unknown | E5.0 | Unknown | 0 | 0 |
| ERX3015941_ERX3015941 | 5.0 | Unknown | Meistermann et al., 2021 | SMARTSeq2 | 994383.0 | 8383 | Unknown | Meistermann et al., 2021 | Unknown | E5.0 | Unknown | 0 | 0 |
| ERX3015936_ERX3015936 | 5.0 | Unknown | Meistermann et al., 2021 | SMARTSeq2 | 1389486.0 | 7762 | Unknown | Meistermann et al., 2021 | Unknown | E5.0 | Unknown | 0 | 0 |
sc.pp.neighbors(human_adata, use_rep='X_scVI')
sc.tl.diffmap(human_adata)
sc.tl.paga(human_adata, groups='C_scANVI_nsamples')
sc.pl.paga(human_adata, color=['C_scANVI_nsamples'], frameon=False, fontoutline=True)
sc.tl.draw_graph(human_adata, init_pos='paga', n_jobs=10)2024-01-12 13:25:32.739451: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
KeyError: "`groups` key 'C_scANVI_nsamples' not found in `adata.obs`."
sc.pl.paga(human_adata, color=['C_scANVI_nsamples'], frameon=False, fontoutline=True, threshold=0.2)sc.pl.embedding(human_adata, basis="X_draw_graph_fa", color=["day"])1 Cellrank experimental time kernel
human_adata.obs.day.value_counts()human_adata_8C_and_later = human_adata[human_adata.obs.day >= 3].copy()from cellrank.kernels import RealTimeKernelhuman_adata.obs['day_categorical'] = human_adata.obs['day'].astype('category')from moscot.problems.time import TemporalProblemtp = TemporalProblem(human_adata_8C_and_later)tp = tp.prepare(time_key="day_categorical")tp = tp.solve(epsilon=1e-3, tau_a=0.95, scale_cost="mean")tmk = RealTimeKernel.from_moscot(tp)tmk.compute_transition_matrix(self_transitions="all", conn_weight=0.2, threshold="auto")tmk.plot_random_walks(
max_iter=500,
start_ixs={"day_categorical": 3.0},
basis="draw_graph_fa",
seed=0,
dpi=150,
size=30,
)from cellrank.kernels import PseudotimeKernel
pk = PseudotimeKernel(human_adata, time_key="day")
pk.compute_transition_matrix()pk.plot_random_walks(
seed=0,
n_sims=100,
start_ixs={"C_scANVI_nsamples": "Prelineage"},
basis="X_draw_graph_fa",
legend_loc="right",
dpi=150,
)pk.plot_projection(basis="X_draw_graph_fa", recompute=True, color='C_scANVI_nsamples')