@jbrowse/bandage-core 11.15.0 → 11.17.0

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 (81) hide show
  1. package/dist/bubbles/bubbleHalos.js +4 -4
  2. package/dist/bubbles/classifyBubble.js +3 -3
  3. package/dist/bubbles/superbubbles.js +5 -5
  4. package/dist/chunks/{chunk-BDS5VZYZ.js → chunk-2BSGQKF3.js} +1 -1
  5. package/dist/chunks/{chunk-H2TSYHOA.js → chunk-42MMT5QM.js} +1 -1
  6. package/dist/chunks/{chunk-XBX3HSC7.js → chunk-47R7GMU3.js} +7 -7
  7. package/dist/chunks/{chunk-TEFNVUGD.js → chunk-54CX2MCH.js} +1 -1
  8. package/dist/chunks/{chunk-2AVTTUP2.js → chunk-5LTWXDXK.js} +2 -2
  9. package/dist/chunks/{chunk-S6E3PMH7.js → chunk-7KVA7TFI.js} +1 -1
  10. package/dist/chunks/{chunk-P2GJBFNA.js → chunk-AGUBPT45.js} +1 -1
  11. package/dist/chunks/{chunk-EOB4Y3EM.js → chunk-BDMISSNR.js} +1 -1
  12. package/dist/chunks/{chunk-EIMRD6L7.js → chunk-CIMRLDRO.js} +1 -1
  13. package/dist/chunks/{chunk-JUYPCLF4.js → chunk-DTBQNR7P.js} +9 -9
  14. package/dist/chunks/{chunk-VQ353UDK.js → chunk-EHEIS3TE.js} +1 -1
  15. package/dist/chunks/{chunk-AURNOR27.js → chunk-ENBFQH7Y.js} +1 -1
  16. package/dist/chunks/{chunk-RVIRKMQI.js → chunk-FKMZG7HI.js} +27 -10
  17. package/dist/chunks/{chunk-DOCI5O5R.js → chunk-G3R7LUOS.js} +2 -2
  18. package/dist/chunks/{chunk-ZHCQOC67.js → chunk-GZ2F2CDT.js} +1 -1
  19. package/dist/chunks/{chunk-NWEVR2OQ.js → chunk-HYVIQS4D.js} +1 -1
  20. package/dist/chunks/{chunk-N65FW7LX.js → chunk-IWPINV4U.js} +35 -13
  21. package/dist/chunks/{chunk-TUMJNAOL.js → chunk-MSVYSCAH.js} +2 -0
  22. package/dist/chunks/{chunk-IZKM4NY7.js → chunk-OKH32P3Z.js} +1 -1
  23. package/dist/chunks/{chunk-3GORESBG.js → chunk-OMQWCVOJ.js} +2 -0
  24. package/dist/chunks/{chunk-K4RGSISK.js → chunk-OND5MXTK.js} +1 -1
  25. package/dist/chunks/{chunk-OYBYCF2O.js → chunk-PIPNW3VY.js} +1 -1
  26. package/dist/chunks/{chunk-MB4UWYDG.js → chunk-PL6X2IJC.js} +2 -2
  27. package/dist/chunks/{chunk-4JDO7ZLN.js → chunk-QWLCHMNS.js} +1 -1
  28. package/dist/chunks/{chunk-SZYFZNCO.js → chunk-RATN62M3.js} +1 -1
  29. package/dist/chunks/{chunk-QL673EK5.js → chunk-STUG7I25.js} +1 -1
  30. package/dist/chunks/{chunk-RT4U3DH3.js → chunk-TICU3HMJ.js} +1 -1
  31. package/dist/chunks/{chunk-I53QYITQ.js → chunk-TK2ANC2S.js} +1 -1
  32. package/dist/chunks/{chunk-TQ26XEFL.js → chunk-U6TXPLFJ.js} +2 -2
  33. package/dist/chunks/{chunk-7YSIP3O2.js → chunk-WTWO2IPM.js} +1 -1
  34. package/dist/chunks/{chunk-5SW3PTHO.js → chunk-XESCKKKT.js} +1 -1
  35. package/dist/chunks/chunk-XWH4LB56.js +115 -0
  36. package/dist/chunks/{chunk-VNCHWWLG.js → chunk-Y5BPNRFM.js} +1 -1
  37. package/dist/chunks/{chunk-OKPSS5PG.js → chunk-ZZUSCQVT.js} +1 -1
  38. package/dist/cli/figure.js +24 -24
  39. package/dist/cli/fold.js +3 -3
  40. package/dist/deletionEdges.js +3 -1
  41. package/dist/figure.js +21 -21
  42. package/dist/figureData.js +18 -18
  43. package/dist/figureScene.js +13 -13
  44. package/dist/figureSettings.js +4 -4
  45. package/dist/gfa/gfaConverter.js +1 -1
  46. package/dist/graphLabels.js +2 -2
  47. package/dist/index.js +47 -35
  48. package/dist/labelLayout.js +6 -6
  49. package/dist/layout/forceCache.js +4 -4
  50. package/dist/layout/tubeMapLayout.js +4 -4
  51. package/dist/layout/walkRowDraw.js +7 -7
  52. package/dist/layout/walkStrip.js +8 -8
  53. package/dist/layoutModes.js +5 -5
  54. package/dist/nodeWidths.js +14 -3
  55. package/dist/pathColors.js +3 -3
  56. package/dist/pipeline.js +3 -3
  57. package/dist/referenceStrip.js +7 -7
  58. package/dist/renderer/GeometryBuilder.js +6 -6
  59. package/dist/tubeMap/axis.js +3 -3
  60. package/dist/tubeMap/bundle.js +5 -5
  61. package/dist/tubeMap/coarsen.js +5 -5
  62. package/dist/tubeMap/deviations.js +6 -6
  63. package/dist/tubeMap/genes.js +4 -4
  64. package/dist/tubeMap/nodeColors.js +7 -7
  65. package/dist/types/deletionEdges.d.ts +1 -0
  66. package/dist/types/figureData.d.ts +13 -0
  67. package/dist/types/figureScene.d.ts +1 -1
  68. package/dist/types/index.d.ts +2 -2
  69. package/dist/types/nodeWidths.d.ts +13 -1
  70. package/dist/types/types.d.ts +1 -0
  71. package/dist/types/version.d.ts +1 -1
  72. package/dist/util/SpatialIndex.js +3 -3
  73. package/dist/util/edgeCurves.js +2 -2
  74. package/dist/util/hitDetection.js +4 -4
  75. package/dist/version.js +1 -1
  76. package/dist/viewport.js +4 -4
  77. package/dist/walkEncoding.js +7 -7
  78. package/dist/walkHighlight.js +8 -8
  79. package/dist/walkKey.js +3 -3
  80. package/package.json +1 -1
  81. package/dist/chunks/chunk-ZANALBSX.js +0 -65
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  bubbleHalos,
3
3
  coversGraph
