Analysis of spatial factors
[1]:
import pandas as pd
import numpy as np
import scanpy as sc
import anndata as ad
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib.cm import get_cmap
import warnings
warnings.filterwarnings("ignore")
Load data
[2]:
res_path = "Results/INSPIRE_diff_tech_embryo"
adata = sc.read_h5ad(res_path + "/adata_inspire.h5ad")
basis_df = pd.read_csv(res_path + "/basis_df_inspire.csv", index_col=0)
[3]:
adata_0 = adata[adata.obs.slice.values.astype(str) == "0", :]
adata_1 = adata[adata.obs.slice.values.astype(str) == "1", :]
Spatial distributions of spatial factors
[4]:
prop_name = "Proportion of spatial factor 6"
size = 0.1
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_0 = ax.scatter(adata_0.obsm["spatial"][:, 0], -adata_0.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_0.obs[prop_name], cmap="plasma", vmax=np.max(adata_0.obs[prop_name]))
ax.set_axis_off()
size = 1.
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_1 = ax.scatter(adata_1.obsm["spatial"][:, 0], -adata_1.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_1.obs[prop_name], cmap="plasma", vmax=np.max(adata_1.obs[prop_name]))
ax.set_axis_off()
plt.show()
[5]:
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_0, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_1, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
[6]:
prop_name = "Proportion of spatial factor 8"
size = 0.1
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_0 = ax.scatter(adata_0.obsm["spatial"][:, 0], -adata_0.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_0.obs[prop_name], cmap="plasma", vmax=np.max(adata_0.obs[prop_name]))
ax.set_axis_off()
size = 1.
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_1 = ax.scatter(adata_1.obsm["spatial"][:, 0], -adata_1.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_1.obs[prop_name], cmap="plasma", vmax=np.max(adata_1.obs[prop_name]))
ax.set_axis_off()
[7]:
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_0, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_1, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
[8]:
prop_name = "Proportion of spatial factor 27"
size = 0.1
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_0 = ax.scatter(adata_0.obsm["spatial"][:, 0], -adata_0.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_0.obs[prop_name], cmap="plasma", vmax=np.max(adata_0.obs[prop_name]))
ax.set_axis_off()
size = 1.
f = plt.figure(figsize=(3,4))
ax = f.add_subplot(1,1,1)
ax.axis('equal')
pt_1 = ax.scatter(adata_1.obsm["spatial"][:, 0], -adata_1.obsm["spatial"][:, 1], s=size, rasterized=True,
c=adata_1.obs[prop_name], cmap="plasma", vmax=np.max(adata_1.obs[prop_name]))
ax.set_axis_off()
[9]:
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_0, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
fig,ax = plt.subplots(figsize=(1.5,2))
cbar = plt.colorbar(pt_1, ax=ax, shrink=1., aspect=15)
cbar.ax.tick_params(labelsize=10)
ax.remove()
Top ranking genes associated with the spatial factors
[12]:
topic_id = 5
topic_profile = np.array(basis_df.iloc[topic_id,:].values)
order = np.argsort(-topic_profile)
potential_marker = list(basis_df.columns[order[:20]])
print("Top ranking genes for spatial factor 6 are:")
potential_marker
Top ranking genes for spatial factor 6 are:
[12]:
['Ttn',
'Bmp4',
'Hand2',
'Tagln',
'Nebl',
'Popdc2',
'Gata5',
'Podxl',
'Gata6',
'Smarcd3',
'Bambi',
'Atp1b1',
'Shisa2',
'Rspo3',
'Tmem108',
'Mef2c',
'Wnt2',
'Jarid2',
'Prrx2',
'Gata4']
[11]:
topic_id = 7
topic_profile = np.array(basis_df.iloc[topic_id,:].values)
order = np.argsort(-topic_profile)
potential_marker = list(basis_df.columns[order[:20]])
print("Top ranking genes for spatial factor 8 are:")
potential_marker
Top ranking genes for spatial factor 8 are:
[11]:
['Ttn',
'Popdc2',
'Nebl',
'Tagln',
'Tbx5',
'Atp1b1',
'Hcn4',
'Gata4',
'Bmp7',
'Smarcd3',
'Vcam1',
'Gata6',
'Ldhb',
'Gata5',
'Tmem108',
'Jarid2',
'Mef2c',
'Cdh2',
'Col4a1',
'Usp28']
[13]:
topic_id = 26
topic_profile = np.array(basis_df.iloc[topic_id,:].values)
order = np.argsort(-topic_profile)
potential_marker = list(basis_df.columns[order[:20]])
print("Top ranking genes for spatial factor 27 are:")
potential_marker
Top ranking genes for spatial factor 27 are:
[13]:
['Cldn5',
'Kdr',
'Aplnr',
'Cd34',
'Cdh5',
'Plvap',
'Sox18',
'Ets1',
'Esam',
'Lmo2',
'Hapln1',
'Fli1',
'Eng',
'Nid1',
'Marcks',
'Erg',
'Rgl1',
'Pecam1',
'Emcn',
'Sox7']