HCC section 2
[1]:
import sdevelo as sv
import scvelo as scv
import anndata
import numpy as np
adata = anndata.read_h5ad('data/HCC/HCC4_data.h5ad')
adata.uns['clusters_colors'] = ["#CB181D", "#EF3B2C", "#FB6A4A", "#FC9272", "#FCBBA1", "#1f77b4", "#A65628", "blue", "#00ee00"]
adata = adata[adata.obs['slice'] == 2]
sorted_codes_list = np.sort(adata.obs['clusters'].unique() - 1).tolist()
adata.uns['clusters_colors'] = [adata.uns['clusters_colors'][i] for i in sorted_codes_list]
(Working on SDEvelo)
2024-09-13 15:29:05
[2]:
args = sv.Config()
args.vis_type_col = 'clusters'
model = sv.SDENN(args, adata)
adata = model.train(args.nEpochs)
cuda
Filtered out 852 genes that are detected 20 counts (shared).
WARNING: Did not normalize X as it looks processed already. To enforce normalization, set `enforce=True`.
Normalized count data: spliced, unspliced.
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
WARNING: Did not modify X as it looks preprocessed already.
computing neighbors
finished (0:00:07) --> added
'distances' and 'connectivities', weighted adjacency matrices (adata.obsp)
computing moments based on connectivities
finished (0:00:00) --> added
'Ms' and 'Mu', moments of un/spliced abundances (adata.layers)
1334
Epoch: 0, Loss: 2.395, alpha: 2.99, beta: 3.17, gamma: 0.01, s1: 0.010, s2: 0.010, t_m: 0.191, u_shift: 0.006, s_shift: 0.007
Epoch: 50, Loss: 1.332, alpha: 58.58, beta: 32.58, gamma: 2.71, s1: 0.010, s2: 0.045, t_m: 0.382, u_shift: -0.021, s_shift: -0.100
Epoch: 100, Loss: 0.907, alpha: 23.95, beta: 56.72, gamma: 0.95, s1: 0.029, s2: 0.043, t_m: 0.383, u_shift: -0.021, s_shift: -0.100
Epoch: 150, Loss: 0.893, alpha: 25.41, beta: 70.78, gamma: 0.62, s1: 0.042, s2: 0.015, t_m: 0.272, u_shift: -0.021, s_shift: -0.100
Epoch: 200, Loss: 0.852, alpha: 31.38, beta: 77.10, gamma: 0.44, s1: 0.049, s2: 0.012, t_m: 0.191, u_shift: -0.021, s_shift: -0.100
Epoch: 250, Loss: 0.894, alpha: 32.93, beta: 77.49, gamma: 0.39, s1: 0.041, s2: 0.012, t_m: 0.171, u_shift: -0.021, s_shift: -0.100
[3]:
kwargs = dict(fontsize=10, density=0.7, arrow_size=3, linewidth=4, alpha=0.5)
sv.plot_streamline(adata, args, **kwargs)
computing velocity graph (using 10/128 cores)
finished (0:00:03) --> added
'sde_velocity_graph', sparse matrix with cosine correlations (adata.uns)
--> added 'sde_velocity_length' (adata.obs)
--> added 'sde_velocity_confidence' (adata.obs)
--> added 'sde_velocity_confidence_transition' (adata.obs)
computing velocity embedding
finished (0:00:00) --> added
'sde_velocity_pca', embedded velocity vectors (adata.obsm)
[4]:
import matplotlib.pyplot as plt
plt.scatter(adata.obs['row'], adata.obs['col'], c=adata.obs['latent_time'], s=30, cmap='viridis_r', vmin=0, vmax=1)
plt.axis('off')
plt.show()
[ ]: