@jbrowse/bandage-core 10.0.0 → 10.0.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/README.md +20 -0
- package/dist/chunks/{chunk-3APK25GI.js → chunk-3XE3OUEN.js} +1 -1
- package/dist/chunks/chunk-A647OH7N.js +284 -0
- package/dist/chunks/{chunk-Q6IOQP4J.js → chunk-AZJF2PZE.js} +5 -5
- package/dist/chunks/{chunk-33T67FPZ.js → chunk-CFNFT4RA.js} +1 -1
- package/dist/chunks/{chunk-RJXPPYA7.js → chunk-FFFYXMOP.js} +7 -7
- package/dist/chunks/{chunk-VK6XMP6B.js → chunk-FLUQODT2.js} +1 -3
- package/dist/chunks/{chunk-ICXMWYOA.js → chunk-IFOZFVZK.js} +4 -4
- package/dist/chunks/{chunk-CDPYXHVR.js → chunk-KY4LV2Z6.js} +1 -1
- package/dist/chunks/{chunk-W4GZCVUK.js → chunk-MSX3BDO4.js} +5 -5
- package/dist/chunks/{chunk-OOLNLCIO.js → chunk-QORSYW7J.js} +1 -1
- package/dist/chunks/{chunk-JVLURPFW.js → chunk-VPE4AYP7.js} +1 -2
- package/dist/chunks/{chunk-E5UEYZWK.js → chunk-ZR7A7DKQ.js} +1 -1
- package/dist/cli/figure.js +12 -14
- package/dist/cli/fold.js +2 -2
- package/dist/figure.js +8 -8
- package/dist/figureData.js +10 -12
- package/dist/figureSettings.js +3 -3
- package/dist/index.js +36 -37
- package/dist/layout/deletionRoutes.js +1 -3
- package/dist/layout/forceCache.js +3 -3
- package/dist/layout/walkRowLayout.js +2 -2
- package/dist/layout/walkRows.js +1 -1
- package/dist/layoutEngines.js +1 -5
- package/dist/layoutModes.js +4 -4
- package/dist/pipeline.js +2 -2
- package/dist/tubeMap/draw.js +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/layout/deletionRoutes.d.ts +0 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/viewport.js +3 -3
- package/package.json +2 -1
- package/dist/chunks/chunk-KAN2WTG5.js +0 -226
- package/dist/chunks/chunk-LYJ4US66.js +0 -664
- package/dist/chunks/chunk-Q6FRNVDU.js +0 -531
- package/dist/layout/stressEngine.js +0 -11
- package/dist/layout/stressPlacement.js +0 -7
- package/dist/types/layout/stressEngine.d.ts +0 -27
- package/dist/types/layout/stressPlacement.d.ts +0 -5
- package/dist/chunks/{chunk-EU6FBTQF.js → chunk-HQ2AHRMH.js} +3 -3
package/README.md
CHANGED
|
@@ -57,6 +57,26 @@ Release with `pnpm version patch`: it lints, tests, stamps `src/version.ts`,
|
|
|
57
57
|
writes the changelog with git-cliff and pushes the `v*` tag, and `publish.yml`
|
|
58
58
|
publishes to npm with trusted publishing.
|
|
59
59
|
|
|
60
|
+
## See also
|
|
61
|
+
|
|
62
|
+
- [jbrowse-plugin-graphgenomeviewer](https://github.com/GMOD/jbrowse-plugin-graphgenomeviewer) -
|
|
63
|
+
JBrowse 2 plugin that browses these graphs by locus
|
|
64
|
+
- [BandageJS](https://github.com/cmdcolin/BandageJS) - standalone page for GFA
|
|
65
|
+
and gbz-base graphs
|
|
66
|
+
- [@jbrowse/graph-stress-layout](https://github.com/GMOD/graph-stress-layout) -
|
|
67
|
+
stress layout that keeps the reference straight
|
|
68
|
+
- [@gmod/gbz-base](https://github.com/GMOD/gbz-base-js) - range-request reader
|
|
69
|
+
for `.gbz.db` databases
|
|
70
|
+
- [ggbandage](https://github.com/GMOD/ggbandage) - Bandage-style graph figures
|
|
71
|
+
as ggplot2 layers
|
|
72
|
+
- [@jbrowse/tubemap-core](https://github.com/GMOD/tubemap-core) -
|
|
73
|
+
sequenceTubeMap's layout, without the DOM
|
|
74
|
+
|
|
75
|
+
Tutorials on [jbrowse.org](https://jbrowse.org/jb2/docs/tutorials/)
|
|
76
|
+
|
|
77
|
+
- [HPRC part 1: graph alleles and haplotypes](https://jbrowse.org/jb2/docs/tutorials/pangenome_hprc/)
|
|
78
|
+
- [HPRC part 3: repeat lengths](https://jbrowse.org/jb2/docs/tutorials/pangenome_hprc_repeats/)
|
|
79
|
+
|
|
60
80
|
## License
|
|
61
81
|
|
|
62
82
|
Both Bandage and OGDF are GPL, which is why this package is GPL-3.0-or-later.
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import {
|
|
2
|
+
pathOrigin
|
|
3
|
+
} from "./chunk-EMUUNWRU.js";
|
|
4
|
+
import {
|
|
5
|
+
panSNContig,
|
|
6
|
+
panSNSample
|
|
7
|
+
} from "./chunk-BPLIXMH7.js";
|
|
8
|
+
|
|
9
|
+
// src/layout/walkRows.ts
|
|
10
|
+
function sampleOf(path) {
|
|
11
|
+
return path.sample ?? panSNSample(path.name);
|
|
12
|
+
}
|
|
13
|
+
function labelOf(path) {
|
|
14
|
+
return path.haplotype !== void 0 && path.sample !== void 0 ? `${path.sample}#${path.haplotype}` : sampleOf(path);
|
|
15
|
+
}
|
|
16
|
+
var NodeTable = class {
|
|
17
|
+
constructor(graph) {
|
|
18
|
+
this.index = /* @__PURE__ */ new Map();
|
|
19
|
+
this.lengths = [];
|
|
20
|
+
this.onReference = new Uint8Array(0);
|
|
21
|
+
this.referenceStart = new Float64Array(0);
|
|
22
|
+
this.referenceEnd = new Float64Array(0);
|
|
23
|
+
for (const node of graph.nodes) {
|
|
24
|
+
this.lengths[this.indexOf(node.id)] = node.length;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
indexOf(id) {
|
|
28
|
+
let i = this.index.get(id);
|
|
29
|
+
if (i === void 0) {
|
|
30
|
+
i = this.lengths.length;
|
|
31
|
+
this.index.set(id, i);
|
|
32
|
+
this.lengths.push(0);
|
|
33
|
+
}
|
|
34
|
+
return i;
|
|
35
|
+
}
|
|
36
|
+
nodesOf(path) {
|
|
37
|
+
const nodes = new Int32Array(path.nodeIds.length);
|
|
38
|
+
path.nodeIds.forEach((id, k) => {
|
|
39
|
+
nodes[k] = this.indexOf(id);
|
|
40
|
+
});
|
|
41
|
+
return nodes;
|
|
42
|
+
}
|
|
43
|
+
spanAt(steps, k) {
|
|
44
|
+
const node = k >= 0 && k < steps.length ? steps[k] : -1;
|
|
45
|
+
return node >= 0 && this.onReference[node] ? { start: this.referenceStart[node], end: this.referenceEnd[node] } : void 0;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
function stepsOf(pieces, table) {
|
|
49
|
+
const out = [];
|
|
50
|
+
let end;
|
|
51
|
+
for (const piece of pieces) {
|
|
52
|
+
if (end !== void 0 && piece.start !== void 0 && piece.start > end) {
|
|
53
|
+
out.push(end - piece.start);
|
|
54
|
+
}
|
|
55
|
+
let bp = 0;
|
|
56
|
+
for (const node of piece.nodes) {
|
|
57
|
+
out.push(node);
|
|
58
|
+
bp += table.lengths[node];
|
|
59
|
+
}
|
|
60
|
+
end = piece.start === void 0 ? void 0 : piece.start + bp;
|
|
61
|
+
}
|
|
62
|
+
return Float64Array.from(out);
|
|
63
|
+
}
|
|
64
|
+
function stepSpan(pieces, table, k) {
|
|
65
|
+
let end;
|
|
66
|
+
let at = 0;
|
|
67
|
+
let found;
|
|
68
|
+
for (const piece of pieces) {
|
|
69
|
+
if (piece.start === void 0 || end !== void 0 && piece.start < end) {
|
|
70
|
+
return void 0;
|
|
71
|
+
}
|
|
72
|
+
if (end !== void 0 && piece.start > end) {
|
|
73
|
+
if (at++ === k) {
|
|
74
|
+
found = { start: end, end: piece.start };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
let pos = piece.start;
|
|
78
|
+
for (const node of piece.nodes) {
|
|
79
|
+
const len = table.lengths[node];
|
|
80
|
+
if (at++ === k) {
|
|
81
|
+
found = { start: pos, end: pos + len };
|
|
82
|
+
}
|
|
83
|
+
pos += len;
|
|
84
|
+
}
|
|
85
|
+
end = pos;
|
|
86
|
+
}
|
|
87
|
+
return found;
|
|
88
|
+
}
|
|
89
|
+
function sliceBetween(steps, table, region, flanked = true) {
|
|
90
|
+
if (!region || !flanked) {
|
|
91
|
+
return { ids: steps, complete: true, from: -1, to: -1 };
|
|
92
|
+
}
|
|
93
|
+
const { onReference, referenceStart, referenceEnd } = table;
|
|
94
|
+
let i0 = -1;
|
|
95
|
+
let i1 = -1;
|
|
96
|
+
let bestEnd = -Infinity;
|
|
97
|
+
let bestStart = Infinity;
|
|
98
|
+
for (let i = 0; i < steps.length; i++) {
|
|
99
|
+
const node = steps[i];
|
|
100
|
+
if (node >= 0 && onReference[node]) {
|
|
101
|
+
const end2 = referenceEnd[node];
|
|
102
|
+
const start = referenceStart[node];
|
|
103
|
+
if (end2 <= region.start && end2 > bestEnd) {
|
|
104
|
+
bestEnd = end2;
|
|
105
|
+
i0 = i;
|
|
106
|
+
}
|
|
107
|
+
if (start >= region.end && start < bestStart) {
|
|
108
|
+
bestStart = start;
|
|
109
|
+
i1 = i;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (i0 >= 0 && i1 >= 0) {
|
|
114
|
+
const ids2 = steps.slice(Math.min(i0, i1) + 1, Math.max(i0, i1));
|
|
115
|
+
return {
|
|
116
|
+
ids: i0 < i1 ? ids2 : ids2.reverse(),
|
|
117
|
+
complete: true,
|
|
118
|
+
from: i0,
|
|
119
|
+
to: i1
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
const spanAt = (k) => table.spanAt(steps, k);
|
|
123
|
+
const flank = i0 >= 0 ? i0 : i1;
|
|
124
|
+
let near = -1;
|
|
125
|
+
for (let d = 1; flank >= 0 && near < 0 && d < steps.length; d++) {
|
|
126
|
+
near = [flank - d, flank + d].find((j) => spanAt(j) !== void 0) ?? -1;
|
|
127
|
+
}
|
|
128
|
+
if (near < 0) {
|
|
129
|
+
return { ids: steps, complete: false, from: -1, to: -1 };
|
|
130
|
+
}
|
|
131
|
+
const forward = near > flank === spanAt(near).start > spanAt(flank).start;
|
|
132
|
+
const after = forward === (flank === i0);
|
|
133
|
+
const ids = after ? steps.slice(flank + 1) : steps.slice(0, flank).reverse();
|
|
134
|
+
const last = ids.length > 0 ? ids.length - 1 : -1;
|
|
135
|
+
const end = last < 0 ? spanAt(flank) : spanAt(after ? flank + 1 + last : 0);
|
|
136
|
+
const stop = {
|
|
137
|
+
contigEnds: end !== void 0,
|
|
138
|
+
shortBp: !end ? 0 : Math.max(0, region.start - end.end, end.start - region.end)
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
ids,
|
|
142
|
+
complete: false,
|
|
143
|
+
from: flank,
|
|
144
|
+
to: after ? steps.length : -1,
|
|
145
|
+
stop
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function filterSamples(rows, samples) {
|
|
149
|
+
return samples ? rows.filter((r) => samples.includes(r.sample)).sort(
|
|
150
|
+
(a, b) => samples.indexOf(a.sample) - samples.indexOf(b.sample) || a.label.localeCompare(b.label)
|
|
151
|
+
) : rows;
|
|
152
|
+
}
|
|
153
|
+
function walkRows(graph, region, unit) {
|
|
154
|
+
const paths = graph.paths ?? [];
|
|
155
|
+
const isReference = (p) => pathOrigin(p.name).name === graph.referencePath;
|
|
156
|
+
const referencePieces = paths.some(isReference) ? paths.filter(isReference).sort((a, b) => (a.start ?? 0) - (b.start ?? 0)) : paths.slice(0, 1);
|
|
157
|
+
const first = referencePieces[0];
|
|
158
|
+
const others = paths.filter((p) => !referencePieces.includes(p));
|
|
159
|
+
if (!first || others.length === 0) {
|
|
160
|
+
return void 0;
|
|
161
|
+
}
|
|
162
|
+
const walks = /* @__PURE__ */ new Map();
|
|
163
|
+
for (const path of others) {
|
|
164
|
+
const pieces = walks.get(path.name);
|
|
165
|
+
if (pieces) {
|
|
166
|
+
pieces.push(path);
|
|
167
|
+
} else {
|
|
168
|
+
walks.set(path.name, [path]);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const table = new NodeTable(graph);
|
|
172
|
+
const referenceStart = first.start ?? 0;
|
|
173
|
+
const cut = region && region.end > region.start ? region : void 0;
|
|
174
|
+
const referenceNodes = referencePieces.map((piece) => table.nodesOf(piece));
|
|
175
|
+
const nodeCount = table.lengths.length;
|
|
176
|
+
table.onReference = new Uint8Array(nodeCount);
|
|
177
|
+
table.referenceStart = new Float64Array(nodeCount);
|
|
178
|
+
table.referenceEnd = new Float64Array(nodeCount);
|
|
179
|
+
let reachesBefore = false;
|
|
180
|
+
let reachesAfter = false;
|
|
181
|
+
for (const [p, piece] of referencePieces.entries()) {
|
|
182
|
+
let pos = piece.start ?? 0;
|
|
183
|
+
for (const node of referenceNodes[p]) {
|
|
184
|
+
const len = table.lengths[node];
|
|
185
|
+
if (!table.onReference[node]) {
|
|
186
|
+
table.onReference[node] = 1;
|
|
187
|
+
table.referenceStart[node] = pos;
|
|
188
|
+
table.referenceEnd[node] = pos + len;
|
|
189
|
+
reachesBefore ||= cut !== void 0 && pos + len <= cut.start;
|
|
190
|
+
reachesAfter ||= cut !== void 0 && pos >= cut.end;
|
|
191
|
+
}
|
|
192
|
+
pos += len;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const flanked = cut === void 0 || reachesBefore && reachesAfter;
|
|
196
|
+
const rowOf = (paths2, nodes) => {
|
|
197
|
+
const path = paths2[0];
|
|
198
|
+
const pieces = paths2.map((piece, p) => ({
|
|
199
|
+
start: piece.start,
|
|
200
|
+
nodes: nodes?.[p] ?? table.nodesOf(piece)
|
|
201
|
+
})).sort((a, b) => (a.start ?? 0) - (b.start ?? 0));
|
|
202
|
+
const { ids, complete, from, to, stop } = sliceBetween(
|
|
203
|
+
stepsOf(pieces, table),
|
|
204
|
+
table,
|
|
205
|
+
cut,
|
|
206
|
+
flanked
|
|
207
|
+
);
|
|
208
|
+
const contig = path.contig ?? panSNContig(pathOrigin(path.name).name);
|
|
209
|
+
const axisSpan = stepSpan(pieces, table, from < 0 ? 0 : from);
|
|
210
|
+
const axis = !axisSpan ? void 0 : from < 0 ? { contig, start: axisSpan.start, reversed: false } : from < to ? { contig, start: axisSpan.end, reversed: false } : { contig, start: axisSpan.start, reversed: true };
|
|
211
|
+
const { lengths, onReference, referenceStart: referenceStart2, referenceEnd } = table;
|
|
212
|
+
const runs = [];
|
|
213
|
+
let last;
|
|
214
|
+
let bp = 0;
|
|
215
|
+
let offReferenceBp = 0;
|
|
216
|
+
let gapBp = 0;
|
|
217
|
+
let step = 0;
|
|
218
|
+
for (const node of ids) {
|
|
219
|
+
if (node < 0) {
|
|
220
|
+
last = { start: bp, bp: -node, onReference: false, gap: true };
|
|
221
|
+
runs.push(last);
|
|
222
|
+
bp -= node;
|
|
223
|
+
gapBp -= node;
|
|
224
|
+
step = 0;
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
const len = lengths[node];
|
|
228
|
+
const on = onReference[node] === 1;
|
|
229
|
+
const at = last?.referenceStart;
|
|
230
|
+
const forward = on && at !== void 0 && step >= 0 && at + last.bp === referenceStart2[node];
|
|
231
|
+
const backward = on && at !== void 0 && step <= 0 && referenceEnd[node] === at;
|
|
232
|
+
if (!on && last && !last.onReference && !last.gap) {
|
|
233
|
+
last.bp += len;
|
|
234
|
+
} else if (forward || backward) {
|
|
235
|
+
last.bp += len;
|
|
236
|
+
if (!forward) {
|
|
237
|
+
last.referenceStart = referenceStart2[node];
|
|
238
|
+
last.reversed = true;
|
|
239
|
+
}
|
|
240
|
+
step = forward ? 1 : -1;
|
|
241
|
+
} else {
|
|
242
|
+
last = {
|
|
243
|
+
start: bp,
|
|
244
|
+
bp: len,
|
|
245
|
+
onReference: on,
|
|
246
|
+
referenceStart: on ? referenceStart2[node] : void 0
|
|
247
|
+
};
|
|
248
|
+
runs.push(last);
|
|
249
|
+
step = 0;
|
|
250
|
+
}
|
|
251
|
+
bp += len;
|
|
252
|
+
if (!on) {
|
|
253
|
+
offReferenceBp += len;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
name: path.name,
|
|
258
|
+
label: labelOf(path),
|
|
259
|
+
sample: sampleOf(path),
|
|
260
|
+
haplotype: path.haplotype,
|
|
261
|
+
bp,
|
|
262
|
+
offReferenceBp,
|
|
263
|
+
gapBp,
|
|
264
|
+
complete,
|
|
265
|
+
stop,
|
|
266
|
+
runs,
|
|
267
|
+
axis
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
const origin = cut ? cut.start : referenceStart;
|
|
271
|
+
return {
|
|
272
|
+
origin,
|
|
273
|
+
unit,
|
|
274
|
+
reference: rowOf(referencePieces, referenceNodes),
|
|
275
|
+
rows: [...walks.values()].map((paths2) => rowOf(paths2)).sort(
|
|
276
|
+
(a, b) => Number(b.complete) - Number(a.complete) || b.bp - a.bp || a.label.localeCompare(b.label)
|
|
277
|
+
)
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export {
|
|
282
|
+
filterSamples,
|
|
283
|
+
walkRows
|
|
284
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
layoutEngine
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FLUQODT2.js";
|
|
4
4
|
import {
|
|
5
5
|
layoutModeByValue
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IFOZFVZK.js";
|
|
7
7
|
import {
|
|
8
8
|
parseRegion
|
|
9
9
|
} from "./chunk-FLFBYSJO.js";
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
} from "./chunk-LOCJN3BZ.js";
|
|
13
13
|
import {
|
|
14
14
|
version
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-KY4LV2Z6.js";
|
|
16
16
|
import {
|
|
17
17
|
axisScaleOf
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-QORSYW7J.js";
|
|
19
19
|
import {
|
|
20
20
|
facetLifts,
|
|
21
21
|
walkLift
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
fitTransform,
|
|
44
44
|
forceLayout,
|
|
45
45
|
loadGraph
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-MSX3BDO4.js";
|
|
47
47
|
import {
|
|
48
48
|
referenceLabel
|
|
49
49
|
} from "./chunk-RAKOB6IV.js";
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
walkStripFrame,
|
|
7
7
|
walkStripLabelsTree
|
|
8
8
|
} from "./chunk-WI7ZHJ27.js";
|
|
9
|
+
import {
|
|
10
|
+
Canvas2DRenderer
|
|
11
|
+
} from "./chunk-WBCOREDZ.js";
|
|
9
12
|
import {
|
|
10
13
|
walkRowsKey,
|
|
11
14
|
walkRowsKeyTree,
|
|
12
15
|
walkRowsTree
|
|
13
16
|
} from "./chunk-VZNKA3K2.js";
|
|
14
|
-
import {
|
|
15
|
-
Canvas2DRenderer
|
|
16
|
-
} from "./chunk-WBCOREDZ.js";
|
|
17
17
|
import {
|
|
18
18
|
EXON_COLOR,
|
|
19
19
|
exonOutlineTree,
|
|
@@ -36,10 +36,10 @@ import {
|
|
|
36
36
|
} from "./chunk-LOCJN3BZ.js";
|
|
37
37
|
import {
|
|
38
38
|
version
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-KY4LV2Z6.js";
|
|
40
40
|
import {
|
|
41
41
|
axisScaleOf
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-QORSYW7J.js";
|
|
43
43
|
import {
|
|
44
44
|
facetLifts,
|
|
45
45
|
walkLift
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
import {
|
|
59
59
|
walkRowLabels,
|
|
60
60
|
walkRowsExtent
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-3XE3OUEN.js";
|
|
62
62
|
import {
|
|
63
63
|
pathLegend,
|
|
64
64
|
walkLabelsOf
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
FIT_PADDING,
|
|
71
71
|
drawingBounds,
|
|
72
72
|
fitTransform
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-MSX3BDO4.js";
|
|
74
74
|
import {
|
|
75
75
|
referenceLabel
|
|
76
76
|
} from "./chunk-RAKOB6IV.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sampleRowLayout
|
|
3
|
+
} from "./chunk-LOEA5IHZ.js";
|
|
1
4
|
import {
|
|
2
5
|
hasTubeMapBackbone,
|
|
3
6
|
hasTubeMapPaths,
|
|
4
7
|
tubeMapLayout,
|
|
5
8
|
tubeMapReferenceLayout
|
|
6
9
|
} from "./chunk-IM4SJUPO.js";
|
|
7
|
-
import {
|
|
8
|
-
sampleRowLayout
|
|
9
|
-
} from "./chunk-LOEA5IHZ.js";
|
|
10
10
|
import {
|
|
11
11
|
anchoredLayout
|
|
12
12
|
} from "./chunk-L3O7AWLI.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-HNQPEMYE.js";
|
|
16
16
|
import {
|
|
17
17
|
walkRowLayout
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-3XE3OUEN.js";
|
|
19
19
|
import {
|
|
20
20
|
isBackbone,
|
|
21
21
|
isOffReference
|
|
@@ -4,6 +4,11 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
smoothChain
|
|
6
6
|
} from "./chunk-OPPVSPEF.js";
|
|
7
|
+
import {
|
|
8
|
+
routeNodes,
|
|
9
|
+
takeRoutes,
|
|
10
|
+
withDeletionRoutes
|
|
11
|
+
} from "./chunk-VPE4AYP7.js";
|
|
7
12
|
import {
|
|
8
13
|
orientToReference
|
|
9
14
|
} from "./chunk-PUG7LXDF.js";
|
|
@@ -16,11 +21,6 @@ import {
|
|
|
16
21
|
import {
|
|
17
22
|
parseGFA
|
|
18
23
|
} from "./chunk-CDLPYR5O.js";
|
|
19
|
-
import {
|
|
20
|
-
routeNodes,
|
|
21
|
-
takeRoutes,
|
|
22
|
-
withDeletionRoutes
|
|
23
|
-
} from "./chunk-JVLURPFW.js";
|
|
24
24
|
import {
|
|
25
25
|
anchorGraph
|
|
26
26
|
} from "./chunk-EMUUNWRU.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/layout/deletionRoutes.ts
|
|
2
|
-
|
|
2
|
+
import { ROUTE_ID } from "@jbrowse/graph-stress-layout";
|
|
3
3
|
var ROUTE_FRACTION = 0.5;
|
|
4
4
|
function withDeletionRoutes(graph, deletions, dropped = /* @__PURE__ */ new Set()) {
|
|
5
5
|
const routes = new Map(
|
|
@@ -73,7 +73,6 @@ function takeRoutes(positions, routes) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export {
|
|
76
|
-
ROUTE_ID,
|
|
77
76
|
withDeletionRoutes,
|
|
78
77
|
routeNodes,
|
|
79
78
|
takeRoutes
|
package/dist/cli/figure.js
CHANGED
|
@@ -6,15 +6,15 @@ import {
|
|
|
6
6
|
} from "../chunks/chunk-BXEPA4KS.js";
|
|
7
7
|
import {
|
|
8
8
|
figureSvg
|
|
9
|
-
} from "../chunks/chunk-
|
|
9
|
+
} from "../chunks/chunk-FFFYXMOP.js";
|
|
10
10
|
import "../chunks/chunk-47DYCZOK.js";
|
|
11
11
|
import "../chunks/chunk-WI7ZHJ27.js";
|
|
12
|
+
import "../chunks/chunk-WBCOREDZ.js";
|
|
13
|
+
import "../chunks/chunk-4BYTEJGW.js";
|
|
12
14
|
import {
|
|
13
15
|
genesOnRow,
|
|
14
16
|
placeRowGenes
|
|
15
17
|
} from "../chunks/chunk-VZNKA3K2.js";
|
|
16
|
-
import "../chunks/chunk-WBCOREDZ.js";
|
|
17
|
-
import "../chunks/chunk-4BYTEJGW.js";
|
|
18
18
|
import "../chunks/chunk-3S3YVOJ7.js";
|
|
19
19
|
import "../chunks/chunk-BUBZ32IC.js";
|
|
20
20
|
import "../chunks/chunk-DCJC32QW.js";
|
|
@@ -26,16 +26,14 @@ import {
|
|
|
26
26
|
LAYOUT_ENGINE_VALUES,
|
|
27
27
|
isLayoutEngineKind,
|
|
28
28
|
layoutEngine
|
|
29
|
-
} from "../chunks/chunk-
|
|
30
|
-
import "../chunks/chunk-Q6FRNVDU.js";
|
|
31
|
-
import "../chunks/chunk-LYJ4US66.js";
|
|
29
|
+
} from "../chunks/chunk-FLUQODT2.js";
|
|
32
30
|
import {
|
|
33
31
|
LAYOUT_MODES,
|
|
34
32
|
layoutModeByValue
|
|
35
|
-
} from "../chunks/chunk-
|
|
33
|
+
} from "../chunks/chunk-IFOZFVZK.js";
|
|
34
|
+
import "../chunks/chunk-LOEA5IHZ.js";
|
|
36
35
|
import "../chunks/chunk-IM4SJUPO.js";
|
|
37
36
|
import "../chunks/chunk-CWFNEKST.js";
|
|
38
|
-
import "../chunks/chunk-LOEA5IHZ.js";
|
|
39
37
|
import "../chunks/chunk-L3O7AWLI.js";
|
|
40
38
|
import "../chunks/chunk-TZFWUT2C.js";
|
|
41
39
|
import "../chunks/chunk-HNQPEMYE.js";
|
|
@@ -52,34 +50,34 @@ import {
|
|
|
52
50
|
import "../chunks/chunk-Q7LYHGGQ.js";
|
|
53
51
|
import "../chunks/chunk-WSIFAZU7.js";
|
|
54
52
|
import "../chunks/chunk-LOCJN3BZ.js";
|
|
55
|
-
import "../chunks/chunk-
|
|
56
|
-
import "../chunks/chunk-
|
|
53
|
+
import "../chunks/chunk-KY4LV2Z6.js";
|
|
54
|
+
import "../chunks/chunk-QORSYW7J.js";
|
|
57
55
|
import "../chunks/chunk-QIVPRZ4H.js";
|
|
58
56
|
import "../chunks/chunk-VOWI544A.js";
|
|
59
57
|
import "../chunks/chunk-2LQ5BWT7.js";
|
|
60
58
|
import "../chunks/chunk-NP356MC2.js";
|
|
61
59
|
import "../chunks/chunk-G2FD7S3C.js";
|
|
62
60
|
import "../chunks/chunk-WFB5TXRA.js";
|
|
63
|
-
import "../chunks/chunk-
|
|
61
|
+
import "../chunks/chunk-3XE3OUEN.js";
|
|
64
62
|
import {
|
|
65
63
|
filterSamples,
|
|
66
64
|
walkRows
|
|
67
|
-
} from "../chunks/chunk-
|
|
65
|
+
} from "../chunks/chunk-A647OH7N.js";
|
|
68
66
|
import "../chunks/chunk-REE4GUDM.js";
|
|
69
67
|
import "../chunks/chunk-PBENCR5L.js";
|
|
70
68
|
import {
|
|
71
69
|
engineSettingsOf,
|
|
72
70
|
forceLayout,
|
|
73
71
|
loadGraph
|
|
74
|
-
} from "../chunks/chunk-
|
|
72
|
+
} from "../chunks/chunk-MSX3BDO4.js";
|
|
75
73
|
import "../chunks/chunk-IGVV37VI.js";
|
|
76
74
|
import "../chunks/chunk-OPPVSPEF.js";
|
|
75
|
+
import "../chunks/chunk-VPE4AYP7.js";
|
|
77
76
|
import "../chunks/chunk-PUG7LXDF.js";
|
|
78
77
|
import "../chunks/chunk-QXAB2FLJ.js";
|
|
79
78
|
import "../chunks/chunk-QYBZZI5H.js";
|
|
80
79
|
import "../chunks/chunk-PSMKPSO4.js";
|
|
81
80
|
import "../chunks/chunk-CDLPYR5O.js";
|
|
82
|
-
import "../chunks/chunk-JVLURPFW.js";
|
|
83
81
|
import "../chunks/chunk-EMUUNWRU.js";
|
|
84
82
|
import "../chunks/chunk-RAEABQNW.js";
|
|
85
83
|
import "../chunks/chunk-ES2N6V56.js";
|
package/dist/cli/fold.js
CHANGED
|
@@ -7,15 +7,15 @@ import {
|
|
|
7
7
|
} from "../chunks/chunk-B4645SM2.js";
|
|
8
8
|
import {
|
|
9
9
|
loadGraph
|
|
10
|
-
} from "../chunks/chunk-
|
|
10
|
+
} from "../chunks/chunk-MSX3BDO4.js";
|
|
11
11
|
import "../chunks/chunk-IGVV37VI.js";
|
|
12
12
|
import "../chunks/chunk-OPPVSPEF.js";
|
|
13
|
+
import "../chunks/chunk-VPE4AYP7.js";
|
|
13
14
|
import "../chunks/chunk-PUG7LXDF.js";
|
|
14
15
|
import "../chunks/chunk-QXAB2FLJ.js";
|
|
15
16
|
import "../chunks/chunk-QYBZZI5H.js";
|
|
16
17
|
import "../chunks/chunk-PSMKPSO4.js";
|
|
17
18
|
import "../chunks/chunk-CDLPYR5O.js";
|
|
18
|
-
import "../chunks/chunk-JVLURPFW.js";
|
|
19
19
|
import "../chunks/chunk-EMUUNWRU.js";
|
|
20
20
|
import "../chunks/chunk-RAEABQNW.js";
|
|
21
21
|
import "../chunks/chunk-ES2N6V56.js";
|
package/dist/figure.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
figureSvg
|
|
3
|
-
} from "./chunks/chunk-
|
|
3
|
+
} from "./chunks/chunk-FFFYXMOP.js";
|
|
4
4
|
import "./chunks/chunk-47DYCZOK.js";
|
|
5
5
|
import "./chunks/chunk-WI7ZHJ27.js";
|
|
6
|
-
import "./chunks/chunk-VZNKA3K2.js";
|
|
7
6
|
import "./chunks/chunk-WBCOREDZ.js";
|
|
8
7
|
import "./chunks/chunk-4BYTEJGW.js";
|
|
8
|
+
import "./chunks/chunk-VZNKA3K2.js";
|
|
9
9
|
import "./chunks/chunk-3S3YVOJ7.js";
|
|
10
10
|
import "./chunks/chunk-BUBZ32IC.js";
|
|
11
11
|
import "./chunks/chunk-DCJC32QW.js";
|
|
@@ -14,27 +14,27 @@ import "./chunks/chunk-FP4H7SFT.js";
|
|
|
14
14
|
import "./chunks/chunk-MLSWIMZO.js";
|
|
15
15
|
import "./chunks/chunk-NNODIW4U.js";
|
|
16
16
|
import "./chunks/chunk-LOCJN3BZ.js";
|
|
17
|
-
import "./chunks/chunk-
|
|
18
|
-
import "./chunks/chunk-
|
|
17
|
+
import "./chunks/chunk-KY4LV2Z6.js";
|
|
18
|
+
import "./chunks/chunk-QORSYW7J.js";
|
|
19
19
|
import "./chunks/chunk-QIVPRZ4H.js";
|
|
20
20
|
import "./chunks/chunk-VOWI544A.js";
|
|
21
21
|
import "./chunks/chunk-2LQ5BWT7.js";
|
|
22
22
|
import "./chunks/chunk-NP356MC2.js";
|
|
23
23
|
import "./chunks/chunk-G2FD7S3C.js";
|
|
24
24
|
import "./chunks/chunk-WFB5TXRA.js";
|
|
25
|
-
import "./chunks/chunk-
|
|
26
|
-
import "./chunks/chunk-
|
|
25
|
+
import "./chunks/chunk-3XE3OUEN.js";
|
|
26
|
+
import "./chunks/chunk-A647OH7N.js";
|
|
27
27
|
import "./chunks/chunk-REE4GUDM.js";
|
|
28
28
|
import "./chunks/chunk-PBENCR5L.js";
|
|
29
|
-
import "./chunks/chunk-
|
|
29
|
+
import "./chunks/chunk-MSX3BDO4.js";
|
|
30
30
|
import "./chunks/chunk-IGVV37VI.js";
|
|
31
31
|
import "./chunks/chunk-OPPVSPEF.js";
|
|
32
|
+
import "./chunks/chunk-VPE4AYP7.js";
|
|
32
33
|
import "./chunks/chunk-PUG7LXDF.js";
|
|
33
34
|
import "./chunks/chunk-QXAB2FLJ.js";
|
|
34
35
|
import "./chunks/chunk-QYBZZI5H.js";
|
|
35
36
|
import "./chunks/chunk-PSMKPSO4.js";
|
|
36
37
|
import "./chunks/chunk-CDLPYR5O.js";
|
|
37
|
-
import "./chunks/chunk-JVLURPFW.js";
|
|
38
38
|
import "./chunks/chunk-EMUUNWRU.js";
|
|
39
39
|
import "./chunks/chunk-RAEABQNW.js";
|
|
40
40
|
import "./chunks/chunk-ES2N6V56.js";
|