前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Seurat V5|当单细胞进入百万细胞时代,BPCell 给出一种“解”决参考

Seurat V5|当单细胞进入百万细胞时代,BPCell 给出一种“解”决参考

作者头像
生信补给站
发布于 2023-12-26 08:25:57
发布于 2023-12-26 08:25:57
1.7K00
代码可运行
举报
文章被收录于专栏:生信补给站生信补给站
运行总次数:0
代码可运行

现在单细胞的样本量和数据量都在逐渐增多,大有百万之势,如果用电脑分析就会显的吃力。这时候Seurat V5通过调用BPCells 也许能给出一个解决方案。

一 R包,数据准备

1,准备BPCells等R包

如果因网络问题出现报错的话,可以在github上下载BPCells的zip文件,然后本地安装 。之后缺少什么包就安装什么包 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#devtools::install_github(c("bnprks/BPCells"))
library(Seurat)
library(BPCells)
library(ggplot2)
# needs to be set for large dataset analysis
options(future.globals.maxSize = 1e9)

2,准备数据

使用https://cf.10xgenomics.com/samples/cell-exp/1.3.0/1M_neurons/1M_neurons_filtered_gene_bc_matrices_h5.h5中下载的h5数据进行示例 ,细胞数130万 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##数据读取
brain.data <- open_matrix_10x_hdf5(path = "1M_neurons_filtered_gene_bc_matrices_h5.h5")
##输出表达矩阵到本地
write_matrix_dir(mat = brain.data,dir = "brain_counts")

会在当前目录下根据write_matrix_dir生产一个对应名字的文件夹(brain_counts),内含有很多文件用于后续读取。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#查看数据
brain.mat <- open_matrix_dir(dir = "brain_counts")
brain.mat

直接读取10X的三个文件会报错。

二 标准分析

1,创建Seurat 对象

根据前面读取的矩阵构建object对象,进行HVG之前的标准分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Create Seurat Object
pbmc <- CreateSeuratObject(counts = mat_raw)
pbmc

##标准化数据
brain <- NormalizeData(brain)
##识别高变基因
brain <- FindVariableFeatures(brain)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
head(brain)
orig.ident nCount_RNA nFeature_RNA
AAACCTGAGATAGGAG-1 SeuratProject       4046         1807
AAACCTGAGCGGCTTC-1 SeuratProject       2087         1249
AAACCTGAGGAATCGC-1 SeuratProject       4654         2206
AAACCTGAGGACACCA-1 SeuratProject       3193         1655
AAACCTGAGGCCCGTT-1 SeuratProject       8444         3326
AAACCTGAGTCCGGTC-1 SeuratProject      11178         3866

2,抽取细胞

使用SketchData函数抽取细胞,ncells参数指定抽取多少细胞到内存中进行分析,注意指定assay名字,方便后续分析。其他细胞仍然可以硬盘访问 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##抓取2w细胞载入到内存中进行分析
brain <- SketchData(object = brain,
ncells = 20000,
method = "LeverageScore",
sketched.assay = "sketch")
brain

An object of class Seurat 
55996 features across 1306127 samples within 2 assays 
Active assay: sketch (27998 features, 2000 variable features)
2 layers present: counts, data
1 other assay present: RNA

dim(brain@assays$sketch$counts)
#[1] 27998 20000

可以看到已完成2W细胞的抽取,接下来进行后续分析。

3,Sketch细胞标准分析

将默认对象切换到sketch(内存中的2w细胞),然后进行标准分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 默认对象切换到sketch(内存中的2w细胞)
DefaultAssay(brain) <- "sketch"
brain <- FindVariableFeatures(brain)
brain <- ScaleData(brain)
brain <- RunPCA(brain)
brain <- FindNeighbors(brain, dims = 1:50)
brain <- FindClusters(brain, resolution = 2)
brain <- RunUMAP(brain, dims = 1:50, return.model = T)
brain

除了上述sketch抽取的2W外,其他的cluster信息(sketch_snn_res.2)均为NA 。

