@jbrowse/bandage-core 8.2.0 → 9.1.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.
- package/dist/bubbles/bubbleHalos.js +9 -5
- package/dist/bubbles/bubbleLine.js +3 -1
- package/dist/bubbles/bubblesFromGraph.js +8 -4
- package/dist/bubbles/classifyBubble.js +2 -2
- package/dist/bubbles/superbubbles.js +21 -0
- package/dist/chunks/{chunk-ISEI2FH3.js → chunk-2AWUWGAD.js} +10 -4
- package/dist/chunks/{chunk-GQ2AOHU4.js → chunk-2ZT7ZF7A.js} +13 -31
- package/dist/chunks/{chunk-DE4UFDUZ.js → chunk-3TGUKQWQ.js} +4 -4
- package/dist/chunks/{chunk-KCRL5JB2.js → chunk-75HR3756.js} +55 -17
- package/dist/chunks/{chunk-DRA7733Q.js → chunk-BPRXQ2SS.js} +8 -3
- package/dist/chunks/{chunk-TEDQJPMI.js → chunk-CWFNEKST.js} +22 -7
- package/dist/chunks/chunk-FUVI4WQP.js +273 -0
- package/dist/chunks/{chunk-MFKORG3F.js → chunk-FX4RDMDN.js} +5 -1
- package/dist/chunks/{chunk-4S47XRYA.js → chunk-GOZYKNQ2.js} +16 -11
- package/dist/chunks/chunk-INJ2UVOT.js +370 -0
- package/dist/chunks/{chunk-TL4B342F.js → chunk-MXDQGA7A.js} +1 -1
- package/dist/chunks/{chunk-SKKYLBRA.js → chunk-RRZMMYBG.js} +1 -1
- package/dist/chunks/{chunk-3FXPFVKJ.js → chunk-UID3QBWH.js} +1 -1
- package/dist/chunks/{chunk-2WNBVB55.js → chunk-WBCOREDZ.js} +121 -74
- package/dist/chunks/{chunk-OWFPAIJI.js → chunk-WEDZ76AK.js} +1 -1
- package/dist/chunks/{chunk-CF62U3QS.js → chunk-WNUZP3WQ.js} +2 -2
- package/dist/chunks/{chunk-WOO7QYKB.js → chunk-XKWD2RY3.js} +8 -2
- package/dist/chunks/{chunk-6VBDMZBZ.js → chunk-XLCTQHBE.js} +1 -1
- package/dist/chunks/{chunk-733L2TS6.js → chunk-XXT2JCAC.js} +10 -7
- package/dist/cli/figure.js +9 -9
- package/dist/figure.js +6 -6
- package/dist/figureSettings.js +3 -3
- package/dist/index.js +45 -33
- package/dist/layout/forceCache.js +3 -3
- package/dist/layout/tubeMapLayout.js +12 -6
- package/dist/layoutModes.js +3 -3
- package/dist/pipeline.js +2 -2
- package/dist/renderer/Canvas2DRenderer.js +1 -1
- package/dist/renderer/recordingCanvas.js +12 -1
- package/dist/tubeMap/axis.js +1 -1
- package/dist/tubeMap/coarsen.js +11 -23
- package/dist/tubeMap/connectors.js +3 -4
- package/dist/tubeMap/deviations.js +15 -19
- package/dist/tubeMap/draw.js +11 -5
- package/dist/tubeMap/genes.js +2 -2
- package/dist/tubeMap/mismatches.js +1 -1
- package/dist/tubeMap/reads.js +1 -1
- package/dist/types/bubbles/bubbleHalos.d.ts +2 -0
- package/dist/types/bubbles/bubbleLine.d.ts +3 -0
- package/dist/types/bubbles/bubblesFromGraph.d.ts +12 -2
- package/dist/types/bubbles/superbubbles.d.ts +5 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/layout/tubeMapLayout.d.ts +15 -2
- package/dist/types/layoutModes.d.ts +5 -5
- package/dist/types/renderer/Canvas2DRenderer.d.ts +6 -3
- package/dist/types/tubeMap/axis.d.ts +6 -3
- package/dist/types/tubeMap/connectors.d.ts +3 -11
- package/dist/types/tubeMap/deviations.d.ts +2 -3
- package/dist/types/tubeMap/draw.d.ts +5 -1
- package/dist/types/tubeMap/mismatches.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/viewport.js +3 -3
- package/package.json +1 -1
- package/dist/chunks/chunk-W2I4DOL4.js +0 -230
- package/dist/chunks/{chunk-5OIVTEF7.js → chunk-OOXIMURX.js} +3 -3
package/dist/index.js
CHANGED
|
@@ -1,41 +1,48 @@
|
|
|
1
1
|
import {
|
|
2
2
|
wheelZoomFactor
|
|
3
3
|
} from "./chunks/chunk-TDQLINVI.js";
|
|
4
|
+
import {
|
|
5
|
+
connectorAt,
|
|
6
|
+
drawLitConnector,
|
|
7
|
+
drawTubeMapConnectors,
|
|
8
|
+
tubeMapConnectors
|
|
9
|
+
} from "./chunks/chunk-2ZT7ZF7A.js";
|
|
4
10
|
import {
|
|
5
11
|
drawTubeMap,
|
|
6
|
-
|
|
7
|
-
|
|
12
|
+
drawTubeMapHighlight,
|
|
13
|
+
tubeMapMismatchAt,
|
|
14
|
+
tubeMapPicture,
|
|
15
|
+
tubeMapTrackAt
|
|
16
|
+
} from "./chunks/chunk-75HR3756.js";
|
|
8
17
|
import {
|
|
9
18
|
tubeMapFrame,
|
|
10
19
|
tubeMapNodeAt
|
|
11
20
|
} from "./chunks/chunk-VZQ4FKLR.js";
|
|
21
|
+
import {
|
|
22
|
+
referenceKnots,
|
|
23
|
+
warpX
|
|
24
|
+
} from "./chunks/chunk-KQFOCDFY.js";
|
|
12
25
|
import {
|
|
13
26
|
drawTubeMapGenes,
|
|
14
27
|
tubeMapGenes
|
|
15
|
-
} from "./chunks/chunk-
|
|
16
|
-
import "./chunks/chunk-
|
|
28
|
+
} from "./chunks/chunk-WEDZ76AK.js";
|
|
29
|
+
import "./chunks/chunk-XXT2JCAC.js";
|
|
17
30
|
import {
|
|
18
31
|
tubeMapNodeColors
|
|
19
32
|
} from "./chunks/chunk-FFFQNQUI.js";
|
|
20
|
-
import {
|
|
21
|
-
referenceKnots,
|
|
22
|
-
warpX
|
|
23
|
-
} from "./chunks/chunk-KQFOCDFY.js";
|
|
24
33
|
import {
|
|
25
34
|
drawTubeMapRuler,
|
|
26
35
|
referenceBoxes,
|
|
27
36
|
rulerBoxes,
|
|
28
37
|
tubeX
|
|
29
|
-
} from "./chunks/chunk-
|
|
30
|
-
import {
|
|
31
|
-
connectorAt,
|
|
32
|
-
drawTubeMapConnectors,
|
|
33
|
-
referenceNodes,
|
|
34
|
-
tubeMapConnectors
|
|
35
|
-
} from "./chunks/chunk-GQ2AOHU4.js";
|
|
38
|
+
} from "./chunks/chunk-BPRXQ2SS.js";
|
|
36
39
|
import {
|
|
37
40
|
createForceLayoutCache
|
|
38
|
-
} from "./chunks/chunk-
|
|
41
|
+
} from "./chunks/chunk-RRZMMYBG.js";
|
|
42
|
+
import {
|
|
43
|
+
graphBubbles,
|
|
44
|
+
superbubblesFromGraph
|
|
45
|
+
} from "./chunks/chunk-FUVI4WQP.js";
|
|
39
46
|
import {
|
|
40
47
|
bubbleSubgraph
|
|
41
48
|
} from "./chunks/chunk-VHW7FDHU.js";
|
|
@@ -47,17 +54,17 @@ import {
|
|
|
47
54
|
} from "./chunks/chunk-BXEPA4KS.js";
|
|
48
55
|
import {
|
|
49
56
|
bubbleHalos
|
|
50
|
-
} from "./chunks/chunk-
|
|
57
|
+
} from "./chunks/chunk-2AWUWGAD.js";
|
|
51
58
|
import {
|
|
52
59
|
bubblesFromGraph
|
|
53
|
-
} from "./chunks/chunk-
|
|
60
|
+
} from "./chunks/chunk-GOZYKNQ2.js";
|
|
54
61
|
import {
|
|
55
62
|
BUBBLE_KIND_COLORS,
|
|
56
63
|
BUBBLE_KIND_NAMES,
|
|
57
64
|
bubbleSegmentIds,
|
|
58
65
|
classifyBubble
|
|
59
|
-
} from "./chunks/chunk-
|
|
60
|
-
import "./chunks/chunk-
|
|
66
|
+
} from "./chunks/chunk-XKWD2RY3.js";
|
|
67
|
+
import "./chunks/chunk-FX4RDMDN.js";
|
|
61
68
|
import {
|
|
62
69
|
REFERENCE_STRIP_ZONE_PX,
|
|
63
70
|
drawReferenceStrip,
|
|
@@ -69,9 +76,9 @@ import {
|
|
|
69
76
|
LAYOUT_MODES,
|
|
70
77
|
layoutModeByValue,
|
|
71
78
|
modeUsesLayoutEngine
|
|
72
|
-
} from "./chunks/chunk-
|
|
73
|
-
import "./chunks/chunk-
|
|
74
|
-
import "./chunks/chunk-
|
|
79
|
+
} from "./chunks/chunk-WNUZP3WQ.js";
|
|
80
|
+
import "./chunks/chunk-INJ2UVOT.js";
|
|
81
|
+
import "./chunks/chunk-CWFNEKST.js";
|
|
75
82
|
import "./chunks/chunk-LOEA5IHZ.js";
|
|
76
83
|
import "./chunks/chunk-L3O7AWLI.js";
|
|
77
84
|
import "./chunks/chunk-TZFWUT2C.js";
|
|
@@ -112,7 +119,7 @@ import {
|
|
|
112
119
|
} from "./chunks/chunk-7XHHVYG7.js";
|
|
113
120
|
import {
|
|
114
121
|
figureSvg
|
|
115
|
-
} from "./chunks/chunk-
|
|
122
|
+
} from "./chunks/chunk-3TGUKQWQ.js";
|
|
116
123
|
import {
|
|
117
124
|
layoutGeometryInputs
|
|
118
125
|
} from "./chunks/chunk-LOCJN3BZ.js";
|
|
@@ -160,7 +167,7 @@ import {
|
|
|
160
167
|
} from "./chunks/chunk-MIW3HYPE.js";
|
|
161
168
|
import {
|
|
162
169
|
Canvas2DRenderer
|
|
163
|
-
} from "./chunks/chunk-
|
|
170
|
+
} from "./chunks/chunk-WBCOREDZ.js";
|
|
164
171
|
import {
|
|
165
172
|
getDpr
|
|
166
173
|
} from "./chunks/chunk-4BYTEJGW.js";
|
|
@@ -204,7 +211,7 @@ import {
|
|
|
204
211
|
import "./chunks/chunk-G2FD7S3C.js";
|
|
205
212
|
import {
|
|
206
213
|
version
|
|
207
|
-
} from "./chunks/chunk-
|
|
214
|
+
} from "./chunks/chunk-UID3QBWH.js";
|
|
208
215
|
import {
|
|
209
216
|
axisScaleOf,
|
|
210
217
|
contains,
|
|
@@ -212,7 +219,7 @@ import {
|
|
|
212
219
|
screenToLayout,
|
|
213
220
|
viewportOf,
|
|
214
221
|
zoomAbout
|
|
215
|
-
} from "./chunks/chunk-
|
|
222
|
+
} from "./chunks/chunk-MXDQGA7A.js";
|
|
216
223
|
import {
|
|
217
224
|
walkRowLabels,
|
|
218
225
|
walkRowsExtent
|
|
@@ -283,7 +290,7 @@ import {
|
|
|
283
290
|
import {
|
|
284
291
|
FIGURE_DEFAULTS,
|
|
285
292
|
figureSpecSettings
|
|
286
|
-
} from "./chunks/chunk-
|
|
293
|
+
} from "./chunks/chunk-XLCTQHBE.js";
|
|
287
294
|
import {
|
|
288
295
|
ENGINE_DEFAULTS,
|
|
289
296
|
FIT_PADDING,
|
|
@@ -296,16 +303,16 @@ import {
|
|
|
296
303
|
forceLayout,
|
|
297
304
|
layoutExtent,
|
|
298
305
|
loadGraph
|
|
299
|
-
} from "./chunks/chunk-
|
|
306
|
+
} from "./chunks/chunk-OOXIMURX.js";
|
|
300
307
|
import "./chunks/chunk-PUG7LXDF.js";
|
|
301
308
|
import "./chunks/chunk-IGVV37VI.js";
|
|
302
|
-
import "./chunks/chunk-OCMBULGN.js";
|
|
303
|
-
import "./chunks/chunk-QYBZZI5H.js";
|
|
304
|
-
import "./chunks/chunk-CDLPYR5O.js";
|
|
305
309
|
import {
|
|
306
310
|
graphFromTables,
|
|
307
311
|
graphTablesGFA
|
|
308
312
|
} from "./chunks/chunk-OA7RIMZ2.js";
|
|
313
|
+
import "./chunks/chunk-OCMBULGN.js";
|
|
314
|
+
import "./chunks/chunk-QYBZZI5H.js";
|
|
315
|
+
import "./chunks/chunk-CDLPYR5O.js";
|
|
309
316
|
import "./chunks/chunk-ES2N6V56.js";
|
|
310
317
|
import "./chunks/chunk-ST2IBUAN.js";
|
|
311
318
|
import {
|
|
@@ -393,10 +400,12 @@ export {
|
|
|
393
400
|
cutsWholeWalks,
|
|
394
401
|
deletionDrawing,
|
|
395
402
|
deletionEdges,
|
|
403
|
+
drawLitConnector,
|
|
396
404
|
drawReferenceStrip,
|
|
397
405
|
drawTubeMap,
|
|
398
406
|
drawTubeMapConnectors,
|
|
399
407
|
drawTubeMapGenes,
|
|
408
|
+
drawTubeMapHighlight,
|
|
400
409
|
drawTubeMapRuler,
|
|
401
410
|
drawingBounds,
|
|
402
411
|
edgeHoverText,
|
|
@@ -429,6 +438,7 @@ export {
|
|
|
429
438
|
genesOnRow,
|
|
430
439
|
getDpr,
|
|
431
440
|
graphBackbone,
|
|
441
|
+
graphBubbles,
|
|
432
442
|
graphFromTables,
|
|
433
443
|
graphTablesGFA,
|
|
434
444
|
haplotypeWanted,
|
|
@@ -463,7 +473,6 @@ export {
|
|
|
463
473
|
referenceBoxes,
|
|
464
474
|
referenceKnots,
|
|
465
475
|
referenceLabel,
|
|
466
|
-
referenceNodes,
|
|
467
476
|
referencePathQuery,
|
|
468
477
|
referenceSamplesOf,
|
|
469
478
|
referenceStripBlocks,
|
|
@@ -485,13 +494,16 @@ export {
|
|
|
485
494
|
stripGeneGaps,
|
|
486
495
|
stripMarks,
|
|
487
496
|
stripRowAt,
|
|
497
|
+
superbubblesFromGraph,
|
|
488
498
|
svgCanvas,
|
|
489
499
|
tubeMapConnectors,
|
|
490
500
|
tubeMapFrame,
|
|
491
501
|
tubeMapGenes,
|
|
502
|
+
tubeMapMismatchAt,
|
|
492
503
|
tubeMapNodeAt,
|
|
493
504
|
tubeMapNodeColors,
|
|
494
505
|
tubeMapPicture,
|
|
506
|
+
tubeMapTrackAt,
|
|
495
507
|
tubeX,
|
|
496
508
|
unitTicks,
|
|
497
509
|
version,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createForceLayoutCache
|
|
3
|
-
} from "../chunks/chunk-
|
|
4
|
-
import "../chunks/chunk-
|
|
3
|
+
} from "../chunks/chunk-RRZMMYBG.js";
|
|
4
|
+
import "../chunks/chunk-OOXIMURX.js";
|
|
5
5
|
import "../chunks/chunk-PUG7LXDF.js";
|
|
6
6
|
import "../chunks/chunk-IGVV37VI.js";
|
|
7
|
+
import "../chunks/chunk-OA7RIMZ2.js";
|
|
7
8
|
import "../chunks/chunk-OCMBULGN.js";
|
|
8
9
|
import "../chunks/chunk-QYBZZI5H.js";
|
|
9
10
|
import "../chunks/chunk-CDLPYR5O.js";
|
|
10
|
-
import "../chunks/chunk-OA7RIMZ2.js";
|
|
11
11
|
import "../chunks/chunk-ES2N6V56.js";
|
|
12
12
|
import "../chunks/chunk-ST2IBUAN.js";
|
|
13
13
|
import "../chunks/chunk-BPLIXMH7.js";
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
+
boxGraph,
|
|
3
|
+
hasTubeMapBackbone,
|
|
2
4
|
hasTubeMapPaths,
|
|
5
|
+
mergedRuns,
|
|
6
|
+
pathSteps,
|
|
3
7
|
tubeMapLayout,
|
|
4
8
|
tubeMapReferenceLayout,
|
|
5
9
|
tubeMapTracks,
|
|
6
|
-
tubeWidth
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import "../chunks/chunk-TEDQJPMI.js";
|
|
10
|
+
tubeWidth
|
|
11
|
+
} from "../chunks/chunk-INJ2UVOT.js";
|
|
12
|
+
import "../chunks/chunk-CWFNEKST.js";
|
|
10
13
|
import "../chunks/chunk-C44YRP5F.js";
|
|
11
14
|
import "../chunks/chunk-7GBL7SJY.js";
|
|
12
15
|
import "../chunks/chunk-3ZZSX5HN.js";
|
|
@@ -19,10 +22,13 @@ import "../chunks/chunk-2CVHXFK7.js";
|
|
|
19
22
|
import "../chunks/chunk-CPMHA4W5.js";
|
|
20
23
|
import "../chunks/chunk-FYQWPEEY.js";
|
|
21
24
|
export {
|
|
25
|
+
boxGraph,
|
|
26
|
+
hasTubeMapBackbone,
|
|
22
27
|
hasTubeMapPaths,
|
|
28
|
+
mergedRuns,
|
|
29
|
+
pathSteps,
|
|
23
30
|
tubeMapLayout,
|
|
24
31
|
tubeMapReferenceLayout,
|
|
25
32
|
tubeMapTracks,
|
|
26
|
-
tubeWidth
|
|
27
|
-
visitStrands
|
|
33
|
+
tubeWidth
|
|
28
34
|
};
|
package/dist/layoutModes.js
CHANGED
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
LAYOUT_MODE_VALUES,
|
|
5
5
|
layoutModeByValue,
|
|
6
6
|
modeUsesLayoutEngine
|
|
7
|
-
} from "./chunks/chunk-
|
|
8
|
-
import "./chunks/chunk-
|
|
9
|
-
import "./chunks/chunk-
|
|
7
|
+
} from "./chunks/chunk-WNUZP3WQ.js";
|
|
8
|
+
import "./chunks/chunk-INJ2UVOT.js";
|
|
9
|
+
import "./chunks/chunk-CWFNEKST.js";
|
|
10
10
|
import "./chunks/chunk-LOEA5IHZ.js";
|
|
11
11
|
import "./chunks/chunk-L3O7AWLI.js";
|
|
12
12
|
import "./chunks/chunk-TZFWUT2C.js";
|
package/dist/pipeline.js
CHANGED
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
forceLayout,
|
|
12
12
|
layoutExtent,
|
|
13
13
|
loadGraph
|
|
14
|
-
} from "./chunks/chunk-
|
|
14
|
+
} from "./chunks/chunk-OOXIMURX.js";
|
|
15
15
|
import "./chunks/chunk-PUG7LXDF.js";
|
|
16
16
|
import "./chunks/chunk-IGVV37VI.js";
|
|
17
|
+
import "./chunks/chunk-OA7RIMZ2.js";
|
|
17
18
|
import "./chunks/chunk-OCMBULGN.js";
|
|
18
19
|
import "./chunks/chunk-QYBZZI5H.js";
|
|
19
20
|
import "./chunks/chunk-CDLPYR5O.js";
|
|
20
|
-
import "./chunks/chunk-OA7RIMZ2.js";
|
|
21
21
|
import "./chunks/chunk-ES2N6V56.js";
|
|
22
22
|
import "./chunks/chunk-ST2IBUAN.js";
|
|
23
23
|
import "./chunks/chunk-BPLIXMH7.js";
|
|
@@ -4,6 +4,7 @@ function recordingCanvas() {
|
|
|
4
4
|
const fills = [];
|
|
5
5
|
const lineWidths = [];
|
|
6
6
|
const points = [];
|
|
7
|
+
let clears = 0;
|
|
7
8
|
const at = (x, y) => {
|
|
8
9
|
points.push({ x, y });
|
|
9
10
|
};
|
|
@@ -27,6 +28,9 @@ function recordingCanvas() {
|
|
|
27
28
|
},
|
|
28
29
|
fillRect: () => {
|
|
29
30
|
},
|
|
31
|
+
clearRect: () => {
|
|
32
|
+
clears++;
|
|
33
|
+
},
|
|
30
34
|
stroke: () => {
|
|
31
35
|
strokes.push(ctx.strokeStyle);
|
|
32
36
|
lineWidths.push(ctx.lineWidth);
|
|
@@ -37,7 +41,14 @@ function recordingCanvas() {
|
|
|
37
41
|
};
|
|
38
42
|
const canvas = document.createElement("canvas");
|
|
39
43
|
canvas.getContext = () => ctx;
|
|
40
|
-
return {
|
|
44
|
+
return {
|
|
45
|
+
canvas,
|
|
46
|
+
strokes,
|
|
47
|
+
fills,
|
|
48
|
+
lineWidths,
|
|
49
|
+
points,
|
|
50
|
+
clears: () => clears
|
|
51
|
+
};
|
|
41
52
|
}
|
|
42
53
|
export {
|
|
43
54
|
recordingCanvas
|
package/dist/tubeMap/axis.js
CHANGED
package/dist/tubeMap/coarsen.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunks/chunk-
|
|
4
|
-
import
|
|
5
|
-
canonicalStrand
|
|
6
|
-
} from "../chunks/chunk-TEDQJPMI.js";
|
|
2
|
+
pathSteps
|
|
3
|
+
} from "../chunks/chunk-INJ2UVOT.js";
|
|
4
|
+
import "../chunks/chunk-CWFNEKST.js";
|
|
7
5
|
import "../chunks/chunk-C44YRP5F.js";
|
|
8
6
|
import "../chunks/chunk-7GBL7SJY.js";
|
|
9
7
|
import "../chunks/chunk-3ZZSX5HN.js";
|
|
@@ -21,20 +19,11 @@ import {
|
|
|
21
19
|
} from "../chunks/chunk-FYQWPEEY.js";
|
|
22
20
|
|
|
23
21
|
// src/tubeMap/coarsen.ts
|
|
24
|
-
function readWalk(path,
|
|
25
|
-
const visitName = pathOrigin(path.name).name;
|
|
26
|
-
const seen = /* @__PURE__ */ new Map();
|
|
22
|
+
function readWalk(path, steps) {
|
|
27
23
|
const runs = [];
|
|
28
24
|
const open = () => ({ a: -Infinity, b: Infinity, detour: [], bp: 0 });
|
|
29
25
|
const gaps = [open()];
|
|
30
|
-
for (const
|
|
31
|
-
const node = nodeById.get(id);
|
|
32
|
-
if (!node) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
const k = seen.get(node.name) ?? 0;
|
|
36
|
-
seen.set(node.name, k + 1);
|
|
37
|
-
const strand = strands.get(`${visitName} ${node.name}`)?.[k] ?? canonicalStrand(node);
|
|
26
|
+
for (const { node, strand } of steps) {
|
|
38
27
|
const gap = gaps.at(-1);
|
|
39
28
|
const last = runs.at(-1);
|
|
40
29
|
if (isBackbone(node)) {
|
|
@@ -119,13 +108,13 @@ function findCuts(walks, sigma, cuts) {
|
|
|
119
108
|
}
|
|
120
109
|
}
|
|
121
110
|
}
|
|
111
|
+
const spans = walks.flatMap(({ runs, gaps }) => [
|
|
112
|
+
...gaps.filter((g) => isSmall(g, sigma)).map((g) => [g.a, g.b]),
|
|
113
|
+
...runs.filter((r) => r.inverted && r.end - r.start < sigma).map((r) => [r.start, r.end])
|
|
114
|
+
]);
|
|
122
115
|
for (let changed = true; changed; ) {
|
|
123
116
|
changed = false;
|
|
124
117
|
const sorted = [...cuts.keys()].sort((x, y) => x - y);
|
|
125
|
-
const spans = walks.flatMap(({ runs, gaps }) => [
|
|
126
|
-
...gaps.filter((g) => isSmall(g, sigma)).map((g) => [g.a, g.b]),
|
|
127
|
-
...runs.filter((r) => r.inverted && r.end - r.start < sigma).map((r) => [r.start, r.end])
|
|
128
|
-
]);
|
|
129
118
|
for (const [a, b] of spans) {
|
|
130
119
|
if (strictlyInside(sorted, a, b)) {
|
|
131
120
|
changed ||= !cuts.has(a) || !cuts.has(b);
|
|
@@ -179,9 +168,8 @@ function coarsenTubeMap(graph, sigma) {
|
|
|
179
168
|
if (backbone.length === 0 || paths.length === 0) {
|
|
180
169
|
return void 0;
|
|
181
170
|
}
|
|
182
|
-
const
|
|
183
|
-
const
|
|
184
|
-
const walks = paths.map((p) => readWalk(p, nodeById, strands));
|
|
171
|
+
const stepsOf = pathSteps(graph);
|
|
172
|
+
const walks = paths.map((p, i) => readWalk(p, stepsOf[i]));
|
|
185
173
|
const cuts = findCuts(walks, sigma, referenceGaps(backbone));
|
|
186
174
|
const sortedCuts = [...cuts.keys()].sort((x, y) => x - y);
|
|
187
175
|
const merged = mergeReference(backbone, cuts);
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectorAt,
|
|
3
|
+
drawLitConnector,
|
|
3
4
|
drawTubeMapConnectors,
|
|
4
|
-
referenceNodes,
|
|
5
5
|
tubeMapConnectors
|
|
6
|
-
} from "../chunks/chunk-
|
|
7
|
-
import "../chunks/chunk-FYQWPEEY.js";
|
|
6
|
+
} from "../chunks/chunk-2ZT7ZF7A.js";
|
|
8
7
|
export {
|
|
9
8
|
connectorAt,
|
|
9
|
+
drawLitConnector,
|
|
10
10
|
drawTubeMapConnectors,
|
|
11
|
-
referenceNodes,
|
|
12
11
|
tubeMapConnectors
|
|
13
12
|
};
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunks/chunk-
|
|
2
|
+
referenceBoxes
|
|
3
|
+
} from "../chunks/chunk-BPRXQ2SS.js";
|
|
4
|
+
import "../chunks/chunk-3ZZSX5HN.js";
|
|
5
|
+
import "../chunks/chunk-AB35TJST.js";
|
|
6
|
+
import "../chunks/chunk-TAMCZHLW.js";
|
|
7
|
+
import "../chunks/chunk-N6FECAXP.js";
|
|
8
|
+
import "../chunks/chunk-2CVHXFK7.js";
|
|
9
|
+
import "../chunks/chunk-CPMHA4W5.js";
|
|
10
|
+
import "../chunks/chunk-FYQWPEEY.js";
|
|
4
11
|
|
|
5
12
|
// src/tubeMap/deviations.ts
|
|
6
|
-
function boxesOf(graph, layout) {
|
|
7
|
-
const nodeById = new Map(graph.nodes.map((n) => [n.id, n]));
|
|
8
|
-
const boxes = [];
|
|
9
|
-
layout.nodes.forEach((node, index) => {
|
|
10
|
-
const g = nodeById.get(node.name);
|
|
11
|
-
if (node.order >= 0 && g && isBackbone(g)) {
|
|
12
|
-
const bp0 = g.stable.start;
|
|
13
|
-
boxes.push({ bp0, bp1: bp0 + node.sequenceLength, index, node });
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
return boxes.sort((a, b) => a.bp0 - b.bp0);
|
|
17
|
-
}
|
|
18
13
|
function boxAt(boxes, bp, visited) {
|
|
19
14
|
let lo = 0;
|
|
20
15
|
let hi = boxes.length - 1;
|
|
@@ -30,8 +25,9 @@ function boxAt(boxes, bp, visited) {
|
|
|
30
25
|
(box) => box && visited.has(box.index) && box.bp0 <= bp && bp <= box.bp1
|
|
31
26
|
);
|
|
32
27
|
}
|
|
33
|
-
function deviationMarks(
|
|
34
|
-
const
|
|
28
|
+
function deviationMarks(drawing, deviations) {
|
|
29
|
+
const { layout } = drawing;
|
|
30
|
+
const boxes = [...referenceBoxes(drawing).values()].flat().sort((a, b) => a.bp0 - b.bp0);
|
|
35
31
|
const marks = [];
|
|
36
32
|
for (const track of layout.tracks) {
|
|
37
33
|
const devs = track.name ? deviations.get(track.name) : void 0;
|
|
@@ -45,12 +41,12 @@ function deviationMarks(graph, layout, deviations) {
|
|
|
45
41
|
for (const d of devs) {
|
|
46
42
|
const box = boxAt(boxes, d.start, visited);
|
|
47
43
|
if (box) {
|
|
48
|
-
const {
|
|
49
|
-
const at = (bp) =>
|
|
44
|
+
const { bp0, bp1, x0, x1, index } = box;
|
|
45
|
+
const at = (bp) => x0 + (Math.min(bp, bp1) - bp0) / (bp1 - bp0) * (x1 - x0);
|
|
50
46
|
marks.push({
|
|
51
47
|
x0: at(d.start),
|
|
52
48
|
x1: at(d.end),
|
|
53
|
-
y: visited.get(
|
|
49
|
+
y: visited.get(index),
|
|
54
50
|
height: track.width
|
|
55
51
|
});
|
|
56
52
|
}
|
package/dist/tubeMap/draw.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
drawTubeMap,
|
|
3
|
+
drawTubeMapHighlight,
|
|
3
4
|
mismatchOnScreen,
|
|
4
5
|
mismatchesLegible,
|
|
5
6
|
parsePath,
|
|
6
7
|
trackColors,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
tubeMapMismatchAt,
|
|
9
|
+
tubeMapPicture,
|
|
10
|
+
tubeMapTrackAt
|
|
11
|
+
} from "../chunks/chunk-75HR3756.js";
|
|
12
|
+
import "../chunks/chunk-XXT2JCAC.js";
|
|
13
|
+
import "../chunks/chunk-CWFNEKST.js";
|
|
11
14
|
import "../chunks/chunk-C44YRP5F.js";
|
|
12
15
|
export {
|
|
13
16
|
drawTubeMap,
|
|
17
|
+
drawTubeMapHighlight,
|
|
14
18
|
mismatchOnScreen,
|
|
15
19
|
mismatchesLegible,
|
|
16
20
|
parsePath,
|
|
17
21
|
trackColors,
|
|
18
|
-
|
|
22
|
+
tubeMapMismatchAt,
|
|
23
|
+
tubeMapPicture,
|
|
24
|
+
tubeMapTrackAt
|
|
19
25
|
};
|
package/dist/tubeMap/genes.js
CHANGED
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
drawTubeMapGenes,
|
|
4
4
|
tubeMapGeneRows,
|
|
5
5
|
tubeMapGenes
|
|
6
|
-
} from "../chunks/chunk-
|
|
7
|
-
import "../chunks/chunk-
|
|
6
|
+
} from "../chunks/chunk-WEDZ76AK.js";
|
|
7
|
+
import "../chunks/chunk-BPRXQ2SS.js";
|
|
8
8
|
import "../chunks/chunk-3ZZSX5HN.js";
|
|
9
9
|
import "../chunks/chunk-AB35TJST.js";
|
|
10
10
|
import "../chunks/chunk-TAMCZHLW.js";
|
package/dist/tubeMap/reads.js
CHANGED
|
@@ -17,4 +17,6 @@ export interface RouteLabel {
|
|
|
17
17
|
at: NodeSegment;
|
|
18
18
|
text: string;
|
|
19
19
|
}
|
|
20
|
+
export declare const WHOLE_FRACTION = 0.9;
|
|
21
|
+
export declare function coversGraph(members: number, nodes: number): boolean;
|
|
20
22
|
export declare function bubbleHalos(graph: Graph, bubbles: MinigraphBubble[], positions: Record<string, NodeSegment[]>, walkLabel?: (name: string) => string, repeats?: readonly RepeatSpan[]): BubbleHalo[];
|
|
@@ -12,6 +12,8 @@ export interface MinigraphBubble {
|
|
|
12
12
|
longestAllele: string | undefined;
|
|
13
13
|
partial?: boolean;
|
|
14
14
|
routes?: BubbleRoute[];
|
|
15
|
+
key?: string;
|
|
16
|
+
offReference?: true;
|
|
15
17
|
}
|
|
16
18
|
export interface BubbleRoute {
|
|
17
19
|
steps: string[];
|
|
@@ -20,6 +22,7 @@ export interface BubbleRoute {
|
|
|
20
22
|
}
|
|
21
23
|
export declare function parseBubbleLine(line: string): MinigraphBubble;
|
|
22
24
|
export declare function sameBubble(a: MinigraphBubble, b: MinigraphBubble): boolean;
|
|
25
|
+
export declare function bubbleKey(b: MinigraphBubble): string;
|
|
23
26
|
export declare function bubbleLabel(bubble: MinigraphBubble): string;
|
|
24
27
|
export declare const SATURATED_PATH_COUNT = 2147483647;
|
|
25
28
|
export declare function bubbleDescription(bubble: MinigraphBubble): string;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
import type { MinigraphBubble } from './bubbleLine.js';
|
|
2
|
-
import type { Graph } from '../types.js';
|
|
1
|
+
import type { BubbleRoute, MinigraphBubble } from './bubbleLine.js';
|
|
2
|
+
import type { Graph, GraphNode } from '../types.js';
|
|
3
|
+
export interface Routes {
|
|
4
|
+
min: number;
|
|
5
|
+
max: number;
|
|
6
|
+
n: number;
|
|
7
|
+
}
|
|
3
8
|
export declare function bubblesFromGraph(graph: Graph): MinigraphBubble[];
|
|
9
|
+
export declare function walkIndexOf(graph: Graph): Map<string, number>[] | undefined;
|
|
10
|
+
export declare function walkRoutes(graph: Graph, byId: Map<string, GraphNode>, walkIndex: Map<string, number>[], startId: string, endId: string): (Routes & {
|
|
11
|
+
left: number;
|
|
12
|
+
routes: BubbleRoute[];
|
|
13
|
+
}) | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MinigraphBubble } from './bubbleLine.js';
|
|
2
|
+
import type { Graph } from '../types.js';
|
|
3
|
+
export declare const MAX_SUPERBUBBLES = 50;
|
|
4
|
+
export declare function superbubblesFromGraph(graph: Graph, span?: MinigraphBubble): MinigraphBubble[];
|
|
5
|
+
export declare function graphBubbles(graph: Graph, span?: MinigraphBubble): MinigraphBubble[];
|
package/dist/types/index.d.ts
CHANGED
|
@@ -31,18 +31,18 @@ export type { AxisScale } from './util/geometry.js';
|
|
|
31
31
|
export { wheelZoomFactor } from './util/wheelZoom.js';
|
|
32
32
|
export { REFERENCE_STRIP_ZONE_PX, drawReferenceStrip, referenceStripBlocks, stripBlockAt, } from './referenceStrip.js';
|
|
33
33
|
export type { StripBlock } from './referenceStrip.js';
|
|
34
|
-
export { drawTubeMap, tubeMapPicture } from './tubeMap/draw.js';
|
|
34
|
+
export { drawTubeMap, drawTubeMapHighlight, tubeMapMismatchAt, tubeMapPicture, tubeMapTrackAt, } from './tubeMap/draw.js';
|
|
35
35
|
export type { TubeMapFrame, TubeMapPicture } from './tubeMap/draw.js';
|
|
36
36
|
export { tubeMapNodeColors } from './tubeMap/nodeColors.js';
|
|
37
37
|
export { referenceKnots, warpX } from './tubeMap/warp.js';
|
|
38
38
|
export { tubeMapFrame, tubeMapNodeAt } from './tubeMap/frame.js';
|
|
39
39
|
export type { TubeMapTransform, TubeMapView } from './tubeMap/frame.js';
|
|
40
40
|
export { drawTubeMapRuler, referenceBoxes, rulerBoxes, tubeX, } from './tubeMap/axis.js';
|
|
41
|
-
export type { Box as TubeMapBox, ReferenceBoxes } from './tubeMap/axis.js';
|
|
41
|
+
export type { Box as TubeMapBox, ReferenceBox, ReferenceBoxes, } from './tubeMap/axis.js';
|
|
42
42
|
export { drawTubeMapGenes, tubeMapGenes } from './tubeMap/genes.js';
|
|
43
43
|
export type { TubeMapGene } from './tubeMap/genes.js';
|
|
44
|
-
export { connectorAt,
|
|
45
|
-
export type { Connector
|
|
44
|
+
export { connectorAt, drawLitConnector, drawTubeMapConnectors, tubeMapConnectors, } from './tubeMap/connectors.js';
|
|
45
|
+
export type { Connector } from './tubeMap/connectors.js';
|
|
46
46
|
export type { TubeMapColumn, TubeMapDrawing } from './layout/tubeMapLayout.js';
|
|
47
47
|
export { deletionDrawing, deletionEdges } from './deletionEdges.js';
|
|
48
48
|
export type { DeletionDrawing, DeletionEdge } from './deletionEdges.js';
|
|
@@ -62,6 +62,7 @@ export { WALK_FIELDS, WALK_SCHEMES, encodingStops, encodingSwatchCss, resolveEnc
|
|
|
62
62
|
export type { WalkEncoding, WalkField, WalkLayer, WalkScheme, } from './walkEncoding.js';
|
|
63
63
|
export { pathColorsLegible, pathLegend, walkLabelsOf } from './pathColors.js';
|
|
64
64
|
export { bubblesFromGraph } from './bubbles/bubblesFromGraph.js';
|
|
65
|
+
export { graphBubbles, superbubblesFromGraph } from './bubbles/superbubbles.js';
|
|
65
66
|
export { bubbleHalos } from './bubbles/bubbleHalos.js';
|
|
66
67
|
export type { BubbleHalo } from './bubbles/bubbleHalos.js';
|
|
67
68
|
export { BUBBLE_KIND_COLORS, BUBBLE_KIND_NAMES, bubbleSegmentIds, classifyBubble, } from './bubbles/classifyBubble.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Coarsened } from '../tubeMap/coarsen.js';
|
|
2
|
-
import type { Graph, LayoutResult } from '../types.js';
|
|
2
|
+
import type { Graph, GraphNode, LayoutResult } from '../types.js';
|
|
3
3
|
import type { InputTrack, TubeMapLayout } from '@jbrowse/tubemap-core';
|
|
4
4
|
export interface TubeMapColumn {
|
|
5
5
|
order: number;
|
|
@@ -14,10 +14,23 @@ export interface TubeMapDrawing {
|
|
|
14
14
|
yOffset: number;
|
|
15
15
|
columns?: TubeMapColumn[];
|
|
16
16
|
coarse?: Coarsened;
|
|
17
|
+
graph: Graph;
|
|
18
|
+
members: Map<string, string[]>;
|
|
17
19
|
}
|
|
18
|
-
export
|
|
20
|
+
export interface PathStep {
|
|
21
|
+
node: GraphNode;
|
|
22
|
+
strand: '+' | '-';
|
|
23
|
+
}
|
|
24
|
+
export declare function pathSteps(graph: Graph): PathStep[][];
|
|
19
25
|
export declare function tubeMapTracks(graph: Graph): InputTrack[];
|
|
20
26
|
export declare function hasTubeMapPaths(graph: Graph): boolean;
|
|
21
27
|
export declare function tubeWidth(trackCount: number): number;
|
|
28
|
+
export interface MergedRuns {
|
|
29
|
+
members: Map<string, string[]>;
|
|
30
|
+
flipped: Set<string>;
|
|
31
|
+
}
|
|
32
|
+
export declare function mergedRuns(graph: Graph, layout: TubeMapLayout, walks: readonly InputTrack[]): MergedRuns;
|
|
33
|
+
export declare function boxGraph(graph: Graph, { members, flipped }: MergedRuns): Graph;
|
|
22
34
|
export declare function tubeMapLayout(graph: Graph): LayoutResult | undefined;
|
|
35
|
+
export declare function hasTubeMapBackbone(graph: Graph): boolean;
|
|
23
36
|
export declare function tubeMapReferenceLayout(graph: Graph): LayoutResult | undefined;
|