Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >多个单细胞数据集整合的另外一个选择conos

多个单细胞数据集整合的另外一个选择conos

作者头像
生信技能树
发布于 2022-04-14 05:22:09
发布于 2022-04-14 05:22:09
1.6K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

单细胞降维聚类分群大家都很熟悉了,通常是基于R语言的seurat操作和基于Python的Scanpy,但是我们也提到过一下小众产品,比如:单细胞降维聚类分群的另外一个工具选择Pagoda2,如果是单个单细胞转录组样品,那么选择哪一个流程其实大同小异,而且我们也强调大家需要熟练掌握5个R包,比如: scater,monocle,Seurat,scran,M3Drop,总之多多益善啦。

但是现在基本上大家的单细胞转录组项目不太可能是单个样品啦,所以一定会触及到多个样品整合的问题,整合是为了尽可能的去除批次等不需要的差异但是尽可能的保留生物学差异,是一个两难问题,所以关于它的算法基本上都是发表在CNS及其子刊。如下所示:

Markdown

Language

Library

Ref

CCA

R

Seurat

Cell

MNN

R/Python

Scater/Scanpy

Nat. Biotech.

Conos

R

conos

Nat. Methods

Scanorama

Python

scanorama

Nat. Biotech.

实际操作种,因为内存等计算机资源限制,我们并不会选择Seurat体系的CCA方法,而是harmony替代啦。但是如果你选择:单细胞降维聚类分群的另外一个工具选择Pagoda2,其实也有一个配套的单细胞数据集整合的算法选择conos,让我们来一起看看吧。

它的GitHub官网是:https://github.com/kharchenkolab/conos,感兴趣的可以读一下:

其主要的步骤和函数如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Construct Conos object, where pl is a list of pagoda2 objects 
con <- Conos$new(pl)

# Build joint graph
con$buildGraph()

# Find communities
con$findCommunities()

# Generate embedding
con$embedGraph()

# Plot joint graph
con$plotGraph()

# Plot panel with joint clustering results
con$plotPanel()

下面让我们通过示例数据,以及实战数据来说明这个包的用法吧。

首先安装和加载常见的包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1.加载R包 ####
rm(list = ls())
library(Seurat)
library(tidyverse)
library(ggsci)
library(pagoda2) 
library(Matrix) 
library(conos)
library(dplyr)
library(entropy)

# install.packages('conosPanel', repos='https://kharchenkolab.github.io/drat/', type='source')
# install.packages("conos") 

然后对测试数据集构建Conos对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# 2.加载数据 ####
## 2.1 测试数据 ----
library(conosPanel)
panel <- conosPanel::panel 
# panel是一个List,包含4个单细胞样本的表达量稀疏矩阵
# 而且都是3000个细胞,3万多个基因
lapply(panel, dim)
### 用 Seurat 对4个单细胞样品都进行预处理
library(Seurat)
panel.preprocessed.seurat <- lapply(panel, basicSeuratProc)

## 2.2 构建Conos对象  ----
con <- Conos$new(panel.preprocessed.seurat, n.cores=1) 

我们的4个单细胞表达量矩阵,经过了 basicSeuratProc 的处理,其实就是针对每个矩阵都独立的降维聚类分群啦,感兴趣的可以去看 basicSeuratProc 的源代码。

最后就可以进行降维聚类分群和整合

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

space='PCA' # 可以选择 PCA, CPCA,CCA
con$buildGraph(k=30, k.self=5, 
               space=space,  # PCA, CPCA,CCA
               ncomps=30, 
               n.odgenes=2000, 
               matching.method='mNN', 
               metric='angular', 
               score.component.variance=TRUE, 
               verbose=TRUE)
plotComponentVariance(con, space=space)  
 
## 2.3 leiden.community法分群  ----
resolution = 1 # 可以适当修改分群
con$findCommunities(method=leiden.community, resolution=resolution) # 相当于Seurat包中的FindClusters函数
con$plotPanel(font.size=4) # 绘图 

可以看到,这4个样品都有各自的降维坐标体系,但是它们的聚类分群是一致的,如果分开可视化 ,就是 con$plotPanel(font.size=4) 函数,结果如下所示:

分开可视化

