@jbrowse/bandage-core 11.16.0 → 11.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/chunks/{chunk-NIB2A2UZ.js → chunk-42MMT5QM.js} +1 -1
  2. package/dist/chunks/{chunk-F3254CLY.js → chunk-47R7GMU3.js} +4 -4
  3. package/dist/chunks/{chunk-3KGUENAV.js → chunk-5LTWXDXK.js} +1 -1
  4. package/dist/chunks/{chunk-JWXSEGEA.js → chunk-BDMISSNR.js} +1 -1
  5. package/dist/chunks/{chunk-7UR5EXC2.js → chunk-CIMRLDRO.js} +1 -1
  6. package/dist/chunks/{chunk-72JZSR4B.js → chunk-DTBQNR7P.js} +7 -7
  7. package/dist/chunks/{chunk-KMYMAPQ3.js → chunk-FKMZG7HI.js} +22 -9
  8. package/dist/chunks/{chunk-U7JDTZSK.js → chunk-GZ2F2CDT.js} +1 -1
  9. package/dist/chunks/{chunk-SR6LCQ5U.js → chunk-IWPINV4U.js} +10 -10
  10. package/dist/chunks/{chunk-TUMJNAOL.js → chunk-MSVYSCAH.js} +2 -0
  11. package/dist/chunks/{chunk-Z5T6EOPF.js → chunk-OND5MXTK.js} +1 -1
  12. package/dist/chunks/{chunk-5KQRVX4N.js → chunk-PIPNW3VY.js} +1 -1
  13. package/dist/chunks/{chunk-WRSI6VK7.js → chunk-PL6X2IJC.js} +2 -2
  14. package/dist/chunks/{chunk-BMO5MVPB.js → chunk-STUG7I25.js} +1 -1
  15. package/dist/chunks/{chunk-CF2AXV5I.js → chunk-XESCKKKT.js} +1 -1
  16. package/dist/chunks/chunk-XWH4LB56.js +115 -0
  17. package/dist/chunks/{chunk-ZB5ADQYK.js → chunk-ZZUSCQVT.js} +1 -1
  18. package/dist/cli/figure.js +14 -14
  19. package/dist/cli/fold.js +2 -2
  20. package/dist/figure.js +13 -13
  21. package/dist/figureData.js +11 -11
  22. package/dist/figureScene.js +8 -8
  23. package/dist/figureSettings.js +3 -3
  24. package/dist/gfa/gfaConverter.js +1 -1
  25. package/dist/index.js +28 -18
  26. package/dist/layout/forceCache.js +3 -3
  27. package/dist/layout/walkRowDraw.js +3 -3
  28. package/dist/layout/walkStrip.js +4 -4
  29. package/dist/nodeWidths.js +14 -3
  30. package/dist/pipeline.js +2 -2
  31. package/dist/referenceStrip.js +3 -3
  32. package/dist/renderer/GeometryBuilder.js +2 -2
  33. package/dist/tubeMap/nodeColors.js +3 -3
  34. package/dist/types/figureData.d.ts +11 -0
  35. package/dist/types/figureScene.d.ts +1 -1
  36. package/dist/types/index.d.ts +1 -1
  37. package/dist/types/nodeWidths.d.ts +13 -1
  38. package/dist/types/types.d.ts +1 -0
  39. package/dist/types/version.d.ts +1 -1
  40. package/dist/version.js +1 -1
  41. package/dist/viewport.js +3 -3
  42. package/dist/walkEncoding.js +3 -3
  43. package/dist/walkHighlight.js +4 -4
  44. package/package.json +1 -1
  45. package/dist/chunks/chunk-ZANALBSX.js +0 -65
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  figureScene
3
- } from "./chunks/chunk-F3254CLY.js";
3
+ } from "./chunks/chunk-47R7GMU3.js";
4
4
  import "./chunks/chunk-LOCJN3BZ.js";
5
- import "./chunks/chunk-WRSI6VK7.js";
6
- import "./chunks/chunk-JWXSEGEA.js";
7
- import "./chunks/chunk-72JZSR4B.js";
5
+ import "./chunks/chunk-PL6X2IJC.js";
6
+ import "./chunks/chunk-BDMISSNR.js";
7
+ import "./chunks/chunk-DTBQNR7P.js";
8
8
  import "./chunks/chunk-YUIKEUKY.js";
9
9
  import "./chunks/chunk-G2FD7S3C.js";
10
10
  import "./chunks/chunk-OKH32P3Z.js";
