前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Seurat对象的构建和信息提取

Seurat对象的构建和信息提取

作者头像
小汪Waud
发布2023-02-16 17:07:12
2.4K0
发布2023-02-16 17:07:12
举报
文章被收录于专栏:小汪Waud

本期来介绍一下单细胞分析的第一步,Seurat 对象的构建和信息提取。

目前构建 Seurat 对象有以下几种方法:

  • 从 CellRanger 输出构建
  • 从 h5 文件构建
  • 从表达矩阵构建

从 CellRanger 输出构建

公司在完成表达定量后,通常会使用 CellRanger 对数据进行简单的分析,得到以下三个文件。

  • barcodes.tsv 用于储存细胞信息
  • genes.tsv 用于储存基因信息
  • matrix.mtx 表达矩阵

需要注意的是如果文件名不为以上三个,需要手动进行修改。

后续的分析在R语言中用 Seurat 包完成,需要将表达数据导入 R,并构建 Seurat 对象。

以数据GSE134809[1]的 GSM3972009 为例,在 GEO 界面选中并下载后解压。

代码语言:javascript
复制
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 界面选中并下载后解压。

代码语言:javascript
复制
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 界面选中并下载后解压。

代码语言:javascript
复制
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对象的理解

先来看看它的文件类型,可以理解为一个变量。

代码语言:javascript
复制
> class(Seurat_object)
[1] "Seurat"
attr(,"package")
[1] "SeuratObject"

再来看看其维度,共有19520行即基因数,7222列即细胞数。

代码语言:javascript
复制
> dim(Seurat_object)
[1] 19520  7222

最后来理解一下创建Seurat对象的函数,最重要的参数就是counts,所以Seurat对象可以简单理解为包含着表达矩阵的一个变量

代码语言:javascript
复制
CreateSeuratObject(
  counts,
  project = "CreateSeuratObject",
  assay = "RNA",
  names.field = 1,
  names.delim = "_",
  meta.data = NULL,
  ...
)

信息提取

表达矩阵
代码语言:javascript
复制
gene_exp = Seurat_object@assays[["RNA"]]@counts

由于其稀疏矩阵的属性,此时的gene_exps不是传统二维的表达矩阵。

细胞信息表
代码语言:javascript
复制
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

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

本文分享自 小汪Waud 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从 CellRanger 输出构建
  • 从 h5 文件构建
  • 从表达矩阵构建
  • 对Seurat对象的理解和信息提取
    • Seurat对象的理解
      • 信息提取
        • 表达矩阵
        • 细胞信息表
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档