前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >导出Seurat对象中的单细胞表达矩阵

导出Seurat对象中的单细胞表达矩阵

作者头像
生信交流平台
发布2022-09-21 17:12:04
10.2K0
发布2022-09-21 17:12:04
举报

做单细胞数据分析的时候,我们经常会从公共数据库,或者从别人那里得到一个seurat对象,有些人可能想从这个seurat对象中提取原始的表达矩阵,自己再从头分析一遍。那么今天小编就讲讲怎么实现,我们以SeuratData这个包里面自带的pbmc3k这套数据为例。

我们先来安装相关的R包

代码语言:javascript
复制
#安装Seurat包,删掉下面一行#,然后运行
#install.packages("Seurat")

#加载Seurat包
library(Seurat)

#安装devtools包,删掉下面一行#,然后运行
#install.packages("devtools")

#安装SeuratData包,删掉下面一行#,然后运行
#devtools::install_github('satijalab/seurat-data')

#加载SeuratData
library(SeuratData)

#查看已经安装的单细胞数据集
AvailableData()

你会发现pbmc3k这套数据已经安装了,这是一套包含2700个细胞的pbmc样本单细胞测序数据

如果发现这套数据还没有安装,可以运行下面代码来安装。

代码语言:javascript
复制
#安装pbmc3k数据集,如果已经安装过,可以跳过
InstallData("pbmc3k")
#加载pbmc3k数据集
pbmc <- LoadData("pbmc3k")
pbmc

下面就是pbmc这个seurat对象的一些详细信息,包含2700个细胞,13714个基因。

原始的单细胞表达矩阵保存在pbmc[["RNA"]]@counts中,每一行是一个基因,每一列是一个细胞,如果counts数是0,就用一个.来表示。

接下来我们就可以导出这个矩阵到文件中,我们来比较两种方法。

方法一、使用data.table包里的fwrite函数

这里用到了我们前面提到过的☞【R语言】data.table让你的读取速度提升百倍

代码语言:javascript
复制
#方法一、使用data.table包里的fwrite函数
#install.packages("data.table")
library(data.table)
#利用system.time记录运行时间
system.time({fwrite(x = as.data.frame(pbmc[["RNA"]]@counts), row.names=T,file = "counts.csv")})

导出所用的时间如下

方法二、使用普通的write.csv函数

代码语言:javascript
复制
#方法二、使用普通的write.csv函数
#利用system.time记录运行时间
system.time({write.csv(file="counts2.csv",as.data.frame(pbmc[["RNA"]]@counts),quote = F)})

导出所用的时间如下

通过比较我们可以发现,两种方法导出的矩阵文件是一样的,但是fwrite的速度要快不少。

参考资料:

【R语言】data.table让你的读取速度提升百倍

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

本文分享自 生信交流平台 微信公众号,前往查看

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

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

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