@jbrowse/bandage-core 9.10.0 → 10.0.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 (74) hide show
  1. package/dist/bubbles/popBubble.js +3 -2
  2. package/dist/bubbles/superbubbles.js +4 -3
  3. package/dist/chunks/{chunk-Q6UIUY6X.js → chunk-33T67FPZ.js} +1 -1
  4. package/dist/chunks/{chunk-TOVOJNT7.js → chunk-3APK25GI.js} +1 -1
  5. package/dist/chunks/{chunk-A6PSWTLX.js → chunk-4QTNXTGW.js} +1 -1
  6. package/dist/chunks/{chunk-5GZEPPEW.js → chunk-BEWLQADP.js} +1 -1
  7. package/dist/chunks/{chunk-2VTM3DHG.js → chunk-CDPYXHVR.js} +1 -1
  8. package/dist/chunks/{chunk-K5NYTPLC.js → chunk-DCJC32QW.js} +1 -1
  9. package/dist/chunks/{chunk-IZI7KIVX.js → chunk-E5UEYZWK.js} +1 -1
  10. package/dist/chunks/{chunk-IGJCTPFB.js → chunk-EMUUNWRU.js} +52 -43
  11. package/dist/chunks/{chunk-PIN7ZMTZ.js → chunk-EU6FBTQF.js} +4 -4
  12. package/dist/chunks/{chunk-LZWSZRUY.js → chunk-FG762CCP.js} +3 -8
  13. package/dist/chunks/{chunk-73RSLGZT.js → chunk-FLFBYSJO.js} +1 -1
  14. package/dist/chunks/{chunk-FUUJ76KD.js → chunk-ICXMWYOA.js} +5 -5
  15. package/dist/chunks/{chunk-CXKZYLYS.js → chunk-IM4SJUPO.js} +12 -22
  16. package/dist/chunks/{chunk-6PYZYBBF.js → chunk-KAN2WTG5.js} +1 -1
  17. package/dist/chunks/{chunk-BDWQQK33.js → chunk-KJYSOHVN.js} +1 -1
  18. package/dist/chunks/{chunk-4IYP43W6.js → chunk-NP356MC2.js} +1 -1
  19. package/dist/chunks/{chunk-TFAFIRZB.js → chunk-OEPCRURR.js} +1 -1
  20. package/dist/chunks/{chunk-PT37VS5B.js → chunk-OOLNLCIO.js} +1 -1
  21. package/dist/chunks/{chunk-OA7RIMZ2.js → chunk-PSMKPSO4.js} +89 -22
  22. package/dist/chunks/{chunk-NGODVSCA.js → chunk-Q6IOQP4J.js} +8 -8
  23. package/dist/chunks/{chunk-LTUWJKHD.js → chunk-Q7LYHGGQ.js} +114 -6
  24. package/dist/chunks/{chunk-MVMP6AGI.js → chunk-QIVPRZ4H.js} +12 -7
  25. package/dist/chunks/{chunk-J7YKQ5YW.js → chunk-QXAB2FLJ.js} +1 -1
  26. package/dist/chunks/chunk-RAEABQNW.js +227 -0
  27. package/dist/chunks/{chunk-XZ2BLAA6.js → chunk-REE4GUDM.js} +1 -1
  28. package/dist/chunks/{chunk-2FLBFVMO.js → chunk-RJXPPYA7.js} +13 -13
  29. package/dist/chunks/{chunk-KYY5363X.js → chunk-VOWI544A.js} +1 -1
  30. package/dist/chunks/{chunk-FJZ2TB46.js → chunk-VZNKA3K2.js} +2 -2
  31. package/dist/chunks/{chunk-HRAU4VTB.js → chunk-W4GZCVUK.js} +6 -6
  32. package/dist/chunks/{chunk-DMH4NL2M.js → chunk-WI7ZHJ27.js} +2 -2
  33. package/dist/cli/figure.js +24 -23
  34. package/dist/cli/fold.js +6 -5
  35. package/dist/figure.js +19 -18
  36. package/dist/figureData.js +20 -19
  37. package/dist/figureSettings.js +7 -6
  38. package/dist/gbzCut.js +3 -2
  39. package/dist/gbzWindow.js +6 -1
  40. package/dist/gfa/gfaConverter.js +3 -2
  41. package/dist/gfa/graphTables.js +2 -1
  42. package/dist/index.js +57 -47
  43. package/dist/layout/forceCache.js +7 -6
  44. package/dist/layout/trimToWindow.js +17 -23
  45. package/dist/layout/tubeMapLayout.js +4 -3
  46. package/dist/layout/walkRowDraw.js +6 -5
  47. package/dist/layout/walkRowLayout.js +4 -3
  48. package/dist/layout/walkRows.js +3 -2
  49. package/dist/layout/walkStrip.js +7 -6
  50. package/dist/layoutModes.js +8 -7
  51. package/dist/pathAnchoring.js +2 -1
  52. package/dist/pathColors.js +3 -2
  53. package/dist/pathVisits.js +8 -0
  54. package/dist/pipeline.js +6 -5
  55. package/dist/referenceRampCss.js +5 -4
  56. package/dist/referenceStrip.js +5 -4
  57. package/dist/renderer/GeometryBuilder.js +4 -3
  58. package/dist/tubeMap/bundle.js +5 -4
  59. package/dist/tubeMap/coarsen.js +15 -13
  60. package/dist/tubeMap/draw.js +4 -3
  61. package/dist/tubeMap/nodeColors.js +5 -4
  62. package/dist/types/gbzWindow.d.ts +15 -1
  63. package/dist/types/gfa/gfaConverter.d.ts +1 -1
  64. package/dist/types/index.d.ts +2 -1
  65. package/dist/types/layout/deletionRoutes.d.ts +1 -1
  66. package/dist/types/pathAnchoring.d.ts +3 -2
  67. package/dist/types/pathVisits.d.ts +64 -0
  68. package/dist/types/types.d.ts +2 -1
  69. package/dist/types/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/dist/viewport.js +7 -6
  72. package/dist/walkEncoding.js +5 -4
  73. package/dist/walkHighlight.js +6 -5
  74. package/package.json +1 -1
