You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:46:16