@gmod/gbz-base 2.2.0 → 2.4.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.
@@ -19,6 +19,7 @@ export declare class SqliteDatabase {
19
19
  rootPage(name: string): number;
20
20
  indexOn(tableName: string): number;
21
21
  byRowid(table: string, rowid: number): Promise<SqlValue[] | undefined>;
22
+ prefetchRows(table: string, lo: number, hi: number): Promise<void>;
22
23
  scan(table: string): AsyncGenerator<{
23
24
  rowid: number;
24
25
  values: SqlValue[];
@@ -65,6 +65,9 @@ export class SqliteDatabase {
65
65
  byRowid(table, rowid) {
66
66
  return this.btree.tableRowid(this.rootPage(table), rowid);
67
67
  }
68
+ prefetchRows(table, lo, hi) {
69
+ return this.btree.prefetchRowidRange(this.rootPage(table), lo, hi);
70
+ }
68
71
  scan(table) {
69
72
  return this.btree.tableScan(this.rootPage(table));
70
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/sqlite/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/sqlite/database.ts"],"names":[],"mappings":"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"}
@@ -71,21 +71,56 @@ export interface SubgraphOptions {
71
71
  limit?: number | undefined;
72
72
  signal?: AbortSignal | undefined;
73
73
  }
74
+ export declare class SubgraphLimitError extends Error {
75
+ name: string;
76
+ readonly limit: number;
77
+ readonly windowBp: number | undefined;
78
+ readonly walkedBp: number | undefined;
79
+ constructor(limit: number, walk?: {
80
+ windowBp: number;
81
+ walkedBp: number;
82
+ });
83
+ }
84
+ export type ChainEnd = 'in-fragment sample' | 'identified sibling' | 'out-of-window sample' | 'bound' | 'endmarker' | 'cycle';
85
+ export interface ChainRecord {
86
+ fragments: number;
87
+ steps: number;
88
+ seeks: number;
89
+ reentries: number;
90
+ twinLandings: number;
91
+ end: ChainEnd;
92
+ pathHandle: number | undefined;
93
+ }
94
+ export interface IdentificationStats {
95
+ interval: number;
96
+ scans: [number, number][];
97
+ windowSamples: number;
98
+ fragmentLengths: number[];
99
+ companionSeeks: number;
100
+ companionMisses: number;
101
+ graphLookups: number;
102
+ graphFetches: number;
103
+ chains: ChainRecord[];
104
+ }
105
+ interface SubgraphStats {
106
+ orderedAlignments: number;
107
+ lcsAlignments: number;
108
+ identificationSteps: number;
109
+ identificationFetches: number;
110
+ identification: IdentificationStats;
111
+ }
74
112
  export declare class Subgraph {
75
113
  private records;
76
114
  private paths;
115
+ private twinStarts;
77
116
  private refId;
78
117
  private refPath;
79
118
  private refHandle;
80
119
  private refInterval;
81
120
  private refIndexCache;
82
121
  private refPrefixCache;
83
- readonly stats: {
84
- orderedAlignments: number;
85
- lcsAlignments: number;
86
- identificationSteps: number;
87
- identificationFetches: number;
88
- };
122
+ private walkedBp;
123
+ readonly stats: SubgraphStats;
89
124
  private db;
90
125
  private readonly limit;
91
126
  private readonly signal;
@@ -110,10 +145,13 @@ export declare class Subgraph {
110
145
  inserted: number;
111
146
  removed: number;
112
147
  }>;
148
+ prefetchReferenceWalk(reference: ReferencePath, len: number): Promise<void>;
113
149
  aroundInterval(start: PathPosition, len: number, context: number): Promise<{
114
150
  inserted: number;
115
151
  removed: number;
116
152
  }>;
153
+ get referenceWalkedBp(): number | undefined;
154
+ private walkInterval;
117
155
  aroundNodes(nodes: Iterable<number>, context: number): Promise<{
118
156
  inserted: number;
119
157
  removed: number;
@@ -127,6 +165,7 @@ export declare class Subgraph {
127
165
  private findCoveringSnarl;
128
166
  extractPaths(reference: ReferencePath | undefined, output: HaplotypeOutput): void;
129
167
  private distinctPaths;
168
+ keepHaplotypes(wanted: (name: PathName) => boolean): void;
130
169
  identifyPaths(): Promise<void>;
131
170
  private refIndex;
132
171
  private refPrefix;
@@ -145,3 +184,4 @@ export declare class Subgraph {
145
184
  toGFA(opts?: SubgraphOutputOptions): Promise<string>;
146
185
  toSubgraphJson(opts?: SubgraphOutputOptions): SubgraphJson;
147
186
  }
187
+ export {};