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) <noreply@anthropic.com>

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) + ","
+    ]))