@@ -26,15 +26,16 @@ import {
26
26
  walkRowsKey,
27
27
  walkRowsKeyTree,
28
28
  walkRowsTree
29
- } from "../chunks/chunk-FJZ2TB46.js";
30
- import "../chunks/chunk-K5NYTPLC.js";
29
+ } from "../chunks/chunk-VZNKA3K2.js";
30
+ import "../chunks/chunk-DCJC32QW.js";
31
31
  import "../chunks/chunk-NNODIW4U.js";
32
- import "../chunks/chunk-4IYP43W6.js";
32
+ import "../chunks/chunk-NP356MC2.js";
33
33
  import "../chunks/chunk-G2FD7S3C.js";
34
34
  import "../chunks/chunk-WFB5TXRA.js";
35
- import "../chunks/chunk-XZ2BLAA6.js";
35
+ import "../chunks/chunk-REE4GUDM.js";
36
36
  import "../chunks/chunk-PBENCR5L.js";
37
- import "../chunks/chunk-IGJCTPFB.js";
37
+ import "../chunks/chunk-EMUUNWRU.js";
38
+ import "../chunks/chunk-RAEABQNW.js";
38
39
  import "../chunks/chunk-ES2N6V56.js";
39
40
  import "../chunks/chunk-BPLIXMH7.js";
40
41
  import "../chunks/chunk-3ZZSX5HN.js";
@@ -2,9 +2,10 @@ import {
2
2
  walkRowLabels,
3
3
  walkRowLayout,
4
4
  walkRowsExtent
5
- } from "../chunks/chunk-TOVOJNT7.js";
6
- import "../chunks/chunk-6PYZYBBF.js";
7
- import "../chunks/chunk-IGJCTPFB.js";
5
+ } from "../chunks/chunk-3APK25GI.js";
6
+ import "../chunks/chunk-KAN2WTG5.js";
7
+ import "../chunks/chunk-EMUUNWRU.js";
8
+ import "../chunks/chunk-RAEABQNW.js";
8
9
  import "../chunks/chunk-BPLIXMH7.js";
9
10
  import "../chunks/chunk-CPMHA4W5.js";
10
11
  import "../chunks/chunk-FYQWPEEY.js";
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  filterSamples,
3
3
  walkRows
4
- } from "../chunks/chunk-6PYZYBBF.js";
5
- import "../chunks/chunk-IGJCTPFB.js";
4
+ } from "../chunks/chunk-KAN2WTG5.js";
5
+ import "../chunks/chunk-EMUUNWRU.js";
6
+ import "../chunks/chunk-RAEABQNW.js";
6
7
  import "../chunks/chunk-BPLIXMH7.js";
7
8
  import "../chunks/chunk-FYQWPEEY.js";
8
9
  export {
@@ -9,18 +9,19 @@ import {
9
9
  walkStripApplies,
10
10
  walkStripFrame,
11
11
  walkStripLabelsTree
12
- } from "../chunks/chunk-DMH4NL2M.js";
12
+ } from "../chunks/chunk-WI7ZHJ27.js";
13
13
  import {
14
14
  LABELLED_ROW_PX
15
- } from "../chunks/chunk-FJZ2TB46.js";
16
- import "../chunks/chunk-K5NYTPLC.js";
15
+ } from "../chunks/chunk-VZNKA3K2.js";
16
+ import "../chunks/chunk-DCJC32QW.js";
17
17
  import "../chunks/chunk-NNODIW4U.js";
