R包SpaCET(Spatial Cellular Estimator for Tumors)发表于2023年的Nature communications,题为”Estimation of cell lineages in tumors from spatial transcriptomics data“(https://doi.org/10.1038/s41467-023-36062-6)。SpaCET可以估算
细胞谱系组成
并解析
肿瘤微环境(TME)中的细胞间相互作用
。简而言之,SpaCET 通过整合
常见恶性肿瘤的基因模式字典
,首先推测
肿瘤细胞的丰度
。随后,SpaCET 采用
受约束的线性回归模型
,校准局部组织密度,并基于
全面的非恶性细胞图谱
来确定
基质和免疫细胞谱系比例
。此外,SpaCET 还能揭示
肿瘤微环境中的潜在细胞-细胞互作
,尤其是在
肿瘤-免疫界面
的细胞通讯。值得注意的是,虽然 SpaCET
无需任何输入细胞参考
即可分析肿瘤 ST 数据,但它也可以
结合匹配的 scRNA-seq 数据
作为自定义参考,进行更精确的细胞类型去卷积分析。
image-20250221113821170
R包安装:
# install.packages("devtools") devtools::install_github("data2intelligence/SpaCET" )
Step1. 创建 SpaCET 对象
要将空间转录组数据读入 R 中,可以使用
create.SpaCET.object
或
create.SpaCET.object.10X
来创建一个 SpaCET 对象。具体来说,如果用户正在分析来自 10x Visium 的 ST 数据集,则只需要使用
create.SpaCET.object.10X
并输入
visiumPath
。请确保
visiumPath
指向 10x Space Ranger 的标准输出文件夹,其中包括 (1) 测序数据,即 “filtered_feature_bc_matrix.h5” 文件或 “filtered_feature_bc_matrix” 文件夹,以及 (2) 图像文件夹 “spatial”。对于 Visium HD 数据,可以将
visiumPath
设置为
"/Your/data/path/to/binned_outputs/square_016um/"
。
下面,我们为当前的乳腺癌 Visium 样本创建一个 SpaCET 对象。
library (SpaCET)# set the path to the in-house breast cancer ST data. # User can set the paths to their own data. visiumPath <- file.path(system.file(package = "SpaCET" ), "extdata/Visium_BC" )# load ST data to create an SpaCET object. SpaCET_obj <- create.SpaCET.object.10X(visiumPath = visiumPath)# show this object. str(SpaCET_obj)
UMI 计数矩阵存储在
SpaCET_obj@input$counts
中,格式为稀疏矩阵。每一行代表一个基因,每一列代表一个 spot。
# 查看部分数据 SpaCET_obj@input$counts[1 :8 ,1 :6 ]## 8 x 6 sparse Matrix of class "dgCMatrix" ## 50x102 59x19 14x94 47x13 73x43 61x97 ## MIR1302-2HG . . . . . . ## FAM138A . . . . . . ## OR4F5 . . . . . . ## AL627309.1 . . . . . 1 ## AL627309.3 . . . . . . ## AL627309.2 . . . . . . ## AL627309.4 . . . . . . ## AL732372.1 . . . . . .
Step2. 质控
在创建 SpaCET 对象后,用户可以使用
SpaCET.visualize.spatialFeature
展示各个 ST spot 的 UMI 数和基因数。其中,“UMI”选项展示每个 spot 内的总 UMI 数,而 “Gene” 选项表示在某个 spot 中表达(即至少有一个 UMI 计数)的基因数。
# 筛选出表达基因数少于 100 的 spots SpaCET_obj <- SpaCET.quality.control(SpaCET_obj, min.genes=100 )# 绘制质控指标图 SpaCET.visualize.spatialFeature( SpaCET_obj, spatialType = "QualityControl" , spatialFeatures=c("UMI" , "Gene" ), imageBg = TRUE )
Step3. ST解卷积
SpaCET 分为两个阶段对所有混合的 ST spots 进行分解,分别针对恶性细胞、免疫细胞和间质细胞。SpaCET 首先通过常见恶性肿瘤中拷贝数变异(CNA)和表达变化的基因模式字典来估计恶性细胞的比例。随后,基于来自多种癌症类型的单细胞 RNA-seq 数据构建的细胞谱系(hierarchical cell lineage),采用受约束的回归模型确定免疫细胞和间质细胞的比例,同时包含一个不可识别的组分,以校正组织区域中细胞密度的变化。
特别地,用户需要通过
cancerType
参数指定当前肿瘤 ST 数据集的癌症类型,该参数用于选择癌症类型特异性的 CNA 或表达特征以推断恶性细胞的比例。具体癌症类型的代码可以在下拉菜单中查看。当对 ST spot 的表达谱与癌症类型特异性特征进行相关性分析时,我们将癌症类型特异性的 CNA 特征置于首位,因为染色体不稳定性被广泛认为是人类肿瘤的一个一致特征。或者,如果没有 spots 与 CNA 特征呈现强相关性,则会启用癌症类型特异性表达特征。这种情况可能是由于染色体稳定的癌细胞具有较低的 CNA 所致。对于字典中未包含的癌症类型,我们创建了一个通过平均所有癌症类型特异性表达特征得到的泛癌症表达特征。
# 对 ST 数据进行分解 SpaCET_obj <- SpaCET.deconvolution(SpaCET_obj, cancerType="BRCA" , coreNo=8 )# Windows 系统不支持并行计算,请将 coreNo 设置为 1。 # 展示 ST 分解结果 SpaCET_obj@results$deconvolution$propMat[1 :13 ,1 :6 ]## 50x102 59x19 14x94 47x13 73x43 ## Malignant 2.860636e-01 1 6.845966e-02 3.899756e-01 9.608802e-01 ## CAF 3.118545e-01 0 3.397067e-01 1.111980e-01 3.372692e-02 ## Endothelial 5.510895e-02 0 1.427060e-01 3.080531e-02 5.263544e-03 ## Plasma 2.213392e-02 0 1.507382e-02 1.183170e-02 9.071809e-06 ## B cell 3.885793e-03 0 9.271616e-02 1.406470e-01 1.329085e-06 ## T CD4 1.344389e-01 0 1.554305e-02 1.249414e-01 1.112392e-05 ## T CD8 7.578696e-03 0 2.514558e-07 1.379856e-03 1.123043e-06 ## NK 7.104005e-04 0 1.670019e-06 4.890387e-08 3.562557e-07 ## cDC 1.421632e-07 0 8.278023e-02 7.584295e-02 2.851146e-07 ## pDC 1.606443e-06 0 2.283754e-02 1.805671e-02 3.878344e-07 ## Macrophage 1.703304e-01 0 5.021248e-02 9.531511e-02 9.253645e-07 ## Mast 7.905067e-08 0 1.621498e-05 1.333430e-07 1.162099e-07 ## Neutrophil 1.380073e-05 0 9.528996e-07 1.167503e-08 9.908635e-05
Step4. 可视化细胞类型比例
SpaCET 提供
SpaCET.visualize.spatialFeature
来展示细胞类型的空间分布。
# 展示恶性细胞和巨噬细胞在组织中的空间分布。 SpaCET.visualize.spatialFeature( SpaCET_obj, spatialType = "CellFraction" , spatialFeatures=c("Malignant" , "Macrophage" ) )
image-20250221142659327
# 展示所有细胞类型的空间分布。 SpaCET.visualize.spatialFeature( SpaCET_obj, spatialType = "CellFraction" , spatialFeatures="All" , sameScaleForFraction = TRUE , pointSize = 0.1 , nrow=5 )
image-20250221142909210
由于部分细胞类型丰度较低,用户可以通过设置
sameScaleForFraction = FALSE
来获得更直观的效果。另外,通过设置
interactive=TRUE
,可以打开一个交互式可视化面板浏览分解结果。
SpaCET.visualize.spatialFeature(SpaCET_obj, interactive=TRUE )
image-20250221143047411
Step5. 估计细胞间相互作用
在分解细胞比例之后,SpaCET 可以基于细胞共定位和配体-受体(ligand-receptor, L-R)共表达推断细胞间的相互作用。通过计算所有 ST spots 中细胞类型比例之间的线性相关性,可以评估细胞类型的共定位情况。高度正相关表示细胞类型对倾向于共定位。为了推断物理相互作用,SpaCET 在同一 ST spot 内检验配体和受体基因的共表达情况,以此评估共定位细胞类型对之间的相互作用。
5.1 寻找共定位的细胞类型对
SpaCET 提供了
SpaCET.CCI.colocalization
和
SpaCET.visualize.colocalization
来计算和可视化共定位的细胞类型对。
# 计算细胞间共定位 SpaCET_obj <- SpaCET.CCI.colocalization(SpaCET_obj)# 可视化细胞间共定位 SpaCET.visualize.colocalization(SpaCET_obj)
image-20250221143300461
在这个乳腺肿瘤组织中,我们鉴定出几个潜在的共定位细胞类型对(见左侧红点),例如 CAFs 与内皮细胞以及 M2 型巨噬细胞。为排除因参考谱系相似性导致的高细胞比例相关性,我们比较了细胞类型比例之间的相关性与细胞类型参考谱系之间的相关性。虽然 CAF 与内皮细胞的比例相关性较高,但它们的参考谱系相似性也较高;然而,CAF 与 M2 巨噬细胞的参考谱系相似性极低,这表明 CAF-M2 的共定位并非仅仅由于谱系相似所致。
5.2 分析 ST spots 中 L-R 网络的富集情况
细胞共定位并不直接代表物理相互作用。因此,我们进一步通过分析 ST spots 内的配体-受体(L-R)相互作用来寻找细胞间相互作用的证据。根据先前的研究,我们收集了大约 2,500 对 L-R 配对,构成一个内部 L-R 网络。对于每个 ST 数据集,SpaCET 利用 BiRewire 包随机化 L-R 网络 1,000 次,同时保持有向度分布。对于某个 spot,其 L-R 网络得分定义为所有 L-R 配对表达乘积之和除以 1,000 次随机网络的平均值。
# 计算 ST spots 中的 L-R 网络得分。 SpaCET_obj <- SpaCET.CCI.LRNetworkScore(SpaCET_obj, coreNo=8 )# 可视化 L-R 网络得分。 SpaCET.visualize.spatialFeature( SpaCET_obj, spatialType = "LRNetworkScore" , spatialFeatures=c("Network_Score" , "Network_Score_pv" ) )
image-20250221143815195
每个 ST spot 的 L-R 网络得分表示该位置配体-受体相互作用的总体强度,但并不指示两种特定细胞类型之间的相互作用。因此,SpaCET 进一步对每个细胞类型对的 L-R 网络得分进行了富集分析。例如,对于乳腺肿瘤组织中 CAF 与 M2 细胞的共定位,SpaCET 将所有 ST spots 分为四类:CAF-M2 共定位、单独由 CAF 或 M2 主导,以及其他。结果显示,CAF-M2 共定位的 spots 比 CAF 或 M2 主导的 spots 拥有更显著的 L-R 网络得分。