@@ -14,14 +14,14 @@ import "./chunks/chunk-VCUOYVLC.js";
14
14
  import "./chunks/chunk-C3KAPREU.js";
15
15
  import "./chunks/chunk-LODKC7PJ.js";
16
16
  import "./chunks/chunk-EHEIS3TE.js";
17
- import "./chunks/chunk-ZANALBSX.js";
18
- import "./chunks/chunk-CF2AXV5I.js";
19
- import "./chunks/chunk-3KGUENAV.js";
17
+ import "./chunks/chunk-XWH4LB56.js";
18
+ import "./chunks/chunk-XESCKKKT.js";
19
+ import "./chunks/chunk-5LTWXDXK.js";
20
20
  import "./chunks/chunk-OPPVSPEF.js";
21
21
  import "./chunks/chunk-NAYS472K.js";
22
22
  import "./chunks/chunk-4FRX2SPT.js";
23
23
  import "./chunks/chunk-VPE4AYP7.js";
24
- import "./chunks/chunk-TUMJNAOL.js";
24
+ import "./chunks/chunk-MSVYSCAH.js";
25
25
  import "./chunks/chunk-QYBZZI5H.js";
26
26
  import "./chunks/chunk-CFXXFHRK.js";
27
27
  import "./chunks/chunk-7L7MN2OM.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  FIGURE_DEFAULTS,
3
3
  figureSpecSettings
4
- } from "./chunks/chunk-CF2AXV5I.js";
5
- import "./chunks/chunk-3KGUENAV.js";
4
+ } from "./chunks/chunk-XESCKKKT.js";
5
+ import "./chunks/chunk-5LTWXDXK.js";
6
6
  import "./chunks/chunk-OPPVSPEF.js";
7
7
  import "./chunks/chunk-NAYS472K.js";
8
8
  import "./chunks/chunk-4FRX2SPT.js";
9
9
  import "./chunks/chunk-VPE4AYP7.js";
10
- import "./chunks/chunk-TUMJNAOL.js";
10
+ import "./chunks/chunk-MSVYSCAH.js";
11
11
  import "./chunks/chunk-QYBZZI5H.js";
12
12
  import "./chunks/chunk-CFXXFHRK.js";
13
13
  import "./chunks/chunk-7L7MN2OM.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  convertGFAToGraph
3
- } from "../chunks/chunk-TUMJNAOL.js";
3
+ } from "../chunks/chunk-MSVYSCAH.js";
4
4
  import "../chunks/chunk-QYBZZI5H.js";
5
5
  import "../chunks/chunk-CFXXFHRK.js";
6
6
  import "../chunks/chunk-LG2UK4MB.js";
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  import "./chunks/chunk-BX4AUMZE.js";
20
20
  import {
21
21
  tubeMapNodeColors
22
- } from "./chunks/chunk-U7JDTZSK.js";
22
+ } from "./chunks/chunk-GZ2F2CDT.js";
23
23
  import {
24
24
  referenceKnots,
25
25
  warpX
@@ -47,7 +47,7 @@ import {
47
47
  } from "./chunks/chunk-YYIU7P73.js";
48
48
  import {
49
49
  createForceLayoutCache
50
- } from "./chunks/chunk-7UR5EXC2.js";
50
+ } from "./chunks/chunk-CIMRLDRO.js";
51
51
  import {
52
52
  backboneGenes
53
53
  } from "./chunks/chunk-376YFQOY.js";
@@ -82,7 +82,7 @@ import {
82
82
  drawReferenceStrip,
83
83
  referenceStripBlocks,
84
84
  stripBlockAt
85
- } from "./chunks/chunk-Z5T6EOPF.js";
85
+ } from "./chunks/chunk-OND5MXTK.js";
86
86
  import {
87
87
  edgeHoverText,
88
88
  regionLabel
@@ -97,7 +97,7 @@ import {
97
97
  import {
98
98
  figureData,
99
99
  gfaFigureData
100
- } from "./chunks/chunk-KMYMAPQ3.js";
100
+ } from "./chunks/chunk-FKMZG7HI.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-SR6LCQ5U.js";
137
+ } from "./chunks/chunk-IWPINV4U.js";
138
138
  import {
139
139
  svgCanvas
140
140
  } from "./chunks/chunk-V4YML3GR.js";
