@gmod/cram 2.0.3 → 3.0.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/CHANGELOG.md +10 -0
- 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/byteArrayLength.js +1 -1
- package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/dist/cramFile/codecs/byteArrayStop.d.ts +0 -1
- package/dist/cramFile/codecs/external.js +1 -1
- package/dist/cramFile/codecs/external.js.map +1 -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/huffman.js +2 -1
- package/dist/cramFile/codecs/huffman.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/compressionScheme.d.ts +0 -3
- package/dist/cramFile/container/compressionScheme.js +0 -4
- package/dist/cramFile/container/compressionScheme.js.map +1 -1
- package/dist/cramFile/container/index.d.ts +57 -5
- package/dist/cramFile/container/index.js +15 -9
- package/dist/cramFile/container/index.js.map +1 -1
- package/dist/cramFile/file.d.ts +24 -61
- package/dist/cramFile/file.js +23 -28
- package/dist/cramFile/file.js.map +1 -1
- package/dist/cramFile/record.d.ts +1 -1
- package/dist/cramFile/sectionParsers.d.ts +195 -49
- package/dist/cramFile/sectionParsers.js +622 -304
- 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/slice/index.d.ts +23 -1
- package/dist/cramFile/slice/index.js +9 -6
- package/dist/cramFile/slice/index.js.map +1 -1
- package/dist/cramFile/util.d.ts +6 -6
- package/dist/cramFile/util.js +93 -12
- 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/byteArrayLength.js +1 -1
- package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayStop.d.ts +0 -1
- package/esm/cramFile/codecs/external.js +1 -1
- package/esm/cramFile/codecs/external.js.map +1 -1
- package/esm/cramFile/codecs/getBits.d.ts +0 -1
- package/esm/cramFile/codecs/huffman.js +2 -1
- package/esm/cramFile/codecs/huffman.js.map +1 -1
- package/esm/cramFile/container/compressionScheme.d.ts +0 -3
- package/esm/cramFile/container/compressionScheme.js +0 -4
- package/esm/cramFile/container/compressionScheme.js.map +1 -1
- package/esm/cramFile/container/index.d.ts +57 -5
- package/esm/cramFile/container/index.js +15 -9
- package/esm/cramFile/container/index.js.map +1 -1
- package/esm/cramFile/file.d.ts +24 -61
- package/esm/cramFile/file.js +22 -25
- package/esm/cramFile/file.js.map +1 -1
- package/esm/cramFile/record.d.ts +1 -1
- package/esm/cramFile/sectionParsers.d.ts +195 -49
- package/esm/cramFile/sectionParsers.js +620 -303
- package/esm/cramFile/sectionParsers.js.map +1 -1
- package/esm/cramFile/slice/index.d.ts +23 -1
- package/esm/cramFile/slice/index.js +10 -7
- package/esm/cramFile/slice/index.js.map +1 -1
- package/esm/cramFile/util.d.ts +6 -6
- package/esm/cramFile/util.js +87 -6
- package/esm/cramFile/util.js.map +1 -1
- 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 +9 -15
- package/src/craiIndex.ts +1 -1
- package/src/cramFile/codecs/byteArrayLength.ts +1 -2
- package/src/cramFile/codecs/external.ts +1 -1
- package/src/cramFile/codecs/huffman.ts +2 -1
- package/src/cramFile/container/compressionScheme.ts +1 -8
- package/src/cramFile/container/index.ts +21 -10
- package/src/cramFile/file.ts +28 -43
- package/src/cramFile/record.ts +1 -1
- package/src/cramFile/sectionParsers.ts +668 -390
- package/src/cramFile/slice/index.ts +11 -5
- package/src/cramFile/util.ts +90 -91
- package/src/indexedCramFile.ts +3 -25
- package/src/io/index.ts +2 -12
- package/src/typescript.ts +0 -7
- package/src/typings/binary-parser.d.ts +0 -44
|
@@ -3,8 +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
|
-
const util_1 = require("../util");
|
|
7
6
|
const _base_1 = __importDefault(require("./_base"));
|
|
7
|
+
const util_1 = require("../util");
|
|
8
8
|
class ByteArrayStopCodec extends _base_1.default {
|
|
9
9
|
constructor(parameters, dataType, instantiateCodec) {
|
|
10
10
|
super(parameters, dataType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"byteArrayLength.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/byteArrayLength.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4C;AAK5C,kCAAqC;AAOrC,MAAqB,kBAAmB,SAAQ,eAG/C;IAGC,YACE,UAAiD,EACjD,QAAqB,EACrB,gBAAkC;QAElC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CACjB,8CAA8C,QAAQ,EAAE,CACzD,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CACpC,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CACxB,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,OAAO,CACR,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU;IACV,eAAe;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAA;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC;IAED,UAAU;IACV,aAAa;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AA3DD,qCA2DC;AAED,+BAA+B;KAC5B,KAAK,CAAC,GAAG,CAAC;KACV,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,kBAAW,EAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA"}
|
|
@@ -25,7 +25,7 @@ class ExternalCodec extends _base_1.default {
|
|
|
25
25
|
const { blockContentId } = this.parameters;
|
|
26
26
|
const contentBlock = blocksByContentId[blockContentId];
|
|
27
27
|
if (!contentBlock) {
|
|
28
|
-
throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}`);
|
|
28
|
+
throw new errors_1.CramMalformedError(`no block found with content ID ${blockContentId}}`);
|
|
29
29
|
}
|
|
30
30
|
const cursor = cursors.externalBlocks.getCursor(blockContentId);
|
|
31
31
|
return this._decodeData(contentBlock, cursor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,sDAAsD;AACtD,yCAAyE;AACzE,oDAAoD;AACpD,kCAAmC;AAGnC,uCAAkD;AAGlD,MAAqB,aAAc,SAAQ,eAG1C;IAMC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":";;;;;AAAA,sDAAsD;AACtD,yCAAyE;AACzE,oDAAoD;AACpD,kCAAmC;AAGnC,uCAAkD;AAGlD,MAAqB,aAAc,SAAQ,eAG1C;IAMC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAA;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,+BAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,KAAgB,EAChB,aAA4B,EAC5B,iBAAgD,EAChD,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QAC1C,MAAM,YAAY,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,2BAAkB,CAC1B,kCAAkC,cAAc,GAAG,CACpD,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,UAAU,CAAC,YAA2B,EAAE,MAAc;QACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAS,EACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;QACD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,SAAS,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,WAAW,CAAC,YAA2B,EAAE,MAAc;QACrD,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,gCAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,CAAC;CACF;AA3DD,gCA2DC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CramBufferOverrunError = void 0;
|
|
4
|
+
exports.getBits = getBits;
|
|
4
5
|
class CramBufferOverrunError extends Error {
|
|
5
6
|
}
|
|
6
7
|
exports.CramBufferOverrunError = CramBufferOverrunError;
|
|
@@ -22,5 +23,4 @@ function getBits(data, cursor, numBits) {
|
|
|
22
23
|
}
|
|
23
24
|
return val;
|
|
24
25
|
}
|
|
25
|
-
exports.getBits = getBits;
|
|
26
26
|
//# sourceMappingURL=getBits.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":";;;AAEA,0BAyBC;AA3BD,MAAa,sBAAuB,SAAQ,KAAK;CAAG;AAApD,wDAAoD;AAEpD,SAAgB,OAAO,CACrB,IAAY,EACZ,MAAqD,EACrD,OAAe;IAEf,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IACE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5D,IAAI,CAAC,MAAM,EACX,CAAC;QACD,MAAM,IAAI,sBAAsB,CAC9B,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,yDAAyD;QACzD,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QAC1B,CAAC;QACD,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -28,7 +28,8 @@ class HuffmanIntCodec extends _base_1.default {
|
|
|
28
28
|
this.buildCodeBook();
|
|
29
29
|
this.buildCodes();
|
|
30
30
|
this.buildCaches();
|
|
31
|
-
// if this is a degenerate zero-length huffman code, special-case the
|
|
31
|
+
// if this is a degenerate zero-length huffman code, special-case the
|
|
32
|
+
// decoding
|
|
32
33
|
if (this.sortedCodes[0].bitLength === 0) {
|
|
33
34
|
this._decode = this._decodeZeroLengthCode;
|
|
34
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":";;;;;AAAA,sDAAsD;AACtD,yCAAiD;AACjD,oDAAoD;AACpD,uCAAmC;AAMnC,SAAS,eAAe,CAAC,EAAU;IACjC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;IACrC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;IAC9C,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAA;AAC3D,CAAC;AAQD,MAAqB,eAAgB,SAAQ,eAG5C;IASC,YACE,UAAyC,EACzC,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAZrB,UAAK,GAAyB,EAAE,CAAA;QAChC,aAAQ,GAA6B,EAAE,CAAA;QACvC,gBAAW,GAAW,EAAE,CAAA;QACxB,0BAAqB,GAAa,EAAE,CAAA;QACpC,mBAAc,GAAa,EAAE,CAAA;QAC7B,8BAAyB,GAAa,EAAE,CAAA;QACxC,mBAAc,GAAa,EAAE,CAAA;QAOnC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,CAAC,QAAQ,oDAAoD,CACrE,CAAA;QACH,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,
|
|
1
|
+
{"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +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.instantiateCodec =
|
|
6
|
+
exports.instantiateCodec = instantiateCodec;
|
|
7
7
|
const errors_1 = require("../../errors");
|
|
8
8
|
const huffman_1 = __importDefault(require("./huffman"));
|
|
9
9
|
const external_1 = __importDefault(require("./external"));
|
|
@@ -33,5 +33,4 @@ function instantiateCodec(encodingData, dataType) {
|
|
|
33
33
|
}
|
|
34
34
|
return new CodecClass(encodingData.parameters, dataType, instantiateCodec);
|
|
35
35
|
}
|
|
36
|
-
exports.instantiateCodec = instantiateCodec;
|
|
37
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/index.ts"],"names":[],"mappings":";;;;;AA6BA,4CAcC;AA3CD,yCAAqD;AAErD,wDAAuC;AACvC,0DAAsC;AACtC,oEAAgD;AAChD,wEAAoD;AACpD,kDAA8B;AAC9B,oDAAgC;AAChC,sDAAkC;AAKlC,MAAM,YAAY,GAAG;IACnB,CAAC,EAAE,kBAAa;IAChB,kBAAkB;IAClB,CAAC,EAAE,iBAAe;IAClB,CAAC,EAAE,yBAAoB;IACvB,CAAC,EAAE,uBAAkB;IACrB,CAAC,EAAE,cAAS;IACZ,CAAC,EAAE,gBAAW;IACd,sBAAsB;IACtB,CAAC,EAAE,eAAU;CACd,CAAA;AAED,SAAS,mBAAmB,CAAC,EAAU;IACrC,OAAQ,YAAoB,CAAC,EAAE,CAAC,CAAA;AAClC,CAAC;AAED,SAAgB,gBAAgB,CAC9B,YAA0B,EAC1B,QAA6B;IAE7B,MAAM,UAAU,GAAG,mBAAmB,CACpC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CACjD,CAAA;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,+BAAsB,CAC9B,qCAAqC,YAAY,CAAC,OAAO,EAAE,CAC5D,CAAA;IACH,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAA;AAC5E,CAAC"}
|
|
@@ -48,9 +48,6 @@ export default class CramContainerCompressionScheme {
|
|
|
48
48
|
tagCodecCache: Record<string, CramCodec>;
|
|
49
49
|
tagEncoding: Record<string, CramEncoding>;
|
|
50
50
|
dataSeriesEncoding: DataSeriesEncodingMap;
|
|
51
|
-
private preservation;
|
|
52
|
-
private _endPosition;
|
|
53
|
-
private _size;
|
|
54
51
|
constructor(content: CramCompressionHeader);
|
|
55
52
|
/**
|
|
56
53
|
* @param {string} tagName three-character tag name
|
|
@@ -70,7 +70,6 @@ class CramContainerCompressionScheme {
|
|
|
70
70
|
this.dataSeriesCodecCache = {};
|
|
71
71
|
this.tagCodecCache = {};
|
|
72
72
|
this.tagEncoding = {};
|
|
73
|
-
// Object.assign(this, content)
|
|
74
73
|
// interpret some of the preservation map tags for convenient use
|
|
75
74
|
this.readNamesIncluded = content.preservation.RN;
|
|
76
75
|
this.APdelta = content.preservation.AP;
|
|
@@ -79,9 +78,6 @@ class CramContainerCompressionScheme {
|
|
|
79
78
|
this.substitutionMatrix = parseSubstitutionMatrix(content.preservation.SM);
|
|
80
79
|
this.dataSeriesEncoding = content.dataSeriesEncoding;
|
|
81
80
|
this.tagEncoding = content.tagEncoding;
|
|
82
|
-
this.preservation = content.preservation;
|
|
83
|
-
this._size = content._size;
|
|
84
|
-
this._endPosition = content._endPosition;
|
|
85
81
|
}
|
|
86
82
|
/**
|
|
87
83
|
* @param {string} tagName three-character tag name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressionScheme.js","sourceRoot":"","sources":["../../../src/cramFile/container/compressionScheme.ts"],"names":[],"mappings":";;AAAA,sCAA4C;AAI5C,yCAAiD;AAMjD,sDAAsD;AACtD,aAAa;AACb,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,gBAAgB;IAChB,gBAAgB;CACR,CAAA;AAIV,SAAS,uBAAuB,CAAC,SAAmB;IAClD,MAAM,MAAM,GAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,OAAO,MAAM,CAAA;AACf,CAAC;AAMD,MAAqB,8BAA8B;
|
|
1
|
+
{"version":3,"file":"compressionScheme.js","sourceRoot":"","sources":["../../../src/cramFile/container/compressionScheme.ts"],"names":[],"mappings":";;AAAA,sCAA4C;AAI5C,yCAAiD;AAMjD,sDAAsD;AACtD,aAAa;AACb,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,KAAK;IACT,gBAAgB;IAChB,gBAAgB;CACR,CAAA;AAIV,SAAS,uBAAuB,CAAC,SAAmB;IAClD,MAAM,MAAM,GAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IAExC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CA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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';
|
|
@@ -6,9 +5,39 @@ export default class CramContainer {
|
|
|
6
5
|
file: CramFile;
|
|
7
6
|
filePosition: number;
|
|
8
7
|
constructor(file: CramFile, filePosition: number);
|
|
9
|
-
getHeader(): Promise<
|
|
8
|
+
getHeader(): Promise<({
|
|
9
|
+
length: number;
|
|
10
|
+
refSeqId: number;
|
|
11
|
+
refSeqStart: number;
|
|
12
|
+
alignmentSpan: number;
|
|
13
|
+
numBlocks: number;
|
|
14
|
+
numLandmarks: number;
|
|
15
|
+
numBases: number | undefined;
|
|
16
|
+
recordCounter: number;
|
|
17
|
+
numRecords: number;
|
|
18
|
+
} & {
|
|
19
|
+
_endPosition: number;
|
|
20
|
+
_size: number;
|
|
21
|
+
} & {
|
|
22
|
+
numLandmarks: number;
|
|
23
|
+
landmarks: number[];
|
|
24
|
+
crc32?: number | undefined;
|
|
25
|
+
} & {
|
|
26
|
+
_endPosition: number;
|
|
27
|
+
_size: number;
|
|
28
|
+
} & {
|
|
29
|
+
_size: number;
|
|
30
|
+
_endPosition: number;
|
|
31
|
+
}) | undefined>;
|
|
10
32
|
getCompressionHeaderBlock(): Promise<{
|
|
11
|
-
parsedContent:
|
|
33
|
+
parsedContent: {
|
|
34
|
+
dataSeriesEncoding: import("../codecs/dataSeriesTypes").DataSeriesEncodingMap;
|
|
35
|
+
preservation: import("../sectionParsers").CramPreservationMap;
|
|
36
|
+
tagEncoding: Record<string, import("../encoding").CramEncoding>;
|
|
37
|
+
} & {
|
|
38
|
+
_endPosition: number;
|
|
39
|
+
_size: number;
|
|
40
|
+
};
|
|
12
41
|
compressionMethod: import("../sectionParsers").CompressionMethod;
|
|
13
42
|
contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
|
|
14
43
|
contentId: number;
|
|
@@ -18,10 +47,33 @@ export default class CramContainer {
|
|
|
18
47
|
contentPosition: number;
|
|
19
48
|
_size: number;
|
|
20
49
|
content: Buffer;
|
|
21
|
-
crc32?: number
|
|
50
|
+
crc32?: number;
|
|
22
51
|
} | null | undefined>;
|
|
23
52
|
getFirstBlock(): Promise<import("../file").CramFileBlock | undefined>;
|
|
24
53
|
getCompressionScheme(): Promise<CramContainerCompressionScheme | undefined>;
|
|
25
54
|
getSlice(slicePosition: number, sliceSize: number): CramSlice;
|
|
26
|
-
_readContainerHeader(position: number): Promise<
|
|
55
|
+
_readContainerHeader(position: number): Promise<({
|
|
56
|
+
length: number;
|
|
57
|
+
refSeqId: number;
|
|
58
|
+
refSeqStart: number;
|
|
59
|
+
alignmentSpan: number;
|
|
60
|
+
numBlocks: number;
|
|
61
|
+
numLandmarks: number;
|
|
62
|
+
numBases: number | undefined;
|
|
63
|
+
recordCounter: number;
|
|
64
|
+
numRecords: number;
|
|
65
|
+
} & {
|
|
66
|
+
_endPosition: number;
|
|
67
|
+
_size: number;
|
|
68
|
+
} & {
|
|
69
|
+
numLandmarks: number;
|
|
70
|
+
landmarks: number[];
|
|
71
|
+
crc32?: number | undefined;
|
|
72
|
+
} & {
|
|
73
|
+
_endPosition: number;
|
|
74
|
+
_size: number;
|
|
75
|
+
} & {
|
|
76
|
+
_size: number;
|
|
77
|
+
_endPosition: number;
|
|
78
|
+
}) | undefined>;
|
|
27
79
|
}
|
|
@@ -16,24 +16,25 @@ const errors_1 = require("../../errors");
|
|
|
16
16
|
const util_1 = require("../util");
|
|
17
17
|
const slice_1 = __importDefault(require("../slice"));
|
|
18
18
|
const compressionScheme_1 = __importDefault(require("./compressionScheme"));
|
|
19
|
+
const sectionParsers_1 = require("../sectionParsers");
|
|
19
20
|
class CramContainer {
|
|
20
21
|
constructor(file, filePosition) {
|
|
21
22
|
this.file = file;
|
|
22
23
|
this.filePosition = filePosition;
|
|
23
24
|
}
|
|
24
|
-
// memoize
|
|
25
25
|
getHeader() {
|
|
26
26
|
return this._readContainerHeader(this.filePosition);
|
|
27
27
|
}
|
|
28
|
-
// memoize
|
|
29
28
|
getCompressionHeaderBlock() {
|
|
30
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
30
|
const containerHeader = yield this.getHeader();
|
|
32
|
-
// if there are no records in the container, there will be no compression
|
|
33
|
-
|
|
31
|
+
// if there are no records in the container, there will be no compression
|
|
32
|
+
// header
|
|
33
|
+
if (!(containerHeader === null || containerHeader === void 0 ? void 0 : containerHeader.numRecords)) {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
|
-
const
|
|
36
|
+
const { majorVersion } = yield this.file.getDefinition();
|
|
37
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
37
38
|
const block = yield this.getFirstBlock();
|
|
38
39
|
if (block === undefined) {
|
|
39
40
|
return undefined;
|
|
@@ -48,11 +49,14 @@ class CramContainer {
|
|
|
48
49
|
getFirstBlock() {
|
|
49
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
51
|
const containerHeader = yield this.getHeader();
|
|
52
|
+
if (!containerHeader) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
51
55
|
return this.file.readBlock(containerHeader._endPosition);
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
|
-
// parses the compression header data into a CramContainerCompressionScheme
|
|
55
|
-
//
|
|
58
|
+
// parses the compression header data into a CramContainerCompressionScheme
|
|
59
|
+
// object
|
|
56
60
|
getCompressionScheme() {
|
|
57
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
58
62
|
const header = yield this.getCompressionHeaderBlock();
|
|
@@ -69,10 +73,12 @@ class CramContainer {
|
|
|
69
73
|
}
|
|
70
74
|
_readContainerHeader(position) {
|
|
71
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const
|
|
76
|
+
const { majorVersion } = yield this.file.getDefinition();
|
|
77
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
73
78
|
const { cramContainerHeader1, cramContainerHeader2 } = sectionParsers;
|
|
74
79
|
const { size: fileSize } = yield this.file.stat();
|
|
75
80
|
if (position >= fileSize) {
|
|
81
|
+
console.warn(`position:${position}>=fileSize:${fileSize} in cram container`);
|
|
76
82
|
return undefined;
|
|
77
83
|
}
|
|
78
84
|
// parse the container header. do it in 2 pieces because you cannot tell
|
|
@@ -82,7 +88,7 @@ class CramContainer {
|
|
|
82
88
|
const header1 = (0, util_1.parseItem)(bytes1, cramContainerHeader1.parser);
|
|
83
89
|
const numLandmarksSize = (0, util_1.itf8Size)(header1.numLandmarks);
|
|
84
90
|
if (position + header1.length >= fileSize) {
|
|
85
|
-
console.warn(
|
|
91
|
+
console.warn(`container header at ${position} indicates that the container has length ${header1.length}, which extends beyond the length of the file. Skipping this container.`);
|
|
86
92
|
return undefined;
|
|
87
93
|
}
|
|
88
94
|
const bytes2 = Buffer.allocUnsafe(cramContainerHeader2.maxLength(header1.numLandmarks));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/container/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yCAAiD;AAEjD,kCAA0D;AAC1D,qDAAgC;AAChC,4EAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/container/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cramFile/file.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/// <reference path="../../src/typings/binary-parser.d.ts" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import QuickLRU from 'quick-lru';
|
|
4
|
-
import { Parser } from '@gmod/binary-parser';
|
|
5
2
|
import { BlockHeader, CompressionMethod } from './sectionParsers';
|
|
6
3
|
import CramContainer from './container';
|
|
7
4
|
import CramRecord from './record';
|
|
@@ -40,7 +37,12 @@ export default class CramFile {
|
|
|
40
37
|
buffer: Buffer;
|
|
41
38
|
}>;
|
|
42
39
|
stat(): Promise<import("generic-filehandle").Stats>;
|
|
43
|
-
getDefinition(): Promise<
|
|
40
|
+
getDefinition(): Promise<{
|
|
41
|
+
magic: string;
|
|
42
|
+
majorVersion: number;
|
|
43
|
+
minorVersion: number;
|
|
44
|
+
fileId: string;
|
|
45
|
+
}>;
|
|
44
46
|
getSamHeader(): Promise<{
|
|
45
47
|
tag: string;
|
|
46
48
|
data: {
|
|
@@ -49,60 +51,6 @@ export default class CramFile {
|
|
|
49
51
|
}[];
|
|
50
52
|
}[]>;
|
|
51
53
|
getHeaderText(): Promise<string | undefined>;
|
|
52
|
-
getSectionParsers(): Promise<{
|
|
53
|
-
cramFileDefinition: {
|
|
54
|
-
parser: Parser<{
|
|
55
|
-
magic: string;
|
|
56
|
-
majorVersion: number;
|
|
57
|
-
minorVersion: number;
|
|
58
|
-
fileId: string;
|
|
59
|
-
}>;
|
|
60
|
-
maxLength: number;
|
|
61
|
-
};
|
|
62
|
-
cramContainerHeader1: {
|
|
63
|
-
parser: Parser<{
|
|
64
|
-
length: number;
|
|
65
|
-
refSeqId: number;
|
|
66
|
-
refSeqStart: number;
|
|
67
|
-
alignmentSpan: number;
|
|
68
|
-
numRecords: number;
|
|
69
|
-
recordCounter: number;
|
|
70
|
-
numBases: number;
|
|
71
|
-
numBlocks: number;
|
|
72
|
-
numLandmarks: number;
|
|
73
|
-
}>;
|
|
74
|
-
maxLength: number;
|
|
75
|
-
};
|
|
76
|
-
cramContainerHeader2: {
|
|
77
|
-
parser: Parser<{
|
|
78
|
-
numLandmarks: number;
|
|
79
|
-
landmarks: number[];
|
|
80
|
-
crc32: number;
|
|
81
|
-
}>;
|
|
82
|
-
maxLength: (x: number) => number;
|
|
83
|
-
};
|
|
84
|
-
cramBlockHeader: {
|
|
85
|
-
parser: Parser<BlockHeader>;
|
|
86
|
-
maxLength: number;
|
|
87
|
-
};
|
|
88
|
-
cramBlockCrc32: {
|
|
89
|
-
parser: Parser<{
|
|
90
|
-
crc32: number;
|
|
91
|
-
}>;
|
|
92
|
-
maxLength: number;
|
|
93
|
-
};
|
|
94
|
-
cramCompressionHeader: {
|
|
95
|
-
parser: Parser<import("./sectionParsers").CramCompressionHeader>;
|
|
96
|
-
};
|
|
97
|
-
cramMappedSliceHeader: {
|
|
98
|
-
parser: Parser<import("./sectionParsers").MappedSliceHeader>;
|
|
99
|
-
maxLength: (numContentIds: number) => number;
|
|
100
|
-
};
|
|
101
|
-
cramUnmappedSliceHeader: {
|
|
102
|
-
parser: Parser<import("./sectionParsers").UnmappedSliceHeader>;
|
|
103
|
-
maxLength: (numContentIds: number) => number;
|
|
104
|
-
};
|
|
105
|
-
}>;
|
|
106
54
|
getContainerById(containerNumber: number): Promise<CramContainer | undefined>;
|
|
107
55
|
checkCrc32(position: number, length: number, recordedCrc32: number, description: string): Promise<void>;
|
|
108
56
|
/**
|
|
@@ -110,11 +58,26 @@ export default class CramFile {
|
|
|
110
58
|
*/
|
|
111
59
|
containerCount(): Promise<number | undefined>;
|
|
112
60
|
getContainerAtPosition(position: number): CramContainer;
|
|
113
|
-
readBlockHeader(position: number): Promise<
|
|
61
|
+
readBlockHeader(position: number): Promise<({
|
|
62
|
+
uncompressedSize: number;
|
|
63
|
+
compressedSize: number;
|
|
64
|
+
contentId: number;
|
|
65
|
+
contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
|
|
66
|
+
compressionMethod: CompressionMethod;
|
|
67
|
+
} & {
|
|
68
|
+
_endPosition: number;
|
|
69
|
+
_size: number;
|
|
70
|
+
}) | undefined>;
|
|
114
71
|
_parseSection<T>(section: {
|
|
115
|
-
parser: Parser<T>;
|
|
116
72
|
maxLength: number;
|
|
117
|
-
|
|
73
|
+
parser: (buffer: Buffer, offset: number) => {
|
|
74
|
+
offset: number;
|
|
75
|
+
value: T;
|
|
76
|
+
};
|
|
77
|
+
}, position: number, size?: number, preReadBuffer?: undefined): Promise<(T & {
|
|
78
|
+
_endPosition: number;
|
|
79
|
+
_size: number;
|
|
80
|
+
}) | undefined>;
|
|
118
81
|
_uncompress(compressionMethod: CompressionMethod, inputBuffer: Buffer, outputBuffer: Buffer): Promise<void>;
|
|
119
82
|
readBlock(position: number): Promise<CramFileBlock | undefined>;
|
|
120
83
|
}
|
package/dist/cramFile/file.js
CHANGED
|
@@ -34,18 +34,18 @@ function bufferToStream(buf) {
|
|
|
34
34
|
},
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
|
-
//source:https://abdulapopoola.com/2019/01/20/check-endianness-with-javascript/
|
|
37
|
+
// source:https://abdulapopoola.com/2019/01/20/check-endianness-with-javascript/
|
|
38
38
|
function getEndianness() {
|
|
39
39
|
const uInt32 = new Uint32Array([0x11223344]);
|
|
40
40
|
const uInt8 = new Uint8Array(uInt32.buffer);
|
|
41
41
|
if (uInt8[0] === 0x44) {
|
|
42
|
-
return 0; //little-endian
|
|
42
|
+
return 0; // little-endian
|
|
43
43
|
}
|
|
44
44
|
else if (uInt8[0] === 0x11) {
|
|
45
|
-
return 1; //big-endian
|
|
45
|
+
return 1; // big-endian
|
|
46
46
|
}
|
|
47
47
|
else {
|
|
48
|
-
return 2; //mixed-endian?
|
|
48
|
+
return 2; // mixed-endian?
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
class CramFile {
|
|
@@ -80,10 +80,10 @@ class CramFile {
|
|
|
80
80
|
// memoized
|
|
81
81
|
getDefinition() {
|
|
82
82
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
const { maxLength, parser } = (0, sectionParsers_1.cramFileDefinition)();
|
|
84
|
+
const headbytes = Buffer.allocUnsafe(maxLength);
|
|
85
|
+
yield this.file.read(headbytes, 0, maxLength, 0);
|
|
86
|
+
const definition = parser(headbytes).value;
|
|
87
87
|
if (definition.majorVersion !== 2 && definition.majorVersion !== 3) {
|
|
88
88
|
throw new errors_1.CramUnimplementedError(`CRAM version ${definition.majorVersion} not supported`);
|
|
89
89
|
}
|
|
@@ -119,22 +119,16 @@ class CramFile {
|
|
|
119
119
|
return this.header;
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
|
-
// memoize
|
|
123
|
-
getSectionParsers() {
|
|
124
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
const { majorVersion } = yield this.getDefinition();
|
|
126
|
-
return (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
122
|
getContainerById(containerNumber) {
|
|
130
123
|
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
-
const
|
|
124
|
+
const { majorVersion } = yield this.getDefinition();
|
|
125
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
132
126
|
let position = sectionParsers.cramFileDefinition.maxLength;
|
|
133
127
|
const { size: fileSize } = yield this.file.stat();
|
|
134
128
|
const { cramContainerHeader1 } = sectionParsers;
|
|
135
129
|
// skip with a series of reads to the proper container
|
|
136
130
|
let currentContainer;
|
|
137
|
-
for (let i = 0; i <= containerNumber; i
|
|
131
|
+
for (let i = 0; i <= containerNumber; i++) {
|
|
138
132
|
// if we are about to go off the end of the file
|
|
139
133
|
// and have not found that container, it does not exist
|
|
140
134
|
if (position + cramContainerHeader1.maxLength + 8 >= fileSize) {
|
|
@@ -145,13 +139,12 @@ class CramFile {
|
|
|
145
139
|
if (!currentHeader) {
|
|
146
140
|
throw new errors_1.CramMalformedError(`container ${containerNumber} not found in file`);
|
|
147
141
|
}
|
|
148
|
-
// if this is the first container, read all the blocks in the
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
// in htslib
|
|
142
|
+
// if this is the first container, read all the blocks in the container
|
|
143
|
+
// to determine its length, because we cannot trust the container
|
|
144
|
+
// header's given length due to a bug somewhere in htslib
|
|
152
145
|
if (i === 0) {
|
|
153
146
|
position = currentHeader._endPosition;
|
|
154
|
-
for (let j = 0; j < currentHeader.numBlocks; j
|
|
147
|
+
for (let j = 0; j < currentHeader.numBlocks; j++) {
|
|
155
148
|
const block = yield this.readBlock(position);
|
|
156
149
|
if (block === undefined) {
|
|
157
150
|
return undefined;
|
|
@@ -182,7 +175,8 @@ class CramFile {
|
|
|
182
175
|
*/
|
|
183
176
|
containerCount() {
|
|
184
177
|
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
const
|
|
178
|
+
const { majorVersion } = yield this.getDefinition();
|
|
179
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
186
180
|
const { size: fileSize } = yield this.file.stat();
|
|
187
181
|
const { cramContainerHeader1 } = sectionParsers;
|
|
188
182
|
let containerCount = 0;
|
|
@@ -197,7 +191,7 @@ class CramFile {
|
|
|
197
191
|
// header's given length due to a bug somewhere in htslib
|
|
198
192
|
if (containerCount === 0) {
|
|
199
193
|
position = currentHeader._endPosition;
|
|
200
|
-
for (let j = 0; j < currentHeader.numBlocks; j
|
|
194
|
+
for (let j = 0; j < currentHeader.numBlocks; j++) {
|
|
201
195
|
const block = yield this.readBlock(position);
|
|
202
196
|
if (block === undefined) {
|
|
203
197
|
return undefined;
|
|
@@ -219,7 +213,8 @@ class CramFile {
|
|
|
219
213
|
}
|
|
220
214
|
readBlockHeader(position) {
|
|
221
215
|
return __awaiter(this, void 0, void 0, function* () {
|
|
222
|
-
const
|
|
216
|
+
const { majorVersion } = yield this.getDefinition();
|
|
217
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
223
218
|
const { cramBlockHeader } = sectionParsers;
|
|
224
219
|
const { size: fileSize } = yield this.file.stat();
|
|
225
220
|
if (position + cramBlockHeader.maxLength >= fileSize) {
|
|
@@ -230,8 +225,8 @@ class CramFile {
|
|
|
230
225
|
return (0, util_1.parseItem)(buffer, cramBlockHeader.parser, 0, position);
|
|
231
226
|
});
|
|
232
227
|
}
|
|
233
|
-
_parseSection(
|
|
234
|
-
return __awaiter(this,
|
|
228
|
+
_parseSection(section_1, position_1) {
|
|
229
|
+
return __awaiter(this, arguments, void 0, function* (section, position, size = section.maxLength, preReadBuffer = undefined) {
|
|
235
230
|
let buffer;
|
|
236
231
|
if (preReadBuffer) {
|
|
237
232
|
buffer = preReadBuffer;
|
|
@@ -301,7 +296,7 @@ class CramFile {
|
|
|
301
296
|
readBlock(position) {
|
|
302
297
|
return __awaiter(this, void 0, void 0, function* () {
|
|
303
298
|
const { majorVersion } = yield this.getDefinition();
|
|
304
|
-
const sectionParsers =
|
|
299
|
+
const sectionParsers = (0, sectionParsers_1.getSectionParsers)(majorVersion);
|
|
305
300
|
const blockHeader = yield this.readBlockHeader(position);
|
|
306
301
|
if (blockHeader === undefined) {
|
|
307
302
|
return undefined;
|