4
- } from "../chunks/chunk-SZYFZNCO.js";
5
- import "../chunks/chunk-NWEVR2OQ.js";
4
+ } from "../chunks/chunk-RATN62M3.js";
5
+ import "../chunks/chunk-HYVIQS4D.js";
6
6
  import "../chunks/chunk-FX4RDMDN.js";
7
- import "../chunks/chunk-AURNOR27.js";
7
+ import "../chunks/chunk-ENBFQH7Y.js";
8
8
  import "../chunks/chunk-HMXCN6PG.js";
9
9
  import "../chunks/chunk-AB35TJST.js";
10
10
  import "../chunks/chunk-HNNP5QUN.js";
11
- import "../chunks/chunk-3GORESBG.js";
11
+ import "../chunks/chunk-OMQWCVOJ.js";
12
12
  import "../chunks/chunk-TLWXLNLY.js";
13
13
  import "../chunks/chunk-3YBP46PB.js";
14
14
  import "../chunks/chunk-JJV2GT2Z.js";
@@ -3,13 +3,13 @@ import {
3
3
  BUBBLE_KIND_NAMES,
4
4
  bubbleSegmentIds,
5
5
  classifyBubble
6
- } from "../chunks/chunk-NWEVR2OQ.js";
6
+ } from "../chunks/chunk-HYVIQS4D.js";
7
7
  import "../chunks/chunk-FX4RDMDN.js";
8
- import "../chunks/chunk-AURNOR27.js";
8
+ import "../chunks/chunk-ENBFQH7Y.js";
9
9
  import "../chunks/chunk-HMXCN6PG.js";
10
10
  import "../chunks/chunk-AB35TJST.js";
11
11
  import "../chunks/chunk-HNNP5QUN.js";
12
- import "../chunks/chunk-3GORESBG.js";
12
+ import "../chunks/chunk-OMQWCVOJ.js";
13
13
  import "../chunks/chunk-TLWXLNLY.js";
14
14
  import "../chunks/chunk-3YBP46PB.js";
