@jbrowse/bandage-core 7.5.1 → 8.0.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 (45) hide show
  1. package/README.md +2 -0
  2. package/dist/chunks/{chunk-CH3DLBUT.js → chunk-2WNBVB55.js} +1 -1
  3. package/dist/chunks/{chunk-AVJK272H.js → chunk-6ZNQJ5ZD.js} +1 -1
  4. package/dist/chunks/{chunk-EJ5OZTCK.js → chunk-733L2TS6.js} +1 -1
  5. package/dist/chunks/{chunk-ZNMHIPUZ.js → chunk-DPV2CUIE.js} +2 -2
  6. package/dist/chunks/{chunk-KEVQ46GG.js → chunk-FFFQNQUI.js} +2 -2
  7. package/dist/chunks/{chunk-UMNCCYBN.js → chunk-G2FD7S3C.js} +5 -3
  8. package/dist/chunks/{chunk-RCWYY6XA.js → chunk-HBEKUQO4.js} +1 -1
  9. package/dist/chunks/{chunk-CR7EGAFE.js → chunk-KCRL5JB2.js} +34 -16
  10. package/dist/chunks/{chunk-3LXG54PN.js → chunk-MBB7ATM6.js} +1 -1
  11. package/dist/chunks/{chunk-7ESIZZO7.js → chunk-MRZ7CFBN.js} +7 -7
  12. package/dist/chunks/{chunk-ZYHSUNQO.js → chunk-O2ANJQVH.js} +1 -1
  13. package/dist/chunks/{chunk-7G7TFATC.js → chunk-V3MD3IZB.js} +2 -2
  14. package/dist/chunks/{chunk-CNGKWYUC.js → chunk-V5W5E3UN.js} +1 -1
  15. package/dist/chunks/{chunk-UJ6GYL6T.js → chunk-W253V6RR.js} +2 -2
  16. package/dist/chunks/{chunk-AYOSNXLQ.js → chunk-W2I4DOL4.js} +2 -4
  17. package/dist/chunks/{chunk-FRR2RGBT.js → chunk-ZJQ6H3AR.js} +1 -1
  18. package/dist/cli/figure.js +12 -12
  19. package/dist/figure.js +10 -10
  20. package/dist/index.js +16 -16
  21. package/dist/layout/tubeMapLayout.js +1 -1
  22. package/dist/layout/walkRowDraw.js +4 -4
  23. package/dist/layout/walkStrip.js +5 -5
  24. package/dist/layoutModes.js +2 -2
  25. package/dist/referenceRampCss.js +3 -3
  26. package/dist/referenceStrip.js +3 -3
  27. package/dist/renderer/Canvas2DRenderer.js +2 -2
  28. package/dist/renderer/GeometryBuilder.js +2 -2
  29. package/dist/renderer/colorBits.js +1 -1
  30. package/dist/tubeMap/coarsen.js +1 -1
  31. package/dist/tubeMap/draw.js +6 -2
  32. package/dist/tubeMap/mismatches.js +1 -1
  33. package/dist/tubeMap/nodeColors.js +3 -3
  34. package/dist/types/layout/tubeMapLayout.d.ts +1 -1
  35. package/dist/types/tubeMap/axis.d.ts +1 -1
  36. package/dist/types/tubeMap/connectors.d.ts +1 -1
  37. package/dist/types/tubeMap/deviations.d.ts +1 -1
  38. package/dist/types/tubeMap/draw.d.ts +4 -3
  39. package/dist/types/tubeMap/mismatches.d.ts +1 -1
  40. package/dist/types/tubeMap/reads.d.ts +1 -1
  41. package/dist/types/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/dist/walkEncoding.js +3 -3
  44. package/dist/walkHighlight.js +4 -4
  45. package/package.json +2 -2
package/README.md CHANGED
@@ -53,4 +53,6 @@ Release with `pnpm version patch`: it lints, tests, stamps `src/version.ts`,
53
53
  writes the changelog with git-cliff and pushes the `v*` tag, and `publish.yml`
54
54
  publishes to npm with trusted publishing.
55
55
 
56
+ ## License
57
+
56
58
  Both Bandage and OGDF are GPL, which is why this package is GPL-3.0-or-later.
@@ -5,7 +5,7 @@ import {
5
5
  abgrToCssRgba,
6
6
  brightenAbgr,
7
7
  normalizedRgbToCssRgba
8
- } from "./chunk-UMNCCYBN.js";
8
+ } from "./chunk-G2FD7S3C.js";
9
9
 
10
10
  // src/renderer/Canvas2DRenderer.ts
11
11
  var Canvas2DRenderer = class {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  REFERENCE_RAMP_MAX_HUE
3
- } from "./chunk-RCWYY6XA.js";
3
+ } from "./chunk-HBEKUQO4.js";
4
4
 
5
5
  // src/referenceRampCss.ts
6
6
  function rampHueCss(hue) {
@@ -1,5 +1,5 @@
1
1
  // src/tubeMap/mismatches.ts
2
- import { forward, getXCoordinateOfBaseWithinNode } from "@gmod/tubemap-core";
2
+ import { forward, getXCoordinateOfBaseWithinNode } from "@jbrowse/tubemap-core";
3
3
  function readMismatches(read, layout) {
4
4
  const marks = [];
5
5
  const entries = read.sequenceNew ?? [];
@@ -2,10 +2,10 @@ import {
2
2
  REFERENCE_RAMP_ALT_COLOR,
3
3
  REFERENCE_RAMP_MAX_HUE,
4
4
  hslToRgb
5
- } from "./chunk-RCWYY6XA.js";
5
+ } from "./chunk-HBEKUQO4.js";
6
6
  import {
7
7
  packAbgr
8
- } from "./chunk-UMNCCYBN.js";
8
+ } from "./chunk-G2FD7S3C.js";
9
9
 
