code: def excision(args):
      
      p = OptionParser(__doc__)
      opts, args = p.parse_args(args)
  
      fig = plt.figure(1, (5, 5))
      root = fig.add_axes([0, 0, 1, 1])
  
      plt.plot((.2, .8), (.6, .6), 'r-', lw=3)
      plt.plot((.4, .6), (.6, .6), 'b>-', mfc='g', mec='w', ms=12, lw=3)
      plt.plot((.3, .7), (.5, .5), 'r-', lw=3)
      plt.plot((.5, ), (.5, ), 'b>-', mfc='g', mec='w', ms=12, lw=3)
  
      # Circle excision
      plt.plot((.5, ), (.45, ), 'b>-', mfc='g', mec='w', ms=12, lw=3)
      circle = CirclePolygon((.5, .4), .05, fill=False, lw=3, ec="b")
      root.add_patch(circle)
  
      arrow_dist = .07
      ar_xpos, ar_ypos = .5, .52
      root.annotate(" ", (ar_xpos, ar_ypos),
              (ar_xpos, ar_ypos + arrow_dist),
              arrowprops=arrowprops)
  
      RoundLabel(root, .2, .64, "Gene")
      RoundLabel(root, .3, .54, "Excision")
  
      root.set_xlim(0, 1)
      root.set_ylim(0, 1)
      root.set_axis_off()
  
      figname = fname() + ".pdf"
      savefig(figname, dpi=300)
docs: %prog excision
  
      Illustrate the mechanism of illegitimate recombination.