graph_lineage.py 987 B

12345678910111213141516171819202122232425262728
  1. """Generate a lineage graph
  2. of cell divisions"""
  3. # N.B.: no positions are specified here, only connectivity!
  4. from vedo import show
  5. from vedo.pyplot import DirectedGraph
  6. # Layouts: [2d, fast2d, clustering2d, circular, circular3d, cone, force, tree]
  7. #g = Graph(layout='2d', zrange=7)
  8. g = DirectedGraph(layout='cone')
  9. #g = DirectedGraph(layout='circular3d', height=1, radius=1.5)
  10. #g = DirectedGraph(layout='force')
  11. # Vertex generation is automatic,
  12. # add a child to vertex0, so that now vertex1 exists
  13. g.add_child(0, edge_label="Mother cell")
  14. g.add_child(1); g.add_child(1)
  15. g.add_child(2); g.add_child(2); g.add_child(2)
  16. g.add_child(3); g.add_child(3, edge_label="daughter_38")
  17. g.add_child(4); g.add_child(4)
  18. for i in range(7): g.add_child(5, node_label="cell5_"+str(i))
  19. g.add_child(7); g.add_child(7); g.add_child(7)
  20. g.build() # optimize layout
  21. g[0].color('dg').lw(3) #0=graph, 1=vertexLabels, 2=edge_labels, 3=arrows
  22. g[2].color('dr')
  23. show(g, __doc__, axes=9, elevation=-40).close()