10
10
  // src/walkEncoding.ts
11
11
  var WALK_FIELDS = [
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  computeColorSchemeRange,
3
3
  getNodeColor
4
- } from "./chunk-RCWYY6XA.js";
4
+ } from "./chunk-HBEKUQO4.js";
5
5
  import {
6
6
  abgrToCssRgba
7
- } from "./chunk-UMNCCYBN.js";
7
+ } from "./chunk-G2FD7S3C.js";
8
8
 
9
9
  // src/tubeMap/nodeColors.ts
10
10
  function tubeMapNodeColors(graph, colorScheme, referenceRamp) {
@@ -29,10 +29,12 @@ function fadeAbgr(c, alpha) {
29
29
  );
30
30
  }
31
31
  function brightenAbgr(c, factor) {
32
+ const t = Math.max(0, 1 - 1 / factor);
33
+ const lift = (v) => Math.round(v + (255 - v) * t);
32
34
  return packAbgr(
33
- Math.min(255, Math.round(abgrRed(c) * factor)),
34
- Math.min(255, Math.round(abgrGreen(c) * factor)),
35
- Math.min(255, Math.round(abgrBlue(c) * factor)),
35
+ lift(abgrRed(c)),
36
+ lift(abgrGreen(c)),
37
+ lift(abgrBlue(c)),
36
38
  abgrAlpha(c)
37
39
  );
38
40
  }
@@ -2,7 +2,7 @@ import {
2
2
  abgrToCssRgba,
3
3
  fadeAbgr,
4
4
  packAbgr
5
- } from "./chunk-UMNCCYBN.js";
5
+ } from "./chunk-G2FD7S3C.js";
6
6
  import {
7
7
  meanDepth,
8
8
  nodeWidthPx
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  tubeMapMismatches
3
- } from "./chunk-EJ5OZTCK.js";
3
+ } from "./chunk-733L2TS6.js";
4
+ import {
5
+ readColor
6
+ } from "./chunk-TEDQJPMI.js";
4
7
 
5
8
  // src/tubeMap/draw.ts
6
- import { curvePaths, nodeOutlinePath } from "@gmod/tubemap-core";
9
+ import { curvePaths, nodeOutlinePath } from "@jbrowse/tubemap-core";
7
10
  function parsePath(d) {
8
11
  const tokens = d.trim().split(/[\s,]+/);
9
12
  const commands = [];
@@ -50,29 +53,41 @@ function extentOf(commands) {
50
53
  }
51
54
  return { x0, x1 };
52
55
  }