@@ -149,7 +149,7 @@ import {
149
149
  walkStripApplies,
150
150
  walkStripFrame,
151
151
  walkStripLabelsTree
152
- } from "./chunks/chunk-BMO5MVPB.js";
152
+ } from "./chunks/chunk-STUG7I25.js";
153
153
  import {
154
154
  Canvas2DRenderer
155
155
  } from "./chunks/chunk-4DMSPNYV.js";
@@ -183,7 +183,7 @@ import {
183
183
  walkRowsKey,
184
184
  walkRowsKeyTree,
185
185
  walkRowsTree
186
- } from "./chunks/chunk-5KQRVX4N.js";
186
+ } from "./chunks/chunk-PIPNW3VY.js";
187
187
  import {
188
188
  EXON_COLOR,
189
189
  exonOutlineTree,
@@ -205,7 +205,7 @@ import {
205
205
  } from "./chunks/chunk-HEYIAMTC.js";
206
206
  import {
207
207
  version
208
- } from "./chunks/chunk-NIB2A2UZ.js";
208
+ } from "./chunks/chunk-42MMT5QM.js";
209
209
  import {
210
210
  axisScaleOf,
211
211
  contains,
@@ -213,8 +213,8 @@ import {
213
213
  screenToLayout,
214
214
  viewportOf,
215
215
  zoomAbout
216
- } from "./chunks/chunk-ZB5ADQYK.js";
217
- import "./chunks/chunk-F3254CLY.js";
216
+ } from "./chunks/chunk-ZZUSCQVT.js";
217
+ import "./chunks/chunk-47R7GMU3.js";
218
218
  import {
219
219
  layoutGeometryInputs
220
220
  } from "./chunks/chunk-LOCJN3BZ.js";
@@ -223,7 +223,7 @@ import {
223
223
  fadedKey,
224
224
  walkHighlight,
225
225
  walkLift
226
- } from "./chunks/chunk-WRSI6VK7.js";
226
+ } from "./chunks/chunk-PL6X2IJC.js";
227
227
  import {
228
228
  WALK_FIELDS,
229
229
  WALK_SCHEMES,
@@ -231,11 +231,11 @@ import {
231
231
  encodingSwatchCss,
232
232
  resolveEncoding,
233
233
  schemeCss
234
- } from "./chunks/chunk-JWXSEGEA.js";
234
+ } from "./chunks/chunk-BDMISSNR.js";
235
235
  import {
236
236
  buildGeometry,
237
237
  computeReferenceRamp
238
- } from "./chunks/chunk-72JZSR4B.js";
238
+ } from "./chunks/chunk-DTBQNR7P.js";
239
239
  import "./chunks/chunk-YUIKEUKY.js";
240
240
  import "./chunks/chunk-G2FD7S3C.js";
241
241
  import {
@@ -272,15 +272,20 @@ import {
272
272
  } from "./chunks/chunk-EHEIS3TE.js";
273
273
  import {
274
274
  NODE_WIDTHS,
275
+ frequencyKey,
276
+ haplotypeCount,
275
277
  maxNodeWidthPx,
276
278
  meanDepth,
279
+ nodeFrequency,
277
280
  nodeInk,
278
- nodeWidthPx
279
- } from "./chunks/chunk-ZANALBSX.js";
281
+ nodeWidthPx,
282
+ widthNorm,
283
+ withFrequencies
284
+ } from "./chunks/chunk-XWH4LB56.js";
280
285
  import {
281
286
  FIGURE_DEFAULTS,
282
287
  figureSpecSettings
283
- } from "./chunks/chunk-CF2AXV5I.js";
288
+ } from "./chunks/chunk-XESCKKKT.js";
284
289
  import {
285
290
  ENGINE_DEFAULTS,
286
291
  FIT_PADDING,
@@ -293,12 +298,12 @@ import {
293
298
  forceLayout,
294
299
  layoutExtent,
295
300
  loadGraph
296
- } from "./chunks/chunk-3KGUENAV.js";
301
+ } from "./chunks/chunk-5LTWXDXK.js";
297
302
  import "./chunks/chunk-OPPVSPEF.js";
298
303
  import "./chunks/chunk-NAYS472K.js";
299
304
  import "./chunks/chunk-4FRX2SPT.js";
300
305
  import "./chunks/chunk-VPE4AYP7.js";
301
- import "./chunks/chunk-TUMJNAOL.js";
306
+ import "./chunks/chunk-MSVYSCAH.js";
302
307
  import "./chunks/chunk-QYBZZI5H.js";
303
308
  import "./chunks/chunk-CFXXFHRK.js";
