本页描述了 TrackMate 的检测器,它依赖于 StarDist 来分割 2D 对象。它不包含在 TrackMate 的核心中,必须通过其自己的 update site 模块安装。
安装
您需要订阅几个更新站点:
- CSBDeep更新站点,
- Tensorflow 更新站点,
- 前往StarDist更新站点,
- 然后前往 TrackMate-StarDist 更新站点:
CSBDeep 更新站点:

Tensorflow更新站点:

StarDist更新站点:

最后是TrackMate-StarDist更新站点。

完成所有这些后,请重新启动斐济。 我们您单独测试 StarDist,以确保它在安装后可以运行。这样建议我们可以更好地发现问题所在,万一它不起作用。例如,请遵循第 StarDist 页上的说明。
使用和教程
TrackMate-StarDist 附带了两个将出现在 TrackMate 中的导轨。安装 TrackMate-StarDist 并重新启动 Fiji 后,这两个导轨将以透明的方式集成在 TrackMate 中。我们在下面的四个教程中描述了如何使用它们。 他们按顺序描述:
- 在单通道图像上使用 TrackMate-StarDist。
- 在多通道图像上使用 TrackMate-StarDist 并利用强度信息。
- 将TrackMate-StarDist与自定义深度学习模型结合使用。 4.使用TrackMate-StarDist通过逐片方法分割3D图像。
StarDist在单通道图像上内置多功能核模型
StarDist 插件附带了一个非常的模型,可以分割二维几何图形的高效原子核,该模型是根据 2018 年 Kaggle 挑战赛的数据集生成的:
我们在第一个 StarDist 中使用了这个模型。
在第一个教程中,我们将使用一份跟踪核酸迁移的片段,并标记其细胞核。 您可以从 Zenodo 下载它:
首先启动斐济并打开斐济的教程图片。
我们使用教程数据中提供的P31-crop.tif file。

然后启动 TrackMate Image › Properties。
在标题为选择的第二个面板中,您应该在列表中看到两个新选项,其中一个是StarDist 钳。

选择它并单击下一步。
出现这个简单的面板。

请注意,这里面板中没有Stardist检测器的配置:我们使用该模型的默认值作为分数阈值和重叠阈值。我们观察到,如果使用默认值的模型不能很好地处理某些数据集,则更改分数和重叠阈值对结果几乎没有积极影响。因此,我们推断,如果模型和默认值不适合您的数据,那么最好针对您的问题训练特定的StarDist模型。
点击预览按钮检查分割结果。
这是我在教程图像中的第一个时间点得到的结果:

StarDist模型非常适合处理此类数据。 之后,您按照 TrackMate 中的后续步骤对所有时间点的所有单元格进行分段,然后跟踪它们。 最终我们得到这个结果时都使用默认跟踪器和默认参数:
它简单而快速,这意味着需要仔细检查丢失的细胞分裂和错误链接。
使用多通道图像进行 ERK 信号和运动测定
在本教程的这一部分中,我们将把细胞核中报告的ERK易位与细胞运动相关。我们将使用来自细胞迁移测定的图像,其中细胞表达第一个通道中报告的ERK,并在第二个通道中其细胞核进行染色。分析包括分割和跟踪细胞核中的细胞以及分析ERK通道中的强度。在第二部分中,我们将研究瞬时速度是否与细胞核中的ERK信号相关。 您可以在 Zenodo 上找到来源图片和附加文件:
使用 TrackMate 进行跟踪
步步:
-打开斐济。
- 打开你的图像。该图像有两个通道,通道1中的ERK报告基因(绿色)和通道2中的DNA染色(灰色)。
- 打开 TrackMate File › Save as…。TrackMate 开始面板将打开,显示有关图像尺寸的信息。单击
Next。 - “选择检测器”面板打开。从下拉菜单中选择
StarDist detector。检测器方法的描述将出现在面板中。单击Next。

