我知道编辑这个网站吗?

SNT › 种子追踪

此页面最后一次修订为 version 5.1.0

种子追踪允许在关键位置(machine learning predictions、体细胞位置、神经突端点、手动注释等)周围锚定/约束追踪算法。 种子是一个 3D 点,带有位置、置信度分数和一些可选属性(半径、类型、源、通道、框架)。种子使用专用渲染器覆盖在图像上,并且不会影响其他覆盖的对象,例如路径或 ROI。种子的常见来源包括:

  • 深度学习检测器,输出候选体体/端点坐标(参见Machine Learning
  • 标签/分割图像 例如,来自 cellposeStardistLabkitTWS,其中每个标签/连接组件产生一个种子(例如,cellpose 掩码可用于在自动追踪时指定体细胞位置 multiple cells
  • ROIs 例如,从 ImageJ 例程生成(区域和线 ROI 被简化为代表点)
  • 从外部工具或脚本导出的表格数据 (CSV)

种子追踪助手

/media/plugins/snt/snt-seeded-tracing-assistant.png

种子跟踪助手Main Dialog 中的主要选项卡之一,用于管理种子。它分为四个部分:显示工具栏、置信度过滤器、所有已加载种子的表格以及用于 importexportautotrace 操作的底部工具栏。

显示工具栏

控制种子在跟踪画布上的渲染方式,包括:

  • 显示/隐藏种子切换按钮,用于显示整个种子覆盖层
  • 颜色表控件 设置查找表 (LUT)、透明度以及驱动 LUT 映射的_颜色模式_:
    • Confidence:根据活动滤波器窗口内的种子置信度采样的 LUT
    • Index:每个种子有一个不同的 LUT 插槽。这允许在 Distinct/Glasbey 查找表下用独特的颜色渲染种子
    • 类型/来源:种子按_类型_或_来源_进行颜色编码

置信度过滤

两个滑块设置包含 \([low, high]\) 的置信范围。范围之外的种子隐藏在画布覆盖层和表格视图中;它们保留在基础数据中,可以通过扩大范围来恢复。滑块下方的标签报告当前正在过滤的种子数量。

种子表

每行列出一个种子。选择表中的行也会选择画布上相应的种子(反之亦然)。该表的结构如下:

专栏 意义
X、Y、Z 物理(校准)坐标中的位置
信心 得分为 \([0, 1]\)。驱动颜色映射和置信范围过滤器
半径 可选的球体半径(物理单位)。仅积分种子为零
类型 自由形式类别(例如_soma_、endpointwaypoint
来源 该种子来自哪里(例如_roi_、labels-image:cellpose.tif
状态 覆盖范围指标(见下文)。仅当 SNT 有跟踪数据时才出现
  • Right Click 将画布导航到该种子的行(设置时遵循通道/帧;否则使用活动 C/T)。底部工具栏上的_访问缩放级别_微调器控制转到期间应用的缩放级别
  • Double Click 用于选择和编辑控件。选择_分离_将表移动到其自己的窗口中以获得更大的工作区域
  • 通过单击列标题进行排序;置信过滤器在各种情况下都存在
💡

当跟踪暂停时,⌥ Alt +  Left Click 在种子标记上进行编辑。

导入种子

💡

可以通过拖放导入种子。支持以下文件:.csv.roi/.zip.tif

来自 CSV 文件

ImportFrom CSV File…

SNT 读取带有标题行的逗号或制表符分隔的表,以及以下必需的列(不区分大小写,允许空格):xyzconfidenceradius。可选栏包括:channelframetypesource。缺席时应用默认值。

注意:体素索引输入可以在导入时使用图像的间距转换为物理(空间校准)位置

来自标签/掩模图像

ImportFrom Labels/Masks Image…

该程序将解析标签/掩模图像(例如由 cellpose、Stardist、Labkit or TWS 生成),并为每个非零标签提取一个种子。对于每个标签,SNT 计算:

  • 物理坐标中的质心
  • 体积等于标签总体积的球体的 半径: \(r = \sqrt[3]{\frac{3V}{4\pi}}\)
  • 置信度minConfidence (最小标签)和 \(1.0\) (最大)之间线性插值。例如,在 cellpose mask 的情况下:具有最小体积的标签将被指定为最低置信度、最大、最高置信度

注意:如果所选图像是二值掩模,则每个标签一个种子会将整个前景折叠成单个种子。 SNT 检测到这种情况,并建议首先运行连通分量分析(2D 中的 8 个连通性,3D 中的 26 个连通性),标记每个不同的对象,然后继续处理标记的图像。

来自投资回报率

ImportFrom ROI Manager…

SNT 将使用以下标准解析 ROI 管理器中存储的所有 ROI:

  • 区域 ROI(椭圆形、多边形、矩形、手绘、追踪):质心作为位置;匹配区域圆盘的半径:\(r = \sqrt{\frac{A}{\pi}}\))
  • 线 ROI(直线):中点作为位置;半径是路径长度的一半。 折线/自由线:顶点质心;半径是线段长度总和的一半
  • 点 ROI:每个包含的点都成为自己的种子(无半径)
  • 其他几何图形(角度、复合):边界中心位置,无半径

注意:通道和帧在设置时来自 ROI 的超堆栈位置,否则来自图像的活动 C/T。导入 ROI 时,可以设置其种子_type_ 和_confidence_ 值(默认1.0)。

来自工作区

ImportFrom Workspace…

此选项直接从当前的 SNT session directory 加载先前导出的 seeds.csv。对于在 SNT 重新启动时快速恢复种子很有用。

导出种子

到 CSV 文件

ExportTo CSV File…

此选项将所有种子导出到 CSV 文件,其列布局与 importer 使用的列布局相同。

致投资回报率经理

ExportTo ROI Manager…

将种子转换为 ImageJ ROI。具有设定半径的种子变成直径为\(2r\)的圆;没有半径的种子成为点 ROI。默认情况下,导出表中选定的种子;如果未选择任何行,则转换所有种子。请注意,种子 → ROI 转换是有损的,因为 ROI 不知道_confidence_、type 或_source_。

到工作区

ExportTo Workspace…

将所有种子写入当前会话目录中的 seeds.csv 文件。对应的From Workspace从同一位置重新加载。

从种子自动追踪

种子可以通过不同的方式驱动自动跟踪,可以通过底部工具栏上的自动跟踪下拉菜单进行访问。 命名约定将算法角色与其生物学解释配对:RootsSomata端点提示; _航点路径吸引子。所有跟踪命令都继承 Grayscale/ Segmented 下记录的参数 - 图像自动跟踪:只有与种子相关的参数和种子所扮演的角色有所不同。

种子为根 / Somata

Run Auto-TracersGrayscale Image (One Tree per Seed)…

每个过滤后的种子都成为其自己的自动跟踪的根;自动追踪的体细胞检测策略被绕过,因为种子_是_根。该命令对每个种子迭代一次跟踪器运行,并将生成的树聚合成森林:每个种子一棵树。 失败(无法访问的种子、后台的种子等)会记录到控制台,但不会中止运行。

种子源过滤器(Visible/All/Selection only)和类型过滤器允许您将每个种子循环限制为一个子集。 当从选定的行调用时,源过滤器预先定位到“仅选择”。

种子作为端点/提示

Run Auto-TracersGrayscale Image (Single Cell)…

在这种方式中,过滤后的种子成为尖端目标。自动跟踪器从体体运行检测一次,然后通过父指针字段提取从每个尖端返回根的最短路径。这相当于 SNT 用于交互式端点单击的 A* 最短路径跟踪,但在整个种子集上进行批处理。 输出是一棵树,将体体连接到每个可到达的尖端;落在前景之外或图像边界之外的提示将被记录并跳过。 根据定义,种子提示是必需的端点,因此自动跟踪不会执行任何分层分层。

种子作为路径点/路径吸引力子

Run Auto-TracersGrayscale Image (Single Cell, Constrained)… 在这种模式中,过滤后的种子作为_软吸引子_:自动跟踪器利用的成本图局部偏向于每个路点体素,从而生成的树优先路由穿越(或接近)种子的路径。,保护根到路径点的路径然后力标准宽度通道的影响,确保有目标的路径能够到达最终的树中。

提示显示了三个偏差控制:

  • 偏差源来自置信度(默认:每个种子的置信度值会缩放其吸引力)、来自半径(跨路点集标准化的半径)或_统一_(固定因子)

  • 偏差强度[0, 1]中的总体乘数。默认的0.9意味着置信度为1的种子几乎一直被拉到零成本体素

  • 偏置球体半径(体素):每个航路点周围偏置的空间范围。一个小球体(2-3个体素)通常就足够了;更大的值可能会在低损的偏差边界处产生幻影子

偏差只是一个提示,而不是硬性约束。如果周边提供了一条更便宜的路径来绕过路径点,则航线仍然可以绕过它。对于更严格的“必须访问此点”语义,请改用Tips命令。

#作为审查工具的种子 在这种方式中,种子被转换为_审查地点_并发送至Curation Assistant进行检查。对于现有重建的质量评估以及使用QC分类训练器数据闭合循环方式:每个位置都可以标记为_accept_ / reject / _unsure_并导出为下训练的标签。

编写脚本

种子覆盖层可通过 scriptssnt.getSeedOverlay() 访问。 GUI中可用的相同操作(添加、删除、过滤、更改颜色、使用不同角色的运行自动跟踪器)可以通过Smashing方式执行。