304
309
  import {
@@ -503,6 +508,7 @@ export {
503
508
  forceLayout,
504
509
  formatBp,
505
510
  formatLocus,
511
+ frequencyKey,
506
512
  gapParts,
507
513
  gapStyle,
508
514
  geneCoverageNote,
@@ -518,6 +524,7 @@ export {
518
524
  graphBubbles,
519
525
  graphFromTables,
520
526
  graphTablesGFA,
527
+ haplotypeCount,
521
528
  haplotypeWanted,
522
529
  layoutEngine,
523
530
  layoutExtent,
@@ -530,6 +537,7 @@ export {
530
537
  meanDepth,
531
538
  mergeOverlappingByName,
532
539
  modeUsesLayoutEngine,
540
+ nodeFrequency,
533
541
  nodeInk,
534
542
  nodeWidthPx,
535
543
  openGbz,
@@ -615,5 +623,7 @@ export {
615
623
  warpX,
616
624
  wellKnownSample,
617
625
  wheelZoomFactor,
626
+ widthNorm,
627
+ withFrequencies,
618
628
  zoomAbout
619
629
  };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createForceLayoutCache
3
- } from "../chunks/chunk-7UR5EXC2.js";
4
- import "../chunks/chunk-3KGUENAV.js";
3
+ } from "../chunks/chunk-CIMRLDRO.js";
4
+ import "../chunks/chunk-5LTWXDXK.js";
5
5
  import "../chunks/chunk-OPPVSPEF.js";
6
6
  import "../chunks/chunk-NAYS472K.js";
7
7
  import "../chunks/chunk-4FRX2SPT.js";
8
8
  import "../chunks/chunk-VPE4AYP7.js";
9
- import "../chunks/chunk-TUMJNAOL.js";
9
+ import "../chunks/chunk-MSVYSCAH.js";
10
10
  import "../chunks/chunk-QYBZZI5H.js";
11
11
  import "../chunks/chunk-CFXXFHRK.js";
12
12
  import "../chunks/chunk-7L7MN2OM.js";
@@ -30,14 +30,14 @@ import {
30
30
  walkRowsKey,
31
31
  walkRowsKeyTree,
32
32
  walkRowsTree
33
- } from "../chunks/chunk-5KQRVX4N.js";
34
- import "../chunks/chunk-72JZSR4B.js";
33
+ } from "../chunks/chunk-PIPNW3VY.js";
34
+ import "../chunks/chunk-DTBQNR7P.js";
35
35
  import "../chunks/chunk-YUIKEUKY.js";
36
36
  import "../chunks/chunk-G2FD7S3C.js";
37
37
  import "../chunks/chunk-GQZVR5DW.js";
38
38
  import "../chunks/chunk-AGUBPT45.js";
39
39
  import "../chunks/chunk-EHEIS3TE.js";
40
- import "../chunks/chunk-ZANALBSX.js";
40
+ import "../chunks/chunk-XWH4LB56.js";
41
41
  import "../chunks/chunk-L4DBSRA2.js";
42
42
  import "../chunks/chunk-LG2UK4MB.js";
43
43
  import "../chunks/chunk-ENBFQH7Y.js";
@@ -9,11 +9,11 @@ import {
9
9
  walkStripApplies,
10
10
  walkStripFrame,
11
11
  walkStripLabelsTree
12
- } from "../chunks/chunk-BMO5MVPB.js";
12
+ } from "../chunks/chunk-STUG7I25.js";
13
13
  import {
14
14
  LABELLED_ROW_PX
15
- } from "../chunks/chunk-5KQRVX4N.js";
16
- import "../chunks/chunk-72JZSR4B.js";
15
+ } from "../chunks/chunk-PIPNW3VY.js";
16
+ import "../chunks/chunk-DTBQNR7P.js";
17
17
  import "../chunks/chunk-YUIKEUKY.js";
18
18
  import "../chunks/chunk-G2FD7S3C.js";
19
19
  import "../chunks/chunk-GQZVR5DW.js";
@@ -22,7 +22,7 @@ import "../chunks/chunk-VCUOYVLC.js";
22
22
  import "../chunks/chunk-C3KAPREU.js";
23
23
  import "../chunks/chunk-LODKC7PJ.js";
24
24
  import "../chunks/chunk-EHEIS3TE.js";
25
- import "../chunks/chunk-ZANALBSX.js";
25
+ import "../chunks/chunk-XWH4LB56.js";
26
26
  import "../chunks/chunk-7L7MN2OM.js";
