@jbrowse/bandage-core 11.11.0 → 11.11.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.
@@ -10,8 +10,12 @@ import {
10
10
  gapParts
11
11
  } from "./chunk-LG2UK4MB.js";
12
12
  import {
13
- pathOrigin
13
+ pathOrigin,
14
+ referenceVisitStarts
14
15
  } from "./chunk-3YBP46PB.js";
16
+ import {
17
+ isBackbone
18
+ } from "./chunk-RJWPJCIB.js";
15
19
  import {
16
20
  panSNContig
17
21
  } from "./chunk-2JL2JVZ2.js";
@@ -132,20 +136,60 @@ function highlightOf(graph, name, { byId, edgeAt }) {
132
136
  unknownBp
133
137
  };
134
138
  }
135
- function laneColors(byId, walk, encoding, ramp) {
139
+ function laneColors(graph, byId, walk, encoding, ramp) {
140
+ const places = encoding.field === "progress" || !ramp ? void 0 : referencePlaces(graph, byId, walk, ramp);
136
141
  const colors = /* @__PURE__ */ new Map();
137
142
  const passColors = /* @__PURE__ */ new Map();
138
143
  for (const [id, progress] of walk.passProgress) {
139
- const node = byId.get(id);
140
- const atNode = ramp && node ? rampFraction(node, ramp) : void 0;
144
+ const at = places?.get(id);
141
145
  const each = progress.map(
142
- (t) => encodedColor(encoding, encoding.field === "progress" ? t : atNode)
146
+ (t, pass) => encodedColor(encoding, places ? at?.[pass] : t)
143
147
  );
144
148
  colors.set(id, each[0]);
145
149
  passColors.set(id, each);
146
150
  }
147
151
  return { colors, passColors };
148
152
  }
153
+ function referencePlaces(graph, byId, walk, ramp) {
154
+ const startsOf = referenceVisitStarts(graph);
155
+ const places = /* @__PURE__ */ new Map();
156
+ for (const piece of walk.route) {
157
+ let cursor = Number.NaN;
158
+ let last = Number.NaN;
159
+ for (const id of piece) {
160
+ const node = byId.get(id);
161
+ let t = node && rampFraction(node, ramp);
162
+ if (node && t !== void 0 && isBackbone(node)) {
163
+ const starts = startsOf(node);
164
+ const len = node.length;
165
+ let at = starts[0];
166
+ if (starts.length > 1 && !Number.isNaN(cursor)) {
167
+ let gap = Infinity;
168
+ for (const start of starts) {
169
+ const g = Math.min(
170
+ Math.abs(start - cursor),
171
+ Math.abs(start + len - cursor)
172
+ );
173
+ if (g < gap) {
174
+ at = start;
175
+ gap = g;
176
+ }
177
+ }
178
+ t = (at + len / 2 - ramp.start) / ramp.span;
179
+ }
180
+ cursor = at + len === last ? at : at + len;
181
+ last = at;
182
+ }
183
+ const seen = places.get(id);
184
+ if (seen) {
185
+ seen.push(t);
186
+ } else {
187
+ places.set(id, [t]);
188
+ }
189
+ }
190
+ }
191
+ return places;
192
+ }
149
193
  function reversedNodes(graph, byId, walk) {
150
194
  const reversed = /* @__PURE__ */ new Set();
151
195
  let bp = 0;
@@ -198,7 +242,7 @@ function walkLift(graph, layers, ramp) {
198
242
  return {
199
243
  ...walk,
200
244
  encoding,
201
- ...laneColors(index.byId, walk, encoding, ramp),
245
+ ...laneColors(graph, index.byId, walk, encoding, ramp),
202
246
  reversed,
203
247
  reversedBp: bp
204
248
  };
@@ -220,7 +264,7 @@ function facetLifts(graph, lift, layers, ramp) {
220
264
  {
221
265
  ...walk,
222
266
  encoding,
223
- ...laneColors(byId, walk, encoding, ramp)
267
+ ...laneColors(graph, byId, walk, encoding, ramp)
224
268
  }
225
269
  ],
226
270
  ramp
@@ -12,13 +12,13 @@ import {
12
12
  } from "./chunk-HEYIAMTC.js";
13
13
  import {
14
14
  version
15
- } from "./chunk-N4QOWBRR.js";
15
+ } from "./chunk-OWNGPF73.js";
16
16
  import {
17
17
  axisScaleOf
18
18
  } from "./chunk-3DHGSHC3.js";
19
19
  import {
20
20
  figureScene
21
- } from "./chunk-R36RBFNH.js";
21
+ } from "./chunk-U2UPDVH4.js";
22
22
  import {
23
23
  encodingStops
24
24
  } from "./chunk-EB4Q35QD.js";
@@ -30,13 +30,13 @@ import {
30
30
  } from "./chunk-HEYIAMTC.js";
31
31
  import {
32
32
  version
33
- } from "./chunk-N4QOWBRR.js";
33
+ } from "./chunk-OWNGPF73.js";
34
34
  import {
35
35
  axisScaleOf
36
36
  } from "./chunk-3DHGSHC3.js";