如果合并可视化,代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

table(con$clusters$leiden$groups) 
con$embedGraph(method='largeVis') 

## 2.4 整合后后的效果展示 ----
library(patchwork)
con$plotGraph(clustering='leiden') + con$plotGraph(color.by='sample', mark.groups=FALSE, alpha=0.1, show.legend=TRUE)

# 可视化每个cluster不同样本的占比
plotClusterBarplots(con, legend.height = 0.1) 

可以看到4个样品整合后的分群在各个样品都有分布,说明确实整合在了一起:

确实整合在了一起

在PBMC实例数据演示conos的整合

前面的包的安装和加载是一样的,这个时候不选择示例数据,而是 读取pbmc3k和5k数据集 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## 2.1 读取pbmc3k和5k数据集 ----
library(conosPanel)
options(stringsAsFactors = F)
load('pbmc3k.Rdata')
pbmc_3k=pbmc
pbmc_5k=readRDS('pbmc_5k_v3.rds') 
library(Seurat)
panel.preprocessed.seurat <- list(
  pbmc_3k=pbmc_3k,pbmc_5k=pbmc_5k
)

这个时候的读取pbmc3k和5k数据集 ,需要的两个文件 在我自己的电脑,不过如果你看完了以前的单细胞系列教程,应该是很容易自己去制作它。

同样的构建Conos对象,并且整合,降维聚类分群,代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

## 2.2 构建Conos对象  ----
con <- Conos$new(panel.preprocessed.seurat, n.cores=1) 
space='PCA' # 可以选择 PCA, CPCA,CCA
con$buildGraph(k=30, k.self=5, 
               space=space,  # PCA, CPCA,CCA
               ncomps=30, 
               n.odgenes=2000, 
               matching.method='mNN', 
               metric='angular', 
               score.component.variance=TRUE, 
               verbose=TRUE)
plotComponentVariance(con, space=space)  

## 2.3 聚类分群   ----
resolution = 1 # 可以适当修改分群
con$findCommunities(method=leiden.community, resolution=resolution) # 相当于Seurat包中的FindClusters函数
con$plotPanel(font.size=4) # 绘图
table(con$clusters$leiden$groups)  
con$embedGraph(method='largeVis')
con$plotGraph(clustering='leiden')


## 2.4 整合后后的效果展示 ----
library(patchwork)
con$plotGraph(clustering='leiden') + con$plotGraph(color.by='sample', mark.groups=FALSE, alpha=0.1, show.legend=TRUE)

我们也是直接看效果,整合的还不错;

而且因为我们对PBMC比较熟悉,也可以拿常见的基因去可视化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 可视化基因表达情况,相当于FeaturePlot

# T Cells (CD3D, CD3E, CD8A), 
# B cells (CD19, CD79A, MS4A1 [CD20]), 
# Plasma cells (IGHG1, MZB1, SDC1, CD79A), 
# Monocytes and macrophages (CD68, CD163, CD14),
# NK Cells (FGFBP2, FCG3RA, CX3CR1),  

library(patchwork)
gene_to_check= c('PTPRC', 'CD3D', 'CD3E','IL7R','CD4','CD8A','CD19', 'CD79A', 'MS4A1')
pl = lapply(gene_to_check,  function(gene){
  con$plotGraph(gene = gene,title=paste0(gene,' expression'),
                alpha=0.5)
})
wrap_plots(pl, byrow = T, nrow = 3)

可以比较容易的看到各种免疫细胞啦:

各种免疫细胞的标记基因