- 将打开一个包含 StarDist 探测器描述的面板。通过单击
Segment in channel滑块,选择要分段的通道。在这里,选择通道 2,其中包含 DNA 标签。 - 通过单击
Preview按钮,您可以在当前帧上测试检测器。 - 当您对结果感到满意时,请单击
Next。 - 检测器将在所有时间范围内检测所选通道中的所有核。由于电影有很多时间点,这可能需要几分钟。
- 当进度条到达末尾时,单击
Next。 - 打开一个面板,用于根据检测到的点的质量对其进行过滤(有关此过滤的更多信息可以在此处找到)。在本练习中,这部分可以忽略。请点击
Next。

- 将打开一个面板,用于根据点的属性(即大小、形状、位置或信号强度)过滤点。在本练习中,执行以下操作:
- 点击面板底部的绿色加号 - 将出现一个过滤器。
- 单击下拉菜单并选择
Area。在这里,我们将过滤掉检测到的最小物体。确保Above按钮被选中。 - 将水平线(粉色虚线)拖动到值 30.92(大约)。如果您想输入准确的值作为阈值,只需在过滤器面板内部单击将其激活(变为文本红色),使用键盘输入您想要的数字然后。1 秒后它将被设置为阈值。
- 再次单击面板底部的绿色加号以激活第二个过滤器。
- 单击下拉菜单并选择
Mean intensity ch2。在这里,将过滤掉通道2我们中检测到的低强度物体。确保选择了Above按钮。将水平线(粉色虚线)拖动到值120.73。点击Next。

- 接下来,将打开一个跟踪面板。在此面板中,您可以选择跟踪对象的方法。在这里,我们使用
LAP tracker来解释可能分裂的细胞。请从下拉菜单中选择它,然后单击Next。 - 将打开 LAP 跟踪器设置面板。在此面板中,您可以选择如何跟踪单元格。首先,使用
Frame to Frame linking参数,您可以给出在帧之间链接对象的最大距离。这里使用 30然后,您可以选择可以少多少个点,并且它们仍然可以是同一个轨道。勾选Allow gap closing框并添加值:Max distance:30微米您和Max frame gap:5。接下来,让TrackMate知道是否可以允许分割轨道分裂细胞而导致。勾选框Allow track segment splitting并插入值Max distance:15微米。您重新在下面看到Track segment merging此处此框应保持未选中状态。单击Next。

- 跟踪完成后,会打开一个跟踪过滤面板。在此面板中,您可以根据轨道的属性(即长度、速度或位置)删除轨道。
对于上面描述的此处对象过滤步骤,单击绿色加号以添加过滤器。接下来,单击下拉菜单并从列表中选择
Track duration。确保Above已勾选,放置设置为其他30k。点击Next。

- 将打开一个带有轨道可视化选项的窗口。在这里可以根据轨道或对象的属性编辑它们的颜色。
- 首先,确保
Display spots和as ROIs框已勾选。 - 一种选择是根据通道1强度的标准差来标记荧光(细胞核)。在这种情况下,蓝色表示ERK活性报告信号随时间从而保持稳定。相反,红色将表明ERK活性报告信号随时间波动。通过这种着色,可以观察显示ERK活性振荡的细胞。
-为此,请从下拉菜单中选择
Color spots by Mean intensity ch1。单击下面的auto以展开信号颜色。 - 对于轨道,我们将可视化轨道地质。首先,确保您已从
Display tracks之后的下拉菜单中选择了Show tracks local in time。 - 接下来,在时间框中勾选
Fade tracks并选择Fade range14。接下来,从下拉菜单中选择:Color tracks by Track displacement。这将以蓝色显示移动短距离的轨迹,以红色显示移动最长的轨迹。现在您可以想象 ERK 振荡的存在是否与细胞行进的距离相对应。
- 首先,确保
- 在此面板中,您还可以将结果导出为 .CSV 文件。请这样,我们需要将它们在第二路径个中的 MATLAB 中进行分析。单击面板底部的
Tracks按钮。出现一个包含大量数据的窗口。确保导出Spots(有关该点的信息)和Edges(有关 2 个点之间的链接的信息)文件。关闭结果窗口并单击Next。

