@jbrowse/bandage-core 9.9.2 → 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 (79) hide show
  1. package/README.md +3 -0
  2. package/dist/bubbles/popBubble.js +3 -2
  3. package/dist/bubbles/superbubbles.js +5 -4
  4. package/dist/chunks/{chunk-YAN2ZPNV.js → chunk-33T67FPZ.js} +1 -1
  5. package/dist/chunks/{chunk-TOVOJNT7.js → chunk-3APK25GI.js} +1 -1
  6. package/dist/chunks/{chunk-A6PSWTLX.js → chunk-4QTNXTGW.js} +1 -1
  7. package/dist/chunks/{chunk-ROQGMTFB.js → chunk-BEWLQADP.js} +6 -6
  8. package/dist/chunks/{chunk-BQ33OOLC.js → chunk-CDPYXHVR.js} +1 -1
  9. package/dist/chunks/{chunk-YS7VA5SI.js → chunk-DCJC32QW.js} +1 -1
  10. package/dist/chunks/{chunk-YGN4KL7W.js → chunk-E5UEYZWK.js} +1 -1
  11. package/dist/chunks/{chunk-IGJCTPFB.js → chunk-EMUUNWRU.js} +52 -43
  12. package/dist/chunks/{chunk-PIN7ZMTZ.js → chunk-EU6FBTQF.js} +4 -4
  13. package/dist/chunks/{chunk-WVBYR6Y7.js → chunk-FG762CCP.js} +3 -8
  14. package/dist/chunks/{chunk-73RSLGZT.js → chunk-FLFBYSJO.js} +1 -1
  15. package/dist/chunks/{chunk-IJRNMO4D.js → chunk-ICXMWYOA.js} +5 -5
  16. package/dist/chunks/{chunk-HOZI3FBG.js → chunk-IM4SJUPO.js} +12 -22
  17. package/dist/chunks/{chunk-6PYZYBBF.js → chunk-KAN2WTG5.js} +1 -1
  18. package/dist/chunks/{chunk-RK3MF4FD.js → chunk-KJYSOHVN.js} +1 -1
  19. package/dist/chunks/{chunk-F4BKWWLS.js → chunk-NP356MC2.js} +4 -4
  20. package/dist/chunks/{chunk-KJEMKHVB.js → chunk-OEPCRURR.js} +1 -1
  21. package/dist/chunks/{chunk-ZBLKAWSD.js → chunk-OOLNLCIO.js} +1 -1
  22. package/dist/chunks/chunk-OPPVSPEF.js +57 -0
  23. package/dist/chunks/{chunk-OA7RIMZ2.js → chunk-PSMKPSO4.js} +89 -22
  24. package/dist/chunks/chunk-Q6IOQP4J.js +292 -0
  25. package/dist/chunks/{chunk-LTUWJKHD.js → chunk-Q7LYHGGQ.js} +114 -6
  26. package/dist/chunks/{chunk-EE37PVQY.js → chunk-QIVPRZ4H.js} +12 -7
  27. package/dist/chunks/{chunk-J7YKQ5YW.js → chunk-QXAB2FLJ.js} +1 -1
  28. package/dist/chunks/chunk-RAEABQNW.js +227 -0
  29. package/dist/chunks/{chunk-EDASNMLY.js → chunk-REE4GUDM.js} +4 -4
  30. package/dist/chunks/{chunk-IZ3W5IU2.js → chunk-RJXPPYA7.js} +36 -36
  31. package/dist/chunks/{chunk-F5BYHLIN.js → chunk-VOWI544A.js} +1 -1
  32. package/dist/chunks/{chunk-P6O4RSOQ.js → chunk-VZNKA3K2.js} +5 -5
  33. package/dist/chunks/{chunk-FPTI3WAV.js → chunk-W4GZCVUK.js} +18 -13
  34. package/dist/chunks/{chunk-MECWJY2R.js → chunk-WI7ZHJ27.js} +5 -5
  35. package/dist/cli/figure.js +50 -48
  36. package/dist/cli/fold.js +8 -6
  37. package/dist/figure.js +31 -29
  38. package/dist/figureData.js +63 -0
  39. package/dist/figureSettings.js +9 -7
  40. package/dist/gbzCut.js +3 -2
  41. package/dist/gbzWindow.js +6 -1
  42. package/dist/gfa/gfaConverter.js +3 -2
  43. package/dist/gfa/graphTables.js +2 -1
  44. package/dist/index.js +173 -156
  45. package/dist/layout/forceCache.js +9 -7
  46. package/dist/layout/smoothChains.js +6 -0
  47. package/dist/layout/trimToWindow.js +17 -23
  48. package/dist/layout/tubeMapLayout.js +5 -4
  49. package/dist/layout/walkRowDraw.js +10 -9
  50. package/dist/layout/walkRowLayout.js +4 -3
  51. package/dist/layout/walkRows.js +3 -2
  52. package/dist/layout/walkStrip.js +11 -10
  53. package/dist/layoutModes.js +11 -10
  54. package/dist/pathAnchoring.js +2 -1
  55. package/dist/pathColors.js +4 -3
  56. package/dist/pathVisits.js +8 -0
  57. package/dist/pipeline.js +8 -6
  58. package/dist/referenceRampCss.js +8 -7
  59. package/dist/referenceStrip.js +8 -7
  60. package/dist/renderer/GeometryBuilder.js +7 -6
  61. package/dist/tubeMap/bundle.js +6 -5
  62. package/dist/tubeMap/coarsen.js +17 -15
  63. package/dist/tubeMap/draw.js +4 -3
  64. package/dist/tubeMap/nodeColors.js +8 -7
  65. package/dist/types/figureData.d.ts +146 -0
  66. package/dist/types/gbzWindow.d.ts +15 -1
  67. package/dist/types/gfa/gfaConverter.d.ts +1 -1
  68. package/dist/types/index.d.ts +4 -1
  69. package/dist/types/layout/deletionRoutes.d.ts +1 -1
  70. package/dist/types/layout/smoothChains.d.ts +2 -0
  71. package/dist/types/pathAnchoring.d.ts +3 -2
  72. package/dist/types/pathVisits.d.ts +64 -0
  73. package/dist/types/types.d.ts +2 -1
  74. package/dist/types/version.d.ts +1 -1
  75. package/dist/version.js +1 -1
  76. package/dist/viewport.js +9 -7
  77. package/dist/walkEncoding.js +8 -7
  78. package/dist/walkHighlight.js +9 -8
  79. package/package.json +1 -1
