TrackMate stores the results of the detection step as spots in a [http://fiji.sc/javadoc/fiji/plugin/trackmate/SpotCollection.html SpotCollection]. The tracking results are mainly links between these spots so we needed a structure to hold them. We went for the most general one, and picked a mathematical graph.
[http[wikipedia://en.wikipedia.org/wiki/Graph_Graph (mathematics) |Mathematical graphs]] are mathematical structures that hold objects ('''vertices''') and links between them ('''edges''', we will use the two terms interchangeably). TrackMate relies specifically on a specialization: it uses an undirected, simple weighted graph.
* Undirected means that a link between A and B is the same as a link between B and A. There is no specific direction and it cannot be exploited. However, you will see that the API offers specific tools that can fake a direction. Indeed, since we deal mainly with time-lapse data, we would like to make it possible to say that we iterate a graph following the time direction.
* Simple is not related to the efforts that must be made to grasp this mathematical field, but to the fact that there can be only 1 or no link between two spots, and that we do not authorize a link going from one spots to this same spot (no loop).
On a side note, this is important if you plan to build analysis tools for TrackMate results. TrackMate philosophy is to offer managing the most general case (when it comes to linking), but your analysis tools might require special use cases.
* For instance, when you are tracking vesicles that do not fuse nor split, you just have a linear data structure (an array of objects for each particle).
* When you follow a cell lineage, you have a [http[wikipedia://en.wikipedia.org/wiki/Tree_Tree (data_structuredata structure) |rooted mathematical tree]]. * And if all cells divide in two daughters, then you have a [http[wikipedia://en.wikipedia.org/wiki/Binary_tree Binary tree|rooted binary tree]].
They all are specialization of the simple graph, and offer special tools that can be very useful. But ''TrackMate assumes none of these specializations''. It stores and manipulate a graph.
And this concludes flatly our series of tutorials on how to extend TrackMate. Go forth now, and bend it to your needs; it is ''your'' tool.
[[User:JeanYvesTinevez{{Person|JeanYvesTinevez]] }} ([[User talk:JeanYvesTinevez|talk]]) 09:26, 5 September 2014 (CDT)
[[Category:Tutorials]]