#cell #csv #segmentation #probabilistic #spatial #transcript #xenium

app proseg

基于概率的细胞分割,用于原位空间转录组学

10 个稳定版本

1.1.3 2024年8月22日
1.1.2 2024年8月8日
1.0.6 2024年7月24日
1.0.5 2024年6月6日
1.0.0 2024年4月26日

#6生物学

Download history 24/week @ 2024-04-29 460/week @ 2024-05-06 140/week @ 2024-05-13 60/week @ 2024-05-20 13/week @ 2024-05-27 206/week @ 2024-06-03 25/week @ 2024-06-10 14/week @ 2024-06-17 4/week @ 2024-06-24 8/week @ 2024-07-01 134/week @ 2024-07-22 168/week @ 2024-07-29 137/week @ 2024-08-05 13/week @ 2024-08-12

452 每月下载量

自定义许可

1MB
7K SLoC

Proseg

Proseg (概率 segmentation) 是一种针对原位空间转录组学的细胞分割方法。目前支持 Xenium、CosMx 和 MERSCOPE 平台。

安装

Proseg 可以使用 cargo 构建 和 安装。克隆此仓库,然后运行

cargo install proseg

通用用法

Proseg 在转录位置表上运行,该表以某种形式必须包括转录到核的初步分配。Xenium、CosMx 和 MERSCOPE 都以某种形式提供此功能。

Proseg 至少可以这样调用

proseg /path/to/transcripts.csv.gz

有命令行参数可以告诉它使用 csv 文件中的哪些列,但通常使用预设之一 --xenium--cosmx--merfish

Proseg 是一种采样方法,其当前形式是非确定性的。从一次运行到另一次运行,结果会有所不同。

通用选项

默认情况下,proseg 将使用所有可用的 CPU 核心。要更改此设置,请使用 --nthreads N

输出选项

输出以表格的形式呈现,可以是压缩的 csv 文件或 parquet 文件,以及提供细胞边界的 GeoJSON 文件。

  • --output-expected-counts expected-counts.csv.gz:细胞-基因计数矩阵。Proseg 是一种采样方法,因此这些是后验期望,通常不是整数而是分数计数。
  • --output-cell-metadata cell-metadata.csv.gz:细胞质心、体积和其他信息。
  • --output-transcript-metadata transcript-metadata.csv.gz:转录 ID、基因、修订位置、分配概率等。
  • --output-gene-metadata:每个基因的摘要统计信息
  • --output-rates rates.csv.gz:细胞-基因泊松率参数。这些基本上是预期的相对表达值,但可能过于平滑,不适合用于下游分析。

细胞边界可以通过多种方式输出

  • --output-cell-polygons cell-polygons.geojson.gz:GeoJSON 格式中每个细胞的 2D 多边形。这些是从 3D 平滑到 2D 的,因此将重叠。
  • --output-cell-polygon-layers cell-polygons-layers.geojson.gz:输出每个 z 层的单独、不重叠的细胞多边形,以保留 3D 分割。
  • --output-cell-hulls cell-hulls.geojson.gz:输出围绕分配转录本的凸包,而不是推断的细胞多边形。
  • --output-cell-voxels cell-voxels.csv.gz:输出一个(非常大)的表格,给出每个分配的体素的坐标和细胞分配。

建模假设

一些选项可以改变模型所做出的假设,通常不需要

  • --ncomponents 5:细胞基因表达被视为负二项分布的混合。此参数控制混合成分的数量。更多的成分将倾向于将细胞推入更明显不同的类型,但设置得太高可能会出现不真实的细胞类型。
  • --no-diffusion:默认情况下,Proseg 将细胞建模为漏斗状,假设有一定量的RNA 从细胞中泄漏并扩散到其他地方。这似乎是我们看到的大多数 Xenium 数据的情况,但在某些数据中,这可能是错误假设的有害情况。此参数禁用模型的一部分。
  • --diffusion-probability:转录本扩散的先验概率和应重新定位。
  • --diffusion-sigma-far:转录本重新定位距离的先验标准偏差。
  • --voxel-layers 4:要使用的z轴上的体素层数。基本上决定了3D分割的深度。
  • --initial-voxel-size 4:xy轴上体素的初始边长。
  • --schedule 150:在xy轴上增加体素大小的迭代次数。
  • --nuclear-reassignment_prob 0:核重新分配的概率。
  • --perimeter-bound 1:边界距离。

运行在 Xenium 数据集上的 Xenium Explorer

使用 Xenium Explorer,我们可以将数据导入到 Xenium 数据集中

使用 Xenium Explorer,我们可以运行 Xenium Explorer 工具

使用 Xenium Explorer,我们可以导入 Xenium Explorer 数据

使用 Xenium Explorer,我们可以导出 Xenium Explorer 数据

使用 Xenium Explorer,我们可以分析 Xenium Explorer 数据

proseg-to-baysor \
    transcript-metadata.csv.gz \
    cell-polygons.geojson.gz \
    --output-transcript-metadata baysor-transcript-metadata.csv \
    --output-cell-polygons baysor-cell-polygons.geojson

使用 Xenium Explorer,我们可以查看 Xenium Explorer 数据

xeniumranger import-segmentation \
    --id project-id \
    --xeinum-bundle /path/to/original/xenium/output \
    --viz-polygons baysor-cell-polygons.geojson \
    --transcript-assignment baysor-transcript-metadata.csv \
    --units microns

使用 Xenium Explorer,我们可以导出 Xenium Explorer 数据

使用 Xenium Explorer,我们可以查看 Xenium Explorer 数据

使用 Xenium Explorer,我们可以分析 Xenium Explorer 数据

使用 Xenium Explorer,我们可以运行 Xenium Explorer 工具

当前版本的CosMx提供的输出非常混乱,比其他平台更难处理。在CosMx数据集上运行proseg的推荐方法是下载AtoMx的平面文件,然后使用提供的Julia程序手动“缝合”和缩放FOV级别的数据。该程序位于extra/stitch-cosmx.jl

需要一些依赖项,可以使用以下命令进行安装

julia -e 'import Pkg; Pkg.add(["Glob", "CSV", "DataFrames", "CodecZlib", "ArgParse"])'

然后可以使用以下方式运行程序

julia stitch-cosmx.jl /path/to/cosmx-flatfiles transcripts.csv.gz

将完整的转录表输出到transcripts.csv.gz

从这里可以运行proseg

proseg --cosmx-micron transcripts.csv.gz

或者,可以使用带有像素坐标的CosMx数据的--cosmx。它将自动将数据缩放到微米。

在MERSCOPE数据集上运行

对于MERSCOPE数据不需要特殊考虑。只需使用--merscope参数与detected_transcripts.csv.gz文件一起使用。

依赖项

~45–75MB
~1.5M SLoC