@@ -9,22 +9,23 @@ import {
9
9
  walkStripApplies,
10
10
  walkStripFrame,
11
11
  walkStripLabelsTree
12
- } from "../chunks/chunk-MECWJY2R.js";
12
+ } from "../chunks/chunk-WI7ZHJ27.js";
13
13
  import {
14
14
  LABELLED_ROW_PX
15
- } from "../chunks/chunk-P6O4RSOQ.js";
16
- import "../chunks/chunk-YS7VA5SI.js";
17
- import "../chunks/chunk-F4BKWWLS.js";
15
+ } from "../chunks/chunk-VZNKA3K2.js";
16
+ import "../chunks/chunk-DCJC32QW.js";
17
+ import "../chunks/chunk-NNODIW4U.js";
18
+ import "../chunks/chunk-NP356MC2.js";
18
19
  import "../chunks/chunk-G2FD7S3C.js";
19
- import "../chunks/chunk-EDASNMLY.js";
20
- import "../chunks/chunk-PBENCR5L.js";
21
20
  import "../chunks/chunk-WFB5TXRA.js";
22
- import "../chunks/chunk-3ZZSX5HN.js";
23
- import "../chunks/chunk-AB35TJST.js";
24
- import "../chunks/chunk-NNODIW4U.js";
21
+ import "../chunks/chunk-REE4GUDM.js";
22
+ import "../chunks/chunk-PBENCR5L.js";
23
+ import "../chunks/chunk-EMUUNWRU.js";
24
+ import "../chunks/chunk-RAEABQNW.js";
25
25
  import "../chunks/chunk-ES2N6V56.js";
