作者,Evil Genius
空间邻域差异分析
同组分析完共定位,那么不同组间的邻域差异分析,就是下一步。
对于高精度,Xenium、CosMx等相对比较容易,前面最好注释,拿到h5ad文件。
import squidpy as sq
import cellcharter as cc
import scanpy as sc
from lightning.pytorch import seed_everything
seed_everything(0)
adata = cc.datasets.codex_mouse_spleen('test.h5ad')
sq.gr.spatial_neighbors(adata, library_key='sample', coord_type='generic', delaunay=True)
adata_balbc = adata[adata.obs['condition'] == 'BALBc']
cc.gr.nhood_enrichment(
adata_balbc,
cluster_key='spatial_cluster',
)
cc.pl.nhood_enrichment(
adata_balbc,
cluster_key='spatial_cluster',
annotate=True,
vmin=-1,
vmax=1,
figsize=(3,3),
fontsize=5,
)
adata_mrl = adata[adata.obs['condition'] == 'MRL']
cc.gr.nhood_enrichment(
adata_mrl,
cluster_key='spatial_cluster',
)
cc.pl.nhood_enrichment(
adata_mrl,
cluster_key='spatial_cluster',
annotate=True,
vmin=-1,
vmax=1,
figsize=(3,3),
fontsize=5,
)
cc.gr.diff_nhood_enrichment(
adata,
cluster_key='spatial_cluster',
condition_key='condition',
library_key='sample',
pvalues=True,
n_jobs=15,
n_perms=100
)
cc.pl.diff_nhood_enrichment(
adata,
cluster_key='spatial_cluster',
condition_key='condition',
condition_groups=['MRL', 'BALBc'],
annotate=True,
figsize=(3,3),
significance=0.05,
fontsize=5
)
那对于低精度的visium该如何做这个分析呢?
细胞pair的共定位拿到,组成共定位权重矩阵,将结果merge起来即可。
如果是多个样本呢?一样的策略,求平均值构建矩阵。
这样不同组之间的细胞共定位权重矩阵拿到,进行邻域差异比较
我们采用一种简单粗暴的策略
直接矩阵相减,disease组共定位权重矩阵 - normal组共定位权重矩阵,形成共定位差异矩阵,并进行均一化。
这样的话,负值为共定位效应降低,正值为共定位效应增强。
最后画热图
生活很好,有你更好
网友评论