单细胞测序下游原始文件主要以三种形式在GEO存储
针对三种不同的存储形式分别对应不同的seurat对象创建方式
1.以标准的barcodes.tsv、genes.tsv、matrix.mtx三个上游的cellranger输出文件存储
##直接对存储文件夹读取seurat包会自动识别三个文件并进行构建
library(dplyr)
library(Seurat)
library(patchwork)
pbmc.data <- Read10X(data.dir = "pbm3k/") ##由于使用了Rproject,只填写了相对路径
##注意:上一步仅仅是将文件数据读取至R并为构建成seurat对象
head(pbmc.data) #是以稀松矩阵存储,稀松矩阵占用内存小,对于大数据集建议使用稀松矩阵,各单细胞R包大部分都支持以稀松矩阵为输入
#seurat对象创建
pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)
pbmc
2.以单个RDS/Rdata文件存储
##这个实际上就是原作者已经将三个上游的cellranger输出文件Read10X读进了R,并保存了变量
#直接读进来构建seurat就行
rm(list = ls())
sce=readRDS("rds_rdata/sce.rds") #此处获取的为RDS,所以用readRDS,注意readRDS要传递给变量
##如果获取的为.Rdata
rm(list = ls())
load(file = "rds_rdata/sce.rdata") #rdata是保存了变量名的,读进来直接生成变量
#创建seurat
pbmc <- CreateSeuratObject(counts = sce2, project = "sce2", min.cells = 3, min.features = 200)
pbmc
3.以每个样品的UMI矩阵txt存储
rm(list = ls())
path="拆分txt/"
# setwd("..")
library(Seurat)
library(data.table)
samples=list.files(path)
samples
dir <- file.path(path,samples)
names(dir) <- samples
options(scipen = 200)
#合并方法2
scRNAlist <- list()
#批量读取txt创建seurat对象存储到list
for(i in 1:length(dir)){
print(i)
counts=fread(dir[i],sep="\t",header=T,check.names=F,quote = F)
counts=as.data.frame(counts)
rownames(counts)=counts[,1]
counts=counts[,-1]
scRNAlist[[i]] <- CreateSeuratObject(counts = counts,project = "seurat", min.cells=3, min.features=200, names.delim = "_")
}
scRNA2 <- merge(scRNAlist[[1]], scRNAlist[2:length(scRNAlist)])#list整合,注意修改数量
dim(scRNA2) #查看基因数和细胞总数
table(scRNA2@meta.data$orig.ident) #查看每个样本的细胞数
变量的保存
saveRDS(sce2,"sce.rds") #.rds在存储和读取时会对变量进行压缩/解压,速度慢,占用硬盘空间小,但不会保存变量名称,读取时要赋值
sce=readRDS("rds_rdata/sce.rds")
save(sce2,file = "sce.rdata") #.rdata直接将带变量名称的对象保存至硬盘,速度快,占硬盘空间大,但读取时无需赋值
load(file = "rds_rdata/sce.rdata")
问题交流:
Email:xuran@hrbmu.edu.cn