pbmc500_assay <- CreateChromatinAssay(pbmc500.counts, fragments = frags.500) pbmc500 <- CreateSeuratObject fragments = frags.5k) pbmc5k <- CreateSeuratObject(pbmc5k_assay, assay = "ATAC", meta.data=md.5k) pbmc10k_assay <- CreateChromatinAssay(pbmc10k.counts, fragments = frags.10k) pbmc10k <- CreateSeuratObject(pbmc10k_assay (counts = counts.500, sep = c(":", "-"), min.features = 500) pbmc500 <- CreateSeuratObject(pbmc500_assay "-"), min.features = 500) pbmc5k <- CreateSeuratObject(pbmc5k_assay, assay = "peaks") pbmc10k_assay
Read10X(data.dir = paste(dataset_loc, ids[1],"filtered_feature_bc_matrix", sep="/")) seurat_obj <- CreateSeuratObject write.table(seurat_obj@assays$RNA@counts, "all.datatable.txt",sep="\t", quote=F, col.names=NA) 方式二:Read10X_h5 注:如果自己没有h5格式的文件可以忽略此方法。 ## Read10X_h5 seurat_data <- Read10X_h5(file.path(dataset_loc, ids[1], "filtered_feature_bc_matrix.h5 "), use.names = T) seurat_obj <- CreateSeuratObject(counts = seurat_data) 方式三:read.table 注:同方法二,如果没有
ut.AAACCTGAGGCACATG-1 P1.ut.AAACCTGGTGGTACAG-1 P1.ut.AAACCTGTCACGGTTA-1 P1.ut.AAACCTGTCCGCTGTT-1 OR4F5 P1 P1.pre CD4 CD4_C8-Treg 4 P1.ut.AAACCTGTCCGCTGTT-1 P1 P1.pre CD4 CD4_C9-Prolif. 5 1.2 创建seurat对象 依然使用CreateSeuratObject 函数,此处count 为读取的矩阵文件。 1,CreateSeuratObject中的meta.data参数 CreateSeuratObject函数除了简单的过滤条件外 ,还有一个重要的meta.data参数,可以输入提供的meta信息。 CreateSeuratObject函数的帮助文档中也很明确的提到了该点要求。 发现问题后,只需要将meta文件的cellid列转为rownames即可。
目前构建 Seurat 对象有以下几种方法: 从 CellRanger 输出构建 从 h5 文件构建 从表达矩阵构建 从 CellRanger 输出构建 公司在完成表达定量后,通常会使用 CellRanger 从 h5 文件构建 以数据GSE122960[2]的 GSM3489182 为例,在 GEO 界面选中并下载后解压。 library(Seurat) ScRNAdata <- Read10X_h5(filename = "GSM3489182_Donor_01_raw_gene_bc_matrices_h5.h5") Seurat_object <- CreateSeuratObject( counts = ScRNAdata, min.cells = 3, min.features = 200) 从表达矩阵构建 CreateSeuratObject( counts, project = "CreateSeuratObject", assay = "RNA", names.field = 1,
,但是在读取数据的时候,V4和V5的区别还是有点明显的。 如果是单个样品,直接读取进来然后创建seurat对象即可:初试Seurat的V5版本 主要区别在于,V4版本中一般是循环读取样品,使用CreateSeuratObject创建seurat对象,然后使用merge 那我们可以先把多个样品合并成为了一个超级大的表达量矩阵,并使其行名为基因名,列名为barcodes信息,后面直接针对它来使用CreateSeuratObject函数去构建Seurat对象,就是完美的下游分析的输入数据啦 h5格式其实也有对应的函数Read10X_h5()可以直接读取,但是Read10X_h5使用循环读取多个数据文件,会返回一个list,需要手动整合一下 #加载需要的R包 library(hdf5r) sceList[[i]])<-paste0(samples[i],"_",col) } #数据整合后创建seurat对象 merge <- do.call(cbind,sceList) sce =CreateSeuratObject
这两天分析一个单细胞数据发现一个奇怪的问题,就是创建 seurat 对象的时候,我明明设置了参数 CreateSeuratObject 函数的project 参数,但是最后merge 不同的样本后发现 数据下载链接:https://ngdc.cncb.ac.cn/omix/release/OMIX004421 我这里有下载好的放在百度盘: https://pan.baidu.com/s/1DyWqfA5G3Q7cPDLNICXRxA pwd=5s2q 提取码: 5s2q 读取数据并创建Seurat对象 ### ### Create: Jianming Zeng ### Date: 2023-12-31 ### Email: , y=scRNA_list[-1], add.cell.ids=gsub(".txt","", samples)) sce.all <- JoinLayers(sce.all) # seurat v5 > gsub(".txt","", pro) [1] "IRI1d_1" CreateSeuratObject 这个函数做了什么?
常见的有10x标准格式,h5格式,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是一个稀疏矩阵 ")ct<-Read10X_h5("GSE200874_RAW/GSM6045826_wt_filtered_gene_bc_matrices_h5_2.h5")seu.obj<-CreateSeuratObject row.names=1#是将第一列设置为行名的意思ct<-read.csv("GSE130148_raw_counts.csv.gz",row.names=1)class(ct)seu.obj<-CreateSeuratObject /GSM4648564_adipose_raw_counts.h5ad",dest="h5seurat",overwrite=T,#是否覆盖原h5ad文件assay="RNA")seu.obj<-LoadH5Seurat
使用CreateSeuratObject生成Seurat对象,后续分析都是在该对象上进行操作。 ############### h5格式文件 ############## # 读取单个 sce <- Read10X_h5(filename = "GSM4107899_LH16.3814_raw_gene_bc_matrices_h5 .h5") sce <- CreateSeuratObject(counts = sce) # 批量读取并合并: library(hdf5r) setwd(".. 格式 需要安装SeuratDisk包,先将后h5ad格式转换为h5seurat格式,再使用LoadH5Seurat()函数读取Seurat对象。 `格式转换为`h5seurat`格式: Convert("GSM4648565_liver_raw_counts.h5ad", "h5seurat", overwrite = TRUE,
) seurat_data <- Read10X_h5(file = h5_file) # 创建Seurat对象(使用CreateSeuratObject函数创建Seurat对象,并将读取的h5格式数据转换为 Seurat对象) seurat_obj <- CreateSeuratObject(counts = seurat_data, project seurat_obj <- CreateSeuratObject(counts = seurat_data, min.features /data/GSE130xxx/xxxx.txt.gz"), row.names = 1, header = TRUE, sep = "\t") # 使用CreateSeuratObject()函数创建 对象,并指定项目名称为文件名 sample_name <- tools::file_path_sans_ext(basename(h5_file)) seurat_obj <- CreateSeuratObject
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, } MACS <- ob.list[[1]] H21 <- ob.list[[2]] H23 <- ob.list[[3]] H24 <- ob.list[[4]] H32 <- ob.list[[5]
included # min.features = 200, only cells with at 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 ~ 3 .不死心的话,我们不使用SCTtransform,也不去除批次效应,只使用seurat标准流程试试 3#3 标准流程----- head(subset_data@meta.data) All=CreateSeuratObject
C141<-Read10X_h5("GSM4339769_C141_filtered_feature_bc_matrix.h5") C142<-Read10X_h5("GSM4339770_C142_ filtered_feature_bc_matrix.h5") C143<-Read10X_h5("GSM4339771_C143_filtered_feature_bc_matrix.h5") C144 <-Read10X_h5("GSM4339772_C144_filtered_feature_bc_matrix.h5") C145<-Read10X_h5("GSM4339773_C145_filtered_feature_bc_matrix.h5 <-Read10X_h5("GSM4475053_C152_filtered_feature_bc_matrix.h5") C51<- Read10X_h5("GSM4475048_C51_filtered_feature_bc_matrix.h5 <-CreateSeuratObject(counts = C145, project = "C145",min.cells = 3, min.features = 200) C146<-CreateSeuratObject
学员表示他在处理这个数据集(GSE152938)的时候,因为数据集里面是5个样品,但是只有一个是正常组织的样品,分组是不平衡的,所以需要联合其它数据集的正常组织,但是不知道如何在r编程语言里面操作。 tmp = Read10X(file.path(dir,pro )) if(length(tmp)==2){ ct = tmp[[1]] }else{ct = tmp} sce =CreateSeuratObject (counts = ct , project = pro , min.cells = 5, sce.all_int.rds') GSE152938$study = 'GSE152938' table(GSE152938$orig.ident) sceList = list( GSE131685 = CreateSeuratObject ( counts = GSE131685@assays$RNA$counts ), GSE152938 = CreateSeuratObject( counts = GSE152938
library(Seurat) #import data #C_data T_data 为要分析的data.frame Control<-CreateSeuratObject(counts =C_data ,min.cells = 5, min.features = 10,project = "control") Treat<-CreateSeuratObject(counts =T_data,min.cells = 5, min.features = 10,project = "treat") #将多个数据合成一个list T_C<-list(Treat,Control) names(T_C)<-c("T",
示例代码是: rm(list=ls()) options(stringsAsFactors = F) library(Seurat) sce1 <- CreateSeuratObject(Read10X AAAGATGAGGAGTACC" [3] "4602STDY7018923___AAAGATGGTGAACCTT" [4] "4602STDY7018923___AAAGTAGTCCCTTGTG" [5] AACCATGCAGTCGTGC" > head(rl) [1] "RP11-34P13.3_ENSG00000243485" "FAM138A_ENSG00000237613" [3] "OR4F5_ ENSG00000186092" "RP11-34P13.7_ENSG00000238009" [5] "RP11-34P13.8_ENSG00000239945" "RP11-34P13.14 也就是说 readMM 函数即可,然后配合CreateSeuratObject来构建对象! 降维聚类分群和生物学注释都走起!
remove.packages删掉原来包的文件夹)+ 源代码安装 remove.packages('Seurat') pkgs = c( 'mixtools', 'lars', 'dtw', 'doSNOW', 'hdf5r 接下来分别读取 library(Seurat) sce.10x <- Read10X(data.dir = '~/four-PBMC-mtx/SRR7722939/') sce1 <- CreateSeuratObject SRR7722940" "SRR7722941" "SRR7722942" library(Seurat) sceList = lapply(folders,function(folder){ CreateSeuratObject scale.data)) head(genes.use) ## [1] "hg38_S100A9" "hg38_PPBP" "hg38_S100A8" "hg38_MALAT1" ## [5] 112 130 1 15 10 0 0 205 5
单细胞测序—不同格式的单细胞测序数据读写(多样本)这里记录下不同格式的单细胞测序数据读写,存在5种常见的单细胞测序数据。 tmp = Read10X(file.path(dir,pro )) if(length(tmp)==2){ ct = tmp[[1]] }else{ct = tmp} sce =CreateSeuratObject h5格式在一个文件里同时包括了feature、bacode、matrix的信息##h5格式#清空环境 加载需要的R包rm(list=ls())options(stringsAsFactors = F) /lib.R')library(hdf5r)library(stringr)library(data.table)dir='GSE215120_h5/'samples=list.files( dir ) (dir,pro )) if(length(tmp)==2){ ct = tmp[[1]] }else{ct = tmp} sce =CreateSeuratObject(counts
本期我们继续介绍其中的rliger包,如何用于3'和5'数据的合并。 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! 5' datset中还有一个assay,即VDJ data。 4初步合并 4.1 简单合并 这里我们先用merge将2个数据集简单合并在一起。
library("Seurat") scrna_data_ctrl <- Read10X("data/GSE96583/ctrl/") ctrl <- CreateSeuratObject( counts , min.cells = 3, min.features = 200) scrna_data_stim <- Read10X("data/GSE96583/stim/") stim <- CreateSeuratObject sample_list){ filedir = str_c("data/GSE96583/",sample) scrna_data <- Read10X(filedir) Seurat_object <- CreateSeuratObject str_c("data/GSE96583/",sample) # 数据的读取 scrna_data <- Read10X(filedir) # 对象的构建 Seurat_object <- CreateSeuratObject
接下来我们演示真正的Seurat的v5来读取多个10x的单细胞转录组矩阵。数据集在 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi? library(data.table) sceList = lapply(samples,function(pro){ # pro=samples[1] print(pro) sce=CreateSeuratObject pwd=3heo但是最近其官方版本成为了V5…… 因为现在是Seurat的V5版本,多个文件如果是分开读取后的merge函数其实并没有把每个样品的表达量矩阵merge,如下所示: 可以看到,在Seurat 我们这个时候有一个很简单的方法就可以避免分开读取后的merge ,如下所示: tmp = list.dirs('GSE162616_RAW/outputs/')[-1] tmp ct = Read10X(tmp) sce.all=CreateSeuratObject " [3] "GSE162616_RAW/outputs/HCC3" 统一读取成为了一个稀疏矩阵 如果是对函数或者Seurat对象结构不清晰,就会产生如下所示错误的读取方式: > sce.all=CreateSeuratObject