- 在下一个面板
Plot features中,可以得到较差轨道的一些特征,例如信号强度随时间的变化。但是,我们不能轻易引起瞬时速度与原子核中的ERK强度关联起来,因为前面是边缘物体的特征,上部是点物体的特征。我们将在第二部分中通过MATLAB分析脚本解决这个问题。否则Next。 - 在下一个面板中,可以执行不同的操作。对于本练习,我们将导出实验的跟踪图像。从下拉菜单中,请选择
Capture overlay。当您单击下面的Execute时,将打开一个弹出窗口。您可以在此处定义要保存的时间间隔。请勾选Hide image框并点击OK。 TrackMate将生成实验视频。

使用 MATLAB 进行跟踪分析
数据集的 zip 文件包含从上面第一个 Paty 生成的 2 个 CSV 文件,以及一个读取它们的速度并研究是否与 ERK 强度相关的 MATLAB 脚本。 我们在这里概述了脚本。
首先让我们加载数据。
clear
close
clc
% Path to the CSV files, exported from TrackMate.
spots_csv_file = 'CellMigration_WithERK-spots.csv';
edges_csv_file = 'CellMigration_WithERK-edges.csv';
%% Load CSV files into MATLAB tables.
spot_table = readtable( spots_csv_file );
edge_table = readtable( edges_csv_file );
%% Display info on tables.
fprintf( 'Header of the spot table:\n' )
head( spot_table )
fprintf( '\nHeader of the edge table:\n' )
head( edge_table )
Header of the spot table:
ans =
8×38 table
Var1 ID TRACK_ID QUALITY POSITION_X POSITION_Y POSITION_Z POSITION_T FRAME RADIUS VISIBILITY MANUAL_SPOT_COLOR MEAN_INTENSITY_CH1 MEDIAN_INTENSITY_CH1 MIN_INTENSITY_CH1 MAX_INTENSITY_CH1 TOTAL_INTENSITY_CH1 STD_INTENSITY_CH1 MEAN_INTENSITY_CH2 MEDIAN_INTENSITY_CH2 MIN_INTENSITY_CH2 MAX_INTENSITY_CH2 TOTAL_INTENSITY_CH2 STD_INTENSITY_CH2 CONTRAST_CH1 SNR_CH1 CONTRAST_CH2 SNR_CH2 ELLIPSE_X0 ELLIPSE_Y0 ELLIPSE_MAJOR ELLIPSE_MINOR ELLIPSE_THETA ELLIPSE_ASPECTRATIO AREA PERIMETER CIRCULARITY SOLIDITY
___________ _____ ________ _______ __________ __________ __________ __________ _____ ______ __________ _________________ __________________ ____________________ _________________ _________________ ___________________ _________________ __________________ ____________________ _________________ _________________ ___________________ _________________ ____________ _______ ____________ _______ __________ __________ _____________ _____________ _____________ ___________________ ______ _________ ___________ ________
{'ID20994'} 20994 0 0.87727 467.92 304.57 0 42303 141 6.8714 1 NaN 892.92 898 594 1070 3.1252e+05 109.68 141.27 144 78 190 49446 21.051 -0.18132 -3.6061 -0.1431 -2.2415 0.070632 0.064366 9.3421 5.0833 0.1923 1.8378 148.33 47.735 0.81804 0.97503
{'ID10754'} 10754 0 0.83571 451.67 218.51 0 20401 68 3.7286 1 NaN 993.1 1036 482 1167 1.0428e+05 155.98 141.02 146 72 227 14807 35.293 -0.32104 -6.021 -0.25705 -2.7649 -0.013069 -0.01824 4.2237 3.2984 -1.3372 1.2805 43.677 26.499 0.78161 0.92825
{'ID25602'} 25602 0 0.89615 490.18 292.33 0 51303 171 7.21 1 NaN 1040.2 1041 812 1215 3.9944e+05 85.512 138.93 144 93 184 53351 19.692 -0.11814 -3.2592 -0.14992 -2.4885 0.010226 -0.010218 8.186 6.407 -0.71347 1.2777 163.31 46.657 0.94274 0.98977
{'ID20995'} 20995 0 0.87711 482.46 273.57 0 42303 141 7.2147 1 NaN 870.72 888 548 985 3.3261e+05 78.431 139.42 142 85 185 53258 18.521 -0.1956 -5.3989 -0.13575 -2.3648 0.040536 0.073317 8.96 5.8645 -1.3124 1.5278 163.52 48.145 0.88651 0.98726
{'ID4611' } 4611 0 0.85884 458.63 210.1 0 6000.4 20 7.6966 1 NaN 1091.5 1094 843 1413 4.8246e+05 109.33 232.76 235 106 402 1.0288e+05 58.915 -0.16636 -3.9848 0.10675 0.76213 0.0078895 -0.021079 8.114 7.3583 -1.4064 1.1027 186.1 49.794 0.94321 0.98218
{'ID7684' } 7684 0 0.83752 468.28 214.64 0 13201 44 6.1328 1 NaN 1625.5 1652 1057 1858 4.5677e+05 159.43 325.73 308 184 536 91530 87.696 -0.098066 -2.2171 0.1099 0.73554 0.075046 -0.018995 7.3124 5.2173 0.24957 1.4016 118.16 40.901 0.88759 0.97731
{'ID29701'} 29701 0 0.87407 480.8 309.16 0 58804 196 7.4798 1 NaN 985.05 991 689 1161 4.0978e+05 106.2 135.36 138 89 174 56309 18.971 -0.11955 -2.5188 -0.18033 -3.1395 0.037025 0.0043714 8.6703 6.4975 -0.77281 1.3344 175.76 49.174 0.91339 0.98231
{'ID15878'} 15878 0 0.83024 461.84 250.16 0 31802 106 6.7081 1 NaN 912.99 937 464 1147 3.0676e+05 114.64 147.35 153 83 187 49510 21.257 -0.21064 -4.2504 -0.094686 -1.45 0.11303 -0.0094924 8.5511 5.3345 -1.3697 1.603 141.37 45.864 0.84455 0.9781
Header of the edge table:
ans =
8×13 table
Var1 TRACK_ID SPOT_SOURCE_ID SPOT_TARGET_ID LINK_COST DIRECTIONAL_CHANGE_RATE SPEED DISPLACEMENT EDGE_TIME EDGE_X_LOCATION EDGE_Y_LOCATION EDGE_Z_LOCATION MANUAL_EGE_COLOR
_____________________ ________ ______________ ______________ _________ _______________________ _________ ____________ _________ _______________ _______________ _______________ ________________
{'ID31545 → ID31681'} 0 31545 31681 2.0205 0.0037053 0.0047378 1.4214 62254 496.72 311.66 0 NaN
{'ID19256 → ID19400'} 0 19256 19400 10.28 0.010471 0.010687 3.2063 38853 487.15 248.62 0 NaN
{'ID14361 → ID14477'} 0 14361 14477 5.4277 0.010471 0.0077653 2.3297 28652 462.22 245.67 0 NaN
{'ID17824 → ID18039'} 0 17824 18039 1.2679 0.010471 0.0037531 1.126 36152 489.52 240.16 0 NaN
{'ID17160 → ID17216'} 0 17160 17216 83.774 0.010471 0.030507 9.1528 34652 461.37 257.23 0 NaN
{'ID7684 → ID7827' } 0 7684 7827 0.75557 0.009246 0.0028973 0.86923 13351 468.56 214.31 0 NaN
{'ID10506 → ID10604'} 0 10506 10604 3.6989 0.010471 0.0064104 1.9233 19951 452.52 219.05 0 NaN
{'ID22343 → ID22544'} 0 22343 22544 84.232 0.0017781 0.030591 9.1778 45153 487.83 277.45 0 NaN
如上所述,我们需要关联属于两个不同表的值:点表中的平均 ERK 强度和边缘表中的速度。
被定义为边缘特征,因为您需要两个点来定义速度和时间间隔,从而定义。
但我们想要相似点的速度和强度。
诀窍是使用现货 ID 值,该值在跟踪会话中是唯一的。
边缘表有两个列,存储其链接的2个点的ID:SPOT_SOURCE_ID和SPOT_TARGET_ID。
因此,我们需要使用点表中的ID列和(例如)边缘表中的SPOT_TARGET_ID来连接2个表。
在 MATLAB 中,按如下方式完成:
T = join( edge_table, spot_table, ...
'LeftKeys', 'SPOT_TARGET_ID', 'RightKeys', 'ID', ...
'LeftVariables','SPEED' , 'RightVariables', 'MEAN_INTENSITY_CH1');
head(T)
ans =
8×2 table
SPEED MEAN_INTENSITY_CH1
_________ __________________
0.0047378 917.44
0.010687 787.33
0.0077653 862.49
0.0037531 907.65
0.030507 1016.8
0.0028973 1606.6
0.0064104 1060.7
0.030591 1063.9
最后我们可以可视化是否与散点图有某种相关性。
figure
scatter( T.SPEED, T.MEAN_INTENSITY_CH1, 'k.' )
xlabel( 'Speed (µm/sec)' )
ylabel( 'ERK nuclei intensity' )