(2)基于2W细胞进行可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##绘制umap图(2w细胞)
p1 <- DimPlot(brain, label = T, label.size = 3, reduction = "umap") + NoLegend()
p1
p2 <- FeaturePlot(object = brain,
                  features = c("ENSMUSG00000036256", 
          "ENSMUSG00000037984", 
          "ENSMUSG00000023391", 
          "ENSMUSG00000026787"),
                  ncol = 2)
p2

4 扩展至全部细胞

使用ProjectData函数将sketch得到的cluster和reduction信息扩展至全部百万细胞。

扩展后的降维,聚类结果存放在含有full的结果中,如pca.full, full.umap和cluster_full 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##扩展(从2w细胞扩展到130w细胞)
brain <- ProjectData(object = brain,
assay = "RNA",
full.reduction = "pca.full",
sketched.assay = "sketch",
sketched.reduction = "pca",
umap.model = "umap",
dims = 1:50,
refdata = list(cluster_full = "seurat_clusters"))

新增的cluster_full即为根据sketch的cluster预测出来的全部细胞的cluster结果 ,cluster_full.score为预测的得分。

更多细节可以通过View(TransferSketchLabels)查看

(2)基于全部细胞可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##默认对象切换到RNA(全部数据集)
DefaultAssay(brain) <- "RNA"
p3 <- DimPlot(brain, label = T, 
              label.size = 3, 
              reduction = "full.umap", 
group.by = "cluster_full", 
              alpha = 0.1) + NoLegend()
p1 + p3

(3)以两个基因为例,比较sketch 和 全部的结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DefaultAssay(brain) <- "sketch"
x1 <- FeaturePlot(brain, features = c("ENSMUSG00000036256", "ENSMUSG00000036887") )
DefaultAssay(brain) <- "RNA"
x2 <- FeaturePlot(brain, features = c("ENSMUSG00000036256", "ENSMUSG00000036887") )
p4 <- x1 / x2
p4

可以看到推断至全部的一致性还是可以的。

至此就借用该种方式完成了百万级别细胞的单细胞分析,当然内存足够的可以直接用全部细胞走正常的流程。

后续也可以进行亚群分析,提取感兴趣的亚群,根据细胞数选择继续Sketch 或者 进行正常的分析(此处不展示,详见参考资料)。

参考资料:

https://bnprks.github.io/BPCells/articles/pbmc3k.html

https://satijalab.org/seurat/articles/seurat5_sketch_analysis

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

