@jbrowse/bandage-core 10.2.7 → 10.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/alleleProjection/projectAlleles.js +8 -4
  2. package/dist/anchoredNodes.js +2 -1
  3. package/dist/bubbleSpreads.js +2 -2
  4. package/dist/bubbles/bubbleHalos.js +10 -11
  5. package/dist/bubbles/bubblesFromGraph.js +8 -3
  6. package/dist/bubbles/classifyBubble.js +9 -6
  7. package/dist/bubbles/popBubble.js +7 -5
  8. package/dist/bubbles/superbubbles.js +18 -14
  9. package/dist/chunks/{chunk-RAKOB6IV.js → chunk-234NFZS4.js} +8 -6
  10. package/dist/chunks/{chunk-ABUIN5AK.js → chunk-2Q22S52W.js} +29 -24
  11. package/dist/chunks/{chunk-6JEWNXCQ.js → chunk-34BOZKIE.js} +0 -2
  12. package/dist/chunks/{chunk-RVS2QCOX.js → chunk-3GLG3ZLE.js} +2 -11
  13. package/dist/chunks/{chunk-3XSM4OZU.js → chunk-3GP3KT5L.js} +5 -5
  14. package/dist/chunks/{chunk-PUG7LXDF.js → chunk-3PZSBNLI.js} +4 -1
  15. package/dist/chunks/{chunk-JLSJMCDJ.js → chunk-3UST3ZQE.js} +3 -3
  16. package/dist/chunks/{chunk-KBEP7VYK.js → chunk-3VCKBSML.js} +4 -4
  17. package/dist/chunks/{chunk-BPLIXMH7.js → chunk-4XWZNPQ2.js} +14 -0
  18. package/dist/chunks/{chunk-4DRQTBBE.js → chunk-6EOB6ANX.js} +1 -1
  19. package/dist/chunks/{chunk-L2HDM2R3.js → chunk-A2TJ5UX6.js} +7 -7
  20. package/dist/chunks/{chunk-URZ3CH2R.js → chunk-A4JDEUAI.js} +1 -1
  21. package/dist/chunks/{chunk-CWFNEKST.js → chunk-A7H753BA.js} +3 -3
  22. package/dist/chunks/{chunk-CG35S2S2.js → chunk-AQCOIE5R.js} +1 -1
  23. package/dist/chunks/{chunk-TKIJ5535.js → chunk-AZ4EEF6Q.js} +6 -6
  24. package/dist/chunks/{chunk-M6LK4GII.js → chunk-B5X2RLJG.js} +17 -10
  25. package/dist/chunks/{chunk-A7CFWFQS.js → chunk-BKEZLETL.js} +1 -1
  26. package/dist/chunks/{chunk-RPRHR56C.js → chunk-BS6HPYCZ.js} +3 -3
  27. package/dist/chunks/chunk-BSOZW3FC.js +30 -0
  28. package/dist/chunks/{chunk-XXT2JCAC.js → chunk-BX4AUMZE.js} +11 -13
  29. package/dist/chunks/{chunk-N73TI3VG.js → chunk-BZFOFC4D.js} +6 -9
  30. package/dist/chunks/{chunk-4ETPXDO6.js → chunk-CGFPFBT2.js} +1 -1
  31. package/dist/chunks/{chunk-24WITXQY.js → chunk-CGMSKIEO.js} +9 -25
  32. package/dist/chunks/{chunk-VV6KGJ7M.js → chunk-CHNESV7L.js} +18 -27
  33. package/dist/chunks/{chunk-IGVV37VI.js → chunk-CKUVEHSS.js} +3 -3
  34. package/dist/chunks/{chunk-JBCZIBFC.js → chunk-CRCD3ODN.js} +0 -1
  35. package/dist/chunks/{chunk-AUFAPUO4.js → chunk-D7WIYPG3.js} +3 -1
  36. package/dist/chunks/{chunk-OIV2GBAJ.js → chunk-DBLV7PGG.js} +27 -17
  37. package/dist/chunks/{chunk-VQC7KELB.js → chunk-DO62DG26.js} +11 -3
  38. package/dist/chunks/{chunk-JA2HJIYS.js → chunk-E4ZM4OOJ.js} +3 -5
  39. package/dist/chunks/{chunk-QLWI2PZ3.js → chunk-EJRJAAN7.js} +24 -21
  40. package/dist/chunks/{chunk-QBHPHLAQ.js → chunk-EWLXU3UG.js} +41 -36
  41. package/dist/chunks/{chunk-XI3ZUTWF.js → chunk-FW2R7UDZ.js} +14 -20
  42. package/dist/chunks/{chunk-Q7LYHGGQ.js → chunk-GIHTHYXY.js} +5 -4
  43. package/dist/chunks/{chunk-L3O7AWLI.js → chunk-GJLZ2MKE.js} +2 -2
  44. package/dist/chunks/{chunk-LOEA5IHZ.js → chunk-GJU6BJJA.js} +8 -8
  45. package/dist/chunks/{chunk-XL472HHD.js → chunk-GQZVR5DW.js} +12 -7
  46. package/dist/chunks/{chunk-UVBGRJQX.js → chunk-HKYXWZQS.js} +1 -1
  47. package/dist/chunks/chunk-HMXCN6PG.js +17 -0
  48. package/dist/chunks/{chunk-WSIFAZU7.js → chunk-HNWJ4B7S.js} +12 -13
  49. package/dist/chunks/chunk-HOAIOEI7.js +18 -0
  50. package/dist/chunks/{chunk-XMW266WS.js → chunk-HSVFCA2J.js} +18 -20
  51. package/dist/chunks/{chunk-QXUEF3AJ.js → chunk-KMBE2Q42.js} +22 -17
  52. package/dist/chunks/{chunk-VQWHMWLF.js → chunk-M5NPD55W.js} +18 -14
  53. package/dist/chunks/chunk-MWOVW4AH.js +327 -0
  54. package/dist/chunks/{chunk-HK5Y2YWV.js → chunk-MYDHU2UV.js} +6 -11
  55. package/dist/chunks/{chunk-TZFWUT2C.js → chunk-MYLAJDKB.js} +2 -2
  56. package/dist/chunks/{chunk-AR4BUBMU.js → chunk-NZTYV3JL.js} +34 -35
  57. package/dist/chunks/{chunk-4HWM3FNK.js → chunk-OMUPUB4J.js} +39 -56
  58. package/dist/chunks/{chunk-LKW2TP4N.js → chunk-OOIOX36I.js} +18 -16
  59. package/dist/chunks/{chunk-EQ2NIFRH.js → chunk-OXRUPNSV.js} +1 -1
  60. package/dist/chunks/{chunk-PTABFYQ7.js → chunk-PFRQBCGC.js} +49 -60
  61. package/dist/chunks/{chunk-T6V4KI2L.js → chunk-PNMJFFNB.js} +1 -1
  62. package/dist/chunks/{chunk-KC7T5RWG.js → chunk-PSCSZSVK.js} +9 -16
  63. package/dist/chunks/{chunk-23YFB5BB.js → chunk-QH2MIXBA.js} +29 -13
  64. package/dist/chunks/{chunk-5GMFEPWR.js → chunk-R2PJKD3Y.js} +16 -28
  65. package/dist/chunks/{chunk-CQHUZHET.js → chunk-RFG42VIO.js} +46 -30
  66. package/dist/chunks/{chunk-FYQWPEEY.js → chunk-RJWPJCIB.js} +5 -11
  67. package/dist/chunks/{chunk-WBSWROE6.js → chunk-SFP3E4RI.js} +14 -18
  68. package/dist/chunks/{chunk-2CMYNW3E.js → chunk-SI3BB4DO.js} +1 -1
  69. package/dist/chunks/{chunk-DY3JCAMX.js → chunk-SOMZGDVS.js} +7 -16
  70. package/dist/chunks/{chunk-A4PFFC4Q.js → chunk-SWCULW6S.js} +60 -102
  71. package/dist/chunks/{chunk-XV4P5KEQ.js → chunk-TGUFT6KK.js} +6 -3
  72. package/dist/chunks/{chunk-CM6LO6OC.js → chunk-UAFATXYA.js} +10 -14
  73. package/dist/chunks/{chunk-7SRWJLSC.js → chunk-UBQSRCWR.js} +11 -8
  74. package/dist/chunks/{chunk-RUCH6ZFL.js → chunk-V4YML3GR.js} +2 -1
  75. package/dist/chunks/{chunk-ES2N6V56.js → chunk-VX656OAZ.js} +6 -11
  76. package/dist/chunks/chunk-WA5WNP6V.js +37 -0
  77. package/dist/chunks/{chunk-B6IW3IRE.js → chunk-WYJQIC75.js} +14 -15
  78. package/dist/chunks/{chunk-T2PCSAFY.js → chunk-XVS52NMZ.js} +2 -2
  79. package/dist/chunks/{chunk-CU6P5RUG.js → chunk-YZQI35UJ.js} +22 -16
  80. package/dist/chunks/{chunk-G45YY72K.js → chunk-Z6XZWPXK.js} +17 -25
  81. package/dist/chunks/{chunk-EFQLEGWM.js → chunk-ZJBOM73S.js} +7 -8
  82. package/dist/chunks/{chunk-RAEABQNW.js → chunk-ZPZ7GNBT.js} +1 -0
  83. package/dist/cli/figure.js +59 -56
  84. package/dist/cli/fold.js +19 -17
  85. package/dist/deletionEdges.js +5 -7
  86. package/dist/facetGrid.js +2 -1
  87. package/dist/figure.js +45 -42
  88. package/dist/figureData.js +48 -44
  89. package/dist/figureScene.js +34 -29
  90. package/dist/figureSettings.js +19 -17
  91. package/dist/foldVariants.js +5 -3
  92. package/dist/gbzCut.js +12 -7
  93. package/dist/gbzJoin.js +2 -1
  94. package/dist/gbzWindow.js +11 -6
  95. package/dist/genes/genePins.js +6 -4
  96. package/dist/gfa/gfaConverter.js +7 -5
  97. package/dist/gfa/gfaTables.js +2 -1
  98. package/dist/gfa/graphTables.js +3 -3
  99. package/dist/graphLabels.js +8 -5
  100. package/dist/index.js +88 -85
  101. package/dist/labelLayout.js +12 -9
  102. package/dist/layout/anchoredLayout.js +8 -5
  103. package/dist/layout/drawnScale.js +1 -5
  104. package/dist/layout/forceCache.js +19 -17
  105. package/dist/layout/mergeRuns.js +5 -3
  106. package/dist/layout/orderedLayout.js +5 -2
  107. package/dist/layout/orientToReference.js +3 -2
  108. package/dist/layout/placeOffReference.js +7 -4
  109. package/dist/layout/referenceSeeds.js +6 -4
  110. package/dist/layout/sampleRowLayout.js +8 -5
  111. package/dist/layout/trimToWindow.js +6 -4
  112. package/dist/layout/tubeMapLayout.js +17 -19
  113. package/dist/layout/walkRowDraw.js +18 -17
  114. package/dist/layout/walkRowLayout.js +10 -6
  115. package/dist/layout/walkRows.js +9 -5
  116. package/dist/layout/walkStrip.js +21 -18
  117. package/dist/layoutModes.js +23 -20
  118. package/dist/nodeWidths.js +1 -3
  119. package/dist/pansn.js +5 -1
  120. package/dist/pathAnchoring.js +6 -4
  121. package/dist/pathColors.js +12 -9
  122. package/dist/pathVisits.js +3 -1
  123. package/dist/pipeline.js +18 -16
  124. package/dist/reference.js +5 -3
  125. package/dist/referenceRampCss.js +9 -17
  126. package/dist/referenceSpan.js +4 -2
  127. package/dist/referenceStrip.js +18 -14
  128. package/dist/renderer/Canvas2DRenderer.js +1 -1
  129. package/dist/renderer/GeometryBuilder.js +19 -14
  130. package/dist/renderer/svgCanvas.js +1 -1
  131. package/dist/tubeMap/axis.js +11 -6
  132. package/dist/tubeMap/bundle.js +16 -12
  133. package/dist/tubeMap/coarsen.js +20 -345
  134. package/dist/tubeMap/deviations.js +53 -23
  135. package/dist/tubeMap/draw.js +11 -8
  136. package/dist/tubeMap/frame.js +3 -2
  137. package/dist/tubeMap/genes.js +10 -7
  138. package/dist/tubeMap/mismatches.js +1 -1
  139. package/dist/tubeMap/nodeColors.js +18 -14
  140. package/dist/tubeMap/reads.js +1 -1
  141. package/dist/tubeMap/warp.js +2 -1
  142. package/dist/types/alleleProjection/projectAlleles.d.ts +1 -4
  143. package/dist/types/bubbles/bubbleHalos.d.ts +0 -2
  144. package/dist/types/bubbles/bubblesFromGraph.d.ts +6 -4
  145. package/dist/types/bubbles/classifyBubble.d.ts +2 -1
  146. package/dist/types/deletionEdges.d.ts +0 -8
  147. package/dist/types/figureScene.d.ts +17 -7
  148. package/dist/types/figureSettings.d.ts +2 -0
  149. package/dist/types/gbzCut.d.ts +4 -0
  150. package/dist/types/gbzWindow.d.ts +1 -0
  151. package/dist/types/gfa-core/gfaParser.d.ts +1 -1
  152. package/dist/types/graphLabels.d.ts +2 -1
  153. package/dist/types/layout/drawnScale.d.ts +0 -2
  154. package/dist/types/layout/referenceSeeds.d.ts +2 -1
  155. package/dist/types/layout/tubeMapLayout.d.ts +0 -7
  156. package/dist/types/layout/walkRowDraw.d.ts +0 -1
  157. package/dist/types/layout/walkRowLayout.d.ts +1 -0
  158. package/dist/types/layout/walkRows.d.ts +1 -0
  159. package/dist/types/nodeWidths.d.ts +0 -1
  160. package/dist/types/pansn.d.ts +9 -0
  161. package/dist/types/pathVisits.d.ts +6 -0
  162. package/dist/types/referenceRampCss.d.ts +4 -0
  163. package/dist/types/renderer/Canvas2DRenderer.d.ts +1 -0
  164. package/dist/types/renderer/GeometryBuilder.d.ts +3 -2
  165. package/dist/types/tubeMap/axis.d.ts +3 -1
  166. package/dist/types/tubeMap/coarsen.d.ts +3 -1
  167. package/dist/types/tubeMap/deviations.d.ts +2 -1
  168. package/dist/types/tubeMap/mismatches.d.ts +0 -1
  169. package/dist/types/tubeMap/warp.d.ts +2 -1
  170. package/dist/types/util/SpatialIndex.d.ts +1 -1
  171. package/dist/types/util/geometry.d.ts +4 -0
  172. package/dist/types/util/groups.d.ts +3 -0
  173. package/dist/types/util/hitDetection.d.ts +2 -2
  174. package/dist/types/util/partitionPoint.d.ts +1 -0
  175. package/dist/types/util/weakMemo.d.ts +1 -0
  176. package/dist/types/version.d.ts +1 -1
  177. package/dist/util/SpatialIndex.js +8 -5
  178. package/dist/util/edgeCurves.js +7 -4
  179. package/dist/util/geometry.js +3 -1
  180. package/dist/util/groups.js +10 -0
  181. package/dist/util/hitDetection.js +9 -6
  182. package/dist/util/partitionPoint.js +6 -0
  183. package/dist/util/weakMemo.js +6 -0
  184. package/dist/version.js +1 -1
  185. package/dist/viewport.js +19 -17
  186. package/dist/walkEncoding.js +18 -14
  187. package/dist/walkHighlight.js +19 -15
  188. package/dist/walkKey.js +9 -6
  189. package/package.json +2 -2
  190. package/dist/chunks/chunk-ZY2AFL4Y.js +0 -43
