分析優(yōu)化----關(guān)于空間原位數(shù)據(jù)的鄰域分析優(yōu)化

作者,Evil Genius

今天我們需要討論一個(gè)問(wèn)題,那就是關(guān)于鄰域的問(wèn)題,目前有兩種思路,如下:

一種是選擇某個(gè)點(diǎn)(cell)一定范圍內(nèi)距離最近的幾個(gè)細(xì)胞,例如下面就是距離最近的10個(gè)細(xì)胞
另外一種是將一定范圍內(nèi)的所有細(xì)胞均納入分析范圍,如下圖:


對(duì)于那種spot類型的數(shù)據(jù),點(diǎn)之間的大小是固定的,自然也就沒(méi)有什么區(qū)別,那如果是原位的分析,大家覺(jué)得哪種更好呢?尤其其中關(guān)鍵的問(wèn)題,如果選擇第二種,距離設(shè)置成多遠(yuǎn)呢?

其實(shí)大家應(yīng)該都傾向于第二種的空間鄰域分析方法,因?yàn)樽隽藞D像細(xì)胞分割的原因,對(duì)于原位數(shù)據(jù)有以下特點(diǎn):

那就是細(xì)胞的分布密度不同,有的地方密度大,固定大小包含多個(gè)細(xì)胞,有的地方密度小,細(xì)胞分布就比較少了。

所有我們基于原位的數(shù)據(jù)需要優(yōu)化,同時(shí)兼容像visium的數(shù)據(jù)。

我們先以visium 的數(shù)據(jù)為例,范圍設(shè)置成100(注意這里的范圍是像素),同時(shí)要做了單細(xì)胞空間的聯(lián)合分析。

import scanpy as sc
import squidpy as sq

# 讀取空間轉(zhuǎn)錄組數(shù)據(jù) (例如 10X Visium 數(shù)據(jù))
adata = sc.read_visium('/home/samples/DB/Spatial/visium_data/HCC_1L')

# 預(yù)處理數(shù)據(jù)
sc.pp.normalize_total(adata, inplace=True)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, flavor="seurat", n_top_genes=2000)
adata = adata[:, adata.var.highly_variable]

# 計(jì)算鄰域信息 (必要時(shí)設(shè)置鄰域大小)
sq.gr.spatial_neighbors(adata, coord_type="grid", radius=100)

# 進(jìn)行細(xì)胞通訊分析
sq.gr.interaction_matrix(adata)

# 可視化通訊網(wǎng)絡(luò)
sq.pl.spatial_interaction(adata, cluster_key="cluster")

高精度的原位數(shù)據(jù)同理,需要做好細(xì)胞類型的注釋

import spatialdata as sd
from spatialdata_io import xenium

import matplotlib.pyplot as plt
import seaborn as sns

import scanpy as sc
import squidpy as sq

xenium_path = "./Xenium"
zarr_path = "./Xenium.zarr"
sdata = xenium(xenium_path)

sc.pp.filter_cells(adata, min_counts=10)
sc.pp.filter_genes(adata, min_cells=5)

adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata, inplace=True)
sc.pp.log1p(adata)
sc.pp.pca(adata)
sc.pp.neighbors(adata)
sc.tl.umap(adata)
sc.tl.leiden(adata)

sq.gr.spatial_neighbors(adata, coord_type="generic", delaunay=True, radius=100)

sq.pl.nhood_enrichment(
    adata,
    cluster_key="leiden",
    figsize=(8, 8),
    title="Neighborhood enrichment adata",
    ax=ax[0],
)
sq.pl.spatial_scatter(adata_subsample, color="leiden", shape=None, size=2, ax=ax[1])

這里只做到了共定位,還有很多很個(gè)性化的分析需要探討,我們以后再來(lái)討論

生活很好,有你更好

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容