本文分享自 生信补给站 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
【数据分析】RFM模型分析与客户细分
今天把数据挖掘RFM模型的建模思路细节与大家分享一下吧!手机充值业务是一项主要电信业务形式,客户的充值行为记录正好满足RFM模型的交易数据要求。 根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有三个神奇的要素,这三个要素构成了数据分析最好的指标:最近一次消费(Recency)、消费频率(Frequency)、消费金额(Monetary)。 我早期两篇博文已详述了RFM思想和IBM Modeler操作过程,有兴趣的朋友可以阅读! RFM模型
陆勤_数据人网
2018/02/26
2.4K0
【数据分析】RFM模型分析与客户细分
数据分析之RFM分析
探索式分析,主要是运用一些分析方法从大量的数据中发现未知且有价值信息的过程。对于初步探索性分析而言,数据可视化是一个非常便捷、快速、有效的方法,你可以使用作图、制表等方法来发现数据的分布特征,然后可以使用一些统计分析方法更深入地发现数据背后的信息。常用的探索性分析方法包括RFM分析、聚类分析、因子分析、对应分析等。
黄成甲
2018/09/12
1.9K0
数据分析之RFM分析
构建RFM体系:优化客户分析和营销策略
RFM 分析是一种用于洞悉客户价值和行为的强大工具,广泛应用于市场营销和客户关系管理。本文将介绍 RFM 分析如何在数据产品不充分的情况下实现以及如何利用RFM分析来优化营销策略,提高客户满意度,增加业务收益。
政采云前端团队
2023/09/22
2K0
构建RFM体系:优化客户分析和营销策略
RFM 客户价值分析模型
在众多的客户关系管理(CRM)分析模式中,RFM 客户价值分析模型经常被提到。RFM 客户价值分析模型通过一个客户的近期购买行为、购买的总体频率及花费金额三项指标来描述该客户的价值状况。
博文视点Broadview
2021/12/06
2.5K0
RFM 客户价值分析模型
一步一步教你PowerBI数据分析:制作客户RFM数据分析
客户分析就是根据客户信息数据来分析客户特征,评估客户价值,从而为客户制订相应的营销策略与资源配置。通过合理、系统的客户分析,企业可以知道不同的客户有着什么样的需求,分析客户消费特征与商务效益的关系,使运营策略得到最优的规划;更为重要的是可以发现潜在客户,从而进一步扩大商业规模,使企业得到快速的发展。
黄昏前黎明后
2020/05/22
2.1K0
一步一步教你PowerBI数据分析:制作客户RFM数据分析
【商业数据分析】用户价值RFM模型详解
一个聪明的营销者懂得“了解你的客户”的重要性。营销人员不能仅关注于产生更多的点击量,他们必须遵循从增加点击率到保持、忠诚和建立客户关系的模式转变。 与其把整个客户群作为一个整体来分析,不如把他们分成同质化的群体,了解每个群体的特点,让他们参与相关的活动,而不是仅仅根据客户的年龄或地理位置来细分。 接下来介绍的RFM模型是最受欢迎的、易于使用的和有效的客户细分方法之一,它使市场营销人员能够分析客户行为。
润森
2022/09/22
3.3K0
【商业数据分析】用户价值RFM模型详解
案例实操|手把手教你搭建 RFM 客户价值分析模型
随着电商的不断发展,网上购物变得越来越流行。更多电商平台崛起,对于电商卖家来说增加的不只是人们越来越高的需求,还要面对更多强大的竞争对手。面对这些挑战,就需要能够及时发现店铺经营中的问题,并且能够有效解决这些实际的问题,从而提升自身的竞争力。
用户6888863
2023/03/01
1.5K0
案例实操|手把手教你搭建 RFM 客户价值分析模型
效率神器:DeepSeek如何轻松搞定Excel公式生成(附3个实战案例)
DeepSeek在Excel公式生成方面展现了独特的赋能能力,主要具备以下特点。
全栈若城
2025/03/02
6550
案例实战 | Python 实现 RFM 模型
对利用Python进行数据分析有一定的了解后,再结合一些业务知识把理论与实际相结合的需求也呼之欲出。将编程语言应用到实践中也还是一件比较有成就感的事情。本文源起是笔者最近常收到如下“骚扰”短信:
萝 卜
2022/05/12
8280
案例实战 | Python 实现 RFM 模型
再见 Excel,你好 Python Spreadsheets! ⛵
Excel是大家最常用的数据分析工具之一,借助它可以便捷地完成数据清理、统计计算、数据分析(数据透视图)和图表呈现等。
ShowMeAI
2022/08/09
3.2K0
再见 Excel,你好 Python Spreadsheets! ⛵
用python轻松实现数据分析中的RFM建模
  RFM模型是衡量客户价值和客户创利能力的重要工具和手段。在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的。
