@gmod/bam 1.1.14 → 1.1.17
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/CHANGELOG.md +14 -1
- package/dist/bamFile.d.ts +3 -2
- package/dist/bamFile.js +209 -224
- package/dist/bamFile.js.map +1 -1
- package/dist/csi.d.ts +2 -2
- package/dist/csi.js +3 -6
- package/dist/csi.js.map +1 -1
- package/dist/record.js +8 -5
- package/dist/record.js.map +1 -1
- package/esm/bamFile.d.ts +3 -2
- package/esm/bamFile.js +76 -87
- package/esm/bamFile.js.map +1 -1
- package/esm/csi.d.ts +2 -2
- package/esm/csi.js +3 -6
- package/esm/csi.js.map +1 -1
- package/esm/record.js +8 -5
- package/esm/record.js.map +1 -1
- package/package.json +22 -18
- package/src/bai.ts +227 -0
- package/src/bamFile.ts +546 -0
- package/src/chunk.ts +52 -0
- package/src/constants.ts +26 -0
- package/src/csi.ts +243 -0
- package/src/declare.d.ts +2 -0
- package/src/errors.ts +22 -0
- package/src/htsget.ts +138 -0
- package/src/index.ts +7 -0
- package/src/indexFile.ts +63 -0
- package/src/record.ts +610 -0
- package/src/sam.ts +15 -0
- package/src/util.ts +116 -0
- package/src/virtualOffset.ts +47 -0
package/esm/csi.js
CHANGED
|
@@ -151,10 +151,7 @@ export default class CSI extends IndexFile {
|
|
|
151
151
|
min = 0;
|
|
152
152
|
}
|
|
153
153
|
const indexData = await this.parse(opts);
|
|
154
|
-
|
|
155
|
-
return [];
|
|
156
|
-
}
|
|
157
|
-
const ba = indexData.indices[refId];
|
|
154
|
+
const ba = indexData === null || indexData === void 0 ? void 0 : indexData.indices[refId];
|
|
158
155
|
if (!ba) {
|
|
159
156
|
return [];
|
|
160
157
|
}
|
|
@@ -174,8 +171,8 @@ export default class CSI extends IndexFile {
|
|
|
174
171
|
return optimizeChunks(chunks, new VirtualOffset(0, 0));
|
|
175
172
|
}
|
|
176
173
|
/**
|
|
177
|
-
* calculate the list of bins that may overlap with region [beg,end)
|
|
178
|
-
*
|
|
174
|
+
* calculate the list of bins that may overlap with region [beg,end)
|
|
175
|
+
* (zero-based half-open)
|
|
179
176
|
*/
|
|
180
177
|
reg2bins(beg, end) {
|
|
181
178
|
beg -= 1; // < convert to 1-based closed
|
package/esm/csi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csi.js","sourceRoot":"","sources":["../src/csi.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"csi.js","sourceRoot":"","sources":["../src/csi.ts"],"names":[],"mappings":"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"}
|
package/esm/record.js
CHANGED
|
@@ -33,8 +33,7 @@ export default class BamRecord {
|
|
|
33
33
|
return this._get(field.toLowerCase());
|
|
34
34
|
}
|
|
35
35
|
end() {
|
|
36
|
-
return
|
|
37
|
-
(this.get('length_on_ref') || this.get('seq_length') || undefined));
|
|
36
|
+
return this.get('start') + this.get('length_on_ref');
|
|
38
37
|
}
|
|
39
38
|
seq_id() {
|
|
40
39
|
return this._refID;
|
|
@@ -419,9 +418,13 @@ export default class BamRecord {
|
|
|
419
418
|
}
|
|
420
419
|
_flags() { }
|
|
421
420
|
length_on_ref() {
|
|
422
|
-
this.
|
|
423
|
-
|
|
424
|
-
|
|
421
|
+
if (this.data.length_on_ref) {
|
|
422
|
+
return this.data.length_on_ref;
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
this.get('cigar'); // the length_on_ref is set as a side effect
|
|
426
|
+
return this.data.length_on_ref;
|
|
427
|
+
}
|
|
425
428
|
}
|
|
426
429
|
_n_cigar_op() {
|
|
427
430
|
return this.get('_flag_nc') & 0xffff;
|
package/esm/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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/bam",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.17",
|
|
4
4
|
"description": "Parser for BAM and BAM index (bai) files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/bam-js",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
|
-
"esm"
|
|
19
|
+
"esm",
|
|
20
|
+
"src"
|
|
20
21
|
],
|
|
21
22
|
"scripts": {
|
|
22
23
|
"test": "jest",
|
|
@@ -38,30 +39,33 @@
|
|
|
38
39
|
"genomics"
|
|
39
40
|
],
|
|
40
41
|
"dependencies": {
|
|
41
|
-
"@gmod/bgzf-filehandle": "^1.
|
|
42
|
+
"@gmod/bgzf-filehandle": "^1.4.4",
|
|
43
|
+
"abortable-promise-cache": "^1.5.0",
|
|
42
44
|
"buffer-crc32": "^0.2.13",
|
|
43
45
|
"cross-fetch": "^3.0.2",
|
|
44
|
-
"generic-filehandle": "^
|
|
46
|
+
"generic-filehandle": "^3.0.0",
|
|
45
47
|
"long": "^4.0.0",
|
|
46
|
-
"object.entries-ponyfill": "^1.0.1"
|
|
48
|
+
"object.entries-ponyfill": "^1.0.1",
|
|
49
|
+
"quick-lru": "^2.0.0"
|
|
47
50
|
},
|
|
48
51
|
"devDependencies": {
|
|
49
52
|
"@types/buffer-crc32": "^0.2.0",
|
|
50
|
-
"@types/jest": "^
|
|
51
|
-
"@types/long": "^4.0.
|
|
52
|
-
"@types/node": "^
|
|
53
|
-
"@
|
|
54
|
-
"@typescript-eslint/
|
|
55
|
-
"eslint": "^
|
|
56
|
-
"eslint
|
|
57
|
-
"eslint-
|
|
58
|
-
"eslint-plugin-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
53
|
+
"@types/jest": "^28.1.6",
|
|
54
|
+
"@types/long": "^4.0.2",
|
|
55
|
+
"@types/node": "^18.0.6",
|
|
56
|
+
"@types/quick-lru": "^2.0.0",
|
|
57
|
+
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
58
|
+
"@typescript-eslint/parser": "^5.30.7",
|
|
59
|
+
"eslint": "^8.20.0",
|
|
60
|
+
"eslint-config-prettier": "^8.5.0",
|
|
61
|
+
"eslint-plugin-import": "^2.26.0",
|
|
62
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
63
|
+
"jest": "^28.1.3",
|
|
64
|
+
"prettier": "^2.7.1",
|
|
61
65
|
"rimraf": "^3.0.2",
|
|
62
66
|
"standard-changelog": "^2.0.27",
|
|
63
|
-
"ts-jest": "^
|
|
64
|
-
"typescript": "^4.
|
|
67
|
+
"ts-jest": "^28.0.7",
|
|
68
|
+
"typescript": "^4.7.4"
|
|
65
69
|
},
|
|
66
70
|
"publishConfig": {
|
|
67
71
|
"access": "public"
|
package/src/bai.ts
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import Long from 'long'
|
|
2
|
+
import { fromBytes } from './virtualOffset'
|
|
3
|
+
import Chunk from './chunk'
|
|
4
|
+
|
|
5
|
+
import IndexFile from './indexFile'
|
|
6
|
+
import { longToNumber, optimizeChunks, BaseOpts } from './util'
|
|
7
|
+
|
|
8
|
+
const BAI_MAGIC = 21578050 // BAI\1
|
|
9
|
+
|
|
10
|
+
function roundDown(n: number, multiple: number) {
|
|
11
|
+
return n - (n % multiple)
|
|
12
|
+
}
|
|
13
|
+
function roundUp(n: number, multiple: number) {
|
|
14
|
+
return n - (n % multiple) + multiple
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default class BAI extends IndexFile {
|
|
18
|
+
baiP?: Promise<Buffer>
|
|
19
|
+
|
|
20
|
+
parsePseudoBin(bytes: Buffer, offset: number) {
|
|
21
|
+
const lineCount = longToNumber(
|
|
22
|
+
Long.fromBytesLE(
|
|
23
|
+
Array.prototype.slice.call(bytes, offset + 16, offset + 24),
|
|
24
|
+
true,
|
|
25
|
+
),
|
|
26
|
+
)
|
|
27
|
+
return { lineCount }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async lineCount(refId: number, opts: BaseOpts = {}) {
|
|
31
|
+
const prom = await this.parse(opts)
|
|
32
|
+
const index = prom.indices[refId]
|
|
33
|
+
if (!index) {
|
|
34
|
+
return -1
|
|
35
|
+
}
|
|
36
|
+
const ret = index.stats || {}
|
|
37
|
+
return ret.lineCount === undefined ? -1 : ret.lineCount
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
fetchBai(opts: BaseOpts = {}) {
|
|
41
|
+
if (!this.baiP) {
|
|
42
|
+
this.baiP = this.filehandle.readFile(opts).catch(e => {
|
|
43
|
+
this.baiP = undefined
|
|
44
|
+
throw e
|
|
45
|
+
}) as Promise<Buffer>
|
|
46
|
+
}
|
|
47
|
+
return this.baiP
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// fetch and parse the index
|
|
51
|
+
async _parse() {
|
|
52
|
+
const data: { [key: string]: any } = { bai: true, maxBlockSize: 1 << 16 }
|
|
53
|
+
const bytes = await this.fetchBai()
|
|
54
|
+
|
|
55
|
+
// check BAI magic numbers
|
|
56
|
+
if (bytes.readUInt32LE(0) !== BAI_MAGIC) {
|
|
57
|
+
throw new Error('Not a BAI file')
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
data.refCount = bytes.readInt32LE(4)
|
|
61
|
+
const depth = 5
|
|
62
|
+
const binLimit = ((1 << ((depth + 1) * 3)) - 1) / 7
|
|
63
|
+
|
|
64
|
+
// read the indexes for each reference sequence
|
|
65
|
+
data.indices = new Array(data.refCount)
|
|
66
|
+
let currOffset = 8
|
|
67
|
+
for (let i = 0; i < data.refCount; i += 1) {
|
|
68
|
+
// the binning index
|
|
69
|
+
const binCount = bytes.readInt32LE(currOffset)
|
|
70
|
+
let stats
|
|
71
|
+
|
|
72
|
+
currOffset += 4
|
|
73
|
+
const binIndex: { [key: number]: Chunk[] } = {}
|
|
74
|
+
for (let j = 0; j < binCount; j += 1) {
|
|
75
|
+
const bin = bytes.readUInt32LE(currOffset)
|
|
76
|
+
currOffset += 4
|
|
77
|
+
if (bin === binLimit + 1) {
|
|
78
|
+
currOffset += 4
|
|
79
|
+
stats = this.parsePseudoBin(bytes, currOffset)
|
|
80
|
+
currOffset += 32
|
|
81
|
+
} else if (bin > binLimit + 1) {
|
|
82
|
+
throw new Error('bai index contains too many bins, please use CSI')
|
|
83
|
+
} else {
|
|
84
|
+
const chunkCount = bytes.readInt32LE(currOffset)
|
|
85
|
+
currOffset += 4
|
|
86
|
+
const chunks = new Array(chunkCount)
|
|
87
|
+
for (let k = 0; k < chunkCount; k += 1) {
|
|
88
|
+
const u = fromBytes(bytes, currOffset)
|
|
89
|
+
const v = fromBytes(bytes, currOffset + 8)
|
|
90
|
+
currOffset += 16
|
|
91
|
+
this._findFirstData(data, u)
|
|
92
|
+
chunks[k] = new Chunk(u, v, bin)
|
|
93
|
+
}
|
|
94
|
+
binIndex[bin] = chunks
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const linearCount = bytes.readInt32LE(currOffset)
|
|
99
|
+
currOffset += 4
|
|
100
|
+
// as we're going through the linear index, figure out
|
|
101
|
+
// the smallest virtual offset in the indexes, which
|
|
102
|
+
// tells us where the BAM header ends
|
|
103
|
+
const linearIndex = new Array(linearCount)
|
|
104
|
+
for (let k = 0; k < linearCount; k += 1) {
|
|
105
|
+
linearIndex[k] = fromBytes(bytes, currOffset)
|
|
106
|
+
currOffset += 8
|
|
107
|
+
this._findFirstData(data, linearIndex[k])
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
data.indices[i] = { binIndex, linearIndex, stats }
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return data
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async indexCov(
|
|
117
|
+
seqId: number,
|
|
118
|
+
start?: number,
|
|
119
|
+
end?: number,
|
|
120
|
+
opts: BaseOpts = {},
|
|
121
|
+
): Promise<{ start: number; end: number; score: number }[]> {
|
|
122
|
+
const v = 16384
|
|
123
|
+
const range = start !== undefined
|
|
124
|
+
const indexData = await this.parse(opts)
|
|
125
|
+
const seqIdx = indexData.indices[seqId]
|
|
126
|
+
if (!seqIdx) {
|
|
127
|
+
return []
|
|
128
|
+
}
|
|
129
|
+
const { linearIndex = [], stats } = seqIdx
|
|
130
|
+
if (!linearIndex.length) {
|
|
131
|
+
return []
|
|
132
|
+
}
|
|
133
|
+
const e = end !== undefined ? roundUp(end, v) : (linearIndex.length - 1) * v
|
|
134
|
+
const s = start !== undefined ? roundDown(start, v) : 0
|
|
135
|
+
let depths
|
|
136
|
+
if (range) {
|
|
137
|
+
depths = new Array((e - s) / v)
|
|
138
|
+
} else {
|
|
139
|
+
depths = new Array(linearIndex.length - 1)
|
|
140
|
+
}
|
|
141
|
+
const totalSize = linearIndex[linearIndex.length - 1].blockPosition
|
|
142
|
+
if (e > (linearIndex.length - 1) * v) {
|
|
143
|
+
throw new Error('query outside of range of linear index')
|
|
144
|
+
}
|
|
145
|
+
let currentPos = linearIndex[s / v].blockPosition
|
|
146
|
+
for (let i = s / v, j = 0; i < e / v; i++, j++) {
|
|
147
|
+
depths[j] = {
|
|
148
|
+
score: linearIndex[i + 1].blockPosition - currentPos,
|
|
149
|
+
start: i * v,
|
|
150
|
+
end: i * v + v,
|
|
151
|
+
}
|
|
152
|
+
currentPos = linearIndex[i + 1].blockPosition
|
|
153
|
+
}
|
|
154
|
+
return depths.map(d => {
|
|
155
|
+
return { ...d, score: (d.score * stats.lineCount) / totalSize }
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* calculate the list of bins that may overlap with region [beg,end) (zero-based half-open)
|
|
161
|
+
* @returns {Array[number]}
|
|
162
|
+
*/
|
|
163
|
+
reg2bins(beg: number, end: number) {
|
|
164
|
+
end -= 1
|
|
165
|
+
return [
|
|
166
|
+
[0, 0],
|
|
167
|
+
[1 + (beg >> 26), 1 + (end >> 26)],
|
|
168
|
+
[9 + (beg >> 23), 9 + (end >> 23)],
|
|
169
|
+
[73 + (beg >> 20), 73 + (end >> 20)],
|
|
170
|
+
[585 + (beg >> 17), 585 + (end >> 17)],
|
|
171
|
+
[4681 + (beg >> 14), 4681 + (end >> 14)],
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async blocksForRange(
|
|
176
|
+
refId: number,
|
|
177
|
+
min: number,
|
|
178
|
+
max: number,
|
|
179
|
+
opts: BaseOpts = {},
|
|
180
|
+
) {
|
|
181
|
+
if (min < 0) {
|
|
182
|
+
min = 0
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const indexData = await this.parse(opts)
|
|
186
|
+
if (!indexData) {
|
|
187
|
+
return []
|
|
188
|
+
}
|
|
189
|
+
const ba = indexData.indices[refId]
|
|
190
|
+
if (!ba) {
|
|
191
|
+
return []
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// List of bin #s that overlap min, max
|
|
195
|
+
const overlappingBins = this.reg2bins(min, max)
|
|
196
|
+
const chunks: Chunk[] = []
|
|
197
|
+
|
|
198
|
+
// Find chunks in overlapping bins. Leaf bins (< 4681) are not pruned
|
|
199
|
+
for (const [start, end] of overlappingBins) {
|
|
200
|
+
for (let bin = start; bin <= end; bin++) {
|
|
201
|
+
if (ba.binIndex[bin]) {
|
|
202
|
+
const binChunks = ba.binIndex[bin]
|
|
203
|
+
for (let c = 0; c < binChunks.length; ++c) {
|
|
204
|
+
chunks.push(new Chunk(binChunks[c].minv, binChunks[c].maxv, bin))
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Use the linear index to find minimum file position of chunks that could
|
|
211
|
+
// contain alignments in the region
|
|
212
|
+
const nintv = ba.linearIndex.length
|
|
213
|
+
let lowest = null
|
|
214
|
+
const minLin = Math.min(min >> 14, nintv - 1)
|
|
215
|
+
const maxLin = Math.min(max >> 14, nintv - 1)
|
|
216
|
+
for (let i = minLin; i <= maxLin; ++i) {
|
|
217
|
+
const vp = ba.linearIndex[i]
|
|
218
|
+
if (vp) {
|
|
219
|
+
if (!lowest || vp.compareTo(lowest) < 0) {
|
|
220
|
+
lowest = vp
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return optimizeChunks(chunks, lowest)
|
|
226
|
+
}
|
|
227
|
+
}
|