空间转录组:数据格式介绍

简介: 空间转录组:数据格式介绍

引言

本系列讲解 空间转录组学 (Spatial Transcriptomics) 相关基础知识与数据分析教程,持续更新,欢迎关注,转发,文末有交流群(你懂的)!

简介

Bioconductor 提供了多种数据类,用于存储和处理空间(转录)组学数据集。这些统一的数据结构使得可以方便地将不同研究团队开发的方法和软件包整合起来,构建出包含最新先进方法的分析流程。

接下来,介绍本系列中用到的 Bioconductor 数据类。

文件格式

空间(转录)组学的检测手段以及由此获取的数据类型丰富多样。而且,不同的供应商在分发数据时采用的文件格式也不尽相同。

下面,对常见的文件格式以及它们在 R 软件中的处理方式做一个简单介绍。

计数数据

基于测序技术的检测所获得的数据一般包含(细胞)条形码、元数据以及一个矩阵,矩阵的行和列分别对应特征和观测值。这类数据通常以 .csv.mtx 文件(或它们的压缩版本,如 .gz)的形式提供。

10x Genomics 的数据为例,可以借助 DropletUtils 中的 read10xCounts()函数将其计数数据导入 R;其他供应商的数据则可以通过标准的 R 读取工具来读取。对于规模较大的数据集(比如包含数十万个细胞的数据),.h5 文件能够以非内存的方式表示计数矩阵,在 R 中以 DelayedArrays(参考 HDF5Array)的形式展现,从而有效处理大规模数据。

.parquet

表格数据(比如分割边界、分子位置等信息)可能会以 .parquet 文件的形式出现。可以通过 arrow 来与这类文件进行交互操作。特别值得一提的是,arrow 的 read_parquet()函数支持延迟的 dplyr 风格操作,像 filter()和 select()等,这样就可以延迟查询数据,例如只把相关的部分加载到内存中,提高数据处理的效率。

.zarr

.zarr 存储库可以将 N 维数组以“块”的网格形式进行存储,方便实现并行访问。在处理(生物)成像数据时,不同的图像尺度或分辨率可以作为“金字塔”的不同层级来存储,其中金字塔的底部代表最高分辨率,顶端则代表最低分辨率。R 与 .zarr 的接口可以通过 Bioconductor 上的 Rarr 或 CRAN 上的 pizzarr 来实现。

数据类

  • 基于测序的空间转录组学(ST)数据里,数据呈现为转录本 - 位点计数矩阵的形式,每个位点还附带空间坐标信息。

  • 基于成像的 ST 技术产生的数据是分子级别的,通常以长格式表格形式呈现,每一行代表一个观测值,列则包含转录本身份、空间位置以及实验元数据(比如样本来源)等信息。经过细胞边界的分割和转录本到细胞的映射后,这些数据可以被转换成类似单细胞组学技术数据的转录本 - 细胞计数矩阵。

无论是哪种类型的数据,观测值都与额外的元数据相关联,比如位点或分割细胞的面积大小,对于基于成像的数据,还包括分割得到的质心位置和多边形边界等信息。

基于 Bioconductor 的数据类

SingleCellExperiment

单细胞 RNA - seq 及类似技术能够在单细胞水平上对转录本进行定量,生成转录本 - 细胞计数矩阵。在 Bioconductor 中,用于处理单细胞实验数据的主要类是 SingleCellExperiment(简称 SCE)。

SCE 是在 SummarizedExperiment(SE)类的基础上,针对单细胞数据的特点进行扩展而来的。比如,它有 reducedDims 功能,可以存储观测值的低维嵌入结果,像 PCA、t - SNE 和 UMAP 等;row - 和 colPairs 分别用于存储基因之间的关系(例如基因 - 基因相关性)和细胞之间的关系(例如细胞 - 细胞距离);此外,来自相同细胞的其他特征的数据,比如通过多模态检测得到的数据,会以 altExps(即“替代实验”)的形式存储起来。

SpatialExperiment

SpatialExperiment(SPE)是本专栏中使用的核心数据类。这个类可以让我们在位点或细胞水平上存储数据集,也就是说,它可以存储基于测序平台的位点水平数据,或者把基于成像平台的数据汇总到细胞水平。

SPE 在 SCE 的基础上进行了进一步定制,专门用于存储空间信息,比如空间坐标和图像文件。SpatialExperiment 对象结构的示意图如图 4.1 所示。简单来说,一个 SPE 对象包含以下几部分:(i)包含表达计数的 assays,(ii)包含基因信息的 rowData,(iii)包含位点或细胞信息的 colData,其中既有非空间元数据,也有空间元数据,(iv)包含空间坐标的 spatialCoords,以及(v)包含图像数据的 imgData。对于基于位点的数据,它使用一个名为 counts 的单一 assay 来存储。

SpatialFeatureExperiment

SPE 经过 SpatialFeatureExperiment(SFE)的拓展后,能够进一步容纳观测值和特征层面的图(比如细胞 / 位点邻域)以及几何形状(比如分割和组织边界,或者是病理学家标注的组织学区域)。由于这些内容以 sf(几何形状)和 spdep(图)对象的形式呈现,SFE 可以直接利用多种几何操作(例如相交和缓冲处理)以及空间依赖性计算。

MoleculeExperiment

MoleculeExperiment(ME)是专门针对基于成像的空间转录组学数据设计的。对于每一个样本,ME 会存储一份分子列表(比如转录本身份和坐标),以及边界信息(比如细胞身份和多边形坐标)。这些边界信息理论上可以包含替代分割方式,可能来源于细胞膜、细胞体或者细胞核染色等情况。通过这种方式,可以根据一组给定的边界来分配分子,从而得到不同的计数矩阵。反过来,在细胞聚合水平上,可以利用由 ME 衍生的 SPE 来开展分析(ME 包提供了一个包装器来实现这一功能)。