53
- function shapeOf(d, color, alpha, track) {
56
+ function shapeOf(d, color, track) {
54
57
  const commands = parsePath(d);
55
- return { commands, color, track, alpha, ...extentOf(commands) };
58
+ return { commands, color, track, ...extentOf(commands) };
59
+ }
60
+ function trackColors(layout, pathColors) {
61
+ return new Map(
62
+ layout.tracks.map((track) => [
63
+ track.id,
64
+ track.type === "read" ? readColor(track) : pathColors[track.id]
65
+ ])
66
+ );
56
67
  }
57
- function layerOf(layout, type) {
68
+ function layerOf(layout, type, colors) {
58
69
  const { shapes } = layout;
70
+ const colorOf = (s) => colors.get(s.id);
59
71
  const trackOf = (s) => type === "haplotype" ? s.id : void 0;
60
72
  const rects = [...shapes.rectangles, ...shapes.verticalRectangles].filter((r) => r.type === type).map((r) => ({
61
- color: r.color,
73
+ color: colorOf(r),
62
74
  track: trackOf(r),
63
- alpha: r.alpha ?? 1,
64
75
  x0: r.xStart,
65
76
  x1: r.xEnd + 1,
66
77
  y0: r.yStart,
67
78
  y1: r.yEnd + 1
68
79
  }));
69
80
  const curves = curvePaths(shapes.curves, type).map(
70
- (c) => shapeOf(c.path, c.color, c.alpha ?? 1, trackOf(c))
81
+ (c) => shapeOf(c.path, colorOf(c), trackOf(c))
71
82
  );
72
- const corners = shapes.corners.filter((c) => c.type === type).map((c) => shapeOf(c.path, c.color, 1, trackOf(c)));
83
+ const corners = shapes.corners.filter((c) => c.type === type).map((c) => shapeOf(c.path, colorOf(c), trackOf(c)));
73
84
  return { rects, shapes: [...curves, ...corners] };
74
85
  }
75
- function tubeMapPicture(layout) {
86
+ function tubeMapPicture({
87
+ layout,
88
+ pathColors
89
+ }) {
90
+ const colors = trackColors(layout, pathColors);
76
91
  const nodes = [];
77
92
  layout.nodes.forEach((node) => {
78
93
  if (node.order >= 0) {
@@ -82,7 +97,10 @@ function tubeMapPicture(layout) {
82
97
  });
83
98
  return {
84
99
  bounds: layout.bounds,
85
- layers: [layerOf(layout, "haplotype"), layerOf(layout, "read")],
100
+ layers: [
101
+ layerOf(layout, "haplotype", colors),
102
+ layerOf(layout, "read", colors)
103
+ ],
86
104
  nodes,
87
105
  mismatches: tubeMapMismatches(layout).filter(
88
106
  (m) => m.kind !== "insertion" || !m.softClip
@@ -132,25 +150,23 @@ function fillByColor(ctx, items, visible, colorOf, addTo) {
132
150
  const byColor = /* @__PURE__ */ new Map();
133
151
  for (const item of items) {
134
152
  if (visible(item)) {
135
- const key = `${colorOf(item)}|${item.alpha}`;
136
- const list = byColor.get(key);
153
+ const color = colorOf(item);
154
+ const list = byColor.get(color);
137
155
  if (list) {
138
156
  list.push(item);
139
157
  } else {
140
- byColor.set(key, [item]);
158
+ byColor.set(color, [item]);
141
159
  }
142
160
  }
143
161
  }
144
162
  for (const list of byColor.values()) {
145
163
  ctx.fillStyle = colorOf(list[0]);
146
- ctx.globalAlpha = list[0].alpha;
147
164
  ctx.beginPath();
148
165
  for (const item of list) {
149
166
  addTo(item);
150
167
  }
151
168
  ctx.fill();
152
169
  }
153
- ctx.globalAlpha = 1;
154
170
  }
155
171
  var FULL_OUTLINE_PX = 12;
156
172
  var MIN_OUTLINE_ALPHA = 0.15;
@@ -162,6 +178,7 @@ function drawTubeMap(ctx, picture, frame) {
162
178
  const { x, y, width } = frame;
163
179
  const visible = (item) => x(item.x1) >= 0 && x(item.x0) <= width;
164
180
  const colorOf = (item) => item.track !== void 0 && frame.tubeColors?.[item.track] || item.color;
181
+ ctx.globalAlpha = 1;
165
182
  for (const layer of picture.layers) {
166
183
  fillByColor(ctx, layer.rects, visible, colorOf, (r) => {
167
184
  const left = x(r.x0);
@@ -234,6 +251,7 @@ function drawMismatches(ctx, marks, frame) {
234
251
 
235
252
  export {
236
253
  parsePath,
254
+ trackColors,
237
255
  tubeMapPicture,
238
256
  drawTubeMap,
239
257
  mismatchesLegible,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  encodedColor,
3
3
  resolveEncoding
4
- } from "./chunk-ZNMHIPUZ.js";
4
+ } from "./chunk-DPV2CUIE.js";
5
5
  import {
6
6
  pathOrigin
7
7
  } from "./chunk-ST2IBUAN.js";
@@ -8,15 +8,15 @@ import {
8
8
  stripGeneGaps,
9
9
  walkStripFrame,
10
10
  walkStripLabelsTree
11
- } from "./chunk-ZYHSUNQO.js";
11
+ } from "./chunk-O2ANJQVH.js";
12
12
  import {
13
13
  walkRowsKey,
14
14
  walkRowsKeyTree,
15
15
  walkRowsTree
16
- } from "./chunk-7G7TFATC.js";
16
+ } from "./chunk-V3MD3IZB.js";
17
17
  import {
18
18
  Canvas2DRenderer
19
- } from "./chunk-CH3DLBUT.js";
19
+ } from "./chunk-2WNBVB55.js";
20
20
  import {
21
21
  EXON_COLOR,
22
22
  exonOutlineTree,
@@ -28,10 +28,10 @@ import {
28
28
  import {
29
29
  facetLifts,
30
30
  walkLift
31
- } from "./chunk-3LXG54PN.js";
31
+ } from "./chunk-MBB7ATM6.js";
32
32
  import {
33
33
  encodingStops
34
- } from "./chunk-ZNMHIPUZ.js";
34
+ } from "./chunk-DPV2CUIE.js";
35
35
  import {
36
36
  rangeText,
37
37
  walkKey
@@ -39,10 +39,10 @@ import {
39
39
  import {
40
40
  buildGeometry,
41
41
  computeReferenceRamp
42
- } from "./chunk-RCWYY6XA.js";
42
+ } from "./chunk-HBEKUQO4.js";
43
43
  import {
44
44
  version
45
- } from "./chunk-CNGKWYUC.js";
45
+ } from "./chunk-V5W5E3UN.js";
46
46
  import {
47
47
  axisScaleOf
48
48
  } from "./chunk-4UBWXZVX.js";
@@ -2,7 +2,7 @@ import {
2
2
  alongRow,
3
3
  boxesGenes,
4
4
  rowPitch
5
- } from "./chunk-7G7TFATC.js";
5
+ } from "./chunk-V3MD3IZB.js";
6
6
  import {
7
7
  LABEL_CHAR_PX
8
8
  } from "./chunk-AB35TJST.js";
@@ -3,10 +3,10 @@ import {
3
3
  RAMP_GRADIENT_STOPS,
4
4
  rampHueCss,
5
5
  rampStops
6
- } from "./chunk-AVJK272H.js";
6
+ } from "./chunk-6ZNQJ5ZD.js";
7
7
  import {
8
8
  REFERENCE_RAMP_ALT_CSS
9
- } from "./chunk-RCWYY6XA.js";
9
+ } from "./chunk-HBEKUQO4.js";
10
10
  import {
11
11
  LABEL_CHAR_PX
12
12
  } from "./chunk-AB35TJST.js";
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var version = "7.5.1";
2
+ var version = "8.0.1";
3
3
 
4
4
  export {
5
5
  version
@@ -2,10 +2,10 @@ import {
2
2
  LIFT_BACKDROP_CSS,
3
3
  computeColorSchemeRange,
4
4
  getNodeColor
5
- } from "./chunk-RCWYY6XA.js";
5
+ } from "./chunk-HBEKUQO4.js";
6
6
  import {
7
7
  abgrToCssRgba
8
- } from "./chunk-UMNCCYBN.js";
8
+ } from "./chunk-G2FD7S3C.js";
9
9
  import {
10
10
  isBackbone
11
11
  } from "./chunk-FYQWPEEY.js";
@@ -1,6 +1,5 @@
1
1
  import {
2
2
  canonicalStrand,
3
- readColor,
4
3
  stepName,
5
4
  tubeMapReads
6
5
  } from "./chunk-TEDQJPMI.js";
@@ -16,7 +15,7 @@ import {
16
15
  } from "./chunk-FYQWPEEY.js";
17
16
 
18
17
  // src/layout/tubeMapLayout.ts
19
- import { layoutTubeMap } from "@gmod/tubemap-core";
18
+ import { layoutTubeMap } from "@jbrowse/tubemap-core";
20
19
  function visitStrands(graph) {
21
20
  const strands = /* @__PURE__ */ new Map();
22
21
  for (const [segment, visits] of graph.pathVisits ?? []) {
@@ -93,8 +92,7 @@ function runTubeMap(graph) {
93
92
  const pathColors = paths.map((_, i) => tubeColor(i, paths.length));
94
93
  const layout = layoutTubeMap(tubeMapNodes(graph), tracks, reads, {
95
94
  nodeWidthOption: "compressed",
96
- trackWidth: tubeWidth(tracks.length),
97
- trackColor: (track) => track.type === "read" ? readColor(track) : pathColors[track.id]
95
+ trackWidth: tubeWidth(tracks.length)
98
96
  });
99
97
  return layout ? { layout, pathColors } : void 0;
100
98
  }
@@ -5,7 +5,7 @@ import {
5
5
  hasTubeMapPaths,
6
6
  tubeMapLayout,
7
7
  tubeMapReferenceLayout
8
- } from "./chunk-AYOSNXLQ.js";
8
+ } from "./chunk-W2I4DOL4.js";
9
9
  import {
10
10
  anchoredLayout
11
11
  } from "./chunk-L3O7AWLI.js";
@@ -7,9 +7,9 @@ import {
7
7
  import {
8
8
  LAYOUT_MODES,
9
9
  layoutModeByValue
10
- } from "../chunks/chunk-FRR2RGBT.js";
10
+ } from "../chunks/chunk-ZJQ6H3AR.js";
11
11
  import "../chunks/chunk-LOEA5IHZ.js";
12
- import "../chunks/chunk-AYOSNXLQ.js";
12
+ import "../chunks/chunk-W2I4DOL4.js";
13
13
  import "../chunks/chunk-TEDQJPMI.js";
14
14
  import "../chunks/chunk-L3O7AWLI.js";
15
15
  import "../chunks/chunk-TZFWUT2C.js";
@@ -35,25 +35,25 @@ import "../chunks/chunk-LYJ4US66.js";
35
35
  import "../chunks/chunk-7XHHVYG7.js";
36
36
  import {
37
37
  figureSvg
38
- } from "../chunks/chunk-7ESIZZO7.js";
38
+ } from "../chunks/chunk-MRZ7CFBN.js";
39
39
  import "../chunks/chunk-LOCJN3BZ.js";
40
40
  import "../chunks/chunk-47DYCZOK.js";
41
- import "../chunks/chunk-ZYHSUNQO.js";
41
+ import "../chunks/chunk-O2ANJQVH.js";
42
42
  import {
43
43
  genesOnRow,
44
44
  placeRowGenes
45
- } from "../chunks/chunk-7G7TFATC.js";
46
- import "../chunks/chunk-CH3DLBUT.js";
45
+ } from "../chunks/chunk-V3MD3IZB.js";
46
+ import "../chunks/chunk-2WNBVB55.js";
47
47
  import "../chunks/chunk-4BYTEJGW.js";
48
48
  import "../chunks/chunk-3S3YVOJ7.js";
49
49
  import "../chunks/chunk-BUBZ32IC.js";
50
- import "../chunks/chunk-3LXG54PN.js";
51
- import "../chunks/chunk-ZNMHIPUZ.js";
50
+ import "../chunks/chunk-MBB7ATM6.js";
51
+ import "../chunks/chunk-DPV2CUIE.js";
52
52
  import "../chunks/chunk-2LQ5BWT7.js";
53
- import "../chunks/chunk-AVJK272H.js";
54
- import "../chunks/chunk-RCWYY6XA.js";
55
- import "../chunks/chunk-UMNCCYBN.js";
56
- import "../chunks/chunk-CNGKWYUC.js";
53
+ import "../chunks/chunk-6ZNQJ5ZD.js";
54
+ import "../chunks/chunk-HBEKUQO4.js";
55
+ import "../chunks/chunk-G2FD7S3C.js";
56
+ import "../chunks/chunk-V5W5E3UN.js";
57
57
  import "../chunks/chunk-4UBWXZVX.js";
58
58
  import "../chunks/chunk-MP7LXLWV.js";
59
59
  import {
package/dist/figure.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  figureSvg
3
- } from "./chunks/chunk-7ESIZZO7.js";
3
+ } from "./chunks/chunk-MRZ7CFBN.js";
4
4
  import "./chunks/chunk-LOCJN3BZ.js";
5
5
  import "./chunks/chunk-47DYCZOK.js";
6
- import "./chunks/chunk-ZYHSUNQO.js";
7
- import "./chunks/chunk-7G7TFATC.js";
8
- import "./chunks/chunk-CH3DLBUT.js";
6
+ import "./chunks/chunk-O2ANJQVH.js";
7
+ import "./chunks/chunk-V3MD3IZB.js";
8
+ import "./chunks/chunk-2WNBVB55.js";
9
9
  import "./chunks/chunk-4BYTEJGW.js";
10
10
  import "./chunks/chunk-3S3YVOJ7.js";
11
11
  import "./chunks/chunk-BUBZ32IC.js";
12
- import "./chunks/chunk-3LXG54PN.js";
13
- import "./chunks/chunk-ZNMHIPUZ.js";
12
+ import "./chunks/chunk-MBB7ATM6.js";
13
+ import "./chunks/chunk-DPV2CUIE.js";
14
14
  import "./chunks/chunk-2LQ5BWT7.js";
15
- import "./chunks/chunk-AVJK272H.js";
16
- import "./chunks/chunk-RCWYY6XA.js";
17
- import "./chunks/chunk-UMNCCYBN.js";
18
- import "./chunks/chunk-CNGKWYUC.js";
15
+ import "./chunks/chunk-6ZNQJ5ZD.js";
16
+ import "./chunks/chunk-HBEKUQO4.js";
17
+ import "./chunks/chunk-G2FD7S3C.js";
18
+ import "./chunks/chunk-V5W5E3UN.js";
19
19
  import "./chunks/chunk-4UBWXZVX.js";
20
20
  import "./chunks/chunk-MP7LXLWV.js";
21
21
  import "./chunks/chunk-SZNZ2T6D.js";
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  drawTubeMap,
6
6
  tubeMapPicture
7
- } from "./chunks/chunk-CR7EGAFE.js";
7
+ } from "./chunks/chunk-KCRL5JB2.js";
8
8
  import {
9
9
  tubeMapFrame,
10
10
  tubeMapNodeAt
@@ -13,10 +13,10 @@ import {
13
13
  drawTubeMapGenes,
14
14
  tubeMapGenes
15
15
  } from "./chunks/chunk-OWFPAIJI.js";
16
- import "./chunks/chunk-EJ5OZTCK.js";
16
+ import "./chunks/chunk-733L2TS6.js";
17
17
  import {
18
18
  tubeMapNodeColors
19
- } from "./chunks/chunk-KEVQ46GG.js";
19
+ } from "./chunks/chunk-FFFQNQUI.js";
20
20
  import {
21
21
  referenceKnots,
22
22
  warpX
@@ -63,15 +63,15 @@ import {
63
63
  drawReferenceStrip,
64
64
  referenceStripBlocks,
65
65
  stripBlockAt
66
- } from "./chunks/chunk-UJ6GYL6T.js";
66
+ } from "./chunks/chunk-W253V6RR.js";
67
67
  import {
68
68
  FORCE_LAYOUT_LABEL,
69
69
  LAYOUT_MODES,
70
70
  layoutModeByValue,
71
71
  modeUsesLayoutEngine
72
- } from "./chunks/chunk-FRR2RGBT.js";
72
+ } from "./chunks/chunk-ZJQ6H3AR.js";
73
73
  import "./chunks/chunk-LOEA5IHZ.js";