15
15
  import "../chunks/chunk-JJV2GT2Z.js";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  graphBubbles,
3
3
  superbubblesFromGraph
4
- } from "../chunks/chunk-DOCI5O5R.js";
5
- import "../chunks/chunk-SZYFZNCO.js";
4
+ } from "../chunks/chunk-G3R7LUOS.js";
5
+ import "../chunks/chunk-RATN62M3.js";
6
6
  import "../chunks/chunk-V6WSDZPL.js";
7
- import "../chunks/chunk-NWEVR2OQ.js";
7
+ import "../chunks/chunk-HYVIQS4D.js";
8
8
  import "../chunks/chunk-FX4RDMDN.js";
9
9
  import "../chunks/chunk-MHZTTLBU.js";
10
10
  import "../chunks/chunk-Q7OFBTBW.js";
11
11
  import "../chunks/chunk-L4DBSRA2.js";
12
- import "../chunks/chunk-AURNOR27.js";
12
+ import "../chunks/chunk-ENBFQH7Y.js";
13
13
  import "../chunks/chunk-HMXCN6PG.js";
14
14
  import "../chunks/chunk-AB35TJST.js";
15
15
  import "../chunks/chunk-HNNP5QUN.js";
16
- import "../chunks/chunk-3GORESBG.js";
16
+ import "../chunks/chunk-OMQWCVOJ.js";
17
17
  import "../chunks/chunk-TLWXLNLY.js";
18
18
  import "../chunks/chunk-3YBP46PB.js";
19
19
  import "../chunks/chunk-JJV2GT2Z.js";
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  pathCssColor,
10
10
  pathGreyCssColor
11
- } from "./chunk-VQ353UDK.js";
11
+ } from "./chunk-EHEIS3TE.js";
12
12
  import {
13
13
  pathOrigin
14
14
  } from "./chunk-3YBP46PB.js";
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var version = "11.15.0";
2
+ var version = "11.17.0";
3
3
 
4
4
  export {
5
5
  version
@@ -4,27 +4,27 @@ import {
4
4
  import {
5
5
  facetLifts,
6
6
  walkLift
7
- } from "./chunk-MB4UWYDG.js";
7
+ } from "./chunk-PL6X2IJC.js";
8
8
  import {
9
9
  buildGeometry,
10
10
  computeReferenceRamp
11
- } from "./chunk-JUYPCLF4.js";
11
+ } from "./chunk-DTBQNR7P.js";
12
12
  import {
13
13
  walkKey
14
- } from "./chunk-IZKM4NY7.js";
14
+ } from "./chunk-OKH32P3Z.js";
15
15
  import {
16
16
  walkRowsExtent
17
17
  } from "./chunk-VCUOYVLC.js";
18
18
  import {
19
19
  pathLegend,
20
20
  walkLabelsOf
21
- } from "./chunk-VQ353UDK.js";
21
+ } from "./chunk-EHEIS3TE.js";
22
22
  import {
23
23
  FIGURE_DEFAULTS
24
- } from "./chunk-5SW3PTHO.js";
24
+ } from "./chunk-XESCKKKT.js";
25
25
  import {
26
26
  drawingBounds
27
- } from "./chunk-2AVTTUP2.js";
27
+ } from "./chunk-5LTWXDXK.js";
28
28
  import {
29
29
  referenceLabel
30
30
  } from "./chunk-5ORP7EFJ.js";
@@ -34,7 +34,7 @@ import {
34
34
  import {
35
35
  deletionDrawing,
36
36
  deletionEdges
37
- } from "./chunk-3GORESBG.js";
37
+ } from "./chunk-OMQWCVOJ.js";
38
38
  import {
39
39
  facetCells,
40
40
  facetSettingOf
@@ -6,7 +6,7 @@ import {
6
6
  hasTubeMapPaths,
7
7
  tubeMapLayout,
8
8
  tubeMapReferenceLayout
9
- } from "./chunk-BDS5VZYZ.js";
9
+ } from "./chunk-2BSGQKF3.js";
10
10
  import {
11
11
  anchoredLayout
12
12
  } from "./chunk-CNWAVRLF.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-VPE4AYP7.js";
15
15
  import {
16
16
  convertGFAToGraph
17
- } from "./chunk-TUMJNAOL.js";
17
+ } from "./chunk-MSVYSCAH.js";
18
18
  import {
19
19
  parseGFA
20
20
  } from "./chunk-CFXXFHRK.js";
