@gmod/cram 7.0.2 → 8.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.
Files changed (88) hide show
  1. package/dist/cram-bundle.js +1 -1
  2. package/dist/cramFile/codecs/beta.js +27 -3
  3. package/dist/cramFile/codecs/beta.js.map +1 -1
  4. package/dist/cramFile/codecs/external.d.ts +1 -0
  5. package/dist/cramFile/codecs/external.js +15 -0
  6. package/dist/cramFile/codecs/external.js.map +1 -1
  7. package/dist/cramFile/codecs/gamma.js +44 -8
  8. package/dist/cramFile/codecs/gamma.js.map +1 -1
  9. package/dist/cramFile/codecs/getBits.js +18 -2
  10. package/dist/cramFile/codecs/getBits.js.map +1 -1
  11. package/dist/cramFile/codecs/huffman.js +37 -3
  12. package/dist/cramFile/codecs/huffman.js.map +1 -1
  13. package/dist/cramFile/codecs/subexp.js +37 -15
  14. package/dist/cramFile/codecs/subexp.js.map +1 -1
  15. package/dist/cramFile/file.d.ts +1 -1
  16. package/dist/cramFile/file.js +1 -1
  17. package/dist/cramFile/file.js.map +1 -1
  18. package/dist/cramFile/record.d.ts +12 -1
  19. package/dist/cramFile/record.js +18 -5
  20. package/dist/cramFile/record.js.map +1 -1
  21. package/dist/cramFile/slice/decodeRecord.d.ts +4 -3
  22. package/dist/cramFile/slice/decodeRecord.js +95 -53
  23. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  24. package/dist/cramFile/slice/index.d.ts +3 -3
  25. package/dist/cramFile/slice/index.js +63 -8
  26. package/dist/cramFile/slice/index.js.map +1 -1
  27. package/dist/indexedCramFile.d.ts +3 -3
  28. package/dist/indexedCramFile.js +12 -9
  29. package/dist/indexedCramFile.js.map +1 -1
  30. package/dist/wasm/noodles-cram/noodles_cram_wasm.d.ts +1 -0
  31. package/dist/wasm/noodles-cram/noodles_cram_wasm.js +44 -0
  32. package/dist/wasm/noodles-cram/noodles_cram_wasm.js.map +1 -0
  33. package/dist/wasm/noodles-cram/noodles_cram_wasm_bg.d.ts +94 -0
  34. package/dist/wasm/noodles-cram/noodles_cram_wasm_bg.js +578 -0
  35. package/dist/wasm/noodles-cram/noodles_cram_wasm_bg.js.map +1 -0
  36. package/esm/cramFile/codecs/beta.js +27 -3
  37. package/esm/cramFile/codecs/beta.js.map +1 -1
  38. package/esm/cramFile/codecs/external.d.ts +1 -0
  39. package/esm/cramFile/codecs/external.js +15 -0
  40. package/esm/cramFile/codecs/external.js.map +1 -1
  41. package/esm/cramFile/codecs/gamma.js +43 -7
  42. package/esm/cramFile/codecs/gamma.js.map +1 -1
  43. package/esm/cramFile/codecs/getBits.js +18 -2
  44. package/esm/cramFile/codecs/getBits.js.map +1 -1
  45. package/esm/cramFile/codecs/huffman.js +37 -3
  46. package/esm/cramFile/codecs/huffman.js.map +1 -1
  47. package/esm/cramFile/codecs/subexp.js +36 -14
  48. package/esm/cramFile/codecs/subexp.js.map +1 -1
  49. package/esm/cramFile/file.d.ts +1 -1
  50. package/esm/cramFile/file.js +1 -1
  51. package/esm/cramFile/file.js.map +1 -1
  52. package/esm/cramFile/record.d.ts +12 -1
  53. package/esm/cramFile/record.js +17 -4
  54. package/esm/cramFile/record.js.map +1 -1
  55. package/esm/cramFile/slice/decodeRecord.d.ts +4 -3
  56. package/esm/cramFile/slice/decodeRecord.js +95 -53
  57. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  58. package/esm/cramFile/slice/index.d.ts +3 -3
  59. package/esm/cramFile/slice/index.js +30 -8
  60. package/esm/cramFile/slice/index.js.map +1 -1
  61. package/esm/indexedCramFile.d.ts +3 -3
  62. package/esm/indexedCramFile.js +12 -9
  63. package/esm/indexedCramFile.js.map +1 -1
  64. package/esm/wasm/noodles-cram/noodles_cram_wasm.d.ts +1 -0
  65. package/esm/wasm/noodles-cram/noodles_cram_wasm.js +6 -0
  66. package/esm/wasm/noodles-cram/noodles_cram_wasm.js.map +1 -0
  67. package/esm/wasm/noodles-cram/noodles_cram_wasm_bg.d.ts +94 -0
  68. package/esm/wasm/noodles-cram/noodles_cram_wasm_bg.js +529 -0
  69. package/esm/wasm/noodles-cram/noodles_cram_wasm_bg.js.map +1 -0
  70. package/package.json +13 -11
  71. package/src/cramFile/codecs/beta.ts +38 -4
  72. package/src/cramFile/codecs/external.ts +25 -0
  73. package/src/cramFile/codecs/gamma.ts +54 -12
  74. package/src/cramFile/codecs/getBits.ts +21 -2
  75. package/src/cramFile/codecs/huffman.ts +45 -3
  76. package/src/cramFile/codecs/subexp.ts +53 -16
  77. package/src/cramFile/file.ts +1 -1
  78. package/src/cramFile/record.ts +26 -11
  79. package/src/cramFile/slice/decodeRecord.ts +107 -55
  80. package/src/cramFile/slice/index.ts +51 -9
  81. package/src/indexedCramFile.ts +35 -27
  82. package/src/wasm/noodles-cram/.gitignore +1 -0
  83. package/src/wasm/noodles-cram/noodles_cram_wasm.d.ts +42 -0
  84. package/src/wasm/noodles-cram/noodles_cram_wasm.js +5 -0
  85. package/src/wasm/noodles-cram/noodles_cram_wasm_bg.js +541 -0
  86. package/src/wasm/noodles-cram/noodles_cram_wasm_bg.wasm +0 -0
  87. package/src/wasm/noodles-cram/noodles_cram_wasm_bg.wasm.d.ts +18 -0
  88. package/src/wasm/noodles-cram/package.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noodles_cram_wasm_bg.js","sourceRoot":"","sources":["../../../src/wasm/noodles-cram/noodles_cram_wasm_bg.js"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import CramCodec from "./_base.js";