朱小五
2020/03/10
1.4K0
用python轻松实现数据分析中的RFM建模
DeepSeek系列:90%的人不知道的DeepSeek+Excel联用秘籍
在数字化办公时代,Excel数据处理效率直接决定职场人的竞争力。DeepSeek作为AI办公神器,能通过精准提示词生成复杂公式、自动化清洗数据、跨表统计等操作,将繁琐流程压缩至秒级完成。本文结合企业实战场景,整理25个可直接复用的提示词案例,助你成为Excel效率王者。
小明互联网技术分享社区
2025/05/02
3990
DeepSeek系列:90%的人不知道的DeepSeek+Excel联用秘籍
效率神器:DeepSeek如何轻松搞定Excel公式生成(附3个实战案例)
在职场中,Excel公式生成常常让人头疼,但有了DeepSeek,这一切变得简单高效!
空白诗
2025/03/01
4311
效率神器:DeepSeek如何轻松搞定Excel公式生成(附3个实战案例)
RFM会员价值度模型
会员价值度用来评估用户的价值情况,是区分会员价值的重要模型和参考依据,也是衡量不同营销效果的关键指标。
@小森
2024/03/15
6440
RFM会员价值度模型
数据人必会的Excel|掌握32个Excel小技巧,成为效率达人(一)
作为数据分析师,有时候我们拿到的数据可能有成百上千行或者成百上千列,如果我们想要选中这成百上千数据中的一部分进行处理,常规的方法是拖动鼠标进行框选,但对于数据量大的情况这种方法不一定好,这时候就该Excel快捷键出马了。
数据万花筒
2021/01/12
1.9K0
重磅分享-揭开Excel动态交互式图表神秘面纱
永远不要低估Excel的作用,虽然名种BI工具很火爆,但记住他们只在分析师的群体中火爆,当涉及到报表分享时,分享到一般用户手里时,或者职场老一辈人群时,Excel是最佳的选择。同样对灵活性要求高、自动化程度强烈的,Excel仍然是不二的选择。
Excel催化剂
2021/08/19
8.8K0
重磅分享-揭开Excel动态交互式图表神秘面纱
翻译 | 简单而有效的EXCEL数据分析小技巧
介绍 我一直很欣赏EXCEL蕴藏的巨大能量。这款软件不仅具备基本的数据运算,还能使用它对数据进行分析。EXCEL被广泛运用到很多领域,例如:金融建模和商业预测。对于刚进入数据分析行业新手来说,EXCEL可以被当做一款入门的软件。 甚至在学习R或Python前,对于新入门的小白来说,事先掌握一定的EXCEL知识是百利而无一害。EXCEL凭借其功能强大的函数、可视化图表、以及整齐排列的电子表格功能,使你能够快速而深入的洞察到数据不轻易为人所知的一面。 但与此同时,EXCEL也有它的一些不足之处,即它无法非常有
CDA数据分析师
2018/02/13
3.9K0
翻译 | 简单而有效的EXCEL数据分析小技巧
Excel表格的35招必学秘技[配图]
一、让数据按需排序   如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。   1.执行“格式→选项”命令,打开“选项”
ytkah
2018/03/06
8.5K0
Excel表格的35招必学秘技[配图]
数据分析基础——EXCEL快速上手秘籍
这篇文章是本系列的第一篇,选择性汇总了EXCEL的常用且重点的模块和公式,用作内部员工EXCEL基础操作培训,以帮助表格基础薄弱的同事快速熟悉常用操作,提升工作效率。现将内容分享,作为数据分析基础的第一篇。
数据森麟
2019/09/27
2.3K0
数据分析基础——EXCEL快速上手秘籍
统计不同值的7种方法
首先,我们来解释什么是不同值和唯一值。不同值意味着值是不同的,例如列表{A, B, B, C}中的不同值是{A, B, C},不同值个数是3。而唯一值意味着值仅出现一次,例如列表{A, B, B, C}中的唯一值是{A, C},唯一值个数是2。
fanjy
2023/08/29
4.9K0
统计不同值的7种方法
推荐阅读
相关推荐
【数据分析】RFM模型分析与客户细分
更多 >
LV.0
北京千锋互联科技有限公司web前端高级讲师
目录
  • 2,准备数据
  • 2,抽取细胞
  • 使用SketchData函数抽取细胞,ncells参数指定抽取多少细胞到内存中进行分析,注意指定assay名字,方便后续分析。其他细胞仍然可以硬盘访问 。
    • 3,Sketch细胞标准分析
    • 4 扩展至全部细胞
  • 使用ProjectData函数将sketch得到的cluster和reduction信息扩展至全部百万细胞。
    • 参考资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档