code: def flanks(args):
      
      p = OptionParser(flanks.__doc__)
      p.add_option("--extend", default=2000, type="int",
                   help="Extend seq flanking the gaps [default: %default]")
      opts, args = p.parse_args(args)
  
      if len(args) != 2:
          sys.exit(not p.print_help())
  
      gapsbed, fastafile = args
      Ext = opts.extend
      sizes = Sizes(fastafile).mapping
  
      bed = Bed(gapsbed)
      pf = gapsbed.rsplit(".", 1)[0]
      extbed = pf + ".ext.bed"
      fw = open(extbed, "w")
      for i, b in enumerate(bed):
          seqid = b.seqid
          gapname = b.accn
          size = sizes[seqid]
  
          prev_b = bed[i - 1] if i > 0 else None
          next_b = bed[i + 1] if i + 1 < len(bed) else None
          if prev_b and prev_b.seqid != seqid:
              prev_b = None
          if next_b and next_b.seqid != seqid:
              next_b = None
  
          start = prev_b.end + 1 if prev_b else 1
          start, end = max(start, b.start - Ext), b.start - 1
          print("\t".join(str(x) for x in \
                               (b.seqid, start - 1, end, gapname + "L")), file=fw)
  
          end = next_b.start - 1 if next_b else size
          start, end = b.end + 1, min(end, b.end + Ext)
          print("\t".join(str(x) for x in \
                               (b.seqid, start - 1, end, gapname + "R")), file=fw)
      fw.close()
  
      extfasta = fastaFromBed(extbed, fastafile, name=True)
      return extbed, extfasta
docs: %prog flanks gaps.bed fastafile
  
      Create sequences flanking the gaps.