26
- import "../chunks/chunk-IGJCTPFB.js";
27
26
  import "../chunks/chunk-BPLIXMH7.js";
27
+ import "../chunks/chunk-3ZZSX5HN.js";
28
+ import "../chunks/chunk-AB35TJST.js";
28
29
  import "../chunks/chunk-TAMCZHLW.js";
29
30
  import "../chunks/chunk-N6FECAXP.js";
30
31
  import "../chunks/chunk-2CVHXFK7.js";
@@ -4,23 +4,24 @@ import {
4
4
  LAYOUT_MODE_VALUES,
5
5
  layoutModeByValue,
6
6
  modeUsesLayoutEngine
7
- } from "./chunks/chunk-IJRNMO4D.js";
8
- import "./chunks/chunk-LOEA5IHZ.js";
9
- import "./chunks/chunk-HOZI3FBG.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
+ import "./chunks/chunk-HNQPEMYE.js";
13
14
  import "./chunks/chunk-C44YRP5F.js";
14
15
  import "./chunks/chunk-RVS2QCOX.js";
15
- import "./chunks/chunk-HNQPEMYE.js";
16
- import "./chunks/chunk-TOVOJNT7.js";
17
- import "./chunks/chunk-6PYZYBBF.js";
18
- import "./chunks/chunk-EDASNMLY.js";
19
- import "./chunks/chunk-3ZZSX5HN.js";
20
- import "./chunks/chunk-AB35TJST.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";
21
21
  import "./chunks/chunk-ES2N6V56.js";
22
- import "./chunks/chunk-IGJCTPFB.js";
23
22
  import "./chunks/chunk-BPLIXMH7.js";
23
+ import "./chunks/chunk-3ZZSX5HN.js";
24
+ import "./chunks/chunk-AB35TJST.js";
24
25
  import "./chunks/chunk-TAMCZHLW.js";
25
26
  import "./chunks/chunk-N6FECAXP.js";
26
27
  import "./chunks/chunk-2CVHXFK7.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,11 +9,12 @@ import {
9
9
  pathHueAt,
10
10
  pathLegend,
11
11
  walkLabelsOf
12
- } from "./chunks/chunk-EDASNMLY.js";
12
+ } from "./chunks/chunk-REE4GUDM.js";
13
+ import "./chunks/chunk-EMUUNWRU.js";
14
+ import "./chunks/chunk-RAEABQNW.js";
15
+ import "./chunks/chunk-BPLIXMH7.js";
13
16
  import "./chunks/chunk-3ZZSX5HN.js";
14
17
  import "./chunks/chunk-AB35TJST.js";
15
- import "./chunks/chunk-IGJCTPFB.js";
16
- import "./chunks/chunk-BPLIXMH7.js";
17
18
  import "./chunks/chunk-TAMCZHLW.js";
18
19
  import "./chunks/chunk-N6FECAXP.js";
19
20
  import "./chunks/chunk-2CVHXFK7.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,17 +11,19 @@ import {
11
11
  forceLayout,
12
12
  layoutExtent,
13
13
  loadGraph
14
- } from "./chunks/chunk-FPTI3WAV.js";
15
- import "./chunks/chunk-PUG7LXDF.js";
14
+ } from "./chunks/chunk-W4GZCVUK.js";
16
15
  import "./chunks/chunk-IGVV37VI.js";
17
- import "./chunks/chunk-J7YKQ5YW.js";
18
- import "./chunks/chunk-G45YY72K.js";
19
- import "./chunks/chunk-OA7RIMZ2.js";
16
+ import "./chunks/chunk-OPPVSPEF.js";
17
+ import "./chunks/chunk-PUG7LXDF.js";
18
+ import "./chunks/chunk-QXAB2FLJ.js";
20
19
  import "./chunks/chunk-QYBZZI5H.js";
20
+ import "./chunks/chunk-PSMKPSO4.js";
21
21
  import "./chunks/chunk-CDLPYR5O.js";
22
22
  import "./chunks/chunk-JVLURPFW.js";