@@ -39,7 +39,7 @@ import {
39
39
  import {
40
40
  deletionDrawing,
41
41
  deletionEdges
42
- } from "./chunk-3GORESBG.js";
42
+ } from "./chunk-OMQWCVOJ.js";
43
43
  import {
44
44
  anchorGraph
45
45
  } from "./chunk-3YBP46PB.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pathSteps
3
- } from "./chunk-BDS5VZYZ.js";
3
+ } from "./chunk-2BSGQKF3.js";
4
4
  import {
5
5
  pathOrigin
6
6
  } from "./chunk-3YBP46PB.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HMXCN6PG.js";
4
4
  import {
5
5
  edgeCurvesOf
6
- } from "./chunk-3GORESBG.js";
6
+ } from "./chunk-OMQWCVOJ.js";
7
7
 
8
8
  // src/util/edgeCurves.ts
9
9
  var cache = weakMemo();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  REFERENCE_RAMP_ALT_COLOR,
3
3
  hslToRgb
4
- } from "./chunk-JUYPCLF4.js";
4
+ } from "./chunk-DTBQNR7P.js";
5
5
  import {
6
6
  packAbgr
7
7
  } from "./chunk-G2FD7S3C.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  engineKey,
3
3
  forceLayout
4
- } from "./chunk-2AVTTUP2.js";
4
+ } from "./chunk-5LTWXDXK.js";
5
5
 
6
6
  // src/layout/forceCache.ts
7
7
  var DEFAULT_SIZE = 4;
@@ -21,18 +21,18 @@ import {
21
21
  } from "./chunk-GQZVR5DW.js";
22
22
  import {
23
23
  baseEdgeCurves
24
- } from "./chunk-P2GJBFNA.js";
24
+ } from "./chunk-AGUBPT45.js";
25
25
  import {
26
26
  PATH_LIGHTNESS,
27
27
  PATH_SATURATION,
28
28
  nameHue,
29
29
  pathHueAt
30
- } from "./chunk-VQ353UDK.js";
30
+ } from "./chunk-EHEIS3TE.js";
31
31
  import {
32
- meanDepth,
33
32
  nodeWidthPx,
34
- walkLaneWidthPx
35
- } from "./chunk-ZANALBSX.js";
33
+ walkLaneWidthPx,
34
+ widthNorm
35
+ } from "./chunk-XWH4LB56.js";
36
36
  import {
37
37
  referenceMidpoints
38
38
  } from "./chunk-L4DBSRA2.js";
@@ -515,7 +515,7 @@ function buildGeometry(options) {
515
515
  hiddenEdges,
516
516
  version = 0
517
517
  } = options;
518
- const depthNorm = nodeWidth === "depth" ? meanDepth(graph) : 0;
518
+ const widthScale = widthNorm(graph, nodeWidth);
519
519
  const busiest = edgeWidth === "walks" ? busiestEdge(graph) : 0;
520
520
  const scale = axis.scaleX;
521
521
  const worldPerScreenPx = 1 / Math.max(scale, MIN_SCALE_FOR_OFFSET);