18
- import "../chunks/chunk-4IYP43W6.js";
18
+ import "../chunks/chunk-NP356MC2.js";
19
19
  import "../chunks/chunk-G2FD7S3C.js";
20
20
  import "../chunks/chunk-WFB5TXRA.js";
21
- import "../chunks/chunk-XZ2BLAA6.js";
21
+ import "../chunks/chunk-REE4GUDM.js";
22
22
  import "../chunks/chunk-PBENCR5L.js";
23
- import "../chunks/chunk-IGJCTPFB.js";
23
+ import "../chunks/chunk-EMUUNWRU.js";
24
+ import "../chunks/chunk-RAEABQNW.js";
24
25
  import "../chunks/chunk-ES2N6V56.js";
25
26
  import "../chunks/chunk-BPLIXMH7.js";
26
27
  import "../chunks/chunk-3ZZSX5HN.js";
@@ -4,19 +4,20 @@ import {
4
4
  LAYOUT_MODE_VALUES,
5
5
  layoutModeByValue,
6
6
  modeUsesLayoutEngine
7
- } from "./chunks/chunk-FUUJ76KD.js";
8
- import "./chunks/chunk-LOEA5IHZ.js";
9
- import "./chunks/chunk-CXKZYLYS.js";
7
+ } from "./chunks/chunk-ICXMWYOA.js";
8
+ import "./chunks/chunk-IM4SJUPO.js";
10
9
  import "./chunks/chunk-CWFNEKST.js";
10
+ import "./chunks/chunk-LOEA5IHZ.js";
11
11
  import "./chunks/chunk-L3O7AWLI.js";
12
12
  import "./chunks/chunk-TZFWUT2C.js";
13
13
  import "./chunks/chunk-HNQPEMYE.js";
14
14
  import "./chunks/chunk-C44YRP5F.js";
15
15
  import "./chunks/chunk-RVS2QCOX.js";
16
- import "./chunks/chunk-TOVOJNT7.js";
17
- import "./chunks/chunk-6PYZYBBF.js";
18
- import "./chunks/chunk-XZ2BLAA6.js";
19
- import "./chunks/chunk-IGJCTPFB.js";
16
+ import "./chunks/chunk-3APK25GI.js";
17
+ import "./chunks/chunk-KAN2WTG5.js";
18
+ import "./chunks/chunk-REE4GUDM.js";
19
+ import "./chunks/chunk-EMUUNWRU.js";
20
+ import "./chunks/chunk-RAEABQNW.js";
20
21
  import "./chunks/chunk-ES2N6V56.js";
21
22
  import "./chunks/chunk-BPLIXMH7.js";
22
23
  import "./chunks/chunk-3ZZSX5HN.js";
@@ -5,7 +5,8 @@ import {
5
5
  pathOrigin,
6
6
  surveyPaths,
7
7
  trimOrigins
8
- } from "./chunks/chunk-IGJCTPFB.js";
8
+ } from "./chunks/chunk-EMUUNWRU.js";
9
+ import "./chunks/chunk-RAEABQNW.js";
9
10
  import "./chunks/chunk-BPLIXMH7.js";
10
11
  import "./chunks/chunk-FYQWPEEY.js";
11
12
  export {
@@ -9,8 +9,9 @@ import {
9
9
  pathHueAt,
10
10
  pathLegend,
11
11
  walkLabelsOf
12
- } from "./chunks/chunk-XZ2BLAA6.js";
13
- import "./chunks/chunk-IGJCTPFB.js";
12
+ } from "./chunks/chunk-REE4GUDM.js";
13
+ import "./chunks/chunk-EMUUNWRU.js";
14
+ import "./chunks/chunk-RAEABQNW.js";
14
15
  import "./chunks/chunk-BPLIXMH7.js";
15
16
  import "./chunks/chunk-3ZZSX5HN.js";
16
17
  import "./chunks/chunk-AB35TJST.js";
@@ -0,0 +1,8 @@
1
+ import {
2
+ PathVisits,
3
+ PathVisitsBuilder
4
+ } from "./chunks/chunk-RAEABQNW.js";
5
+ export {
6
+ PathVisits,
7
+ PathVisitsBuilder
8
+ };
package/dist/pipeline.js CHANGED
@@ -11,18 +11,19 @@ import {
11
11
  forceLayout,
12
12
  layoutExtent,
13
13
  loadGraph
14
- } from "./chunks/chunk-HRAU4VTB.js";
14
+ } from "./chunks/chunk-W4GZCVUK.js";
15
15
  import "./chunks/chunk-IGVV37VI.js";
16
16
  import "./chunks/chunk-OPPVSPEF.js";
