Success and failure cases for neighbor joining. (A–C) Successful reconstruction with neighbor joining. (A) Single cells at node 0 expand to 10 that partition binomially between 1 and 4. Each cell arriving at node 1 expands to five that partition binomially between 2 and 3. (B) Normalized covariance of barcode counts reflects the tree structure: the branching at node 1 causes a strong covariance between nodes 2 and 3. (C) Neighbor joining correctly reconstructs the original tree. (D–F) Failure case for neighbor joining. (D) The same tree structure as in A, but with different dynamics of cell division and differentiation. A cell starting at node 0 expands to 10 cells and then sends either four cells to node 1 and six cells to node 4 or six cells to node 1 and four cells to node 4 with equal probability. Each cell arriving at node 1 then sends (1, 9) or (9, 1) cells to nodes 2 and 3 again with equal probability. (B) Although nodes 2 and 3 are closer to each other in the tree than they are to node 4, they nonetheless have a lower normalized covariance with each other than each has with node 4, leading to an incorrect tree (C).