@gmod/bam 7.3.4 → 7.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.
- package/dist/bai.js +10 -7
- package/dist/bai.js.map +1 -1
- package/dist/bamFile.d.ts +25 -6
- package/dist/bamFile.js +91 -33
- package/dist/bamFile.js.map +1 -1
- package/dist/csi.js +2 -2
- package/dist/csi.js.map +1 -1
- package/dist/htsget.js +2 -2
- package/dist/htsget.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/record.d.ts +2 -1
- package/dist/record.js +105 -35
- package/dist/record.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.js +11 -12
- package/dist/util.js.map +1 -1
- package/esm/bai.js +10 -7
- package/esm/bai.js.map +1 -1
- package/esm/bamFile.d.ts +25 -6
- package/esm/bamFile.js +91 -33
- package/esm/bamFile.js.map +1 -1
- package/esm/csi.js +2 -2
- package/esm/csi.js.map +1 -1
- package/esm/htsget.js +2 -2
- package/esm/htsget.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/record.d.ts +2 -1
- package/esm/record.js +105 -35
- package/esm/record.js.map +1 -1
- package/esm/util.d.ts +1 -1
- package/esm/util.js +11 -11
- package/esm/util.js.map +1 -1
- package/package.json +2 -1
- package/src/bai.ts +15 -8
- package/src/bamFile.ts +117 -40
- package/src/csi.ts +10 -2
- package/src/htsget.ts +6 -2
- package/src/index.ts +1 -1
- package/src/record.ts +115 -42
- package/src/util.ts +24 -14
package/dist/record.js
CHANGED
|
@@ -5,15 +5,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const cigar_ts_1 = require("./cigar.js");
|
|
7
7
|
const constants_ts_1 = __importDefault(require("./constants.js"));
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
//
|
|
8
|
+
const SEQRET = '=ACMGRSVTWYHKDBN';
|
|
9
|
+
const SEQRET_DECODER = SEQRET.split('');
|
|
10
|
+
const SEQRET_CODES = Uint8Array.from(SEQRET, c => c.charCodeAt(0));
|
|
11
|
+
// Both bases of a SEQ byte, precomputed for all 256 bytes so decoding advances a
|
|
12
|
+
// byte at a time. Two forms because `seq` has two strategies (see below): packed
|
|
13
|
+
// ASCII codes for a single Uint16Array store, and the 2-char string to append.
|
|
14
|
+
// Byte order within the u16 depends on host endianness.
|
|
15
|
+
const LITTLE_ENDIAN = new Uint16Array(Uint8Array.of(1, 0).buffer)[0] === 1;
|
|
16
|
+
const SEQRET_PAIR_CODES = new Uint16Array(256);
|
|
17
|
+
const SEQRET_PAIR_STRINGS = new Array(256);
|
|
18
|
+
for (let hi = 0; hi < 16; hi++) {
|
|
19
|
+
for (let lo = 0; lo < 16; lo++) {
|
|
20
|
+
const h = SEQRET_CODES[hi];
|
|
21
|
+
const l = SEQRET_CODES[lo];
|
|
22
|
+
SEQRET_PAIR_CODES[(hi << 4) | lo] = LITTLE_ENDIAN
|
|
23
|
+
? h | (l << 8)
|
|
24
|
+
: (h << 8) | l;
|
|
25
|
+
SEQRET_PAIR_STRINGS[(hi << 4) | lo] =
|
|
26
|
+
SEQRET_DECODER[hi] + SEQRET_DECODER[lo];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Read length at which building a byte buffer and calling TextDecoder once
|
|
30
|
+
// overtakes plain string concatenation. Below it concat wins by 2-4x (rope
|
|
31
|
+
// building is cheap and the decode has fixed overhead); above it the decoder
|
|
32
|
+
// wins by 5-8x. Measured crossover is ~300bp, i.e. just past typical Illumina
|
|
33
|
+
// read lengths.
|
|
34
|
+
const SEQ_DECODER_THRESHOLD = 300;
|
|
35
|
+
// Precomputed pair orientation strings, indexed by
|
|
36
|
+
// ((flags >> 4) & 0x7) | (selfIsLeft ? 8 : 0)
|
|
37
|
+
// bits 0-2 are flag bits 0x10 (self reverse), 0x20 (mate reverse), 0x40 (read1);
|
|
38
|
+
// bit 3 is whether this read is the leftmost of the pair. The read2 flag (0x80)
|
|
39
|
+
// is deliberately not consulted — "not read1" is what decides the numbering, so
|
|
40
|
+
// a record with neither flag set reads the same as read2.
|
|
12
41
|
// prettier-ignore
|
|
13
42
|
const PAIR_ORIENTATION_TABLE = [
|
|
14
|
-
'F F ', 'F R ', 'R F ', 'R R ', 'F2F1', 'F2R1', 'R2F1', 'R2R1',
|
|
15
43
|
'F1F2', 'F1R2', 'R1F2', 'R1R2', 'F2F1', 'F2R1', 'R2F1', 'R2R1',
|
|
16
|
-
'F F ', 'R F ', 'F R ', 'R R ', 'F1F2', 'R1F2', 'F1R2', 'R1R2',
|
|
17
44
|
'F2F1', 'R2F1', 'F2R1', 'R2R1', 'F1F2', 'R1F2', 'F1R2', 'R1R2',
|
|
18
45
|
];
|
|
19
46
|
const ASCII_CIGAR_CODES = [
|
|
@@ -23,10 +50,19 @@ const textDecoder = new TextDecoder();
|
|
|
23
50
|
// Bitmask for ops that consume ref: M=0, D=2, N=3, P=6, ==7, X=8
|
|
24
51
|
// Binary: 0b111001101 = 0x1CD
|
|
25
52
|
const CIGAR_CONSUMES_REF_MASK = 0x1cd;
|
|
53
|
+
function isNumericCigar(value) {
|
|
54
|
+
return (value instanceof Uint32Array ||
|
|
55
|
+
value instanceof Int32Array ||
|
|
56
|
+
Array.isArray(value));
|
|
57
|
+
}
|
|
26
58
|
// Decode a 'B' (array) tag value starting at `p` (the byte after type+subtype+
|
|
27
59
|
// count). When the data is naturally aligned we return a typed-array view over
|
|
28
60
|
// the underlying buffer (zero-copy); otherwise we copy element-by-element since
|
|
29
|
-
// typed-array views require alignment.
|
|
61
|
+
// typed-array views require alignment. The copy target is a plain array, not a
|
|
62
|
+
// typed one: benchmarking the unaligned path found number[] fills faster below
|
|
63
|
+
// ~10k elements and reads at least as fast at every size, so the only thing a
|
|
64
|
+
// typed copy would buy is half the retained bytes. Shared by getTag and the
|
|
65
|
+
// full-tag parse.
|
|
30
66
|
function decodeBArrayTag(ba, dataView, p, Btype, limit) {
|
|
31
67
|
const absOffset = ba.byteOffset + p;
|
|
32
68
|
switch (Btype) {
|
|
@@ -317,7 +353,9 @@ class BamRecord {
|
|
|
317
353
|
_computeTags() {
|
|
318
354
|
const blockEnd = this._end;
|
|
319
355
|
const ba = this._byteArray;
|
|
320
|
-
|
|
356
|
+
// null prototype: tag names come from the file, so a read carrying a
|
|
357
|
+
// "constructor" or "toString" tag must not resolve to Object.prototype's
|
|
358
|
+
const tags = Object.create(null);
|
|
321
359
|
let p = this.tagsStart;
|
|
322
360
|
while (p < blockEnd) {
|
|
323
361
|
const tag = String.fromCharCode(ba[p], ba[p + 1]);
|
|
@@ -414,6 +452,8 @@ class BamRecord {
|
|
|
414
452
|
const absOffset = this._byteArray.byteOffset + p;
|
|
415
453
|
if (absOffset % 4 === 0 && numCigarOps > 50) {
|
|
416
454
|
const cigarView = new Uint32Array(this._byteArray.buffer, absOffset, numCigarOps);
|
|
455
|
+
// the view we need to sum is exactly what NUMERIC_CIGAR would build, so
|
|
456
|
+
// seed its cache rather than making it construct a second one
|
|
417
457
|
this._cachedNumericCigar = cigarView;
|
|
418
458
|
let lref = 0;
|
|
419
459
|
for (let c = 0; c < numCigarOps; ++c) {
|
|
@@ -437,8 +477,10 @@ class BamRecord {
|
|
|
437
477
|
const numCigarOps = flag_nc & 0xffff;
|
|
438
478
|
const p = this.b0 + this.read_name_length;
|
|
439
479
|
if (this._isCGTagPattern(p, numCigarOps)) {
|
|
440
|
-
|
|
441
|
-
|
|
480
|
+
// getTag, not this.tags: the real CIGAR lives in one tag, so there's no
|
|
481
|
+
// reason to decode every other tag on the record to reach it
|
|
482
|
+
const cg = this.getTag('CG');
|
|
483
|
+
return isNumericCigar(cg) ? cg : new Uint32Array(0);
|
|
442
484
|
}
|
|
443
485
|
const absOffset = this._byteArray.byteOffset + p;
|
|
444
486
|
if (absOffset % 4 === 0 && numCigarOps > 50) {
|
|
@@ -489,37 +531,65 @@ class BamRecord {
|
|
|
489
531
|
const p = this.seqStart;
|
|
490
532
|
return this._byteArray.subarray(p, p + this.num_seq_bytes);
|
|
491
533
|
}
|
|
534
|
+
// Decode two bases per iteration off a 256-entry table. Building an array of
|
|
535
|
+
// 1-char strings and join()ing it — the obvious approach — is 3x slower at
|
|
536
|
+
// 100bp and 35x slower at 15kb.
|
|
492
537
|
get seq() {
|
|
493
538
|
const len = this.seq_length;
|
|
494
|
-
const
|
|
495
|
-
const
|
|
496
|
-
const
|
|
497
|
-
let
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
539
|
+
const ba = this._byteArray;
|
|
540
|
+
const p = this.seqStart;
|
|
541
|
+
const nPairs = len >> 1;
|
|
542
|
+
let seq;
|
|
543
|
+
if (len < SEQ_DECODER_THRESHOLD) {
|
|
544
|
+
seq = '';
|
|
545
|
+
for (let j = 0; j < nPairs; j++) {
|
|
546
|
+
seq += SEQRET_PAIR_STRINGS[ba[p + j]];
|
|
547
|
+
}
|
|
548
|
+
if (len & 1) {
|
|
549
|
+
seq += SEQRET_DECODER[(ba[p + nPairs] & 0xf0) >> 4];
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
else {
|
|
553
|
+
// round up to an even length so the Uint16Array view spans every pair; a
|
|
554
|
+
// trailing odd base is written as a single byte and trimmed on decode
|
|
555
|
+
const out = new Uint8Array((len + 1) & ~1);
|
|
556
|
+
const pairs = new Uint16Array(out.buffer);
|
|
557
|
+
for (let j = 0; j < nPairs; j++) {
|
|
558
|
+
pairs[j] = SEQRET_PAIR_CODES[ba[p + j]];
|
|
559
|
+
}
|
|
560
|
+
if (len & 1) {
|
|
561
|
+
out[len - 1] = SEQRET_CODES[(ba[p + nPairs] & 0xf0) >> 4];
|
|
562
|
+
}
|
|
563
|
+
seq = textDecoder.decode(out.subarray(0, len));
|
|
564
|
+
}
|
|
565
|
+
return seq;
|
|
566
|
+
}
|
|
567
|
+
// Must come out identical from either mate, or the two halves of one normal
|
|
568
|
+
// pair render as different orientations. The leftmost mate is therefore picked
|
|
569
|
+
// by a total order on (refId, pos) that both mates evaluate the same way, with
|
|
570
|
+
// a read1-first tie-break for equal loci.
|
|
571
|
+
//
|
|
572
|
+
// Deriving "leftmost" from template_length looks tempting — the spec makes
|
|
573
|
+
// tlen positive for the leftmost segment and negative for the rightmost — but
|
|
574
|
+
// aligners leave tlen at 0 whenever the insert size is unavailable, which
|
|
575
|
+
// includes every cross-reference pair. Both mates then read as "not leftmost"
|
|
576
|
+
// and disagree with each other.
|
|
515
577
|
// (see also: gmod/cram-js src/cramFile/record.ts getPairOrientation)
|
|
516
578
|
get pair_orientation() {
|
|
517
579
|
const f = this.flags;
|
|
518
|
-
|
|
519
|
-
if (f & 0xc || this.ref_id !== this.next_refid) {
|
|
580
|
+
if (!(f & constants_ts_1.default.BAM_FPAIRED)) {
|
|
520
581
|
return undefined;
|
|
521
582
|
}
|
|
522
|
-
|
|
583
|
+
const refId = this.ref_id;
|
|
584
|
+
const mateRefId = this.next_refid;
|
|
585
|
+
const pos = this.start;
|
|
586
|
+
const matePos = this.next_pos;
|
|
587
|
+
const selfIsLeft = refId !== mateRefId
|
|
588
|
+
? refId < mateRefId
|
|
589
|
+
: pos !== matePos
|
|
590
|
+
? pos < matePos
|
|
591
|
+
: !!(f & constants_ts_1.default.BAM_FREAD1);
|
|
592
|
+
return PAIR_ORIENTATION_TABLE[((f >> 4) & 0x7) | (selfIsLeft ? 8 : 0)];
|
|
523
593
|
}
|
|
524
594
|
get bin_mq_nl() {
|
|
525
595
|
return this._dataView.getInt32(this._start + 12, true);
|
|
@@ -542,7 +612,7 @@ class BamRecord {
|
|
|
542
612
|
seqAt(idx) {
|
|
543
613
|
if (idx < this.seq_length) {
|
|
544
614
|
const sb = this._byteArray[this.seqStart + (idx >> 1)];
|
|
545
|
-
return idx
|
|
615
|
+
return (idx & 1) === 0
|
|
546
616
|
? SEQRET_DECODER[(sb & 0xf0) >> 4]
|
|
547
617
|
: SEQRET_DECODER[sb & 0x0f];
|
|
548
618
|
}
|
package/dist/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -54,10 +54,10 @@ export declare function parseNameBytes(namesBytes: Uint8Array, renameRefSeq?: (a
|
|
|
54
54
|
export declare function concatUint8Array(args: Uint8Array[]): Uint8Array<ArrayBuffer>;
|
|
55
55
|
export declare function filterReadFlag(flags: number, flagInclude: number, flagExclude: number): boolean;
|
|
56
56
|
export declare function filterTagValue(readVal: unknown, filterVal?: string): boolean;
|
|
57
|
-
export declare function filterCacheKey(filterBy?: FilterBy): string;
|
|
58
57
|
interface Filterable {
|
|
59
58
|
flags: number;
|
|
60
59
|
tags: Record<string, unknown>;
|
|
60
|
+
getTag?(tag: string): unknown;
|
|
61
61
|
}
|
|
62
62
|
export declare function applyFilters<T extends Filterable>(records: T[], filterBy: FilterBy): T[];
|
|
63
63
|
interface Positioned {
|
package/dist/util.js
CHANGED
|
@@ -12,7 +12,6 @@ exports.parseNameBytes = parseNameBytes;
|
|
|
12
12
|
exports.concatUint8Array = concatUint8Array;
|
|
13
13
|
exports.filterReadFlag = filterReadFlag;
|
|
14
14
|
exports.filterTagValue = filterTagValue;
|
|
15
|
-
exports.filterCacheKey = filterCacheKey;
|
|
16
15
|
exports.applyFilters = applyFilters;
|
|
17
16
|
exports.appendInRange = appendInRange;
|
|
18
17
|
const chunk_ts_1 = __importDefault(require("./chunk.js"));
|
|
@@ -120,9 +119,11 @@ function parseRefSeqs(uncba, start, renameRefSeq) {
|
|
|
120
119
|
if (start + 4 > uncba.length) {
|
|
121
120
|
return undefined;
|
|
122
121
|
}
|
|
123
|
-
const dataView = new DataView(uncba.buffer);
|
|
122
|
+
const dataView = new DataView(uncba.buffer, uncba.byteOffset, uncba.byteLength);
|
|
124
123
|
const nRef = dataView.getInt32(start, true);
|
|
125
|
-
|
|
124
|
+
// null prototype: ref names come from the file, so a contig named
|
|
125
|
+
// "constructor" must not resolve to Object.prototype's
|
|
126
|
+
const chrToIndex = Object.create(null);
|
|
126
127
|
const indexToChr = [];
|
|
127
128
|
const decoder = new TextDecoder('utf8');
|
|
128
129
|
let p = start + 4;
|
|
@@ -155,7 +156,7 @@ function parseNameBytes(namesBytes, renameRefSeq = s => s) {
|
|
|
155
156
|
let currRefId = 0;
|
|
156
157
|
let currNameStart = 0;
|
|
157
158
|
const refIdToName = [];
|
|
158
|
-
const refNameToId =
|
|
159
|
+
const refNameToId = Object.create(null);
|
|
159
160
|
for (let i = 0; i < namesBytes.length; i++) {
|
|
160
161
|
if (!namesBytes[i]) {
|
|
161
162
|
if (currNameStart < i) {
|
|
@@ -190,13 +191,11 @@ function filterTagValue(readVal, filterVal) {
|
|
|
190
191
|
? readVal === undefined
|
|
191
192
|
: `${readVal}` !== `${filterVal}`;
|
|
192
193
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const tagPart = tagFilter ? `:${tagFilter.tag}=${tagFilter.value ?? '*'}` : '';
|
|
199
|
-
return `:f${flagInclude}x${flagExclude}${tagPart}`;
|
|
194
|
+
// Read a single tag, preferring the targeted accessor. Reaching for `tags`
|
|
195
|
+
// instead would decode every unrelated tag on the record (NM/AS/ms/de/… — often
|
|
196
|
+
// ~10 per read) just to test one, which measured 2.6x the cost of getTag.
|
|
197
|
+
function readTag(record, tag) {
|
|
198
|
+
return record.getTag ? record.getTag(tag) : record.tags[tag];
|
|
200
199
|
}
|
|
201
200
|
// Apply flagInclude/flagExclude/tagFilter to a list of records.
|
|
202
201
|
function applyFilters(records, filterBy) {
|
|
@@ -205,7 +204,7 @@ function applyFilters(records, filterBy) {
|
|
|
205
204
|
for (let i = 0, l = records.length; i < l; i++) {
|
|
206
205
|
const r = records[i];
|
|
207
206
|
if (!filterReadFlag(r.flags, flagInclude, flagExclude) &&
|
|
208
|
-
!(tagFilter && filterTagValue(r
|
|
207
|
+
!(tagFilter && filterTagValue(readTag(r, tagFilter.tag), tagFilter.value))) {
|
|
209
208
|
out.push(r);
|
|
210
209
|
}
|
|
211
210
|
}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;AA2CA,wCAsEC;AAED,wCAIC;AASD,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;AA2CA,wCAsEC;AAED,wCAIC;AASD,wCA2BC;AAKD,oCAsCC;AAED,sCASC;AAGD,wCAuBC;AAED,4CAYC;AAED,wCAMC;AAED,wCAIC;AAkBD,oCAgBC;AAYD,sCAoBC;AAzUD,0DAA8B;AAC9B,uCAAmD;AA0CnD,SAAgB,cAAc,CAAC,MAAe,EAAE,MAAe;IAC7D,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,MAAM,CAAA;IACf,CAAC;IAED,0DAA0D;IAC1D,IAAI,QAAiB,CAAA;IACrB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAA;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAA;QACtC,QAAQ,GAAG,EAAE,CAAA;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACvB,MAAM,GAAG,GACP,IAAI,CAAC,aAAa,GAAG,WAAW,IAAI,IAAI,CAAC,YAAY,GAAG,UAAU,CAAA;YACpE,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,QAAQ,CAAA;QACjB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAA;QACzD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,YAAY,GAAY,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAA;IAC5C,IAAI,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,aAAa,CAAA;IAClD,IAAI,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,aAAa,CAAA;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;QAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAA;QAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAA;QAC9C,oEAAoE;QACpE,yEAAyE;QACzE,IACE,aAAa,GAAG,YAAY,GAAG,KAAK;YACpC,aAAa,GAAG,YAAY,GAAG,OAAO,EACtC,CAAC;YACD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YACxD,MAAM,GAAG,GACP,aAAa,GAAG,YAAY;gBAC5B,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAA;YACvD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,kBAAK,CAC/C,SAAS,CAAC,IAAI,EACd,KAAK,CAAC,IAAI,EACV,SAAS,CAAC,GAAG,EACb,KAAK,CAAC,WAAW,CAClB,CAAA;gBACD,YAAY,GAAG,aAAa,CAAA;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,YAAY,GAAG,aAAa,CAAA;YAC5B,YAAY,GAAG,aAAa,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAgB,cAAc,CAAC,KAAiB,EAAE,MAAc;IAC9D,OAAO;QACL,SAAS,EAAE,IAAA,iCAAuB,EAAC,KAAK,EAAE,MAAM,CAAC;KAClD,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,kFAAkF;AAClF,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,yEAAyE;AACzE,SAAgB,cAAc,CAC5B,MAAe,EACf,kBAA4B,EAAE;IAE9B,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,CAAA;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7D,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAEhC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAA;QAChC,2CAA2C;QAC3C,IAAI,EAAE,GAAG,CAAC,CAAA;QACV,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;QAC1B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,UAAU,CAAC,GAAG,CAAE,GAAG,GAAG,EAAE,CAAC;gBAC3B,EAAE,GAAG,GAAG,CAAA;YACV,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;YACd,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAE,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,eAAe;AACf,SAAgB,YAAY,CAC1B,KAAiB,EACjB,KAAa,EACb,YAAmC;IAEnC,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACjB,CAAA;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC3C,kEAAkE;IAClE,uDAAuD;IACvD,MAAM,UAAU,GAA2B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,UAAU,GAA0C,EAAE,CAAA;IAC5D,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CACzD,CAAA;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;QACnD,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvB,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;AACnC,CAAC;AAED,SAAgB,aAAa,CAC3B,aAAwC,EACxC,aAA4B;IAE5B,OAAO,aAAa;QAClB,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,aAAa;QACjB,CAAC,CAAC,aAAa,CAAA;AACnB,CAAC;AAED,4FAA4F;AAC5F,SAAgB,cAAc,CAC5B,UAAsB,EACtB,eAAwC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,aAAa,GAAG,CAAC,CAAA;IACrB,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,MAAM,WAAW,GAA2B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,YAAY,CAC1B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CACtD,CAAA;gBACD,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;gBAChC,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;YAClC,CAAC;YACD,aAAa,GAAG,CAAC,GAAG,CAAC,CAAA;YACrB,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA;AACrC,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;IAC7B,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC9B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;IACxB,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAgB,cAAc,CAC5B,KAAa,EACb,WAAmB,EACnB,WAAmB;IAEnB,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAgB,cAAc,CAAC,OAAgB,EAAE,SAAkB;IACjE,OAAO,SAAS,KAAK,GAAG;QACtB,CAAC,CAAC,OAAO,KAAK,SAAS;QACvB,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,GAAG,SAAS,EAAE,CAAA;AACrC,CAAC;AAUD,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,SAAS,OAAO,CAAC,MAAkB,EAAE,GAAW;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,gEAAgE;AAChE,SAAgB,YAAY,CAC1B,OAAY,EACZ,QAAkB;IAElB,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAA;IAChE,MAAM,GAAG,GAAQ,EAAE,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACrB,IACE,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC;YAClD,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAC1E,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAQD,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,iDAAiD;AACjD,SAAgB,aAAa,CAC3B,OAAY,EACZ,KAAa,EACb,GAAW,EACX,GAAW,EACX,MAAW,EAAE;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;QACrB,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;gBACnB,MAAK;YACP,CAAC;iBAAM,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACb,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC5B,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
package/esm/bai.js
CHANGED
|
@@ -30,7 +30,7 @@ function reg2bins(beg, end) {
|
|
|
30
30
|
export default class BAI extends IndexFile {
|
|
31
31
|
async _parse(opts) {
|
|
32
32
|
const bytes = await this.filehandle.readFile(opts);
|
|
33
|
-
const dataView = new DataView(bytes.buffer);
|
|
33
|
+
const dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
34
34
|
// check BAI magic numbers
|
|
35
35
|
if (dataView.getUint32(0, true) !== BAI_MAGIC) {
|
|
36
36
|
throw new Error('Not a BAI file');
|
|
@@ -151,19 +151,22 @@ export default class BAI extends IndexFile {
|
|
|
151
151
|
if (e > (linearIndex.length - 1) * v) {
|
|
152
152
|
throw new Error('query outside of range of linear index');
|
|
153
153
|
}
|
|
154
|
+
// Scale the block-delta into a read count as we go, rather than building the
|
|
155
|
+
// entries and then rebuilding every one of them to apply the scale. Keep the
|
|
156
|
+
// multiply-then-divide order: hoisting lineCount/totalSize into a factor
|
|
157
|
+
// reassociates the arithmetic and shifts scores by an ulp.
|
|
158
|
+
const lineCount = stats?.lineCount ?? 0;
|
|
154
159
|
let currentPos = linearIndex[s / v].blockPosition;
|
|
155
160
|
for (let i = s / v, j = 0; i < e / v; i++, j++) {
|
|
161
|
+
const nextPos = linearIndex[i + 1].blockPosition;
|
|
156
162
|
depths[j] = {
|
|
157
|
-
score:
|
|
163
|
+
score: ((nextPos - currentPos) * lineCount) / totalSize,
|
|
158
164
|
start: i * v,
|
|
159
165
|
end: i * v + v,
|
|
160
166
|
};
|
|
161
|
-
currentPos =
|
|
167
|
+
currentPos = nextPos;
|
|
162
168
|
}
|
|
163
|
-
return depths
|
|
164
|
-
...d,
|
|
165
|
-
score: (d.score * (stats?.lineCount ?? 0)) / totalSize,
|
|
166
|
-
}));
|
|
169
|
+
return depths;
|
|
167
170
|
}
|
|
168
171
|
reg2bins(min, max) {
|
|
169
172
|
return reg2bins(min, max);
|
package/esm/bai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bai.js","sourceRoot":"","sources":["../src/bai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAc9C,MAAM,SAAS,GAAG,QAAQ,CAAA,CAAC,QAAQ;AAEnC,4EAA4E;AAC5E,gDAAgD;AAChD,8DAA8D;AAC9D,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,mBAAmB,GAAG,CAAC,IAAI,gBAAgB,CAAA,CAAC,QAAQ;AAE1D,SAAS,SAAS,CAAC,CAAS,EAAE,QAAgB;IAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;AAC3B,CAAC;AACD,SAAS,OAAO,CAAC,CAAS,EAAE,QAAgB;IAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAA;AACtC,CAAC;AAQD,4EAA4E;AAC5E,qEAAqE;AACrE,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,GAAG,IAAI,CAAC,CAAA;IACR,OAAO;QACL,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,gBAAgB,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;KAC5D,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,GAAI,SAAQ,SAAoB;IACnD,KAAK,CAAC,MAAM,CAAC,IAAc;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"bai.js","sourceRoot":"","sources":["../src/bai.ts"],"names":[],"mappings":"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"}
|
package/esm/bamFile.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import QuickLRU from '@jbrowse/quick-lru';
|
|
2
1
|
import BAI from './bai.ts';
|
|
3
2
|
import CSI from './csi.ts';
|
|
4
3
|
import BAMFeature from './record.ts';
|
|
@@ -26,8 +25,23 @@ export declare const BAM_MAGIC = 21840194;
|
|
|
26
25
|
interface ChunkEntry<T> {
|
|
27
26
|
minBlock: number;
|
|
28
27
|
maxBlock: number;
|
|
28
|
+
bytes: number;
|
|
29
29
|
features: T[];
|
|
30
30
|
}
|
|
31
|
+
export declare const DEFAULT_MAX_CACHE_BYTES: number;
|
|
32
|
+
declare class ChunkFeatureCache<T> {
|
|
33
|
+
maxBytes: number;
|
|
34
|
+
private entries;
|
|
35
|
+
private bytes;
|
|
36
|
+
constructor(maxBytes: number);
|
|
37
|
+
get size(): number;
|
|
38
|
+
get byteSize(): number;
|
|
39
|
+
get(key: string): ChunkEntry<T> | undefined;
|
|
40
|
+
set(key: string, entry: ChunkEntry<T>): void;
|
|
41
|
+
delete(key: string): void;
|
|
42
|
+
clear(): void;
|
|
43
|
+
[Symbol.iterator](): MapIterator<[string, ChunkEntry<T>]>;
|
|
44
|
+
}
|
|
31
45
|
export default class BamFile<T extends BamRecordLike = BAMFeature> {
|
|
32
46
|
renameRefSeq: (a: string) => string;
|
|
33
47
|
bam: GenericFilehandle;
|
|
@@ -40,9 +54,9 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
|
|
|
40
54
|
index?: BAI | CSI;
|
|
41
55
|
htsget: boolean;
|
|
42
56
|
headerP?: ReturnType<BamFile<T>['getHeaderPre']>;
|
|
43
|
-
chunkFeatureCache:
|
|
57
|
+
chunkFeatureCache: ChunkFeatureCache<T>;
|
|
44
58
|
private RecordClass;
|
|
45
|
-
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs, recordClass, }: {
|
|
59
|
+
constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, renameRefSeqs, recordClass, maxCacheBytes, }: {
|
|
46
60
|
bamFilehandle?: GenericFilehandle;
|
|
47
61
|
bamPath?: string;
|
|
48
62
|
bamUrl?: string;
|
|
@@ -55,6 +69,8 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
|
|
|
55
69
|
renameRefSeqs?: (a: string) => string;
|
|
56
70
|
htsget?: boolean;
|
|
57
71
|
recordClass?: BamRecordClass<T>;
|
|
72
|
+
/** budget for the parsed-chunk cache, in decompressed bytes */
|
|
73
|
+
maxCacheBytes?: number;
|
|
58
74
|
});
|
|
59
75
|
getHeaderPre(opts?: BaseOpts): Promise<{
|
|
60
76
|
tag: string;
|
|
@@ -74,10 +90,13 @@ export default class BamFile<T extends BamRecordLike = BAMFeature> {
|
|
|
74
90
|
private getSeqId;
|
|
75
91
|
getRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): Promise<T[]>;
|
|
76
92
|
private evictOverlappingChunks;
|
|
77
|
-
private
|
|
93
|
+
private _fetchChunkFeatures;
|
|
78
94
|
fetchPairs(chrId: number, records: T[], opts: BamOpts): Promise<T[]>;
|
|
79
|
-
_readChunkFeatures(chunk: Chunk, opts: BaseOpts): Promise<
|
|
80
|
-
|
|
95
|
+
_readChunkFeatures(chunk: Chunk, opts: BaseOpts): Promise<{
|
|
96
|
+
features: T[];
|
|
97
|
+
bytes: number;
|
|
98
|
+
}>;
|
|
99
|
+
readBamFeatures(ba: Uint8Array, cpositions: number[], dpositions: number[], chunk: Chunk): T[];
|
|
81
100
|
hasRefSeq(seqName: string, opts?: BaseOpts): Promise<boolean>;
|
|
82
101
|
lineCount(seqName: string, opts?: BaseOpts): Promise<number>;
|
|
83
102
|
indexCov(seqName: string, start?: number, end?: number): Promise<never[] | import("./bai.ts").IndexCovEntry[]>;
|