27
27
  import "../chunks/chunk-L4DBSRA2.js";
28
28
  import "../chunks/chunk-LG2UK4MB.js";
@@ -1,16 +1,27 @@
1
1
  import {
2
2
  NODE_WIDTHS,
3
+ frequencyKey,
4
+ haplotypeCount,
3
5
  maxNodeWidthPx,
4
6
  meanDepth,
7
+ nodeFrequency,
5
8
  nodeInk,
6
9
  nodeWidthPx,
7
- walkLaneWidthPx
8
- } from "./chunks/chunk-ZANALBSX.js";
10
+ walkLaneWidthPx,
11
+ widthNorm,
12
+ withFrequencies
13
+ } from "./chunks/chunk-XWH4LB56.js";
14
+ import "./chunks/chunk-2JL2JVZ2.js";
9
15
  export {
10
16
  NODE_WIDTHS,
17
+ frequencyKey,
18
+ haplotypeCount,
11
19
  maxNodeWidthPx,
12
20
  meanDepth,
21
+ nodeFrequency,
13
22
  nodeInk,
14
23
  nodeWidthPx,
15
- walkLaneWidthPx
24
+ walkLaneWidthPx,
25
+ widthNorm,
26
+ withFrequencies
16
27
  };
package/dist/pipeline.js CHANGED
@@ -11,12 +11,12 @@ import {
11
11
  forceLayout,
12
12
  layoutExtent,
13
13
  loadGraph
14
- } from "./chunks/chunk-3KGUENAV.js";
14
+ } from "./chunks/chunk-5LTWXDXK.js";
15
15
  import "./chunks/chunk-OPPVSPEF.js";
16
16
  import "./chunks/chunk-NAYS472K.js";
17
17
  import "./chunks/chunk-4FRX2SPT.js";
18
18
  import "./chunks/chunk-VPE4AYP7.js";
19
- import "./chunks/chunk-TUMJNAOL.js";
19
+ import "./chunks/chunk-MSVYSCAH.js";
20
20
  import "./chunks/chunk-QYBZZI5H.js";
21
21
  import "./chunks/chunk-CFXXFHRK.js";
22
22
  import "./chunks/chunk-7L7MN2OM.js";
@@ -7,14 +7,14 @@ import {
7
7
  stripBlockAt,
8
8
  stripOverhang,
9
9
  stripPixels
10
- } from "./chunks/chunk-Z5T6EOPF.js";
11
- import "./chunks/chunk-72JZSR4B.js";
10
+ } from "./chunks/chunk-OND5MXTK.js";
11
+ import "./chunks/chunk-DTBQNR7P.js";
12
12
  import "./chunks/chunk-YUIKEUKY.js";
13
13
  import "./chunks/chunk-G2FD7S3C.js";
14
14
  import "./chunks/chunk-GQZVR5DW.js";
15
15
  import "./chunks/chunk-AGUBPT45.js";
16
16
  import "./chunks/chunk-EHEIS3TE.js";
17
- import "./chunks/chunk-ZANALBSX.js";
17
+ import "./chunks/chunk-XWH4LB56.js";
18
18
  import "./chunks/chunk-L4DBSRA2.js";
19
19
  import "./chunks/chunk-ENBFQH7Y.js";
20
20
  import "./chunks/chunk-HMXCN6PG.js";
@@ -11,7 +11,7 @@ import {
11
11
  getNodeColor,
12
12
  hslToRgb,
13
13
  rampFraction
14
- } from "../chunks/chunk-72JZSR4B.js";
14
+ } from "../chunks/chunk-DTBQNR7P.js";
15
15
  import "../chunks/chunk-YUIKEUKY.js";
16
16
  import "../chunks/chunk-G2FD7S3C.js";
17
17
  import {
@@ -19,7 +19,7 @@ import {
19
19
  } from "../chunks/chunk-GQZVR5DW.js";
20
20
  import "../chunks/chunk-AGUBPT45.js";
21
21
  import "../chunks/chunk-EHEIS3TE.js";
22
- import "../chunks/chunk-ZANALBSX.js";
22
+ import "../chunks/chunk-XWH4LB56.js";
23
23
  import "../chunks/chunk-L4DBSRA2.js";
24
24
  import "../chunks/chunk-ENBFQH7Y.js";
25
25
  import "../chunks/chunk-HMXCN6PG.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  tubeMapNodeColors
3
- } from "../chunks/chunk-U7JDTZSK.js";
4
- import "../chunks/chunk-72JZSR4B.js";
3
+ } from "../chunks/chunk-GZ2F2CDT.js";
4
+ import "../chunks/chunk-DTBQNR7P.js";
5
5
  import "../chunks/chunk-YUIKEUKY.js";
