@gmod/cram 2.0.3 → 2.0.4
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 +0 -4
- package/dist/craiIndex.js +1 -1
- package/dist/craiIndex.js.map +1 -1
- package/dist/cram-bundle.js +1 -1
- package/dist/cram-bundle.js.LICENSE.txt +0 -2
- package/dist/cramFile/codecs/byteArrayStop.d.ts +0 -1
- package/dist/cramFile/codecs/getBits.d.ts +0 -1
- package/dist/cramFile/codecs/getBits.js +2 -2
- package/dist/cramFile/codecs/getBits.js.map +1 -1
- package/dist/cramFile/codecs/index.js +1 -2
- package/dist/cramFile/codecs/index.js.map +1 -1
- package/dist/cramFile/container/index.d.ts +1 -2
- package/dist/cramFile/file.d.ts +0 -2
- package/dist/cramFile/file.js +2 -2
- package/dist/cramFile/file.js.map +1 -1
- package/dist/cramFile/sectionParsers.d.ts +0 -1
- package/dist/cramFile/sectionParsers.js +3 -3
- package/dist/cramFile/sectionParsers.js.map +1 -1
- package/dist/cramFile/slice/decodeRecord.js +1 -1
- package/dist/cramFile/slice/decodeRecord.js.map +1 -1
- package/dist/cramFile/util.d.ts +0 -2
- package/dist/cramFile/util.js +5 -6
- package/dist/cramFile/util.js.map +1 -1
- package/dist/indexedCramFile.d.ts +0 -3
- package/dist/indexedCramFile.js +4 -16
- package/dist/indexedCramFile.js.map +1 -1
- package/dist/io/index.d.ts +1 -3
- package/dist/io/index.js +3 -16
- package/dist/io/index.js.map +1 -1
- package/dist/rans/d04.js +1 -1
- package/dist/rans/d04.js.map +1 -1
- package/dist/rans/d14.js +1 -1
- package/dist/rans/d14.js.map +1 -1
- package/dist/rans/frequencies.js +2 -3
- package/dist/rans/frequencies.js.map +1 -1
- package/dist/rans/index.js +1 -1
- package/dist/rans/index.js.map +1 -1
- package/dist/sam.js +1 -2
- package/dist/sam.js.map +1 -1
- package/dist/typescript.d.ts +0 -1
- package/dist/typescript.js +0 -8
- package/dist/typescript.js.map +1 -1
- package/dist/unzip-pako.d.ts +0 -1
- package/dist/unzip-pako.js +1 -2
- package/dist/unzip-pako.js.map +1 -1
- package/dist/unzip.d.ts +0 -1
- package/esm/craiIndex.js +1 -1
- package/esm/craiIndex.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayStop.d.ts +0 -1
- package/esm/cramFile/codecs/getBits.d.ts +0 -1
- package/esm/cramFile/container/index.d.ts +1 -2
- package/esm/cramFile/file.d.ts +0 -2
- package/esm/cramFile/sectionParsers.d.ts +0 -1
- package/esm/cramFile/util.d.ts +0 -2
- package/esm/indexedCramFile.d.ts +0 -3
- package/esm/indexedCramFile.js +3 -15
- package/esm/indexedCramFile.js.map +1 -1
- package/esm/io/index.d.ts +1 -3
- package/esm/io/index.js +2 -11
- package/esm/io/index.js.map +1 -1
- package/esm/typescript.d.ts +0 -1
- package/esm/typescript.js +1 -6
- package/esm/typescript.js.map +1 -1
- package/esm/unzip-pako.d.ts +0 -1
- package/esm/unzip.d.ts +0 -1
- package/package.json +5 -10
- package/src/craiIndex.ts +1 -1
- package/src/indexedCramFile.ts +3 -25
- package/src/io/index.ts +2 -12
- package/src/typescript.ts +0 -7
package/dist/rans/frequencies.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.readStatsO0 = readStatsO0;
|
|
7
|
+
exports.readStatsO1 = readStatsO1;
|
|
7
8
|
//@ts-nocheck
|
|
8
9
|
const errors_1 = require("../errors");
|
|
9
10
|
const constants_1 = require("./constants");
|
|
@@ -52,7 +53,6 @@ function readStatsO0(
|
|
|
52
53
|
} while (j !== 0);
|
|
53
54
|
assert(x < constants_1.TOTFREQ);
|
|
54
55
|
}
|
|
55
|
-
exports.readStatsO0 = readStatsO0;
|
|
56
56
|
function readStatsO1(
|
|
57
57
|
/* ByteBuffer */ cp,
|
|
58
58
|
/* Decoding.AriDecoder[] */ D,
|
|
@@ -115,5 +115,4 @@ function readStatsO1(
|
|
|
115
115
|
}
|
|
116
116
|
} while (i !== 0);
|
|
117
117
|
}
|
|
118
|
-
exports.readStatsO1 = readStatsO1;
|
|
119
118
|
//# sourceMappingURL=frequencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frequencies.js","sourceRoot":"","sources":["../../src/rans/frequencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"frequencies.js","sourceRoot":"","sources":["../../src/rans/frequencies.ts"],"names":[],"mappings":"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"}
|
package/dist/rans/index.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.default = uncompress;
|
|
6
7
|
//@ts-nocheck
|
|
7
8
|
const errors_1 = require("../errors");
|
|
8
9
|
const decoding_1 = __importDefault(require("./decoding"));
|
|
@@ -198,5 +199,4 @@ function uncompress(inputBuffer, outputBuffer, initialInputPosition = 0) {
|
|
|
198
199
|
throw new errors_1.CramMalformedError(`Invalid rANS order: ${order}`);
|
|
199
200
|
}
|
|
200
201
|
}
|
|
201
|
-
exports.default = uncompress;
|
|
202
202
|
//# sourceMappingURL=index.js.map
|
package/dist/rans/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rans/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rans/index.ts"],"names":[],"mappings":"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"}
|
package/dist/sam.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseHeaderText =
|
|
3
|
+
exports.parseHeaderText = parseHeaderText;
|
|
4
4
|
function parseHeaderText(text) {
|
|
5
5
|
const lines = text.split(/\r?\n/);
|
|
6
6
|
const data = [];
|
|
@@ -29,5 +29,4 @@ function parseHeaderText(text) {
|
|
|
29
29
|
}
|
|
30
30
|
return data;
|
|
31
31
|
}
|
|
32
|
-
exports.parseHeaderText = parseHeaderText;
|
|
33
32
|
//# sourceMappingURL=sam.js.map
|
package/dist/sam.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sam.js","sourceRoot":"","sources":["../src/sam.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sam.js","sourceRoot":"","sources":["../src/sam.ts"],"names":[],"mappings":";;AAAA,0CAiCC;AAjCD,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,IAAI,GAMJ,EAAE,CAAA;IACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC;gBACR,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACnB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;oBACxB,OAAO,CAAC,KAAK,CAAC,CAAC;wBACb,CAAC,CAAC;4BACE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;4BAClB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;yBACtB;wBACH,CAAC,CAAC,qCAAqC;4BACrC,0CAA0C;4BAC1C,4CAA4C;4BAC5C;gCACE,GAAG,EAAE,CAAC;gCACN,KAAK,EAAE,EAAE;6BACV,CAAA;gBACP,CAAC,CAAC;aACH,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/typescript.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export declare function ensureNotNullish<T>(x: T | null | undefined): T;
|
|
2
1
|
export type TupleOf<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
|
|
3
2
|
export type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
|
package/dist/typescript.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureNotNullish = void 0;
|
|
4
|
-
function ensureNotNullish(x) {
|
|
5
|
-
if (x === null || x === undefined) {
|
|
6
|
-
throw new Error('Value must not be nullish.');
|
|
7
|
-
}
|
|
8
|
-
return x;
|
|
9
|
-
}
|
|
10
|
-
exports.ensureNotNullish = ensureNotNullish;
|
|
11
3
|
//# sourceMappingURL=typescript.js.map
|
package/dist/typescript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":""}
|
package/dist/unzip-pako.d.ts
CHANGED
package/dist/unzip-pako.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unzip =
|
|
3
|
+
exports.unzip = unzip;
|
|
4
4
|
const pako_1 = require("pako");
|
|
5
5
|
function unzip(input) {
|
|
6
6
|
return Buffer.from((0, pako_1.inflate)(input));
|
|
7
7
|
}
|
|
8
|
-
exports.unzip = unzip;
|
|
9
8
|
//# sourceMappingURL=unzip-pako.js.map
|
package/dist/unzip-pako.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unzip-pako.js","sourceRoot":"","sources":["../src/unzip-pako.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unzip-pako.js","sourceRoot":"","sources":["../src/unzip-pako.ts"],"names":[],"mappings":";;AAEA,sBAEC;AAJD,+BAA8B;AAE9B,SAAgB,KAAK,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAA;AACpC,CAAC"}
|
package/dist/unzip.d.ts
CHANGED
package/esm/craiIndex.js
CHANGED
package/esm/craiIndex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,
|
|
1
|
+
{"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import CramSlice from '../slice';
|
|
3
2
|
import CramContainerCompressionScheme from './compressionScheme';
|
|
4
3
|
import CramFile from '../file';
|
|
@@ -18,7 +17,7 @@ export default class CramContainer {
|
|
|
18
17
|
contentPosition: number;
|
|
19
18
|
_size: number;
|
|
20
19
|
content: Buffer;
|
|
21
|
-
crc32?: number
|
|
20
|
+
crc32?: number;
|
|
22
21
|
} | null | undefined>;
|
|
23
22
|
getFirstBlock(): Promise<import("../file").CramFileBlock | undefined>;
|
|
24
23
|
getCompressionScheme(): Promise<CramContainerCompressionScheme | undefined>;
|
package/esm/cramFile/file.d.ts
CHANGED
package/esm/cramFile/util.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference path="../../src/typings/binary-parser.d.ts" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { Parser } from '@gmod/binary-parser';
|
|
4
2
|
export declare function itf8Size(v: number): 1 | 2 | 3 | 4 | 5;
|
|
5
3
|
export declare function parseItf8(buffer: Uint8Array, initialOffset: number): [number, number];
|
package/esm/indexedCramFile.d.ts
CHANGED
|
@@ -15,20 +15,17 @@ export interface CramIndexLike {
|
|
|
15
15
|
export default class IndexedCramFile {
|
|
16
16
|
cram: CramFile;
|
|
17
17
|
index: CramIndexLike;
|
|
18
|
-
private fetchSizeLimit;
|
|
19
18
|
/**
|
|
20
19
|
*
|
|
21
20
|
* @param {object} args
|
|
22
21
|
* @param {CramFile} args.cram
|
|
23
22
|
* @param {Index-like} args.index object that supports getEntriesForRange(seqId,start,end) -> Promise[Array[index entries]]
|
|
24
23
|
* @param {number} [args.cacheSize] optional maximum number of CRAM records to cache. default 20,000
|
|
25
|
-
* @param {number} [args.fetchSizeLimit] optional maximum number of bytes to fetch in a single getRecordsForRange call. Default 3 MiB.
|
|
26
24
|
* @param {boolean} [args.checkSequenceMD5] - default true. if false, disables verifying the MD5
|
|
27
25
|
* checksum of the reference sequence underlying a slice. In some applications, this check can cause an inconvenient amount (many megabases) of sequences to be fetched.
|
|
28
26
|
*/
|
|
29
27
|
constructor(args: {
|
|
30
28
|
index: CramIndexLike;
|
|
31
|
-
fetchSizeLimit?: number;
|
|
32
29
|
} & ({
|
|
33
30
|
cram: CramFile;
|
|
34
31
|
} | ({
|
package/esm/indexedCramFile.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CramUnimplementedError } from './errors';
|
|
2
2
|
import CramFile from './cramFile';
|
|
3
3
|
export default class IndexedCramFile {
|
|
4
4
|
/**
|
|
@@ -7,7 +7,6 @@ export default class IndexedCramFile {
|
|
|
7
7
|
* @param {CramFile} args.cram
|
|
8
8
|
* @param {Index-like} args.index object that supports getEntriesForRange(seqId,start,end) -> Promise[Array[index entries]]
|
|
9
9
|
* @param {number} [args.cacheSize] optional maximum number of CRAM records to cache. default 20,000
|
|
10
|
-
* @param {number} [args.fetchSizeLimit] optional maximum number of bytes to fetch in a single getRecordsForRange call. Default 3 MiB.
|
|
11
10
|
* @param {boolean} [args.checkSequenceMD5] - default true. if false, disables verifying the MD5
|
|
12
11
|
* checksum of the reference sequence underlying a slice. In some applications, this check can cause an inconvenient amount (many megabases) of sequences to be fetched.
|
|
13
12
|
*/
|
|
@@ -30,7 +29,6 @@ export default class IndexedCramFile {
|
|
|
30
29
|
if (!this.index.getEntriesForRange) {
|
|
31
30
|
throw new Error('invalid arguments: not an index');
|
|
32
31
|
}
|
|
33
|
-
this.fetchSizeLimit = args.fetchSizeLimit || 3000000;
|
|
34
32
|
}
|
|
35
33
|
/**
|
|
36
34
|
*
|
|
@@ -49,10 +47,6 @@ export default class IndexedCramFile {
|
|
|
49
47
|
}
|
|
50
48
|
const seqId = seq;
|
|
51
49
|
const slices = await this.index.getEntriesForRange(seqId, start, end);
|
|
52
|
-
const totalSize = slices.map(s => s.sliceBytes).reduce((a, b) => a + b, 0);
|
|
53
|
-
if (totalSize > this.fetchSizeLimit) {
|
|
54
|
-
throw new CramSizeLimitError(`data size of ${totalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
|
|
55
|
-
}
|
|
56
50
|
// TODO: do we need to merge or de-duplicate the blocks?
|
|
57
51
|
// fetch all the slices and parse the feature data
|
|
58
52
|
const filter = (feature) => feature.sequenceId === seq &&
|
|
@@ -108,13 +102,7 @@ export default class IndexedCramFile {
|
|
|
108
102
|
.filter((item, pos, ary) => !pos || item.toString() !== ary[pos - 1].toString());
|
|
109
103
|
const mateRecordPromises = [];
|
|
110
104
|
const mateFeatPromises = [];
|
|
111
|
-
const
|
|
112
|
-
.map(s => s.sliceBytes)
|
|
113
|
-
.reduce((a, b) => a + b, 0);
|
|
114
|
-
if (mateTotalSize > this.fetchSizeLimit) {
|
|
115
|
-
throw new Error(`mate data size of ${mateTotalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`);
|
|
116
|
-
}
|
|
117
|
-
mateChunks.forEach(c => {
|
|
105
|
+
for (const c of mateChunks) {
|
|
118
106
|
let recordPromise = this.cram.featureCache.get(c.toString());
|
|
119
107
|
if (!recordPromise) {
|
|
120
108
|
recordPromise = this.getRecordsInSlice(c, () => true);
|
|
@@ -134,7 +122,7 @@ export default class IndexedCramFile {
|
|
|
134
122
|
return mateRecs;
|
|
135
123
|
});
|
|
136
124
|
mateFeatPromises.push(featPromise);
|
|
137
|
-
}
|
|
125
|
+
}
|
|
138
126
|
const newMateFeats = await Promise.all(mateFeatPromises);
|
|
139
127
|
if (newMateFeats.length) {
|
|
140
128
|
const newMates = newMateFeats.reduce((result, current) => result.concat(current));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexedCramFile.js","sourceRoot":"","sources":["../src/indexedCramFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"indexedCramFile.js","sourceRoot":"","sources":["../src/indexedCramFile.ts"],"names":[],"mappings":"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"}
|
package/esm/io/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Filehandle } from '../cramFile/filehandle';
|
|
2
|
-
import { LocalFile, RemoteFile } from 'generic-filehandle';
|
|
3
|
-
declare function fromUrl(source: string): LocalFile | RemoteFile;
|
|
4
2
|
declare function open(maybeUrl?: string, maybePath?: string, maybeFilehandle?: Filehandle): Filehandle;
|
|
5
|
-
export {
|
|
3
|
+
export { open };
|
|
6
4
|
export { LocalFile, RemoteFile } from 'generic-filehandle';
|
package/esm/io/index.js
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
import url from 'url';
|
|
2
|
-
import { ensureNotNullish } from '../typescript';
|
|
3
1
|
import { LocalFile, RemoteFile } from 'generic-filehandle';
|
|
4
|
-
function fromUrl(source) {
|
|
5
|
-
const { protocol, pathname } = url.parse(source);
|
|
6
|
-
if (protocol === 'file:') {
|
|
7
|
-
return new LocalFile(unescape(ensureNotNullish(pathname)));
|
|
8
|
-
}
|
|
9
|
-
return new RemoteFile(source);
|
|
10
|
-
}
|
|
11
2
|
function open(maybeUrl, maybePath, maybeFilehandle) {
|
|
12
3
|
if (maybeFilehandle) {
|
|
13
4
|
return maybeFilehandle;
|
|
14
5
|
}
|
|
15
6
|
if (maybeUrl) {
|
|
16
|
-
return
|
|
7
|
+
return new RemoteFile(maybeUrl);
|
|
17
8
|
}
|
|
18
9
|
if (maybePath) {
|
|
19
10
|
return new LocalFile(maybePath);
|
|
20
11
|
}
|
|
21
12
|
throw new Error('no url, path, or filehandle provided, cannot open');
|
|
22
13
|
}
|
|
23
|
-
export {
|
|
14
|
+
export { open };
|
|
24
15
|
export { LocalFile, RemoteFile } from 'generic-filehandle';
|
|
25
16
|
//# sourceMappingURL=index.js.map
|
package/esm/io/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/io/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/io/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE1D,SAAS,IAAI,CACX,QAAiB,EACjB,SAAkB,EAClB,eAA4B;IAE5B,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;AACtE,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA"}
|
package/esm/typescript.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export declare function ensureNotNullish<T>(x: T | null | undefined): T;
|
|
2
1
|
export type TupleOf<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
|
|
3
2
|
export type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
|
package/esm/typescript.js
CHANGED
package/esm/typescript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":""}
|
package/esm/unzip-pako.d.ts
CHANGED
package/esm/unzip.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gmod/cram",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "read CRAM files with pure Javascript",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "GMOD/cram-js",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
"biojs"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@gmod/abortable-promise-cache": "^2.0.0",
|
|
45
46
|
"@gmod/binary-parser": "^1.3.5",
|
|
46
47
|
"@jkbonfield/htscodecs": "^0.5.1",
|
|
47
|
-
"abortable-promise-cache": "^1.2.0",
|
|
48
48
|
"buffer-crc32": "^1.0.0",
|
|
49
49
|
"bzip2": "^0.1.1",
|
|
50
50
|
"long": "^4.0.0",
|
|
@@ -54,30 +54,25 @@
|
|
|
54
54
|
"xz-decompress": "^0.2.1"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@babel/plugin-transform-modules-commonjs": "^7.18.2",
|
|
58
|
-
"@babel/preset-typescript": "^7.17.12",
|
|
59
57
|
"@gmod/indexedfasta": "^2.1.0",
|
|
60
58
|
"@types/jest": "^29.5.12",
|
|
61
|
-
"@types/long": "^4.0.
|
|
59
|
+
"@types/long": "^4.0.0",
|
|
62
60
|
"@types/md5": "^2.3.2",
|
|
63
61
|
"@types/pako": "^1.0.3",
|
|
64
62
|
"@typescript-eslint/eslint-plugin": "^7.0.2",
|
|
65
63
|
"@typescript-eslint/parser": "^7.0.2",
|
|
66
64
|
"buffer": "^6.0.3",
|
|
67
65
|
"documentation": "^14.0.3",
|
|
68
|
-
"eslint": "^
|
|
66
|
+
"eslint": "^9.0.0",
|
|
69
67
|
"eslint-config-prettier": "^9.0.0",
|
|
70
|
-
"eslint-plugin-import": "^2.25.4",
|
|
71
68
|
"eslint-plugin-prettier": "^5.1.3",
|
|
72
|
-
"eslint-plugin-unicorn": "^
|
|
73
|
-
"glob": "^10.3.1",
|
|
69
|
+
"eslint-plugin-unicorn": "^54.0.0",
|
|
74
70
|
"jest": "^29.3.1",
|
|
75
71
|
"mock-fs": "^5.2.0",
|
|
76
72
|
"prettier": "^3.2.5",
|
|
77
73
|
"rimraf": "^5.0.1",
|
|
78
74
|
"ts-jest": "^29.1.2",
|
|
79
75
|
"typescript": "^5.0.3",
|
|
80
|
-
"url": "^0.11.0",
|
|
81
76
|
"webpack": "^5.90.3",
|
|
82
77
|
"webpack-cli": "^5.0.1"
|
|
83
78
|
},
|
package/src/craiIndex.ts
CHANGED
package/src/indexedCramFile.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { CramUnimplementedError } from './errors'
|
|
3
2
|
import CramFile from './cramFile'
|
|
4
3
|
import CramRecord from './cramFile/record'
|
|
5
4
|
import { SeqFetch } from './cramFile/file'
|
|
@@ -24,7 +23,6 @@ export interface CramIndexLike {
|
|
|
24
23
|
export default class IndexedCramFile {
|
|
25
24
|
public cram: CramFile
|
|
26
25
|
public index: CramIndexLike
|
|
27
|
-
private fetchSizeLimit: number
|
|
28
26
|
|
|
29
27
|
/**
|
|
30
28
|
*
|
|
@@ -32,14 +30,12 @@ export default class IndexedCramFile {
|
|
|
32
30
|
* @param {CramFile} args.cram
|
|
33
31
|
* @param {Index-like} args.index object that supports getEntriesForRange(seqId,start,end) -> Promise[Array[index entries]]
|
|
34
32
|
* @param {number} [args.cacheSize] optional maximum number of CRAM records to cache. default 20,000
|
|
35
|
-
* @param {number} [args.fetchSizeLimit] optional maximum number of bytes to fetch in a single getRecordsForRange call. Default 3 MiB.
|
|
36
33
|
* @param {boolean} [args.checkSequenceMD5] - default true. if false, disables verifying the MD5
|
|
37
34
|
* checksum of the reference sequence underlying a slice. In some applications, this check can cause an inconvenient amount (many megabases) of sequences to be fetched.
|
|
38
35
|
*/
|
|
39
36
|
constructor(
|
|
40
37
|
args: {
|
|
41
38
|
index: CramIndexLike
|
|
42
|
-
fetchSizeLimit?: number
|
|
43
39
|
} & (
|
|
44
40
|
| { cram: CramFile }
|
|
45
41
|
| ({
|
|
@@ -70,8 +66,6 @@ export default class IndexedCramFile {
|
|
|
70
66
|
if (!this.index.getEntriesForRange) {
|
|
71
67
|
throw new Error('invalid arguments: not an index')
|
|
72
68
|
}
|
|
73
|
-
|
|
74
|
-
this.fetchSizeLimit = args.fetchSizeLimit || 3000000
|
|
75
69
|
}
|
|
76
70
|
|
|
77
71
|
/**
|
|
@@ -103,12 +97,6 @@ export default class IndexedCramFile {
|
|
|
103
97
|
}
|
|
104
98
|
const seqId = seq
|
|
105
99
|
const slices = await this.index.getEntriesForRange(seqId, start, end)
|
|
106
|
-
const totalSize = slices.map(s => s.sliceBytes).reduce((a, b) => a + b, 0)
|
|
107
|
-
if (totalSize > this.fetchSizeLimit) {
|
|
108
|
-
throw new CramSizeLimitError(
|
|
109
|
-
`data size of ${totalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`,
|
|
110
|
-
)
|
|
111
|
-
}
|
|
112
100
|
|
|
113
101
|
// TODO: do we need to merge or de-duplicate the blocks?
|
|
114
102
|
|
|
@@ -180,17 +168,7 @@ export default class IndexedCramFile {
|
|
|
180
168
|
|
|
181
169
|
const mateRecordPromises = []
|
|
182
170
|
const mateFeatPromises: Promise<CramRecord[]>[] = []
|
|
183
|
-
|
|
184
|
-
const mateTotalSize = mateChunks
|
|
185
|
-
.map(s => s.sliceBytes)
|
|
186
|
-
.reduce((a, b) => a + b, 0)
|
|
187
|
-
if (mateTotalSize > this.fetchSizeLimit) {
|
|
188
|
-
throw new Error(
|
|
189
|
-
`mate data size of ${mateTotalSize.toLocaleString()} bytes exceeded fetch size limit of ${this.fetchSizeLimit.toLocaleString()} bytes`,
|
|
190
|
-
)
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
mateChunks.forEach(c => {
|
|
171
|
+
for (const c of mateChunks) {
|
|
194
172
|
let recordPromise = this.cram.featureCache.get(c.toString())
|
|
195
173
|
if (!recordPromise) {
|
|
196
174
|
recordPromise = this.getRecordsInSlice(c, () => true)
|
|
@@ -210,7 +188,7 @@ export default class IndexedCramFile {
|
|
|
210
188
|
return mateRecs
|
|
211
189
|
})
|
|
212
190
|
mateFeatPromises.push(featPromise)
|
|
213
|
-
}
|
|
191
|
+
}
|
|
214
192
|
const newMateFeats = await Promise.all(mateFeatPromises)
|
|
215
193
|
if (newMateFeats.length) {
|
|
216
194
|
const newMates = newMateFeats.reduce((result, current) =>
|
package/src/io/index.ts
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import url from 'url'
|
|
2
|
-
import { ensureNotNullish } from '../typescript'
|
|
3
1
|
import { Filehandle } from '../cramFile/filehandle'
|
|
4
2
|
import { LocalFile, RemoteFile } from 'generic-filehandle'
|
|
5
3
|
|
|
6
|
-
function fromUrl(source: string) {
|
|
7
|
-
const { protocol, pathname } = url.parse(source)
|
|
8
|
-
if (protocol === 'file:') {
|
|
9
|
-
return new LocalFile(unescape(ensureNotNullish(pathname)))
|
|
10
|
-
}
|
|
11
|
-
return new RemoteFile(source)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
4
|
function open(
|
|
15
5
|
maybeUrl?: string,
|
|
16
6
|
maybePath?: string,
|
|
@@ -20,7 +10,7 @@ function open(
|
|
|
20
10
|
return maybeFilehandle
|
|
21
11
|
}
|
|
22
12
|
if (maybeUrl) {
|
|
23
|
-
return
|
|
13
|
+
return new RemoteFile(maybeUrl)
|
|
24
14
|
}
|
|
25
15
|
if (maybePath) {
|
|
26
16
|
return new LocalFile(maybePath)
|
|
@@ -28,6 +18,6 @@ function open(
|
|
|
28
18
|
throw new Error('no url, path, or filehandle provided, cannot open')
|
|
29
19
|
}
|
|
30
20
|
|
|
31
|
-
export {
|
|
21
|
+
export { open }
|
|
32
22
|
|
|
33
23
|
export { LocalFile, RemoteFile } from 'generic-filehandle'
|
package/src/typescript.ts
CHANGED