74
- import "./chunks/chunk-AYOSNXLQ.js";
74
+ import "./chunks/chunk-W2I4DOL4.js";
75
75
  import "./chunks/chunk-TEDQJPMI.js";
76
76
  import "./chunks/chunk-L3O7AWLI.js";
77
77
  import "./chunks/chunk-TZFWUT2C.js";
@@ -112,7 +112,7 @@ import {
112
112
  } from "./chunks/chunk-7XHHVYG7.js";
113
113
  import {
114
114
  figureSvg
115
- } from "./chunks/chunk-7ESIZZO7.js";
115
+ } from "./chunks/chunk-MRZ7CFBN.js";
116
116
  import {
117
117
  layoutGeometryInputs
118
118
  } from "./chunks/chunk-LOCJN3BZ.js";
@@ -130,7 +130,7 @@ import {
130
130
  walkStripApplies,
131
131
  walkStripFrame,
132
132
  walkStripLabelsTree
133
- } from "./chunks/chunk-ZYHSUNQO.js";
133
+ } from "./chunks/chunk-O2ANJQVH.js";
134
134
  import {
135
135
  BAR_PX,
136
136
  CALL_TICK,
@@ -157,10 +157,10 @@ import {
157
157
  walkRowsKey,
158
158
  walkRowsKeyTree,
159
159
  walkRowsTree
160
- } from "./chunks/chunk-7G7TFATC.js";
160
+ } from "./chunks/chunk-V3MD3IZB.js";
161
161
  import {
162
162
  Canvas2DRenderer
163
- } from "./chunks/chunk-CH3DLBUT.js";
163
+ } from "./chunks/chunk-2WNBVB55.js";
164
164
  import {
165
165
  getDpr
166
166
  } from "./chunks/chunk-4BYTEJGW.js";