23
+ import "./chunks/chunk-EMUUNWRU.js";
24
+ import "./chunks/chunk-RAEABQNW.js";
23
25
  import "./chunks/chunk-ES2N6V56.js";
24
- import "./chunks/chunk-IGJCTPFB.js";
26
+ import "./chunks/chunk-G45YY72K.js";
25
27
  import "./chunks/chunk-BPLIXMH7.js";
26
28
  import "./chunks/chunk-TAMCZHLW.js";
27
29
  import "./chunks/chunk-UVBGRJQX.js";
@@ -4,17 +4,18 @@ import {
4
4
  rampHue,
5
5
  rampHueCss,
6
6
  rampStops
7
- } from "./chunks/chunk-YS7VA5SI.js";
8
- import "./chunks/chunk-F4BKWWLS.js";
7
+ } from "./chunks/chunk-DCJC32QW.js";
8
+ import "./chunks/chunk-NP356MC2.js";
9
9
  import "./chunks/chunk-G2FD7S3C.js";
10
- import "./chunks/chunk-EDASNMLY.js";
11
- import "./chunks/chunk-PBENCR5L.js";
12
10
  import "./chunks/chunk-WFB5TXRA.js";
13
- import "./chunks/chunk-3ZZSX5HN.js";
14
- import "./chunks/chunk-AB35TJST.js";
11
+ import "./chunks/chunk-REE4GUDM.js";
12
+ import "./chunks/chunk-PBENCR5L.js";
13
+ import "./chunks/chunk-EMUUNWRU.js";
14
+ import "./chunks/chunk-RAEABQNW.js";
15
15
  import "./chunks/chunk-ES2N6V56.js";
16
- import "./chunks/chunk-IGJCTPFB.js";
17
16
  import "./chunks/chunk-BPLIXMH7.js";
17
+ import "./chunks/chunk-3ZZSX5HN.js";
18
+ import "./chunks/chunk-AB35TJST.js";
18
19
  import "./chunks/chunk-TAMCZHLW.js";
19
20
  import "./chunks/chunk-N6FECAXP.js";
20
21
  import "./chunks/chunk-2CVHXFK7.js";
@@ -7,17 +7,18 @@ import {
7
7
  stripBlockAt,
8
8
  stripOverhang,
9
9
  stripPixels
10
- } from "./chunks/chunk-RK3MF4FD.js";
11
- import "./chunks/chunk-F4BKWWLS.js";
10
+ } from "./chunks/chunk-KJYSOHVN.js";
11
+ import "./chunks/chunk-NP356MC2.js";
12
12
  import "./chunks/chunk-G2FD7S3C.js";
13
- import "./chunks/chunk-EDASNMLY.js";
14
- import "./chunks/chunk-PBENCR5L.js";
15
13
  import "./chunks/chunk-WFB5TXRA.js";
16
- import "./chunks/chunk-3ZZSX5HN.js";
17
- import "./chunks/chunk-AB35TJST.js";
14
+ import "./chunks/chunk-REE4GUDM.js";
15
+ import "./chunks/chunk-PBENCR5L.js";
16
+ import "./chunks/chunk-EMUUNWRU.js";
17
+ import "./chunks/chunk-RAEABQNW.js";
18
18
  import "./chunks/chunk-ES2N6V56.js";
19
- import "./chunks/chunk-IGJCTPFB.js";
20
19
  import "./chunks/chunk-BPLIXMH7.js";
20
+ import "./chunks/chunk-3ZZSX5HN.js";
21
+ import "./chunks/chunk-AB35TJST.js";
21
22
  import "./chunks/chunk-TAMCZHLW.js";
22
23
  import "./chunks/chunk-N6FECAXP.js";
23
24
  import "./chunks/chunk-2CVHXFK7.js";
@@ -11,16 +11,17 @@ import {
11
11
  endTangent,
12
12
  getNodeColor,
13
13
  hslToRgb
14
- } from "../chunks/chunk-F4BKWWLS.js";
14
+ } from "../chunks/chunk-NP356MC2.js";
15
15
  import "../chunks/chunk-G2FD7S3C.js";