6
6
  import "../chunks/chunk-G2FD7S3C.js";
7
7
  import "../chunks/chunk-GQZVR5DW.js";
8
8
  import "../chunks/chunk-AGUBPT45.js";
9
9
  import "../chunks/chunk-EHEIS3TE.js";
10
- import "../chunks/chunk-ZANALBSX.js";
10
+ import "../chunks/chunk-XWH4LB56.js";
11
11
  import "../chunks/chunk-L4DBSRA2.js";
12
12
  import "../chunks/chunk-ENBFQH7Y.js";
13
13
  import "../chunks/chunk-HMXCN6PG.js";
@@ -104,6 +104,10 @@ export declare function figureData(graph: Graph, layout: LayoutResult, o?: Figur
104
104
  deletions: number;
105
105
  deletionKey: string | null;
106
106
  fadedKey: string | null;
107
+ frequencyKey: {
108
+ label: string;
109
+ widthPx: number;
110
+ }[] | null;
107
111
  };
108
112
  panels: {
109
113
  panel: string[];
@@ -123,6 +127,7 @@ export declare function figureData(graph: Graph, layout: LayoutResult, o?: Figur
123
127
  name: string[];
124
128
  length: number[];
125
129
  depth: number[];
130
+ frequency: (number | null)[];
126
131
  backbone: boolean[];
127
132
  referenceVisits: number[];
128
133
  position: (number | null)[];
@@ -142,6 +147,7 @@ export interface GfaFigureSpec extends Omit<FigureDataOptions, 'region' | 'walks
142
147
  engine?: LayoutEngineKind;
143
148
  spacing?: number;
144
149
  componentSeparation?: number;
150
+ frequencies?: Record<string, number>;
145
151
  }
146
152
  export declare function laidOutGraph(text: string, name: string, region: FigureOptions['region'], spec: GfaFigureSpec): Promise<{
147
153
  graph: Graph;
@@ -165,6 +171,10 @@ export declare function gfaFigureData(text: string, name: string, spec?: GfaFigu
165
171
  deletions: number;
166
172
  deletionKey: string | null;
167
173
  fadedKey: string | null;
174
+ frequencyKey: {
175
+ label: string;
176
+ widthPx: number;
177
+ }[] | null;
168
178
  };
169
179
  panels: {
170
180
  panel: string[];
@@ -184,6 +194,7 @@ export declare function gfaFigureData(text: string, name: string, spec?: GfaFigu
184
194
  name: string[];
185
195
  length: number[];
186
196
  depth: number[];
197
+ frequency: (number | null)[];
187
198
  backbone: boolean[];
188
199
  referenceVisits: number[];
189
200
  position: (number | null)[];
@@ -36,6 +36,6 @@ export declare function figureScene(graph: Graph, layout: LayoutResult, o: Figur
36
36
  scale: string | undefined;
37
37
  };
38
38
  contigThickness: number;
39
- nodeWidth: "depth" | "uniform";
39
+ nodeWidth: "depth" | "frequency" | "uniform";
40
40
  geometry: (highlight: WalkLift | undefined, axis: AxisScale) => import("./renderer/types.js").RenderBatch;
41
41
  };
@@ -12,7 +12,7 @@ export { FORCE_LAYOUT_LABEL, LAYOUT_MODES, layoutModeByValue, modeUsesLayoutEngi
12
12
  export type { LayoutModeValue } from './layoutModes.js';
13
13
  export { COLOR_SCHEMES, resolveColorScheme } from './colorSchemes.js';
14
14
  export type { ColorScheme, ResolvedColorScheme } from './colorSchemes.js';
15
- export { NODE_WIDTHS, maxNodeWidthPx, meanDepth, nodeInk, nodeWidthPx, } from './nodeWidths.js';
15
+ export { NODE_WIDTHS, frequencyKey, haplotypeCount, maxNodeWidthPx, meanDepth, nodeFrequency, nodeInk, nodeWidthPx, widthNorm, withFrequencies, } from './nodeWidths.js';
16
16
  export type { NodeWidth } from './nodeWidths.js';
17
17
  export { EDGE_WIDTHS, busiestEdge, edgeWidthFactor } from './edgeWidths.js';
18
18
  export type { EdgeWidth } from './edgeWidths.js';
@@ -4,6 +4,10 @@ export declare const NODE_WIDTHS: readonly [{
4
4
  readonly value: "depth";
5
5
  readonly label: "By depth";
6
6
  readonly description: "Thicker the more paths carry a node, on the square root of its depth against the mean. A graph with one depth everywhere draws uniform.";
7
+ }, {
8
+ readonly value: "frequency";
9
+ readonly label: "By frequency";
10
+ readonly description: "As wide as the share of haplotypes that pass a node, or its AF tag: full width at 100%, half at 50%, and wider where a haplotype passes it more than once.";
7
11
  }, {
8
12
  readonly value: "uniform";
9
13
  readonly label: "Uniform";
@@ -11,7 +15,15 @@ export declare const NODE_WIDTHS: readonly [{
11
15
  }];
12
16
  export type NodeWidth = (typeof NODE_WIDTHS)[number]['value'];
13
17
  export declare function meanDepth(graph: Graph): number;
14
- export declare function nodeWidthPx(node: GraphNode, contigThickness: number, nodeWidth: NodeWidth, mean: number): number;
18
+ export declare function haplotypeCount(graph: Graph): number;
19
+ export declare function nodeFrequency(node: GraphNode, haplotypes: number): number | undefined;
20
+ export declare function withFrequencies(graph: Graph, frequencies: Readonly<Record<string, number>> | undefined): Graph;
21
+ export declare function widthNorm(graph: Graph, nodeWidth: NodeWidth): number;
22
+ export declare function frequencyKey(contigThickness: number): {
23
+ label: string;
24
+ widthPx: number;
25
+ }[];
26
+ export declare function nodeWidthPx(node: GraphNode, contigThickness: number, nodeWidth: NodeWidth, norm: number): number;
15
27
  export declare function maxNodeWidthPx(contigThickness: number, nodeWidth: NodeWidth): number;
16
28
  export declare function walkLaneWidthPx(width: number, lanes: number): number;
17
29
  export declare function nodeInk(graph: Graph | undefined, nodeById: ReadonlyMap<string, GraphNode> | undefined, contigThickness: number, nodeWidth: NodeWidth, lanes?: number): NodeInk;
@@ -7,6 +7,7 @@ export interface GraphNode {
7
7
  name: string;
8
8
  length: number;
9
9
  depth: number;
10
+ frequency?: number;
10
11
  stable?: StableCoordinate;
11
12
  samples?: string[];
12
13
  unclipped?: {
@@ -1 +1 @@
1
- export declare const version = "11.16.0";
1
+ export declare const version = "11.17.0";
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  version
3
- } from "./chunks/chunk-NIB2A2UZ.js";
3
+ } from "./chunks/chunk-42MMT5QM.js";
4
4
  export {
5
5
  version
6
6
  };
package/dist/viewport.js CHANGED
@@ -5,13 +5,13 @@ import {
5
5
  screenToLayout,
6
6
  viewportOf,
7
7
  zoomAbout
8
- } from "./chunks/chunk-ZB5ADQYK.js";
9
- import "./chunks/chunk-3KGUENAV.js";
8
+ } from "./chunks/chunk-ZZUSCQVT.js";
9
+ import "./chunks/chunk-5LTWXDXK.js";
10
10
  import "./chunks/chunk-OPPVSPEF.js";
11
11
  import "./chunks/chunk-NAYS472K.js";
12
12
  import "./chunks/chunk-4FRX2SPT.js";
13
13
  import "./chunks/chunk-VPE4AYP7.js";
14
- import "./chunks/chunk-TUMJNAOL.js";
14
+ import "./chunks/chunk-MSVYSCAH.js";
15
15
  import "./chunks/chunk-QYBZZI5H.js";
16
16
  import "./chunks/chunk-CFXXFHRK.js";
17
17
  import "./chunks/chunk-7L7MN2OM.js";
@@ -10,14 +10,14 @@ import {
10
10
  schemeCss,
11
11
  schemeRgb,
12
12
  splitFamilies
13
- } from "./chunks/chunk-JWXSEGEA.js";
14
- import "./chunks/chunk-72JZSR4B.js";
13
+ } from "./chunks/chunk-BDMISSNR.js";
14
+ import "./chunks/chunk-DTBQNR7P.js";
15
15
  import "./chunks/chunk-YUIKEUKY.js";
16
16
  import "./chunks/chunk-G2FD7S3C.js";
17
17
  import "./chunks/chunk-GQZVR5DW.js";
18
18
  import "./chunks/chunk-AGUBPT45.js";
19
19
  import "./chunks/chunk-EHEIS3TE.js";
20
- import "./chunks/chunk-ZANALBSX.js";
20
+ import "./chunks/chunk-XWH4LB56.js";
21
21
  import "./chunks/chunk-L4DBSRA2.js";
22
22
  import "./chunks/chunk-ENBFQH7Y.js";
23
23
  import "./chunks/chunk-HMXCN6PG.js";
@@ -3,15 +3,15 @@ import {
3
3
  fadedKey,
4
4
  walkHighlight,
5
5
  walkLift
6
- } from "./chunks/chunk-WRSI6VK7.js";
7
- import "./chunks/chunk-JWXSEGEA.js";
8
- import "./chunks/chunk-72JZSR4B.js";
6
+ } from "./chunks/chunk-PL6X2IJC.js";
7
+ import "./chunks/chunk-BDMISSNR.js";
8
+ import "./chunks/chunk-DTBQNR7P.js";
9
9
  import "./chunks/chunk-YUIKEUKY.js";
10
10
  import "./chunks/chunk-G2FD7S3C.js";
11
11
  import "./chunks/chunk-GQZVR5DW.js";
12
12
  import "./chunks/chunk-AGUBPT45.js";
13
13
  import "./chunks/chunk-EHEIS3TE.js";
14
- import "./chunks/chunk-ZANALBSX.js";
14
+ import "./chunks/chunk-XWH4LB56.js";
15
15
  import "./chunks/chunk-L4DBSRA2.js";
16
16
  import "./chunks/chunk-LG2UK4MB.js";
17
17
  import "./chunks/chunk-ENBFQH7Y.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/bandage-core",
3
- "version": "11.16.0",
3
+ "version": "11.17.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": {
@@ -1,65 +0,0 @@
1
- // src/nodeWidths.ts
2
- var NODE_WIDTHS = [
3
- {
4
- value: "depth",
5
- label: "By depth",
6
- description: "Thicker the more paths carry a node, on the square root of its depth against the mean. A graph with one depth everywhere draws uniform."
7
- },
8
- {
9
- value: "uniform",
10
- label: "Uniform",
11
- description: "Every node the same thickness."
12
- }
13
- ];
14
- var MIN_FACTOR = 0.3;
15
- var MAX_FACTOR = 3;
16
- function meanDepth(graph) {
17
- let weighted = 0;
18
- let length = 0;
19
- for (const node of graph.nodes) {
20
- weighted += node.depth * node.length;
21
- length += node.length;
22
- }
23
- return length > 0 ? weighted / length : 0;
24
- }
25
- function depthWidthFactor(node, mean) {
26
- if (!(mean > 0) || !(node.depth > 0)) {
27
- return 1;
28
- }
29
- return Math.min(
30
- MAX_FACTOR,
31
- Math.max(MIN_FACTOR, Math.sqrt(node.depth / mean))
32
- );
33
- }
34
- function nodeWidthPx(node, contigThickness, nodeWidth, mean) {
35
- return contigThickness * (nodeWidth === "depth" ? depthWidthFactor(node, mean) : 1);
36
- }
37
- function maxNodeWidthPx(contigThickness, nodeWidth) {
38
- return contigThickness * (nodeWidth === "depth" ? MAX_FACTOR : 1);
39
- }
40
- var MIN_WALK_LANE_PX = 4;
41
- function walkLaneWidthPx(width, lanes) {
42
- return Math.max(width / lanes, MIN_WALK_LANE_PX);
43
- }
44
- function nodeInk(graph, nodeById, contigThickness, nodeWidth, lanes = 0) {
45
- const mean = graph ? meanDepth(graph) : 0;
46
- const reach = (width) => lanes > 0 ? walkLaneWidthPx(width, lanes) * lanes / 2 : width / 2;
47
- return {
48
- maxHalfWidthPx: reach(maxNodeWidthPx(contigThickness, nodeWidth)),
49
- halfWidthPx: (id) => {
50
- const node = nodeById?.get(id);
51
- return reach(
52
- node ? nodeWidthPx(node, contigThickness, nodeWidth, mean) : contigThickness
53
- );
54
- }
55
- };
56
- }
57
-
58
- export {
59
- NODE_WIDTHS,
60
- meanDepth,
61
- nodeWidthPx,
62
- maxNodeWidthPx,
63
- walkLaneWidthPx,
64
- nodeInk
65
- };