@@ -618,7 +618,7 @@ function buildGeometry(options) {
618
618
  if (width === void 0) {
619
619
  const node = nodeById.get(id);
620
620
  width = walkLaneWidthPx(
621
- node ? nodeWidthPx(node, contigThickness, nodeWidth, depthNorm) : contigThickness,
621
+ node ? nodeWidthPx(node, contigThickness, nodeWidth, widthScale) : contigThickness,
622
622
  liftedWalks.length
623
623
  );
624
624
  laneWidths.set(id, width);
@@ -697,7 +697,7 @@ function buildGeometry(options) {
697
697
  const plainEdgeColor = isDeletion ? EDGE_DELETION_COLOR : EDGE_DEFAULT_COLOR;
698
698
  const edgeColor = !highlight || onWalk ? plainEdgeColor : fadeAbgr(plainEdgeColor, FADED_ALPHA);
699
699
  const toNode = nodeById.get(edge.to);
700
- const intoHalfWidth = (toNode ? nodeWidthPx(toNode, contigThickness, nodeWidth, depthNorm) : contigThickness) / 2;
700
+ const intoHalfWidth = (toNode ? nodeWidthPx(toNode, contigThickness, nodeWidth, widthScale) : contigThickness) / 2;
701
701
  const inView = (curves) => !viewportBounds || isBezierInBounds(curves, viewportBounds);
702
702
  const dashesOf = (curves) => dashSpans(curves, DELETION_DASH_PX / scale, yToX, viewportBounds);
703
703
  const stroke = (curves, thickness, color) => {
@@ -882,7 +882,7 @@ function buildGeometry(options) {
882
882
  colorRange
883
883
  );
884
884
  const color = faded ? fadeAbgr(own, FADED_ALPHA) : own;
885
- const width = nodeWidthPx(node, contigThickness, nodeWidth, depthNorm);
885
+ const width = nodeWidthPx(node, contigThickness, nodeWidth, widthScale);
886
886
  const nodeThickness = width / 2;
887
887
  const start = nodeStrokes.length;
888
888
  const slots = nodePathSlots.get(nodeId);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  groupDigits
3
- } from "./chunk-AURNOR27.js";
3
+ } from "./chunk-ENBFQH7Y.js";
4
4
  import {
5
5
  pathOrigin
6
6
  } from "./chunk-3YBP46PB.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-HNNP5QUN.js";
11
11
  import {
12
12
  edgeCurvesOf
13
- } from "./chunk-3GORESBG.js";
13
+ } from "./chunk-OMQWCVOJ.js";
14
14
  import {
15
15
  curveBounds,
16
16
  curveMidpoint,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-CO6RGQAD.js";
4
4
  import {
5
5
  layoutModeByValue
6
- } from "./chunk-TEFNVUGD.js";
6
+ } from "./chunk-54CX2MCH.js";
7
7
  import {
8
8
  parseRegion
9
9
  } from "./chunk-FNDNSDKW.js";
@@ -12,19 +12,19 @@ import {
12
12
  } from "./chunk-HEYIAMTC.js";
13
13
  import {
14
14
  version
15
- } from "./chunk-H2TSYHOA.js";
15
+ } from "./chunk-42MMT5QM.js";
16
16
  import {
17
17
  axisScaleOf
18
- } from "./chunk-OKPSS5PG.js";
18
+ } from "./chunk-ZZUSCQVT.js";
19
19
  import {
20
20
  figureScene
21
- } from "./chunk-XBX3HSC7.js";
21
+ } from "./chunk-47R7GMU3.js";
22
22
  import {
23
23
  fadedKey
24
- } from "./chunk-MB4UWYDG.js";
24
+ } from "./chunk-PL6X2IJC.js";
25
25
  import {
26
26
  encodingStops
27
- } from "./chunk-EOB4Y3EM.js";
27
+ } from "./chunk-BDMISSNR.js";
28
28
  import {
29
29
  laneSlideAt,
30
30
  passesKey,
@@ -36,18 +36,27 @@ import {
36
36
  abgrGreen,
37
37
  abgrRed
38
38
  } from "./chunk-G2FD7S3C.js";
39
+ import {
40
+ frequencyKey,
41
+ haplotypeCount,
42
+ nodeFrequency,
43
+ withFrequencies
44
+ } from "./chunk-XWH4LB56.js";
39
45
  import {
40
46
  FIGURE_DEFAULTS
41
- } from "./chunk-5SW3PTHO.js";
47
+ } from "./chunk-XESCKKKT.js";
42
48
  import {
43
49
  engineSettingsOf,
44
50
  fitTransform,
45
51
  forceLayout,
46
52
  loadGraph
47
- } from "./chunk-2AVTTUP2.js";
53
+ } from "./chunk-5LTWXDXK.js";
48
54
  import {
49
55
  referencePositions
50
56
  } from "./chunk-L4DBSRA2.js";
57
+ import {
58
+ deletionKey
59
+ } from "./chunk-OMQWCVOJ.js";
51
60
  import {
52
61
  referenceVisitStarts
53
62
  } from "./chunk-3YBP46PB.js";
@@ -305,6 +314,7 @@ function figureData(graph, layout, o = {}) {
305
314
  }
306
315
  const startsOf = referenceVisitStarts(graph);
307
316
  const positions = referencePositions(graph);
317
+ const haplotypes = haplotypeCount(graph);
308
318
  return {
309
319
  meta: {
310
320
  generator: `@jbrowse/bandage-core@${version}`,
@@ -321,12 +331,15 @@ function figureData(graph, layout, o = {}) {
321
331
  end: referenceRamp.start + referenceRamp.span
322
332
  } : null,
323
333
  deletions: drawnDeletions.shown.length,
334
+ deletionKey: drawnDeletions.shown.length ? deletionKey(referenceName) : null,
324
335
  // what the key for the drawing a lift fades says
325
336
  fadedKey: lift ? fadedKey(
326
337
  graph,
327
338
  lift,
328
339
  lift.walks.length === 1 ? labelOf(lift.walks[0].name) : "these walks"
329
- ) : null
340
+ ) : null,
341
+ // the widths a key shows where nodes are as wide as their frequency
342
+ frequencyKey: o.nodeWidth === "frequency" ? frequencyKey(o.contigThickness ?? FIGURE_DEFAULTS.contigThickness) : null
330
343
  },
