@gmod/gbz-base 1.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,45 +1,133 @@
1
1
  # @gmod/gbz-base
2
2
 
3
- A pure TypeScript reader for [gbz-base](https://github.com/jltsiren/gbz-base)
4
- pangenome databases (`.gbz.db`). It answers the same subgraph queries as
5
- `gbz-base query`, reading only the SQLite pages a query touches, so a
6
- multi-gigabyte database on an HTTP server is queried through range requests
7
- without downloading it or compiling anything to WebAssembly.
3
+ [![NPM version](https://img.shields.io/npm/v/@gmod/gbz-base.svg?style=flat-square)](https://npmjs.org/package/@gmod/gbz-base)
4
+ ![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/gbz-base-js/publish.yml?branch=main)
8
5
 
9
- No SQLite library is involved. The reader walks the SQLite b-trees directly
10
- (rowid lookups, index seeks, overflow chains) and decodes the GBWT node records
11
- the same way gbwt-rs does. Databases are produced by unmodified upstream
12
- `gbz-base construct`.
6
+ A pure TypeScript reader for [gbz-base](https://github.com/jltsiren/gbz-base)
7
+ pangenome databases (`.gbz.db`).
13
8
 
14
9
  ## Usage
15
10
 
16
11
  ```ts
17
12
  import { RemoteFile } from 'generic-filehandle2'
18
- import { GBZBase, subgraphInInterval } from '@gmod/gbz-base'
13
+ import { GBZBase } from '@gmod/gbz-base'
19
14
 
20
15
  const db = await GBZBase.open(
21
16
  new RemoteFile('https://example.org/graph.gbz.db'),
22
17
  )
23
- const subgraph = await subgraphInInterval(
24
- db,
25
- { sample: 'GRCh38', contig: 'chr6' },
18
+
19
+ // one record per haplotype fragment crossing the window
20
+ const alignments = await db.getAlignmentsForRange(
21
+ 'GRCh38#0#chr6',
22
+ 31500000,
23
+ 31501000,
24
+ )
25
+
26
+ // the same window as a subgraph, for a pangenome view
27
+ const subgraph = await db.getSubgraphForRange(
28
+ 'GRCh38#0#chr6',
26
29
  31500000,
27
30
  31501000,
28
- { context: 0, haplotypes: 'all' },
29
31
  )
30
- const { nodes, edges, paths } = subgraph.toJSON(true)
32
+ const gfa = await subgraph?.toGFA({ names: 'resolved' })
33
+ ```
34
+
35
+ Coordinates are 0-based half-open, and are offsets along the path you named, so
36
+ `('GRCh38#0#chr6', 31500000, 31501000)` is the same window
37
+ `gbz-base query --interval 31500000..31501000` gives.
38
+
39
+ The path is a PanSN `sample#haplotype#contig` string, or a bare contig for a
40
+ graph whose reference paths have no sample. `{ sample, haplotype, contig }`
41
+ works too, and `parsePathName` is the parser if you want it separately.
42
+
43
+ Both take `{ context, haplotypes, snarls, limit, signal }` and both resolve
44
+ haplotype names when the database can. `signal` is an `AbortSignal`; a query
45
+ checks it between range requests, so an abort stops the next fetch rather than
46
+ the one in flight.
47
+
48
+ ### One returns records, the other a query object
49
+
50
+ `getAlignmentsForRange` hands back data, and spans path fragments — a window
51
+ crossing a boundary queries each fragment and concatenates, which is
52
+ coordinate-correct because a record's `refStart`/`refEnd` are absolute.
53
+
54
+ `getSubgraphForRange` hands back the `Subgraph` itself, because two disjoint
55
+ fragments do not merge into one graph. It answers for the first fragment
56
+ overlapping the window, clamped to it, and `subgraph.referenceInterval` says
57
+ which interval that was. It is `undefined` when the path is unknown, when no
58
+ fragment overlaps the window, or when the clamped window is empty. Use
59
+ `pathFragmentsForRange` to see the fragments yourself, and `hasPath` to ask
60
+ about a path alone.
61
+
62
+ A path that exists but was never indexed for random access throws rather than
63
+ returning nothing — that is a database that needs rebuilding, not an empty
64
+ window.
65
+
66
+ ### What an alignment is
67
+
68
+ ```ts
69
+ for (const alignment of alignments) {
70
+ const { refStart, refEnd, strand, cigar } = alignment
71
+ if (alignment.resolved) {
72
+ console.log(alignment.label, alignment.hapStart, alignment.hapEnd)
73
+ }
74
+ }
31
75
  ```
32
76
 
33
- `paths[0]` is the reference interval, named `GRCh38#0#chr6[start-end]`. Every
34
- other entry is one haplotype's walk through the subgraph with a `cigar` relative
35
- to the reference, computed like upstream: a node-length-weighted LCS, with the
36
- diverging stretches scored using vg's match, mismatch and gap parameters.
77
+ `refStart`/`refEnd` are the fragment's span on the reference path you queried.
78
+ They run to node boundaries, so a record can begin before the window you asked
79
+ for and end after it. `cigar` is its alignment to that reference, computed like
80
+ upstream: a node-length-weighted LCS, with the diverging stretches scored using
81
+ vg's match, mismatch and gap parameters. `strand` is `-` when the haplotype runs
82
+ through the window in the opposite direction to the reference, so the same pair
83
+ of paths reports the same strand whichever of the two is the reference. `path`
84
+ is the walk as node handles, `weight` is how many identical haplotypes it stands
85
+ for, and `start` is its GBWT position, which is a property of the graph and so
86
+ is stable across refetches of the same window.
87
+
88
+ Naming a fragment needs the haplotype index described below, and a database
89
+ without one cannot do it, so the record is a union on `resolved` rather than a
90
+ handful of separately-undefined fields. A resolved one adds the `PathName` as
91
+ `name`, its `HG02723#1#JAHEOU010000100.1[4392999-4393486]` rendering as `label`,
92
+ the `pathHandle`, and `hapStart`/`hapEnd` in that haplotype's own coordinates.
93
+
94
+ A haplotype whose walk shares no node with the reference has
95
+ `refEnd <= refStart` and an all-insertion CIGAR; those come back like any other,
96
+ to drop or keep as you like.
97
+
98
+ ### Sources
37
99
 
38
100
  Any object with `read(length, position)` and `stat()` works as a source, so
39
101
  `LocalFile`, `RemoteFile` and `BlobFile` from `generic-filehandle2` all do.
40
102
  Pages are fetched in blocks (64 KiB by default, `blockSize` in the open options)
41
103
  and cached.
42
104
 
105
+ ### Lower-level queries
106
+
107
+ The two above cover the interval query and hide where a contig is stored split
108
+ into path fragments. The four query functions underneath are what
109
+ `gbz-base query` itself does, take a window you have already resolved, and leave
110
+ identification to you:
111
+
112
+ ```ts
113
+ import { subgraphAtOffset, subgraphInInterval } from '@gmod/gbz-base'
114
+
115
+ const subgraph = await subgraphInInterval(
116
+ db,
117
+ { sample: 'GRCh38', contig: 'chr6' },
118
+ 31500000,
119
+ 31501000,
120
+ { context: 0, haplotypes: 'all' },
121
+ )
122
+ await subgraph.identifyPaths()
123
+ const graph = subgraph.toSubgraphJson({ cigar: true, names: 'resolved' })
124
+ const gfa = await subgraph.toGFA({ cigar: true, names: 'resolved' })
125
+ ```
126
+
127
+ `subgraphAtOffset` and `subgraphAroundNodes` are the other two;
128
+ `subgraphBetween` is described under Snarls. They throw for a window that runs
129
+ past the end of a path fragment, where `getAlignmentsForRange` clamps.
130
+
43
131
  The command line mirrors the upstream tool for the query types it supports:
44
132
 
45
133
  ```
@@ -104,8 +192,8 @@ const db = await GBZBase.open(new RemoteFile(graphUrl), {
104
192
  This is how a database someone else publishes gets haplotype names without
105
193
  anyone rehosting it: HPRC publishes `hprc-v2.1-mc-grch38.gbz.db` (10 GB) beside
106
194
  its graphs, and the companion for it is built from the 5 GB GBZ. The companion
107
- records the graph's path count and the reader refuses one built for a different
108
- graph.
195
+ records the graph's path and node counts and the reader refuses one built for a
196
+ different graph.
109
197
 
110
198
  `HaplotypeSamples` holds one GBWT position every `--interval` bp along every
111
199
  path in both orientations, with the path handle and the forward coordinate of
@@ -115,15 +203,28 @@ binary keeps working on the augmented database.
115
203
  At query time `subgraph.identifyPaths()` loads the samples for the window's node
116
204
  range in one index scan, chains each haplotype's fragments to the next through
117
205
  the private nodes between them, and walks at most one interval past the window
118
- for a chain that met no sample inside it. `subgraph.alignments()` then gives one
119
- record per fragment: PanSN name, strand, haplotype interval in that contig's
120
- coordinates, reference interval, and a CIGAR clipped to the fragment's own
121
- reference span. `toJSON(cigar, { names: 'resolved' })` names the paths the same
122
- way. On the command line, `--resolve` and `--alignments`.
206
+ for a chain that met no sample inside it. This is what fills in the `resolved`
207
+ half of a feature: PanSN name, haplotype interval in that contig's coordinates,
208
+ and the path handle. `getAlignmentsForRange` and `getSubgraphForRange` run it
209
+ for you when the database has the tables; on the lower-level path you call it
210
+ yourself before `alignments()` or `toSubgraphJson({ names: 'resolved' })`. On
211
+ the command line, `--resolve` and `--alignments`.
123
212
 
124
213
  The tests check every resolved fragment against an independent backward walk
125
214
  through the bidirectional GBWT to the path's recorded start position.
126
215
 
216
+ ## Technical notes
217
+
218
+ It answers the same subgraph queries as `gbz-base query`, reading only the
219
+ SQLite pages a query touches, so a multi-gigabyte database on an HTTP server is
220
+ queried through range requests without downloading it or compiling anything to
221
+ WebAssembly.
222
+
223
+ No SQLite library is involved. The reader walks the SQLite b-trees directly
224
+ (rowid lookups, index seeks, overflow chains) and decodes the GBWT node records
225
+ the same way gbwt-rs does. Databases are produced by unmodified upstream
226
+ `gbz-base construct`.
227
+
127
228
  ## Fidelity
128
229
 
129
230
  `test/data/oracle/` holds JSON written by upstream `gbz-base query` for the
@@ -141,6 +242,15 @@ node can be placed in order; the Myers-based weighted LCS from gbwt-rs runs only
141
242
  for the fragments where that fails (inversions, repeats). The two can pick
142
243
  different equal-weight alignments only when the reference walk repeats a node.
143
244
 
245
+ One deliberate departure: where a reference walk is stored against node
246
+ orientation (upstream prints "the reference path is not in canonical
247
+ orientation" there), every other walk comes out in the opposite orientation, and
248
+ upstream aligns them handle for handle, giving all-insertion CIGARs against the
249
+ reference despite the nodes being shared. This reader aligns each walk in
250
+ whichever orientation shares more sequence with the reference and reports `-` on
251
+ such records. CHM13 on HPRC chr20 has one such region, right after the fragment
252
+ starting at 30368374.
253
+
144
254
  ## Measured
145
255
 
146
256
  Against a 134 MB HPRC chr20 `.gbz.db` served over HTTPS,
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { LocalFile, RemoteFile } from 'generic-filehandle2';
2
- import { GBZBase, formatPathName } from "./db.js";
2
+ import { GBZBase } from "./db.js";
3
3
  import { encodeNode } from "./gbwt/node.js";
4
4
  import { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from "./query.js";
5
5
  const USAGE = `Usage: gbz-base-query [options] graph.gbz.db
@@ -149,6 +149,10 @@ function parseArgs(argv) {
149
149
  }
150
150
  return args;
151
151
  }
152
+ function alignmentRecord(alignment) {
153
+ const { start, ...rest } = alignment;
154
+ return rest.resolved ? { ...rest, name: rest.label, label: undefined } : rest;
155
+ }
152
156
  export async function main(argv) {
153
157
  const args = parseArgs(argv);
154
158
  const open = (file) => /^https?:\/\//.test(file) ? new RemoteFile(file) : new LocalFile(file);
@@ -186,21 +190,18 @@ export async function main(argv) {
186
190
  }
187
191
  const names = args.resolve ? 'resolved' : 'anonymous';
188
192
  const output = args.alignments
189
- ? subgraph.alignments().map(a => ({
190
- ...a,
191
- name: a.name && a.hapStart !== undefined && a.hapEnd !== undefined
192
- ? formatPathName({ ...a.name, fragment: a.hapStart }, a.hapEnd)
193
- : undefined,
194
- start: undefined,
195
- }))
196
- : subgraph.toJSON(args.cigar, { names });
193
+ ? subgraph.alignments().map(alignmentRecord)
194
+ : subgraph.toSubgraphJson({ cigar: args.cigar, names });
197
195
  process.stdout.write(args.format === 'gfa' && !args.alignments
198
- ? await subgraph.toGFA(args.cigar, { names })
196
+ ? await subgraph.toGFA({ cigar: args.cigar, names })
199
197
  : `${JSON.stringify(output)}\n`);
200
198
  if (args.stats) {
201
199
  const { fetches, bytesFetched } = db.sqlite.pager;
200
+ const index = db.index === db.sqlite
201
+ ? ''
202
+ : ` (haplotype index: ${db.index.pager.fetches} fetches, ${db.index.pager.bytesFetched} bytes)`;
202
203
  const { orderedAlignments, lcsAlignments, identificationSteps, identificationFetches, } = subgraph.stats;
203
- process.stderr.write(`Subgraph contains ${subgraph.nodeCount} nodes and ${subgraph.pathCount} paths; ${fetches} fetches, ${bytesFetched} bytes; ${orderedAlignments} ordered + ${lcsAlignments} lcs alignments; identification ${identificationSteps} steps, ${identificationFetches} lookups\n`);
204
+ 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`);
204
205
  }
205
206
  }
206
207
  //# 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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -3,21 +3,21 @@ import { SqliteDatabase } from './sqlite/database.ts';
3
3
  import type { ByteSource } from './filehandle.ts';
4
4
  import type { Pos } from './gbwt/record.ts';
5
5
  import type { GraphName } from './graphName.ts';
6
+ import type { PathName, PathRef } from './pathName.ts';
7
+ import type { QueryOptions } from './query.ts';
6
8
  import type { PagerOptions } from './sqlite/pager.ts';
7
- export interface PathName {
8
- sample: string;
9
- contig: string;
10
- haplotype: number;
11
- fragment: number;
12
- }
13
- export declare const GENERIC_SAMPLE = "_gbwt_ref";
9
+ import type { HaplotypeAlignment, Subgraph } from './subgraph.ts';
14
10
  export declare const SCHEMA_VERSION = "GBZ-base version 4";
11
+ export interface PathFragment {
12
+ path: GbzPath;
13
+ start: number;
14
+ end: number;
15
+ }
15
16
  export declare class SchemaVersionError extends Error {
16
17
  name: string;
17
18
  readonly found: string | undefined;
18
19
  constructor(found: string | undefined);
19
20
  }
20
- export declare function formatPathName(name: PathName, end: number): string;
21
21
  export interface HaplotypeSample {
22
22
  node: number;
23
23
  offset: number;
@@ -55,7 +55,7 @@ export declare class GBZBase {
55
55
  private pathCache;
56
56
  private indexTags;
57
57
  readonly sqlite: SqliteDatabase;
58
- private readonly index;
58
+ readonly index: SqliteDatabase;
59
59
  private constructor();
60
60
  static open(source: ByteSource, opts?: OpenOptions): Promise<GBZBase>;
61
61
  tags(): Promise<Map<string, string>>;
@@ -65,6 +65,15 @@ export declare class GBZBase {
65
65
  getPath(handle: number): Promise<GbzPath | undefined>;
66
66
  findPath(name: PathName): Promise<GbzPath | undefined>;
67
67
  pathsForSample(sample: string): Promise<GbzPath[]>;
68
+ private pathsNamed;
69
+ hasPath(ref: PathRef): Promise<boolean>;
70
+ private pathLengths;
71
+ pathLength(handle: number): Promise<number>;
72
+ private walkPathLength;
73
+ pathFragmentsForRange(ref: PathRef, start: number, end: number): Promise<PathFragment[]>;
74
+ private subgraphForFragment;
75
+ getSubgraphForRange(ref: PathRef, start: number, end: number, opts?: QueryOptions): Promise<Subgraph | undefined>;
76
+ getAlignmentsForRange(ref: PathRef, start: number, end: number, opts?: QueryOptions): Promise<HaplotypeAlignment[]>;
68
77
  graphName(): Promise<GraphName>;
69
78
  hasChainLinks(): Promise<boolean>;
70
79
  get hasHaplotypeIndex(): boolean;
package/dist/db.js CHANGED
@@ -2,8 +2,9 @@ import { ENDMARKER, nodeId, nodeOrientation } from "./gbwt/node.js";
2
2
  import { GbwtRecord, decompressEdges } from "./gbwt/record.js";
3
3
  import { decodeSequence, encodedSequenceLength } from "./gbwt/sequence.js";
4
4
  import { graphNameFromTags } from "./graphName.js";
5
+ import { formatPathName, pathNameFor, toPathQuery } from "./pathName.js";
6
+ import { subgraphInInterval } from "./query.js";
5
7
  import { SqliteDatabase } from "./sqlite/database.js";
6
- export const GENERIC_SAMPLE = '_gbwt_ref';
7
8
  export const SCHEMA_VERSION = 'GBZ-base version 4';
8
9
  export class SchemaVersionError extends Error {
9
10
  name = 'SchemaVersionError';
@@ -15,9 +16,6 @@ export class SchemaVersionError extends Error {
15
16
  this.found = found;
16
17
  }
17
18
  }
18
- export function formatPathName(name, end) {
19
- return `${name.sample}#${name.haplotype}#${name.contig}[${name.fragment}-${end}]`;
20
- }
21
19
  export class GbzRecord {
22
20
  sequenceLen;
23
21
  handle;
@@ -133,6 +131,11 @@ export class GBZBase {
133
131
  if (indexed !== paths) {
134
132
  throw new Error(`haplotype index was built for ${indexed ?? 'an unknown number of'} paths but the graph has ${paths}`);
135
133
  }
134
+ const indexedNodes = db.indexTags.get('haplotype_index_nodes');
135
+ const nodes = await db.tag('nodes');
136
+ if (indexedNodes !== undefined && indexedNodes !== nodes) {
137
+ throw new Error(`haplotype index was built for a graph with ${indexedNodes} nodes but this one has ${nodes}`);
138
+ }
136
139
  }
137
140
  return db;
138
141
  }
@@ -175,6 +178,99 @@ export class GBZBase {
175
178
  async pathsForSample(sample) {
176
179
  return (await this.paths()).filter(p => p.name.sample === sample);
177
180
  }
181
+ async pathsNamed(ref) {
182
+ const name = pathNameFor(toPathQuery(ref), 0);
183
+ return (await this.paths())
184
+ .filter(p => p.name.sample === name.sample &&
185
+ p.name.contig === name.contig &&
186
+ p.name.haplotype === name.haplotype)
187
+ .sort((a, b) => a.name.fragment - b.name.fragment);
188
+ }
189
+ async hasPath(ref) {
190
+ return (await this.pathsNamed(ref)).length > 0;
191
+ }
192
+ pathLengths = new Map();
193
+ pathLength(handle) {
194
+ let length = this.pathLengths.get(handle);
195
+ if (!length) {
196
+ length = this.walkPathLength(handle);
197
+ this.pathLengths.set(handle, length);
198
+ length.catch(() => this.pathLengths.delete(handle));
199
+ }
200
+ return length;
201
+ }
202
+ async walkPathLength(handle) {
203
+ const indexed = this.hasHaplotypeIndex
204
+ ? await this.haplotypeLength(handle)
205
+ : undefined;
206
+ if (indexed === undefined) {
207
+ const last = await this.indexedPosition(handle, Number.MAX_SAFE_INTEGER);
208
+ if (!last) {
209
+ const path = await this.getPath(handle);
210
+ throw new Error(`Path ${path ? formatPathName(path.name, path.name.fragment) : handle} has not been indexed for random access`);
211
+ }
212
+ let length = last.pathOffset;
213
+ let pos = last.pos;
214
+ for (;;) {
215
+ const record = await this.getRecord(pos.node);
216
+ if (!record) {
217
+ throw new Error(`Node ${pos.node} does not exist in the graph`);
218
+ }
219
+ length += record.sequenceLen;
220
+ const next = record.gbwt().lf(pos.offset);
221
+ if (!next || next.node === ENDMARKER) {
222
+ return length;
223
+ }
224
+ pos = next;
225
+ }
226
+ }
227
+ return indexed;
228
+ }
229
+ async pathFragmentsForRange(ref, start, end) {
230
+ if (end <= start) {
231
+ return [];
232
+ }
233
+ const ordered = await this.pathsNamed(ref);
234
+ const covering = ordered.filter(p => p.name.fragment <= start).slice(-1);
235
+ const within = ordered.filter(p => p.name.fragment > start && p.name.fragment < end);
236
+ const fragments = await Promise.all([...covering, ...within].map(async (path) => ({
237
+ path,
238
+ start: path.name.fragment,
239
+ end: path.name.fragment + (await this.pathLength(path.handle)),
240
+ })));
241
+ return fragments.filter(f => start < f.end);
242
+ }
243
+ async subgraphForFragment(fragment, start, end, opts) {
244
+ const lo = Math.max(start, fragment.start);
245
+ const hi = Math.min(end, fragment.end);
246
+ let subgraph;
247
+ if (hi > lo) {
248
+ const { sample, contig, haplotype } = fragment.path.name;
249
+ subgraph = await subgraphInInterval(this, { sample, contig, haplotype }, lo, hi, opts);
250
+ const haplotypes = opts.haplotypes ?? 'all';
251
+ const named = haplotypes === 'all' || haplotypes === 'distinct';
252
+ if (this.hasHaplotypeIndex && named) {
253
+ await subgraph.identifyPaths();
254
+ }
255
+ }
256
+ return subgraph;
257
+ }
258
+ async getSubgraphForRange(ref, start, end, opts = {}) {
259
+ const [fragment] = await this.pathFragmentsForRange(ref, start, end);
260
+ return fragment
261
+ ? this.subgraphForFragment(fragment, start, end, opts)
262
+ : undefined;
263
+ }
264
+ async getAlignmentsForRange(ref, start, end, opts = {}) {
265
+ const result = [];
266
+ for (const fragment of await this.pathFragmentsForRange(ref, start, end)) {
267
+ const subgraph = await this.subgraphForFragment(fragment, start, end, opts);
268
+ if (subgraph) {
269
+ result.push(...subgraph.alignments());
270
+ }
271
+ }
272
+ return result;
273
+ }
178
274
  async graphName() {
179
275
  const gbzTags = new Map();
180
276
  for (const [key, value] of await this.tags()) {
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/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
- export { GBZBase, GENERIC_SAMPLE, GbzRecord, SCHEMA_VERSION, SchemaVersionError, formatPathName, } from './db.ts';
2
- export type { GbzPath, HaplotypeSample, OpenOptions, PathName } from './db.ts';
1
+ export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from './db.ts';
2
+ export type { GbzPath, HaplotypeSample, OpenOptions, PathFragment, } from './db.ts';
3
+ export { GENERIC_SAMPLE, formatPathName, parsePathName } from './pathName.ts';
4
+ export type { PathName, PathQuery, PathRef } from './pathName.ts';
3
5
  export type { ByteSource } from './filehandle.ts';
4
6
  export type { Pos } from './gbwt/record.ts';
5
7
  export { Subgraph } from './subgraph.ts';
6
- export type { HaplotypeAlignment, HaplotypeOutput, PathIdentity, PathPosition, ReferencePath, SnarlOutput, SubgraphJson, SubgraphPath, ToJsonOptions, } from './subgraph.ts';
8
+ export type { AlignmentSpan, HaplotypeAlignment, HaplotypeOutput, PathIdentity, PathPosition, ReferencePath, SnarlOutput, SubgraphJson, SubgraphOptions, SubgraphOutputOptions, SubgraphPath, } from './subgraph.ts';
7
9
  export { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from './query.ts';
8
- export type { PathQuery, QueryOptions } from './query.ts';
10
+ export type { QueryOptions } from './query.ts';
9
11
  export { SqliteDatabase } from './sqlite/database.ts';
10
12
  export type { GraphName } from './graphName.ts';
11
13
  export { weightedLcs } from './lcs.ts';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { GBZBase, GENERIC_SAMPLE, GbzRecord, SCHEMA_VERSION, SchemaVersionError, formatPathName, } from "./db.js";
1
+ export { GBZBase, GbzRecord, SCHEMA_VERSION, SchemaVersionError } from "./db.js";
2
+ export { GENERIC_SAMPLE, formatPathName, parsePathName } from "./pathName.js";
2
3
  export { Subgraph } from "./subgraph.js";
3
4
  export { subgraphAroundNodes, subgraphAtOffset, subgraphBetween, subgraphInInterval, } from "./query.js";
4
5
  export { SqliteDatabase } from "./sqlite/database.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAYxC,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"}
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;AAOhF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAI7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAcxC,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"}
@@ -0,0 +1,17 @@
1
+ export interface PathName {
2
+ sample: string;
3
+ contig: string;
4
+ haplotype: number;
5
+ fragment: number;
6
+ }
7
+ export interface PathQuery {
8
+ sample?: string;
9
+ contig: string;
10
+ haplotype?: number;
11
+ }
12
+ export type PathRef = string | PathQuery;
13
+ export declare const GENERIC_SAMPLE = "_gbwt_ref";
14
+ export declare function formatPathName(name: PathName, end: number): string;
15
+ export declare function parsePathName(name: string): PathQuery;
16
+ export declare function toPathQuery(ref: PathRef): PathQuery;
17
+ export declare function pathNameFor(query: PathQuery, fragment: number): PathName;
@@ -0,0 +1,33 @@
1
+ export const GENERIC_SAMPLE = '_gbwt_ref';
2
+ export function formatPathName(name, end) {
3
+ return `${name.sample}#${name.haplotype}#${name.contig}[${name.fragment}-${end}]`;
4
+ }
5
+ const PAN_SN = /^([^#]+)#(\d+)#([^#]+?)(?:\[\d+-\d+\])?$/;
6
+ const BARE_CONTIG = /^([^#]+?)(?:\[\d+-\d+\])?$/;
7
+ export function parsePathName(name) {
8
+ const panSn = PAN_SN.exec(name);
9
+ if (panSn) {
10
+ return {
11
+ sample: panSn[1],
12
+ haplotype: Number(panSn[2]),
13
+ contig: panSn[3],
14
+ };
15
+ }
16
+ const bare = BARE_CONTIG.exec(name);
17
+ if (bare) {
18
+ return { contig: bare[1] };
19
+ }
20
+ throw new Error(`"${name}" is not a path name; expected "sample#haplotype#contig" or a bare contig`);
21
+ }
22
+ export function toPathQuery(ref) {
23
+ return typeof ref === 'string' ? parsePathName(ref) : ref;
24
+ }
25
+ export function pathNameFor(query, fragment) {
26
+ return {
27
+ sample: query.sample ?? GENERIC_SAMPLE,
28
+ contig: query.contig,
29
+ haplotype: query.haplotype ?? 0,
30
+ fragment,
31
+ };
32
+ }
33
+ //# sourceMappingURL=pathName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathName.js","sourceRoot":"","sources":["../src/pathName.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AAEzC,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,GAAW;IACxD,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,GAAG,CAAA;AACnF,CAAC;AAED,MAAM,MAAM,GAAG,0CAA0C,CAAA;AACzD,MAAM,WAAW,GAAG,4BAA4B,CAAA;AAEhD,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;YACjB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAE;SAClB,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,CAAA;IAC7B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,IAAI,IAAI,2EAA2E,CACpF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,QAAgB;IAC5D,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,cAAc;QACtC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC;QAC/B,QAAQ;KACT,CAAA;AACH,CAAC"}