17
17
  import "./chunks/chunk-PUG7LXDF.js";
18
- import "./chunks/chunk-J7YKQ5YW.js";
19
- import "./chunks/chunk-G45YY72K.js";
20
- import "./chunks/chunk-OA7RIMZ2.js";
18
+ import "./chunks/chunk-QXAB2FLJ.js";
21
19
  import "./chunks/chunk-QYBZZI5H.js";
20
+ import "./chunks/chunk-PSMKPSO4.js";
22
21
  import "./chunks/chunk-CDLPYR5O.js";
23
22
  import "./chunks/chunk-JVLURPFW.js";
24
- import "./chunks/chunk-IGJCTPFB.js";
23
+ import "./chunks/chunk-EMUUNWRU.js";
24
+ import "./chunks/chunk-RAEABQNW.js";
25
25
  import "./chunks/chunk-ES2N6V56.js";
26
+ import "./chunks/chunk-G45YY72K.js";
26
27
  import "./chunks/chunk-BPLIXMH7.js";
27
28
  import "./chunks/chunk-TAMCZHLW.js";
28
29
  import "./chunks/chunk-UVBGRJQX.js";
@@ -4,13 +4,14 @@ import {
4
4
  rampHue,
5
5
  rampHueCss,
6
6
  rampStops
7
- } from "./chunks/chunk-K5NYTPLC.js";
8
- import "./chunks/chunk-4IYP43W6.js";
7
+ } from "./chunks/chunk-DCJC32QW.js";
8
+ import "./chunks/chunk-NP356MC2.js";
9
9
  import "./chunks/chunk-G2FD7S3C.js";
10
10
  import "./chunks/chunk-WFB5TXRA.js";
11
- import "./chunks/chunk-XZ2BLAA6.js";
11
+ import "./chunks/chunk-REE4GUDM.js";
12
12
  import "./chunks/chunk-PBENCR5L.js";
13
- import "./chunks/chunk-IGJCTPFB.js";
13
+ import "./chunks/chunk-EMUUNWRU.js";
14
+ import "./chunks/chunk-RAEABQNW.js";
14
15
  import "./chunks/chunk-ES2N6V56.js";
15
16
  import "./chunks/chunk-BPLIXMH7.js";
16
17
  import "./chunks/chunk-3ZZSX5HN.js";
@@ -7,13 +7,14 @@ import {
7
7
  stripBlockAt,
8
8
  stripOverhang,
9
9
  stripPixels
10
- } from "./chunks/chunk-BDWQQK33.js";
11
- import "./chunks/chunk-4IYP43W6.js";
10
+ } from "./chunks/chunk-KJYSOHVN.js";
11
+ import "./chunks/chunk-NP356MC2.js";
12
12
  import "./chunks/chunk-G2FD7S3C.js";
13
13
  import "./chunks/chunk-WFB5TXRA.js";
14
- import "./chunks/chunk-XZ2BLAA6.js";
14
+ import "./chunks/chunk-REE4GUDM.js";
15
15
  import "./chunks/chunk-PBENCR5L.js";
16
- import "./chunks/chunk-IGJCTPFB.js";
16
+ import "./chunks/chunk-EMUUNWRU.js";
17
+ import "./chunks/chunk-RAEABQNW.js";
17
18
  import "./chunks/chunk-ES2N6V56.js";
18
19
  import "./chunks/chunk-BPLIXMH7.js";
19
20
  import "./chunks/chunk-3ZZSX5HN.js";
@@ -11,12 +11,13 @@ import {
11
11
  endTangent,
12
12
  getNodeColor,
13
13
  hslToRgb
14
- } from "../chunks/chunk-4IYP43W6.js";
14
+ } from "../chunks/chunk-NP356MC2.js";
15
15
  import "../chunks/chunk-G2FD7S3C.js";
16
16
  import "../chunks/chunk-WFB5TXRA.js";
17
- import "../chunks/chunk-XZ2BLAA6.js";
17
+ import "../chunks/chunk-REE4GUDM.js";
18
18
  import "../chunks/chunk-PBENCR5L.js";
19
- import "../chunks/chunk-IGJCTPFB.js";
19
+ import "../chunks/chunk-EMUUNWRU.js";
20
+ import "../chunks/chunk-RAEABQNW.js";
20
21
  import "../chunks/chunk-ES2N6V56.js";
21
22
  import "../chunks/chunk-BPLIXMH7.js";
22
23
  import "../chunks/chunk-3ZZSX5HN.js";
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  bundleRoutes
3
- } from "../chunks/chunk-LZWSZRUY.js";
4
- import "../chunks/chunk-CXKZYLYS.js";
3
+ } from "../chunks/chunk-FG762CCP.js";
4
+ import "../chunks/chunk-IM4SJUPO.js";
5
5
  import "../chunks/chunk-CWFNEKST.js";
