87a97a7184d29e9008cc1049501b33869ee751bb
chmalee
  Fri Jun 1 08:58:49 2018 -0700
fixing KeyError in bedJoinTabOffset when there are multiple bed keys that map to one tabFile to join to, refs #18508

diff --git src/utils/bedJoinTabOffset src/utils/bedJoinTabOffset
index e95685d..b9643e7 100755
--- src/utils/bedJoinTabOffset
+++ src/utils/bedJoinTabOffset
@@ -84,30 +84,31 @@
     bedOfh = open(outBed, "wb")
 
     keyIdx = options.bedKeyField
     for line in open(inBed):
         if line=="\n":
             continue
         fields = line.rstrip("\n").split("\t")
         key = fields[keyIdx]
         offLen = keyToOffLen.get(key)
         if offLen == None:
            logging.error("bed key '%s' is not in the tab-sep file" % key)
            assert(False)
         offset, lineLen = offLen
         newLine = "%s\t%s\t%s\n" % (line.rstrip("\n"), offset, lineLen)
         bedOfh.write(newLine)
+        if key in allKeys:
             allKeys.remove(key)
 
     bedOfh.close()
     logging.info("Wrote %s" % outBed)
 
     if len(allKeys)!=0:
         logging.warn("The following keys in the tab file were not referenced in the bed file: %s" % ", ".join(allKeys))
 
 # ----------- main --------------
 def main():
     args, options = parseArgs()
     inTab, inBed, outBed = args
     bedJoinTabOffset(inTab, inBed, outBed, options)
 
 main()