脚本更新----空间邻域差异分析(高精度平台,Xenium、CosMx、CODEX、图像分割Stereo-seq、HD)

作者,Evil Genius

今天的目标,实现如下的分析



对于空间转录组而言,高精度平台图像分割获取单细胞精度的矩阵绝对是必做的。大家如果选择做高精度空转,尤其Stereo-seq、HD,一定要提前问清楚是否具有图像识别分割的能力。


我们来实现这个共定位差异比较分析,基础分析大家做好,包括整合分析,获取h5ad文件,示例是cluster,大家分析项目要用细胞类型。

###pip install cellcharter
import squidpy as sq
import cellcharter as cc
import scanpy as sc
from lightning.pytorch import seed_everything
seed_everything(0)

adata =sc.read('test.h5ad')
adata
AnnData object with n_obs × n_vars = 707474 × 29
    obs: 'cell_type', 'i-niche', 'tile', 'area', 'dataset', 'stage', 'sample'
    uns: 'spatial', 'spatial_cluster_colors'
    obsm: 'blanks', 'spatial'

adata.raw = adata.copy()
for sample in adata.obs['sample'].cat.categories:
    adata.X[adata.obs['sample'] == sample, :] = sc.pp.scale(adata[adata.obs['sample'] == sample], copy=True).X

####Proximity analysis
adata.obs['condition'] = adata.obs['sample'].str.split('-').str[0].astype('category')
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
)
cc.pl.diff_nhood_enrichment(
    adata,
    cluster_key='spatial_cluster',
    condition_key='condition',
    condition_groups=['BALBc', 'MRL'],
    annotate=True,
    figsize=(3,3),
    significance=0.05,
    fontsize=5
)
Shape characterization
cc.gr.connected_components(adata, cluster_key='spatial_cluster')
cc.tl.boundaries(adata, min_hole_area_ratio=0.1)
cc.tl.linearity(adata)
cc.tl.curl(adata)

cc.pl.shape_metrics(
    adata,
    condition_key='condition', 
    condition_groups=['BALBc', 'MRL'],
    cluster_key='spatial_cluster', 
    cluster_id=[10], 
    title='C4 - B-PALS shape',
    figsize=(4,3),
    fontsize=6
)

最后,我们封装起来

还有 34% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
支付 ¥50.00 继续阅读

推荐阅读更多精彩内容