分析单细胞转录组测序的软件和方法有很多,最流行的莫过于Seurat包,可以完成单细胞分析整个流程,我们整个教程也是基于R语言Seurat包来实现的,所以首先安装包:
BiocManager::install("Seurat")
library(Seurat)
单细胞文件形式各式各样,但是最终分析需要的目的文件是一个矩阵,行位基因,列为细胞。这里我们介绍几种常见的文件形式,将他们读入R,并构建可以后续处理的Seurat对象。
1、10X单细胞测序文件
这应该是最常见的,一般10X下机。经过前期处理后,我们拿到手的可有用于后续分析的文件包含三个,第一个是barcode文件,一个是gene文件,一个是matrix文件。10X单细胞测序,公共数据库上传的数据也会包含这三个文件。使用Read10X函数读入文件,三个文件包含在同一文件夹,需要注意的是要将feature那个文件命名为genes。
先下载Cell文章(从Cell学单细胞转录组分析(一):开端!!!)中的数据。因为原文有很多样本,这里我们只下载6例作为演示。GEO数据库检索下载。
每个样本包含三个文件,这是标准的10X文件。解压文件,每个样本新建一个文件夹。
setwd("F:/生物信息学/cell单细胞")
GM1 <- Read10X(data.dir ="F:/生物信息学/cell单细胞/BM1")
GM1 <- CreateSeuratObject(counts = GM1, project = "GM1",min.cells = 3, min.features = 200)
#创建seurat对象
但是Read10X只能接受一个文件夹,所以剩下的需要一个一个读入,这显然很累,像这篇文章有20几个样本,所以需要批量读入,并用merger整合。GM、BM分开,涉及后期QC参数不同,虽然这篇文章中是一样的。
folders=list.files('./',pattern='[123]$')
folders
library(Seurat)
scList = lapply(folders,function(folder){
CreateSeuratObject(counts = Read10X(folder),
project = folder,
min.cells = 3, min.features = 200)
})
BM <- merge(scList[[1]],
y = c(scList[[2]],scList[[3]]),
add.cell.ids = c("BM1","BM2","BM3"),
project = "BM")
BM
#An object of class Seurat
#20407 features across 6366 samples within 1 assay
#Active assay: RNA (20407 features, 0 variable features)
GM <- merge(scList[[4]],
y = c(scList[[5]],scList[[6]]),
add.cell.ids = c("GM1","GM2","GM3"),
project = "GM")
GM
#An object of class Seurat
#18682 features across 5401 samples within 1 assay
#Active assay: RNA (18682 features, 0 variable features)
2. h5文件
如果下载的是.h5文件,则使用Read10X_h5函数,需要加载hdf5r包
devtools::install_github(repo = "hhoeflin/hdf5r")
library(hdf5r)
A1 <-Read10X_h5("A1_filtered_feature_bc_matrix.h5")
A1 <- CreateSeuratObject(counts = A1, project = "A1",min.cells = 3, min.features = 200)
3. 表达矩阵txt文件
有些公共数据文件或者公司直接给了整理的表达矩阵txt文件,行为gene,列为细胞,直接用read.table读入即可
A2 <- read.table(file="A2_matrix.txt",sep="\t",header = TRUE, row.names = 1)
A2 <- CreateSeuratObject(counts = A2, project = "A2",min.cells = 3, min.features = 200)
4. seurat对象
有些文章作者上传的文件时已经构建好的seurat对象,但是需要注意一个问题,有些上传的seurat版本较低,目前的版本打不开,需要更新转化一下。
A4 = UpdateSeuratObject(object = A4)
创建好Seurat对象后,后期就是质控和单细胞标准流程了,详细内容亲关注下一节,希望分享有用。有问题请指点批评!