code: def simulation(args):
      
      p = OptionParser(simulation.__doc__)
      opts, args, iopts = p.set_image_options(args, dpi=300)
  
      if len(args) != 4:
          sys.exit(not p.print_help())
  
      dataA, dataB, dataC, dataD = args
      fig = plt.figure(1, (iopts.w, iopts.h))
      root = fig.add_axes([0, 0, 1, 1])
      A = fig.add_axes([.12, .62, .35, .35])
      B = fig.add_axes([.62, .62, .35, .35])
      C = fig.add_axes([.12, .12, .35, .35])
      D = fig.add_axes([.62, .12, .35, .35])
      dataA = import_data(dataA)
      dataB = import_data(dataB)
      dataC = import_data(dataC)
      dataD = import_data(dataD)
      subplot(A, dataA, "Inversion error rate", "Accuracy", xlim=.5)
      subplot(B, dataB, "Translocation error rate", "Accuracy", xlim=.5,
                        legend=("intra-chromosomal", "inter-chromosomal",
                                "75\% intra + 25\% inter"))
      subplot(C, dataC, "Number of input maps", "Accuracy", xcast=int)
      subplot(D, dataD, "Number of input maps", "Accuracy", xcast=int)
  
      labels = ((.03, .97, "A"), (.53, .97, "B"),
                (.03, .47, "C"), (.53, .47, "D"))
      panel_labels(root, labels)
  
      normalize_axes(root)
      image_name = "simulation." + iopts.format
      savefig(image_name, dpi=iopts.dpi, iopts=iopts)
docs: %prog simulation inversion.txt translocation.txt maps.txt multimaps.txt
  
      Plot ALLMAPS accuracy across a range of simulated datasets.