2
- import { getBits } from "./getBits.js";
3
2
  import { CramUnimplementedError } from "../../errors.js";
4
3
  export default class BetaCodec extends CramCodec {
5
4
  constructor(parameters, dataType) {
@@ -9,8 +8,33 @@ export default class BetaCodec extends CramCodec {
9
8
  }
10
9
  }
11
10
  decode(_slice, coreDataBlock, _blocksByContentId, cursors) {
12
- const fromBits = getBits(coreDataBlock.content, cursors.coreBlock, this.parameters.length);
13
- return fromBits - this.parameters.offset;
11
+ return decodeBetaInline(coreDataBlock.content, cursors.coreBlock, this.parameters.length, this.parameters.offset);
14
12
  }
15
13
  }
14
+ /**
15
+ * Optimized beta decoder with inlined bit reading.
16
+ */
17
+ function decodeBetaInline(data, cursor, numBits, offset) {
18
+ let { bytePosition, bitPosition } = cursor;
19
+ // Fast path: reading exactly 8 bits when byte-aligned
20
+ if (numBits === 8 && bitPosition === 7) {
21
+ const val = data[bytePosition];
22
+ cursor.bytePosition = bytePosition + 1;
23
+ return val - offset;
24
+ }
25
+ // General case
26
+ let val = 0;
27
+ for (let i = 0; i < numBits; i++) {
28
+ val <<= 1;
29
+ val |= (data[bytePosition] >> bitPosition) & 1;
30
+ bitPosition -= 1;
31
+ if (bitPosition < 0) {
32
+ bytePosition += 1;
33
+ bitPosition = 7;
34
+ }
35
+ }
36
+ cursor.bytePosition = bytePosition;
37
+ cursor.bitPosition = bitPosition;
38
+ return val - offset;
39
+ }
16
40
  //# sourceMappingURL=beta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"beta.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/beta.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAGtC;IACC,YAAY,UAAsC,EAAE,QAAe;QACjE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,6CAA6C,CAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,MAAM,QAAQ,GAAG,OAAO,CACtB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAA;QACD,OAAO,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"beta.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/beta.ts"],"names":[],"mappings":"AAAA,OAAO,SAA8B,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAGtC;IACC,YAAY,UAAsC,EAAE,QAAe;QACjE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,6CAA6C,CAC9D,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,OAAO,gBAAgB,CACrB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,EACtB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAA;IACH,CAAC;CACF;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,IAAgB,EAChB,MAAc,EACd,OAAe,EACf,MAAc;IAEd,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAE1C,sDAAsD;IACtD,IAAI,OAAO,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAE,CAAA;QAC/B,MAAM,CAAC,YAAY,GAAG,YAAY,GAAG,CAAC,CAAA;QACtC,OAAO,GAAG,GAAG,MAAM,CAAA;IACrB,CAAC;IAED,eAAe;IACf,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/C,WAAW,IAAI,CAAC,CAAA;QAChB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,IAAI,CAAC,CAAA;YACjB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,OAAO,GAAG,GAAG,MAAM,CAAA;AACrB,CAAC"}