@@ -176,7 +176,7 @@ import {
176
176
  facetLifts,
177
177
  walkHighlight,
178
178
  walkLift
179
- } from "./chunks/chunk-3LXG54PN.js";
179
+ } from "./chunks/chunk-MBB7ATM6.js";
180
180
  import {
181
181
  WALK_FIELDS,
182
182
  WALK_SCHEMES,
@@ -184,7 +184,7 @@ import {
184
184
  encodingSwatchCss,
185
185
  resolveEncoding,
186
186
  schemeCss
187
- } from "./chunks/chunk-ZNMHIPUZ.js";
187
+ } from "./chunks/chunk-DPV2CUIE.js";
188
188
  import {
189
189
  rangeText,
190
190
  walkKey,
@@ -195,16 +195,16 @@ import {
195
195
  rampHue,
196
196
  rampHueCss,
197
197
  rampStops
198
- } from "./chunks/chunk-AVJK272H.js";
198
+ } from "./chunks/chunk-6ZNQJ5ZD.js";
199
199
  import {
200
200
  REFERENCE_RAMP_MAX_HUE,
201
201
  buildGeometry,
202
202
  computeReferenceRamp
203
- } from "./chunks/chunk-RCWYY6XA.js";
204
- import "./chunks/chunk-UMNCCYBN.js";
203
+ } from "./chunks/chunk-HBEKUQO4.js";
204
+ import "./chunks/chunk-G2FD7S3C.js";
205
205
  import {
206
206
  version
207
- } from "./chunks/chunk-CNGKWYUC.js";
207
+ } from "./chunks/chunk-V5W5E3UN.js";
208
208
  import {
209
209
  axisScaleOf,
210
210
  contains,
@@ -5,7 +5,7 @@ import {
5
5
  tubeMapTracks,
6
6
  tubeWidth,
7
7
  visitStrands
8
- } from "../chunks/chunk-AYOSNXLQ.js";
8
+ } from "../chunks/chunk-W2I4DOL4.js";
9
9
  import "../chunks/chunk-TEDQJPMI.js";
