ce8eb77d36cb9df0d68cd30ca2d74195dc8f5f91 max Tue Apr 14 11:03:33 2026 -0700 adding makedoc and build script for danRer11 bacEndPairsLift track, refs #35059 Co-Authored-By: Claude Opus 4.6 (1M context) diff --git src/hg/makeDb/scripts/bacEndPairsLift/toBed12.py src/hg/makeDb/scripts/bacEndPairsLift/toBed12.py new file mode 100644 index 00000000000..43249ae02e4 --- /dev/null +++ src/hg/makeDb/scripts/bacEndPairsLift/toBed12.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +"""Convert danRer4 bacEndPairs linked-features export to BED12 for liftOver. + +Input (tab-separated): chrom chromStart chromEnd name score strand lfCount lfStarts lfSizes +Output (BED12): chrom chromStart chromEnd name score strand thickStart thickEnd itemRgb blockCount blockSizes blockStarts +""" +import sys + +for line in sys.stdin: + fields = line.rstrip("\n").split("\t") + chrom, start, end, name, score, strand = fields[0:6] + start = int(start) + end = int(end) + lfCount = int(fields[6]) + lfStarts = [int(x) for x in fields[7].rstrip(",").split(",")] + lfSizes = [int(x) for x in fields[8].rstrip(",").split(",")] + + # BED12 blockStarts are relative to chromStart + blockStarts = [s - start for s in lfStarts] + blockSizes = lfSizes + + print("\t".join([ + chrom, str(start), str(end), name, score, strand, + str(start), str(end), # thickStart, thickEnd + "0", # itemRgb + str(lfCount), + ",".join(str(s) for s in blockSizes) + ",", + ",".join(str(s) for s in blockStarts) + "," + ]))