这么多点还是节日。让我们尝试更多点的浓密。
figure
histogram2( T.SPEED, T.MEAN_INTENSITY_CH1, 'FaceColor', 'flat' )
view( 2 )
grid off
box off
xlabel( 'Speed (µm/sec)' )
ylabel( 'ERK nuclei intensity' )

这还不是更清楚。我们来分析一下相关系数。
[ R, P ] = corrcoef( T.SPEED, T.MEAN_INTENSITY_CH1 );
fprintf( 'Correlation coefficient: %.2e\n', R( 1, 2 ) )
fprintf( 'P-value for the correlation: %.2f\n', P( 1, 2 ) )
Correlation coefficient: 4.00e-03
P-value for the correlation: 0.56
我们必须得出结论,该数据集并未显示细胞核中瞬时速度和 ERK 强度之间的相关性。 也许我们需要过滤掉一些低速点,或者调查整个轨迹。 但这留给读者作为练习。
使用 StarDist 探测器中的自定义模型跟踪明场成像的 T 细胞
您还可以使用您自己训练并打包为 zip 文件的自定义模型。 我们建议使用 ZeroCostDL4Mic 平台上的专用笔记本来执行此操作。检查ZCDL4M wiki page dedicated to training StarDist以生成这样的模型。
在本教程中,我们将使用我们自己训练的模型跟踪明场成像的 T 细胞。 您可以在 Zenodo 上找到图像和模型(打包为 zip 文件):
首先打开教程数据中提供的位于斐济的名为TCellsMigration.tif的教程图像。