331
344
  panels: {
332
345
  panel: panels.map((p) => p.name),
@@ -346,6 +359,7 @@ function figureData(graph, layout, o = {}) {
346
359
  name: graph.nodes.map((n) => n.name),
347
360
  length: graph.nodes.map((n) => n.length),
348
361
  depth: graph.nodes.map((n) => n.depth),
362
+ frequency: graph.nodes.map((n) => nodeFrequency(n, haplotypes) ?? null),
349
363
  backbone: graph.nodes.map((n) => isBackbone(n)),
350
364
  referenceVisits: graph.nodes.map(
351
365
  (n) => isBackbone(n) ? startsOf(n).length : 0
@@ -359,7 +373,10 @@ function figureData(graph, layout, o = {}) {
359
373
  };
360
374
  }
361
375
  async function laidOutGraph(text, name, region, spec) {
362
- const graph = loadGraph(text, name, { referencePath: spec.referencePath });
376
+ const graph = withFrequencies(
377
+ loadGraph(text, name, { referencePath: spec.referencePath }),
378
+ spec.frequencies
379
+ );
363
380
  const layout = layoutModeByValue(spec.layout ?? "force").run(graph, region) ?? (await forceLayout(graph, engineSettingsOf(spec), layoutEngine)).result;
364
381
  return { graph, layout };
365
382
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  coversGraph
3
- } from "./chunk-SZYFZNCO.js";
3
+ } from "./chunk-RATN62M3.js";
4
4
  import {
5
5
  bubblesFromGraph,
6
6
  derivedBubble,
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-V6WSDZPL.js";
11
11
  import {
12
12
  bubbleSegmentIds
13
- } from "./chunk-NWEVR2OQ.js";
13
+ } from "./chunk-HYVIQS4D.js";
14
14
  import {
15
15
  bubbleSubgraph
16
16
  } from "./chunk-MHZTTLBU.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeColorSchemeRange,
3
3
  getNodeColor
4
- } from "./chunk-JUYPCLF4.js";
4
+ } from "./chunk-DTBQNR7P.js";
5
5
  import {
6
6
  abgrToCssRgba
7
7
  } from "./chunk-G2FD7S3C.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-FX4RDMDN.js";
4
4
  import {
5
5
  formatBp
6
- } from "./chunk-AURNOR27.js";
6
+ } from "./chunk-ENBFQH7Y.js";
7
7
 
8
8
  // src/bubbles/classifyBubble.ts
9
9
  var REPEAT_GROWTH = 10;
@@ -5,7 +5,7 @@ import {
5
5
  stripGeneGaps,
6
6
  walkStripFrame,
7
7
  walkStripLabelsTree
8
- } from "./chunk-QL673EK5.js";
8
+ } from "./chunk-STUG7I25.js";
9
9
  import {
10
10
  Canvas2DRenderer
11
11
  } from "./chunk-4DMSPNYV.js";
@@ -13,7 +13,7 @@ import {
13
13
  walkRowsKey,
14
14
  walkRowsKeyTree,
15
15
  walkRowsTree
16
- } from "./chunk-OYBYCF2O.js";
16
+ } from "./chunk-PIPNW3VY.js";
17
17
  import {
18
18
  EXON_COLOR,
19
19
  exonOutlineTree,
@@ -21,28 +21,28 @@ import {
21
21
  } from "./chunk-JSUCGZ6K.js";
22
22
  import {
23
23
  geneLabelCandidates
24
- } from "./chunk-TQ26XEFL.js";
24
+ } from "./chunk-U6TXPLFJ.js";
25
25
  import {
26
26
  nodesUnderBox
27
- } from "./chunk-4JDO7ZLN.js";
27
+ } from "./chunk-QWLCHMNS.js";
28
28
  import {
29
29
  genePins
30
30
  } from "./chunk-HEYIAMTC.js";
