@gmod/gbz-base 2.1.0 → 2.3.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/README.md +48 -21
- package/dist/cli.js +34 -1
- package/dist/cli.js.map +1 -1
- package/dist/db.d.ts +7 -3
- package/dist/db.js +10 -14
- package/dist/db.js.map +1 -1
- package/dist/gbwt/node.d.ts +1 -0
- package/dist/gbwt/node.js +3 -2
- package/dist/gbwt/node.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/query.js +16 -5
- package/dist/query.js.map +1 -1
- package/dist/sqlite/btree.d.ts +4 -0
- package/dist/sqlite/btree.js +66 -0
- package/dist/sqlite/btree.js.map +1 -1
- package/dist/sqlite/database.d.ts +1 -0
- package/dist/sqlite/database.js +3 -0
- package/dist/sqlite/database.js.map +1 -1
- package/dist/subgraph.d.ts +45 -6
- package/dist/subgraph.js +407 -120
- package/dist/subgraph.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +43 -1
- package/src/db.ts +26 -22
- package/src/gbwt/node.ts +7 -2
- package/src/index.ts +5 -1
- package/src/query.ts +19 -9
- package/src/sqlite/btree.ts +72 -0
- package/src/sqlite/database.ts +4 -0
- package/src/subgraph.ts +511 -135
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ const db = await GBZBase.open(
|
|
|
16
16
|
new RemoteFile('https://example.org/graph.gbz.db'),
|
|
17
17
|
)
|
|
18
18
|
|
|
19
|
-
// one record per haplotype
|
|
19
|
+
// one record per haplotype crossing the window
|
|
20
20
|
const alignments = await db.getAlignmentsForRange(
|
|
21
21
|
'GRCh38#0#chr6',
|
|
22
22
|
31500000,
|
|
@@ -40,10 +40,20 @@ The path is a PanSN `sample#haplotype#contig` string, or a bare contig for a
|
|
|
40
40
|
graph whose reference paths have no sample. `{ sample, haplotype, contig }`
|
|
41
41
|
works too, and `parsePathName` is the parser if you want it separately.
|
|
42
42
|
|
|
43
|
-
Both take `{ context, haplotypes,
|
|
44
|
-
haplotype names when the database can.
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
Both take `{ context, haplotypes, limit, signal }`, and `getSubgraphForRange`
|
|
44
|
+
also `snarls`; both resolve haplotype names when the database can. For
|
|
45
|
+
alignments `haplotypes` is `all` or `distinct`, the two outputs that leave
|
|
46
|
+
something to align against the reference.
|
|
47
|
+
|
|
48
|
+
`context` is the graph context in bp to extend past the window, 100 by default.
|
|
49
|
+
It does not decide how many records come back, since the pieces of a walk that
|
|
50
|
+
leaves the subgraph are joined again (see below); it trades nodes read against
|
|
51
|
+
pieces to identify and join. A window inside a snarl much larger than itself
|
|
52
|
+
(MHC class II on the HPRC graph) is 1.1M pieces at `context: 0` and 464 walks at
|
|
53
|
+
1000, three times faster; a window whose private stretches are short bubbles
|
|
54
|
+
costs about the same either way. `limit` caps the subgraph at that many nodes,
|
|
55
|
+
per fragment. `signal` is an `AbortSignal`; a query checks it between range
|
|
56
|
+
requests, so an abort stops the next fetch rather than the one in flight.
|
|
47
57
|
|
|
48
58
|
### One returns records, the other a query object
|
|
49
59
|
|
|
@@ -53,11 +63,12 @@ coordinate-correct because a record's `refStart`/`refEnd` are absolute.
|
|
|
53
63
|
|
|
54
64
|
`getSubgraphForRange` hands back the `Subgraph` itself, because two disjoint
|
|
55
65
|
fragments do not merge into one graph. It answers for the first fragment
|
|
56
|
-
overlapping the window, clamped to it, and `
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
`
|
|
60
|
-
|
|
66
|
+
overlapping the window, clamped to it, and is `undefined` when the path is
|
|
67
|
+
unknown or no fragment overlaps the window. `subgraph.referenceInterval` is the
|
|
68
|
+
reference walk the subgraph holds, which runs to node boundaries and through
|
|
69
|
+
`context`, so it is wider than the clamped window on both sides. Use
|
|
70
|
+
`pathFragmentsForRange` to see the fragment bounds themselves, and `hasPath` to
|
|
71
|
+
ask about a path alone.
|
|
61
72
|
|
|
62
73
|
A path that exists but was never indexed for random access throws rather than
|
|
63
74
|
returning nothing — that is a database that needs rebuilding, not an empty
|
|
@@ -74,7 +85,18 @@ for (const alignment of alignments) {
|
|
|
74
85
|
}
|
|
75
86
|
```
|
|
76
87
|
|
|
77
|
-
|
|
88
|
+
A record is one haplotype's passage through the window. Where a haplotype's walk
|
|
89
|
+
leaves the subgraph and comes back (a bubble whose nodes the window does not
|
|
90
|
+
hold, a private insertion), the pieces on either side are identified separately
|
|
91
|
+
and then joined back into one record when they are the same haplotype's
|
|
92
|
+
consecutive fragments, on the same strand and monotone on both the reference and
|
|
93
|
+
the haplotype; the stretch between them becomes the record's insertion and
|
|
94
|
+
deletion, scored the way the diverging stretches inside the window are. Pieces
|
|
95
|
+
that fail those tests (an inversion between them, a tandem repeat mapping both
|
|
96
|
+
to the same reference interval) stay separate records, as do fragments the index
|
|
97
|
+
could not name.
|
|
98
|
+
|
|
99
|
+
`refStart`/`refEnd` are the record's span on the reference path you queried.
|
|
78
100
|
They run to node boundaries, so a record can begin before the window you asked
|
|
79
101
|
for and end after it. `cigar` is its alignment to that reference, computed like
|
|
80
102
|
upstream: a node-length-weighted LCS, with the diverging stretches scored using
|
|
@@ -136,7 +158,9 @@ gbz-base-query https://host/graph.gbz.db --contig chrM --offset 1000 --context 5
|
|
|
136
158
|
```
|
|
137
159
|
|
|
138
160
|
`--stats` reports how many range requests a query made and how many bytes they
|
|
139
|
-
carried
|
|
161
|
+
carried, and with `--resolve` or `--alignments` how identification went: index
|
|
162
|
+
scans, chains per haplotype, why each chain ended, companion seeks against graph
|
|
163
|
+
record lookups, and fragment lengths against the walk bound.
|
|
140
164
|
|
|
141
165
|
## Snarls
|
|
142
166
|
|
|
@@ -200,15 +224,18 @@ path in both orientations, with the path handle and the forward coordinate of
|
|
|
200
224
|
that node, and `HaplotypeLengths` holds each path's length. The upstream `query`
|
|
201
225
|
binary keeps working on the augmented database.
|
|
202
226
|
|
|
203
|
-
At query time `subgraph.identifyPaths()` loads the samples for the window's
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
227
|
+
At query time `subgraph.identifyPaths()` loads the samples for the window's
|
|
228
|
+
nodes with one index scan per run of consecutive node ids (a window whose nodes
|
|
229
|
+
sit in far-apart id ranges, as a tandem repeat's do, is not one scan across the
|
|
230
|
+
gap), chains each haplotype's fragments to the next through the private nodes
|
|
231
|
+
between them, and for a chain that met no sample inside the window walks on
|
|
232
|
+
until it finds one, up to four intervals past the last fragment it linked. This
|
|
233
|
+
is what fills in the `resolved` half of a feature: PanSN name, haplotype
|
|
234
|
+
interval in that contig's coordinates, and the path handle.
|
|
235
|
+
`getAlignmentsForRange` and `getSubgraphForRange` run it for you when the
|
|
236
|
+
database has the tables; on the lower-level path you call it yourself before
|
|
237
|
+
`alignments()` or `toSubgraphJson({ names: 'resolved' })`. On the command line,
|
|
238
|
+
`--resolve` and `--alignments`.
|
|
212
239
|
|
|
213
240
|
The tests check every resolved fragment against an independent backward walk
|
|
214
241
|
through the bidirectional GBWT to the path's recorded start position.
|
package/dist/cli.js
CHANGED
|
@@ -19,7 +19,7 @@ const USAGE = `Usage: gbz-base-query [options] graph.gbz.db
|
|
|
19
19
|
--cigar output CIGAR strings for the haplotypes
|
|
20
20
|
--format FMT json (default) or gfa
|
|
21
21
|
--resolve name haplotypes from the HaplotypeSamples table
|
|
22
|
-
--alignments print one alignment record per haplotype
|
|
22
|
+
--alignments print one alignment record per haplotype instead of the subgraph
|
|
23
23
|
--haplotype-index F companion database written by gbz-haplotype-index --output
|
|
24
24
|
--block-size INT bytes fetched per range request (default: 65536)
|
|
25
25
|
--stats print fetch statistics to stderr
|
|
@@ -149,6 +149,36 @@ function parseArgs(argv) {
|
|
|
149
149
|
}
|
|
150
150
|
return args;
|
|
151
151
|
}
|
|
152
|
+
const CHAIN_ENDS = [
|
|
153
|
+
'in-fragment sample',
|
|
154
|
+
'identified sibling',
|
|
155
|
+
'out-of-window sample',
|
|
156
|
+
'bound',
|
|
157
|
+
'endmarker',
|
|
158
|
+
'cycle',
|
|
159
|
+
];
|
|
160
|
+
function identificationReport(stats) {
|
|
161
|
+
const { chains, fragmentLengths, interval, scans } = stats;
|
|
162
|
+
const resolved = chains.filter(c => c.pathHandle !== undefined);
|
|
163
|
+
const haplotypes = new Set(resolved.map(c => c.pathHandle)).size;
|
|
164
|
+
const unresolved = chains.filter(c => c.pathHandle === undefined);
|
|
165
|
+
const unresolvedFragments = unresolved.reduce((n, c) => n + c.fragments, 0);
|
|
166
|
+
const sum = (pick) => chains.reduce((n, c) => n + pick(c), 0);
|
|
167
|
+
const ends = CHAIN_ENDS.map(end => `${end} ${chains.filter(c => c.end === end).length}`).join(', ');
|
|
168
|
+
const bound = 4 * interval;
|
|
169
|
+
const overBound = fragmentLengths.filter(len => len > bound).length;
|
|
170
|
+
const maxLen = fragmentLengths.reduce((a, b) => Math.max(a, b), 0);
|
|
171
|
+
const scannedNodes = scans.reduce((n, [a, b]) => n + ((b - a) >> 1) + 1, 0);
|
|
172
|
+
const scanned = `${scans.length} index scans over ${scannedNodes} nodes for ${stats.windowSamples} samples`;
|
|
173
|
+
return [
|
|
174
|
+
`identification: interval ${interval}; ${scanned}`,
|
|
175
|
+
` ${fragmentLengths.length} fragments in ${chains.length} chains for ${haplotypes} haplotypes (${resolved.length - haplotypes} chains beyond one per haplotype; ${unresolved.length} chains / ${unresolvedFragments} fragments unresolved)`,
|
|
176
|
+
` chain ends: ${ends}`,
|
|
177
|
+
` sibling links ${sum(c => c.fragments - 1)}; out-of-window steps ${sum(c => c.steps)}, ${sum(c => c.reentries)} re-entering the subgraph, ${sum(c => c.twinLandings)} on a discarded twin's start`,
|
|
178
|
+
` companion seeks ${stats.companionSeeks} (${stats.companionMisses} misses); graph record lookups ${stats.graphLookups}, ${stats.graphFetches} fetched`,
|
|
179
|
+
` fragment length max ${maxLen}, ${overBound} over the ${bound} bp bound`,
|
|
180
|
+
].join('\n');
|
|
181
|
+
}
|
|
152
182
|
function alignmentRecord(alignment) {
|
|
153
183
|
const { start, ...rest } = alignment;
|
|
154
184
|
return rest.resolved ? { ...rest, name: rest.label, label: undefined } : rest;
|
|
@@ -202,6 +232,9 @@ export async function main(argv) {
|
|
|
202
232
|
: ` (haplotype index: ${db.index.pager.fetches} fetches, ${db.index.pager.bytesFetched} bytes)`;
|
|
203
233
|
const { orderedAlignments, lcsAlignments, identificationSteps, identificationFetches, } = subgraph.stats;
|
|
204
234
|
process.stderr.write(`Subgraph contains ${subgraph.nodeCount} nodes and ${subgraph.pathCount} paths; ${fetches} fetches, ${bytesFetched} bytes${index}; ${orderedAlignments} ordered + ${lcsAlignments} lcs alignments; identification ${identificationSteps} steps, ${identificationFetches} lookups\n`);
|
|
235
|
+
if (args.resolve) {
|
|
236
|
+
process.stderr.write(`${identificationReport(subgraph.stats.identification)}\n`);
|
|
237
|
+
}
|
|
205
238
|
}
|
|
206
239
|
}
|
|
207
240
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -6,13 +6,16 @@ import type { GraphName } from './graphName.ts';
|
|
|
6
6
|
import type { PathName, PathRef } from './pathName.ts';
|
|
7
7
|
import type { QueryOptions } from './query.ts';
|
|
8
8
|
import type { PagerOptions } from './sqlite/pager.ts';
|
|
9
|
-
import type { HaplotypeAlignment
|
|
9
|
+
import type { HaplotypeAlignment } from './subgraph.ts';
|
|
10
10
|
export declare const SCHEMA_VERSION = "GBZ-base version 4";
|
|
11
11
|
export interface PathFragment {
|
|
12
12
|
path: GbzPath;
|
|
13
13
|
start: number;
|
|
14
14
|
end: number;
|
|
15
15
|
}
|
|
16
|
+
export interface AlignmentOptions extends Pick<QueryOptions, 'context' | 'limit' | 'signal'> {
|
|
17
|
+
haplotypes?: 'all' | 'distinct' | undefined;
|
|
18
|
+
}
|
|
16
19
|
export declare class SchemaVersionError extends Error {
|
|
17
20
|
name: string;
|
|
18
21
|
readonly found: string | undefined;
|
|
@@ -60,6 +63,7 @@ export declare class GBZBase {
|
|
|
60
63
|
static open(source: ByteSource, opts?: OpenOptions): Promise<GBZBase>;
|
|
61
64
|
tags(): Promise<Map<string, string>>;
|
|
62
65
|
tag(key: string): Promise<string | undefined>;
|
|
66
|
+
prefetchRecords(lo: number, hi: number): Promise<void>;
|
|
63
67
|
getRecord(handle: number): Promise<GbzRecord | undefined>;
|
|
64
68
|
paths(): Promise<GbzPath[]>;
|
|
65
69
|
getPath(handle: number): Promise<GbzPath | undefined>;
|
|
@@ -72,8 +76,8 @@ export declare class GBZBase {
|
|
|
72
76
|
private walkPathLength;
|
|
73
77
|
pathFragmentsForRange(ref: PathRef, start: number, end: number): Promise<PathFragment[]>;
|
|
74
78
|
private subgraphForFragment;
|
|
75
|
-
getSubgraphForRange(ref: PathRef, start: number, end: number, opts?: QueryOptions): Promise<Subgraph | undefined>;
|
|
76
|
-
getAlignmentsForRange(ref: PathRef, start: number, end: number, opts?:
|
|
79
|
+
getSubgraphForRange(ref: PathRef, start: number, end: number, opts?: QueryOptions): Promise<import("./subgraph.ts").Subgraph | undefined>;
|
|
80
|
+
getAlignmentsForRange(ref: PathRef, start: number, end: number, opts?: AlignmentOptions): Promise<HaplotypeAlignment[]>;
|
|
77
81
|
graphName(): Promise<GraphName>;
|
|
78
82
|
hasChainLinks(): Promise<boolean>;
|
|
79
83
|
get hasHaplotypeIndex(): boolean;
|
package/dist/db.js
CHANGED
|
@@ -146,6 +146,9 @@ export class GBZBase {
|
|
|
146
146
|
async tag(key) {
|
|
147
147
|
return (await this.tags()).get(key);
|
|
148
148
|
}
|
|
149
|
+
prefetchRecords(lo, hi) {
|
|
150
|
+
return this.sqlite.prefetchRows('Nodes', lo, hi);
|
|
151
|
+
}
|
|
149
152
|
async getRecord(handle) {
|
|
150
153
|
const row = await this.sqlite.byRowid('Nodes', handle);
|
|
151
154
|
if (!row) {
|
|
@@ -241,17 +244,12 @@ export class GBZBase {
|
|
|
241
244
|
return fragments.filter(f => start < f.end);
|
|
242
245
|
}
|
|
243
246
|
async subgraphForFragment(fragment, start, end, opts) {
|
|
244
|
-
const
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
const haplotypes = opts.haplotypes ?? 'all';
|
|
251
|
-
const named = haplotypes === 'all' || haplotypes === 'distinct';
|
|
252
|
-
if (this.hasHaplotypeIndex && named) {
|
|
253
|
-
await subgraph.identifyPaths();
|
|
254
|
-
}
|
|
247
|
+
const { sample, contig, haplotype } = fragment.path.name;
|
|
248
|
+
const subgraph = await subgraphInInterval(this, { sample, contig, haplotype }, Math.max(start, fragment.start), Math.min(end, fragment.end), opts);
|
|
249
|
+
const haplotypes = opts.haplotypes ?? 'all';
|
|
250
|
+
const named = haplotypes === 'all' || haplotypes === 'distinct';
|
|
251
|
+
if (this.hasHaplotypeIndex && named) {
|
|
252
|
+
await subgraph.identifyPaths();
|
|
255
253
|
}
|
|
256
254
|
return subgraph;
|
|
257
255
|
}
|
|
@@ -265,9 +263,7 @@ export class GBZBase {
|
|
|
265
263
|
const result = [];
|
|
266
264
|
for (const fragment of await this.pathFragmentsForRange(ref, start, end)) {
|
|
267
265
|
const subgraph = await this.subgraphForFragment(fragment, start, end, opts);
|
|
268
|
-
|
|
269
|
-
result.push(...subgraph.alignments());
|
|
270
|
-
}
|
|
266
|
+
result.push(...subgraph.alignments());
|
|
271
267
|
}
|
|
272
268
|
return result;
|
|
273
269
|
}
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/gbwt/node.d.ts
CHANGED
|
@@ -13,3 +13,4 @@ export declare function entryOrientation(side: NodeSide): Orientation;
|
|
|
13
13
|
export declare function exitOrientation(side: NodeSide): Orientation;
|
|
14
14
|
export declare function edgeIsCanonical(from: number, to: number): boolean;
|
|
15
15
|
export declare function pathIsCanonical(path: number[]): boolean;
|
|
16
|
+
export declare function pathEndsAreCanonical(first: number | undefined, last: number | undefined): boolean;
|
package/dist/gbwt/node.js
CHANGED
|
@@ -37,8 +37,9 @@ export function edgeIsCanonical(from, to) {
|
|
|
37
37
|
: toId >= fromId;
|
|
38
38
|
}
|
|
39
39
|
export function pathIsCanonical(path) {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
return pathEndsAreCanonical(path[0], path[path.length - 1]);
|
|
41
|
+
}
|
|
42
|
+
export function pathEndsAreCanonical(first, last) {
|
|
42
43
|
if (first === undefined || last === undefined) {
|
|
43
44
|
return true;
|
|
44
45
|
}
|
package/dist/gbwt/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/gbwt/node.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAI1B,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,WAAwB;IAC7D,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AACnD,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAwB;IAChD,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAwB;IAC/C,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IACvB,OAAO,SAAS,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,IAAI,MAAM,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/gbwt/node.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAI1B,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,WAAwB;IAC7D,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AACnD,CAAC;AAID,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,WAAwB;IAChD,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAwB;IAC/C,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;IACvB,OAAO,SAAS,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,IAAI,MAAM,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAyB,EACzB,IAAwB;IAExB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC;QACzC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QACnB,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from './db.ts';
|
|
2
|
-
export type { GbzPath, HaplotypeSample, OpenOptions, PathFragment, } from './db.ts';
|
|
2
|
+
export type { AlignmentOptions, GbzPath, HaplotypeSample, OpenOptions, PathFragment, } from './db.ts';
|
|
3
3
|
export { GENERIC_SAMPLE, formatPathName, parsePathName } from './pathName.ts';
|
|
4
4
|
export type { PathName, PathQuery, PathRef } from './pathName.ts';
|
|
5
5
|
export type { ByteSource } from './filehandle.ts';
|
|
6
6
|
export type { Pos } from './gbwt/record.ts';
|
|
7
|
-
export { Subgraph } from './subgraph.ts';
|
|
8
|
-
export type { AlignmentSpan, HaplotypeAlignment, HaplotypeOutput, PathIdentity, PathPosition, ReferencePath, SnarlOutput, SubgraphJson, SubgraphOptions, SubgraphOutputOptions, SubgraphPath, } from './subgraph.ts';
|
|
7
|
+
export { Subgraph, SubgraphLimitError } from './subgraph.ts';
|
|
8
|
+
export type { AlignmentSpan, ChainEnd, ChainRecord, HaplotypeAlignment, HaplotypeOutput, IdentificationStats, PathIdentity, PathPosition, ReferencePath, SnarlOutput, SubgraphJson, SubgraphOptions, SubgraphOutputOptions, SubgraphPath, } from './subgraph.ts';
|
|
9
9
|
export { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from './query.ts';
|
|
10
10
|
export type { QueryOptions } from './query.ts';
|
|
11
11
|
export { SqliteDatabase } from './sqlite/database.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from "./db.js";
|
|
2
2
|
export { GENERIC_SAMPLE, formatPathName, parsePathName } from "./pathName.js";
|
|
3
|
-
export { Subgraph } from "./subgraph.js";
|
|
3
|
+
export { Subgraph, SubgraphLimitError } from "./subgraph.js";
|
|
4
4
|
export { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from "./query.js";
|
|
5
5
|
export { SqliteDatabase } from "./sqlite/database.js";
|
|
6
6
|
export { weightedLcs } from "./lcs.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAQhF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAI7E,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAiB5D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA"}
|
package/dist/query.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { pathNameFor } from "./pathName.js";
|
|
2
|
-
import { Subgraph } from "./subgraph.js";
|
|
2
|
+
import { Subgraph, SubgraphLimitError } from "./subgraph.js";
|
|
3
3
|
export async function subgraphAtOffset(db, query, offset, opts = {}) {
|
|
4
4
|
const subgraph = new Subgraph(db, opts);
|
|
5
5
|
const reference = await subgraph.pathPosition(pathNameFor(query, offset));
|
|
@@ -10,10 +10,21 @@ export async function subgraphAtOffset(db, query, offset, opts = {}) {
|
|
|
10
10
|
}
|
|
11
11
|
export async function subgraphInInterval(db, query, start, end, opts = {}) {
|
|
12
12
|
const subgraph = new Subgraph(db, opts);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
try {
|
|
14
|
+
const reference = await subgraph.pathPosition(pathNameFor(query, start));
|
|
15
|
+
await subgraph.prefetchReferenceWalk(reference, end - start);
|
|
16
|
+
await subgraph.aroundInterval(reference.position, end - start, opts.context ?? 100);
|
|
17
|
+
await subgraph.extractSnarls(opts.snarls ?? 'none');
|
|
18
|
+
subgraph.extractPaths(reference, opts.haplotypes ?? 'all');
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
throw error instanceof SubgraphLimitError && error.windowBp === undefined
|
|
22
|
+
? new SubgraphLimitError(error.limit, {
|
|
23
|
+
windowBp: end - start,
|
|
24
|
+
walkedBp: subgraph.referenceWalkedBp ?? 0,
|
|
25
|
+
})
|
|
26
|
+
: error;
|
|
27
|
+
}
|
|
17
28
|
return subgraph;
|
|
18
29
|
}
|
|
19
30
|
export async function subgraphAroundNodes(db, nodes, opts = {}) {
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/sqlite/btree.d.ts
CHANGED
|
@@ -4,10 +4,14 @@ export declare class BTree {
|
|
|
4
4
|
private readonly usable;
|
|
5
5
|
private pager;
|
|
6
6
|
private decodedIndexPages;
|
|
7
|
+
private tableDepths;
|
|
7
8
|
constructor(pager: Pager, reservedBytes: number);
|
|
8
9
|
private localPayloadSize;
|
|
9
10
|
private payload;
|
|
10
11
|
private pageAt;
|
|
12
|
+
private tableDepth;
|
|
13
|
+
private childIndexFor;
|
|
14
|
+
prefetchRowidRange(root: number, lo: number, hi: number): Promise<void>;
|
|
11
15
|
tableRowid(root: number, rowid: number): Promise<SqlValue[] | undefined>;
|
|
12
16
|
tableScan(root: number): AsyncGenerator<{
|
|
13
17
|
rowid: number;
|
package/dist/sqlite/btree.js
CHANGED
|
@@ -32,10 +32,12 @@ function cellOffset(page, header, index) {
|
|
|
32
32
|
return readUint16(page, header.cellPointers + 2 * index);
|
|
33
33
|
}
|
|
34
34
|
const MAX_DECODED_INDEX_PAGES = 4096;
|
|
35
|
+
const PREFETCH_PAGE_LIMIT = 4096;
|
|
35
36
|
export class BTree {
|
|
36
37
|
usable;
|
|
37
38
|
pager;
|
|
38
39
|
decodedIndexPages = new Map();
|
|
40
|
+
tableDepths = new Map();
|
|
39
41
|
constructor(pager, reservedBytes) {
|
|
40
42
|
this.pager = pager;
|
|
41
43
|
this.usable = pager.pageSize - reservedBytes;
|
|
@@ -77,6 +79,70 @@ export class BTree {
|
|
|
77
79
|
const page = await this.pager.page(pageNumber);
|
|
78
80
|
return { page, header: readHeader(page, pageNumber === 1 ? 100 : 0) };
|
|
79
81
|
}
|
|
82
|
+
tableDepth(root, towards) {
|
|
83
|
+
let depth = this.tableDepths.get(root);
|
|
84
|
+
if (!depth) {
|
|
85
|
+
depth = (async () => {
|
|
86
|
+
let pageNumber = root;
|
|
87
|
+
for (let level = 0;; level++) {
|
|
88
|
+
const { page, header } = await this.pageAt(pageNumber);
|
|
89
|
+
if (header.type === LEAF_TABLE) {
|
|
90
|
+
return level;
|
|
91
|
+
}
|
|
92
|
+
if (header.type !== INTERIOR_TABLE) {
|
|
93
|
+
throw new Error('SQLite table b-tree contains an index page');
|
|
94
|
+
}
|
|
95
|
+
const child = this.childIndexFor(page, header, towards);
|
|
96
|
+
pageNumber =
|
|
97
|
+
child === header.cellCount
|
|
98
|
+
? header.rightChild
|
|
99
|
+
: readUint32(page, cellOffset(page, header, child));
|
|
100
|
+
}
|
|
101
|
+
})();
|
|
102
|
+
this.tableDepths.set(root, depth);
|
|
103
|
+
depth.catch(() => this.tableDepths.delete(root));
|
|
104
|
+
}
|
|
105
|
+
return depth;
|
|
106
|
+
}
|
|
107
|
+
childIndexFor(page, header, rowid) {
|
|
108
|
+
let low = 0;
|
|
109
|
+
let high = header.cellCount;
|
|
110
|
+
while (low < high) {
|
|
111
|
+
const mid = (low + high) >> 1;
|
|
112
|
+
const [key] = readVarint(page, cellOffset(page, header, mid) + 4);
|
|
113
|
+
if (key < rowid) {
|
|
114
|
+
low = mid + 1;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
high = mid;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return low;
|
|
121
|
+
}
|
|
122
|
+
async prefetchRowidRange(root, lo, hi) {
|
|
123
|
+
const leafLevel = await this.tableDepth(root, lo);
|
|
124
|
+
let pages = [root];
|
|
125
|
+
for (let level = 0; level < leafLevel; level++) {
|
|
126
|
+
const decoded = await Promise.all(pages.map(n => this.pageAt(n)));
|
|
127
|
+
const children = [];
|
|
128
|
+
decoded.forEach(({ page, header }, i) => {
|
|
129
|
+
const from = i === 0 ? this.childIndexFor(page, header, lo) : 0;
|
|
130
|
+
const to = i === decoded.length - 1
|
|
131
|
+
? this.childIndexFor(page, header, hi)
|
|
132
|
+
: header.cellCount;
|
|
133
|
+
for (let c = from; c <= to; c++) {
|
|
134
|
+
children.push(c === header.cellCount
|
|
135
|
+
? header.rightChild
|
|
136
|
+
: readUint32(page, cellOffset(page, header, c)));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
if (children.length > PREFETCH_PAGE_LIMIT) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this.pager.prefetch(children);
|
|
143
|
+
pages = children;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
80
146
|
async tableRowid(root, rowid) {
|
|
81
147
|
let pageNumber = root;
|
|
82
148
|
for (;;) {
|