code: def draw_lineage(self, recs, nodecolor="mediumseagreen",
                       edgecolor="lightslateblue", dpi=96,
                       lineage_img="GO_lineage.png", engine="pygraphviz",
                       gml=False, draw_parents=True, draw_children=True):
          
          assert engine in GraphEngines
          grph = None
          if engine == "pygraphviz":
              grph = self.make_graph_pygraphviz(recs, nodecolor, edgecolor, dpi,
                                                draw_parents=draw_parents,
                                                draw_children=draw_children)
          else:
              grph = self.make_graph_pydot(recs, nodecolor, edgecolor, dpi,
                                           draw_parents=draw_parents, draw_children=draw_children)
  
          if gml:
              import networkx as nx  # use networkx to do the conversion
              gmlbase = lineage_img.rsplit(".", 1)[0]
              obj = nx.from_agraph(grph) if engine == "pygraphviz" else nx.from_pydot(grph)
  
              del obj.graph['node']
              del obj.graph['edge']
              gmlfile = gmlbase + ".gml"
              nx.write_gml(self.label_wrap, gmlfile)
              sys.stderr.write("GML graph written to {0}\n".format(gmlfile))
  
          sys.stderr.write(("lineage info for terms %s written to %s\n" %
                            ([rec.item_id for rec in recs], lineage_img)))
  
          if engine == "pygraphviz":
              grph.draw(lineage_img, prog="dot")
          else:
              grph.write_png(lineage_img)
docs: Draw GO DAG subplot.