16
- import "../chunks/chunk-EDASNMLY.js";
17
- import "../chunks/chunk-PBENCR5L.js";
18
16
  import "../chunks/chunk-WFB5TXRA.js";
19
- import "../chunks/chunk-3ZZSX5HN.js";
20
- import "../chunks/chunk-AB35TJST.js";
17
+ import "../chunks/chunk-REE4GUDM.js";
18
+ import "../chunks/chunk-PBENCR5L.js";
19
+ import "../chunks/chunk-EMUUNWRU.js";
20
+ import "../chunks/chunk-RAEABQNW.js";
21
21
  import "../chunks/chunk-ES2N6V56.js";
22
- import "../chunks/chunk-IGJCTPFB.js";
23
22
  import "../chunks/chunk-BPLIXMH7.js";
23
+ import "../chunks/chunk-3ZZSX5HN.js";
24
+ import "../chunks/chunk-AB35TJST.js";
24
25
  import "../chunks/chunk-TAMCZHLW.js";
25
26
  import "../chunks/chunk-N6FECAXP.js";
26
27
  import "../chunks/chunk-2CVHXFK7.js";
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  bundleRoutes
3
- } from "../chunks/chunk-WVBYR6Y7.js";
4
- import "../chunks/chunk-HOZI3FBG.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-EDASNMLY.js";
7
+ import "../chunks/chunk-REE4GUDM.js";
8
+ import "../chunks/chunk-EMUUNWRU.js";
9
+ import "../chunks/chunk-RAEABQNW.js";
10
+ import "../chunks/chunk-BPLIXMH7.js";
8
11
  import "../chunks/chunk-3ZZSX5HN.js";
9
12
  import "../chunks/chunk-AB35TJST.js";
10
- import "../chunks/chunk-IGJCTPFB.js";
11
- import "../chunks/chunk-BPLIXMH7.js";
12
13
  import "../chunks/chunk-TAMCZHLW.js";
13
14
  import "../chunks/chunk-N6FECAXP.js";
14
15
  import "../chunks/chunk-2CVHXFK7.js";
@@ -1,15 +1,18 @@
1
1
  import {
2
2
  pathSteps
3
- } from "../chunks/chunk-HOZI3FBG.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-EDASNMLY.js";
7
- import "../chunks/chunk-3ZZSX5HN.js";
8
- import "../chunks/chunk-AB35TJST.js";
6
+ import "../chunks/chunk-REE4GUDM.js";
9
7
  import {
10
8
  pathOrigin
11
- } from "../chunks/chunk-IGJCTPFB.js";
9
+ } from "../chunks/chunk-EMUUNWRU.js";
10
+ import {
11
+ PathVisitsBuilder
12
+ } from "../chunks/chunk-RAEABQNW.js";
12
13
  import "../chunks/chunk-BPLIXMH7.js";
14
+ import "../chunks/chunk-3ZZSX5HN.js";
15
+ import "../chunks/chunk-AB35TJST.js";
13
16
  import "../chunks/chunk-TAMCZHLW.js";
14
17
  import "../chunks/chunk-N6FECAXP.js";
15
18
  import "../chunks/chunk-2CVHXFK7.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,16 +1,17 @@
1
1
  import {
2
2
  tubeMapNodeColors
3
- } from "../chunks/chunk-KJEMKHVB.js";
4
- import "../chunks/chunk-F4BKWWLS.js";
3
+ } from "../chunks/chunk-OEPCRURR.js";
4
+ import "../chunks/chunk-NP356MC2.js";
5
5
  import "../chunks/chunk-G2FD7S3C.js";
6
- import "../chunks/chunk-EDASNMLY.js";
7
- import "../chunks/chunk-PBENCR5L.js";
8
6
  import "../chunks/chunk-WFB5TXRA.js";
