此页面最后一次修订为 version 5.1.0。
策展助理
管理助手实时监控神经元重建的_形态合理性_(参见Curation vs Proofreading)。
它会在发生可疑跟踪操作时对其进行标记,例如,接近平行的叉角、突然的厚度变化、分支点处的 U 形转弯等。
它还提供按需“全面扫描”,检测整体重建问题,例如crossovers、bundled paths,以及图像signal-to-noise ratio显着退化的跟踪位置。
所有参数都可以在 GUI 中调整,保存到可重复使用的预设文件中,或者从参考重建中自动calibrated。重要的是,所有检测到的问题都标有重建整体正确性的估计 impact。
助手面板分为四个区域:
- Live Monitoring Parameters:在交互式跟踪期间内联运行的轻量级检查(在分叉启动、段完成、路径完成和节点编辑时)
- On-Demand Monitoring Parameters:计算量更大的检查,在显式触发时扫描完整的重建
- Toolbar:校准和预设的操作按钮和选项
- Issues Table:显示按严重性和/或影响排序的当前问题。双击某一行可导航到图像中的警告位置
实时监控参数
这些检查在亚毫秒时间内执行,并在启用实时监控时在跟踪期间自动评估。 每个检查都有一个用于启用或禁用它的复选框和一个用于设置其阈值的字段(如果适用):
货叉角度:最小 (°)
当路径与其父分支之间的角度可疑地狭窄时发出警告,表明子路径几乎与父路径平行。该角度是根据父级在分支点的方向和子级的初始航向(前 5 个节点)计算的。
默认:启用 | 严重级别:警告 | 范围:0–90° |
前叉角度:最大 (°)
当叉角太宽时发出警告,例如子分支几乎在父分支上折回时发出警告,这种情况在解剖学上很少见,通常表示跟踪错误。
默认:启用 | 严重级别:警告 | 范围:90–180° |
叉角:最小和叉角:最大控制相同的分支角度检查。只要至少选择两个复选框之一,就会启用该检查。
货叉方向流量:最大变化(°)
检测子路径与父路径相反的潜在 U 形转弯。
该检查将分支点处父路径的切向量与子路径的初始方向向量(前 5 个节点)进行比较。当两个向量之间的角度低于此阈值时,表明子项继续沿着父项向后移动,而不是从父项中分支出来。
默认:启用 | 严重级别:警告_或_错误(取决于角度)| 范围:0–90° |
曲折:分叉处的最大不匹配
当子路径与父路径的_直线度_明显不同时发出警告(通过 contraction 测量)。
将父母和孩子之间收缩的绝对差异与该阈值进行比较。
两条路径必须至少有 5 个节点才能应用检查。
默认:启用 | 严重级别:建议说明 | 范围:0.05–1.0 |
半径连续性:分叉处的最大比率
标记子神经突口径与父代神经突口径明显不同的分支点。
在分支节点采样父半径;子半径是其前 5 个节点的中值。
比率 \(\frac{child\,radius}{parent\,radius}\) 与此阈值进行比较。
默认:启用 | 严重级别:警告_或_错误(取决于比率)| 范围:1.0–10.0 |
货叉间距离:min
标记快速连续且彼此可疑靠近的连续分叉。短叉间片段在某些细胞(例如果蝇 c3da 神经元的树突)中在生物学上是合理的,但它们也是错误锚定的子路径和意外叉点的典型特征。
该距离是沿着父级分支节点与焦点子级上的下一个下游分支之间的父级路径测量的。
默认:启用 | 严重级别:警告 | 范围:0.5–1000.0(以图像为单位)|
终端路径:最小长度
捕获太短而没有解剖意义的终端存根,以防它们是由意外单击或跟踪伪影生成的。
仅评估终端路径。长度(以图像单位为单位)低于此阈值的终端路径将被标记。
默认:启用 | 严重级别:建议说明 | 范围:0.1–100.0(以图像为单位)|
均匀厚度:标志
标识每个节点共享相同半径值的路径,这通常意味着半径保持默认常量。
默认:启用 | 严重级别:建议说明 |此检查没有阈值字段:它要么启用,要么禁用。 |
按需监控参数
这些检查扫描当前跟踪的完整路径集。它们是通过单击“运行全面扫描”按钮触发的。
交叉检测:最大接近度
检测crossovers:两个或多个路径彼此非常接近地通过的区域,需要进行更仔细的检查,以确保跟踪反映该位置的准确拓扑。这个_max。 proximity_ 是 CrossoverFinder 的 algorithm 中描述的_邻近半径_。直接亲子对不包括在此项检查中。
默认:启用 | 严重级别:警告 | 范围:0.1–100.0(以图像为单位)|
束检测:最大角度 (°)
标记运行nearly parallel并在持续距离内保持相互靠近的路径对(例如,沿同一神经投射的轴突产生的模式)。这些位置需要进行检查,以确保来自邻近神经突的信号不会劫持追踪。
默认:禁用 | 严重级别:建议说明 | 范围:0–90° |
错过分叉候选者:最大接近度
捕获常见的跟踪模式,其中应共享分支点的两条路径改为独立于附近的起点进行跟踪。具体来说,这会标记其端点可疑地靠近非祖先路径上的节点的终端路径:即,终端“结束”在它应该分叉的路径旁边。
默认:启用 | 严重级别:建议说明 | 范围:0.1–50.0(以图像为单位)|
Z 范围:最小比率
标记 Z 轴相对于其总长度几乎平坦的路径。对于有意义长度的非平面 3D 神经突,预期 Z 范围非零;出乎意料的低值可能表示分段折叠到单个平面上,或者逐片跟踪在 Z 中失去连续性。
比率为 \(\frac{z_{\max} - z_{\min}}{\text{路径长度}}\).
默认:禁用。 2D 数据集被忽略 | 严重级别:建议说明 | 范围:0.001–1.0 |
厚度跳跃:最大比率
查找单个路径内半径突然变化的相邻节点。这可能是由例如 radius-fitting errors 导致的。
连续节点之间的比率 \(\frac{\max(r_1, r_2)}{\min(r_1, r_2)}\) 与此阈值进行比较。
默认:启用 | 严重级别:警告 | 范围:1.5–20.0 |
厚度反转:最小游程长度
标记持续向心半径沿路径增加。由于神经突通常随着远离胞体而逐渐变细,因此半径的长期增加表明存在错误。
“运行”是一个连续的节点序列,其中每个半径都超过前一个。当运行长度达到或超过此阈值时,会生成警告。
默认:启用 | 严重级别:建议说明 | 范围:3–100(节点数)|
无效厚度:标志
标识包含半径为零、负或 NaN 的节点的路径,通常出现在路径 refinement.
上的 un-fitted nodes 处
默认:启用 | 严重级别:警告 |此检查没有阈值字段:它要么启用,要么禁用
路径信号质量:最小对比度
测量每条路径从图像背景中突出的程度。在每个节点(不包括第一个和最后一个),使用 Bresenham 线垂直 cross-section is sampled,该线在每侧延伸 3 倍路径半径(最小 5 像素)。 采样强度按百分位数划分:下四分位数 (P25) 估计背景,上四分位数 (P75) 估计信号。对比度定义为:
\[\frac{\mathrm{中值}(\text{信号}) + 1}{\mathrm{中值}(\text{背景}) + 1}\]中值对比度低于该阈值的路径将被标记。 +1 偏移量可防止除以零并稳定暗淡图像的比率。当设置为 -1(自动)时,阈值根据图像的强度范围自动计算为 \(\frac{I_{\max} + 1}{I_{\min} + 1} \times \frac{1}{2}\),代表图像可实现的最佳对比度的一半。扫描完成后,计算值显示在微调器中;使用撤消按钮重置为自动模式。此检查需要加载图像并计算图像统计数据。
默认:启用(自动阈值)| 严重级别:警告 | 范围:-1(自动)或 1.0–100.0 |
提示信号质量:最小对比度
上述信号对比度检查的尖端限制变体。标记最后几个节点具有低信号/背景对比度的终端路径:产生“不确定”终端的模式,其中神经突在追踪停止之前已淡入背景,因此尖端的空间位置不明确。
使用与Path signal quality: min contrast相同的对比机制,但仅限于每个终端的最后几个节点(尾部窗口大小可在脚本中配置)。自然逐渐变细的末端具有明亮的信号得分高对比度;淡入噪音的提示得分较低。
当设置为-1(自动)时,如果启用了该检查,则阈值采用_路径信号质量:最小对比度_的解析值;否则,它是使用相同的公式从图像统计中导出的。使用撤消按钮重置为自动模式。
默认:启用(自动阈值)| 严重级别:建议说明 | 范围:-1(自动)或 1.0–100.0 |
路径信号质量下降:最小下降
标记沿路径的局部强度下降:亮度的几个节点下降,两侧都有明亮的信号。捕获穿过模糊区域的节点,其中轨迹的确切位置是可疑的(例如,经过的神经突穿过昏暗区域,连续跟踪而不是从下面的神经突分支)。
对于每条路径,使用基于突出度的局部最小值检测器扫描每个节点的强度分布。报告的“信号下降”是路径最亮节点下方的下降深度,作为该最大值的一部分。
默认:禁用 | 严重级别:建议说明 | 范围:0.05–1.0 |
工具栏操作
实时监控切换
启用或禁用交互式跟踪期间的实时合理性检查。 启用后,助手会挂钩分叉启动、分段完成、路径完成和节点编辑事件,自动运行所有启用的实时检查。
运行全面扫描
使用实时和按需参数触发当前重建中所有路径的全面扫描。 实时检查适用于每个父子分叉关系;按需检查将路径集合作为一个整体进行扫描。结果显示在issues table中。
过滤和排序
包含两个部分的下拉菜单:
- 显示:每个严重级别(错误、警告、建议注释)的复选框控制表中显示的类别
- 排序:_按影响排序(降序)_切换开关,按影响分数对问题进行排序,从高到低。当您希望将后续问题放在顶层时,这对于分类很有用。单击列标题会手动覆盖它,直到重新启用
实用程序菜单
下拉列表命令列出了便利操作:
-
访问缩放级别 ›:配置双击警告进行导航时应用的缩放。
-
按问题严重性对路径进行颜色标注:对于每个问题,按严重性对受影响的路径进行颜色编码:错误、警告或建议说明
-
种子评论:
- 将受影响的路径标记为 ›:将选定警告引用的路径标记为 seed-review workflows 的_正面_、负面 或_后续_ 示例
- 在路径管理器中显示已审阅的路径:将焦点切换到路径管理器,并将其列表过滤为带有任何
cur:*审阅标签的路径。
校准菜单
参数calibration的下拉列表命令:来自existing reconstructions、built-in或user预设。
问题表
该表包含三列:

