@databio/gtars 0.7.0 → 0.8.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/gtars_js.d.ts CHANGED
@@ -25,6 +25,102 @@ export class ChromosomeStatistics {
25
25
  readonly start_nucleotide_position: number;
26
26
  }
27
27
 
28
+ /**
29
+ * Builder for computing consensus regions from multiple RegionSet objects.
30
+ *
31
+ * Usage from JS:
32
+ * ```js
33
+ * const cb = new ConsensusBuilder();
34
+ * cb.add(rs1);
35
+ * cb.add(rs2);
36
+ * cb.add(rs3);
37
+ * const result = cb.compute(); // [{chr, start, end, count}, ...]
38
+ * ```
39
+ */
40
+ export class ConsensusBuilder {
41
+ free(): void;
42
+ [Symbol.dispose](): void;
43
+ add(set: RegionSet): void;
44
+ compute(): any;
45
+ constructor();
46
+ }
47
+
48
+ export class GeneModel {
49
+ free(): void;
50
+ [Symbol.dispose](): void;
51
+ /**
52
+ * Construct a GeneModel from JS arrays of region tuples.
53
+ *
54
+ * Each array contains `[chr, start, end]` or `[chr, start, end, strand]` tuples.
55
+ * `threeUtr` and `fiveUtr` are optional (pass `null`/`undefined`).
56
+ */
57
+ constructor(genes: any, exons: any, three_utr: any, five_utr: any);
58
+ }
59
+
60
+ export class GenomicDistAnnotation {
61
+ private constructor();
62
+ free(): void;
63
+ [Symbol.dispose](): void;
64
+ /**
65
+ * Load a GenomicDistAnnotation from GDA binary bytes.
66
+ */
67
+ static fromBin(bytes: Uint8Array): GenomicDistAnnotation;
68
+ /**
69
+ * Get the gene model as a JsGeneModel.
70
+ *
71
+ * Note: this clones the gene model data since WASM ownership requires it.
72
+ */
73
+ geneModel(): GeneModel;
74
+ /**
75
+ * Build a PartitionList from the gene model and provided chrom sizes.
76
+ *
77
+ * `chrom_sizes` should be a JS object like `{"chr1": 249250621, ...}`.
78
+ */
79
+ partitionList(core_prom_size: number, prox_prom_size: number, chrom_sizes: any): PartitionList;
80
+ /**
81
+ * Derive a TssIndex from gene starts + strand.
82
+ *
83
+ * Plus/Unstranded genes → TSS at start, Minus genes → TSS at end.
84
+ */
85
+ tssIndex(): TssIndex;
86
+ }
87
+
88
+ /**
89
+ * A LOLA region database for enrichment testing.
90
+ *
91
+ * Built in-memory from region data — no filesystem needed.
92
+ */
93
+ export class LolaRegionDB {
94
+ free(): void;
95
+ [Symbol.dispose](): void;
96
+ /**
97
+ * Extract region sets by 0-based indices as a RegionSetList.
98
+ *
99
+ * @param indices - Optional array of 0-based indices. If omitted, returns all.
100
+ */
101
+ getRegionSets(indices?: Uint32Array | null): RegionSetList;
102
+ /**
103
+ * List region set filenames.
104
+ */
105
+ listRegionSets(): string[];
106
+ /**
107
+ * Create a LolaRegionDB from an array of {regions, name} objects.
108
+ *
109
+ * @param entries - Array of { regions: [["chr1", 100, 200], ...], name: "filename.bed" }
110
+ */
111
+ constructor(entries: any);
112
+ /**
113
+ * Collection-level annotations from the RegionDB.
114
+ *
115
+ * @returns Array of objects with keys: collectionname, collector, date, source, description
116
+ */
117
+ readonly collectionAnno: any;
118
+ /**
119
+ * Number of region sets in this database.
120
+ */
121
+ readonly numRegionSets: number;
122
+ }
123
+
28
124
  export class Overlapper {
29
125
  free(): void;
30
126
  [Symbol.dispose](): void;
@@ -33,6 +129,19 @@ export class Overlapper {
33
129
  constructor(universe: any, backend: string);
34
130
  }
35
131
 
132
+ export class PartitionList {
133
+ private constructor();
134
+ free(): void;
135
+ [Symbol.dispose](): void;
136
+ /**
137
+ * Build a PartitionList from a GeneModel.
138
+ *
139
+ * `chromSizes` is an optional JS object `{"chr1": 249250621, ...}` for
140
+ * trimming promoters at chromosome boundaries.
141
+ */
142
+ static fromGeneModel(model: GeneModel, core_prom_size: number, prox_prom_size: number, chrom_sizes: any): PartitionList;
143
+ }
144
+
36
145
  export class RegionDistribution {
37
146
  private constructor();
38
147
  free(): void;
@@ -42,9 +151,27 @@ export class RegionDistribution {
42
151
  export class RegionSet {
43
152
  free(): void;
44
153
  [Symbol.dispose](): void;
154
+ calcNearestNeighbors(): any;
155
+ calcNeighborDistances(): any;
156
+ calcWidths(): Uint32Array;
45
157
  chromosomeStatistics(): any;
158
+ concat(other: RegionSet): RegionSet;
159
+ disjoin(): RegionSet;
160
+ flank(width: number, use_start: boolean, both: boolean): RegionSet;
161
+ gaps(): RegionSet;
162
+ intersect(other: RegionSet): RegionSet;
163
+ jaccard(other: RegionSet): number;
164
+ narrow(start?: number | null, end?: number | null, width?: number | null): RegionSet;
46
165
  constructor(regions: any);
166
+ pintersect(other: RegionSet): RegionSet;
167
+ promoters(upstream: number, downstream: number): RegionSet;
168
+ reduce(): RegionSet;
47
169
  regionDistribution(n_bins: number): any;
170
+ resize(width: number, fix: string): RegionSet;
171
+ setdiff(other: RegionSet): RegionSet;
172
+ shift(offset: bigint): RegionSet;
173
+ trim(chrom_sizes: any): RegionSet;
174
+ union(other: RegionSet): RegionSet;
48
175
  readonly classify: BedClassificationOutput;
49
176
  readonly firstRegion: string;
50
177
  readonly identifier: string;
@@ -53,6 +180,56 @@ export class RegionSet {
53
180
  readonly numberOfRegions: number;
54
181
  }
55
182
 
183
+ /**
184
+ * A collection of RegionSets — the gtars equivalent of GRangesList.
185
+ */
186
+ export class RegionSetList {
187
+ private constructor();
188
+ free(): void;
189
+ [Symbol.dispose](): void;
190
+ /**
191
+ * Flatten all region sets into a single RegionSet (no merging).
192
+ */
193
+ concat(): RegionSet;
194
+ /**
195
+ * Get a region set by 0-based index.
196
+ */
197
+ get(index: number): RegionSet;
198
+ /**
199
+ * Compute pairwise Jaccard similarity for all pairs of region sets.
200
+ *
201
+ * Returns { matrix: number[][], names: string[] | null }.
202
+ */
203
+ pairwiseJaccard(): any;
204
+ /**
205
+ * Number of region sets in this list.
206
+ */
207
+ readonly length: number;
208
+ /**
209
+ * Get the names of the region sets, or null if unnamed.
210
+ */
211
+ readonly names: any;
212
+ }
213
+
214
+ export class SignalMatrix {
215
+ free(): void;
216
+ [Symbol.dispose](): void;
217
+ /**
218
+ * Load a SignalMatrix from packed binary bytes.
219
+ */
220
+ static fromBin(bytes: Uint8Array): SignalMatrix;
221
+ /**
222
+ * Construct a SignalMatrix from JS data.
223
+ *
224
+ * - `regionIds`: array of strings in `"chr_start_end"` format
225
+ * - `conditionNames`: array of condition/cell-type names
226
+ * - `values`: flat row-major array of signal values
227
+ * - `nRegions`: number of rows (regions)
228
+ * - `nConditions`: number of columns (conditions)
229
+ */
230
+ constructor(region_ids: any, condition_names: any, values: Float64Array, n_regions: number, n_conditions: number);
231
+ }
232
+
56
233
  export class Tokenizer {
57
234
  free(): void;
58
235
  [Symbol.dispose](): void;
@@ -80,6 +257,48 @@ export class Tokenizer {
80
257
  readonly vocabSize: number;
81
258
  }
82
259
 
260
+ export class TssIndex {
261
+ free(): void;
262
+ [Symbol.dispose](): void;
263
+ /**
264
+ * Calculate signed distance from each query region to its nearest feature.
265
+ *
266
+ * Positive = feature is downstream, negative = feature is upstream.
267
+ * Returns an array where `null` indicates no features on that chromosome
268
+ * (sentinel `i64::MAX` in Rust → `null` in JS).
269
+ */
270
+ calcFeatureDistances(query: RegionSet): any;
271
+ /**
272
+ * Calculate unsigned distance from each query region to its nearest feature midpoint.
273
+ *
274
+ * Returns an array where `null` indicates no features on that chromosome
275
+ * (sentinel `u32::MAX` in Rust → `null` in JS).
276
+ */
277
+ calcTssDistances(query: RegionSet): any;
278
+ /**
279
+ * Build a TssIndex from a RegionSet of features (e.g. TSS sites).
280
+ *
281
+ * Clones the inner RegionSet and computes sorted midpoints per chromosome.
282
+ */
283
+ constructor(features: RegionSet);
284
+ }
285
+
286
+ /**
287
+ * Compute observed vs expected partition enrichment.
288
+ */
289
+ export function calcExpectedPartitions(region_set: RegionSet, partition_list: PartitionList, chrom_sizes: any, bp_proportion: boolean): any;
290
+
291
+ /**
292
+ * Classify query regions into partitions.
293
+ */
294
+ export function calcPartitions(region_set: RegionSet, partition_list: PartitionList, bp_proportion: boolean): any;
295
+
296
+ /**
297
+ * Compute summary signal: overlap query regions with a signal matrix,
298
+ * take MAX per condition, and compute boxplot statistics.
299
+ */
300
+ export function calcSummarySignal(region_set: RegionSet, signal_matrix: SignalMatrix): any;
301
+
83
302
  /**
84
303
  * Canonicalize a JSON string according to RFC-8785.
85
304
  *
@@ -93,6 +312,15 @@ export class Tokenizer {
93
312
  */
94
313
  export function canonicalizeJsonString(json_str: string): string;
95
314
 
315
+ /**
316
+ * Check whether the universe is appropriate for the given user sets.
317
+ *
318
+ * @param userSets - Array of arrays of [chr, start, end] tuples
319
+ * @param universe - Array of [chr, start, end] tuples
320
+ * @returns Object with column arrays: userSet, totalRegions, regionsInUniverse, coverage, manyToMany, warnings
321
+ */
322
+ export function checkUniverseAppropriateness(user_sets: any, universe_regions: any): any;
323
+
96
324
  /**
97
325
  * Compute the MD5 digest of a string.
98
326
  *
@@ -243,6 +471,18 @@ export function fastaHasherUpdate(handle: number, chunk: Uint8Array): void;
243
471
 
244
472
  export function greet(name: string): void;
245
473
 
474
+ /**
475
+ * Run LOLA enrichment analysis.
476
+ *
477
+ * @param userSets - Array of arrays of [chr, start, end] tuples
478
+ * @param universe - Array of [chr, start, end] tuples
479
+ * @param regionDb - A LolaRegionDB object
480
+ * @param minOverlap - Minimum bp overlap (default 1)
481
+ * @param direction - "enrichment" or "depletion" (default "enrichment")
482
+ * @returns Object with column arrays: userSet, dbSet, pValueLog, oddsRatio, support, etc.
483
+ */
484
+ export function runLOLA(user_sets: any, universe_regions: any, region_db: LolaRegionDB, min_overlap?: number | null, direction?: string | null): any;
485
+
246
486
  /**
247
487
  * Compute a sequence digest (sha512t24u) from raw sequence data.
248
488
  *
@@ -280,11 +520,36 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
280
520
 
281
521
  export interface InitOutput {
282
522
  readonly memory: WebAssembly.Memory;
283
- readonly greet: (a: number, b: number) => void;
523
+ readonly __wbg_genomicdistannotation_free: (a: number, b: number) => void;
524
+ readonly canonicalizeJsonString: (a: number, b: number) => [number, number, number, number];
525
+ readonly computeMd5: (a: number, b: number) => [number, number];
526
+ readonly computeSha512t24u: (a: number, b: number) => [number, number];
527
+ readonly digestSeqcol: (a: number, b: number) => [number, number, number];
528
+ readonly fastaHasherFinish: (a: number) => [number, number, number];
529
+ readonly fastaHasherFree: (a: number) => number;
530
+ readonly fastaHasherNew: () => number;
531
+ readonly fastaHasherProgress: (a: number) => [number, number, number];
532
+ readonly fastaHasherUpdate: (a: number, b: number, c: number) => [number, number];
533
+ readonly genomicdistannotation_fromBin: (a: number, b: number) => [number, number, number];
534
+ readonly genomicdistannotation_geneModel: (a: number) => number;
535
+ readonly genomicdistannotation_partitionList: (a: number, b: number, c: number, d: any) => [number, number, number];
536
+ readonly genomicdistannotation_tssIndex: (a: number) => [number, number, number];
537
+ readonly sequenceDigest: (a: number, b: number) => [number, number];
538
+ readonly sequenceMd5: (a: number, b: number) => [number, number];
539
+ readonly __wbg_lolaregiondb_free: (a: number, b: number) => void;
540
+ readonly checkUniverseAppropriateness: (a: any, b: any) => [number, number, number];
541
+ readonly lolaregiondb_collectionAnno: (a: number) => [number, number, number];
542
+ readonly lolaregiondb_getRegionSets: (a: number, b: number, c: number) => number;
543
+ readonly lolaregiondb_listRegionSets: (a: number) => [number, number];
544
+ readonly lolaregiondb_new: (a: any) => [number, number, number];
545
+ readonly lolaregiondb_numRegionSets: (a: number) => number;
546
+ readonly runLOLA: (a: any, b: any, c: number, d: number, e: number, f: number) => [number, number, number];
284
547
  readonly __wbg_bedclassificationoutput_free: (a: number, b: number) => void;
285
548
  readonly __wbg_chromosomestatistics_free: (a: number, b: number) => void;
549
+ readonly __wbg_consensusbuilder_free: (a: number, b: number) => void;
286
550
  readonly __wbg_regiondistribution_free: (a: number, b: number) => void;
287
551
  readonly __wbg_regionset_free: (a: number, b: number) => void;
552
+ readonly __wbg_regionsetlist_free: (a: number, b: number) => void;
288
553
  readonly bedclassificationoutput_bed_compliance: (a: number) => [number, number];
289
554
  readonly bedclassificationoutput_compliant_columns: (a: number) => number;
290
555
  readonly bedclassificationoutput_data_format: (a: number) => [number, number];
@@ -296,21 +561,47 @@ export interface InitOutput {
296
561
  readonly chromosomestatistics_median_region_length: (a: number) => number;
297
562
  readonly chromosomestatistics_number_of_regions: (a: number) => number;
298
563
  readonly chromosomestatistics_start_nucleotide_position: (a: number) => number;
564
+ readonly consensusbuilder_add: (a: number, b: number) => void;
565
+ readonly consensusbuilder_compute: (a: number) => [number, number, number];
566
+ readonly consensusbuilder_new: () => number;
567
+ readonly regionset_calcNearestNeighbors: (a: number) => [number, number, number];
568
+ readonly regionset_calcNeighborDistances: (a: number) => [number, number, number];
569
+ readonly regionset_calcWidths: (a: number) => [number, number];
299
570
  readonly regionset_chromosomeStatistics: (a: number) => [number, number, number];
300
- readonly regionset_classify: (a: number) => number;
571
+ readonly regionset_classify: (a: number) => [number, number, number];
572
+ readonly regionset_concat: (a: number, b: number) => number;
573
+ readonly regionset_disjoin: (a: number) => number;
301
574
  readonly regionset_firstRegion: (a: number) => [number, number];
575
+ readonly regionset_flank: (a: number, b: number, c: number, d: number) => number;
576
+ readonly regionset_gaps: (a: number) => number;
302
577
  readonly regionset_identifier: (a: number) => [number, number];
578
+ readonly regionset_intersect: (a: number, b: number) => number;
579
+ readonly regionset_jaccard: (a: number, b: number) => number;
303
580
  readonly regionset_meanRegionWidth: (a: number) => number;
581
+ readonly regionset_narrow: (a: number, b: number, c: number, d: number) => number;
304
582
  readonly regionset_new: (a: any) => [number, number, number];
305
583
  readonly regionset_nucleotidesLength: (a: number) => number;
306
584
  readonly regionset_numberOfRegions: (a: number) => number;
585
+ readonly regionset_pintersect: (a: number, b: number) => number;
586
+ readonly regionset_promoters: (a: number, b: number, c: number) => number;
587
+ readonly regionset_reduce: (a: number) => number;
307
588
  readonly regionset_regionDistribution: (a: number, b: number) => [number, number, number];
589
+ readonly regionset_resize: (a: number, b: number, c: number, d: number) => number;
590
+ readonly regionset_setdiff: (a: number, b: number) => number;
591
+ readonly regionset_shift: (a: number, b: bigint) => number;
592
+ readonly regionset_trim: (a: number, b: any) => [number, number, number];
593
+ readonly regionset_union: (a: number, b: number) => number;
594
+ readonly regionsetlist_concat: (a: number) => number;
595
+ readonly regionsetlist_get: (a: number, b: number) => [number, number, number];
596
+ readonly regionsetlist_length: (a: number) => number;
597
+ readonly regionsetlist_names: (a: number) => any;
598
+ readonly regionsetlist_pairwiseJaccard: (a: number) => [number, number, number];
308
599
  readonly chromosomestatistics_minimum_region_length: (a: number) => number;
309
600
  readonly __wbg_overlapper_free: (a: number, b: number) => void;
601
+ readonly __wbg_tokenizer_free: (a: number, b: number) => void;
310
602
  readonly overlapper_find: (a: number, b: any) => [number, number, number];
311
603
  readonly overlapper_get_backend: (a: number) => [number, number];
312
604
  readonly overlapper_new: (a: any, b: number, c: number) => [number, number, number];
313
- readonly __wbg_tokenizer_free: (a: number, b: number) => void;
314
605
  readonly tokenizer_bosToken: (a: number) => [number, number];
315
606
  readonly tokenizer_bosTokenId: (a: number) => number;
316
607
  readonly tokenizer_clsToken: (a: number) => [number, number];
@@ -333,17 +624,21 @@ export interface InitOutput {
333
624
  readonly tokenizer_unkToken: (a: number) => [number, number];
334
625
  readonly tokenizer_unkTokenId: (a: number) => number;
335
626
  readonly tokenizer_vocabSize: (a: number) => number;
336
- readonly canonicalizeJsonString: (a: number, b: number) => [number, number, number, number];
337
- readonly computeMd5: (a: number, b: number) => [number, number];
338
- readonly computeSha512t24u: (a: number, b: number) => [number, number];
339
- readonly digestSeqcol: (a: number, b: number) => [number, number, number];
340
- readonly fastaHasherFinish: (a: number) => [number, number, number];
341
- readonly fastaHasherFree: (a: number) => number;
342
- readonly fastaHasherNew: () => number;
343
- readonly fastaHasherProgress: (a: number) => [number, number, number];
344
- readonly fastaHasherUpdate: (a: number, b: number, c: number) => [number, number];
345
- readonly sequenceDigest: (a: number, b: number) => [number, number];
346
- readonly sequenceMd5: (a: number, b: number) => [number, number];
627
+ readonly __wbg_genemodel_free: (a: number, b: number) => void;
628
+ readonly __wbg_partitionlist_free: (a: number, b: number) => void;
629
+ readonly __wbg_tssindex_free: (a: number, b: number) => void;
630
+ readonly calcExpectedPartitions: (a: number, b: number, c: any, d: number) => [number, number, number];
631
+ readonly calcPartitions: (a: number, b: number, c: number) => [number, number, number];
632
+ readonly genemodel_new: (a: any, b: any, c: any, d: any) => [number, number, number];
633
+ readonly partitionlist_fromGeneModel: (a: number, b: number, c: number, d: any) => [number, number, number];
634
+ readonly tssindex_calcFeatureDistances: (a: number, b: number) => [number, number, number];
635
+ readonly tssindex_calcTssDistances: (a: number, b: number) => [number, number, number];
636
+ readonly tssindex_new: (a: number) => [number, number, number];
637
+ readonly __wbg_signalmatrix_free: (a: number, b: number) => void;
638
+ readonly calcSummarySignal: (a: number, b: number) => [number, number, number];
639
+ readonly greet: (a: number, b: number) => void;
640
+ readonly signalmatrix_fromBin: (a: number, b: number) => [number, number, number];
641
+ readonly signalmatrix_new: (a: any, b: any, c: number, d: number, e: number, f: number) => [number, number, number];
347
642
  readonly __wbindgen_malloc: (a: number, b: number) => number;
348
643
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
349
644
  readonly __wbindgen_exn_store: (a: number) => void;
@@ -351,6 +646,7 @@ export interface InitOutput {
351
646
  readonly __wbindgen_externrefs: WebAssembly.Table;
352
647
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
353
648
  readonly __externref_table_dealloc: (a: number) => void;
649
+ readonly __externref_drop_slice: (a: number, b: number) => void;
354
650
  readonly __wbindgen_start: () => void;
355
651
  }
356
652