6
6
  import "../chunks/chunk-C44YRP5F.js";
7
- import "../chunks/chunk-XZ2BLAA6.js";
8
- import "../chunks/chunk-IGJCTPFB.js";
7
+ import "../chunks/chunk-REE4GUDM.js";
8
+ import "../chunks/chunk-EMUUNWRU.js";
9
+ import "../chunks/chunk-RAEABQNW.js";
9
10
  import "../chunks/chunk-BPLIXMH7.js";
10
11
  import "../chunks/chunk-3ZZSX5HN.js";
11
12
  import "../chunks/chunk-AB35TJST.js";
@@ -1,12 +1,15 @@
1
1
  import {
2
2
  pathSteps
3
- } from "../chunks/chunk-CXKZYLYS.js";
3
+ } from "../chunks/chunk-IM4SJUPO.js";
4
4
  import "../chunks/chunk-CWFNEKST.js";
5
5
  import "../chunks/chunk-C44YRP5F.js";
6
- import "../chunks/chunk-XZ2BLAA6.js";
6
+ import "../chunks/chunk-REE4GUDM.js";
7
7
  import {
8
8
  pathOrigin
9
- } from "../chunks/chunk-IGJCTPFB.js";
9
+ } from "../chunks/chunk-EMUUNWRU.js";
10
+ import {
11
+ PathVisitsBuilder
12
+ } from "../chunks/chunk-RAEABQNW.js";
10
13
  import "../chunks/chunk-BPLIXMH7.js";
11
14
  import "../chunks/chunk-3ZZSX5HN.js";
12
15
  import "../chunks/chunk-AB35TJST.js";
@@ -231,7 +234,7 @@ function coarsenTubeMap(graph, sigma) {
231
234
  };
232
235
  const deviations = /* @__PURE__ */ new Map();
233
236
  const coarsePaths = [];
234
- const pathVisits = /* @__PURE__ */ new Map();
237
+ const pathVisits = new PathVisitsBuilder();
235
238
  const edges = /* @__PURE__ */ new Map();
236
239
  const depth = /* @__PURE__ */ new Map();