- 严重性:颜色编码图标(错误、警告、建议注释)。单击标题进行排序
- 问题:标记条件的描述
- 影响:如果该标志被证明是一个真正的跟踪错误,那么重建的程度将受到威胁(参见Understanding Impact)。显示为百分比,或“—”表示影响指标不适用的检查
默认顺序是按严重性降序排列(错误 → 警告 → 建议说明)。单击任何列标题进行重新排序,或使用“过滤器”菜单中的Sort by Impact toggle按结构结果进行分类。
双击一行可导航到图像中警告的空间位置。视图以受影响的节点为中心,并缩放到配置的访问缩放级别(表的上下文菜单)。
右键单击表格:
- 复制问题描述:将选定的问题(或未选择任何内容时的所有行)作为制表符分隔的文本复制到剪贴板,包括严重性、消息和受影响的路径名称
- 有关问题的帮助…:打开定位到描述所选检查部分的文档页面
- 清除所有问题:清空表格
- 分离表:将问题表弹出到一个单独的浮动窗口中,以便它可以停靠在其他地方或在主面板用于其他任务时保持可见。
了解影响
影响是[0, 1]中的归一化分数,表示如果标志被证明是真正的跟踪错误,则重建的哪一部分受到威胁。它独立于严重性:严重性表示_检查对出现问题的信心程度_;影响表示_如果错了,损失有多大_。终端存根上的高严重性_Error_可能不如主干线上的_Warning_紧急。
内部使用两种传播模型:
-
拓扑类检查(分叉角度、分叉方向流、弯曲度、交叉检测、束检测):影响的衡量方式为以标记路径为根的子树长度除以总树长度。拓扑错误会级联到后代,因此整个子树都处于危险之中。
-
本地检查(半径连续性、厚度跳跃、厚度反转、终端路径长度、分叉间距离、错过分叉候选、Z 范围、路径信号质量、尖端信号质量、路径信号质量下降):影响通过标记路径的长度除以总树长度来衡量。这些错误仍然受到控制。
对于涉及父路径和子路径的分叉点警告,子是影响计算的焦点:这些检查评估子路径在分叉处的合理性,因此考虑子路径的子树(而不是父路径的子树)。两个特殊显示值:
<1%:微小但可测量的影响(低于 0.5%)。保留用于检查受影响的路径或子树是树的一小部分—(em-dash):影响指标不适用于此检查。例如,“均匀厚度”标志属于此类,因为它表示不完整的半径拟合而不是形态错误
校准参数
Curation Assistant 的一个显着功能是,可以使用来自多个来源的已知地面实况数据(现有文件、内置预设或用户预设)对每个验证参数的阈值进行精细校准。还可以通过检查跟踪路径的分布来微调阈值。
校准跟踪单元的阈值
根据现有重建校准助手。通过Utilities Menu、Calibrate Thresholds from Traced Cells…可用:该命令打开一个文件选择器以选择重建文件。加载选定的细胞,并使用百分位数分析从其形态统计推断出所有阈值(下限阈值为 5th 百分位数,阈值上限为 95th 百分位数)。 校准值立即应用于面板。有关底层算法的详细信息,请参阅Advanced Curation Tasks。
内置预设
根据 NeuroMorpho 参考数据校准 Assistant,并为常见细胞类型提供合理的起点。可通过 Utilities Menu Built-in Presets 列表获取: 选择预设会将其阈值和启用状态加载到面板中。预设包括:
| 预设 | 细胞类型 | 物种 | 出版物 | NeuroMorpho 档案 |
|---|---|---|---|---|
| CA1 树突 | CA1 锥体(基部 + 顶端树突) | 鼠标 | Mellström et al., 2016 | DeFelipe |
| CA3 树突 | CA3 锥体(基部 + 顶端树突) | 老鼠 | Ishizuka et al., 1995 | Amaral |
| 类树突状细胞 | 欧洲木樨属 | 斑马鱼幼体 | Kunst et al., 2019 | Baier |
| 凯尼恩细胞 | 凯尼恩 | 成年果蝇 | Zheng et al., 2018 | Bock |
| 马蒂诺蒂细胞 | Martinotti 中间神经元(轴突/树突) | 鼠标 | Goldberg et al., 2004、Trevelyan et al., 2006、Nikolenko et al., 2007 | Yuste |
| 浦肯野树突 | 浦肯野神经元(树突) | 鼠标 | Chen et al., 2013 | Dusart |
| RGC 树突 | 视网膜神经节细胞(树突) | 鼠标 | Werginz et al., 2020 | Fried |
注意:由于 NeuroMorpho.org 无法提供图像,因此这些校准不会为信号质量比设置明确的阈值
用户预设
根据您自己的数据校准助手。可通过 Calibration Menu User Presets 列表获取,自动从 SNT 工作区的 curations/ 子目录(通常为 ~/SNT_workspace/curations/)中找到的预设文件(.curation 扩展名)填充。菜单的这一部分还包括管理预设的命令:
- 从当前参数创建… 将当前阈值和启用状态保存到新的
.curation文件(第here 中所述)。 - 重新加载用户预设:重新扫描 curations 目录并刷新菜单
- 显示用户预设目录:在系统文件管理器中打开 curations 目录
配送检验
允许您从 Path Manager 中当前列出的所有路径校准助手。每个参数微调器旁边都有一个小的直方图按钮。单击它会打开一个弹出窗口,显示当前重建中相应指标的分布,其中:
- 四分位数标记(Q1、中位数、Q3)和描述性副标题报告 n、min、max、mean 和 SD
- 配置的微调器值处的阈值线,标记区域带有浅色阴影
- 页脚报告可以评估多少个单元以及跳过多少个单元(例如_220/258 叉子评估_)
- 对于与角度相关的检查(叉角、叉方向流),使用极坐标图而不是笛卡尔图
该分布允许您使用迄今为止追踪到的数据来衡量您自己的数据的合适阈值。例如,考虑具有 48 个分支点的特定单元格的右侧分布:如您所见,所有分叉角度都在 10° 到 135° 之间,当前的 min/max 阈值设置为 10° 和 170°。因此,将 Fork angle: max (°) 减小到 135° 将提高后续追踪类似特性的检测灵敏度。
直方图是诊断辅助工具,可以帮助您确定阈值是否位于数据实际分布的合理区域。它们不证明重建的正确性:没有任何超过阈值的干净分布仅意味着配置的检查没有发现任何需要标记的内容,而不是重建是准确的。
基于种子的评论
管理助手还接受外部程序提供的警告:SNT 外部生成的警告可以作为 Warning seeds 导入,并加载到助手中。这些条目:
- 带有检查名称“种子审查”,以便更容易在算法生成的警告中发现(和过滤)
- 使用种子的 3D 位置作为警告位置,因此标准的双击导航行为会将画布飞向种子
- 其严重性级别(建议说明 / 警告 / 错误)是手动选择的:使用与审核意图匹配的级别
- 在消息中对种子的置信度、类型和来源进行编码
典型的工作流程:
- 将种子导入 Seeded Tracing Assistant(例如,由深度学习管道生成的预测问题位置的 CSV 文件)
- 调整 confidence range 并对表格进行排序,使感兴趣的候选者位于顶部
- 选择要审查的行,右键单击,然后选择_将选定的种子发送到管理助手…_ → 作为警告(或_作为建议说明_ / 作为错误,视情况而定)
- 该操作将导入选定的种子并切换到“助手”选项卡;通过双击导航逐步浏览新条目
注意:导入的种子未进行重复数据删除:发送相同的选择两次会产生两行
检测交叉
交叉是至少两个神经突在空间中彼此非常接近地经过的点(因此它们可能看起来像在图像中相交),但没有拓扑连接。因此,交叉位点的识别有助于消除神经突之间的重叠并发现可能的追踪错误,例如错过的分支点或错误的合并。
Overview of a crossover between two neurites.
Left: Seen from top, the two neurites appear to intersect. Right: rotation to front view reveals that the two paths are juxtaposed in the XZ plane.
算法
两条路径 Path A 和 Path B 之间的交叉事件检测如下:
- 种子:
All tracing nodes from both paths plus segment midpoints are used as seed points (midpoints help catch “T-like” geometries where a node lies near the middle of another path’s segment). Midpoints are flagged so they can be treated specially later 2.邻近挖矿:
A uniform 3D grid is built with cell size equal to the proximity radius. For each seed, the 27-cell neighborhood (the seed’s cell ± 1 in x/y/z) is queried; candidate pairs are kept if their Euclidean distance ≤ proximity and they satisfy a series of optional criteria 3.候选人分组:
Candidate pairs are grouped by unordered (Path A, Path B) pairs, then sorted by index (iA, iB) and deduplicated. Each group is split into monotonic “runs”. A run is accepted if its length is within a specified cutoff, or if it is a single-pair run that touches an endpoint 4.几何验证:
For each accepted run, all corresponding segment pairs are examined: the closest points and distances between segments are computed, as well as an orientation-invariant approach angle (0–90°) from local tangents. The center of the crossover event is the mean of closest-point midpoints; the median distance and median angle summarize the run. Optional angle thresholds can be applied 5.合并:
Nearby events (centers within proximity) are merged: the center is averaged, participants are unioned, index windows are merged, the distance becomes the minimum of medians, and the angle becomes the mean of medians - 验证:
A final post hoc filter keeps an event only if at least one path node from a participant path is near the event center. This removes spurious “floating” events获取交叉位置
从 GUI 中,列出交叉事件的最简单方法是使用 Navigator Toolbar 中的 Bookmark option。或者,运行 curation assistant’s full scan 也将运行检测例程。对于高级检测,建议使用 scripting。 在脚本中,检测设置在 Config 对象中指定,例如:
// 绝妙的
导入 sc.fiji.snt.util.CrossoverFinder
cfg = 新的 CrossoverFinder.Config()
.proximity(2.0) // Neighborhood radius [real-world units (e.g., µm)] used 1) for the coarse grid query during candidate mining, and 2) to merge nearby events
.thetaMinDeg(0.0) // Minimum approach angle (0–90°) required to accept an event. Use 10–20° to suppress nearly parallel neurites
.minRunNodes(2) // Minimum length of a "near-pair run". Neurites need to have at least this no. of nodes at the crossover site for it to be detected
.sameCTOnly(true) // Only compare paths with the same channel and frame?
.includeSelfCrossovers(false) // Allow detections within the same neurite? Generally keep false
.includeDirectChildren(false) // Allow detections within a path and its direct child? Generally keep false
.nodeWitnessRadius(-1.0) // Post hoc filter: a crossover event is only kept if at least one participant path has an actual node (not a midpoint) within this radius of the event center. Default (-1) defers to the proximity value定义配置后,可以从任何路径集合中检测事件:
// 绝妙的
导入 sc.fiji.snt.Tree
树 = Tree.fromFile("路径/到/a/swc/file.swc")
路径=树.list()
事件= CrossoverFinder.find(路径,cfg)
for(事件中的 ev){
println("x=%.2fµm, y=%.2fµm, z=%.2fµm, angle=%.1f°, d=%.2fµm, paths=%d%n",
ev.x, ev.y, ev.z, ev.medianAngleDeg, ev.medianMinDist, ev.participants.size())
xyzct = ev.xyzct() // pixel-space + avg C/T
// Optional: create a bookmark or navigate to xyzct[0..2]
}检测包
“束”是两个或多个路径彼此平行延伸一段持续距离的区域。通常,
这些发生在轴突沿着同一神经突出,或者神经突的追踪无意中“跳到”并排运行的相邻神经突时。这些都是由相同的crossover detection algorithm检测到的,但通过反转其角度过滤器,这样它就不会捕获短暂的垂直近交叉口,而是捕获为持续运行而调整的_低角度_接近。底层检测器—BundleDetector—与CrossoverFinder共享相同的API,并且是scripted in the same way。
高级管理任务
以编程方式运行检查
所有管理课程都位于 sc.fiji.snt.analysis.curation 包中。三个主要切入点是:
PlausibilityCheck支票本身PlausibilityMonitor运行时协调器,管理两层检查PlausibilityCalibrator阈值推断和预设I/O
脚本中的典型用法如下所示:
import sc.fiji.snt.Tree
import sc.fiji.snt.analysis.curation.PlausibilityMonitor
import sc.fiji.snt.analysis.curation.PlausibilityCheck
// Load a reconstruction
tree = Tree.fromFile("/path/to/cell.swc")
// Create and configure the monitor
monitor = new PlausibilityMonitor()
// Adjust individual check thresholds
ba = monitor.getLiveCheck(PlausibilityCheck.BranchAngle.class)
ba.setMinAngleDeg(15.0)
ba.setMaxAngleDeg(90.0)
rj = monitor.getDeepCheck(PlausibilityCheck.RadiusJumps.class)
rj.setMaxJumpRatio(2.0)
// Run a full scan (live + on-demand checks on all paths)
warnings = monitor.runFullScan(tree.list())
warnings.each { w ->
println("${w.severity()}: ${w.message()}")
}
以编程方式校准阈值
来自本地文件
PlausibilityCalibrator 从参考重建中推断阈值。对于每个参数,它会收集所有父子分叉(实时检查)或所有路径(深度检查)的相关指标,并从百分位统计数据中得出阈值。
下限参数(例如最小前叉角度)使用较低的百分位;上限参数(例如,最大半径比)使用上百分位数。
import sc.fiji.snt.Tree
import sc.fiji.snt.analysis.curation.PlausibilityCalibrator
import sc.fiji.snt.analysis.curation.PlausibilityMonitor
// Load reference cells
trees = [
Tree.fromFile("/path/to/cell1.swc"),
Tree.fromFile("/path/to/cell2.swc"),
Tree.fromFile("/path/to/cell3.swc"),
]
// Calibrate
calibrator = new PlausibilityCalibrator(trees)
calibrator.setUpperPercentile(95.0) // default
calibrator.setLowerPercentile(5.0) // default
result = calibrator.calibrate()
// Print the summary table: A formatted summary showing each check's
// inferred threshold, sample size, mean, sd, and the percentile used
println(result.toTable())
// Apply to a monitor
monitor = new PlausibilityMonitor()
result.applyTo(monitor)
来自 NeuroMorpho.org
SNT 包含一个 script template (Tracing › Calibrate Curation From NeuroMorpho…),可通过 NeuroMorpho.org 标识符下载参考单元、校准阈值并保存 .curation 预设。
该模板接受预设名称、注释和上/下百分位数的参数。使用您感兴趣的细胞类型的标识符编辑脚本正文中的 cellIds 列表。
以编程方式保存和加载管理预设
可以通过编程方式保存和加载预设:
import sc.fiji.snt.analysis.curation.PlausibilityCalibrator
import sc.fiji.snt.analysis.curation.PlausibilityMonitor
monitor = new PlausibilityMonitor()
// ... configure monitor thresholds ...
// Save to a .curation file
outFile = new File("/path/to/my-preset.curation")
PlausibilityCalibrator.save(monitor, outFile, "My custom preset")
// Load from a .curation file
PlausibilityCalibrator.load(outFile, monitor)
// Load a built-in preset bundled with SNT
PlausibilityCalibrator.loadBuiltIn("dummy1", monitor)
仅脚本检查
可以通过脚本进行进一步的合理性检查,并且可以通过预设文件或直接从脚本启用。以下是一些示例:
最大。距体/根的距离
标记其起始节点与重建原点意外远离的路径。当重建有soma标记路径时,测量每条路径的第一个节点到最近的soma节点的欧氏距离;否则距离是从树根开始计算的:
sd = monitor.getLiveCheck(PlausibilityCheck.SomaDistance.class)
sd.setEnabled(true)
sd.setMaxDistUm(500.0)
分钟。距图像边界的距离
标记可疑靠近图像边缘的终端端点,即可能超出视场 (FOV) 的终端端点。需要加载图像,以便可以查询 FOV 尺寸:
import net.imglib2.img.display.imagej.ImageJFunctions
bp = monitor.getDeepCheck(PlausibilityCheck.BoundaryProximity.class)
bp.setEnabled(true)
bp.setMinVoxelsFromBoundary(1.0)
// setImage() takes a RandomAccessibleInterval; wrap ImagePlus / Dataset as needed.
bp.setImage(ImageJFunctions.wrap(imp))