@@ -5,4 +5,5 @@ import { ExternalCramEncoding } from '../encoding.ts';
5
5
  export default class ExternalCodec extends CramCodec<'int' | 'byte', ExternalCramEncoding['parameters']> {
6
6
  constructor(parameters: ExternalCramEncoding['parameters'], dataType: 'int' | 'byte');
7
7
  decode(_slice: CramSlice, _coreDataBlock: CramFileBlock, blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number | undefined;
8
+ getBytesSubarray(blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors, length: number): Uint8Array | undefined;
8
9
  }
@@ -28,5 +28,20 @@ export default class ExternalCodec extends CramCodec {
28
28
  return contentBlock.content[cursor.bytePosition++];
29
29
  }
30
30
  }
31
+ getBytesSubarray(blocksByContentId, cursors, length) {
32
+ const { blockContentId } = this.parameters;
33
+ const contentBlock = blocksByContentId[blockContentId];
34
+ if (!contentBlock) {
35
+ return undefined;
36
+ }
37
+ const cursor = cursors.externalBlocks.getCursor(blockContentId);
38
+ const start = cursor.bytePosition;
39
+ const end = start + length;
40
+ if (end > contentBlock.content.length) {
41
+ throw new CramBufferOverrunError('attempted to read beyond end of block. this file seems truncated.');
42
+ }
43
+ cursor.bytePosition = end;
44
+ return contentBlock.content.subarray(start, end);
45
+ }
31
46
  }