31
31
  import {
32
32
  version
33
- } from "./chunk-H2TSYHOA.js";
33
+ } from "./chunk-42MMT5QM.js";
34
34
  import {
35
35
  axisScaleOf
36
- } from "./chunk-OKPSS5PG.js";
36
+ } from "./chunk-ZZUSCQVT.js";
37
37
  import {
38
38
  figureScene
39
- } from "./chunk-XBX3HSC7.js";
39
+ } from "./chunk-47R7GMU3.js";
40
40
  import {
41
41
  fadedKey
42
- } from "./chunk-MB4UWYDG.js";
42
+ } from "./chunk-PL6X2IJC.js";
43
43
  import {
44
44
  encodingStops
45
- } from "./chunk-EOB4Y3EM.js";
45
+ } from "./chunk-BDMISSNR.js";
46
46
  import {
47
47
  THREAD_PX,
48
48
  passesKey,
@@ -50,20 +50,20 @@ import {
50
50
  } from "./chunk-YUIKEUKY.js";
51
51
  import {
52
52
  rangeText
53
- } from "./chunk-IZKM4NY7.js";
53
+ } from "./chunk-OKH32P3Z.js";
54
54
  import {
55
55
  walkRowLabels
56
56
  } from "./chunk-VCUOYVLC.js";
