TrackMate中的感知和跟踪配置器通过三个按键和值。在 GUI 中,TrackMate 负责仅向用户提供与选定的或跟踪器相关的设置,但在脚本或其他程序中,它们必须是已知的。本文档列出了 TrackMate 中所有当前已知的跟踪器和跟踪器的所有参数,并说明了如何在脚本和展示程序中配置它们。
配置设备和跟踪器
首先介绍如何指定要使用的检测器/跟踪配置器,以及如何使用Smashing方式它们。
在 TrackMate 中,跟踪的所有参数都在 Settings 对象中指定。该对象包含所有内容,从源图像本身到轨道上的过滤器。这样做是为了在正确设置后,您使用以下行可以获得跟踪和过滤的最终结果:
# imp is the source ImagePlus.
settings = Settings( imp )
# configure settings now...
settings.xyz = abc # etc see below
# Create a TrackMate instance on these settings and run it.
trackmate = TrackMate( settings )
if not trackmate.checkInput():
print( trackmate.getErrorMessage() )
else:
if not trackmate.process():
print( trackmate.getErrorMessage() )
print( 'Done.' )
我们在此限制自己展示如何在Settings对象中配置检测器和跟踪器。
工厂工厂
通过设置字段Settings.detectorFactory来确定要使用的检测器。要输入的值必须是SpotDetectorFactoryBase。例如这样(Python):
settings.detectorFactory = LogDetectorFactory()
今天(2022年2月),已知以下点:
内置
它们都可以在 fiji.plugin.trackmate.detection包中找到。
1.LogDetectorFactory
2.DogDetectorFactory
3.MaskDetectorFactory
4.ThresholdDetectorFactory
5.LabelImageDetectorFactory
6.ManualDetectorFactory
扩展中的支架
fiji.plugin.trackmate.cellpose包中的CellposeDetectorFactory需要TrackMate-Cellpose扩展。fiji.plugin.trackmate.ilastik包中的IlastikDetectorFactory需要TrackMate-Ilastik扩展。fiji.plugin.trackmate.morpholibj包中的MorphoLibJDetectorFactory需要TrackMate-MorphoLibJ扩展。fiji.plugin.trackmate.stardist包中的StarDistDetectorFactory需要TrackMate-StarDist扩展。StarDistCustomDetectorFactory,如上所述。WekaDetectorFactory,在fiji.plugin.trackmate.weka包中,需要TrackMate-Weka扩展。
追踪器工厂
要使用的跟踪器通过设置字段Settings.trackerFactory来确定。要输入的值必须是SpotTrackerFactory。例如这样(Python):
settings.trackerFactory = SimpleSparseLAPTrackerFactory()
今天(2022年2月),已知以下现货跟踪器:
fiji.plugin.trackmate.tracking.sparselap包中的SimpleSparseLAPTrackerFactory。SparseLAPTrackerFactory在同一包装中。fiji.plugin.trackmate.tracking.kalman包中的KalmanTrackerFactory。fiji.plugin.trackmate.tracking.overlap包中的OverlapTrackerFactory。fiji.plugin.trackmate.tracking.kdtree包中的NearestNeighborTrackerFactory。fiji.plugin.trackmate.tracking包中的ManualTrackerFactory。
设置映射或字典
选择吸收工厂和跟踪器工厂后,必须使用 Java 中的 Map<String Object> 或 Python 中的 dict 输入其设置。 接下来,假设我们正在使用 Python 脚本来运行 TrackMate,请使用其语言的语法。
因此,检测器或跟踪器工厂的设置由键/值对的集合给出,其中键都是字符串,值可以是 int 、float 、boolean 很少的其他对象。它们必须存储在括号中的 detectorSettings 字段和跟踪器的 trackerSettings 字段中。例如,LoGDetectorFactory 的示例设置如下:
settings.detectorFactory = LogDetectorFactory()
settings.detectorSettings = {
'DO_SUBPIXEL_LOCALIZATION' : True,
'RADIUS' : 2.5,
'TARGET_CHANNEL' : 1,
'THRESHOLD' : 0.,
'DO_MEDIAN_FILTERING' : False,
}
我们需要准确地了解每个检测器和跟踪器它们支持的键是什么以及它们期望的值的类型是什么。这是本文档的目标。
检测器的键/值定义
LoG 和 DoG 探测器(LogDetectorFactory 和 DogDetectorFactory)
这两个检测器使用不同的实现,但其设置依赖于相同的键/值
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
通道索引,从 1 开始(1 是第一个通道)。 |
RADIUS |
积极float |
要检测的对象的半径,以物理单位表示(如果像素大小以 μm 为单位,则为 μm)。 |
THRESHOLD |
积极float |
质量阈值,低于该值的检测到的斑点将被丢弃。 |
DO_SUBPIXEL_LOCALIZATION |
boolean |
如果True,点位置将以亚像素精度进行细化(二次拟合方案)。 |
DO_MEDIAN_FILTERING |
boolean |
如果True,输入将在检测前由 2D 3x3 中值进行处理。 |
面罩检测器 (MaskDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
掩码在哪个通道中,从 1 开始(1 是第一个通道)。 |
SIMPLIFY_CONTOURS |
boolean |
如果True检测到的二维轮廓将被简化。如果False,它们将精确地遵循像素边界。 |
阈值检测器 (ThresholdDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
掩码在哪个通道中,从 1 开始(1 是第一个通道)。 |
SIMPLIFY_CONTOURS |
boolean |
如果True检测到的二维轮廓将被简化。如果False,它们将精确地遵循像素边界。 |
INTENSITY_THRESHOLD |
float |
用于分割的像素值的阈值。 |
标签图像检测器 (LabelImageDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
标签在哪个通道中,从 1 开始(1 是第一个通道)。 |
SIMPLIFY_CONTOURS |
boolean |
如果True检测到的二维轮廓将被简化。如果False,它们将精确地遵循像素边界。 |
手动探测器工厂 (ManualDetectorFactory)
使用此检测器将导致跳过自动检测步骤。
| 关键 | 值类型 | 描述 |
|---|---|---|
RADIUS |
积极float |
创建对象时使用的默认半径,以物理单位表示(如果像素大小以 μm 为单位,则为 μm)。 |
细胞形态检测器 (CellposeDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
使用什么通道作为与 cellpose 进行分割的主要通道。 “0”表示 cellpose 将在所有通道的灰度组合上运行。 ‘1’代表第一个通道,对应RGB图像中的红色通道。类似地,对于“2”和“3”,第二个和第三个通道,对应于 RGB 图像中的绿色和蓝色通道。 |
OPTIONAL_CHANNEL_2 |
积极int |
cyto 和cyto2 预训练模型已在具有标记细胞核的第二通道的图像上进行训练。它被用作种子,使单细胞的检测更加稳健。它是可选的,该参数指定核在哪个通道中(“1”到“3”)。使用‘0’跳过使用第二个可选通道。对于nuclei模型,该参数被忽略。 |
CELLPOSE_PYTHON_FILEPATH |
string |
cellpose 可执行文件的绝对路径,因为它安装在斐济境外。详情请参阅the TrackMate-Cellpose documentation。 |
CELLPOSE_MODEL |
fiji.plugin.trackmate.cellpose .CellposeSettings.PretrainedModel 枚举值之一。可以是 CYTO、CYTO2、NUCLEI 或 CUSTOM。 |
使用什么预训练模型进行分割。请参阅下文以输入自定义细胞姿势模型。 |
CELLPOSE_MODEL_FILEPATH |
string |
如果您为 CELLPOSE_MODEL 参数选择 CUSTOM,则可以使用此设置输入自定义 cellpose 模型的路径。它必须是绝对文件路径。 |
CELL_DIAMETER |
float 大于或等于 0。图像中细胞直径的估计值(以物理单位表示)。输入值“0”以使 cellpose 自动确定像元大小估计值。 |
|
USE_GPU |
boolean |
如果False,cellpose 将仅使用 CPU,即使在配置了 GPU 的系统上也是如此。 |
SIMPLIFY_CONTOURS |
boolean |
如果True检测到的2D轮廓将被简化。如果False,它们将精确地遵循像素边界。 |
ilastik 探测器 (IlastikDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
ilastik模型通过什么通道运行,以1为基础(1为第一个通道)。 |
CLASSIFIER_FILEPATH |
string |
ilastik 项目文件的绝对路径。 |
CLASS_INDEX |
int,从 0 开始。 |
ilastik 文件中指定的类的索引,以获取其概率图。 |
PROBA_THRESHOLD |
float 0 到 1 之间。 ilastik 输出的概率图上的阈值。 |
MorphoLibJ 探测器 (MorphoLibJDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
膜对象位于哪个通道中,从 1 开始(1 是第一个通道)。 |
TOLERANCE |
float |
MorphoLibJ 形态分割的容差值。 |
CONNECTIVITY |
int 6(用于“直线”连接)或26(用于“对角”连接)。 |
使用分水岭算法时要使用的连接性。 |
SIMPLIFY_CONTOURS |
boolean |
如果True检测到的二维轮廓将被简化。如果False,它们将精确地遵循像素边界。 |
内置原子核模型的 StarDist 探测器 (StarDistDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
原子核位于哪个通道,基于 1(1 是第一个通道)。 |
自定义模型的 StarDist 探测器 (StarDistCustomDetectorFactory)
| 关键 | 值类型 | 描述 |
|---|---|---|
TARGET_CHANNEL |
积极int |
分段什么,从1开始(1是第一个通道)。 |
MODEL_FILEPATH |
string |
StarDist 探测器中使用的模型文件的绝对路径。 |
SCORE_THRESHOLD |
float 0 到 1 之间。对象检测阈值。较高的值会导致较少的分割对象,但可能会避免误报。 |
|
OVERLAP_THRESHOLD |
float 0 到 1 之间。对象分离的阈值。较高的值允许分段对象大量重叠。 |
Weka 探测器 (WekaDetectorFactory)
|关键|值类型 |描述 |
| ——————– | ———————— | ———————————————————————— |
| TARGET_CHANNEL|积极int | Weka模型要通过什么通道来运行,以1为基础(1是第一个通道)。 |
| CLASSIFIER_FILEPATH| string| Weka 模型文件的绝对路径。
| CLASS_INDEX | int,从0开始。 | Weka模型中指定该类的索引,以获取其概率图。
| PROBA_THRESHOLD | Weka 输出的概率图上的阈值。 | float 0 到 1 之间。
跟踪器的按键/值定义
简单的圈数跟踪器 (SimpleSparseLAPTrackerFactory)
Jaqaman 等人,2008 的 LAP 跟踪器的专业实现具有许多参数,将在下一段中进行描述。为了简化版本的目的,最好从以下命令返回的默认设置开始:
settings = fiji.plugin.trackmate.tracking.LAPUtils.getDefaultLAPSettingsMap()
并编辑以下3个重要参数:
| 关键字 | 值类型 | 描述 |
|---|---|---|
LINKING_MAX_DISTANCE |
积极float |
允许创建链接的两个连续点之间的最大距离(以物理单位表示)。 |
MAX_FRAME_GAP |
积极int |
闭合间隙时间-距离。允许链接的两个点之间的最大时间点差异。例如,2的值意味着跟踪器将能够在帧t 中的点和帧t+2中的后续点之间建立链接,有效地接续一帧中的一个丢失桥的检测。 |
GAP_CLOSING_MAX_DISTANCE |
积极float |
闭合间隙最大空间距离。两个点之间的最大距离(以物理单位表示)允许在丢失的检测上创建链接。 |
LAP 跟踪器 (SparseLAPTrackerFactory)
该跟踪器可配置,具有许多参数和特征权限重。所有参数表如下所述。但是,完全为了实际使用,最好从返回的默认设置开始:
settings = fiji.plugin.trackmate.tracking.LAPUtils.getDefaultLAPSettingsMap()
并编辑需要更改的参数。有关其图示的详细信息,请参阅 TrackMate documentation 和 Jaqaman et al, 2008。
| 关键字 | 值类型 | 描述 |
|---|---|---|
LINKING_MAX_DISTANCE |
积极float |
允许创建链接的两个连续点之间的最大距离(以物理单位表示)。 |
LINKING_FEATURE_PENALTIES |
string 到 float 的字典 |
指定帧到帧链接的特征惩罚。有关如何输入该搜索结果的信息,请参见下文。 |
ALLOW_GAP_CLOSING |
boolean |
如果True,则跟踪器将执行间隙关闭,链接由多于一帧分隔的布局或分区。 |
MAX_FRAME_GAP |
积极int |
关闭间隙时间-距离。允许链接的两个点之间的最大时间点差异。例如,2的值意味着跟踪器将能够在帧t 中的点和帧t+2中的后续点之间建立链接,有效地桥一帧中的一个丢失的连接。 |
GAP_CLOSING_MAX_DISTANCE |
积极float |
间隙闭合最大空间距离。两个点之间的最大距离(以物理单位表示)允许在丢失的检测上创建链接。 |
GAP_CLOSING_FEATURE_PENALTIES |
string到float的字典 |
指定间隙闭合的特征惩罚。有关如何输入该搜索结果的信息,请参见下文。 |
ALLOW_TRACK_MERGING |
boolean |
如果§§§20§§§,则跟踪器将执行轨迹或分段合并,即:有两个或多个轨迹终结链接到一个轨迹起始。这些轨迹可能会随着时间的推移而融合在一起。 |
| §§§21§§§ | 积极§§§22§§§ | 轨道合并最大空间距离。一个Tracklet结束与Tracklet开始之间的最大距离(以物理单位表示)允许创建导致轨道合并的链接。 |
| §§§23§§§ | §§§24§§§ 到 §§§25§§§ 的字典 | 指定轨道乐队的特征惩罚。有关如何输入该搜索结果的信息,请参见下文。 |
| §§§26§§§ | §§§27§§§ | 如果§§§28§§§则跟踪器将执行统计或分区分割,即:使一个统计结束链接到两个或多个统计开始。这导致统计可能随着时间的推移而分裂几个子统计,就像细胞分裂一样。 |
| §§§29§§§ | 积极§§§30§§§ | 轨道分割最大空间距离。一个Tracklet结束与Tracklet开始之间的最大距离(以物理单位表示)允许创建导致轨道分割的链接。 |
| §§§31§§§ | §§§32§§§ 到 §§§33§§§ 的字典 | 指定轨道乐队的特征惩罚。有关如何输入该搜索结果的信息,请参见下文。 |
| §§§34§§§ | 积极§§§35§§§ | 用于计算LAP矩阵中替代的成本因子。 |
| §§§36§§§ | 从 0 到 1 的正§§§37§§§。 | |
| §§§38§§§ | 积极§§§39§§§ | 阻止值:单物理、禁止链接的成本。默认值为§§§40§§§。 |
特征惩罚图
特征惩罚是一种通过使用所有点计算的数字特征来改变个体链接成本的方法。我们在这里重复一下如何计算该跟踪器的个人成本。
用户被要求提供最大允许链接距离(通过例如§§0§§参数以物理单位输入),以及一系列点特征以及惩罚权重。这些参数用于调整成本矩阵。对于两个可能链接的点,链接成本计算如下:
1、计算两点之间的距离D
2.允许如果点之间的距离超过最大距离,则禁止链接,并且成本设置为无穷大。如果不,
3.对于地图中的每个特征,惩罚p计算如下
p = 3 × W × |f1−f2| / ( f1+f2 )
```
其中`W`是与地图中要素相关的权重。这个表达式是这样的:
- 如果2个特征值`f1`和`f2`相同,则不会受到惩罚;
- 权重为1时,如果一个特征值是另一个特征值的两倍,则惩罚为1;
- 如果一个特征是另一个特征的5倍,则惩罚为2。
4.所有处罚相加,形成`P = (1 + ∑ p )`
5. 成本设置为乘积的平方:`C = ( D × P )²`
如果用户不施加惩罚,则成本只是距离的平方。
惩罚是通过字典指定的,该字典将特征键映射到该特征的权重`W`。例如,要指定权重为2的点半径上的帧到帧链接步骤的特征惩罚以及权重为5的通道1中的平均强度的特征惩罚,请创建以下字典:
```python
penalty = {
'RADIUS' : 2.,
'MEAN_INTENSITY_CH1' : 5.
}
将其设置为LINKING_FEATURE_PENALTIES键的值。这将惩罚主轴的差异很大并且连接点的平均强度差异较小。
您必须使用功能的键,而不是它们的名称。以下是功能键和点功能名称的表:
| 现货功能键 | 现货特征名称 | |
|---|---|---|
MEAN_INTENSITY_CH1、MEAN_INTENSITY_CH2、… |
平均强度 ch1、平均强度 ch2、… | |
MEDIAN_INTENSITY_CH1、MEDIAN_INTENSITY_CH2、… |
中位强度 ch1、中位强度 ch2、… | |
MIN_INTENSITY_CH1、MIN_INTENSITY_CH2、… |
最小强度 ch1、最小强度 ch2、… | |
MAX_INTENSITY_CH1、MAX_INTENSITY_CH2、… |
最大强度通道1、最大强度通道2、… | |
TOTAL_INTENSITY_CH1、TOTAL_INTENSITY_CH2、… |
总强度 ch1、总强度 ch2、… | |
STD_INTENSITY_CH1、STD_INTENSITY_CH2、… |
标准强度 ch1、标准强度 ch2、… | |
CONTRAST_CH1、CONTRAST_CH2、… |
恢复通道 1、 恢复通道 2、… | |
SNR_CH1、SNR_CH2、… |
信噪比 ch1、信噪比 ch2、… | |
ELLIPSE_X0、ELLIPSE_Y0 |
椭圆形中心 x0, 椭圆形中心 y0 | |
ELLIPSE_MAJOR、ELLIPSE_MAJOR |
椭圆长轴、椭圆短轴 | |
| §§§20§§§ | 椭圆角 | |
| §§§21§§§ | 椭圆纵横比 | |
| §§§22§§§ | ||
| §§§23§§§ | 周长 | |
| §§§24§§§ | 圆度 | |
| §§§25§§§ | 加固性 | |
| §§§26§§§、§§§27§§§、§§§28§§§ | X、Y 和 Z 位置 | |
| §§§29§§§ | 现场检测质量 | |
| §§§30§§§ | 光斑半径 |
卡尔曼跟踪器 (KalmanTrackerFactory)
| 关键字 | 值类型 | 描述 |
|---|---|---|
LINKING_MAX_DISTANCE |
积极float |
最初搜索半径(以物理单位表示)指定启动新的统计时两点可以相距多远。 |
KALMAN_SEARCH_RADIUS |
积极float |
最大搜索预测轨迹指定跟踪器应在距离位置多远的地方寻找候选点。 |
MAX_FRAME_GAP |
主动int |
允许链接的两个点之间的最大时间点差异。例如,2的值意味着跟踪器将能够在帧t 中的点和帧t+2中的后续点之间建立链接,有效地接桥一帧中的一个丢失的检测。 |
重叠跟踪器 (OverlapTrackerFactory)
| 关键字 | 值类型 | 描述 |
|---|---|---|
SCALE_FACTOR |
积极float |
比例因子:在计算并集交集 (IoU) 之前放大 (>1) 或缩小 (<1) 光斑形状。 |
MIN_IOU |
积极float |
最小IoU,低于该值则不会创建链接。 |
IOU_CALCULATION |
string,FAST 或 PRECISE |
IoU计算用什么方法。 |
###最近邻跟踪器 (NearestNeighborTrackerFactory)
| 关键字 | 值类型 | 描述 |
|---|---|---|
LINKING_MAX_DISTANCE |
积极float |
最大距离(以物理单位表示)指定两个点可以相距多远才能链接。 |
手动追踪器 (ManualTrackerFactory)
使用此跟踪器将导致跳过自动跟踪步骤。它没有参数。