32
47
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAG1C;IACC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,cAA6B,EAC7B,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,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAE/D,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;YACD,MAAM,CAAC,YAAY,IAAI,SAAS,CAAA;YAChC,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,sBAAsB,CAC9B,mEAAmE,CACpE,CAAA;YACH,CAAC;YACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAA;QACrD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/external.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAG1C;IACC,YACE,UAA8C,EAC9C,QAAwB;QAExB,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,iDAAiD,CAClE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,cAA6B,EAC7B,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,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAE/D,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CACnC,YAAY,CAAC,OAAO,EACpB,MAAM,CAAC,YAAY,CACpB,CAAA;YACD,MAAM,CAAC,YAAY,IAAI,SAAS,CAAA;YAChC,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,sBAAsB,CAC9B,mEAAmE,CACpE,CAAA;YACH,CAAC;YACD,OAAO,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAE,CAAA;QACrD,CAAC;IACH,CAAC;IAED,gBAAgB,CACd,iBAAgD,EAChD,OAAgB,EAChB,MAAc;QAEd,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,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAA;QACjC,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAA;QAE1B,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,sBAAsB,CAC9B,mEAAmE,CACpE,CAAA;QACH,CAAC;QAED,MAAM,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
1
  import CramCodec from "./_base.js";
2
- import { getBits } from "./getBits.js";
3
2
  import { CramUnimplementedError } from "../../errors.js";
