SeqTrack relies on three fundamental, yet simple observations. First, in the absence of genetic recombination, each observed isolate has one, and only one ancestor. Second, ancestors always precede their descendents in time. And third, among all possible ancestries of a given isolate, some are more likely than others, and this likelihood can be inferred from the amount of genetic differentiation between the isolates considered. The purpose of SeqTrack is to identify the most likely genealogy. Technically, this problem translates into finding the optimum branching in a directed graph, where each node is an isolate, and where a given isolate is connected to all isolates occurring strictly later.