
本系列讲解 空间转录组学 (Spatial Transcriptomics) 相关基础知识与数据分析教程[1],持续更新,欢迎关注,转发,文末有交流群(你懂的)!
本文主要阐述了如何将数据以 Bioconductor-based data classes 的形式导入 R。我们先对原始数据结构进行了概述,接着介绍了如何将原始数据导入 R。
目前,不同商业供应商提供的空间转录组学平台的数据,其文件结构和格式各不相同。不过,这些数据在本质上是相似的,比如:基于测序的数据都包含阵列点的空间位置和计数矩阵;基于成像的数据则包括转录本位置(通过点呼叫得到)、多边形边界(通过分割得到)以及计数矩阵(通过将转录本分配到细胞得到)等。
接下来,我们将对几种商业可用的数据类型进行总结。
在 Visium 数据上运行 Space Ranger(10x Genomics 提供的数据处理软件)会生成一组标准化的输出文件。这些文件既包含原始测量数据(与单细胞 RNA 测序类似,但还包含例如点级坐标、潜在图像等信息),也包含来自标准分析流程的结果,该流程包括标准质量控制、降维(如 PCA、t-SNE 和 UMAP)、基于图的聚类等。
10x Genomics 对这些产生的输出进行了描述;简单来说:
Visium
└── outs
├── spatial
├── tissue_positions_list.csv # spot locations
└── tissue_lowres_image.png # same-section H&E
└── filtered_feature_bc_matrix # in-tissue matrix files
└── raw_feature_bc_matrix # unfiltered matrix files
├── barcodes.tsv # spot barcodes (i.e., sequences)
├── features.tsv # gene metadata (e.g., ensembl IDs)
└── matrix.mtx # (gene x spot) count matrix
在 Visium HD 数据上运行 Space Ranger,其产生的输出与前面提到的类似,不过默认会包含以 2、8 和 16 µm 分辨率进行分箱的输出。所以,输出呈现分层结构,每个 binned_outputs/ 子目录里都包含着和 Visium 的 outs/ 目录相似的文件,比如:
VisiumHD
└── binned_outputs
└─── square_002um
└── filtered_feature_bc_matrix.h5
└── filtered_feature_bc_matrix
└── barcodes.tsv.gz
└── features.tsv.gz
└── matrix.mtx.gz
└── raw_feature_bc_matrix.h5
└── raw_feature_bc_matrix
└── ...
└── spatial
└── tissue_positions.parquet
└── ...
└── square_*
运行 Xenium Ranger 能够把 Xenium 运行产生的原始数据处理成一个输出包,该输出包有着标准化的文件结构和内容。需要特别指出的是,10x Genomics 提供了多种输出文件格式(比如,基因/细胞元数据既有 .csv 格式,也有 .parquet 格式),这使得它能够方便地与各种框架进行互操作。
10x Genomics 对所有输出都进行了详细描述,具体可以查看相关资料;简单来说:
Xenium
└── outs
├── cells.parquet # cell metadata (e.g., area)
├── cell_feature_matrix.h5 # compressed format of the below
└── cell_feature_matrix # segmentation-derived matrix files
├── barcodes.tsv # cell barcodes (i.e., sequences)
├── features.tsv # gene metadata (e.g., target type)
└── matrix.mtx # (gene x cell) count matrix
├── transcripts.parquet # molecule locations
├── cell_boundaries.parquet # membrane segmentation
├── nucleus_boundaries.parquet # nuclear segmentation
└── experiment.xenium # experiment-wide metadata (in .json format)
借助自定义模块脚本,AtoMx Spatial Informatics Portal(SIP)能够导出各种类型的对象,关键的是,它支持“平面”(人类可读的)文件格式。与原始数据(比如,在进行点呼叫之前的图像)不同,这些文件是经过处理后的输出,比如分割边界顶点和分子的空间位置、由分割得到的计数矩阵等。
关于这些文件的详细描述可以查看相关资料;简单来说:
CosMx
├── exprMat_file.csv # (gene x cell) counts
├── fov_positions_file.csv # FOV corner positions
├── metadata_file.csv # cell-level metadata
├── polygons.csv # segmentation boundaries
└── tx_file.csv # molecule locations
多个 Bioconductor 包中的读取函数可以将原始文件中的数据导入 R 中的 SpatialExperiment 对象(或其衍生对象),具体如下:
Reference
[1]
Ref: https://lmweber.org/OSTA/