9
- import "../chunks/chunk-3ZZSX5HN.js";
10
- import "../chunks/chunk-AB35TJST.js";
7
+ import "../chunks/chunk-REE4GUDM.js";
8
+ import "../chunks/chunk-PBENCR5L.js";
9
+ import "../chunks/chunk-EMUUNWRU.js";
10
+ import "../chunks/chunk-RAEABQNW.js";
11
11
  import "../chunks/chunk-ES2N6V56.js";
12
- import "../chunks/chunk-IGJCTPFB.js";
13
12
  import "../chunks/chunk-BPLIXMH7.js";
13
+ import "../chunks/chunk-3ZZSX5HN.js";
14
+ import "../chunks/chunk-AB35TJST.js";
14
15
  import "../chunks/chunk-TAMCZHLW.js";
15
16
  import "../chunks/chunk-N6FECAXP.js";
16
17
  import "../chunks/chunk-2CVHXFK7.js";
@@ -0,0 +1,146 @@
1
+ import type { BubbleSpread } from './bubbleSpreads.js';
2
+ import type { ColorScheme } from './colorSchemes.js';
3
+ import type { FacetInput } from './facetGrid.js';
4
+ import type { LayoutEngineKind } from './layoutEngines.js';
5
+ import type { LayoutModeValue } from './layoutModes.js';
6
+ import type { NodeWidth } from './nodeWidths.js';
7
+ import type { Graph, LayoutResult } from './types.js';
8
+ import type { WalkLayer } from './walkEncoding.js';
9
+ export interface FigureDataOptions {
10
+ width?: number;
11
+ height?: number;
12
+ walks?: WalkLayer[];
13
+ facet?: FacetInput;
14
+ colorScheme?: ColorScheme;
15
+ nodeWidth?: NodeWidth;
16
+ showDeletionEdges?: boolean;
17
+ linearLayout?: boolean;
18
+ contigThickness?: number;
19
+ connectorThickness?: number;
20
+ region?: {
21
+ refName: string;
22
+ start: number;
23
+ end: number;
24
+ };
25
+ referenceName?: string;
26
+ colorDomain?: {
27
+ start: number;
28
+ end: number;
29
+ };
30
+ fitToDrawing?: boolean;
31
+ }
32
+ type Columns<T> = {
33
+ [K in keyof T]: T[K][];
34
+ };
35
+ interface NodeRow {
36
+ panel: string;
37
+ node: string;
38
+ stroke: number;
39
+ x: number;
40
+ y: number;
41
+ color: string;
42
+ alpha: number;
43
+ width: number;
44
+ }
45
+ interface EdgeRow {
46
+ panel: string;
47
+ edge: number;
48
+ curve: number;
49
+ x0: number;
50
+ y0: number;
51
+ cx0: number;
52
+ cy0: number;
53
+ cx1: number;
54
+ cy1: number;
55
+ x1: number;
56
+ y1: number;
57
+ color: string;
58
+ alpha: number;
59
+ width: number;
60
+ deletion: boolean;
61
+ }
62
+ interface ArrowRow {
63
+ panel: string;
64
+ edge: number;
65
+ x: number;
66
+ y: number;
67
+ angle: number;
68
+ length: number;
69
+ halfWidth: number;
70
+ color: string;
71
+ alpha: number;
72
+ }
73
+ export declare function figureData(graph: Graph, layout: LayoutResult, o?: FigureDataOptions): {
74
+ meta: {
75
+ generator: string;
76
+ width: number;
77
+ scaleX: number;
78
+ scaleY: number;
79
+ pixelRows: boolean;
80
+ referenceAxis: boolean;
81
+ colorScheme: import("./colorSchemes.js").ResolvedColorScheme;
82
+ referenceName: string | null;
83
+ };
84
+ panels: {
85
+ panel: string[];
86
+ key: string[];
87
+ range: string[];
88
+ };
89
+ nodes: Columns<NodeRow>;
90
+ edges: Columns<EdgeRow>;
91
+ arrows: Columns<ArrowRow>;
92
+ nodeInfo: {
93
+ node: string[];
94
+ name: string[];
95
+ length: number[];
96
+ depth: number[];
97
+ backbone: boolean[];
98
+ };
99
+ rowLabels: {
100
+ label: string[];
101
+ y: number[];
102
+ };
103
+ };
104
+ export interface GfaFigureSpec extends Omit<FigureDataOptions, 'region' | 'walks'> {
105
+ region?: string;
106
+ walks?: (string | WalkLayer)[];
107
+ layout?: LayoutModeValue;
108
+ referencePath?: string;
109
+ quality?: number;
110
+ bubbleSpread?: BubbleSpread;
111
+ engine?: LayoutEngineKind;
112
+ spacing?: number;
113
+ componentSeparation?: number;
114
+ }
115
+ export declare function gfaFigureData(text: string, name: string, spec?: GfaFigureSpec): Promise<{
116
+ meta: {
117
+ generator: string;
118
+ width: number;
119
+ scaleX: number;
120
+ scaleY: number;
121
+ pixelRows: boolean;
122
+ referenceAxis: boolean;
123
+ colorScheme: import("./colorSchemes.js").ResolvedColorScheme;
124
+ referenceName: string | null;
125
+ };
126
+ panels: {
127
+ panel: string[];
128
+ key: string[];
129
+ range: string[];
130
+ };
131
+ nodes: Columns<NodeRow>;
132
+ edges: Columns<EdgeRow>;
133
+ arrows: Columns<ArrowRow>;
134
+ nodeInfo: {
135
+ node: string[];
136
+ name: string[];
137
+ length: number[];
138
+ depth: number[];
139
+ backbone: boolean[];
140
+ };
141
+ rowLabels: {
142
+ label: string[];
143
+ y: number[];
144
+ };
145
+ }>;
146
+ export {};
@@ -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
  };