4
3
  export default class GammaCodec extends CramCodec {
5
4
  constructor(parameters, dataType) {
@@ -9,13 +8,50 @@ export default class GammaCodec extends CramCodec {
9
8
  }
10
9
  }
11
10
  decode(_slice, coreDataBlock, _blocksByContentId, cursors) {
12
- let length = 1;
13
- while (getBits(coreDataBlock.content, cursors.coreBlock, 1) === 0) {
14
- length = length + 1;
11
+ return decodeGammaInline(coreDataBlock.content, cursors.coreBlock, this.parameters.offset);
12
+ }
13
+ }
14
+ /**
15
+ * Optimized gamma decoder with inlined bit reading.
16
+ * Avoids function call overhead by inlining the getBits logic.
17
+ */
18
+ function decodeGammaInline(data, cursor, offset) {
19
+ let { bytePosition, bitPosition } = cursor;
20
+ let length = 1;
21
+ // Count leading zeros (each 0 bit increases length)
22
+ // Inline single-bit reads for the while loop
23
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
24
+ while (true) {
25
+ const bit = (data[bytePosition] >> bitPosition) & 1;
26
+ bitPosition -= 1;
27
+ if (bitPosition < 0) {
28
+ bytePosition += 1;
29
+ bitPosition = 7;
30
+ }
31
+ if (bit === 1) {
32
+ break;
33
+ }
34
+ length += 1;
35
+ }
36
+ // Now read (length - 1) more bits for the value
37
+ let readBits = 0;
38
+ const bitsToRead = length - 1;
39
+ if (bitsToRead > 0) {
40
+ // Optimized multi-bit read
41
+ for (let i = 0; i < bitsToRead; i++) {
42
+ readBits <<= 1;
43
+ readBits |= (data[bytePosition] >> bitPosition) & 1;
44
+ bitPosition -= 1;
45
+ if (bitPosition < 0) {
46
+ bytePosition += 1;
47
+ bitPosition = 7;
48
+ }
15
49
  }
16
- const readBits = getBits(coreDataBlock.content, cursors.coreBlock, length - 1);
17
- const value = readBits | (1 << (length - 1));
18
- return value - this.parameters.offset;
19
50
  }
51
+ // Update cursor
52
+ cursor.bytePosition = bytePosition;
53
+ cursor.bitPosition = bitPosition;
54
+ const value = readBits | (1 << (length - 1));
55
+ return value - offset;
20
56
  }
21
57
  //# sourceMappingURL=gamma.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gamma.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/gamma.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAGvC;IACC,YAAY,UAAuC,EAAE,QAAe;QAClE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,8CAA8C,CAC/D,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,IAAI,MAAM,GAAG,CAAC,CAAA;QAEd,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;QACrB,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CACtB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,MAAM,GAAG,CAAC,CACX,CAAA;QAED,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"gamma.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/gamma.ts"],"names":[],"mappings":"AAAA,OAAO,SAA8B,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAGvC;IACC,YAAY,UAAuC,EAAE,QAAe;QAClE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,8CAA8C,CAC/D,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,OAAO,iBAAiB,CACtB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAA;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,IAAgB,EAChB,MAAc,EACd,MAAc;IAEd,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAC1C,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,oDAAoD;IACpD,6CAA6C;IAC7C,uEAAuE;IACvE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QACpD,WAAW,IAAI,CAAC,CAAA;QAChB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,IAAI,CAAC,CAAA;YACjB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,MAAK;QACP,CAAC;QACD,MAAM,IAAI,CAAC,CAAA;IACb,CAAC;IAED,gDAAgD;IAChD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,CAAA;IAC7B,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,2BAA2B;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,QAAQ,KAAK,CAAC,CAAA;YACd,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;YACpD,WAAW,IAAI,CAAC,CAAA;YAChB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,YAAY,IAAI,CAAC,CAAA;gBACjB,WAAW,GAAG,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,MAAM,CAAC,WAAW,GAAG,WAAoC,CAAA;IAEzD,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,KAAK,GAAG,MAAM,CAAA;AACvB,CAAC"}
@@ -1,13 +1,29 @@
1
1
  export class CramBufferOverrunError extends Error {
2
2
  }
3
3
  export function getBits(data, cursor, numBits) {
4
- let val = 0;
5
4
  if (cursor.bytePosition + (7 - cursor.bitPosition + numBits) / 8 >
6
5
  data.length) {
7
6
  throw new CramBufferOverrunError('read error during decoding. the file seems to be truncated.');
8
7
  }
8
+ // Fast path: reading exactly 8 bits when byte-aligned
9
+ if (numBits === 8 && cursor.bitPosition === 7) {
10
+ const val = data[cursor.bytePosition];
11
+ cursor.bytePosition += 1;
12
+ return val;
13
+ }
14
+ // Fast path: reading exactly 1 bit
15
+ if (numBits === 1) {
16
+ const val = (data[cursor.bytePosition] >> cursor.bitPosition) & 1;
17
+ cursor.bitPosition -= 1;
18
+ if (cursor.bitPosition < 0) {
19
+ cursor.bytePosition += 1;
20
+ cursor.bitPosition = 7;
21
+ }
22
+ return val;
23
+ }
24
+ // General case: bit-by-bit loop
25
+ let val = 0;
9
26
  for (let dlen = numBits; dlen; dlen--) {
10
- // get the next `dlen` bits in the input, put them in val
11
27
  val <<= 1;
12
28
  val |= (data[cursor.bytePosition] >> cursor.bitPosition) & 1;
13
29
  cursor.bitPosition -= 1;
@@ -1 +1 @@
1
- {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,MAAM,UAAU,OAAO,CACrB,IAAgB,EAChB,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,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7D,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"}
1
+ {"version":3,"file":"getBits.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/getBits.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,MAAM,UAAU,OAAO,CACrB,IAAgB,EAChB,MAAqD,EACrD,OAAe;IAEf,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;IAED,sDAAsD;IACtD,IAAI,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,CAAA;QACtC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;QACxB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,mCAAmC;IACnC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAClE,MAAM,CAAC,WAAW,IAAI,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YACxB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,GAAG,KAAK,CAAC,CAAA;QACT,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7D,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"}
@@ -1,6 +1,37 @@
1
1
  import CramCodec from "./_base.js";
2
- import { getBits } from "./getBits.js";
3
2
  import { CramMalformedError } from "../../errors.js";
3
+ /**
4
+ * Inlined getBits for huffman decoding - avoids function call overhead
5
+ */
6
+ function getBitsInline(data, cursor, numBits) {
7
+ let { bytePosition, bitPosition } = cursor;
8
+ // Fast path for single bit (common in huffman)
9
+ if (numBits === 1) {
10
+ const val = (data[bytePosition] >> bitPosition) & 1;
11
+ bitPosition -= 1;
12
+ if (bitPosition < 0) {
13
+ bytePosition += 1;
14
+ bitPosition = 7;
15
+ }
16
+ cursor.bytePosition = bytePosition;
17
+ cursor.bitPosition = bitPosition;
18
+ return val;
19
+ }
20
+ // General case
21
+ let val = 0;
22
+ for (let i = 0; i < numBits; i++) {
23
+ val <<= 1;
24
+ val |= (data[bytePosition] >> bitPosition) & 1;
25
+ bitPosition -= 1;
26
+ if (bitPosition < 0) {
27
+ bytePosition += 1;
28
+ bitPosition = 7;
29
+ }
30
+ }
31
+ cursor.bytePosition = bytePosition;
32
+ cursor.bitPosition = bitPosition;
33
+ return val;
34
+ }
4
35
  function numberOfSetBits(ii) {
5
36
  let i = (ii - (ii >> 1)) & 0x55555555;
6
37
  i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
@@ -98,8 +129,11 @@ export default class HuffmanIntCodec extends CramCodec {
98
129
  let bits = 0;
99
130
  for (let i = 0; i < this.sortedCodes.length; i += 1) {
100
131
  const length = this.sortedCodes[i].bitLength;
101
- bits <<= length - prevLen;
102
- bits |= getBits(input, coreCursor, length - prevLen);
132
+ const bitsToRead = length - prevLen;
133
+ if (bitsToRead > 0) {
134
+ bits <<= bitsToRead;
135
+ bits |= getBitsInline(input, coreCursor, bitsToRead);
136
+ }
103
137
  prevLen = length;
104
138
  {
105
139
  const index = this.bitCodeToValue[bits];
@@ -1 +1 @@
1
- {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"huffman.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/huffman.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import CramCodec from "./_base.js";
2
- import { getBits } from "./getBits.js";
3
2
  import { CramUnimplementedError } from "../../errors.js";
4
3
  export default class SubexpCodec extends CramCodec {
5
4
  constructor(parameters, dataType) {
@@ -9,22 +8,45 @@ export default class SubexpCodec extends CramCodec {
9
8
  }
10
9
  }
11
10
  decode(_slice, coreDataBlock, _blocksByContentId, cursors) {
12
- let numLeadingOnes = 0;
13
- while (getBits(coreDataBlock.content, cursors.coreBlock, 1)) {
14
- numLeadingOnes = numLeadingOnes + 1;
11
+ return decodeSubexpInline(coreDataBlock.content, cursors.coreBlock, this.parameters.K, this.parameters.offset);
12
+ }
13
+ }
14
+ /**
15
+ * Optimized subexp decoder with inlined bit reading.
16
+ */
17
+ function decodeSubexpInline(data, cursor, K, offset) {
18
+ let { bytePosition, bitPosition } = cursor;
19
+ // Count leading ones (inline single-bit reads)
20
+ let numLeadingOnes = 0;
21
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
22
+ while (true) {
23
+ const bit = (data[bytePosition] >> bitPosition) & 1;
24
+ bitPosition -= 1;
25
+ if (bitPosition < 0) {
26
+ bytePosition += 1;
27
+ bitPosition = 7;
15
28
  }
16
- let b;
17
- let n;
18
- if (numLeadingOnes === 0) {
19
- b = this.parameters.K;
20
- n = getBits(coreDataBlock.content, cursors.coreBlock, b);
29
+ if (bit === 0) {
30
+ break;
21
31
  }
22
- else {
23
- b = numLeadingOnes + this.parameters.K - 1;
24
- const bits = getBits(coreDataBlock.content, cursors.coreBlock, b);
25
- n = (1 << b) | bits;
32
+ numLeadingOnes += 1;
33
+ }
34
+ // Determine how many bits to read for the value
35
+ const b = numLeadingOnes === 0 ? K : numLeadingOnes + K - 1;
36
+ // Read b bits
37
+ let bits = 0;
38
+ for (let i = 0; i < b; i++) {
39
+ bits <<= 1;
40
+ bits |= (data[bytePosition] >> bitPosition) & 1;
41
+ bitPosition -= 1;
42
+ if (bitPosition < 0) {
43
+ bytePosition += 1;
44
+ bitPosition = 7;
26
45
  }
27
- return n - this.parameters.offset;
28
46
  }
47
+ cursor.bytePosition = bytePosition;
48
+ cursor.bitPosition = bitPosition;
49
+ const n = numLeadingOnes === 0 ? bits : (1 << b) | bits;
50
+ return n - offset;
29
51
  }
30
52
  //# sourceMappingURL=subexp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subexp.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/subexp.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAGxC;IACC,YAAY,UAAwC,EAAE,QAAe;QACnE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,+CAA+C,CAChE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,IAAI,cAAc,GAAG,CAAC,CAAA;QACtB,OAAO,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5D,cAAc,GAAG,cAAc,GAAG,CAAC,CAAA;QACrC,CAAC;QAED,IAAI,CAAS,CAAA;QACb,IAAI,CAAS,CAAA;QACb,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;YACrB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YACjE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;QACrB,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"subexp.js","sourceRoot":"","sources":["../../../src/cramFile/codecs/subexp.ts"],"names":[],"mappings":"AAAA,OAAO,SAA8B,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAKxD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAGxC;IACC,YAAY,UAAwC,EAAE,QAAe;QACnE,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,CAAC,QAAQ,+CAA+C,CAChE,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,CACJ,MAAiB,EACjB,aAA4B,EAC5B,kBAAiD,EACjD,OAAgB;QAEhB,OAAO,kBAAkB,CACvB,aAAa,CAAC,OAAO,EACrB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,UAAU,CAAC,CAAC,EACjB,IAAI,CAAC,UAAU,CAAC,MAAM,CACvB,CAAA;IACH,CAAC;CACF;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,IAAgB,EAChB,MAAc,EACd,CAAS,EACT,MAAc;IAEd,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;IAE1C,+CAA+C;IAC/C,IAAI,cAAc,GAAG,CAAC,CAAA;IACtB,uEAAuE;IACvE,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QACpD,WAAW,IAAI,CAAC,CAAA;QAChB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,IAAI,CAAC,CAAA;YACjB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,MAAK;QACP,CAAC;QACD,cAAc,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAA;IAE3D,cAAc;IACd,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,CAAA;QACV,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QAChD,WAAW,IAAI,CAAC,CAAA;QAChB,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,IAAI,CAAC,CAAA;YACjB,WAAW,GAAG,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,MAAM,CAAC,WAAW,GAAG,WAAoC,CAAA;IAEzD,MAAM,CAAC,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;IACvD,OAAO,CAAC,GAAG,MAAM,CAAA;AACnB,CAAC"}
@@ -1,4 +1,4 @@
1
- import QuickLRU from 'quick-lru';
1
+ import QuickLRU from '@jbrowse/quick-lru';
2
2
  import CramContainer from './container/index.ts';
3
3
  import CramRecord from './record.ts';
4
4
  import { BlockHeader, CompressionMethod } from './sectionParsers.ts';
@@ -1,5 +1,5 @@
1
+ import QuickLRU from '@jbrowse/quick-lru';
1
2
  import crc32 from 'crc/calculators/crc32';
2
- import QuickLRU from 'quick-lru';
3
3
  import { CramMalformedError, CramUnimplementedError } from "../errors.js";
4
4
  import * as htscodecs from "../htscodecs/index.js";
5
5
  import { open } from "../io.js";
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/cramFile/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/cramFile/file.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ export interface ReadFeature {
13
13
  ref?: string;
14
14
  sub?: string;
15
15
  }
16
+ export interface DecodeOptions {
17
+ /** Whether to parse tags. If false, raw tag data is stored for lazy parsing. Default true. */
18
+ decodeTags?: boolean;
19
+ }
20
+ export declare const defaultDecodeOptions: Required<DecodeOptions>;
16
21
  export interface MateRecord {
17
22
  readName?: string;
18
23
  sequenceId: number;
@@ -54,10 +59,16 @@ export default class CramRecord {
54
59
  sequenceId: number;
55
60
  readGroupId: number;
56
61
  mappingQuality: number | undefined;
57
- qualityScores: number[] | null | undefined;
62
+ qualityScores: Uint8Array | null | undefined;
58
63
  constructor({ flags, cramFlags, readLength, mappingQuality, lengthOnRef, qualityScores, mateRecordNumber, readBases, readFeatures, mateToUse, readGroupId, readName, sequenceId, uniqueId, templateSize, alignmentStart, tags, }: ReturnType<typeof decodeRecord> & {
59
64
  uniqueId: number;
60
65
  });
66
+ /**
67
+ * Get a single quality score at the given index.
68
+ * @param index 0-based index into the quality scores
69
+ * @returns the quality score at that index, or undefined if not available
70
+ */
71
+ qualityScoreAt(index: number): number | undefined;
61
72
  /**
62
73
  * @returns {boolean} true if the read is paired, regardless of whether both segments are mapped
63
74
  */
@@ -1,4 +1,7 @@
1
1
  import Constants from "./constants.js";
2
+ export const defaultDecodeOptions = {
3
+ decodeTags: true,
4
+ };
2
5
  function decodeReadSequence(cramRecord, refRegion) {
3
6
  // if it has no length, it has no sequence
4
7
  if (!cramRecord.lengthOnRef && !cramRecord.readLength) {
@@ -197,6 +200,14 @@ export default class CramRecord {
197
200
  this.mateRecordNumber = mateRecordNumber;
198
201
  }
199
202
  }
203
+ /**
204
+ * Get a single quality score at the given index.
205
+ * @param index 0-based index into the quality scores
206
+ * @returns the quality score at that index, or undefined if not available
207
+ */
208
+ qualityScoreAt(index) {
209
+ return this.qualityScores?.[index];
210
+ }
200
211
  /**
201
212
  * @returns {boolean} true if the read is paired, regardless of whether both segments are mapped
202
213
  */
@@ -286,8 +297,7 @@ export default class CramRecord {
286
297
  if (!this.isSegmentUnmapped() &&
287
298
  this.isPaired() &&
288
299
  !this.isMateUnmapped() &&
289
- this.mate &&
290
- this.sequenceId === this.mate.sequenceId) {
300
+ this.sequenceId === this.mate?.sequenceId) {
291
301
  const s1 = this.isReverseComplemented() ? 'R' : 'F';
292
302
  const s2 = this.isMateReverseComplemented() ? 'R' : 'F';
293
303
  let o1 = ' ';
@@ -341,11 +351,11 @@ export default class CramRecord {
341
351
  if (this.readFeatures) {
342
352
  // use the reference bases to decode the bases substituted in each base
343
353
  // substitution
344
- this.readFeatures.forEach(readFeature => {
354
+ for (const readFeature of this.readFeatures) {
345
355
  if (readFeature.code === 'X') {
346
356
  decodeBaseSubstitution(this, refRegion, compressionScheme, readFeature);
347
357
  }
348
- });
358
+ }
349
359
  }
350
360
  // if this region completely covers this read,
351
361
  // keep a reference to it
@@ -365,6 +375,9 @@ export default class CramRecord {
365
375
  data[k] = this[k];
366
376
  });
367
377
  data.readBases = this.getReadBases();
378
+ data.qualityScores = this.qualityScores
379
+ ? Array.from(this.qualityScores)
380
+ : this.qualityScores;
368
381
  return data;
369
382
  }
370
383
  }
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/cramFile/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/cramFile/record.ts"],"names":[],"mappings":"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"}