code: def frombed(args):
      
      p = OptionParser(frombed.__doc__)
      p.add_option("--gapsize", default=100, type="int",
                   help="Insert gaps of size [default: %default]")
      opts, args = p.parse_args(args)
  
      if len(args) != 1:
          sys.exit(not p.print_help())
  
      bedfile, = args
      gapsize = opts.gapsize
      agpfile = bedfile.replace(".bed", ".agp")
      fw = open(agpfile, "w")
  
      bed = Bed(bedfile, sorted=False)
      for object, beds in groupby(bed, key=lambda x: x.accn):
          beds = list(beds)
          for i, b in enumerate(beds):
              if gapsize and i != 0:
                  print("\t".join(str(x) for x in \
                      (object, 0, 0, 0, "U", \
                       gapsize, "scaffold", "yes", "map")), file=fw)
  
              print("\t".join(str(x) for x in \
                      (object, 0, 0, 0, "W", \
                       b.seqid, b.start, b.end, b.strand)), file=fw)
  
      fw.close()
  
      # Reindex
      return reindex([agpfile, "--inplace"])
docs: %prog frombed bedfile
  
      Generate AGP file based on bed file. The bed file must have at least 6
      columns. With the 4-th column indicating the new object.