Seurat对象的构建和信息提取
本期来介绍一下单细胞分析的第一步,Seurat 对象的构建和信息提取。
目前构建 Seurat 对象有以下几种方法:
- 从 CellRanger 输出构建
- 从 h5 文件构建
- 从表达矩阵构建
从 CellRanger 输出构建
公司在完成表达定量后,通常会使用 CellRanger 对数据进行简单的分析,得到以下三个文件。
- barcodes.tsv 用于储存细胞信息
- genes.tsv 用于储存基因信息
- matrix.mtx 表达矩阵
需要注意的是如果文件名不为以上三个,需要手动进行修改。
后续的分析在R语言中用 Seurat 包完成,需要将表达数据导入 R,并构建 Seurat 对象。
以数据GSE134809[1]的 GSM3972009 为例,在 GEO 界面选中并下载后解压。
library(Seurat)
# 读取 CellRanger 输出结果
ScRNAdata = Read10X(data.dir = "GSE134809_RAW/")
# 此时的 ScRNAdata 是一个稀疏矩阵 dgCMatrix
# > class(ScRNAdata)
# [1] "dgCMatrix"
# attr(,"package")
# [1] "Matrix"
# 构建 Seurat 对象
# 初步过滤一般不需要修改参数,除非数据实在太难看
Seurat_object <- CreateSeuratObject(
counts = ScRNAdata, # 表达矩阵,可以为稀疏矩阵,也可以为普通矩阵
min.cells = 3, # 去除在小于3个细胞中表达的基因
min.features = 200) # 去除只有 200 个以下基因表达的细胞
稀疏矩阵:在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵。
从 h5 文件构建
以数据GSE122960[2]的 GSM3489182 为例,在 GEO 界面选中并下载后解压。
library(Seurat)
ScRNAdata <- Read10X_h5(filename = "GSM3489182_Donor_01_raw_gene_bc_matrices_h5.h5")
Seurat_object <- CreateSeuratObject(
counts = ScRNAdata,
min.cells = 3,
min.features = 200)
从表达矩阵构建
以数据GSE106118的GSM2829942[3]为例,在 GEO 界面选中并下载后解压。
ScRNA_exp <- read.table(
"data/GSM2829942/GSM2829942_HE6W_LA.TPM.txt",
row.names = 1,
header = T)
Seurat_object <- CreateSeuratObject(
counts = ScRNA_exp,
min.cells = 3,
min.features = 200)
对Seurat对象的理解和信息提取
展开我们构建好的Seurat对象可以发现有非常多的信息,我们该如何理解Seurat对象?又该如何提取其中的细胞信息表和表达矩阵呢?
仍以数据 GSE122960 的 GSM3489182 为例。
Seurat对象的理解
先来看看它的文件类型,可以理解为一个变量。
> class(Seurat_object)
[1] "Seurat"
attr(,"package")
[1] "SeuratObject"
再来看看其维度,共有19520行即基因数,7222列即细胞数。
> dim(Seurat_object)
[1] 19520 7222
最后来理解一下创建Seurat对象的函数,最重要的参数就是counts,所以Seurat对象可以简单理解为包含着表达矩阵的一个变量。
CreateSeuratObject(
counts,
project = "CreateSeuratObject",
assay = "RNA",
names.field = 1,
names.delim = "_",
meta.data = NULL,
...
)
信息提取
表达矩阵
gene_exp = Seurat_object@assays[["RNA"]]@counts
由于其稀疏矩阵的属性,此时的gene_exps不是传统二维的表达矩阵。
细胞信息表
meta.data = Seurat_object@meta.data
参考资料
[1] GSE134809下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE134809
[2] GSE122960下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgiGSE122960
[3] GSM2829942下载链接: https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSM2829942
相关文章
- Go 对象关系映射框架 GORM 使用示例
- mybatis返回对象_存储过程不能返回结果
- js 遍历数组、对象的几种方式
- 实战:第十九章:存入Long类型对象,在代码中使用Long类型接收,结果报类型转换错误
- 【Groovy】MOP 元对象协议与元编程 ( GroovyObject 接口简介 | MetaClass 简介 | 使用 GroovyObject#invokeMethod 执行类方法 )
- PHP- 复合数据类型-对象的创建和销毁
- 总结的一些json格式和对象/String/Map/List等的互转工具类详解编程语言
- MongoDB:构建高效的Object数组(mongodb对象数组)
- MySQL中构建数据对象的指南(mysql的数据对象)
- Oracle对象导出:从实现到结果.(oracle对象导出)
- 使用Redis队列存储对象的优势(redis队列存储对象)
- IE7提供XMLHttpRequest对象为兼容
- JavaScript对象创建及继承原理实例解剖
- 深入c++中临时对象的析构时机的详解
- 为Javascript中的String对象添加去除左右空格的方法(示例代码)
- JavaScript学习笔记之JS对象