前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SC-MEB:空间转录组聚类R包!

SC-MEB:空间转录组聚类R包!

作者头像
作图丫
发布2022-03-29 08:36:44
7580
发布2022-03-29 08:36:44
举报
文章被收录于专栏:作图丫

导语

GUIDE ╲

空间转录组学 (ST) 使研究人员能够以接近单细胞的分辨率测量转录组范围内的基因表达,同时保留每次测量的空间信息。这些空间解析的转录组学加深了我们对细胞类型和状态如何受组织微环境调节的理解。

背景介绍

我们通过空间转录组研究微环境如何调节细胞类型和状态,首先是识别空间的细胞簇。小编今天为大家介绍一个使用隐马尔可夫模型进行空间聚类分析的R包SC-MEB,发表在BIB上,题目为SC-MEB: spatial clustering with hidden Markov random field using empirical Bayes。

R包安装

代码语言:javascript
复制
library(devtools)
install_github("Shufeyangyi2015310117/SC.MEB")
library("SC.MEB")
#> Loading required package: mclust
#> Warning: package 'mclust' was built under R version 4.0.5
#> Package 'mclust' version 5.4.7
#> Type 'citation("mclust")' for citing this R package in publications.

结果解析

01

输入数据和预处理

这里我们使用R包的真实数据CRC数据集拟合SC-MEB。

使用spatialPreprocess() 对计数矩阵进行对数归一化,并对顶部n.HVGs高度可变的基因执行PCA,保留顶部n.PCs主成分。

代码语言:javascript
复制
file = system.file("extdata", "CRC3.rds", package = "SC.MEB")
CRC = readRDS(file)

set.seed(114)
library(scuttle)
library(scran)
library(scater)
library(BiocSingular)
CRC <- spatialPreprocess(CRC, platform="Visium")

使用R包默认的参数。

代码语言:javascript
复制
platform = "Visium"
beta_grid = seq(0,4,0.2)
K_set= 2:10
parallel=TRUE
num_core = 3
PX = TRUE
maxIter_ICM = 10
maxIter = 50

02

运行R包

计算邻域并行运行SC-MEB包
代码语言:javascript
复制
library(SingleCellExperiment)
Adj_sp  <- find_neighbors2(CRC, platform = "Visium")
Adj_sp[1:10,1:10]
#> 10 x 10 sparse Matrix of class "dgCMatrix"
#>                          
#>  [1,] . 1 1 . . . . . . .
#>  [2,] 1 . 1 1 . . . . . .
#>  [3,] 1 1 . 1 1 . . . . .
#>  [4,] . 1 1 . 1 1 . . . .
#>  [5,] . . 1 1 . 1 1 . . .
#>  [6,] . . . 1 1 . 1 1 . .
#>  [7,] . . . . 1 1 . 1 1 .
#>  [8,] . . . . . 1 1 . 1 1
#>  [9,] . . . . . . 1 1 . 1
#> [10,] . . . . . . . 1 1 .

y = reducedDim(CRC, "PCA")[,1:15]
fit = SC.MEB(y, Adj_sp, beta_grid = beta_grid, K_set= K_set, parallel=parallel, num_core = num_core, PX = PX, maxIter_ICM=maxIter_ICM, maxIter=maxIter)
#> Starting parallel computing...
str(fit[,1])
#> List of 9
#>  $ x     : num [1:2988, 1] 1 1 1 1 1 1 1 1 1 1 ...
#>  $ gam   : num [1:2988, 1:2] 1 1 1 1 1 ...
#>  $ pxgn  : num [1:2988, 1:2] 0.9 0.996 0.988 0.999 0.988 ...
#>  $ pygx  : num [1:2988, 1:2] 17.6 17.9 29.8 33.4 24 ...
#>  $ mu    : num [1:15, 1:2] 4.3905 -0.5647 0.1235 0.1118 -0.0293 ...
#>  $ sigma : num [1:15, 1:15, 1:2] 5.14 -1.8006 -1.6301 -0.0896 1.0888 ...
#>  $ beta  : num 2.2
#>  $ ell   : num 65515
#>  $ loglik: num [1:2, 1] 66215 66254

03

聚类及可视化

使用 BIC 选择集群数量
代码语言:javascript
复制
selectKPlot(fit, K_set = K_set, criterion = "BIC")
使用Modified BIC选择聚类集群的数量。我们可以在BIC中修改参数c。对于空间转录组ST或Visiu数据集,参数c的范围通常在0.4到1之间,而对于具有大量细胞的10x Genomics Visium的MERFISH公共数据集,通常会变得更大,例如10-20。因此用户可以根据他们对组织或细胞的先验知识来调整参数c。

04

对空间cluster的可视化

我们可以使用 ClusterPlot() 在点的空间位置上绘制聚类情况。

代码语言:javascript
复制
out = selectK(fit, K_set = K_set, criterion = "BIC")
pos = matrix(cbind(colData(CRC)[,c(4)],20000-colData(CRC)[,c(3)]), 2988, 2)
ClusterPlot(out, pos, size = 3, shape = 16)

小编总结

SC-MEB是一个对空间转录组数据进行聚类和可视化的R包。与先前的包相比,SC-MEB不仅计算效率高,可扩展到大样本量,而且还能够选择平滑参数和cluster数量(虽然可视化有一丢丢丑)。做空间转录组的同学们可以尝试一下哦!

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作图丫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里我们使用R包的真实数据CRC数据集拟合SC-MEB。
    • 计算邻域并行运行SC-MEB包
      • 使用 BIC 选择集群数量
        • 使用Modified BIC选择聚类集群的数量。我们可以在BIC中修改参数c。对于空间转录组ST或Visiu数据集,参数c的范围通常在0.4到1之间,而对于具有大量细胞的10x Genomics Visium的MERFISH公共数据集,通常会变得更大,例如10-20。因此用户可以根据他们对组织或细胞的先验知识来调整参数c。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档