37
37
  import {
38
38
  figureScene
39
- } from "./chunk-R36RBFNH.js";
39
+ } from "./chunk-U2UPDVH4.js";
40
40
  import {
41
41
  encodingStops
42
42
  } from "./chunk-EB4Q35QD.js";
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var version = "11.11.0";
2
+ var version = "11.11.1";
3
3
 
4
4
  export {
5
5
  version
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  facetLifts,
6
6
  walkLift
7
- } from "./chunk-F47LKG5B.js";
7
+ } from "./chunk-27QSY2OI.js";
8
8
  import {
9
9
  buildGeometry,
10
10
  computeReferenceRamp
@@ -9,7 +9,7 @@ import "../chunks/chunk-EQDQ7P4Y.js";
9
9
  import {
10
10
  laidOutGraph,
11
11
  walkLayers
12
- } from "../chunks/chunk-7553WCL3.js";
12
+ } from "../chunks/chunk-4CK2SN7U.js";
13
13
  import {
14
14
  LAYOUT_ENGINE_VALUES,
15
15
  isLayoutEngineKind
@@ -36,7 +36,7 @@ import "../chunks/chunk-ZKSC7QVE.js";
36
36
  import "../chunks/chunk-HNWJ4B7S.js";
37
37
  import {
38
38
  figureSvg
39
- } from "../chunks/chunk-JPT44REW.js";
39
+ } from "../chunks/chunk-LF7V3QSH.js";
40
40
  import "../chunks/chunk-V4YML3GR.js";
41
41
  import "../chunks/chunk-KYTV5EAZ.js";
42
42
  import "../chunks/chunk-4DMSPNYV.js";
@@ -50,11 +50,11 @@ import "../chunks/chunk-TQ26XEFL.js";
50
50
  import "../chunks/chunk-4JDO7ZLN.js";
51
51
  import "../chunks/chunk-7YSIP3O2.js";
52
52
  import "../chunks/chunk-HEYIAMTC.js";
53
- import "../chunks/chunk-N4QOWBRR.js";
53
+ import "../chunks/chunk-OWNGPF73.js";
54
54
  import "../chunks/chunk-3DHGSHC3.js";
55
- import "../chunks/chunk-R36RBFNH.js";
55
+ import "../chunks/chunk-U2UPDVH4.js";
56
56
  import "../chunks/chunk-LOCJN3BZ.js";
57
- import "../chunks/chunk-F47LKG5B.js";
57
+ import "../chunks/chunk-27QSY2OI.js";
58
58
  import "../chunks/chunk-EB4Q35QD.js";
59
59
  import "../chunks/chunk-GXCMBPC6.js";
60
60
  import "../chunks/chunk-4KBZ7WPP.js";
package/dist/figure.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  figureSvg
3
- } from "./chunks/chunk-JPT44REW.js";
3
+ } from "./chunks/chunk-LF7V3QSH.js";
4
4
  import "./chunks/chunk-V4YML3GR.js";
5
5
  import "./chunks/chunk-KYTV5EAZ.js";
6
6
  import "./chunks/chunk-4DMSPNYV.js";
@@ -11,11 +11,11 @@ import "./chunks/chunk-TQ26XEFL.js";
11
11
  import "./chunks/chunk-4JDO7ZLN.js";
12
12
  import "./chunks/chunk-7YSIP3O2.js";
13
13
  import "./chunks/chunk-HEYIAMTC.js";
14
- import "./chunks/chunk-N4QOWBRR.js";
14
+ import "./chunks/chunk-OWNGPF73.js";
15
15
  import "./chunks/chunk-3DHGSHC3.js";
16
- import "./chunks/chunk-R36RBFNH.js";
16
+ import "./chunks/chunk-U2UPDVH4.js";
17
17
  import "./chunks/chunk-LOCJN3BZ.js";
18
- import "./chunks/chunk-F47LKG5B.js";
18
+ import "./chunks/chunk-27QSY2OI.js";
19
19
  import "./chunks/chunk-EB4Q35QD.js";
20
20
  import "./chunks/chunk-GXCMBPC6.js";
21
21
  import "./chunks/chunk-4KBZ7WPP.js";
@@ -3,7 +3,7 @@ import {
3
3
  gfaFigureData,
4
4
  laidOutGraph,
5
5
  walkLayers
6
- } from "./chunks/chunk-7553WCL3.js";
6
+ } from "./chunks/chunk-4CK2SN7U.js";
7
7
  import "./chunks/chunk-CO6RGQAD.js";