10
10
  import "../chunks/chunk-C44YRP5F.js";
11
11
  import "../chunks/chunk-7GBL7SJY.js";
@@ -26,10 +26,10 @@ import {
26
26
  walkRowsKey,
27
27
  walkRowsKeyTree,
28
28
  walkRowsTree
29
- } from "../chunks/chunk-7G7TFATC.js";
30
- import "../chunks/chunk-AVJK272H.js";
31
- import "../chunks/chunk-RCWYY6XA.js";
32
- import "../chunks/chunk-UMNCCYBN.js";
29
+ } from "../chunks/chunk-V3MD3IZB.js";
30
+ import "../chunks/chunk-6ZNQJ5ZD.js";
31
+ import "../chunks/chunk-HBEKUQO4.js";
32
+ import "../chunks/chunk-G2FD7S3C.js";
33
33
  import "../chunks/chunk-PBENCR5L.js";
34
34
  import "../chunks/chunk-7GBL7SJY.js";
35
35
  import "../chunks/chunk-WFB5TXRA.js";
@@ -9,13 +9,13 @@ import {
9
9
  walkStripApplies,
10
10
  walkStripFrame,
11
11
  walkStripLabelsTree
12
- } from "../chunks/chunk-ZYHSUNQO.js";
12
+ } from "../chunks/chunk-O2ANJQVH.js";
13
13
  import {
14
14
  LABELLED_ROW_PX
15
- } from "../chunks/chunk-7G7TFATC.js";
16
- import "../chunks/chunk-AVJK272H.js";
17
- import "../chunks/chunk-RCWYY6XA.js";
18
- import "../chunks/chunk-UMNCCYBN.js";
15
+ } from "../chunks/chunk-V3MD3IZB.js";
16
+ import "../chunks/chunk-6ZNQJ5ZD.js";
17
+ import "../chunks/chunk-HBEKUQO4.js";
18
+ import "../chunks/chunk-G2FD7S3C.js";
19
19
  import "../chunks/chunk-PBENCR5L.js";
20
20
  import "../chunks/chunk-7GBL7SJY.js";
21
21
  import "../chunks/chunk-WFB5TXRA.js";
@@ -4,9 +4,9 @@ import {
4
4
  LAYOUT_MODE_VALUES,
5
5
  layoutModeByValue,
6
6
  modeUsesLayoutEngine
7
- } from "./chunks/chunk-FRR2RGBT.js";
7
+ } from "./chunks/chunk-ZJQ6H3AR.js";
8
8
  import "./chunks/chunk-LOEA5IHZ.js";
9
- import "./chunks/chunk-AYOSNXLQ.js";
9
+ import "./chunks/chunk-W2I4DOL4.js";
10
10
  import "./chunks/chunk-TEDQJPMI.js";
11
11
  import "./chunks/chunk-L3O7AWLI.js";
12
12
  import "./chunks/chunk-TZFWUT2C.js";
@@ -4,9 +4,9 @@ import {
4
4
  rampHue,
5
5
  rampHueCss,
6
6
  rampStops
7
- } from "./chunks/chunk-AVJK272H.js";
8
- import "./chunks/chunk-RCWYY6XA.js";
9
- import "./chunks/chunk-UMNCCYBN.js";
7
+ } from "./chunks/chunk-6ZNQJ5ZD.js";
8
+ import "./chunks/chunk-HBEKUQO4.js";
9
+ import "./chunks/chunk-G2FD7S3C.js";
10
10
  import "./chunks/chunk-PBENCR5L.js";
11
11
  import "./chunks/chunk-7GBL7SJY.js";
