专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
生物制品圈  ·  普通人也能玩转 AI!65 页 PPT ... ·  昨天  
BioArt  ·  Cell | ... ·  昨天  
生物制品圈  ·  mRNA、RNAi、circRNA、ASOs ... ·  2 天前  
生物学霸  ·  2025 ... ·  2 天前  
BioArt  ·  Nat ... ·  2 天前  
51好读  ›  专栏  ›  生信菜鸟团

空转分析工具之R包SpaCET

生信菜鸟团  · 公众号  · 生物  · 2025-02-22 09:55

正文

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
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
image-20250221142659327
# 展示所有细胞类型的空间分布。
SpaCET.visualize.spatialFeature(
  SpaCET_obj, 
  spatialType = "CellFraction"
  spatialFeatures="All"
  sameScaleForFraction = TRUE,
  pointSize = 0.1
  nrow=5
)
image-20250221142909210
image-20250221142909210

由于部分细胞类型丰度较低,用户可以通过设置 sameScaleForFraction = FALSE 来获得更直观的效果。另外,通过设置 interactive=TRUE ,可以打开一个交互式可视化面板浏览分解结果。

SpaCET.visualize.spatialFeature(SpaCET_obj, interactive=TRUE)
image-20250221143047411
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
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
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 网络得分。







请到「今天看啥」查看全文