@@ -50,6 +50,8 @@ export type { DeletionDrawing, DeletionEdge } from './deletionEdges.js';
50
50
  export { facetLifts, walkHighlight, walkLift } from './walkHighlight.js';
51
51
  export { rangeText, walkKey, walkPosition } from './walkKey.js';
52
52
  export { figureSvg } from './figure.js';
53
+ export { figureData, gfaFigureData } from './figureData.js';
54
+ export type { FigureDataOptions, GfaFigureSpec } from './figureData.js';
53
55
  export { genesFromBed, genesFromGff3Lines, genesFromText, mergeOverlappingByName, } from './genes/geneFiles.js';
54
56
  export { HPRC_GBZ, cutGbzRegion, openGbz, parseRegion } from './gbzCut.js';
55
57
  export type { GbzSource } from './gbzCut.js';
@@ -91,11 +93,12 @@ export { WELL_KNOWN_SAMPLES, assemblyWalk, backboneAssembly, featuresOnBackbone,
91
93
  export type { AssemblyNames, Backbone, BackboneContig } from './reference.js';
92
94
  export { LABEL_CHAR_PX, LABEL_PAD, LABEL_PX } from './overlayLabels.js';
93
95
  export type { Graph, GraphEdge, GraphNode, LayoutResult, NodeSegment, } from './types.js';
94
- export { cutWindowGFA, haplotypeWanted, referencePathQuery, referenceSamplesOf, resolveReferenceSample, } from './gbzWindow.js';
96
+ export { compactTables, cutWindowGFA, cutWindowTables, haplotypeWanted, referencePathQuery, referenceSamplesOf, resolveReferenceSample, } from './gbzWindow.js';
95
97
  export type { GbzWindowOptions } from './gbzWindow.js';
96
98
  export { gfaTables } from './gfa/gfaTables.js';
97
99
  export { graphFromTables, graphTablesGFA } from './gfa/graphTables.js';
98
100
  export type { GraphTables } from './gfa/graphTables.js';
101
+ export { PathVisits, PathVisitsBuilder } from './pathVisits.js';
99
102
  export { engineKey } from './pipeline.js';
100
103
  export { axisScaleOf, contains, padded, screenToLayout, viewportOf, zoomAbout, } from './viewport.js';
101
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[];
@@ -0,0 +1,2 @@
1
+ import type { NodeSegment } from '../types.js';
2
+ export declare function smoothChain(line: NodeSegment[]): NodeSegment[];
@@ -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[];