353a34ac7e7638457db3f55e57452069113d860b braney Sun Sep 6 13:34:28 2026 -0700 Add a bigNet track type, a net of alignments in a bigBed, refs #20824 Track hubs have had no way to show a real net. The usual stand-in is a net rendered as a maf, which loses the level structure that makes a net useful for establishing orthologous sequence. bigNet holds the netAlign columns in a bigBed, so a hub can carry the net itself. The format is bed6+20: the target in chrom/chromStart/chromEnd, the query sequence in name, the query strand in strand, then level and the rest of the netAlign fields. The trackDb line is type bigNet mirroring type netAlign. chainTrack is the plain trackDb name of the bigChain track in the same hub; hgc adds the hub prefix itself. chainNetLoadRangeHub() builds a chainNet from a bigBed range query and hands it to the same helpToNet() the SQL path uses, so the nesting is rebuilt the same way. netDraw picks its loader off tg->isBigBed and the drawing code below that is untouched. genericNetClick does the same for the details page and follows the named chain track for the alignment. Also bounds the level walk in helpToNet() by help->maxDepth. It could read one past the end of the levels array. netToBigNet converts a net file to bedToBigBed input. It writes the tab line itself rather than calling bigNetTabOut, because autoSql prints a double with %g and that drops digits off a chain score. diff --git src/hg/utils/netToBigNet/tests/input/hg38.mm39.test.net src/hg/utils/netToBigNet/tests/input/hg38.mm39.test.net new file mode 100644 index 00000000000..c3c2cb3dcee --- /dev/null +++ src/hg/utils/netToBigNet/tests/input/hg38.mm39.test.net @@ -0,0 +1,15 @@ +net chr22 50818468 + fill 11474667 4868 chr9 + 88449095 5007 id 23550 score 75185 ali 2697 qDup 3069 type top tN 0 qN 0 tR 854 qR 2910 tTrf 1600 qTrf 553 + gap 11474911 17 chr9 + 88449345 0 tN 0 qN 0 tR 0 qR 0 tTrf 0 qTrf 0 + gap 11475306 12 chr9 + 88449713 0 tN 0 qN 0 tR 0 qR 0 tTrf 0 qTrf 0 + gap 11475444 27 chr9 + 88449826 0 tN 0 qN 0 tR 0 qR 0 tTrf 0 qTrf 0 + gap 11475503 1646 chr9 + 88449858 782 tN 0 qN 0 tR 854 qR 502 tTrf 0 qTrf 0 + fill 11475503 1646 chr11 + 58769938 784 id 56275 score 2236 ali 115 qDup 80 type nonSyn tN 0 qN 0 tR 854 qR 40 tTrf 0 qTrf 0 + gap 11475573 1531 chr11 + 58770018 659 tN 0 qN 0 tR 854 qR 40 tTrf 0 qTrf 0 + gap 11477657 12 chr9 + 88451155 0 tN 0 qN 0 tR 0 qR 0 tTrf 0 qTrf 0 + gap 11478751 166 chr9 + 88452236 1097 tN 0 qN 0 tR 0 qR 862 tTrf 166 qTrf 0 + fill 11478751 166 chr11 - 58780620 166 id 45179 score 4743 ali 166 qDup 166 type nonSyn tN 0 qN 0 tR 0 qR 114 tTrf 166 qTrf 0 + gap 11479115 123 chr9 + 88453526 384 tN 0 qN 0 tR 0 qR 337 tTrf 123 qTrf 0 + fill 11479115 123 chr11 + 58751189 116 id 46828 score 2574 ali 115 qDup 116 type nonSyn tN 0 qN 0 tR 0 qR 0 tTrf 123 qTrf 0 + gap 11479296 99 chr9 + 88453968 0 tN 0 qN 0 tR 0 qR 0 tTrf 41 qTrf 0 + fill 11479296 99 chr11 + 58751359 113 id 46828 score 2126 ali 95 qDup 113 type nonSyn tN 0 qN 0 tR 0 qR 0 tTrf 41 qTrf 0