单细胞单细胞测序

空间转录组细胞类型的距离分析之二---代码实现

2021-03-09  本文已影响0人  单细胞空间交响乐

其实我平时很少分享代码,因为我觉得代码其实都是抄别人的,没什么意思,理解最重要,但是现实的情况是,大家需要代码作为参考

今天我们来分享的是,对细胞类型在空间距离上的分析,也就是细胞类型的共定位分析

这里我们已参考数据为例,大家要根据自己的数据进行真实情况的调整,千万不要拿来就抄代码,没什么用。

首先第一步,加载模块和参考数据集

import scanpy as sc
import squidpy as sq
# load the pre-processed dataset
adata = sq.datasets.imc()

这里注意一下,用到的是scanpy和squidpy,两个模块,模块的功能很多,而我们今天只分享今天的重点,细胞类型的共定位问题。

第二步,细胞类型的可视化:

sc.pl.spatial(adata, color="cell type", spot_size=10)
图片.png

这里代码很简单,就是对注释结果进行可视化,但是我们需要注意一个非常重要的点,注释结果哪来的???很显然,需要我们做10X单细胞和10X空间数据的联合分析
We can appreciate how the majority of the tissue seems to consist of apoptotic tumor cells. There also seem to be other cell types scattered across the tissue, annotated as T cells, Macrophages and different types of Stromal cells. We can also appreciate how a subset of tumor cell, basal CK tumor cells seems to be located in the lower part of the tissue.

第三步,我们的重点,Co-occurrence across spatial dimensions

We can visualize cluster co-occurrence in spatial dimensions using the original spatial coordinates. The co-occurrence score is defined as:


图片.png

where p(exp|cond) is the conditional probability of observing a cluster exp conditioned on the presence of a cluster cond, whereas p(exp) is the probability of observing exp in the radius size of interest. The score is computed across increasing radii size around each cell in the tissue.

sq.gr.co_occurrence(adata, cluster_key="cell type")
sq.pl.co_occurrence(
    adata,
    cluster_key="cell type",
    clusters=["basal CK tumor cell", "T cells"],
    figsize=(15, 4),
)
图片.png

图上可以看到以某种细胞为参考,距离远近中各个细胞类型比例的变化。

We can observe that T cells seems to co-occur with endothelial and vimentin hi stromal cells, whereas basal CK tumor cell seem to largely cluster together, except for the presence of a type of stromal cells (small elongated stromal cell) at close distance.

第四步:Neighborhood enrichment

A similar analysis that can inform on the neighbor structure of the tissue is the neighborhood enrichment test.

sq.gr.spatial_neighbors(adata)
sq.gr.nhood_enrichment(adata, cluster_key="cell type")
sq.pl.nhood_enrichment(adata, cluster_key="cell type")
图片.png
Interestingly, T cells shows an enrichment with stromal and endothelial cells, as well as macrophages. Another interesting result is that apoptotic tumor cells, being uniformly spread across the tissue area, show a neighbor depletion against any other cluster (but a strong enrichment for itself). This is a correct interpretation from a permutation based approach, because the cluster annotation, being uniformly spread across the tissue, and in high number, it’s more likely to be enriched with cell types from the same class, rather than different one.

第五步,Interaction matrix and network centralities

counts the number of edges that each cluster share with all the others.

sq.gr.interaction_matrix(adata, cluster_key="cell type")
sq.pl.interaction_matrix(adata, cluster_key="cell type")
图片.png

第六步,

Finally, similar to the previous analysis, we can investigate properties of the spatial graph by computing different network centralities:
degree_centrality
average_clustering
closeness_centrality

sq.gr.centrality_scores(
    adata,
    cluster_key="cell type",
)
sq.pl.centrality_scores(adata, cluster_key="cell type", figsize=(20, 5), s=500)
图片.png

For the purpose of this analysis, we can appreciate that the apoptotic tumor cell clusters shows high closeness centrality, indicating that nodes belonging to that group are often close to each other in the spatial graph

最好再强调一遍,不要拿着代码抄,根据自己的实际情况灵活运用

生活很好,有你更好

上一篇下一篇

猜你喜欢

热点阅读