|
发表于 2022-8-2 21:47:41
|
查看: 1208 |
回复: 0
一、读入数据
软件支持多种方式的数据读入,可以直接读入 10x genomics 官方软件 Cell Ranger 的结果,也可以使用 Seurat 质控过后的结果,还可以单独读入矩阵,细胞信息,基因信息文件。还可以处理一些较大类型的稀疏矩阵对象。
读入的数据为一个 cell_data_set 类,这个类继承自 SingleCellExperiment 类,基本操作也是类似的。主要包含三部分,
expression_matrix :表达矩阵,行为基因,列为细胞 barcode;
cell_metadata:是一个数据框,行为细胞,列是细胞的属性,比如细胞类型、培养环境、培养时间等,可以包含很多行,后面注释信息也可以添加到新行里。
gene_metadata:同样是一个数据框,行为feature信息,也就是基因名,基因名可以是GeneID,symbols 等。要注意基因 ID 类型;列是基因属性这个数据框中必须有这么一列:`gene_short_name`,其中保存基因名。
二、读入 10x genomics 数据
Monocle3 提供 load_cellranger_data 函数,可以直接读取 10x 数据,读取 Cell Ranger 分析结果目录,注意目录结构不要修改,可以删除一些不要的数据。也可以使用 load_mm_data函数分析读取每个文件。
- #10x 数据目录 :
- 10x_data/outs/filtered_feature_bc_matrix/{features.tsv.gz,barcodes.tsv.gz,matr
- ix.mtx.gz}
复制代码 读取文件。
- #设置工作目录;
- rm(list = ls())
- #方法一:直接读取 10x 目录
- cds <- load_cellranger_data("10xdata/")
- #方法二:分别读取三个文件
- path10x <- "run_count_1kpbmcs/outs/filtered_feature_bc_matrix/"
- cds <- load_mm_data(mat_path = paste0(path10x,"matrix.mtx.gz"),
- feature_anno_path = paste0(path10x,"features.tsv.gz"),
- cell_anno_path = paste0(path10x,"barcodes.tsv.gz"))
复制代码
三、分别读取
如果有矩阵,细胞信息,基因信息三个文件,也可以直接读取,生成 cell_data_set (CDS) 对象。
- #方法三:创建cell_data_set
- # Load the data
- getwd()
- expression_matrix <- readRDS("monocle3/celegans/cao_l2_expression.rds")
- cell_metadata <- readRDS("monocle3/celegans/cao_l2_colData.rds")
- gene_annotation <- readRDS("monocle3/celegans/cao_l2_rowData.rds")
- # Make the CDS object
- cds <- new_cell_data_set(expression_matrix,
- cell_metadata = cell_metadata,
- gene_metadata = gene_annotation)
复制代码
四、读取 Seurat 结果
如果是 Seurat,可以直接导入 Seurat 中进行分析,需要从 Seurat 对象分别提取出矩阵,细胞和 cell 三个文件,然后创建 new_cell_data 对象。
- library(SeuratObject)
- pbmc <- readRDS("../pbmc3k.rds")
- class(pbmc)
- expression_matrix <- GetAssayData(pbmc, assay ='RNA', slot = 'counts')
- cell_metadata <- [email protected]
- gene_annotation <-data.frame(gene_short_name = rownames(expression_matrix))
- rownames(gene_annotation) <-rownames(expression_matrix)
- cds <- new_cell_data_set(expression_matrix,cell_metadata =cell_metadata, gene_metadata =gene_annotation)
复制代码
|
|