237
240
  for (const { path, runs, gaps } of walks) {
@@ -299,14 +302,13 @@ function coarsenTubeMap(graph, sigma) {
299
302
  let pos = 0;
300
303
  steps.forEach(({ node, strand }, i) => {
301
304
  depth.set(node.id, (depth.get(node.id) ?? 0) + 1);
302
- const visits = pathVisits.get(node.name) ?? [];
303
- visits.push({
304
- path: visitName,
305
- sample: path.sample ?? visitName,
306
- start: pos,
307
- strand
308
- });
309
- pathVisits.set(node.name, visits);
305
+ pathVisits.add(
306
+ node.name,
307
+ visitName,
308
+ path.sample ?? visitName,
309
+ pos,
310
+ strand === "-"
311
+ );
310
312
  pos += node.length;
311
313
  const next = steps[i + 1];
312
314
  if (next) {
@@ -335,7 +337,7 @@ function coarsenTubeMap(graph, sigma) {
335
337
  nodes,
336
338
  edges: [...edges.values()],
337
339
  paths: coarsePaths,
338
- pathVisits,
340
+ pathVisits: pathVisits.build(),
339
341
  reads: void 0
340
342
  },
341
343
  members,
@@ -8,12 +8,13 @@ import {
8
8
  tubeMapMismatchAt,
9
9
  tubeMapPicture,
10
10
  tubeMapTrackAt
11
- } from "../chunks/chunk-PIN7ZMTZ.js";
12
- import "../chunks/chunk-XXT2JCAC.js";
11
+ } from "../chunks/chunk-EU6FBTQF.js";
13
12
  import "../chunks/chunk-HK5Y2YWV.js";
13
+ import "../chunks/chunk-XXT2JCAC.js";
14
14
  import "../chunks/chunk-CWFNEKST.js";
15
15
  import "../chunks/chunk-C44YRP5F.js";
16
- import "../chunks/chunk-IGJCTPFB.js";
16
+ import "../chunks/chunk-EMUUNWRU.js";
17
+ import "../chunks/chunk-RAEABQNW.js";
17
18
  import "../chunks/chunk-BPLIXMH7.js";
18
19
  import "../chunks/chunk-FYQWPEEY.js";
19
20
  export {
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  tubeMapNodeColors
3
- } from "../chunks/chunk-TFAFIRZB.js";
4
- import "../chunks/chunk-4IYP43W6.js";
3
+ } from "../chunks/chunk-OEPCRURR.js";
4
+ import "../chunks/chunk-NP356MC2.js";
5
5
  import "../chunks/chunk-G2FD7S3C.js";
6
6
  import "../chunks/chunk-WFB5TXRA.js";
7
- import "../chunks/chunk-XZ2BLAA6.js";
7
+ import "../chunks/chunk-REE4GUDM.js";
8
8
  import "../chunks/chunk-PBENCR5L.js";
9
- import "../chunks/chunk-IGJCTPFB.js";
9
+ import "../chunks/chunk-EMUUNWRU.js";
10
+ import "../chunks/chunk-RAEABQNW.js";
10
11
  import "../chunks/chunk-ES2N6V56.js";
11
12
  import "../chunks/chunk-BPLIXMH7.js";
12
13
  import "../chunks/chunk-3ZZSX5HN.js";
@@ -1,4 +1,5 @@
1
- import type { GBZBase, PathName, PathQuery, SnarlOutput } from '@gmod/gbz-base';
1
+ import type { GraphTables } from './gfa/graphTables.js';
2
+ import type { CompactSubgraph, GBZBase, PathName, PathQuery, SnarlOutput } from '@gmod/gbz-base';
2
3
  export declare class NoReferenceSampleError extends Error {
3
4
  name: string;
4
5
  constructor(anchor: string, referenceSamples: string[]);
@@ -32,3 +33,16 @@ export declare const GBZ_CUT_DEFAULTS: {
32
33
  readonly limit: 100000;
33
34
  };
34
35
  export declare function cutWindowGFA(db: GBZBase, query: PathQuery | undefined, start: number, end: number, opts: GbzWindowOptions): Promise<string>;
36
+ /**
37
+ * The cut `cutWindowGFA` writes, as the tables `gfaTables` would read from
38
+ * it. A window on one reference fragment is one cut, whose typed arrays
39
+ * become the tables with no GFA written or read: writing an every-haplotype
40
+ * KIV-2 cut out and parsing it back was 2 s. A window over several
41
+ * fragments joins their GFA as text. Empty text for no indexed path.
42
+ */
43
+ export declare function cutWindowTables(db: GBZBase, query: PathQuery | undefined, start: number, end: number, opts: GbzWindowOptions): Promise<GraphTables | string>;
44
+ /**
45
+ * A gbz-base cut's typed arrays as the tables of the GFA `toGFA` writes for
46
+ * it: its segments, its links, and its walks in order, steps by GBWT handle
47
+ */
48
+ export declare function compactTables(cut: CompactSubgraph): GraphTables;
@@ -6,6 +6,6 @@ export declare function convertGFAToGraph(gfaGraph: GFAGraph, name?: string): {
6
6
  edges: GraphEdge[];
7
7
  paths: GraphPath[] | undefined;
8
8
  anchorPaths: import("../types.js").PathOrigin[] | undefined;
9
- pathVisits: Map<string, import("../types.js").PathVisit[]> | undefined;
9
+ pathVisits: import("../index.js").PathVisits | undefined;
10
10
  anchoredBy: "tags" | undefined;
11
11
  };
@@ -93,11 +93,12 @@ export { WELL_KNOWN_SAMPLES, assemblyWalk, backboneAssembly, featuresOnBackbone,
93
93
  export type { AssemblyNames, Backbone, BackboneContig } from './reference.js';
94
94
  export { LABEL_CHAR_PX, LABEL_PAD, LABEL_PX } from './overlayLabels.js';
95
95
  export type { Graph, GraphEdge, GraphNode, LayoutResult, NodeSegment, } from './types.js';
96
- export { cutWindowGFA, haplotypeWanted, referencePathQuery, referenceSamplesOf, resolveReferenceSample, } from './gbzWindow.js';
96
+ export { compactTables, cutWindowGFA, cutWindowTables, haplotypeWanted, referencePathQuery, referenceSamplesOf, resolveReferenceSample, } from './gbzWindow.js';
97
97
  export type { GbzWindowOptions } from './gbzWindow.js';
98
98
  export { gfaTables } from './gfa/gfaTables.js';
99
99
  export { graphFromTables, graphTablesGFA } from './gfa/graphTables.js';
100
100
  export type { GraphTables } from './gfa/graphTables.js';
101
+ export { PathVisits, PathVisitsBuilder } from './pathVisits.js';
101
102
  export { engineKey } from './pipeline.js';
102
103
  export { axisScaleOf, contains, padded, screenToLayout, viewportOf, zoomAbout, } from './viewport.js';
103
104
  export type { PaneTransform } from './viewport.js';
@@ -15,7 +15,7 @@ export declare function withDeletionRoutes(graph: Graph, deletions: DeletionEdge
15
15
  name: string;
16
16
  paths?: import("../types.js").GraphPath[];
17
17
  anchorPaths?: import("../types.js").PathOrigin[];
18
- pathVisits?: Map<string, import("../types.js").PathVisit[]>;
18
+ pathVisits?: import("../index.js").PathVisits;
19
19
  anchoredBy?: "tags" | "paths";
20
20
  referencePath?: string;
21
21
  reads?: import("../gaf/parseGaf.js").GafRecord[];
@@ -1,4 +1,5 @@
1
- import type { Graph, PathOrigin, PathVisit } from './types.js';
1
+ import type { PathVisits } from './pathVisits.js';
2
+ import type { Graph, PathOrigin } from './types.js';
2
3
  export declare function pathOrigin(pathName: string): {
3
4
  name: string;
4
5
  start: number;
@@ -13,7 +14,7 @@ export interface PathSteps {
13
14
  }
14
15
  export declare function surveyPaths(paths: PathSteps[], lengthOf: (segmentId: string) => number): {
15
16
  anchorPaths: PathOrigin[];
16
- pathVisits: Map<string, PathVisit[]>;
17
+ pathVisits: PathVisits;
17
18
  };
18
19
  export declare function chooseReferencePath(anchorPaths: PathOrigin[], preferred: string | undefined): PathOrigin | undefined;
19
20
  export declare function anchorFromPaths(graph: Graph, preferred: string | undefined): Graph;
@@ -0,0 +1,64 @@
1
+ import type { PathVisit } from './types.js';
2
+ /**
3
+ * Every visit each path makes to each segment, as columns rather than an
4
+ * object per visit: a gbz-base cut of every haplotype is millions of them.
5
+ * A segment's visits are contiguous and in walk order, and segments iterate in
6
+ * the order they were first visited. Reads as a map from segment name to its
7
+ * visits, each built when asked for; a pass over every segment reads the
8
+ * columns instead.
9
+ */
10
+ export declare class PathVisits {
11
+ readonly segments: string[];
12
+ readonly offsets: Int32Array;
13
+ readonly path: Int32Array;
14
+ readonly start: Float64Array;
15
+ readonly reversed: Uint8Array;
16
+ readonly paths: string[];
17
+ readonly samples: string[];
18
+ private readonly slots;
19
+ constructor(columns: {
20
+ segments: string[];
21
+ offsets: Int32Array;
22
+ path: Int32Array;
23
+ start: Float64Array;
24
+ reversed: Uint8Array;
25
+ paths: string[];
26
+ samples: string[];
27
+ });
28
+ static from(entries: Iterable<readonly [string, readonly PathVisit[]]>): PathVisits;
29
+ get size(): number;
30
+ slot(segment: string): number;
31
+ pathIndex(path: string): number;
32
+ firstBy(slot: number, p: number): number;
33
+ replay(): (slot: number, p: number) => number;
34
+ filter(keepPath: (path: string) => boolean, keepSegment?: (segment: string) => boolean): PathVisits;
35
+ strand(i: number): '+' | '-';
36
+ visit(i: number): PathVisit;
37
+ private visitsAt;
38
+ get(segment: string): PathVisit[] | undefined;
39
+ has(segment: string): boolean;
40
+ keys(): ArrayIterator<string>;
41
+ values(): Generator<PathVisit[], void, unknown>;
42
+ entries(): Generator<[string, PathVisit[]]>;
43
+ [Symbol.iterator](): Generator<[string, PathVisit[]], any, any>;
44
+ }
45
+ /**
46
+ * Visits added in any order, grouped by segment on `build`, each segment's
47
+ * keeping the order they were added in
48
+ */
49
+ export declare class PathVisitsBuilder {
50
+ private segments;
51
+ private slots;
52
+ private paths;
53
+ private samples;
54
+ private pathIndex;
55
+ private slot;
56
+ private path;
57
+ private start;
58
+ private reversed;
59
+ declare(segment: string): number;
60
+ pathOf(path: string, sample: string): number;
61
+ add(segment: string, path: string, sample: string, start: number, reversed: boolean): void;
62
+ addAt(slot: number, path: number, start: number, reversed: boolean): void;
63
+ build(): PathVisits;
64
+ }
@@ -1,6 +1,7 @@
1
1
  import type { GafRecord } from './gaf/parseGaf.js';
2
2
  import type { StableCoordinate } from './gfa-core/index.js';
3
3
  import type { TubeMapDrawing } from './layout/tubeMapLayout.js';
4
+ import type { PathVisits } from './pathVisits.js';
4
5
  export interface GraphNode {
5
6
  id: string;
6
7
  name: string;
@@ -43,7 +44,7 @@ export interface Graph {
43
44
  edges: GraphEdge[];
44
45
  paths?: GraphPath[];
45
46
  anchorPaths?: PathOrigin[];
46
- pathVisits?: Map<string, PathVisit[]>;
47
+ pathVisits?: PathVisits;
47
48
  anchoredBy?: 'tags' | 'paths';
48
49
  referencePath?: string;
49
50
  reads?: GafRecord[];
@@ -1 +1 @@
1
- export declare const version = "9.10.0";
1
+ export declare const version = "10.0.0";
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  version
3
- } from "./chunks/chunk-2VTM3DHG.js";
3
+ } from "./chunks/chunk-CDPYXHVR.js";
4
4
  export {
5
5
  version
6
6
  };
package/dist/viewport.js CHANGED
@@ -5,19 +5,20 @@ import {
5
5
  screenToLayout,
6
6
  viewportOf,
7
7
  zoomAbout
8
- } from "./chunks/chunk-PT37VS5B.js";
9
- import "./chunks/chunk-HRAU4VTB.js";
8
+ } from "./chunks/chunk-OOLNLCIO.js";
9
+ import "./chunks/chunk-W4GZCVUK.js";
10
10
  import "./chunks/chunk-IGVV37VI.js";
11
11
  import "./chunks/chunk-OPPVSPEF.js";
12
12
  import "./chunks/chunk-PUG7LXDF.js";
13
- import "./chunks/chunk-J7YKQ5YW.js";
14
- import "./chunks/chunk-G45YY72K.js";
15
- import "./chunks/chunk-OA7RIMZ2.js";
13
+ import "./chunks/chunk-QXAB2FLJ.js";
16
14
  import "./chunks/chunk-QYBZZI5H.js";
15
+ import "./chunks/chunk-PSMKPSO4.js";
17
16
  import "./chunks/chunk-CDLPYR5O.js";
18
17
  import "./chunks/chunk-JVLURPFW.js";
19
- import "./chunks/chunk-IGJCTPFB.js";
18
+ import "./chunks/chunk-EMUUNWRU.js";
19
+ import "./chunks/chunk-RAEABQNW.js";
20
20
  import "./chunks/chunk-ES2N6V56.js";
21
+ import "./chunks/chunk-G45YY72K.js";
21
22
  import "./chunks/chunk-BPLIXMH7.js";
22
23
  import "./chunks/chunk-TAMCZHLW.js";
23
24
  import "./chunks/chunk-UVBGRJQX.js";
@@ -9,13 +9,14 @@ import {
9
9
  schemeColor,
10
10
  schemeCss,
11
11
  schemeRgb
12
- } from "./chunks/chunk-KYY5363X.js";
13
- import "./chunks/chunk-4IYP43W6.js";
12
+ } from "./chunks/chunk-VOWI544A.js";
13
+ import "./chunks/chunk-NP356MC2.js";
14
14
  import "./chunks/chunk-G2FD7S3C.js";
15
15
  import "./chunks/chunk-WFB5TXRA.js";
16
- import "./chunks/chunk-XZ2BLAA6.js";
16
+ import "./chunks/chunk-REE4GUDM.js";
17
17
  import "./chunks/chunk-PBENCR5L.js";
18
- import "./chunks/chunk-IGJCTPFB.js";
18
+ import "./chunks/chunk-EMUUNWRU.js";
19
+ import "./chunks/chunk-RAEABQNW.js";
19
20
  import "./chunks/chunk-ES2N6V56.js";
20
21
  import "./chunks/chunk-BPLIXMH7.js";
21
22
  import "./chunks/chunk-3ZZSX5HN.js";
@@ -2,14 +2,15 @@ import {
2
2
  facetLifts,
3
3
  walkHighlight,
4
4
  walkLift
5
- } from "./chunks/chunk-MVMP6AGI.js";
6
- import "./chunks/chunk-KYY5363X.js";
7
- import "./chunks/chunk-4IYP43W6.js";
5
+ } from "./chunks/chunk-QIVPRZ4H.js";
6
+ import "./chunks/chunk-VOWI544A.js";
7
+ import "./chunks/chunk-NP356MC2.js";
8
8
  import "./chunks/chunk-G2FD7S3C.js";
9
9
  import "./chunks/chunk-WFB5TXRA.js";
10
- import "./chunks/chunk-XZ2BLAA6.js";
10
+ import "./chunks/chunk-REE4GUDM.js";
11
11
  import "./chunks/chunk-PBENCR5L.js";
12
- import "./chunks/chunk-IGJCTPFB.js";
12
+ import "./chunks/chunk-EMUUNWRU.js";
13
+ import "./chunks/chunk-RAEABQNW.js";
13
14
  import "./chunks/chunk-ES2N6V56.js";
14
15
  import "./chunks/chunk-BPLIXMH7.js";
15
16
  import "./chunks/chunk-3ZZSX5HN.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/bandage-core",
3
- "version": "9.10.0",
3
+ "version": "10.0.0",
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": {