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

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

引言

本系列讲解 空间转录组学 (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 用于形状和多边形),从而实现统一且内存效率高的数据表示和处理。

相关文章
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
Deep Search 如何理解业务仓库代码?
本文系统地介绍了 Deep Search 和 Deep Research 的概念、与传统 RAG 的区别、当前主流的商业产品与开源方案、在代码领域的应用(如 Deep Search for 仓库问答)以及未来的发展规划。
394 21
Deep Search 如何理解业务仓库代码?
|
4月前
|
设计模式 Java API
Java 高效开发实战之让代码质量飙升的 10 个黄金法则技巧
本文分享了10个提升Java代码质量的黄金法则,涵盖日志优化、集合操作、异常处理、资源管理等方面。通过参数化日志减少性能开销,利用Stream与Guava简化集合操作,采用CompletableFuture优化并发处理,运用Optional避免空指针异常等实战技巧,结合具体案例解析,助你写出高效、高质量的Java代码。
161 1
|
4月前
|
数据可视化 数据挖掘
ingest和BBKNN进行单细胞整合(1)
ingest和BBKNN进行单细胞整合(1)
ingest和BBKNN进行单细胞整合(1)
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
什么是智能搜索
智能搜索融合了人工智能和大数据技术,提供高效的语义理解、多模态数据处理及个性化推荐。它不仅支持传统关键词匹配,还结合NLP、机器学习等先进技术,提升信息检索的精准度与多样性。适用于电商、内容平台、多媒体及企业内部知识库等多种场景,显著优化用户体验和业务效率。
769 2
|
11月前
|
存储 关系型数据库 MySQL
MySQL 8.0特性-自增变量的持久化
【11月更文挑战第8天】在 MySQL 8.0 之前,自增变量(`AUTO_INCREMENT`)的行为在服务器重启后可能会发生变化,导致意外结果。MySQL 8.0 引入了自增变量的持久化特性,将其信息存储在数据字典中,确保重启后的一致性。这提高了开发和管理的稳定性,减少了主键冲突和数据不一致的风险。默认情况下,MySQL 8.0 启用了这一特性,但在升级时需注意行为变化。
220 1
|
Java 数据安全/隐私保护
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
这篇文章介绍了如何在VSCode中将代码提交到Gitee远程服务器,并提供了解决每次提交都需要输入密码问题的方法。
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
|
安全 Unix Linux
xftp的使用和xshell的使用
xftp的使用和xshell的使用
|
数据可视化
结构方程模型SEM分析心理学和营销研究数据路径图可视化
结构方程模型SEM分析心理学和营销研究数据路径图可视化
|
存储 NoSQL 关系型数据库
何时使用MongoDB而不是MySql
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供了更好的性能。
415 1
何时使用MongoDB而不是MySql