12
12
  import "./chunks/chunk-WFB5TXRA.js";
@@ -7,9 +7,9 @@ import {
7
7
  stripBlockAt,
8
8
  stripOverhang,
9
9
  stripPixels
10
- } from "./chunks/chunk-UJ6GYL6T.js";
11
- import "./chunks/chunk-RCWYY6XA.js";
12
- import "./chunks/chunk-UMNCCYBN.js";
10
+ } from "./chunks/chunk-W253V6RR.js";
11
+ import "./chunks/chunk-HBEKUQO4.js";
12
+ import "./chunks/chunk-G2FD7S3C.js";
13
13
  import "./chunks/chunk-PBENCR5L.js";
14
14
  import "./chunks/chunk-7GBL7SJY.js";
15
15
  import "./chunks/chunk-WFB5TXRA.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Canvas2DRenderer,
3
3
  arrowheadOutline
4
- } from "../chunks/chunk-CH3DLBUT.js";
4
+ } from "../chunks/chunk-2WNBVB55.js";
5
5
  import "../chunks/chunk-4BYTEJGW.js";
6
- import "../chunks/chunk-UMNCCYBN.js";
6
+ import "../chunks/chunk-G2FD7S3C.js";
7
7
  export {
8
8
  Canvas2DRenderer,
9
9
  arrowheadOutline
@@ -11,8 +11,8 @@ import {
11
11
  endTangent,
12
12
  getNodeColor,
13
13
  hslToRgb
14
- } from "../chunks/chunk-RCWYY6XA.js";
15
- import "../chunks/chunk-UMNCCYBN.js";
14
+ } from "../chunks/chunk-HBEKUQO4.js";
15
+ import "../chunks/chunk-G2FD7S3C.js";
16
16
  import "../chunks/chunk-PBENCR5L.js";
17
17
  import "../chunks/chunk-7GBL7SJY.js";
18
18
  import "../chunks/chunk-WFB5TXRA.js";
@@ -8,7 +8,7 @@ import {
8
8
  fadeAbgr,
9
9
  normalizedRgbToCssRgba,
10
10
  packAbgr
11
- } from "../chunks/chunk-UMNCCYBN.js";
11
+ } from "../chunks/chunk-G2FD7S3C.js";
12
12
  export {
13
13
  abgrAlpha,
14
14
  abgrBlue,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  visitStrands
3
- } from "../chunks/chunk-AYOSNXLQ.js";
3
+ } from "../chunks/chunk-W2I4DOL4.js";
4
4
  import {
5
5
  canonicalStrand
6
6
  } from "../chunks/chunk-TEDQJPMI.js";
@@ -3,13 +3,17 @@ import {
3
3
  mismatchOnScreen,
4
4
  mismatchesLegible,
5
5
  parsePath,
6
+ trackColors,
6
7
  tubeMapPicture
7
- } from "../chunks/chunk-CR7EGAFE.js";
8
- import "../chunks/chunk-EJ5OZTCK.js";
8
+ } from "../chunks/chunk-KCRL5JB2.js";
9
+ import "../chunks/chunk-733L2TS6.js";
10
+ import "../chunks/chunk-TEDQJPMI.js";
11
+ import "../chunks/chunk-C44YRP5F.js";
9
12
  export {
10
13
  drawTubeMap,
11
14
  mismatchOnScreen,
12
15
  mismatchesLegible,
13
16
  parsePath,
17
+ trackColors,
14
18
  tubeMapPicture
15
19
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tubeMapMismatches
3
- } from "../chunks/chunk-EJ5OZTCK.js";
3
+ } from "../chunks/chunk-733L2TS6.js";
4
4
  export {
5
5
  tubeMapMismatches
6
6
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  tubeMapNodeColors
3
- } from "../chunks/chunk-KEVQ46GG.js";
4
- import "../chunks/chunk-RCWYY6XA.js";
5
- import "../chunks/chunk-UMNCCYBN.js";
3
+ } from "../chunks/chunk-FFFQNQUI.js";
4
+ import "../chunks/chunk-HBEKUQO4.js";
5
+ import "../chunks/chunk-G2FD7S3C.js";
6
6
  import "../chunks/chunk-PBENCR5L.js";
7
7
  import "../chunks/chunk-7GBL7SJY.js";
8
8
  import "../chunks/chunk-WFB5TXRA.js";
@@ -1,6 +1,6 @@
1
1
  import type { Coarsened } from '../tubeMap/coarsen.js';
2
2
  import type { Graph, LayoutResult } from '../types.js';
