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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_6_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_6_1.png
[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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_7_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_7_1.png
[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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_8_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_8_1.png
[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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_9_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_9_1.png
[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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_10_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_10_1.png
[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()
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_11_0.png
../../_images/tutorials_diff_tech_embryo_difftech_embryo_spatial_factors_11_1.png

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']