单细胞测序数据千变万化?别慌!继上期软件安装&准备测序数据后,本期我们直击核心痛点——教你用Seurat轻松驾驭不同格式的原始数据。无论你是刚拿到10X Genomics的h5文件,还是手握表达矩阵,这篇保姆级教程都能让你5分钟完成数据导入!
从 h5 文件构建
数据地址:www.ncbi.nlm.nih.gov/geo/query/a…
library(Seurat)
scrna_data1 <- Read10X_h5(filename = "data/GSM3489182/GSM3489182_Donor_01_filtered_gene_bc_matrices_h5.h5")
seob1 <- CreateSeuratObject(counts = scrna_data2,
min.cells = 3,
min.features = 200)
从表达矩阵构建
地址:www.ncbi.nlm.nih.gov/geo/query/a…
(适合TPM/FPKM等已处理数据)
scrna_data2 <- read.table(
"data/GSM2829942/GSM2829942_HE6W_LA.TPM.txt",
row.names = 1,
header = T)
seob2 <- CreateSeuratObject(counts = scrna_data3,
min.cells = 3,
min.features = 200)
多样本构建 Seurat 对象
为每个样本构建一个 Seurat Object,存为 list。
library(tidyverse)
library(Seurat)
# 创建一个空列表
seob_list <- list()
samples <- c('ctrl', 'stim')
# 循环处理每个文件夹,读取并存储为 seurat 对象,并添加到 seob_list
for (sample in samples) {
# 读取数据
scrna_data <- Read10X(
data.dir = str_c("data/GSE96583/", sample))
# 创建 seurat 对象
seob <- CreateSeuratObject(
counts = scrna_data,
min.cells = 5, # 对基因过滤
min.features = 200) # 对细胞过滤
# metadata 添加一列
seob[['samples']] <- sample
# 将 seurat 对象存入列表
seob_list[[sample]] = seob
}
🚨 避坑指南 🚨
- h5文件读取报错?检查文件版本是否匹配Cell Ranger输出结构
- 基因名显示为ENSEMBL ID?添加gene.column=1参数获取基因符号
- 细胞数异常减少?调整min.cells/min.features过滤阈值
立即动手导入你的数据吧!遇到问题欢迎在评论区留言!