8
8
  import "./chunks/chunk-WE7CLY2E.js";
9
9
  import "./chunks/chunk-XR2HMGAS.js";
@@ -18,11 +18,11 @@ import "./chunks/chunk-FNDNSDKW.js";
18
18
  import "./chunks/chunk-ZKSC7QVE.js";
19
19
  import "./chunks/chunk-HNWJ4B7S.js";
20
20
  import "./chunks/chunk-HEYIAMTC.js";
21
- import "./chunks/chunk-N4QOWBRR.js";
21
+ import "./chunks/chunk-OWNGPF73.js";
22
22
  import "./chunks/chunk-3DHGSHC3.js";
23
- import "./chunks/chunk-R36RBFNH.js";
23
+ import "./chunks/chunk-U2UPDVH4.js";
24
24
  import "./chunks/chunk-LOCJN3BZ.js";
25
- import "./chunks/chunk-F47LKG5B.js";
25
+ import "./chunks/chunk-27QSY2OI.js";
26
26
  import "./chunks/chunk-EB4Q35QD.js";
27
27
  import "./chunks/chunk-GXCMBPC6.js";
28
28
  import "./chunks/chunk-4KBZ7WPP.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  figureScene
3
- } from "./chunks/chunk-R36RBFNH.js";
3
+ } from "./chunks/chunk-U2UPDVH4.js";
4
4
  import "./chunks/chunk-LOCJN3BZ.js";
5
- import "./chunks/chunk-F47LKG5B.js";
5
+ import "./chunks/chunk-27QSY2OI.js";
6
6
  import "./chunks/chunk-EB4Q35QD.js";
7
7
  import "./chunks/chunk-GXCMBPC6.js";
8
8
  import "./chunks/chunk-4KBZ7WPP.js";
package/dist/index.js CHANGED
@@ -97,7 +97,7 @@ import {
97
97
  import {
98
98
  figureData,
99
99
  gfaFigureData
100
- } from "./chunks/chunk-7553WCL3.js";
100
+ } from "./chunks/chunk-4CK2SN7U.js";
101
101
  import {
102
102
  LAYOUT_ENGINES,
103
103
  layoutEngine
@@ -134,7 +134,7 @@ import {
134
134
  import "./chunks/chunk-HNWJ4B7S.js";
135
135
  import {
136
136
  figureSvg
137
- } from "./chunks/chunk-JPT44REW.js";
137
+ } from "./chunks/chunk-LF7V3QSH.js";
138
138
  import {
139
139
  svgCanvas
140
140
  } from "./chunks/chunk-V4YML3GR.js";
@@ -205,7 +205,7 @@ import {
205
205
  } from "./chunks/chunk-HEYIAMTC.js";
206
206
  import {
207
207
  version
208
- } from "./chunks/chunk-N4QOWBRR.js";
208
+ } from "./chunks/chunk-OWNGPF73.js";
209
209
  import {
210
210
  axisScaleOf,
211
211
  contains,
@@ -214,7 +214,7 @@ import {
214
214
  viewportOf,
215
215
  zoomAbout
216
216
  } from "./chunks/chunk-3DHGSHC3.js";
217
- import "./chunks/chunk-R36RBFNH.js";
217
+ import "./chunks/chunk-U2UPDVH4.js";
218
218
  import {
219
219
  layoutGeometryInputs
220
220
  } from "./chunks/chunk-LOCJN3BZ.js";
@@ -222,7 +222,7 @@ import {
222
222
  facetLifts,
223
223
  walkHighlight,
224
224
  walkLift
225
- } from "./chunks/chunk-F47LKG5B.js";
225
+ } from "./chunks/chunk-27QSY2OI.js";
226
226
  import {
227
227
  WALK_FIELDS,
228
228
  WALK_SCHEMES,
@@ -1 +1 @@
1
- export declare const version = "11.11.0";
1
+ export declare const version = "11.11.1";
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  version
3
- } from "./chunks/chunk-N4QOWBRR.js";
3
+ } from "./chunks/chunk-OWNGPF73.js";
4
4
  export {
5
5
  version
6
6
  };
@@ -2,7 +2,7 @@ import {
2
2
  facetLifts,
3
3
  walkHighlight,
4
4
  walkLift
5
- } from "./chunks/chunk-F47LKG5B.js";
5
+ } from "./chunks/chunk-27QSY2OI.js";
6
6
  import "./chunks/chunk-EB4Q35QD.js";
7
7
  import "./chunks/chunk-GXCMBPC6.js";
8
8
  import "./chunks/chunk-4KBZ7WPP.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/bandage-core",
3
- "version": "11.11.0",
3
+ "version": "11.11.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": {