前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R版BBKNN整合去批次

R版BBKNN整合去批次

作者头像
生信技能树
发布2023-02-27 21:17:53
8580
发布2023-02-27 21:17:53
举报
文章被收录于专栏:生信技能树生信技能树

之前我有测试过很多整合去批次的算法,例如CCA,RPCA,harmony,LIGER等:

也有用python做过BBKNN和harmony:

总体来说,在R语言环境下harmony相较其他算法还是比较优秀的,例如速度快,占内存小,整合的结果比较好。此外,python的BBKNN算法也是非常优秀的,丝毫不比R语言环境下的harmony弱,缺点就是需要用户会用python。我最近检索的时候发现bbknn居然出了R语言的版本,看时间戳也是近半年的更新,详见github:

  • https://github.com/ycli1995/bbknnR

安装:

代码语言:javascript
复制
#devtools::install_github("ycli1995/bbknnR")
install.packages("bbknnR")

我们开箱试用一下,使用之前的示例数据,方便比较:

代码语言:javascript
复制
library(bbknnR)
library(Seurat)
library(ggplot2)
library(dplyr)
library(SeuratData)
library(patchwork)
代码语言:javascript
复制
#### 1.load dataset
ifnb.data = LoadData("ifnb")

#### 2.normalize/HVG/scale三步走
ifnb.data <- ifnb.data %>% NormalizeData(verbose = F) %>%
  FindVariableFeatures(selection.method = "vst", nfeatures = 2000, verbose = F) %>% 
  ScaleData(verbose = F) %>%
  RunPCA(npcs = 50, verbose = F)

#### 3. bbknn
ifnb.data <- ifnb.data %>% RunBBKNN(reduction = "pca", 
                                    run_TSNE = F,
                                    batch_key = "orig.ident")

ifnb.data <- ifnb.data %>% FindNeighbors(reduction = "pca", k.param = 10, dims = 1:30) %>% 
  FindClusters(resolution = 0.5, algorithm = 1, graph.name="bbknn")%>% 
  identity()

#### 5.umap可视化
p1 <- DimPlot(ifnb.data, reduction = "umap", group.by = "stim")
p2 <- DimPlot(ifnb.data, reduction = "umap",group.by = "seurat_annotations", label = TRUE)
P.total = wrap_plots(p1,p2)
P.total

然而,效果虽然有点翻车。。但是总体上还是把不同组别的相同细胞类型正确归类在一起了。

下面这个是harmony的结果:

- END -

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

本文分享自 生信技能树 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档