打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何读取单细胞数据



1library(Seurat)
2library(tidyverse)
3library(Matrix)
4
5dataset_loc <- "expression_tables_cellrangerV3" #此处改为自己的文件夹路径
6ids <- c("UCD_Adj_VitE","UCD_Supp_VitE") #此处视自己的文件名来定

读取单个文件

方式一:Read10X

1## Read10X
2seurat_data <- Read10X(data.dir = paste(dataset_loc, ids[1],"filtered_feature_bc_matrix", sep="/"))
3seurat_obj <- CreateSeuratObject(counts = seurat_data)
4# write.table(seurat_obj@assays$RNA@counts, "all.datatable.txt",sep="\t", quote=F, col.names=NA)

方式二:Read10X_h5

注:如果自己没有h5格式的文件可以忽略此方法。

1## Read10X_h5
2seurat_data <- Read10X_h5(file.path(dataset_loc, ids[1], "filtered_feature_bc_matrix.h5"), use.names = T)
3seurat_obj <- CreateSeuratObject(counts = seurat_data)

方式三:read.table

注:同方法二,如果没有 “all.datatable.txt” 的文件,也可忽略此步骤。这里只是提供多种情况下的读入方法。(想尝试的话,方法一有生成 “all.datatable.txt” 的代码,不过要注意路径。)

1## read matrix
2matrix_data <- read.table(file.path(dataset_loc, ids[1], "all.datatable.txt"), sep="\t", header=T, row.names=1)
3# dim(matrix_data)
4# matrix_data[1:4,1:4]
5
6seurat_obj <- CreateSeuratObject(counts = matrix_data)

方式四:readMM

1# Read in `matrix.mtx`
2counts <- readMM(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","matrix.mtx.gz")))
3
4# Read in `genes.tsv`
5genes <- read_tsv(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","features.tsv.gz")), col_names = FALSE)
6gene_ids <- genes$X1
7
8# Read in `barcodes.tsv`
9cells <- read_tsv(gzfile(file.path(dataset_loc,ids[1],"filtered_feature_bc_matrix","barcodes.tsv.gz")), col_names = FALSE)
10cell_ids <- cells$X1
11
12# Create a sparse matrix for more efficient computation
13counts <- as(counts, "dgCMatrix")
14
15# Make the column names as the cell IDs and the row names as the gene IDs
16rownames(counts) <- gene_ids
17colnames(counts) <- cell_ids
18
19seurat_obj <- CreateSeuratObject(counts = counts)

读取多个文件

方式一:do.call

1d10x.data <- sapply(ids, function(i){
2  d10x <- Read10X(data.dir = file.path(dataset_loc,i,"filtered_feature_bc_matrix"))
3  colnames(d10x) <- paste(i,sapply(strsplit(colnames(d10x),split="_"),'[[',1L),sep="_")
4  d10x
5})
6
7seurat_merge <- do.call("cbind", d10x.data) # for "dgCMatrix"
8seurat_data <- CreateSeuratObject(seurat_merge, min.cells = 1min.features = 1, names.field = 1, names.delim = "\\_"
9table(Idents(seurat_data))
10# head(seurat_data@meta.data)

方式二:merge

1for (file in ids){
2  seurat_data <- Read10X(data.dir = paste(dataset_loc, file,"filtered_feature_bc_matrix", sep="/"))
3  seurat_obj <- CreateSeuratObject(counts = seurat_data, project = file)
4  assign(file, seurat_obj)
5}
6
7# Create a merged Seurat object
8merged_seurat <- merge(x = eval(parse(text=ids[1])), y = eval(parse(text=ids[2])), add.cell.id = ids)
9# table(Idents(merged_seurat))
10# head(merged_seurat@meta.data)

注:示例数据在https://share.weiyun.com/yqfUzaYK,可以自行下载尝试。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
scRNA挖掘 |只有矩阵如何构建单细胞对象?meta信息如何利用?
跟着Cell学单细胞转录组分析(二):单细胞转录组测序文件的读入及Seurat对象构建
Play framework 技巧记录 二(原创)
如何直接用Seurat读取GEO中的单细胞测序表达矩阵
如何使用机器学习检测欺诈?
R语言列表list函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服