import scanpy.api as sc
import numpy as np
import pandas as pd
from scanpy.tools import rna_velocity
import loompy
import matplotlib.pyplot as pl
from anndata import AnnData
import seaborn as sns
from scipy.sparse import csr_matrix
import networkx as nx
sc.settings.verbosity = 3
sc.settings.set_figure_params(dpi=100, transparent=True)
sc.logging.print_versions()
scanpy==1.1+7.g10519ea anndata==0.6.4+6.gd9727ca numpy==1.13.1 scipy==1.0.0 pandas==0.22.0 scikit-learn==0.19.1 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1
adata = sc.read('./write/planaria_pp_extended_loom.h5ad')
muscle_clusters = ['muscle body', 'muscle pharynx', 'muscle progenitors']
subset_muscle = adata.obs['clusters'].isin(muscle_clusters)
adata = adata[subset_muscle]
delta_embedding = np.load('./write/vlm_delta_embedding_muscle.npy')
adata.obsm['Delta_tsne'] = delta_embedding
We call the following ones with legend_loc='on data export'
ones with default legend.
adata_copy = adata[np.logical_and(adata.obsm['X_tsne'][:, 0] > -20, adata.obsm['X_tsne'][:, 0] < 10)]
adata_copy = adata[np.logical_and(adata.obsm['X_tsne'][:, 1] > 15, adata.obsm['X_tsne'][:, 1] < 60)]
sc.pl.tsne(adata_copy, color='clusters', title='RNA velocity', legend_loc='on data export')
exporting label positions to ./write/pos.csv
Rename the exported positions.
!mv ./write/pos.csv ./write/pos_muscle.csv
sc.pl.tsne(adata_copy, color='clusters', title='muscle: RNA velocity', legend_loc='none', arrows=True, save='_muscle')
saving figure to file ./figures/tsne_muscle.pdf
Only consider transitions greater 0.01.
trans = np.load('./write/vlm_transition_prob_muscle.npy')
trans[trans < 0.01] = 0
trans = csr_matrix(trans)
trans
<2143x2143 sparse matrix of type '<class 'numpy.float64'>' with 8293 stored elements in Compressed Sparse Row format>
adata.uns['velocyto_transitions'] = trans
sc.tl.paga(adata, groups='clusters')
running partition-based graph abstraction (PAGA) finished (0:00:00.11) --> added 'paga/connectivities', connectivities adjacency (adata.uns) 'paga/connectivities_tree', connectivities subtree (adata.uns)
sc.tl.paga(adata, groups='clusters', use_rna_velocity=True)
running partition-based graph abstraction (PAGA) finished (0:00:00.25) --> added 'paga/transitions_connectivities', connectivities adjacency (adata.uns) 'paga/transitions_ttest', t-test on transitions (adata.uns)
pos = np.loadtxt('./write/pos_muscle.csv', delimiter=',')
sc.pl.paga(adata, title='muscle: PAGA graph (topology)', pos=pos)
--> added 'pos', the PAGA positions (adata.uns['paga'])
sc.pl.paga(adata, edge_width_scale=0.1, pos=pos, transitions='transitions_confidence',
title='muscle: PAGA graph (RNA velocity)', save='_muscle_rna_velocity')
--> added 'pos', the PAGA positions (adata.uns['paga']) saving figure to file ./figures/paga_muscle_rna_velocity.pdf
adata = sc.read('./write/planaria_pp_extended_epidermis_loom.h5ad')
delta_embedding = np.load('./write/vlm_delta_embedding_epidermis.npy')
adata.obsm['Delta_umap'] = delta_embedding
Reorder so that the legend is nice.
epidermal_clusters = [
'epidermal neoblasts',
'early epidermal progenitors',
'late epidermal progenitors 1',
'late epidermal progenitors 2', 'epidermis']
adata.obs['clusters'].cat.reorder_categories(epidermal_clusters, inplace=True)
adata.uns['clusters_colors'] = np.array(adata.uns['clusters_colors'])[[1, 0, 3, 4, 2]]
sc.pl.umap(adata, color='clusters', legend_loc='on data export')
exporting label positions to ./write/pos.csv
!mv ./write/pos.csv ./write/pos_epidermis.csv
sc.pl.umap(adata, color='clusters', title='epidermis: RNA velocity', legend_loc='none', arrows=True, save='_epidermis')
saving figure to file ./figures/umap_epidermis.pdf
Load transition probabilities, only consider those greater 0.01.
trans = np.load('./write/vlm_transition_prob_epidermis.npy')
trans[trans < 0.01] = 0
trans = csr_matrix(trans)
trans
<3514x3514 sparse matrix of type '<class 'numpy.float64'>' with 8363 stored elements in Compressed Sparse Row format>
adata.uns['velocyto_transitions'] = trans
sc.tl.paga(adata, groups='clusters')
running partition-based graph abstraction (PAGA) finished (0:00:00.20) --> added 'paga/connectivities', connectivities adjacency (adata.uns) 'paga/connectivities_tree', connectivities subtree (adata.uns)
sc.tl.paga(adata, groups='clusters', use_rna_velocity=True)
running partition-based graph abstraction (PAGA) finished (0:00:00.47) --> added 'paga/transitions_connectivities', connectivities adjacency (adata.uns) 'paga/transitions_ttest', t-test on transitions (adata.uns)
This looks a little bit different as we filtered out some cells, hence instead of 0.01, we set 0.009.
pos = np.loadtxt('./write/pos_epidermis.csv', delimiter=',')
sc.pl.paga(adata, threshold=0.009, pos=pos, title='epidermis: PAGA graph (topology)', edge_width_scale=1, save='_epidermis_connectivity')
--> added 'pos', the PAGA positions (adata.uns['paga']) saving figure to file ./figures/paga_epidermis_connectivity.pdf
sc.pl.paga(adata, threshold_arrows=0.004, pos=adata.uns['paga']['pos'], add_pos=False,
title='epidermis: PAGA graph (RNA velocity)', max_edge_width=2, transitions='transitions_confidence', save='_epidermis_transitions')
saving figure to file ./figures/paga_epidermis_transitions.pdf