/
FastLAPTrackerFactory.java
41 lines (31 loc) · 1.7 KB
/
FastLAPTrackerFactory.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package fiji.plugin.trackmate.tracking;
import java.util.Map;
import org.scijava.plugin.Plugin;
import fiji.plugin.trackmate.SpotCollection;
@Plugin( type = SpotTrackerFactory.class )
public class FastLAPTrackerFactory extends LAPTrackerFactory
{
public static final String TRACKER_KEY = "FAST_LAP_TRACKER";
public static final String NAME = "LAP Tracker";
public static final String INFO_TEXT = "<html>" + "This tracker is based on the Linear Assignment Problem mathematical framework. <br>" + "Its implementation is adapted from the following paper: <br>" + "<i>Robust single-particle tracking in live-cell time-lapse sequences</i> - <br>" + "Jaqaman <i> et al.</i>, 2008, Nature Methods. <br>" + "<p>" + "Tracking happens in 2 steps: First spots are linked from frame to frame to <br>" + "build track segments. These track segments are investigated in a second step <br>" + "for gap-closing (missing detection), splitting and merging events. <br> " + "<p>" + "Linking costs are proportional to the square distance between source and <br> " + "target spots, which makes this tracker suitable for Brownian motion. <br> " + "Penalties can be set to favor linking between spots that have similar <br> " + "features. " + "<p>" + "Solving the LAP relies on the Jonker-Volgenant solver, <br> " + "that solves an assignment problem in O(n^3) instead of O(n^4)." + " </html>";
@Override
public String getName()
{
return NAME;
}
@Override
public String getKey()
{
return TRACKER_KEY;
}
@Override
public String getInfoText()
{
return INFO_TEXT;
}
@Override
public SpotTracker create( final SpotCollection spots, final Map< String, Object > settings )
{
return new FastLAPTracker( spots, settings );
}
}