非基于 Bioconductor 的

除了 Bioconductor 之外,还有一些其他框架可以支持对基于测序和成像的平台进行空间感知分析。seurat 和 scanpy分别在 R 和 Python 中提供了全面的单细胞分析流程,它们都加入了用于可视化和分析空间组学数据集的功能。像 Giotto(R)、VoltRon(R)和 squidpy(Python)这样的软件包,都支持用于分析空间组学数据的全功能框架,并且包含了大量空间感知算法。

Giotto

Giotto(或者叫 Giotto Suite)提供了用于在多个尺度和分辨率上处理、分析以及可视化空间多组学数据的工具。这个软件包能够支持对众多基于测序和成像的平台进行分析,这些平台涵盖了转录组学和蛋白质组学模式,比如 Xenium、Visium HD 和 CODEX(Akoya)。Giotto 提供了操作空间对象和图像、检测空间模式以及空间感知聚类的工具,并且支持通过 dbverse 进行基于数据库的后端数据处理,从而实现更好的可扩展性。

VoltRon

VoltRon 软件包整合了一个框架,允许在跨越感兴趣区域(ROIs)和图像瓦片以及细胞、位点和分子的观测值之间进行空间感知对齐。它提供了 Shiny 应用程序,用于在相邻组织切片之间进行自动和手动空间对齐,用户可以交互式地管理图像并选择共配准的地标点。VoltRon 本身也是一个端到端的空间组学分析软件包,并且支持使用 .zarr 和 .h5 支持的 DelayedArray 对象进行空间解析数据集的磁盘表示。

SpatialData

SpatialData框架提供了一套用于加载、处理以及(静态和交互式)可视化各种空间组学数据(包括基于成像和测序的数据以及不同模式)的模块。本质上,该容器依赖于 5 种类型的元素(图像、标签、形状、点和表格),这些元素在磁盘上使用标准化的、符合 OME - NGFF 规范的文件格式表示(.zarr 用于图像、标签和表格;.parquet 用于形状和多边形),从而实现统一且内存效率高的数据表示和处理。

相关文章
|
2月前
|
人工智能 IDE API
10行代码,实现你的专属阿里云OpenAPI MCP Server
本文介绍如何用10行Python代码创建专属阿里云OpenAPI MCP Server。针对传统MCP Server工具固化、开发复杂等问题,提出借助alibaba-cloud-ops-mcp-server实现灵活拓展的方案。通过配置服务与API名称,运行简短代码即可生成支持SSE连接的MCP Server。用户无需深入了解阿里云OpenAPI细节,大幅降低开发门槛。未来将探索通用工具设计,实现固定工具调用任意API,进一步提升灵活性与效率。
|
8天前
|
机器学习/深度学习 人工智能 搜索推荐
Deep Search 如何理解业务仓库代码?
本文系统地介绍了 Deep Search 和 Deep Research 的概念、与传统 RAG 的区别、当前主流的商业产品与开源方案、在代码领域的应用(如 Deep Search for 仓库问答)以及未来的发展规划。
Deep Search 如何理解业务仓库代码?
|
15天前
|
机器学习/深度学习 数据采集 存储
大模型微调知识与实践分享
本文详细介绍了大型语言模型(LLM)的结构、参数量、显存占用、存储需求以及微调过程中的关键技术点,包括Prompt工程、数据构造、LoRA微调方法等。
247 72
大模型微调知识与实践分享
|
20天前
|
存储 数据可视化 C#
三维基因组:multiHiCcompare 差异分析
三维基因组:multiHiCcompare 差异分析
60 13
三维基因组:multiHiCcompare 差异分析
|
27天前
|
编解码 数据可视化 图计算
三维基因组:Loop结构 差异分析(2)
三维基因组:Loop结构 差异分析(2)
47 15
三维基因组:Loop结构 差异分析(2)
|
15天前
|
机器学习/深度学习 存储 自然语言处理
通义实验室开源发布QwenLong-L1 与 QwenLong-CPRS 双模型
近年来,随着大规模预训练语言模型(LLM)在短文本理解与生成任务中的成功,如何让模型在超长文本场景(如学术论文、法规文档、长视频字幕等)中保持高效、准确地推理与理解,成为下一代应用的核心挑战。
328 92
|
15天前
|
SQL JSON API
什么!我把SQL编辑器装进了大模型?
本文旨在通过约束解码技术,赋予大型语言模型在生成SQL等结构化内容时更高的准确性、可控性与可解释性,从而满足企业级场景对“精准生成”的严苛要求。
359 125
什么!我把SQL编辑器装进了大模型?
|
10天前
|
自然语言处理 API 开发工具
端午出游高定:通义灵码+高德 MCP 10 分钟定制出游攻略
本文介绍了如何使用通义灵码编程智能体与高德 MCP 2.0 制作北京端午3天旅行攻略页面。首先需下载通义灵码 AI IDE 并获取高德申请的 key,接着通过添加 MCP 服务生成 travel_tips.html 文件,最终在手机端查看已发布上线的攻略。此外还详细说明了利用通义灵码打造专属 MCP 服务的过程,包括开发计划、代码编写、部署及连接服务等步骤,并提供了自由探索的方向及相关资料链接。
317 96
|
10天前
|
人工智能 供应链 安全
实现企业级 MCP 服务统一管理和智能检索的实践
本文将深入剖析 MCP Server 的五种主流架构模式,并结合 Nacos 服务治理框架,为企业级 MCP 部署提供实用指南。
310 63
|
13天前
|
缓存 负载均衡 算法
负载均衡相关问题详细分享一下
负载均衡相关问题详细分享
151 67