@@ -1,15 +1,21 @@
1
1
  import {
2
2
  tubeMapMismatches
3
- } from "./chunk-XXT2JCAC.js";
3
+ } from "./chunk-BX4AUMZE.js";
4
4
  import {
5
5
  MAX_GAP_PX
6
- } from "./chunk-HK5Y2YWV.js";
6
+ } from "./chunk-MYDHU2UV.js";
7
7
  import {
8
8
  readColor
9
- } from "./chunk-CWFNEKST.js";
9
+ } from "./chunk-A7H753BA.js";
10
+ import {
11
+ referenceWalkName
12
+ } from "./chunk-OOIOX36I.js";
10
13
  import {
11
14
  pathOrigin
12
- } from "./chunk-M6LK4GII.js";
15
+ } from "./chunk-B5X2RLJG.js";
16
+ import {
17
+ pushTo
18
+ } from "./chunk-BSOZW3FC.js";
13
19
 
14
20
  // src/tubeMap/draw.ts
15
21
  import { curvePaths, flattenPath, nodeOutlinePath } from "@jbrowse/tubemap-core";
@@ -102,8 +108,9 @@ function layerOf(layout, type, colors, referenceIds, gapWidth) {
102
108
  }
103
109
  function referenceTrackIds(graph) {
104
110
  const ids = /* @__PURE__ */ new Set();
111
+ const name = graph && referenceWalkName(graph);
105
112
  graph?.paths?.forEach((path, i) => {
106
- if (pathOrigin(path.name).name === graph.referencePath) {
113
+ if (pathOrigin(path.name).name === name) {
107
114
  ids.add(i);
108
115
  }
109
116
  });
@@ -132,9 +139,7 @@ function tubeMapPicture({
132
139
  layerOf(layout, "read", colors, referenceIds, gapWidth)
133
140
  ],
134
141
  nodes,
135
- mismatches: tubeMapMismatches(layout).filter(
136
- (m) => m.kind !== "insertion" || !m.softClip
137
- )
142
+ mismatches: tubeMapMismatches(layout)
138
143
  };
139
144
  }
140
145
  function trace(ctx, commands, x, y) {
@@ -180,13 +185,7 @@ function fillByColor(ctx, items, visible, colorOf, addTo) {
180
185
  const byColor = /* @__PURE__ */ new Map();
181
186
  for (const item of items) {
182
187
  if (visible(item)) {
183
- const color = colorOf(item);
184
- const list = byColor.get(color);
185
- if (list) {
186
- list.push(item);
187
- } else {
188
- byColor.set(color, [item]);
189
- }
188
+ pushTo(byColor, colorOf(item), item);
190
189
  }
191
190
  }
192
191
  for (const list of byColor.values()) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeColorSchemeRange,
3
3
  getNodeColor
4
- } from "./chunk-A4PFFC4Q.js";
4
+ } from "./chunk-SWCULW6S.js";
5
5
  import {
6
6
  abgrToCssRgba
7
7
  } from "./chunk-G2FD7S3C.js";
@@ -11,7 +11,7 @@ function tubeMapNodeColors(graph, colorScheme, referenceRamp) {
11
11
  if (colorScheme === "uniform" || colorScheme === "grey") {
12
12
  return void 0;
13
13
  }
14
- const range = { ...computeColorSchemeRange(graph), referenceRamp };
14
+ const range = computeColorSchemeRange(graph, referenceRamp);
15
15
  return new Map(
16
16
  graph.nodes.map((node, index) => [
17
17
  node.id,
@@ -1,30 +1,36 @@
1
1
  import {
2
2
  encodedColor,
3
3
  resolveEncoding
4
- } from "./chunk-VQC7KELB.js";
4
+ } from "./chunk-DO62DG26.js";
5
5
  import {
6
6
  pathOrigin
7
- } from "./chunk-M6LK4GII.js";
7
+ } from "./chunk-B5X2RLJG.js";
8
8
  import {
9
9
  panSNContig
10
- } from "./chunk-BPLIXMH7.js";
10
+ } from "./chunk-4XWZNPQ2.js";
11
11
 
12
12
  // src/walkHighlight.ts
13
13
  var isReference = (graph, name) => !!graph.referencePath && pathOrigin(name).name === graph.referencePath;
14
14
  function piecesOf(graph, name) {
15
15
  return (graph.paths ?? []).filter((p) => p.name === name).sort((a, b) => (a.start ?? 0) - (b.start ?? 0));
16
16
  }
17
+ var nodesById = (graph) => new Map(graph.nodes.map((n) => [n.id, n]));
18
+ function graphIndex(graph) {
19
+ const edgeAt = /* @__PURE__ */ new Map();
20
+ graph.edges.forEach((e, i) => {
21
+ edgeAt.set(`${e.from}>${e.to}`, i);
22
+ });
23
+ return { byId: nodesById(graph), edgeAt };
24
+ }
17
25
  function walkHighlight(graph, name) {
26
+ return highlightOf(graph, name, graphIndex(graph));
27
+ }
28
+ function highlightOf(graph, name, { byId, edgeAt }) {
18
29
  const pieces = piecesOf(graph, name);
19
30
  const first = pieces[0];
20
31
  if (!first) {
21
32
  return void 0;
22
33
  }
23
- const byId = new Map(graph.nodes.map((n) => [n.id, n]));
24
- const edgeAt = /* @__PURE__ */ new Map();
25
- graph.edges.forEach((e, i) => {
26
- edgeAt.set(`${e.from}>${e.to}`, i);
27
- });
28
34
  const lengthOf = (id) => byId.get(id)?.length ?? 0;
29
35
  const bpOf = (path) => path.nodeIds.reduce((sum, id) => sum + lengthOf(id), 0);
30
36
  const bp = pieces.reduce((sum, piece) => sum + bpOf(piece), 0);
@@ -83,8 +89,7 @@ function walkHighlight(graph, name) {
83
89
  referenceBp: referenceSpan()
84
90
  };
85
91
  }
86
- function laneColors(graph, walk, encoding, ramp) {
87
- const byId = new Map(graph.nodes.map((n) => [n.id, n]));
92
+ function laneColors(byId, walk, encoding, ramp) {
88
93
  const colors = /* @__PURE__ */ new Map();
89
94
  for (const [id, progress] of walk.progress) {
90
95
  const node = byId.get(id);
@@ -94,7 +99,7 @@ function laneColors(graph, walk, encoding, ramp) {
94
99
  }
95
100
  return colors;
96
101
  }
97
- function reversedNodes(graph, walk) {
102
+ function reversedNodes(graph, byId, walk) {
98
103
  const reversed = /* @__PURE__ */ new Set();
99
104
  let bp = 0;
100
105
  const referencePath = graph.referencePath;
@@ -107,7 +112,6 @@ function reversedNodes(graph, walk) {
107
112
  }
108
113
  const own = visits.pathIndex(pathOrigin(walk.name).name);
109
114
  const theirs = visits.pathIndex(referencePath);
110
- const byId = new Map(graph.nodes.map((n) => [n.id, n]));
111
115
  for (const id of walk.progress.keys()) {
112
116
  const node = byId.get(id);
113
117
  const slot = node ? visits.slot(node.name) : -1;
@@ -121,9 +125,10 @@ function reversedNodes(graph, walk) {
121
125
  return { reversed, bp };
122
126
  }
123
127
  function walkLift(graph, layers, ramp) {
128
+ const index = graphIndex(graph);
124
129
  const seen = /* @__PURE__ */ new Set();
125
130
  const lifted = layers.filter((layer) => !seen.has(layer.walk) && seen.add(layer.walk)).flatMap((layer) => {
126
- const walk = walkHighlight(graph, layer.walk);
131
+ const walk = highlightOf(graph, layer.walk, index);
127
132
  return walk ? [{ walk, layer }] : [];
128
133
  }).sort((a, b) => Number(b.walk.reference) - Number(a.walk.reference));
129
134
  if (lifted.length === 0) {
@@ -137,11 +142,11 @@ function walkLift(graph, layers, ramp) {
137
142
  walk.reference ? 0 : picked++,
138
143
  lifted.length === 1
139
144
  );
140
- const { reversed, bp } = reversedNodes(graph, walk);
145
+ const { reversed, bp } = reversedNodes(graph, index.byId, walk);
141
146
  return {
142
147
  ...walk,
143
148
  encoding,
144
- colors: laneColors(graph, walk, encoding, ramp),
149
+ colors: laneColors(index.byId, walk, encoding, ramp),
145
150
  reversed,
146
151
  reversedBp: bp
147
152
  };
@@ -150,6 +155,7 @@ function walkLift(graph, layers, ramp) {
150
155
  }
151
156
  var FACET_COLOR = { field: "progress", scheme: "red" };
152
157
  function facetLifts(graph, lift, layers, ramp) {
158
+ const byId = nodesById(graph);
153
159
  return lift.walks.map((walk) => {
154
160
  const stated = layers.find((l) => l.walk === walk.name)?.color;
155
161
  const encoding = resolveEncoding(
@@ -162,7 +168,7 @@ function facetLifts(graph, lift, layers, ramp) {
162
168
  {
163
169
  ...walk,
164
170
  encoding,
165
- colors: laneColors(graph, walk, encoding, ramp)
171
+ colors: laneColors(byId, walk, encoding, ramp)
166
172
  }
167
173
  ],
168
174
  ramp
@@ -1,3 +1,7 @@
1
+ import {
2
+ Column
3
+ } from "./chunk-ZPZ7GNBT.js";
4
+
1
5
  // src/gfa/gfaTables.ts
2
6
  var GT = 62;
3
7
  var LT = 60;
@@ -7,25 +11,12 @@ var NINE = 57;
7
11
  var TABLE_TAG = /^(?:LN:i|SN:Z|SO:i|SR:i):/;
8
12
  var UNTABLED_RECORD = /^[PEOUFG]\t/;
9
13
  var trimCR = (line) => line.endsWith("\r") ? line.slice(0, -1) : line;
10
- var Steps = class {
11
- constructor() {
12
- this.nodes = new Int32Array(1 << 16);
13
- this.reversed = new Uint8Array(1 << 16);
14
- this.length = 0;
15
- }
16
- push(node, reversed) {
17
- if (this.length === this.nodes.length) {
18
- const nodes = new Int32Array(this.length * 2);
19
- nodes.set(this.nodes);
20
- this.nodes = nodes;
21
- const rev = new Uint8Array(this.length * 2);
22
- rev.set(this.reversed);
23
- this.reversed = rev;
24
- }
25
- this.nodes[this.length] = node;
26
- this.reversed[this.length++] = reversed;
27
- }
28
- };
14
+ function stepColumns() {
15
+ return {
16
+ nodes: new Column(new Int32Array(1 << 16)),
17
+ reversed: new Column(new Uint8Array(1 << 16))
18
+ };
19
+ }
29
20
  var SegmentIndex = class {
30
21
  constructor() {
31
22
  this.names = [];
@@ -90,7 +81,8 @@ function readWalkBody(line, from, segments, steps) {
90
81
  const finish = (end) => {
91
82
  if (start >= 0 && end > start) {
92
83
  const node = decimal && end - start < 16 && (end - start === 1 || line.charCodeAt(start) !== ZERO) ? segments.ofNumber(value) : void 0;
93
- steps.push(node ?? segments.of(line.slice(start, end)), reversed);
84
+ steps.nodes.push(node ?? segments.of(line.slice(start, end)));
85
+ steps.reversed.push(reversed);
94
86
  }
95
87
  };
96
88
  let i = from;
@@ -166,7 +158,7 @@ function gfaTables(text) {
166
158
  const walkStarts = [];
167
159
  const walkEnds = [];
168
160
  const offsets = [0];
169
- const steps = new Steps();
161
+ const steps = stepColumns();
170
162
  for (const raw of lines) {
171
163
  if (raw.startsWith("L ")) {
172
164
  const [, source, strand1, target, strand2] = trimCR(raw).split(" ");
@@ -183,10 +175,10 @@ function gfaTables(text) {
183
175
  walkStarts.push(w.start === "*" ? 0 : +w.start);
184
176
  walkEnds.push(w.end === "*" ? -1 : +w.end);
185
177
  readWalkBody(line, w.body, segments, steps);
186
- if (steps.length === offsets.at(-1)) {
178
+ if (steps.nodes.length === offsets.at(-1)) {
187
179
  return void 0;
188
180
  }
189
- offsets.push(steps.length);
181
+ offsets.push(steps.nodes.length);
190
182
  }
191
183
  }
192
184
  }
@@ -209,8 +201,8 @@ function gfaTables(text) {
209
201
  starts: Float64Array.from(walkStarts),
210
202
  ends: Float64Array.from(walkEnds),
211
203
  offsets: Int32Array.from(offsets),
212
- steps: steps.nodes.slice(0, steps.length),
213
- reversed: steps.reversed.slice(0, steps.length)
204
+ steps: steps.nodes.data.slice(0, steps.nodes.length),
205
+ reversed: steps.reversed.data.slice(0, steps.reversed.length)
214
206
  }
215
207
  };
216
208
  }
@@ -1,15 +1,15 @@
1
- import {
2
- RAMP_GRADIENT_CSS,
3
- RAMP_GRADIENT_STOPS,
4
- rampHueCss,
5
- rampStops
6
- } from "./chunk-XL472HHD.js";
7
1
  import {
8
2
  el
9
3
  } from "./chunk-H2H4Y3TV.js";
10
4
  import {
11
5
  REFERENCE_RAMP_ALT_CSS
12
- } from "./chunk-A4PFFC4Q.js";
6
+ } from "./chunk-SWCULW6S.js";
7
+ import {
8
+ RAMP_GRADIENT_CSS,
9
+ RAMP_GRADIENT_STOPS,
10
+ rampHueCss,
11
+ rampStops
12
+ } from "./chunk-GQZVR5DW.js";
13
13
  import {
14
14
  LABEL_CHAR_PX
15
15
  } from "./chunk-AB35TJST.js";
@@ -490,7 +490,6 @@ export {
490
490
  BAR_PX,
491
491
  GAP_PX,
492
492
  LABELLED_ROW_PX,
493
- kb,
494
493
  walkRowReadout,
495
494
  readoutPlacement,
496
495
  unitTicks,
@@ -223,5 +223,6 @@ var PathVisitsBuilder = class {
223
223
 
224
224
  export {
225
225
  PathVisits,
226
+ Column,
226
227
  PathVisitsBuilder
227
228
  };
@@ -7,98 +7,101 @@ import {
7
7
  } from "../chunks/chunk-G6UIYQZR.js";
8
8
  import {
9
9
  figureSvg
10
- } from "../chunks/chunk-QBHPHLAQ.js";
11
- import "../chunks/chunk-RUCH6ZFL.js";
12
- import "../chunks/chunk-WBSWROE6.js";
10
+ } from "../chunks/chunk-EWLXU3UG.js";
11
+ import "../chunks/chunk-V4YML3GR.js";
12
+ import "../chunks/chunk-SFP3E4RI.js";
13
13
  import {
14
14
  genesOnRow,
15
15
  placeRowGenes
16
- } from "../chunks/chunk-EFQLEGWM.js";
17
- import "../chunks/chunk-QLWI2PZ3.js";
16
+ } from "../chunks/chunk-ZJBOM73S.js";
17
+ import "../chunks/chunk-EJRJAAN7.js";
18
18
  import "../chunks/chunk-RBCE2OQH.js";
19
19
  import "../chunks/chunk-JSUCGZ6K.js";
20
- import "../chunks/chunk-RPRHR56C.js";
21
- import "../chunks/chunk-XL472HHD.js";
22
- import "../chunks/chunk-KC7T5RWG.js";
23
- import "../chunks/chunk-4HWM3FNK.js";
24
- import "../chunks/chunk-KBEP7VYK.js";
20
+ import "../chunks/chunk-BS6HPYCZ.js";
21
+ import "../chunks/chunk-PSCSZSVK.js";
22
+ import "../chunks/chunk-OMUPUB4J.js";
23
+ import "../chunks/chunk-3VCKBSML.js";
25
24
  import "../chunks/chunk-H2H4Y3TV.js";
26
25
  import {
27
26
  laidOutGraph,
28
27
  walkLayers
29
- } from "../chunks/chunk-VV6KGJ7M.js";
28
+ } from "../chunks/chunk-CHNESV7L.js";
30
29
  import {
31
30
  LAYOUT_ENGINE_VALUES,
32
31
  isLayoutEngineKind
33
32
  } from "../chunks/chunk-JMABOQWL.js";
34
33
  import {
35
34
  LAYOUT_MODES
36
- } from "../chunks/chunk-TKIJ5535.js";
37
- import "../chunks/chunk-LOEA5IHZ.js";
38
- import "../chunks/chunk-XI3ZUTWF.js";
39
- import "../chunks/chunk-CWFNEKST.js";
40
- import "../chunks/chunk-L3O7AWLI.js";
41
- import "../chunks/chunk-TZFWUT2C.js";
35
+ } from "../chunks/chunk-AZ4EEF6Q.js";
36
+ import "../chunks/chunk-GJU6BJJA.js";
37
+ import "../chunks/chunk-FW2R7UDZ.js";
38
+ import "../chunks/chunk-A7H753BA.js";
39
+ import "../chunks/chunk-GJLZ2MKE.js";
40
+ import "../chunks/chunk-MYLAJDKB.js";
42
41
  import "../chunks/chunk-C44YRP5F.js";
43
- import "../chunks/chunk-CM6LO6OC.js";
44
- import "../chunks/chunk-RVS2QCOX.js";
42
+ import "../chunks/chunk-UAFATXYA.js";
43
+ import "../chunks/chunk-3GLG3ZLE.js";
45
44
  import {
46
- HPRC_GBZ,
47
45
  cutGbzRegion,
46
+ gbzLocations,
48
47
  haplotypeIndexBeside,
49
48
  openGbz,
50
49
  parseRegion
51
- } from "../chunks/chunk-VQWHMWLF.js";
52
- import "../chunks/chunk-Q7LYHGGQ.js";
53
- import "../chunks/chunk-WSIFAZU7.js";
54
- import "../chunks/chunk-CG35S2S2.js";
55
- import "../chunks/chunk-A7CFWFQS.js";
56
- import "../chunks/chunk-4ETPXDO6.js";
57
- import "../chunks/chunk-23YFB5BB.js";
50
+ } from "../chunks/chunk-M5NPD55W.js";
51
+ import "../chunks/chunk-GIHTHYXY.js";
52
+ import "../chunks/chunk-HNWJ4B7S.js";
53
+ import "../chunks/chunk-AQCOIE5R.js";
54
+ import "../chunks/chunk-BKEZLETL.js";
55
+ import "../chunks/chunk-QH2MIXBA.js";
58
56
  import "../chunks/chunk-LOCJN3BZ.js";
59
- import "../chunks/chunk-CU6P5RUG.js";
60
- import "../chunks/chunk-VQC7KELB.js";
61
- import "../chunks/chunk-A4PFFC4Q.js";
57
+ import "../chunks/chunk-YZQI35UJ.js";
58
+ import "../chunks/chunk-DO62DG26.js";
59
+ import "../chunks/chunk-CGFPFBT2.js";
60
+ import "../chunks/chunk-SWCULW6S.js";
62
61
  import "../chunks/chunk-G2FD7S3C.js";
63
- import "../chunks/chunk-ZY2AFL4Y.js";
64
- import "../chunks/chunk-L2HDM2R3.js";
62
+ import "../chunks/chunk-GQZVR5DW.js";
63
+ import "../chunks/chunk-WA5WNP6V.js";
64
+ import "../chunks/chunk-A2TJ5UX6.js";
65
65
  import {
66
66
  filterSamples,
67
67
  walkRows
68
- } from "../chunks/chunk-LKW2TP4N.js";
69
- import "../chunks/chunk-3XSM4OZU.js";
70
- import "../chunks/chunk-JBCZIBFC.js";
71
- import "../chunks/chunk-AUFAPUO4.js";
72
- import "../chunks/chunk-QXUEF3AJ.js";
73
- import "../chunks/chunk-PUG7LXDF.js";
74
- import "../chunks/chunk-IGVV37VI.js";
68
+ } from "../chunks/chunk-OOIOX36I.js";
69
+ import "../chunks/chunk-3GP3KT5L.js";
70
+ import "../chunks/chunk-CRCD3ODN.js";
71
+ import "../chunks/chunk-D7WIYPG3.js";
72
+ import "../chunks/chunk-KMBE2Q42.js";
73
+ import "../chunks/chunk-3PZSBNLI.js";
74
+ import "../chunks/chunk-CKUVEHSS.js";
75
75
  import "../chunks/chunk-OPPVSPEF.js";
76
76
  import "../chunks/chunk-VPE4AYP7.js";
77
- import "../chunks/chunk-AR4BUBMU.js";
77
+ import "../chunks/chunk-NZTYV3JL.js";
78
78
  import "../chunks/chunk-QYBZZI5H.js";
79
79
  import "../chunks/chunk-5I3K4R2G.js";
80
- import "../chunks/chunk-OIV2GBAJ.js";
81
- import "../chunks/chunk-M6LK4GII.js";
82
- import "../chunks/chunk-RAEABQNW.js";
83
- import "../chunks/chunk-ES2N6V56.js";
80
+ import "../chunks/chunk-DBLV7PGG.js";
81
+ import "../chunks/chunk-B5X2RLJG.js";
82
+ import "../chunks/chunk-VX656OAZ.js";
84
83
  import {
85
84
  featuresOnBackbone,
86
85
  graphBackbone,
87
86
  refNameBinding
88
- } from "../chunks/chunk-RAKOB6IV.js";
89
- import "../chunks/chunk-G45YY72K.js";
90
- import "../chunks/chunk-BPLIXMH7.js";
91
- import "../chunks/chunk-PTABFYQ7.js";
87
+ } from "../chunks/chunk-234NFZS4.js";
88
+ import "../chunks/chunk-Z6XZWPXK.js";
89
+ import "../chunks/chunk-ZPZ7GNBT.js";
90
+ import "../chunks/chunk-PFRQBCGC.js";
91
+ import "../chunks/chunk-HMXCN6PG.js";
92
92
  import "../chunks/chunk-AB35TJST.js";
93
- import "../chunks/chunk-N73TI3VG.js";
94
- import "../chunks/chunk-UVBGRJQX.js";
95
- import "../chunks/chunk-6JEWNXCQ.js";
93
+ import "../chunks/chunk-BZFOFC4D.js";
94
+ import "../chunks/chunk-HKYXWZQS.js";
95
+ import "../chunks/chunk-34BOZKIE.js";
96
96
  import "../chunks/chunk-JKJWSY4V.js";
97
- import "../chunks/chunk-24WITXQY.js";
98
- import "../chunks/chunk-7SRWJLSC.js";
97
+ import "../chunks/chunk-CGMSKIEO.js";
98
+ import "../chunks/chunk-UBQSRCWR.js";
99
99
  import "../chunks/chunk-CPMHA4W5.js";
100
- import "../chunks/chunk-FYQWPEEY.js";
101
- import "../chunks/chunk-XV4P5KEQ.js";
100
+ import "../chunks/chunk-BSOZW3FC.js";
101
+ import "../chunks/chunk-RJWPJCIB.js";
102
+ import "../chunks/chunk-HOAIOEI7.js";
103
+ import "../chunks/chunk-TGUFT6KK.js";
104
+ import "../chunks/chunk-4XWZNPQ2.js";
102
105
 
103
106
  // src/cli/figure.ts
104
107
  import { access, open, readFile, writeFile } from "node:fs/promises";
@@ -219,7 +222,7 @@ async function renderSpec(spec, base) {
219
222
  const resolve = (location) => isUrl(location) ? location : path.resolve(base, location);
220
223
  let source;
221
224
  if (spec.gbz) {
222
- const { db, index } = spec.gbz.db === "hprc" ? HPRC_GBZ : spec.gbz;
225
+ const { db, index } = gbzLocations(spec.gbz);
223
226
  const indexLocation = index ? resolve(index) : await siblingIndex(resolve(db));
224
227
  const cut = await cutGbzRegion(
225
228
  await openGbz(
package/dist/cli/fold.js CHANGED
@@ -7,30 +7,32 @@ import {
7
7
  } from "../chunks/chunk-O4EGE27I.js";
8
8
  import {
9
9
  foldVariants
10
- } from "../chunks/chunk-DY3JCAMX.js";
10
+ } from "../chunks/chunk-SOMZGDVS.js";
11
11
  import {
12
12
  loadGraph
13
- } from "../chunks/chunk-QXUEF3AJ.js";
14
- import "../chunks/chunk-PUG7LXDF.js";
15
- import "../chunks/chunk-IGVV37VI.js";
13
+ } from "../chunks/chunk-KMBE2Q42.js";
14
+ import "../chunks/chunk-3PZSBNLI.js";
15
+ import "../chunks/chunk-CKUVEHSS.js";
16
16
  import "../chunks/chunk-OPPVSPEF.js";
17
17
  import "../chunks/chunk-VPE4AYP7.js";
18
- import "../chunks/chunk-AR4BUBMU.js";
18
+ import "../chunks/chunk-NZTYV3JL.js";
19
19
  import "../chunks/chunk-QYBZZI5H.js";
20
20
  import "../chunks/chunk-5I3K4R2G.js";
21
- import "../chunks/chunk-OIV2GBAJ.js";
22
- import "../chunks/chunk-M6LK4GII.js";
23
- import "../chunks/chunk-RAEABQNW.js";
24
- import "../chunks/chunk-ES2N6V56.js";
25
- import "../chunks/chunk-G45YY72K.js";
26
- import "../chunks/chunk-BPLIXMH7.js";
27
- import "../chunks/chunk-N73TI3VG.js";
28
- import "../chunks/chunk-UVBGRJQX.js";
29
- import "../chunks/chunk-6JEWNXCQ.js";
30
- import "../chunks/chunk-24WITXQY.js";
31
- import "../chunks/chunk-7SRWJLSC.js";
21
+ import "../chunks/chunk-DBLV7PGG.js";
22
+ import "../chunks/chunk-B5X2RLJG.js";
23
+ import "../chunks/chunk-VX656OAZ.js";
24
+ import "../chunks/chunk-Z6XZWPXK.js";
25
+ import "../chunks/chunk-ZPZ7GNBT.js";
26
+ import "../chunks/chunk-BZFOFC4D.js";
27
+ import "../chunks/chunk-HKYXWZQS.js";
28
+ import "../chunks/chunk-34BOZKIE.js";
29
+ import "../chunks/chunk-CGMSKIEO.js";
30
+ import "../chunks/chunk-UBQSRCWR.js";
32
31
  import "../chunks/chunk-CPMHA4W5.js";
33
- import "../chunks/chunk-FYQWPEEY.js";
32
+ import "../chunks/chunk-BSOZW3FC.js";
33
+ import "../chunks/chunk-RJWPJCIB.js";
34
+ import "../chunks/chunk-HOAIOEI7.js";
35
+ import "../chunks/chunk-4XWZNPQ2.js";
34
36
 
35
37
  // src/cli/fold.ts
36
38
  import { readFile, writeFile } from "node:fs/promises";
@@ -1,18 +1,16 @@
1
1
  import {
2
- bypassedPoints,
3
2
  closableDeletions,
4
- deletionArcCurves,
5
3
  deletionDrawing,
6
4
  deletionEdges,
7
5
  edgeCurvesOf
8
- } from "./chunks/chunk-24WITXQY.js";
9
- import "./chunks/chunk-7SRWJLSC.js";
6
+ } from "./chunks/chunk-CGMSKIEO.js";
7
+ import "./chunks/chunk-UBQSRCWR.js";
10
8
  import "./chunks/chunk-CPMHA4W5.js";
11
- import "./chunks/chunk-FYQWPEEY.js";
9
+ import "./chunks/chunk-BSOZW3FC.js";
10
+ import "./chunks/chunk-RJWPJCIB.js";
11
+ import "./chunks/chunk-HOAIOEI7.js";
12
12
  export {
13
- bypassedPoints,
14
13
  closableDeletions,
15
- deletionArcCurves,
16
14
  deletionDrawing,
17
15
  deletionEdges,
18
16
  edgeCurvesOf
package/dist/facetGrid.js CHANGED
@@ -6,7 +6,8 @@ import {
6
6
  facetCells,
7
7
  facetGrid,
8
8
  facetSettingOf
9
- } from "./chunks/chunk-XV4P5KEQ.js";
9
+ } from "./chunks/chunk-TGUFT6KK.js";
10
+ import "./chunks/chunk-4XWZNPQ2.js";
10
11
  export {
11
12
  FACET_FIELDS,
12
13
  FACET_GAP_PX,