其實我平時很少分享代碼,因為我覺得代碼其實都是抄別人的,沒什么意思,理解最重要,但是現實的情況是,大家需要代碼作為參考
今天我們來分享的是,對細胞類型在空間距離上的分析,也就是細胞類型的共定位分析
這里我們已參考數據為例,大家要根據自己的數據進行真實情況的調整,千萬不要拿來就抄代碼,沒什么用。
首先第一步,加載模塊和參考數據集
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)
這里代碼很簡單,就是對注釋結果進行可視化,但是我們需要注意一個非常重要的點,注釋結果哪來的???很顯然,需要我們做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:
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),
)
圖上可以看到以某種細胞為參考,距離遠近中各個細胞類型比例的變化。
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")
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")
第六步,
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)
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
最好再強調一遍,不要拿著代碼抄,根據自己的實際情況靈活運用
生活很好,有你更好