启动 TrackMate。在标题为 选择探测器 的第二个面板中,选择 StarDist 探测器自定义模型,然后单击 下一步。其配置面板需要几个参数:

- 在 自定义模型文件 文本字段中,您需要输入打包为 zip 文件的 StarDist 模型的路径(或使用 浏览 按钮导航到该文件夹)。在教程数据集中,该文件名为
StarDistModel-TCellsBF.zip。 - 分数阈值对应于概率图上识别对象的阈值。它接受 0 到 1 之间的值。
-
重叠阈值对应于非极大值抑制步骤中用于分离触摸/重叠对象的阈值;它接受 0 到 1 之间的值。
- 设置这些参数并单击预览按钮在当前帧上测试检测器。以下是我们在教程图像的第一个时间点上得到的示例(使用默认参数):

- 如果结果满意,点击下一步进行全时间序列检测。 After the detection is finished, continue with the following steps same as in standard TrackMate workflow.使用默认跟踪器(简单 LAP 跟踪器)和默认参数,我们得到以下结果:
![]()
通过使用 TrackMate 跟踪 2D 标签来生成 3D 标签
在本教程中,您将学习如何使用 TrackMate 生成 3D 标签。 3D 对象的分割可能非常困难。 深度学习被证明非常有效,但仍然有许多模型和算法仅适用于 2D 情况。 在本教程中,我们“破解”TrackMate,使用 2D StarDist 分割算法来分割 3D 对象。 随着时间的推移,我们欺骗 TrackMate 将 3D 图像视为 2D 电影。 我们跟踪 Z 中的假 2D 对象,并使用生成的跟踪信息来重建对象的 3D 分割。 以下分步教程展示了如何执行此操作。
首先从 Zenodo 下载数据集:
数据集包含原始数据,但也包含中间标签图像,以防您想直接使用它们。
- 打开斐济。
- 打开斐济的
Spheroid-3D.tif图像。该图像是 MCF10DCIS.com 3D 球体的 Z 堆栈,已用 DAPI 染色以可视化其细胞核。 - 打开 TrackMate Plugins › Tracking › TrackMate。由于图像是 3D Z 堆栈,TrackMate 会要求您交换 Z 和 T 尺寸。这就是我们想要的;单击
Yes。