值得注意的是这个算法的引用非常差,目前为止(2022-04-03)还不到100的引用,跟其它单细胞算法比起来都是数量级的差异。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
单细胞降维聚类分群的另外一个工具选择Pagoda2
我都是这样教导学生完成单细胞学习的,基础课程学完后需要完成作业:https://mp.weixin.qq.com/s/lpoHhZqi-_ASUaIfpnX96w
生信技能树
2022/07/26
9570
单细胞降维聚类分群的另外一个工具选择Pagoda2
跟着小鱼头学单细胞测序-单细胞数据的整合
在对单细胞数据的处理中,常常遇到需要对两个或者多个数据集进行整合分析的情况,其中就涉及到数据集的矫正问题,今天我们基于Seurat来为大家介绍几种数据整合的方法,供大家在实践操作中参考选择。
作图丫
2022/03/29
5.8K0
跟着小鱼头学单细胞测序-单细胞数据的整合
初探单细胞分析 — 标准化与降维聚类分群的理解
类似于bulk RNA-seq,single-cell RNA-seq 的原始count数据也是需要进行标准化的。
生信技能树jimmy
2024/03/04
1.4K0
初探单细胞分析 — 标准化与降维聚类分群的理解
速度上吊打FindAllMarkers的单细胞亚群特异性高表达基因查询算法
但是, 最开始我们得到几十个单细胞亚群的时候,就需要对每个亚群找一下各自的单细胞亚群特异性高表达基因,通常是使用Seurat包的FindAllMarkers函数,这个函数的帮助文档写的是:Finds markers (differentially expressed genes) for each of the identity classes in a dataset ,默认使用 Wilcoxon Rank Sum test (default) 方法。
生信技能树
2022/06/08
7.1K0
速度上吊打FindAllMarkers的单细胞亚群特异性高表达基因查询算法
单细胞入门之Seurat标准流程
曾老师的单细胞视频看好几遍了,但是关于单细胞的代码一句也没写过。。。主要原因是一直没有这方面的需求。。
医学和生信笔记
2022/11/15
3.4K0
单细胞入门之Seurat标准流程
一个单细胞亚群肯定是有多个特异性高表达量基因
可以看到,绝大部分亚群都是有三五个基因。而且第一次分群是通用规则的3大亚群的基因是固定的, 背诵下来后跑一下 可视化单细胞亚群的标记基因的5个方法的代码即可,详见以前我们做的投票:可视化单细胞亚群的标记基因的5个方法,下面的5个基础函数相信大家都是已经烂熟于心了:
生信技能树
2022/03/03
1K0
一个单细胞亚群肯定是有多个特异性高表达量基因
你的单细胞亚群可能并不是真的既有T细胞也有B细胞的标记基因
在今年(2021)年初的文章《A single-cell map of intratumoral changes during anti-PD1 treatment of patients with breast cancer》,就提到了这样的现象,研究者们的解决方案是单独拿出来这个 cycling 亚群 进行继续细分,就可以得到原始的单细胞亚群了,因为在具体的细分亚群数据集里面,细胞周期影响全部的细胞所以它反而没有影响了。
生信技能树
2021/12/16
2.4K0
你的单细胞亚群可能并不是真的既有T细胞也有B细胞的标记基因
单个样品测序了近2万个单细胞怎么办
理论上细胞数量太多,造成的麻烦就是双细胞比例提高,但是真实情况下往往是一切其它指标都很差,比如:
生信技能树jimmy
2022/04/18
1.4K0
单个样品测序了近2万个单细胞怎么办
10X这样的单细胞转录组里面的非编码基因信息很难挖掘
最近收到一个有意思的留言,是关于10X这样的单细胞转录组里面的非编码基因的, 目前绝大部分表达量矩阵都是以基因名字为单位,很容易区分成为编码和非编码,我们仍然是以 pbmc3k 这个数据集举例子哈。
生信技能树
2022/03/03
9320
10X这样的单细胞转录组里面的非编码基因信息很难挖掘
拟南芥根系单细胞亚群类型鉴定
然后作者提供了这10个样品的表达矩阵文件,初步看起来并不是10x商业仪器出来数据 :
生信技能树
2021/07/06
7360
胃癌单细胞数据集GSE163558复现(二):Seurat V5标准流程
Hello小伙伴们大家好,我是生信技能树的小学徒”我才不吃蛋黄“。今天是胃癌单细胞数据集GSE163558复现系列第二期。第一期我们进行了数据的下载与读取并成功构建Seurat对象。本期,我们将在第一期基础上走Seurat V5标准流程,对Seurat对象进行QC质控、并利用harmony整合去批次、并按标准流程进行降维聚类分群。
生信技能树jimmy
2024/06/13
1.5K2
胃癌单细胞数据集GSE163558复现(二):Seurat V5标准流程
各个单细胞亚群的差异基因数量投射到umap图
我简单读了一下文章,其实就降维聚类分群后,每个单细胞亚群在两个分组简单的做一下差异分析,有多少个单细胞亚群就做多少次差异分析,差异分析的上下调基因数量就是umap图里面的每个细胞的颜色情况。
生信技能树jimmy
2022/06/13
2.9K0
各个单细胞亚群的差异基因数量投射到umap图
初探单细胞下游
提醒自己整理笔记推陈出新的同时,告诉中途了解到的老师同学这个专辑的学习性质,避免水文之嫌
生信技能树jimmy
2023/08/31
4880
初探单细胞下游
热点综述 | 高维单细胞RNA测序数据分析工具
scRNA-seq数据集通常包含由于不完全RNA捕获、PCR扩增偏差和/或特定于患者或样本的批次效应而产生的技术噪声,如何降低技术噪声对数据分析的影响?
尐尐呅
2022/04/01
8520
热点综述 | 高维单细胞RNA测序数据分析工具
大鼠单细胞标记基因特异性咋样
给大家一个学徒作业,在pbmc3k的单细胞数据集里面,降维聚类分群后,对上面的大鼠的单细胞亚群特异性的标记基因进行可视化!
生信技能树
2021/10/12
6460
单细胞数据分析新选择(基于Julia编程语言)
基于对Julia语言的开发兴趣,以及想要建立一个尽量为用户提供自动化参数选择,同时保持灵活性的单细胞数据下游分析工具,西湖大学高性能计算中心开源了一个100%由Julia编写的工具ASCT。该工具目前在github上发布了完全开源的0.9.0版本,并提供了基本分析流程和使用Harmony算法实现的数据整合流程。该工具基本对标R上的Seurat v4版本,并能对不同来源的数据进行一些自适应的参数设置而无需用户自行摸索。本文以其提供的pbmc3k流程来大致介绍该工具的基本使用方法。
生信技能树
2024/11/21
1060
单细胞数据分析新选择(基于Julia编程语言)
ADAR1基因敲除前后肿瘤免疫微环境单细胞水平变化
在单细胞大行其道的近两年,我也安排了学徒们做了几百个有表达量矩阵可以下载的单细胞转录组文献图表复现,挑选其中100个成功的案例,提供代码给大家,希望对大家有帮助!
生信技能树
2021/04/29
8200
ADAR1基因敲除前后肿瘤免疫微环境单细胞水平变化
各种肺上皮单细胞亚群的处理前后差异
可以看到是4个分组,野生型和突变型的两种小鼠,各种都是疾病模型与对照的两个样品,都没有生物学重复,所以四个分组就是四个样品啦。跟我们在2021的尾巴在《生信技能树》和《单细胞天地》等公众号推出来的10X单细胞转录组钜惠套餐,详见:2个分组的单细胞项目标准分析,原价15~20万的6个10x单细胞转录组套餐,现价10万,比较类似。
生信技能树jimmy
2022/03/14
7970
各种肺上皮单细胞亚群的处理前后差异
单细胞亚群绝对数量和相对比例的探索
前面我在:单细胞转录组降维聚类分群过滤基因和过滤细胞的区别 介绍了文献,题目为“Revealing the transcriptional heterogeneity of organ-specific metastasis in human gastric cancer using single-cell RNA Sequencing”。通讯作者是浙江大学的范骁辉教授,于2022年发表在Clin Transl Med杂志(IF=10.6),这个胃癌单细胞数据集GSE163558的单细胞转录组在降维聚类分群后,就可以看细胞比例的变化情况。
生信技能树
2024/11/21
1240
单细胞亚群绝对数量和相对比例的探索
美化你的单细胞亚群比例图
最近,郑州大学第一附属医院的史阳同学无私的分享了他对这些基础函数的改造,颜值说不上巅峰,但打败基础函数是没有问题的, 同时也算是抛砖引玉吧,希望广大生信技能树粉丝们都投稿分享自己的创作,投稿请发邮件到 jmzeng1314@163.com
生信技能树
2022/03/03
1.2K0
美化你的单细胞亚群比例图
推荐阅读
相关推荐
单细胞降维聚类分群的另外一个工具选择Pagoda2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验