P1 P1.pre <NA> <NA> 2 P1.ut.AAACCTGGTGGTACAG-1 P1 P1.pre CD4 CD4_C8-Treg 3 1.2 创建seurat对象 依然使用CreateSeuratObject 函数,此处count 为读取的矩阵文件。 1,CreateSeuratObject中的meta.data参数 CreateSeuratObject函数除了简单的过滤条件外 ,还有一个重要的meta.data参数,可以输入提供的meta信息。 meta.data =meta2, min.cells = 3, min.features = <- AddMetaData( object = sce0, metadata = meta2 ) head(sce3@meta.data) 3,矩阵添加 建议优先使用上述两种单细胞特有的方式进行添加
library(Seurat) library(tidyverse) library(Matrix) dataset_loc <- "expression_tables_cellrangerV3" Read10X(data.dir = paste(dataset_loc, ids[1],"filtered_feature_bc_matrix", sep="/")) seurat_obj <- CreateSeuratObject Read10X_h5(file.path(dataset_loc, ids[1], "filtered_feature_bc_matrix.h5"), use.names = T) seurat_obj <- CreateSeuratObject row names as the gene IDs rownames(counts) <- gene_ids colnames(counts) <- cell_ids seurat_obj <- CreateSeuratObject Read10X(data.dir = paste(dataset_loc, file,"filtered_feature_bc_matrix", sep="/")) seurat_obj <- CreateSeuratObject
dgCMatrix" # attr(,"package") # [1] "Matrix" # 构建 Seurat 对象 # 初步过滤一般不需要修改参数,除非数据实在太难看 Seurat_object <- CreateSeuratObject ( counts = ScRNAdata, # 表达矩阵,可以为稀疏矩阵,也可以为普通矩阵 min.cells = 3, # 去除在小于3个细胞中表达的基因 min.features = 200) # 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 CreateSeuratObject( counts, project = "CreateSeuratObject", assay = "RNA", names.field = 1,
这两天分析一个单细胞数据发现一个奇怪的问题,就是创建 seurat 对象的时候,我明明设置了参数 CreateSeuratObject 函数的project 参数,但是最后merge 不同的样本后发现 > samples [1] "IRI1d_1.txt" "IRI1d_2.txt" "IRI1d_3.txt" "IRI1d_4.txt" "IRI3d_1.txt" "IRI3d_2.txt" "IRI3d _3.txt" "IRI3d_4.txt" "MSC1.txt" "MSC2.txt" "MSC3.txt" [12] "sham1.txt" "sham2.txt" 检查数据 > gsub(".txt","", pro) [1] "IRI1d_1" CreateSeuratObject 这个函数做了什么? # 创建Seurat对象 sce <- CreateSeuratObject(counts = counts, min.cells=3, project = gsub(".txt","", pro),
MACS <- CreateSeuratObject(counts = MACS, project = "H14_MACS", min.cells = 3, min.features = 100) MACS H21 <- CreateSeuratObject(counts = H21, project = "H21", min.cells = 3, min.features = 100) H21 H23 <- CreateSeuratObject(counts = H23, project = "H23", min.cells = 3, min.features = 100) H23 H24 <- CreateSeuratObject = H32, project = "H32", min.cells = 3, min.features = 100) H32 H33 <- CreateSeuratObject(counts = H33 = 3, min.features = 100) H36 H38 <- CreateSeuratObject(counts = H38, project = "H38", min.cells = 3,
pbmc500_assay <- CreateChromatinAssay(pbmc500.counts, fragments = frags.500) pbmc500 <- CreateSeuratObject meta.data=md.500) pbmc1k_assay <- CreateChromatinAssay(pbmc1k.counts, fragments = frags.1k) pbmc1k <- CreateSeuratObject meta.data=md.1k) pbmc5k_assay <- CreateChromatinAssay(pbmc5k.counts, fragments = frags.5k) pbmc5k <- CreateSeuratObject meta.data=md.5k) pbmc10k_assay <- CreateChromatinAssay(pbmc10k.counts, fragments = frags.10k) pbmc10k <- CreateSeuratObject assay <- CreateChromatinAssay(counts = counts.500, sep = c(":", "-"), min.features = 500) pbmc500 <- CreateSeuratObject
前情概要 在23年3月份的时候(下意识想说今年了hhh,恍然发现已经24年),菜鸟团作者就整理过不同格式的单细胞数据读取的方法,是基于V4版本的。 如果是单个样品,直接读取进来然后创建seurat对象即可:初试Seurat的V5版本 主要区别在于,V4版本中一般是循环读取样品,使用CreateSeuratObject创建seurat对象,然后使用merge 那我们可以先把多个样品合并成为了一个超级大的表达量矩阵,并使其行名为基因名,列名为barcodes信息,后面直接针对它来使用CreateSeuratObject函数去构建Seurat对象,就是完美的下游分析的输入数据啦 rownames(sce.all@meta.data),'_',simplify = T) head(phe) table(phe[,2]) sce.all$group=phe[,2] table(phe[,3] ) sce.all$sex=phe[,3] table(phe[,1])
,tsv/txt,h5ad格式10x格式的读取展开代码语言:TXTAI代码解释library(Seurat)ct=Read10X(data.dir="GSE145154_RAW/")seu.obj<-CreateSeuratObject (counts=ct,project="GSE145154",min.features=200,min.cells=3)#ct是一个稀疏矩阵#seu.obj是一个seurat对象class(ct)class (counts=ct,project="GSE200874",min.features=200,min.cells=3)seu.objtxt/csv格式的读取展开代码语言:TXTAI代码解释#直接read.csv row.names=1#是将第一列设置为行名的意思ct<-read.csv("GSE130148_raw_counts.csv.gz",row.names=1)class(ct)seu.obj<-CreateSeuratObject (counts=ct,project="GSE13014",min.features=200,min.cells=3)RData格式直接load就行h5ad格式最后报错slot参数已废弃,怎么解决?
library("Seurat") scrna_data_ctrl <- Read10X("data/GSE96583/ctrl/") ctrl <- CreateSeuratObject( counts = scrna_data_ctrl, min.cells = 3, min.features = 200) scrna_data_stim <- Read10X("data/GSE96583 /stim/") stim <- CreateSeuratObject( counts = scrna_data_stim, min.cells = 3, min.features = 200 ( counts = scrna_data, min.cells = 3, min.features = 200) # 样本信息表添加sample列 Seurat_object ( counts = scrna_data, min.cells = 3, min.features = 200) str_c是stringr中的函数,主要功能是将多个字符型向量合并成一个字符型向量
单细胞专题 | 1.单细胞测序(10×genomics技术)的原理 单细胞专题 | 2.如何开始单细胞RNASeq数据分析 单细胞专题 | 3.单细胞转录组的上游分析-从BCL到FASTQ 单细胞专题 使用CreateSeuratObject生成Seurat对象,后续分析都是在该对象上进行操作。 rownames(x = raw.data), value = FALSE) raw.data <- raw.data[-ercc.index,] dim(raw.data) 有了表达矩阵,直接使用 CreateSeuratObject 然后慢慢添加这个表达矩阵的一些其它外部属性,全部代码如下: # Create the Seurat object with all the data (unfiltered) main_tiss <- CreateSeuratObject (2).读入10X标准输出的3个文件和融合多个样本数据 这三个文件指的是:barcodes.tsv, features.tsv, matrix.mtx。
/data/GSE130148/GSE130148_raw_counts.csv.gz"), row.names = 1) # 使用CreateSeuratObject()函数创建Seurat对象,并在此处指定项目名称 seurat_obj <- CreateSeuratObject(counts = seurat_data, min.features /data/GSE130xxx/xxxx.txt.gz"), row.names = 1, header = TRUE, sep = "\t") # 使用CreateSeuratObject()函数创建 project = "GSE130xxx") h5ad格式: 下载测试文件: https://www.dropbox.com/s/ngs3p8n2i8y33hj/pbmc3k.h5ad? dl=0 # 下载测试文件 # https://www.dropbox.com/s/ngs3p8n2i8y33hj/pbmc3k.h5ad?
least 200 genes detected will be included pfc2 <- CreateSeuratObject(counts = pfc2.data, project = "pfc-demo", min.cells = 3, min.features = 200) pfc3 <- CreateSeuratObject(counts = pfc3.data, project = "pfc-demo", min.cells = 3, min.features = 200) pfc5 <- CreateSeuratObject(counts = pfc5.data, project = "pfc-demo", min.cells = 3, min.features = 200) pfc7 <- CreateSeuratObject(counts = pfc7.data, project ) All=CreateSeuratObject(counts = subset_data@assays$RNA@counts,meta.data = subset_data@meta.data) {
tmp = Read10X(file.path(dir,pro )) if(length(tmp)==2){ ct = tmp[[1]] }else{ct = tmp} sce =CreateSeuratObject 然后就可以使用下面的代码,合并两个数据集: GSE131685 = readRDS('../2020-GSE131685-3个正常人的肾单细胞/2-harmony/sce.all_int.rds') sce.all_int.rds') GSE152938$study = 'GSE152938' table(GSE152938$orig.ident) sceList = list( GSE131685 = CreateSeuratObject ( counts = GSE131685@assays$RNA$counts ), GSE152938 = CreateSeuratObject( counts = GSE152938 ]]$counts ) 可以看到这两个数据集都有不同数量的样品,合并后就是一个大的对象了: > table(GSE131685$orig.ident) kidney1 kidney2 kidney3
(counts = C141, project = "C141",min.cells = 3, min.features = 200) C142<-CreateSeuratObject(counts = = "C143",min.cells = 3, min.features = 200) C144<-CreateSeuratObject(counts = C144, project = "C144" = 3, min.features = 200) C146<-CreateSeuratObject(counts = C146, project = "C146",min.cells = 3, min.features <-CreateSeuratObject(counts = C149, project = "C149",min.cells = 3, min.features = 200) C152<-CreateSeuratObject (counts = C152, project = "C152",min.cells = 3, min.features = 200) C51<-CreateSeuratObject(counts =
众所周知10x单细胞会给出3个文件,我在单细胞数据分析的基础10讲写的很清楚: 01. 上游分析流程 02.课题多少个样品,测序数据量如何 03. 过滤不合格细胞和基因(数据质控很重要) 04. ,规律很明显,下游处理的时候,一定要保证这3个文件同时存在,而且在同一个文件夹下面。 示例代码是: rm(list=ls()) options(stringsAsFactors = F) library(Seurat) sce1 <- CreateSeuratObject(Read10X tableOfCounts_rowLabels.tsv', header = T)[,2] head(cl) head(rl) rownames(mtx) <- rl colnames(mtx) <- cl sce=CreateSeuratObject 也就是说 readMM 函数即可,然后配合CreateSeuratObject来构建对象! 降维聚类分群和生物学注释都走起!
接下来分别读取 library(Seurat) sce.10x <- Read10X(data.dir = '~/four-PBMC-mtx/SRR7722939/') sce1 <- CreateSeuratObject project = "SRR7722939") sce.10x <- Read10X(data.dir = '~/four-PBMC-mtx/SRR7722940/') sce2 <- CreateSeuratObject <- CreateSeuratObject(raw.data = sce.10x, min.cells = 60, SRR7722940" "SRR7722941" "SRR7722942" library(Seurat) sceList = lapply(folders,function(folder){ CreateSeuratObject <- NormalizeData(sce3) sce3 <- ScaleData(sce3, display.progress = F) sce4 <- NormalizeData(sce4) sce4
ctrl_raw_feature_bc_matrix") # Turn count matrix into a Seurat object (output is a Seurat object) ctrl <- CreateSeuratObject (counts = ctrl_counts, min.features = 100) 这里我们使用CreateSeuratObject 将矩阵转换为 ctrl_raw_feature_bc_matrix") # Turn count matrix into a Seurat object (output is a Seurat object) stim <- CreateSeuratObject > dim(stim@meta.data) [1] 15756 3 也就对应了两个样本中检测到的细胞数目(经过初步min.features过滤)。 acc=GSE96583 [3] SRP102802: https://www-ncbi-nlm-nih-gov.ezp-prod1.hul.harvard.edu/sra?
acc=GSE162616 可以看到作者给出来的矩阵还算是10X文件的3个标准文件,但是在每个样品下面都是3个文件,就是需要合理的修改文件名字而已: 作者给出来的矩阵 我们修改后是每个样品一个文件夹, library(data.table) sceList = lapply(samples,function(pro){ # pro=samples[1] print(pro) sce=CreateSeuratObject 我们这个时候有一个很简单的方法就可以避免分开读取后的merge ,如下所示: tmp = list.dirs('GSE162616_RAW/outputs/')[-1] tmp ct = Read10X(tmp) sce.all=CreateSeuratObject /HCC3" 统一读取成为了一个稀疏矩阵 如果是对函数或者Seurat对象结构不清晰,就会产生如下所示错误的读取方式: > sce.all=CreateSeuratObject(counts = Read10X 后面我们还会演示如何读取多个单细胞转录组样品,但是这些样品的矩阵并不是10x的3文件格式,所以会更麻烦一点!
本期我们继续介绍其中的rliger包,如何用于3'和5'数据的合并。 这里我们提供1个3’ PBMC dataset和1个5’ PBMC dataset。 matrix_3p <- Read10X_h5("./3p_pbmc10k_filt.h5",use.names = T) matrix_5p <- Read10X_h5("./5p_pbmc10k_filt.h5 ",use.names = T)$`Gene Expression` srat_3p <- CreateSeuratObject(matrix_3p,project = "pbmc10k_3p") srat _5p <- CreateSeuratObject(matrix_5p,project = "pbmc10k_5p") srat_3p srat_5p ---- Note!
这里我们提供1个3’ PBMC dataset和1个whole blood dataset。 <- Read10X_h5("./3p_pbmc10k_filt.h5",use.names = T) ---- 创建Seurat对象。 srat_wb <- CreateSeuratObject(t(umi),project = "whole_blood") srat_3p <- CreateSeuratObject(matrix_3p ,project = "pbmc10k_3p") rm(umi_gz) rm(umi) rm(matrix_3p) srat_wb srat_3p ---- 4修改metadata 为了方便后续分析 wb_liger <- merge(srat_3p,srat_wb) ---- 5.2 标准操作 我们在这里做一下Normalization,寻找高变基因等等标准操作。Note!