无.h5文件时,如何利用常规文件创建Seurat对象分析空间转录组数据?
基于现有文件创建Seurat空间转录组对象
1. 读取表达矩阵并初始化Seurat对象
你的matrix.mtx、barcodes.tsv、features.tsv是标准10X输出格式,确保三个文件在同一文件夹下,用Read10X()读取并创建基础对象:
library(Seurat) # 替换为你的文件所在文件夹路径 counts <- Read10X(data.dir = "./your_counts_folder") seurat_obj <- CreateSeuratObject(counts = counts)
2. 导入并关联空间图像
手动导入lowres.png和hihgres.png,构建空间图像对象并绑定到Seurat对象:
library(png) # 读取图像文件,替换为你的实际路径 lowres_img <- readPNG("./lowres.png") hires_img <- readPNG("./hihgres.png") # 计算低分辨率图像相对高分辨率的缩放比例 scale_ratio <- ncol(lowres_img) / ncol(hires_img) # 创建Visium格式的空间图像对象 spatial_image <- new( Class = "VisiumV1", image = hires_img, scale.factors = list( spot = 0.05, # 可根据实际spot大小调整,默认值仅供参考 fiducial = 0.05, hires = 1, lowres = scale_ratio ), coordinates = NULL, # 若有tissue_positions_list.csv,后续可补充 spot.radius = 1 ) # 将图像添加到Seurat对象 seurat_obj[["spatial"]] <- spatial_image
3. 补充空间坐标(如果有tissue_positions_list.csv)
如果你的数据集包含tissue_positions_list.csv(每个barcode的空间位置文件),按以下步骤添加坐标:
# 读取坐标文件,替换路径 positions <- read.csv("./tissue_positions_list.csv", header = FALSE, row.names = 1) colnames(positions) <- c("in_tissue", "array_row", "array_col", "pxl_col", "pxl_row") # 合并到元数据 seurat_obj@meta.data <- cbind(seurat_obj@meta.data, positions) # 更新空间图像的坐标信息 seurat_obj[["spatial"]]@coordinates <- positions[, c("pxl_col", "pxl_row")]
验证对象有效性
运行以下代码确认对象创建成功:
# 查看对象基本结构 seurat_obj # 若有坐标,尝试绘制空间表达图 SpatialFeaturePlot(seurat_obj, features = "ACTB") # 替换为你的目标基因
内容的提问来源于stack exchange,提问作者Jamie Lord
相关产品推荐
相关产品推荐

