@jbrowse/bandage-core 10.2.7 → 10.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alleleProjection/projectAlleles.js +8 -4
- package/dist/anchoredNodes.js +2 -1
- package/dist/bubbleSpreads.js +2 -2
- package/dist/bubbles/bubbleHalos.js +10 -11
- package/dist/bubbles/bubblesFromGraph.js +8 -3
- package/dist/bubbles/classifyBubble.js +9 -6
- package/dist/bubbles/popBubble.js +7 -5
- package/dist/bubbles/superbubbles.js +18 -14
- package/dist/chunks/{chunk-RAKOB6IV.js → chunk-234NFZS4.js} +8 -6
- package/dist/chunks/{chunk-ABUIN5AK.js → chunk-2Q22S52W.js} +29 -24
- package/dist/chunks/{chunk-6JEWNXCQ.js → chunk-34BOZKIE.js} +0 -2
- package/dist/chunks/{chunk-RVS2QCOX.js → chunk-3GLG3ZLE.js} +2 -11
- package/dist/chunks/{chunk-3XSM4OZU.js → chunk-3GP3KT5L.js} +5 -5
- package/dist/chunks/{chunk-PUG7LXDF.js → chunk-3PZSBNLI.js} +4 -1
- package/dist/chunks/{chunk-JLSJMCDJ.js → chunk-3UST3ZQE.js} +3 -3
- package/dist/chunks/{chunk-KBEP7VYK.js → chunk-3VCKBSML.js} +4 -4
- package/dist/chunks/{chunk-BPLIXMH7.js → chunk-4XWZNPQ2.js} +14 -0
- package/dist/chunks/{chunk-4DRQTBBE.js → chunk-6EOB6ANX.js} +1 -1
- package/dist/chunks/{chunk-L2HDM2R3.js → chunk-A2TJ5UX6.js} +7 -7
- package/dist/chunks/{chunk-URZ3CH2R.js → chunk-A4JDEUAI.js} +1 -1
- package/dist/chunks/{chunk-CWFNEKST.js → chunk-A7H753BA.js} +3 -3
- package/dist/chunks/{chunk-CG35S2S2.js → chunk-AQCOIE5R.js} +1 -1
- package/dist/chunks/{chunk-TKIJ5535.js → chunk-AZ4EEF6Q.js} +6 -6
- package/dist/chunks/{chunk-M6LK4GII.js → chunk-B5X2RLJG.js} +17 -10
- package/dist/chunks/{chunk-A7CFWFQS.js → chunk-BKEZLETL.js} +1 -1
- package/dist/chunks/{chunk-RPRHR56C.js → chunk-BS6HPYCZ.js} +3 -3
- package/dist/chunks/chunk-BSOZW3FC.js +30 -0
- package/dist/chunks/{chunk-XXT2JCAC.js → chunk-BX4AUMZE.js} +11 -13
- package/dist/chunks/{chunk-N73TI3VG.js → chunk-BZFOFC4D.js} +6 -9
- package/dist/chunks/{chunk-4ETPXDO6.js → chunk-CGFPFBT2.js} +1 -1
- package/dist/chunks/{chunk-24WITXQY.js → chunk-CGMSKIEO.js} +9 -25
- package/dist/chunks/{chunk-VV6KGJ7M.js → chunk-CHNESV7L.js} +18 -27
- package/dist/chunks/{chunk-IGVV37VI.js → chunk-CKUVEHSS.js} +3 -3
- package/dist/chunks/{chunk-JBCZIBFC.js → chunk-CRCD3ODN.js} +0 -1
- package/dist/chunks/{chunk-AUFAPUO4.js → chunk-D7WIYPG3.js} +3 -1
- package/dist/chunks/{chunk-OIV2GBAJ.js → chunk-DBLV7PGG.js} +27 -17
- package/dist/chunks/{chunk-VQC7KELB.js → chunk-DO62DG26.js} +11 -3
- package/dist/chunks/{chunk-JA2HJIYS.js → chunk-E4ZM4OOJ.js} +3 -5
- package/dist/chunks/{chunk-QLWI2PZ3.js → chunk-EJRJAAN7.js} +24 -21
- package/dist/chunks/{chunk-QBHPHLAQ.js → chunk-EWLXU3UG.js} +41 -36
- package/dist/chunks/{chunk-XI3ZUTWF.js → chunk-FW2R7UDZ.js} +14 -20
- package/dist/chunks/{chunk-Q7LYHGGQ.js → chunk-GIHTHYXY.js} +5 -4
- package/dist/chunks/{chunk-L3O7AWLI.js → chunk-GJLZ2MKE.js} +2 -2
- package/dist/chunks/{chunk-LOEA5IHZ.js → chunk-GJU6BJJA.js} +8 -8
- package/dist/chunks/{chunk-XL472HHD.js → chunk-GQZVR5DW.js} +12 -7
- package/dist/chunks/{chunk-UVBGRJQX.js → chunk-HKYXWZQS.js} +1 -1
- package/dist/chunks/chunk-HMXCN6PG.js +17 -0
- package/dist/chunks/{chunk-WSIFAZU7.js → chunk-HNWJ4B7S.js} +12 -13
- package/dist/chunks/chunk-HOAIOEI7.js +18 -0
- package/dist/chunks/{chunk-XMW266WS.js → chunk-HSVFCA2J.js} +18 -20
- package/dist/chunks/{chunk-QXUEF3AJ.js → chunk-KMBE2Q42.js} +22 -17
- package/dist/chunks/{chunk-VQWHMWLF.js → chunk-M5NPD55W.js} +18 -14
- package/dist/chunks/chunk-MWOVW4AH.js +327 -0
- package/dist/chunks/{chunk-HK5Y2YWV.js → chunk-MYDHU2UV.js} +6 -11
- package/dist/chunks/{chunk-TZFWUT2C.js → chunk-MYLAJDKB.js} +2 -2
- package/dist/chunks/{chunk-AR4BUBMU.js → chunk-NZTYV3JL.js} +34 -35
- package/dist/chunks/{chunk-4HWM3FNK.js → chunk-OMUPUB4J.js} +39 -56
- package/dist/chunks/{chunk-LKW2TP4N.js → chunk-OOIOX36I.js} +18 -16
- package/dist/chunks/{chunk-EQ2NIFRH.js → chunk-OXRUPNSV.js} +1 -1
- package/dist/chunks/{chunk-PTABFYQ7.js → chunk-PFRQBCGC.js} +49 -60
- package/dist/chunks/{chunk-T6V4KI2L.js → chunk-PNMJFFNB.js} +1 -1
- package/dist/chunks/{chunk-KC7T5RWG.js → chunk-PSCSZSVK.js} +9 -16
- package/dist/chunks/{chunk-23YFB5BB.js → chunk-QH2MIXBA.js} +29 -13
- package/dist/chunks/{chunk-5GMFEPWR.js → chunk-R2PJKD3Y.js} +16 -28
- package/dist/chunks/{chunk-CQHUZHET.js → chunk-RFG42VIO.js} +46 -30
- package/dist/chunks/{chunk-FYQWPEEY.js → chunk-RJWPJCIB.js} +5 -11
- package/dist/chunks/{chunk-WBSWROE6.js → chunk-SFP3E4RI.js} +14 -18
- package/dist/chunks/{chunk-2CMYNW3E.js → chunk-SI3BB4DO.js} +1 -1
- package/dist/chunks/{chunk-DY3JCAMX.js → chunk-SOMZGDVS.js} +7 -16
- package/dist/chunks/{chunk-A4PFFC4Q.js → chunk-SWCULW6S.js} +60 -102
- package/dist/chunks/{chunk-XV4P5KEQ.js → chunk-TGUFT6KK.js} +6 -3
- package/dist/chunks/{chunk-CM6LO6OC.js → chunk-UAFATXYA.js} +10 -14
- package/dist/chunks/{chunk-7SRWJLSC.js → chunk-UBQSRCWR.js} +11 -8
- package/dist/chunks/{chunk-RUCH6ZFL.js → chunk-V4YML3GR.js} +2 -1
- package/dist/chunks/{chunk-ES2N6V56.js → chunk-VX656OAZ.js} +6 -11
- package/dist/chunks/chunk-WA5WNP6V.js +37 -0
- package/dist/chunks/{chunk-B6IW3IRE.js → chunk-WYJQIC75.js} +14 -15
- package/dist/chunks/{chunk-T2PCSAFY.js → chunk-XVS52NMZ.js} +2 -2
- package/dist/chunks/{chunk-CU6P5RUG.js → chunk-YZQI35UJ.js} +22 -16
- package/dist/chunks/{chunk-G45YY72K.js → chunk-Z6XZWPXK.js} +17 -25
- package/dist/chunks/{chunk-EFQLEGWM.js → chunk-ZJBOM73S.js} +7 -8
- package/dist/chunks/{chunk-RAEABQNW.js → chunk-ZPZ7GNBT.js} +1 -0
- package/dist/cli/figure.js +59 -56
- package/dist/cli/fold.js +19 -17
- package/dist/deletionEdges.js +5 -7
- package/dist/facetGrid.js +2 -1
- package/dist/figure.js +45 -42
- package/dist/figureData.js +48 -44
- package/dist/figureScene.js +34 -29
- package/dist/figureSettings.js +19 -17
- package/dist/foldVariants.js +5 -3
- package/dist/gbzCut.js +12 -7
- package/dist/gbzJoin.js +2 -1
- package/dist/gbzWindow.js +11 -6
- package/dist/genes/genePins.js +6 -4
- package/dist/gfa/gfaConverter.js +7 -5
- package/dist/gfa/gfaTables.js +2 -1
- package/dist/gfa/graphTables.js +3 -3
- package/dist/graphLabels.js +8 -5
- package/dist/index.js +88 -85
- package/dist/labelLayout.js +12 -9
- package/dist/layout/anchoredLayout.js +8 -5
- package/dist/layout/drawnScale.js +1 -5
- package/dist/layout/forceCache.js +19 -17
- package/dist/layout/mergeRuns.js +5 -3
- package/dist/layout/orderedLayout.js +5 -2
- package/dist/layout/orientToReference.js +3 -2
- package/dist/layout/placeOffReference.js +7 -4
- package/dist/layout/referenceSeeds.js +6 -4
- package/dist/layout/sampleRowLayout.js +8 -5
- package/dist/layout/trimToWindow.js +6 -4
- package/dist/layout/tubeMapLayout.js +17 -19
- package/dist/layout/walkRowDraw.js +18 -17
- package/dist/layout/walkRowLayout.js +10 -6
- package/dist/layout/walkRows.js +9 -5
- package/dist/layout/walkStrip.js +21 -18
- package/dist/layoutModes.js +23 -20
- package/dist/nodeWidths.js +1 -3
- package/dist/pansn.js +5 -1
- package/dist/pathAnchoring.js +6 -4
- package/dist/pathColors.js +12 -9
- package/dist/pathVisits.js +3 -1
- package/dist/pipeline.js +18 -16
- package/dist/reference.js +5 -3
- package/dist/referenceRampCss.js +9 -17
- package/dist/referenceSpan.js +4 -2
- package/dist/referenceStrip.js +18 -14
- package/dist/renderer/Canvas2DRenderer.js +1 -1
- package/dist/renderer/GeometryBuilder.js +19 -14
- package/dist/renderer/svgCanvas.js +1 -1
- package/dist/tubeMap/axis.js +11 -6
- package/dist/tubeMap/bundle.js +16 -12
- package/dist/tubeMap/coarsen.js +20 -345
- package/dist/tubeMap/deviations.js +53 -23
- package/dist/tubeMap/draw.js +11 -8
- package/dist/tubeMap/frame.js +3 -2
- package/dist/tubeMap/genes.js +10 -7
- package/dist/tubeMap/mismatches.js +1 -1
- package/dist/tubeMap/nodeColors.js +18 -14
- package/dist/tubeMap/reads.js +1 -1
- package/dist/tubeMap/warp.js +2 -1
- package/dist/types/alleleProjection/projectAlleles.d.ts +1 -4
- package/dist/types/bubbles/bubbleHalos.d.ts +0 -2
- package/dist/types/bubbles/bubblesFromGraph.d.ts +6 -4
- package/dist/types/bubbles/classifyBubble.d.ts +2 -1
- package/dist/types/deletionEdges.d.ts +0 -8
- package/dist/types/figureScene.d.ts +17 -7
- package/dist/types/figureSettings.d.ts +2 -0
- package/dist/types/gbzCut.d.ts +4 -0
- package/dist/types/gbzWindow.d.ts +1 -0
- package/dist/types/gfa-core/gfaParser.d.ts +1 -1
- package/dist/types/graphLabels.d.ts +2 -1
- package/dist/types/layout/drawnScale.d.ts +0 -2
- package/dist/types/layout/referenceSeeds.d.ts +2 -1
- package/dist/types/layout/tubeMapLayout.d.ts +0 -7
- package/dist/types/layout/walkRowDraw.d.ts +0 -1
- package/dist/types/layout/walkRowLayout.d.ts +1 -0
- package/dist/types/layout/walkRows.d.ts +1 -0
- package/dist/types/nodeWidths.d.ts +0 -1
- package/dist/types/pansn.d.ts +9 -0
- package/dist/types/pathVisits.d.ts +6 -0
- package/dist/types/referenceRampCss.d.ts +4 -0
- package/dist/types/renderer/Canvas2DRenderer.d.ts +1 -0
- package/dist/types/renderer/GeometryBuilder.d.ts +3 -2
- package/dist/types/tubeMap/axis.d.ts +3 -1
- package/dist/types/tubeMap/coarsen.d.ts +3 -1
- package/dist/types/tubeMap/deviations.d.ts +2 -1
- package/dist/types/tubeMap/mismatches.d.ts +0 -1
- package/dist/types/tubeMap/warp.d.ts +2 -1
- package/dist/types/util/SpatialIndex.d.ts +1 -1
- package/dist/types/util/geometry.d.ts +4 -0
- package/dist/types/util/groups.d.ts +3 -0
- package/dist/types/util/hitDetection.d.ts +2 -2
- package/dist/types/util/partitionPoint.d.ts +1 -0
- package/dist/types/util/weakMemo.d.ts +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/util/SpatialIndex.js +8 -5
- package/dist/util/edgeCurves.js +7 -4
- package/dist/util/geometry.js +3 -1
- package/dist/util/groups.js +10 -0
- package/dist/util/hitDetection.js +9 -6
- package/dist/util/partitionPoint.js +6 -0
- package/dist/util/weakMemo.js +6 -0
- package/dist/version.js +1 -1
- package/dist/viewport.js +19 -17
- package/dist/walkEncoding.js +18 -14
- package/dist/walkHighlight.js +19 -15
- package/dist/walkKey.js +9 -6
- package/package.json +2 -2
- package/dist/chunks/chunk-ZY2AFL4Y.js +0 -43
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
tubeMapMismatches
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BX4AUMZE.js";
|
|
4
4
|
import {
|
|
5
5
|
MAX_GAP_PX
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MYDHU2UV.js";
|
|
7
7
|
import {
|
|
8
8
|
readColor
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-A7H753BA.js";
|
|
10
|
+
import {
|
|
11
|
+
referenceWalkName
|
|
12
|
+
} from "./chunk-OOIOX36I.js";
|
|
10
13
|
import {
|
|
11
14
|
pathOrigin
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-B5X2RLJG.js";
|
|
16
|
+
import {
|
|
17
|
+
pushTo
|
|
18
|
+
} from "./chunk-BSOZW3FC.js";
|
|
13
19
|
|
|
14
20
|
// src/tubeMap/draw.ts
|
|
15
21
|
import { curvePaths, flattenPath, nodeOutlinePath } from "@jbrowse/tubemap-core";
|
|
@@ -102,8 +108,9 @@ function layerOf(layout, type, colors, referenceIds, gapWidth) {
|
|
|
102
108
|
}
|
|
103
109
|
function referenceTrackIds(graph) {
|
|
104
110
|
const ids = /* @__PURE__ */ new Set();
|
|
111
|
+
const name = graph && referenceWalkName(graph);
|
|
105
112
|
graph?.paths?.forEach((path, i) => {
|
|
106
|
-
if (pathOrigin(path.name).name ===
|
|
113
|
+
if (pathOrigin(path.name).name === name) {
|
|
107
114
|
ids.add(i);
|
|
108
115
|
}
|
|
109
116
|
});
|
|
@@ -132,9 +139,7 @@ function tubeMapPicture({
|
|
|
132
139
|
layerOf(layout, "read", colors, referenceIds, gapWidth)
|
|
133
140
|
],
|
|
134
141
|
nodes,
|
|
135
|
-
mismatches: tubeMapMismatches(layout)
|
|
136
|
-
(m) => m.kind !== "insertion" || !m.softClip
|
|
137
|
-
)
|
|
142
|
+
mismatches: tubeMapMismatches(layout)
|
|
138
143
|
};
|
|
139
144
|
}
|
|
140
145
|
function trace(ctx, commands, x, y) {
|
|
@@ -180,13 +185,7 @@ function fillByColor(ctx, items, visible, colorOf, addTo) {
|
|
|
180
185
|
const byColor = /* @__PURE__ */ new Map();
|
|
181
186
|
for (const item of items) {
|
|
182
187
|
if (visible(item)) {
|
|
183
|
-
|
|
184
|
-
const list = byColor.get(color);
|
|
185
|
-
if (list) {
|
|
186
|
-
list.push(item);
|
|
187
|
-
} else {
|
|
188
|
-
byColor.set(color, [item]);
|
|
189
|
-
}
|
|
188
|
+
pushTo(byColor, colorOf(item), item);
|
|
190
189
|
}
|
|
191
190
|
}
|
|
192
191
|
for (const list of byColor.values()) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeColorSchemeRange,
|
|
3
3
|
getNodeColor
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SWCULW6S.js";
|
|
5
5
|
import {
|
|
6
6
|
abgrToCssRgba
|
|
7
7
|
} from "./chunk-G2FD7S3C.js";
|
|
@@ -11,7 +11,7 @@ function tubeMapNodeColors(graph, colorScheme, referenceRamp) {
|
|
|
11
11
|
if (colorScheme === "uniform" || colorScheme === "grey") {
|
|
12
12
|
return void 0;
|
|
13
13
|
}
|
|
14
|
-
const range =
|
|
14
|
+
const range = computeColorSchemeRange(graph, referenceRamp);
|
|
15
15
|
return new Map(
|
|
16
16
|
graph.nodes.map((node, index) => [
|
|
17
17
|
node.id,
|
|
@@ -1,30 +1,36 @@
|
|
|
1
1
|
import {
|
|
2
2
|
encodedColor,
|
|
3
3
|
resolveEncoding
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-DO62DG26.js";
|
|
5
5
|
import {
|
|
6
6
|
pathOrigin
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-B5X2RLJG.js";
|
|
8
8
|
import {
|
|
9
9
|
panSNContig
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4XWZNPQ2.js";
|
|
11
11
|
|
|
12
12
|
// src/walkHighlight.ts
|
|
13
13
|
var isReference = (graph, name) => !!graph.referencePath && pathOrigin(name).name === graph.referencePath;
|
|
14
14
|
function piecesOf(graph, name) {
|
|
15
15
|
return (graph.paths ?? []).filter((p) => p.name === name).sort((a, b) => (a.start ?? 0) - (b.start ?? 0));
|
|
16
16
|
}
|
|
17
|
+
var nodesById = (graph) => new Map(graph.nodes.map((n) => [n.id, n]));
|
|
18
|
+
function graphIndex(graph) {
|
|
19
|
+
const edgeAt = /* @__PURE__ */ new Map();
|
|
20
|
+
graph.edges.forEach((e, i) => {
|
|
21
|
+
edgeAt.set(`${e.from}>${e.to}`, i);
|
|
22
|
+
});
|
|
23
|
+
return { byId: nodesById(graph), edgeAt };
|
|
24
|
+
}
|
|
17
25
|
function walkHighlight(graph, name) {
|
|
26
|
+
return highlightOf(graph, name, graphIndex(graph));
|
|
27
|
+
}
|
|
28
|
+
function highlightOf(graph, name, { byId, edgeAt }) {
|
|
18
29
|
const pieces = piecesOf(graph, name);
|
|
19
30
|
const first = pieces[0];
|
|
20
31
|
if (!first) {
|
|
21
32
|
return void 0;
|
|
22
33
|
}
|
|
23
|
-
const byId = new Map(graph.nodes.map((n) => [n.id, n]));
|
|
24
|
-
const edgeAt = /* @__PURE__ */ new Map();
|
|
25
|
-
graph.edges.forEach((e, i) => {
|
|
26
|
-
edgeAt.set(`${e.from}>${e.to}`, i);
|
|
27
|
-
});
|
|
28
34
|
const lengthOf = (id) => byId.get(id)?.length ?? 0;
|
|
29
35
|
const bpOf = (path) => path.nodeIds.reduce((sum, id) => sum + lengthOf(id), 0);
|
|
30
36
|
const bp = pieces.reduce((sum, piece) => sum + bpOf(piece), 0);
|
|
@@ -83,8 +89,7 @@ function walkHighlight(graph, name) {
|
|
|
83
89
|
referenceBp: referenceSpan()
|
|
84
90
|
};
|
|
85
91
|
}
|
|
86
|
-
function laneColors(
|
|
87
|
-
const byId = new Map(graph.nodes.map((n) => [n.id, n]));
|
|
92
|
+
function laneColors(byId, walk, encoding, ramp) {
|
|
88
93
|
const colors = /* @__PURE__ */ new Map();
|
|
89
94
|
for (const [id, progress] of walk.progress) {
|
|
90
95
|
const node = byId.get(id);
|
|
@@ -94,7 +99,7 @@ function laneColors(graph, walk, encoding, ramp) {
|
|
|
94
99
|
}
|
|
95
100
|
return colors;
|
|
96
101
|
}
|
|
97
|
-
function reversedNodes(graph, walk) {
|
|
102
|
+
function reversedNodes(graph, byId, walk) {
|
|
98
103
|
const reversed = /* @__PURE__ */ new Set();
|
|
99
104
|
let bp = 0;
|
|
100
105
|
const referencePath = graph.referencePath;
|
|
@@ -107,7 +112,6 @@ function reversedNodes(graph, walk) {
|
|
|
107
112
|
}
|
|
108
113
|
const own = visits.pathIndex(pathOrigin(walk.name).name);
|
|
109
114
|
const theirs = visits.pathIndex(referencePath);
|
|
110
|
-
const byId = new Map(graph.nodes.map((n) => [n.id, n]));
|
|
111
115
|
for (const id of walk.progress.keys()) {
|
|
112
116
|
const node = byId.get(id);
|
|
113
117
|
const slot = node ? visits.slot(node.name) : -1;
|
|
@@ -121,9 +125,10 @@ function reversedNodes(graph, walk) {
|
|
|
121
125
|
return { reversed, bp };
|
|
122
126
|
}
|
|
123
127
|
function walkLift(graph, layers, ramp) {
|
|
128
|
+
const index = graphIndex(graph);
|
|
124
129
|
const seen = /* @__PURE__ */ new Set();
|
|
125
130
|
const lifted = layers.filter((layer) => !seen.has(layer.walk) && seen.add(layer.walk)).flatMap((layer) => {
|
|
126
|
-
const walk =
|
|
131
|
+
const walk = highlightOf(graph, layer.walk, index);
|
|
127
132
|
return walk ? [{ walk, layer }] : [];
|
|
128
133
|
}).sort((a, b) => Number(b.walk.reference) - Number(a.walk.reference));
|
|
129
134
|
if (lifted.length === 0) {
|
|
@@ -137,11 +142,11 @@ function walkLift(graph, layers, ramp) {
|
|
|
137
142
|
walk.reference ? 0 : picked++,
|
|
138
143
|
lifted.length === 1
|
|
139
144
|
);
|
|
140
|
-
const { reversed, bp } = reversedNodes(graph, walk);
|
|
145
|
+
const { reversed, bp } = reversedNodes(graph, index.byId, walk);
|
|
141
146
|
return {
|
|
142
147
|
...walk,
|
|
143
148
|
encoding,
|
|
144
|
-
colors: laneColors(
|
|
149
|
+
colors: laneColors(index.byId, walk, encoding, ramp),
|
|
145
150
|
reversed,
|
|
146
151
|
reversedBp: bp
|
|
147
152
|
};
|
|
@@ -150,6 +155,7 @@ function walkLift(graph, layers, ramp) {
|
|
|
150
155
|
}
|
|
151
156
|
var FACET_COLOR = { field: "progress", scheme: "red" };
|
|
152
157
|
function facetLifts(graph, lift, layers, ramp) {
|
|
158
|
+
const byId = nodesById(graph);
|
|
153
159
|
return lift.walks.map((walk) => {
|
|
154
160
|
const stated = layers.find((l) => l.walk === walk.name)?.color;
|
|
155
161
|
const encoding = resolveEncoding(
|
|
@@ -162,7 +168,7 @@ function facetLifts(graph, lift, layers, ramp) {
|
|
|
162
168
|
{
|
|
163
169
|
...walk,
|
|
164
170
|
encoding,
|
|
165
|
-
colors: laneColors(
|
|
171
|
+
colors: laneColors(byId, walk, encoding, ramp)
|
|
166
172
|
}
|
|
167
173
|
],
|
|
168
174
|
ramp
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Column
|
|
3
|
+
} from "./chunk-ZPZ7GNBT.js";
|
|
4
|
+
|
|
1
5
|
// src/gfa/gfaTables.ts
|
|
2
6
|
var GT = 62;
|
|
3
7
|
var LT = 60;
|
|
@@ -7,25 +11,12 @@ var NINE = 57;
|
|
|
7
11
|
var TABLE_TAG = /^(?:LN:i|SN:Z|SO:i|SR:i):/;
|
|
8
12
|
var UNTABLED_RECORD = /^[PEOUFG]\t/;
|
|
9
13
|
var trimCR = (line) => line.endsWith("\r") ? line.slice(0, -1) : line;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
push(node, reversed) {
|
|
17
|
-
if (this.length === this.nodes.length) {
|
|
18
|
-
const nodes = new Int32Array(this.length * 2);
|
|
19
|
-
nodes.set(this.nodes);
|
|
20
|
-
this.nodes = nodes;
|
|
21
|
-
const rev = new Uint8Array(this.length * 2);
|
|
22
|
-
rev.set(this.reversed);
|
|
23
|
-
this.reversed = rev;
|
|
24
|
-
}
|
|
25
|
-
this.nodes[this.length] = node;
|
|
26
|
-
this.reversed[this.length++] = reversed;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
14
|
+
function stepColumns() {
|
|
15
|
+
return {
|
|
16
|
+
nodes: new Column(new Int32Array(1 << 16)),
|
|
17
|
+
reversed: new Column(new Uint8Array(1 << 16))
|
|
18
|
+
};
|
|
19
|
+
}
|
|
29
20
|
var SegmentIndex = class {
|
|
30
21
|
constructor() {
|
|
31
22
|
this.names = [];
|
|
@@ -90,7 +81,8 @@ function readWalkBody(line, from, segments, steps) {
|
|
|
90
81
|
const finish = (end) => {
|
|
91
82
|
if (start >= 0 && end > start) {
|
|
92
83
|
const node = decimal && end - start < 16 && (end - start === 1 || line.charCodeAt(start) !== ZERO) ? segments.ofNumber(value) : void 0;
|
|
93
|
-
steps.push(node ?? segments.of(line.slice(start, end))
|
|
84
|
+
steps.nodes.push(node ?? segments.of(line.slice(start, end)));
|
|
85
|
+
steps.reversed.push(reversed);
|
|
94
86
|
}
|
|
95
87
|
};
|
|
96
88
|
let i = from;
|
|
@@ -166,7 +158,7 @@ function gfaTables(text) {
|
|
|
166
158
|
const walkStarts = [];
|
|
167
159
|
const walkEnds = [];
|
|
168
160
|
const offsets = [0];
|
|
169
|
-
const steps =
|
|
161
|
+
const steps = stepColumns();
|
|
170
162
|
for (const raw of lines) {
|
|
171
163
|
if (raw.startsWith("L ")) {
|
|
172
164
|
const [, source, strand1, target, strand2] = trimCR(raw).split(" ");
|
|
@@ -183,10 +175,10 @@ function gfaTables(text) {
|
|
|
183
175
|
walkStarts.push(w.start === "*" ? 0 : +w.start);
|
|
184
176
|
walkEnds.push(w.end === "*" ? -1 : +w.end);
|
|
185
177
|
readWalkBody(line, w.body, segments, steps);
|
|
186
|
-
if (steps.length === offsets.at(-1)) {
|
|
178
|
+
if (steps.nodes.length === offsets.at(-1)) {
|
|
187
179
|
return void 0;
|
|
188
180
|
}
|
|
189
|
-
offsets.push(steps.length);
|
|
181
|
+
offsets.push(steps.nodes.length);
|
|
190
182
|
}
|
|
191
183
|
}
|
|
192
184
|
}
|
|
@@ -209,8 +201,8 @@ function gfaTables(text) {
|
|
|
209
201
|
starts: Float64Array.from(walkStarts),
|
|
210
202
|
ends: Float64Array.from(walkEnds),
|
|
211
203
|
offsets: Int32Array.from(offsets),
|
|
212
|
-
steps: steps.nodes.slice(0, steps.length),
|
|
213
|
-
reversed: steps.reversed.slice(0, steps.length)
|
|
204
|
+
steps: steps.nodes.data.slice(0, steps.nodes.length),
|
|
205
|
+
reversed: steps.reversed.data.slice(0, steps.reversed.length)
|
|
214
206
|
}
|
|
215
207
|
};
|
|
216
208
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
RAMP_GRADIENT_CSS,
|
|
3
|
-
RAMP_GRADIENT_STOPS,
|
|
4
|
-
rampHueCss,
|
|
5
|
-
rampStops
|
|
6
|
-
} from "./chunk-XL472HHD.js";
|
|
7
1
|
import {
|
|
8
2
|
el
|
|
9
3
|
} from "./chunk-H2H4Y3TV.js";
|
|
10
4
|
import {
|
|
11
5
|
REFERENCE_RAMP_ALT_CSS
|
|
12
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SWCULW6S.js";
|
|
7
|
+
import {
|
|
8
|
+
RAMP_GRADIENT_CSS,
|
|
9
|
+
RAMP_GRADIENT_STOPS,
|
|
10
|
+
rampHueCss,
|
|
11
|
+
rampStops
|
|
12
|
+
} from "./chunk-GQZVR5DW.js";
|
|
13
13
|
import {
|
|
14
14
|
LABEL_CHAR_PX
|
|
15
15
|
} from "./chunk-AB35TJST.js";
|
|
@@ -490,7 +490,6 @@ export {
|
|
|
490
490
|
BAR_PX,
|
|
491
491
|
GAP_PX,
|
|
492
492
|
LABELLED_ROW_PX,
|
|
493
|
-
kb,
|
|
494
493
|
walkRowReadout,
|
|
495
494
|
readoutPlacement,
|
|
496
495
|
unitTicks,
|
package/dist/cli/figure.js
CHANGED
|
@@ -7,98 +7,101 @@ import {
|
|
|
7
7
|
} from "../chunks/chunk-G6UIYQZR.js";
|
|
8
8
|
import {
|
|
9
9
|
figureSvg
|
|
10
|
-
} from "../chunks/chunk-
|
|
11
|
-
import "../chunks/chunk-
|
|
12
|
-
import "../chunks/chunk-
|
|
10
|
+
} from "../chunks/chunk-EWLXU3UG.js";
|
|
11
|
+
import "../chunks/chunk-V4YML3GR.js";
|
|
12
|
+
import "../chunks/chunk-SFP3E4RI.js";
|
|
13
13
|
import {
|
|
14
14
|
genesOnRow,
|
|
15
15
|
placeRowGenes
|
|
16
|
-
} from "../chunks/chunk-
|
|
17
|
-
import "../chunks/chunk-
|
|
16
|
+
} from "../chunks/chunk-ZJBOM73S.js";
|
|
17
|
+
import "../chunks/chunk-EJRJAAN7.js";
|
|
18
18
|
import "../chunks/chunk-RBCE2OQH.js";
|
|
19
19
|
import "../chunks/chunk-JSUCGZ6K.js";
|
|
20
|
-
import "../chunks/chunk-
|
|
21
|
-
import "../chunks/chunk-
|
|
22
|
-
import "../chunks/chunk-
|
|
23
|
-
import "../chunks/chunk-
|
|
24
|
-
import "../chunks/chunk-KBEP7VYK.js";
|
|
20
|
+
import "../chunks/chunk-BS6HPYCZ.js";
|
|
21
|
+
import "../chunks/chunk-PSCSZSVK.js";
|
|
22
|
+
import "../chunks/chunk-OMUPUB4J.js";
|
|
23
|
+
import "../chunks/chunk-3VCKBSML.js";
|
|
25
24
|
import "../chunks/chunk-H2H4Y3TV.js";
|
|
26
25
|
import {
|
|
27
26
|
laidOutGraph,
|
|
28
27
|
walkLayers
|
|
29
|
-
} from "../chunks/chunk-
|
|
28
|
+
} from "../chunks/chunk-CHNESV7L.js";
|
|
30
29
|
import {
|
|
31
30
|
LAYOUT_ENGINE_VALUES,
|
|
32
31
|
isLayoutEngineKind
|
|
33
32
|
} from "../chunks/chunk-JMABOQWL.js";
|
|
34
33
|
import {
|
|
35
34
|
LAYOUT_MODES
|
|
36
|
-
} from "../chunks/chunk-
|
|
37
|
-
import "../chunks/chunk-
|
|
38
|
-
import "../chunks/chunk-
|
|
39
|
-
import "../chunks/chunk-
|
|
40
|
-
import "../chunks/chunk-
|
|
41
|
-
import "../chunks/chunk-
|
|
35
|
+
} from "../chunks/chunk-AZ4EEF6Q.js";
|
|
36
|
+
import "../chunks/chunk-GJU6BJJA.js";
|
|
37
|
+
import "../chunks/chunk-FW2R7UDZ.js";
|
|
38
|
+
import "../chunks/chunk-A7H753BA.js";
|
|
39
|
+
import "../chunks/chunk-GJLZ2MKE.js";
|
|
40
|
+
import "../chunks/chunk-MYLAJDKB.js";
|
|
42
41
|
import "../chunks/chunk-C44YRP5F.js";
|
|
43
|
-
import "../chunks/chunk-
|
|
44
|
-
import "../chunks/chunk-
|
|
42
|
+
import "../chunks/chunk-UAFATXYA.js";
|
|
43
|
+
import "../chunks/chunk-3GLG3ZLE.js";
|
|
45
44
|
import {
|
|
46
|
-
HPRC_GBZ,
|
|
47
45
|
cutGbzRegion,
|
|
46
|
+
gbzLocations,
|
|
48
47
|
haplotypeIndexBeside,
|
|
49
48
|
openGbz,
|
|
50
49
|
parseRegion
|
|
51
|
-
} from "../chunks/chunk-
|
|
52
|
-
import "../chunks/chunk-
|
|
53
|
-
import "../chunks/chunk-
|
|
54
|
-
import "../chunks/chunk-
|
|
55
|
-
import "../chunks/chunk-
|
|
56
|
-
import "../chunks/chunk-
|
|
57
|
-
import "../chunks/chunk-23YFB5BB.js";
|
|
50
|
+
} from "../chunks/chunk-M5NPD55W.js";
|
|
51
|
+
import "../chunks/chunk-GIHTHYXY.js";
|
|
52
|
+
import "../chunks/chunk-HNWJ4B7S.js";
|
|
53
|
+
import "../chunks/chunk-AQCOIE5R.js";
|
|
54
|
+
import "../chunks/chunk-BKEZLETL.js";
|
|
55
|
+
import "../chunks/chunk-QH2MIXBA.js";
|
|
58
56
|
import "../chunks/chunk-LOCJN3BZ.js";
|
|
59
|
-
import "../chunks/chunk-
|
|
60
|
-
import "../chunks/chunk-
|
|
61
|
-
import "../chunks/chunk-
|
|
57
|
+
import "../chunks/chunk-YZQI35UJ.js";
|
|
58
|
+
import "../chunks/chunk-DO62DG26.js";
|
|
59
|
+
import "../chunks/chunk-CGFPFBT2.js";
|
|
60
|
+
import "../chunks/chunk-SWCULW6S.js";
|
|
62
61
|
import "../chunks/chunk-G2FD7S3C.js";
|
|
63
|
-
import "../chunks/chunk-
|
|
64
|
-
import "../chunks/chunk-
|
|
62
|
+
import "../chunks/chunk-GQZVR5DW.js";
|
|
63
|
+
import "../chunks/chunk-WA5WNP6V.js";
|
|
64
|
+
import "../chunks/chunk-A2TJ5UX6.js";
|
|
65
65
|
import {
|
|
66
66
|
filterSamples,
|
|
67
67
|
walkRows
|
|
68
|
-
} from "../chunks/chunk-
|
|
69
|
-
import "../chunks/chunk-
|
|
70
|
-
import "../chunks/chunk-
|
|
71
|
-
import "../chunks/chunk-
|
|
72
|
-
import "../chunks/chunk-
|
|
73
|
-
import "../chunks/chunk-
|
|
74
|
-
import "../chunks/chunk-
|
|
68
|
+
} from "../chunks/chunk-OOIOX36I.js";
|
|
69
|
+
import "../chunks/chunk-3GP3KT5L.js";
|
|
70
|
+
import "../chunks/chunk-CRCD3ODN.js";
|
|
71
|
+
import "../chunks/chunk-D7WIYPG3.js";
|
|
72
|
+
import "../chunks/chunk-KMBE2Q42.js";
|
|
73
|
+
import "../chunks/chunk-3PZSBNLI.js";
|
|
74
|
+
import "../chunks/chunk-CKUVEHSS.js";
|
|
75
75
|
import "../chunks/chunk-OPPVSPEF.js";
|
|
76
76
|
import "../chunks/chunk-VPE4AYP7.js";
|
|
77
|
-
import "../chunks/chunk-
|
|
77
|
+
import "../chunks/chunk-NZTYV3JL.js";
|
|
78
78
|
import "../chunks/chunk-QYBZZI5H.js";
|
|
79
79
|
import "../chunks/chunk-5I3K4R2G.js";
|
|
80
|
-
import "../chunks/chunk-
|
|
81
|
-
import "../chunks/chunk-
|
|
82
|
-
import "../chunks/chunk-
|
|
83
|
-
import "../chunks/chunk-ES2N6V56.js";
|
|
80
|
+
import "../chunks/chunk-DBLV7PGG.js";
|
|
81
|
+
import "../chunks/chunk-B5X2RLJG.js";
|
|
82
|
+
import "../chunks/chunk-VX656OAZ.js";
|
|
84
83
|
import {
|
|
85
84
|
featuresOnBackbone,
|
|
86
85
|
graphBackbone,
|
|
87
86
|
refNameBinding
|
|
88
|
-
} from "../chunks/chunk-
|
|
89
|
-
import "../chunks/chunk-
|
|
90
|
-
import "../chunks/chunk-
|
|
91
|
-
import "../chunks/chunk-
|
|
87
|
+
} from "../chunks/chunk-234NFZS4.js";
|
|
88
|
+
import "../chunks/chunk-Z6XZWPXK.js";
|
|
89
|
+
import "../chunks/chunk-ZPZ7GNBT.js";
|
|
90
|
+
import "../chunks/chunk-PFRQBCGC.js";
|
|
91
|
+
import "../chunks/chunk-HMXCN6PG.js";
|
|
92
92
|
import "../chunks/chunk-AB35TJST.js";
|
|
93
|
-
import "../chunks/chunk-
|
|
94
|
-
import "../chunks/chunk-
|
|
95
|
-
import "../chunks/chunk-
|
|
93
|
+
import "../chunks/chunk-BZFOFC4D.js";
|
|
94
|
+
import "../chunks/chunk-HKYXWZQS.js";
|
|
95
|
+
import "../chunks/chunk-34BOZKIE.js";
|
|
96
96
|
import "../chunks/chunk-JKJWSY4V.js";
|
|
97
|
-
import "../chunks/chunk-
|
|
98
|
-
import "../chunks/chunk-
|
|
97
|
+
import "../chunks/chunk-CGMSKIEO.js";
|
|
98
|
+
import "../chunks/chunk-UBQSRCWR.js";
|
|
99
99
|
import "../chunks/chunk-CPMHA4W5.js";
|
|
100
|
-
import "../chunks/chunk-
|
|
101
|
-
import "../chunks/chunk-
|
|
100
|
+
import "../chunks/chunk-BSOZW3FC.js";
|
|
101
|
+
import "../chunks/chunk-RJWPJCIB.js";
|
|
102
|
+
import "../chunks/chunk-HOAIOEI7.js";
|
|
103
|
+
import "../chunks/chunk-TGUFT6KK.js";
|
|
104
|
+
import "../chunks/chunk-4XWZNPQ2.js";
|
|
102
105
|
|
|
103
106
|
// src/cli/figure.ts
|
|
104
107
|
import { access, open, readFile, writeFile } from "node:fs/promises";
|
|
@@ -219,7 +222,7 @@ async function renderSpec(spec, base) {
|
|
|
219
222
|
const resolve = (location) => isUrl(location) ? location : path.resolve(base, location);
|
|
220
223
|
let source;
|
|
221
224
|
if (spec.gbz) {
|
|
222
|
-
const { db, index } = spec.gbz
|
|
225
|
+
const { db, index } = gbzLocations(spec.gbz);
|
|
223
226
|
const indexLocation = index ? resolve(index) : await siblingIndex(resolve(db));
|
|
224
227
|
const cut = await cutGbzRegion(
|
|
225
228
|
await openGbz(
|
package/dist/cli/fold.js
CHANGED
|
@@ -7,30 +7,32 @@ import {
|
|
|
7
7
|
} from "../chunks/chunk-O4EGE27I.js";
|
|
8
8
|
import {
|
|
9
9
|
foldVariants
|
|
10
|
-
} from "../chunks/chunk-
|
|
10
|
+
} from "../chunks/chunk-SOMZGDVS.js";
|
|
11
11
|
import {
|
|
12
12
|
loadGraph
|
|
13
|
-
} from "../chunks/chunk-
|
|
14
|
-
import "../chunks/chunk-
|
|
15
|
-
import "../chunks/chunk-
|
|
13
|
+
} from "../chunks/chunk-KMBE2Q42.js";
|
|
14
|
+
import "../chunks/chunk-3PZSBNLI.js";
|
|
15
|
+
import "../chunks/chunk-CKUVEHSS.js";
|
|
16
16
|
import "../chunks/chunk-OPPVSPEF.js";
|
|
17
17
|
import "../chunks/chunk-VPE4AYP7.js";
|
|
18
|
-
import "../chunks/chunk-
|
|
18
|
+
import "../chunks/chunk-NZTYV3JL.js";
|
|
19
19
|
import "../chunks/chunk-QYBZZI5H.js";
|
|
20
20
|
import "../chunks/chunk-5I3K4R2G.js";
|
|
21
|
-
import "../chunks/chunk-
|
|
22
|
-
import "../chunks/chunk-
|
|
23
|
-
import "../chunks/chunk-
|
|
24
|
-
import "../chunks/chunk-
|
|
25
|
-
import "../chunks/chunk-
|
|
26
|
-
import "../chunks/chunk-
|
|
27
|
-
import "../chunks/chunk-
|
|
28
|
-
import "../chunks/chunk-
|
|
29
|
-
import "../chunks/chunk-
|
|
30
|
-
import "../chunks/chunk-
|
|
31
|
-
import "../chunks/chunk-7SRWJLSC.js";
|
|
21
|
+
import "../chunks/chunk-DBLV7PGG.js";
|
|
22
|
+
import "../chunks/chunk-B5X2RLJG.js";
|
|
23
|
+
import "../chunks/chunk-VX656OAZ.js";
|
|
24
|
+
import "../chunks/chunk-Z6XZWPXK.js";
|
|
25
|
+
import "../chunks/chunk-ZPZ7GNBT.js";
|
|
26
|
+
import "../chunks/chunk-BZFOFC4D.js";
|
|
27
|
+
import "../chunks/chunk-HKYXWZQS.js";
|
|
28
|
+
import "../chunks/chunk-34BOZKIE.js";
|
|
29
|
+
import "../chunks/chunk-CGMSKIEO.js";
|
|
30
|
+
import "../chunks/chunk-UBQSRCWR.js";
|
|
32
31
|
import "../chunks/chunk-CPMHA4W5.js";
|
|
33
|
-
import "../chunks/chunk-
|
|
32
|
+
import "../chunks/chunk-BSOZW3FC.js";
|
|
33
|
+
import "../chunks/chunk-RJWPJCIB.js";
|
|
34
|
+
import "../chunks/chunk-HOAIOEI7.js";
|
|
35
|
+
import "../chunks/chunk-4XWZNPQ2.js";
|
|
34
36
|
|
|
35
37
|
// src/cli/fold.ts
|
|
36
38
|
import { readFile, writeFile } from "node:fs/promises";
|
package/dist/deletionEdges.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
bypassedPoints,
|
|
3
2
|
closableDeletions,
|
|
4
|
-
deletionArcCurves,
|
|
5
3
|
deletionDrawing,
|
|
6
4
|
deletionEdges,
|
|
7
5
|
edgeCurvesOf
|
|
8
|
-
} from "./chunks/chunk-
|
|
9
|
-
import "./chunks/chunk-
|
|
6
|
+
} from "./chunks/chunk-CGMSKIEO.js";
|
|
7
|
+
import "./chunks/chunk-UBQSRCWR.js";
|
|
10
8
|
import "./chunks/chunk-CPMHA4W5.js";
|
|
11
|
-
import "./chunks/chunk-
|
|
9
|
+
import "./chunks/chunk-BSOZW3FC.js";
|
|
10
|
+
import "./chunks/chunk-RJWPJCIB.js";
|
|
11
|
+
import "./chunks/chunk-HOAIOEI7.js";
|
|
12
12
|
export {
|
|
13
|
-
bypassedPoints,
|
|
14
13
|
closableDeletions,
|
|
15
|
-
deletionArcCurves,
|
|
16
14
|
deletionDrawing,
|
|
17
15
|
deletionEdges,
|
|
18
16
|
edgeCurvesOf
|