@gmod/gbz-base 2.4.0 → 2.5.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 +38 -11
- package/dist/db.d.ts +10 -2
- package/dist/db.js +24 -4
- package/dist/db.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/db.ts +41 -8
- package/src/index.ts +8 -1
package/README.md
CHANGED
|
@@ -40,10 +40,29 @@ 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, limit, signal }`, and
|
|
44
|
-
also `snarls`; both resolve haplotype names when the
|
|
45
|
-
alignments `haplotypes` is `all` or `distinct`, the two
|
|
46
|
-
something to align against the reference.
|
|
43
|
+
Both take `{ context, haplotypes, keep, limit, signal }`, and
|
|
44
|
+
`getSubgraphForRange` also `snarls`; both resolve haplotype names when the
|
|
45
|
+
database can. For alignments `haplotypes` is `all` or `distinct`, the two
|
|
46
|
+
outputs that leave something to align against the reference.
|
|
47
|
+
|
|
48
|
+
`keep` is a predicate over the `PathName` of each named walk, applied after
|
|
49
|
+
identification: the walks it rejects are neither aligned nor written, and the
|
|
50
|
+
subgraph loses every node only they visited, so a query for a chosen set draws
|
|
51
|
+
that set's private sequence and nothing else's (the reference walk always
|
|
52
|
+
stays). It needs the haplotype index and throws without one. What it saves is
|
|
53
|
+
the alignment and the output, not the fetch or the identification, which has to
|
|
54
|
+
name a walk before the predicate can see it. Measured on the 30 kb LPA KIV-2
|
|
55
|
+
window of the HPRC v2.1 graph (`GRCh38#0#chr6:160616002..160646753`, context
|
|
56
|
+
1000, contained snarls; graph over HTTPS, companion local), all 464 haplotypes
|
|
57
|
+
against the tutorial's eight: the fetch and walk extraction take 4.3-5.4 s
|
|
58
|
+
either way and identification 0.2 s; alignment goes from 0.63 s for 464 records
|
|
59
|
+
to 0.02 s for 8, the alignment JSON from 44.3 MB to 0.63 MB, the resolved GFA
|
|
60
|
+
from 45.5 MB (465 W lines, 0.5 s to write) to 1.56 MB (9 W lines, 0.1 s), and
|
|
61
|
+
the subgraph from 21,721 nodes to 15,808. End to end that is 6.0-6.6 s against
|
|
62
|
+
4.6-5.8 s in the library, and 9.1-9.5 s against 6.4-8.5 s for
|
|
63
|
+
`gbz-base-query --alignments` with and without eight `--keep`s, so a chosen set
|
|
64
|
+
saves the alignment and the output, about a fifth of the window, and the rest
|
|
65
|
+
waits on a walk the companion can start from the reference.
|
|
47
66
|
|
|
48
67
|
`context` is the graph context in bp to extend past the window, 100 by default.
|
|
49
68
|
It does not decide how many records come back, since the pieces of a walk that
|
|
@@ -103,9 +122,11 @@ upstream: a node-length-weighted LCS, with the diverging stretches scored using
|
|
|
103
122
|
vg's match, mismatch and gap parameters. `strand` is `-` when the haplotype runs
|
|
104
123
|
through the window in the opposite direction to the reference, so the same pair
|
|
105
124
|
of paths reports the same strand whichever of the two is the reference. `path`
|
|
106
|
-
is the walk as node handles,
|
|
107
|
-
|
|
108
|
-
|
|
125
|
+
is the walk as node handles, in subgraph order; for a joined record it is the
|
|
126
|
+
pieces concatenated, with the private stretch between them absent, so it is not
|
|
127
|
+
a contiguous walk through the graph. `weight` is how many identical haplotypes
|
|
128
|
+
it stands for, and `start` is the first piece's GBWT position, which is a
|
|
129
|
+
property of the graph and so is stable across refetches of the same window.
|
|
109
130
|
|
|
110
131
|
Naming a fragment needs the haplotype index described below, and a database
|
|
111
132
|
without one cannot do it, so the record is a union on `resolved` rather than a
|
|
@@ -222,7 +243,12 @@ different graph.
|
|
|
222
243
|
`HaplotypeSamples` holds one GBWT position every `--interval` bp along every
|
|
223
244
|
path in both orientations, with the path handle and the forward coordinate of
|
|
224
245
|
that node, and `HaplotypeLengths` holds each path's length. The upstream `query`
|
|
225
|
-
binary keeps working on the augmented database.
|
|
246
|
+
binary keeps working on the augmented database. Both orientations are needed:
|
|
247
|
+
about half the contigs of a graph like HPRC's are stored against their
|
|
248
|
+
reference, and a walk of one of those meets no sample from a forward-only index.
|
|
249
|
+
`GBZBase.open` refuses an index the tool wrote with `--forward-only` (its
|
|
250
|
+
`haplotype_index_orientations` tag says `forward`) with `ForwardOnlyIndexError`,
|
|
251
|
+
so the half-named result never reaches a caller.
|
|
226
252
|
|
|
227
253
|
At query time `subgraph.identifyPaths()` loads the samples for the window's
|
|
228
254
|
nodes with one index scan per run of consecutive node ids (a window whose nodes
|
|
@@ -241,9 +267,10 @@ A named walk in GFA or JSON output lists its steps in the haplotype's own
|
|
|
241
267
|
direction, whichever twin of the walk the extraction kept, so `start..end` and
|
|
242
268
|
the steps agree as the W line spec requires. `keepHaplotypes(name => ...)`
|
|
243
269
|
narrows an identified subgraph to the reference walk and the walks whose PanSN
|
|
244
|
-
name the predicate accepts, dropping every node only the other walks visited;
|
|
245
|
-
the
|
|
246
|
-
|
|
270
|
+
name the predicate accepts, dropping every node only the other walks visited; it
|
|
271
|
+
is what the range queries' `keep` option calls, and on the command line
|
|
272
|
+
`--keep SAMPLE` or `--keep SAMPLE#HAP` (repeatable). This is how a cut for a
|
|
273
|
+
chosen set of haplotypes is written once and drawn as it is.
|
|
247
274
|
|
|
248
275
|
The tests check every resolved fragment against an independent backward walk
|
|
249
276
|
through the bidirectional GBWT to the path's recorded start position.
|
package/dist/db.d.ts
CHANGED
|
@@ -13,9 +13,16 @@ export interface PathFragment {
|
|
|
13
13
|
start: number;
|
|
14
14
|
end: number;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
16
|
+
export interface RangeOptions extends QueryOptions {
|
|
17
|
+
keep?: ((name: PathName) => boolean) | undefined;
|
|
18
|
+
}
|
|
19
|
+
export interface AlignmentOptions extends Pick<RangeOptions, 'context' | 'limit' | 'signal' | 'keep'> {
|
|
17
20
|
haplotypes?: 'all' | 'distinct' | undefined;
|
|
18
21
|
}
|
|
22
|
+
export declare class ForwardOnlyIndexError extends Error {
|
|
23
|
+
name: string;
|
|
24
|
+
constructor();
|
|
25
|
+
}
|
|
19
26
|
export declare class SchemaVersionError extends Error {
|
|
20
27
|
name: string;
|
|
21
28
|
readonly found: string | undefined;
|
|
@@ -76,11 +83,12 @@ export declare class GBZBase {
|
|
|
76
83
|
private walkPathLength;
|
|
77
84
|
pathFragmentsForRange(ref: PathRef, start: number, end: number): Promise<PathFragment[]>;
|
|
78
85
|
private subgraphForFragment;
|
|
79
|
-
getSubgraphForRange(ref: PathRef, start: number, end: number, opts?:
|
|
86
|
+
getSubgraphForRange(ref: PathRef, start: number, end: number, opts?: RangeOptions): Promise<import("./subgraph.ts").Subgraph | undefined>;
|
|
80
87
|
getAlignmentsForRange(ref: PathRef, start: number, end: number, opts?: AlignmentOptions): Promise<HaplotypeAlignment[]>;
|
|
81
88
|
graphName(): Promise<GraphName>;
|
|
82
89
|
hasChainLinks(): Promise<boolean>;
|
|
83
90
|
get hasHaplotypeIndex(): boolean;
|
|
91
|
+
private haplotypeIndexTag;
|
|
84
92
|
haplotypeSampleInterval(): Promise<number | undefined>;
|
|
85
93
|
private sampleFromRow;
|
|
86
94
|
haplotypeSamplesInRange(minHandle: number, maxHandle: number): Promise<HaplotypeSample[]>;
|
package/dist/db.js
CHANGED
|
@@ -6,6 +6,12 @@ import { formatPathName, pathNameFor, toPathQuery } from "./pathName.js";
|
|
|
6
6
|
import { subgraphInInterval } from "./query.js";
|
|
7
7
|
import { SqliteDatabase } from "./sqlite/database.js";
|
|
8
8
|
export const SCHEMA_VERSION = 'GBZ-base version 4';
|
|
9
|
+
export class ForwardOnlyIndexError extends Error {
|
|
10
|
+
name = 'ForwardOnlyIndexError';
|
|
11
|
+
constructor() {
|
|
12
|
+
super('the haplotype index was written with --forward-only, which cannot name the walks stored against their reference (about half of them); rebuild it with gbz-haplotype-index without --forward-only');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
9
15
|
export class SchemaVersionError extends Error {
|
|
10
16
|
name = 'SchemaVersionError';
|
|
11
17
|
found;
|
|
@@ -137,6 +143,12 @@ export class GBZBase {
|
|
|
137
143
|
throw new Error(`haplotype index was built for a graph with ${indexedNodes} nodes but this one has ${nodes}`);
|
|
138
144
|
}
|
|
139
145
|
}
|
|
146
|
+
if (db.hasHaplotypeIndex) {
|
|
147
|
+
const orientations = await db.haplotypeIndexTag('haplotype_index_orientations');
|
|
148
|
+
if (orientations === 'forward') {
|
|
149
|
+
throw new ForwardOnlyIndexError();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
140
152
|
return db;
|
|
141
153
|
}
|
|
142
154
|
tags() {
|
|
@@ -244,12 +256,19 @@ export class GBZBase {
|
|
|
244
256
|
return fragments.filter(f => start < f.end);
|
|
245
257
|
}
|
|
246
258
|
async subgraphForFragment(fragment, start, end, opts) {
|
|
259
|
+
const { keep, ...queryOptions } = opts;
|
|
260
|
+
if (keep !== undefined && !this.hasHaplotypeIndex) {
|
|
261
|
+
throw new Error('keep needs the haplotype index: this database cannot name its walks');
|
|
262
|
+
}
|
|
247
263
|
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),
|
|
264
|
+
const subgraph = await subgraphInInterval(this, { sample, contig, haplotype }, Math.max(start, fragment.start), Math.min(end, fragment.end), queryOptions);
|
|
249
265
|
const haplotypes = opts.haplotypes ?? 'all';
|
|
250
266
|
const named = haplotypes === 'all' || haplotypes === 'distinct';
|
|
251
267
|
if (this.hasHaplotypeIndex && named) {
|
|
252
268
|
await subgraph.identifyPaths();
|
|
269
|
+
if (keep !== undefined) {
|
|
270
|
+
subgraph.keepHaplotypes(keep);
|
|
271
|
+
}
|
|
253
272
|
}
|
|
254
273
|
return subgraph;
|
|
255
274
|
}
|
|
@@ -294,10 +313,11 @@ export class GBZBase {
|
|
|
294
313
|
get hasHaplotypeIndex() {
|
|
295
314
|
return (this.index.has('HaplotypeSamples') && this.index.has('HaplotypeLengths'));
|
|
296
315
|
}
|
|
316
|
+
async haplotypeIndexTag(key) {
|
|
317
|
+
return this.indexTags ? this.indexTags.get(key) : await this.tag(key);
|
|
318
|
+
}
|
|
297
319
|
async haplotypeSampleInterval() {
|
|
298
|
-
const value = this.
|
|
299
|
-
? this.indexTags.get('haplotype_index_interval')
|
|
300
|
-
: await this.tag('haplotype_index_interval');
|
|
320
|
+
const value = await this.haplotypeIndexTag('haplotype_index_interval');
|
|
301
321
|
return value === undefined ? undefined : Number(value);
|
|
302
322
|
}
|
|
303
323
|
sampleFromRow(values) {
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAWrD,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAA;AAelD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,oBAAoB,CAAA;IAE3B,KAAK,CAAoB;IAElC,YAAY,KAAyB;QACnC,KAAK,CACH,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,wDAAwD;YAC1D,CAAC,CAAC,gCAAgC,KAAK,+BAA+B,cAAc,GAAG,CAC1F,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF;AAkBD,MAAM,OAAO,SAAS;IACX,WAAW,CAAQ;IACnB,MAAM,CAAQ;IACd,KAAK,CAAO;IACZ,GAAG,CAAY;IACf,eAAe,CAAY;IAC3B,IAAI,CAAoB;IACzB,OAAO,CAAoB;IAEnC,YACE,MAAc,EACd,KAAY,EACZ,GAAe,EACf,eAA2B,EAC3B,IAAwB;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACrD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACtE,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,MAAM,WAAW,CAAC,CAAA;QACnE,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;CACF;AAED,SAAS,GAAG,CAAC,KAA2B,EAAE,IAAY;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,GAAG,CAAC,KAA2B,EAAE,IAAY;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,IAAI,CAAC,KAA2B,EAAE,IAAY;IACrD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,MAAkB;IAClD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;SAC1C;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAC3C;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;YACtC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;YACtC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC;YAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;SAC3C;QACD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC;KACpD,CAAA;AACH,CAAC;AAMD,KAAK,UAAU,QAAQ,CAAC,MAAsB;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,OAAO,OAAO;IACV,QAAQ,CAA0C;IAClD,SAAS,CAAgC;IACzC,SAAS,CAAiC;IAEzC,MAAM,CAAgB;IACtB,KAAK,CAAgB;IAE9B,YAAoB,MAAsB,EAAE,KAAqB;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAkB,EAAE,OAAoB,EAAE;QAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAC9D,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,cAAc;YAC1B,CAAC,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC;YACzD,CAAC,CAAC,MAAM,CAAA;QACV,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACvC,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;YAC/B,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACvB,CAAC;YACD,EAAE,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACzD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,IAAI,sBAAsB,4BAA4B,KAAK,EAAE,CACtG,CAAA;YACH,CAAC;YACD,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC9D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CACb,8CAA8C,YAAY,2BAA2B,KAAK,EAAE,CAC7F,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,eAAe,CAAC,EAAU,EAAE,EAAU;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACnB,OAAO,IAAI,SAAS,CAClB,MAAM,EACN,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAC5C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAC9B,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAC5C,CAAA;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,KAAK,GAAc,EAAE,CAAA;YAC3B,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,EAAE,CAAA;QACJ,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACtD,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAc;QAC3B,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACnC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CACnC,CAAA;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IACnE,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAY;QACnC,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;aACxB,MAAM,CACL,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CACtC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAChD,CAAC;IAEO,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAA;IAExD,UAAU,CAAC,MAAc;QACvB,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACpC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB;YACpC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAA;YACxE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACvC,MAAM,IAAI,KAAK,CACb,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,yCAAyC,CAC/G,CAAA;YACH,CAAC;YACD,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAA;YAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YAClB,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,8BAA8B,CAAC,CAAA;gBACjE,CAAC;gBACD,MAAM,IAAI,MAAM,CAAC,WAAW,CAAA;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACrC,OAAO,MAAM,CAAA;gBACf,CAAC;gBACD,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,GAAY,EACZ,KAAa,EACb,GAAW;QAEX,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;YACjB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CACtD,CAAA;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC;YAC1C,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YACzB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/D,CAAC,CAAC,CACJ,CAAA;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,QAAsB,EACtB,KAAa,EACb,GAAW,EACX,IAAkB;QAElB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,IAAI,EACJ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAC3B,IAAI,CACL,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAA;QAC3C,MAAM,KAAK,GAAG,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,UAAU,CAAA;QAC/D,IAAI,IAAI,CAAC,iBAAiB,IAAI,KAAK,EAAE,CAAC;YACpC,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAA;QAChC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,GAAY,EACZ,KAAa,EACb,GAAW,EACX,OAAqB,EAAE;QAEvB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO,QAAQ;YACb,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;YACtD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,GAAY,EACZ,KAAa,EACb,GAAW,EACX,OAAyB,EAAE;QAE3B,MAAM,MAAM,GAAyB,EAAE,CAAA;QACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC7C,QAAQ,EACR,KAAK,EACL,GAAG,EACH,IAAI,CACL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QACD,IAAI,IAAI,GAAc;YACpB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,WAAW,EAAE,IAAI,GAAG,EAAE;SACvB,CAAA;QACD,IAAI,CAAC;YACH,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;QACpE,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC3C,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CACzE,CAAA;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS;YAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAChD,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QAC9C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IAEO,aAAa,CAAC,MAAkB;QACtC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC;YACpD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC;YACtD,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC;YAC1D,WAAW,EACT,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC,KAAK,CAAC;gBAClD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS;YACf,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC;SAC3D,CAAA;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,SAAiB,EAAE,SAAiB;QAChE,MAAM,OAAO,GAAsB,EAAE,CAAA;QACrC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE;YACnE,SAAS;YACT,CAAC;SACF,CAAC,EAAE,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;YACxD,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;gBACrB,MAAK;YACP,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAClC,kBAAkB,EAClB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CACtC,CAAA;YACD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,MAAc;QAClD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5E,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAC3C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAClC,kBAAkB,EAClB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CACtC,CAAA;QACD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;QACpE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjE,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,UAAkB;QAElB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;YAC1D,UAAU;YACV,UAAU;SACX,CAAC,CAAA;QACF,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACnC,gBAAgB,EAChB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,CACpC,CAAA;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC;YACrD,GAAG,EAAE;gBACH,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC;gBAC/C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,4BAA4B,CAAC;aAClD;SACF,CAAA;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from './db.ts';
|
|
2
|
-
export type { AlignmentOptions, GbzPath, HaplotypeSample, OpenOptions, PathFragment, } from './db.ts';
|
|
1
|
+
export { ForwardOnlyIndexError, GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError, } from './db.ts';
|
|
2
|
+
export type { AlignmentOptions, GbzPath, HaplotypeSample, OpenOptions, PathFragment, RangeOptions, } 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';
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from "./db.js";
|
|
1
|
+
export { ForwardOnlyIndexError, GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError, } from "./db.js";
|
|
2
2
|
export { GENERIC_SAMPLE, formatPathName, parsePathName } from "./pathName.js";
|
|
3
3
|
export { Subgraph, SubgraphLimitError } from "./subgraph.js";
|
|
4
4
|
export { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from "./query.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAShB,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/package.json
CHANGED
package/src/db.ts
CHANGED
|
@@ -23,13 +23,27 @@ export interface PathFragment {
|
|
|
23
23
|
end: number
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
export interface RangeOptions extends QueryOptions {
|
|
27
|
+
keep?: ((name: PathName) => boolean) | undefined
|
|
28
|
+
}
|
|
29
|
+
|
|
26
30
|
export interface AlignmentOptions extends Pick<
|
|
27
|
-
|
|
28
|
-
'context' | 'limit' | 'signal'
|
|
31
|
+
RangeOptions,
|
|
32
|
+
'context' | 'limit' | 'signal' | 'keep'
|
|
29
33
|
> {
|
|
30
34
|
haplotypes?: 'all' | 'distinct' | undefined
|
|
31
35
|
}
|
|
32
36
|
|
|
37
|
+
export class ForwardOnlyIndexError extends Error {
|
|
38
|
+
override name = 'ForwardOnlyIndexError'
|
|
39
|
+
|
|
40
|
+
constructor() {
|
|
41
|
+
super(
|
|
42
|
+
'the haplotype index was written with --forward-only, which cannot name the walks stored against their reference (about half of them); rebuild it with gbz-haplotype-index without --forward-only',
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
33
47
|
export class SchemaVersionError extends Error {
|
|
34
48
|
override name = 'SchemaVersionError'
|
|
35
49
|
|
|
@@ -211,6 +225,14 @@ export class GBZBase {
|
|
|
211
225
|
)
|
|
212
226
|
}
|
|
213
227
|
}
|
|
228
|
+
if (db.hasHaplotypeIndex) {
|
|
229
|
+
const orientations = await db.haplotypeIndexTag(
|
|
230
|
+
'haplotype_index_orientations',
|
|
231
|
+
)
|
|
232
|
+
if (orientations === 'forward') {
|
|
233
|
+
throw new ForwardOnlyIndexError()
|
|
234
|
+
}
|
|
235
|
+
}
|
|
214
236
|
return db
|
|
215
237
|
}
|
|
216
238
|
|
|
@@ -358,20 +380,29 @@ export class GBZBase {
|
|
|
358
380
|
fragment: PathFragment,
|
|
359
381
|
start: number,
|
|
360
382
|
end: number,
|
|
361
|
-
opts:
|
|
383
|
+
opts: RangeOptions,
|
|
362
384
|
) {
|
|
385
|
+
const { keep, ...queryOptions } = opts
|
|
386
|
+
if (keep !== undefined && !this.hasHaplotypeIndex) {
|
|
387
|
+
throw new Error(
|
|
388
|
+
'keep needs the haplotype index: this database cannot name its walks',
|
|
389
|
+
)
|
|
390
|
+
}
|
|
363
391
|
const { sample, contig, haplotype } = fragment.path.name
|
|
364
392
|
const subgraph = await subgraphInInterval(
|
|
365
393
|
this,
|
|
366
394
|
{ sample, contig, haplotype },
|
|
367
395
|
Math.max(start, fragment.start),
|
|
368
396
|
Math.min(end, fragment.end),
|
|
369
|
-
|
|
397
|
+
queryOptions,
|
|
370
398
|
)
|
|
371
399
|
const haplotypes = opts.haplotypes ?? 'all'
|
|
372
400
|
const named = haplotypes === 'all' || haplotypes === 'distinct'
|
|
373
401
|
if (this.hasHaplotypeIndex && named) {
|
|
374
402
|
await subgraph.identifyPaths()
|
|
403
|
+
if (keep !== undefined) {
|
|
404
|
+
subgraph.keepHaplotypes(keep)
|
|
405
|
+
}
|
|
375
406
|
}
|
|
376
407
|
return subgraph
|
|
377
408
|
}
|
|
@@ -380,7 +411,7 @@ export class GBZBase {
|
|
|
380
411
|
ref: PathRef,
|
|
381
412
|
start: number,
|
|
382
413
|
end: number,
|
|
383
|
-
opts:
|
|
414
|
+
opts: RangeOptions = {},
|
|
384
415
|
) {
|
|
385
416
|
const [fragment] = await this.pathFragmentsForRange(ref, start, end)
|
|
386
417
|
return fragment
|
|
@@ -438,10 +469,12 @@ export class GBZBase {
|
|
|
438
469
|
)
|
|
439
470
|
}
|
|
440
471
|
|
|
472
|
+
private async haplotypeIndexTag(key: string) {
|
|
473
|
+
return this.indexTags ? this.indexTags.get(key) : await this.tag(key)
|
|
474
|
+
}
|
|
475
|
+
|
|
441
476
|
async haplotypeSampleInterval() {
|
|
442
|
-
const value = this.
|
|
443
|
-
? this.indexTags.get('haplotype_index_interval')
|
|
444
|
-
: await this.tag('haplotype_index_interval')
|
|
477
|
+
const value = await this.haplotypeIndexTag('haplotype_index_interval')
|
|
445
478
|
return value === undefined ? undefined : Number(value)
|
|
446
479
|
}
|
|
447
480
|
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {
|
|
2
|
+
ForwardOnlyIndexError,
|
|
3
|
+
GBZBase,
|
|
4
|
+
GbzRecord,
|
|
5
|
+
SCHEMA_VERSION,
|
|
6
|
+
SchemaVersionError,
|
|
7
|
+
} from './db.ts'
|
|
2
8
|
export type {
|
|
3
9
|
AlignmentOptions,
|
|
4
10
|
GbzPath,
|
|
5
11
|
HaplotypeSample,
|
|
6
12
|
OpenOptions,
|
|
7
13
|
PathFragment,
|
|
14
|
+
RangeOptions,
|
|
8
15
|
} from './db.ts'
|
|
9
16
|
export { GENERIC_SAMPLE, formatPathName, parsePathName } from './pathName.ts'
|
|
10
17
|
export type { PathName, PathQuery, PathRef } from './pathName.ts'
|