3
- import type { InputTrack, TubeMapLayout } from '@gmod/tubemap-core';
3
+ import type { InputTrack, TubeMapLayout } from '@jbrowse/tubemap-core';
4
4
  export interface TubeMapColumn {
5
5
  order: number;
6
6
  x0: number;
@@ -1,6 +1,6 @@
1
1
  import type { TubeMapFrame } from './draw.js';
2
2
  import type { Graph } from '../types.js';
3
- import type { TubeMapLayout } from '@gmod/tubemap-core';
3
+ import type { TubeMapLayout } from '@jbrowse/tubemap-core';
4
4
  export interface Box {
5
5
  bp0: number;
6
6
  bp1: number;
@@ -1,5 +1,5 @@
1
1
  import type { Graph } from '../types.js';
2
- import type { TubeMapLayout } from '@gmod/tubemap-core';
2
+ import type { TubeMapLayout } from '@jbrowse/tubemap-core';
3
3
  export interface ReferenceNode {
4
4
  node: string;
5
5
  bp0: number;
@@ -1,7 +1,7 @@
1
1
  import type { Deviation } from './coarsen.js';
2
2
  import type { TubeMapFrame } from './draw.js';
3
3
  import type { Graph } from '../types.js';
4
- import type { TubeMapLayout } from '@gmod/tubemap-core';
4
+ import type { TubeMapLayout } from '@jbrowse/tubemap-core';
5
5
  export interface DeviationMark {
6
6
  x0: number;
7
7
  x1: number;
@@ -1,6 +1,7 @@
1
1
  import type { TubeMapTransform } from './frame.js';
2
2
  import type { TubeMapMismatch } from './mismatches.js';
3
- import type { TubeMapLayout } from '@gmod/tubemap-core';
3
+ import type { TubeMapDrawing } from '../layout/tubeMapLayout.js';
4
+ import type { TubeMapLayout } from '@jbrowse/tubemap-core';
4
5
  type Command = {
5
6
  op: 'M' | 'L';
6
7
  x: number;
@@ -32,7 +33,6 @@ export declare function parsePath(d: string): Command[];
32
33
  interface Filled {
33
34
  color: string;
34
35
  track?: number;
35
- alpha: number;
36
36
  x0: number;
37
37
  x1: number;
38
38
  }
@@ -58,7 +58,8 @@ export interface TubeMapPicture {
58
58
  }[];
59
59
  mismatches: TubeMapMismatch[];
60
60
  }
61
- export declare function tubeMapPicture(layout: TubeMapLayout): TubeMapPicture;
61
+ export declare function trackColors(layout: TubeMapLayout, pathColors: readonly string[]): ReadonlyMap<number, string>;
62
+ export declare function tubeMapPicture({ layout, pathColors, }: Pick<TubeMapDrawing, 'layout' | 'pathColors'>): TubeMapPicture;
62
63
  export interface TubeMapFrame extends TubeMapTransform {
63
64
  width: number;
64
65
  highlightNode?: string | null;
@@ -1,4 +1,4 @@
1
- import type { TubeMapLayout } from '@gmod/tubemap-core';
1
+ import type { TubeMapLayout } from '@jbrowse/tubemap-core';
2
2
  interface MarkBase {
3
3
  readId: number;
4
4
  y: number;
@@ -1,6 +1,6 @@
1
1
  import type { GafRecord } from '../gaf/parseGaf.js';
2
2
  import type { Graph, GraphNode } from '../types.js';
3
- import type { InputTrack } from '@gmod/tubemap-core';
3
+ import type { InputTrack } from '@jbrowse/tubemap-core';
4
4
  export declare function canonicalStrand(node: GraphNode): "+" | "-";
5
5
  export declare function stepName(node: GraphNode, strand: '+' | '-'): string;
6
6
  export declare function tubeMapReads(graph: Graph, records: readonly GafRecord[], firstId: number): InputTrack[];
@@ -1 +1 @@
1
- export declare const version = "7.5.1";
1
+ export declare const version = "8.0.1";
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  version
3
- } from "./chunks/chunk-CNGKWYUC.js";
3
+ } from "./chunks/chunk-V5W5E3UN.js";
4
4
  export {
5
5
  version
6
6
  };
@@ -9,9 +9,9 @@ import {
9
9
  schemeColor,
10
10
  schemeCss,
11
11
  schemeRgb
12
- } from "./chunks/chunk-ZNMHIPUZ.js";
13
- import "./chunks/chunk-RCWYY6XA.js";
14
- import "./chunks/chunk-UMNCCYBN.js";
12
+ } from "./chunks/chunk-DPV2CUIE.js";
13
+ import "./chunks/chunk-HBEKUQO4.js";
14
+ import "./chunks/chunk-G2FD7S3C.js";
15
15
  import "./chunks/chunk-PBENCR5L.js";
16
16
  import "./chunks/chunk-7GBL7SJY.js";
17
17
  import "./chunks/chunk-WFB5TXRA.js";
@@ -2,10 +2,10 @@ import {
2
2
  facetLifts,
3
3
  walkHighlight,
4
4
  walkLift
5
- } from "./chunks/chunk-3LXG54PN.js";
6
- import "./chunks/chunk-ZNMHIPUZ.js";
7
- import "./chunks/chunk-RCWYY6XA.js";
8
- import "./chunks/chunk-UMNCCYBN.js";
5
+ } from "./chunks/chunk-MBB7ATM6.js";
6
+ import "./chunks/chunk-DPV2CUIE.js";
7
+ import "./chunks/chunk-HBEKUQO4.js";
8
+ import "./chunks/chunk-G2FD7S3C.js";
9
9
  import "./chunks/chunk-PBENCR5L.js";
10
10
  import "./chunks/chunk-7GBL7SJY.js";
11
11
  import "./chunks/chunk-WFB5TXRA.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/bandage-core",
3
- "version": "7.5.1",
3
+ "version": "8.0.1",
4
4
  "description": "Pangenome graph layout and drawing with no host: GFA in, the Bandage force-directed engine and reference-anchored layouts, a Canvas2D renderer, hit testing and labels out",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": {
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "@gmod/gbz-base": "^7.0.0",
38
38
  "@gmod/tabix": "^3.9.1",
39
- "@gmod/tubemap-core": "^0.1.0"
39
+ "@jbrowse/tubemap-core": "^0.2.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@eslint/js": "^10.0.1",