- 开始面板将打开,显示有关图像尺寸的信息。单击
Next。 Select a detector面板打开。从下拉菜单中选择StarDist detector。单击Next。- 将打开一个包含 StarDist 探测器描述的面板。 通过单击
Preview按钮,您可以在当前帧上测试 StarDist 探测器。如果您对结果感到满意,请单击Next。

- 检测器将在所有时间范围内检测所选通道中的所有核。这可能需要几分钟的时间。
- 当进度条到达末尾时,单击
Next。 -
打开一个面板,用于根据检测到的点的质量对其进行过滤(有关此过滤的更多信息,请参阅here)。在本练习中,这部分可以忽略。单击
Next。 - 将打开一个面板,用于根据点的属性(即大小、形状、位置或信号强度)过滤点。在本练习中,请执行以下操作:
- 单击面板底部的绿色加号 - 面板顶部会出现一个过滤器。
- 单击下拉菜单并选择
Area。在这里,我们将过滤掉检测到的最小物体。 Make sure theAbovebutton is selected. - 将水平线(青色虚线)拖动到值 31.47。
- 再次单击面板底部的绿色加号 - 将出现一个新的过滤器。
- 单击下拉菜单并选择
Max intensity ch1。在这里,我们将过滤掉强度较低的对象。确保选择了Above按钮。将水平线(青色虚线)拖动到值 45524.62。 - Click on
Next.

- 接下来,将打开一个跟踪面板。在此面板中,您可以选择跟踪对象的方法。在这里,我们使用
LAP tracker。请从下拉菜单中选择它,然后单击Next。 - 将打开一个用于选择 LAP 跟踪器设置的面板。使用此面板,您可以选择如何跟踪单元格。首先,使用
Frame to Frame linking参数,您可以给出在帧之间链接两个对象的最大距离。这里使用4微米。接下来,您告诉 Trackmate 可以缺少多少个位置但仍然是同一条赛道。勾选Allow gap closing框并添加值:Max distance:4 微米和Max frame gap: 3. 单击Next。

- 轨道过滤器面板打开。在此面板中,您可以根据轨道的属性(即长度、速度或位置)删除轨道。在这里,我们过滤掉最短的轨道以消除可能的伪影。同样,与上面的对象过滤一样,单击绿色加号以添加过滤器。单击下拉菜单并从列表中选择
Track duration。确保Above选项已勾选,并将滑块设置为 3.45。单击Next。

- 将打开一个带有轨迹可视化选项的窗口。在这里可以根据轨道或对象的属性编辑它们的颜色。我们不需要在本练习中使用它。单击
Next。 - 再次单击“下一步”。
- 您应该已到达
Select an action面板。在此面板中,可以执行不同的操作。在本练习中,我们将导出跟踪对象的标签图像。从下拉菜单中,选择Export label image,然后单击Execute。 - 在弹出窗口中,勾选
Export only spots in tracks框以消除任何未链接到轨道的对象,然后单击OK。

- 标签图像现已导出。请记住将斐济的尺寸从 T 更改回 Z Plugins › Tracking › TrackMate 并保存图像Plugins › Tracking › TrackMate。
- 可以使用 FPBioimage 以 3D 方式查看标签图像,并使用 3D ImageJ Suite 进行进一步分析。

引文
如果您使用该导轨进行研究,请引用StarDist和TrackMate论文:
doi:10.1007/978-3-030-00934-2_30
Dmitry Ershov、Joanna W. Pylvänäinen、Jean-Yves Tinevez - 2021 年 7 月