The apparent profusion of choices should not disorient you, for it just that: an appearance. We chose to focus on the Linear Assignment Problem (LAP) in the framework first developed by Jaqaman ''et al.''<ref name="Jaqaman">[http://www.nature.com/nmeth/journal/v5/n8/full/nmeth.1237.html Jaqaman et al., "Robust single-particle tracking in live-cell time-lapse sequences", Nat Methods. 2008 Aug;5(8):695-702.]</ref>.
All the first 4 LAP trackers are based on LAP, with important differences described elsewhere. We focused on this method for it gave us a lot of flexibility and it can be configured easily to handle most cases. You can tune it to allow ''splitting events'', where a track splits in two, for instance following a cell that encounters mitosis. ''Merging events'' are handled too in the same way, though my small culture prevents me from quoting a relevant biological case obvious as the previous one. More importantly are ''gap-closing'' events, where a spot disappear for one frame (because it moves out of focus, because segmentation fails, ...) but the track manages to recuperates and connect with re-appearing spots later.
Here are the main differences between the 4 '''LAP trackers'''. The LAP framework needs internally an solver that can deal with the [http://en.wikipedia.org/wiki/Assignment_problem assignment problem]. We implemented two of these algorithms: the [http://en.wikipedia.org/wiki/Hungarian_algorithm Hungarian algorithm] which is the classical one , and a new one , based on ideas by [http://en. wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm Edmond, Karp and Tomizawa] that solves the same problem but much faster. They give the same results, so you can always use the fast ones.
Each of these algorithms exists in two flavors: a simple one and a not simple one. There are again the same, but the simple ones propose fewer configuration options and a thus more concise configuration panel. In short:
The simple ones only allow to deal with gap-closing events, and prevent splitting and merging events to be detected. Also, the costs to link two spots are computed solely based one their respective distance.
* The not simple ones allow to detect any kind of event, so if you need to build tracks that are splitting or merging, you must go for these ones. If you want to forbid the detection of gap-closing events, you want to use it as well. Also, you can alter the cost calculation to disfavor the linking of spots that have very different feature values.
There is also a 5th tracker, the [http://en.wikipedia.org/wiki/Nearest_neighbor_search ''' Nearest neighbor search''' ] tracker. This is the most simple tracker you can build, and it is mostly here for demonstration purposes. Each spot in one frame is linked to another one in the next frame, disregarding any other spot, thus achieving only a very local optimum. You can set a maximal linking distance to prevent the results to be totally pathological, but this is as far as it goes. It may be of use for very large and easy datasets: its memory consumption is very limited (at maximum only two frames need to be in memory) and is quick (the nearest neighbor search is performed using [http://en.wikipedia.org/wiki/Kd_tree Kd-trees]).
Right now, in our first trial, let us pick the '''Simple fast LAP tracker'''.