57
57
  import {
58
58
  nodeInk
59
- } from "./chunk-ZANALBSX.js";
59
+ } from "./chunk-XWH4LB56.js";
60
60
  import {
61
61
  FIGURE_DEFAULTS
62
- } from "./chunk-5SW3PTHO.js";
62
+ } from "./chunk-XESCKKKT.js";
63
63
  import {
64
64
  FIT_PADDING,
65
65
  fitTransform
66
- } from "./chunk-2AVTTUP2.js";
66
+ } from "./chunk-5LTWXDXK.js";
67
67
  import {
68
68
  LABEL_CHAR_PX,
69
69
  LABEL_PAD,
@@ -71,6 +71,9 @@ import {
71
71
  occupancy,
72
72
  placeLabels
73
73
  } from "./chunk-AB35TJST.js";
74
+ import {
75
+ deletionKey
76
+ } from "./chunk-OMQWCVOJ.js";
74
77
  import {
75
78
  escapeAttr,
76
79
  serializeEl
@@ -91,6 +94,7 @@ var KEY_LINE_PX = 16;
91
94
  var KEY_TALL_PX = 32;
92
95
  var STRIP_KEY_PX = 22;
93
96
  var FADED = "rgb(160,160,160)";
97
+ var DELETION_INK = "rgb(24,24,28)";
94
98
  var GENE_INK = "#1c1c22";
95
99
  function keySvg(id, x, y, stops, label, after, under, opacity = 1) {
96
100
  const bar = stops.length > 1 ? BAR_PX : SWATCH_PX;
@@ -113,6 +117,13 @@ function exonKeySvg(x, y) {
113
117
  markup: `<g transform="translate(${x} ${y})" ${FONT}><rect x="1" y="4" width="${SWATCH_PX - 2}" height="10" rx="4" fill="none" stroke="${EXON_COLOR}" stroke-width="2"/><text x="${SWATCH_PX + 5}" y="13">exon</text></g>`
114
118
  };
115
119
  }
120
+ function deletionKeySvg(x, y, note, color) {
121
+ return {
122
+ width: SWATCH_PX + 5 + note.length * LABEL_CHAR_PX,
123
+ height: KEY_LINE_PX,
124
+ markup: `<g transform="translate(${x} ${y})" ${FONT}><line y1="9" y2="9" x2="${SWATCH_PX}" stroke="${color}" stroke-width="2" stroke-dasharray="4 3"/><text x="${SWATCH_PX + 5}" y="13">${note}</text></g>`
125
+ };
126
+ }
116
127
  function passesKeySvg(x, y, note) {
117
128
  const lines = [6, 9, 12].map(
118
129
  (ly) => `<line y1="${ly}" y2="${ly}" x2="${SWATCH_PX}" stroke="#444" stroke-width="${THREAD_PX}"/>`
@@ -176,6 +187,7 @@ function figureSvg(graph, layout, o = {}) {
176
187
  labelOf,
177
188
  referenceName,
178
189
  keyText,
190
+ drawnDeletions,
179
191
  contigThickness,
180
192
  nodeWidth,
181
193
  geometry
@@ -363,6 +375,16 @@ function figureSvg(graph, layout, o = {}) {
363
375
  )
364
376
  );
365
377
  }
378
+ if (drawnDeletions.shown.length > 0) {
379
+ keys.push(
380
+ (x, y) => deletionKeySvg(
381
+ x,
382
+ y,
383
+ deletionKey(referenceName),
384
+ lift ? FADED : DELETION_INK
385
+ )
386
+ );
387
+ }
366
388
  if (pins.some((pin) => pin.exonsByNode.length > 0)) {
367
389
  keys.push((x, y) => exonKeySvg(x, y));
368
390
  }
@@ -75,11 +75,13 @@ function statedDepth({ tags, length }) {
75
75
  return positive(tags.dp) ?? positive(tags.DP) ?? (count !== void 0 && length > 0 ? count / length : void 0);
76
76
  }
77
77
  function makeNode(gfaNode, strand, depth) {
78
+ const frequency = gfaNode.tags.AF;
78
79
  return {
79
80
  id: `${gfaNode.id}${strand}`,
80
81
  name: gfaNode.id,
81
82
  length: gfaNode.length,
82
83
  depth,
84
+ ...typeof frequency === "number" && frequency >= 0 ? { frequency } : {},
83
85
  stable: stableCoordinate(gfaNode),
84
86
  samples: carriedSamples(gfaNode)
85
87
  };
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  formatBp,
7
7
  groupDigits
8
- } from "./chunk-AURNOR27.js";
8
+ } from "./chunk-ENBFQH7Y.js";
9
9
 
10
10
  // src/walkKey.ts
11
11
  function rangeText(contig, start, end) {
@@ -23,6 +23,7 @@ import {
23
23
 
24
24
  // src/deletionEdges.ts
25
25
  var MIN_DELETION_BP = 1;
26
+ var deletionKey = (reference) => `skips ${reference ?? "the reference"} sequence (a deletion)`;
26
27
  function bypassedPoints(nodePositions, bypassed) {
27
28
  return bypassed.flatMap((id) => nodePositions[id] ?? []);
28
29
  }
@@ -204,6 +205,7 @@ function deletionDrawing(graph, deletions, show = true) {
204
205
  }
205
206
 
206
207
  export {
208
+ deletionKey,
207
209
  edgeCurvesOf,
208
210
  deletionEdges,
209
211
  closableDeletions,
@@ -2,7 +2,7 @@ import {
2
2
  LIFT_BACKDROP_CSS,
3
3
  computeColorSchemeRange,
4
4
  getNodeColor
5
- } from "./chunk-JUYPCLF4.js";
5
+ } from "./chunk-DTBQNR7P.js";
6
6
  import {
7
7
  abgrToCssRgba
8
8
  } from "./chunk-G2FD7S3C.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  REFERENCE_RAMP_ALT_CSS
3
- } from "./chunk-JUYPCLF4.js";
3
+ } from "./chunk-DTBQNR7P.js";
4
4
  import {
5
5
  RAMP_GRADIENT_CSS,
6
6
  RAMP_GRADIENT_STOPS,
@@ -2,10 +2,10 @@ import {
2
2
  encodedColor,
3
3
  resolveEncoding,
4
4
  splitFamilies
5
- } from "./chunk-EOB4Y3EM.js";
5
+ } from "./chunk-BDMISSNR.js";
6
6
  import {
7
7
  rampFraction
8
- } from "./chunk-JUYPCLF4.js";
8
+ } from "./chunk-DTBQNR7P.js";
9
9
  import {
10
10
  gapParts
11
11
  } from "./chunk-LG2UK4MB.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  EdgeSpatialIndex,
3
3
  SpatialIndex
4
- } from "./chunk-7YSIP3O2.js";
4
+ } from "./chunk-WTWO2IPM.js";
5
5
  import {
6
6
  weakMemo
7
7
  } from "./chunk-HMXCN6PG.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  bubbleSegmentIds,
3
3
  classifyBubble
4
- } from "./chunk-NWEVR2OQ.js";
4
+ } from "./chunk-HYVIQS4D.js";
5
5
  import {
6
6
  svgPath
7
7
  } from "./chunk-JJV2GT2Z.js";
@@ -3,7 +3,7 @@ import {
3
3
  boxesGenes,
4
4
  rowPitch,
5
5
  rowSpan
6
- } from "./chunk-OYBYCF2O.js";
6
+ } from "./chunk-PIPNW3VY.js";
7
7
  import {
8
8
  READOUT_ROOM,
9
9
  longestBar
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tubeSpan
3
- } from "./chunk-I53QYITQ.js";
3
+ } from "./chunk-TK2ANC2S.js";
4
4
 
5
5
  // src/tubeMap/genes.ts
6
6
  function tubeMapGenes(byRefName, genes) {