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()