@gmod/cram 1.6.3 → 1.7.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 +9 -0
- package/dist/craiIndex.d.ts +19 -12
- package/dist/craiIndex.js +63 -123
- package/dist/craiIndex.js.map +1 -1
- package/dist/cram-bundle.js +2 -17
- package/dist/cram-bundle.js.LICENSE.txt +17 -0
- package/dist/cramFile/codecs/_base.d.ts +26 -5
- package/dist/cramFile/codecs/_base.js +3 -39
- package/dist/cramFile/codecs/_base.js.map +1 -1
- package/dist/cramFile/codecs/beta.d.ts +7 -3
- package/dist/cramFile/codecs/beta.js +13 -31
- package/dist/cramFile/codecs/beta.js.map +1 -1
- package/dist/cramFile/codecs/byteArrayLength.d.ts +13 -7
- package/dist/cramFile/codecs/byteArrayLength.js +22 -41
- package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/dist/cramFile/codecs/byteArrayStop.d.ts +9 -5
- package/dist/cramFile/codecs/byteArrayStop.js +25 -46
- package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
- package/dist/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
- package/dist/cramFile/codecs/dataSeriesTypes.js +3 -0
- package/dist/cramFile/codecs/dataSeriesTypes.js.map +1 -0
- package/dist/cramFile/codecs/external.d.ts +10 -6
- package/dist/cramFile/codecs/external.js +26 -44
- package/dist/cramFile/codecs/external.js.map +1 -1
- package/dist/cramFile/codecs/gamma.d.ts +7 -3
- package/dist/cramFile/codecs/gamma.js +16 -34
- package/dist/cramFile/codecs/gamma.js.map +1 -1
- package/dist/cramFile/codecs/getBits.d.ts +7 -0
- package/dist/cramFile/codecs/getBits.js +26 -0
- package/dist/cramFile/codecs/getBits.js.map +1 -0
- package/dist/cramFile/codecs/huffman.d.ts +17 -13
- package/dist/cramFile/codecs/huffman.js +76 -85
- package/dist/cramFile/codecs/huffman.js.map +1 -1
- package/dist/cramFile/codecs/index.d.ts +4 -2
- package/dist/cramFile/codecs/index.js +12 -13
- package/dist/cramFile/codecs/index.js.map +1 -1
- package/dist/cramFile/codecs/subexp.d.ts +7 -3
- package/dist/cramFile/codecs/subexp.js +19 -36
- package/dist/cramFile/codecs/subexp.js.map +1 -1
- package/dist/cramFile/constants.d.ts +35 -35
- package/dist/cramFile/constants.js +1 -1
- package/dist/cramFile/constants.js.map +1 -1
- package/dist/cramFile/container/compressionScheme.d.ts +57 -11
- package/dist/cramFile/container/compressionScheme.js +37 -32
- package/dist/cramFile/container/compressionScheme.js.map +1 -1
- package/dist/cramFile/container/index.d.ts +23 -9
- package/dist/cramFile/container/index.js +74 -144
- package/dist/cramFile/container/index.js.map +1 -1
- package/dist/cramFile/encoding.d.ts +78 -0
- package/dist/cramFile/encoding.js +3 -0
- package/dist/cramFile/encoding.js.map +1 -0
- package/dist/cramFile/file.d.ts +91 -41
- package/dist/cramFile/file.js +234 -368
- package/dist/cramFile/file.js.map +1 -1
- package/dist/cramFile/filehandle.d.ts +2 -0
- package/dist/cramFile/filehandle.js +3 -0
- package/dist/cramFile/filehandle.js.map +1 -0
- package/dist/cramFile/index.d.ts +1 -1
- package/dist/cramFile/index.js +1 -1
- package/dist/cramFile/index.js.map +1 -1
- package/dist/cramFile/record.d.ts +61 -17
- package/dist/cramFile/record.js +153 -77
- package/dist/cramFile/record.js.map +1 -1
- package/dist/cramFile/sectionParsers.d.ts +99 -8
- package/dist/cramFile/sectionParsers.js +70 -80
- package/dist/cramFile/sectionParsers.js.map +1 -1
- package/dist/cramFile/slice/decodeRecord.d.ts +30 -2
- package/dist/cramFile/slice/decodeRecord.js +148 -118
- package/dist/cramFile/slice/decodeRecord.js.map +1 -1
- package/dist/cramFile/slice/index.d.ts +21 -14
- package/dist/cramFile/slice/index.js +286 -381
- package/dist/cramFile/slice/index.js.map +1 -1
- package/dist/cramFile/util.d.ts +11 -5
- package/dist/cramFile/util.js +19 -97
- package/dist/cramFile/util.js.map +1 -1
- package/dist/errors.d.ts +5 -10
- package/dist/errors.js +11 -62
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/indexedCramFile.d.ts +37 -12
- package/dist/indexedCramFile.js +114 -154
- package/dist/indexedCramFile.js.map +1 -1
- package/dist/io/index.d.ts +5 -5
- package/dist/io/index.js +9 -9
- package/dist/io/index.js.map +1 -1
- package/dist/rans/constants.js +3 -3
- package/dist/rans/constants.js.map +1 -1
- package/dist/rans/d04.js +15 -15
- package/dist/rans/d04.js.map +1 -1
- package/dist/rans/d14.js +21 -21
- package/dist/rans/d14.js.map +1 -1
- package/dist/rans/decoding.js +27 -30
- package/dist/rans/decoding.js.map +1 -1
- package/dist/rans/frequencies.js +11 -11
- package/dist/rans/frequencies.js.map +1 -1
- package/dist/rans/index.js +46 -49
- package/dist/rans/index.js.map +1 -1
- package/dist/sam.d.ts +8 -1
- package/dist/sam.js +7 -7
- package/dist/sam.js.map +1 -1
- package/dist/typescript.d.ts +3 -0
- package/dist/typescript.js +11 -0
- package/dist/typescript.js.map +1 -0
- package/dist/unzip-pako.js +1 -1
- package/dist/unzip-pako.js.map +1 -1
- package/dist/unzip.js +1 -1
- package/dist/unzip.js.map +1 -1
- package/errors.js +11 -62
- package/esm/craiIndex.d.ts +19 -12
- package/esm/craiIndex.js +8 -24
- package/esm/craiIndex.js.map +1 -1
- package/esm/cramFile/codecs/_base.d.ts +26 -5
- package/esm/cramFile/codecs/_base.js +1 -35
- package/esm/cramFile/codecs/_base.js.map +1 -1
- package/esm/cramFile/codecs/beta.d.ts +7 -3
- package/esm/cramFile/codecs/beta.js +4 -3
- package/esm/cramFile/codecs/beta.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayLength.d.ts +13 -7
- package/esm/cramFile/codecs/byteArrayLength.js +1 -1
- package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
- package/esm/cramFile/codecs/byteArrayStop.d.ts +9 -5
- package/esm/cramFile/codecs/byteArrayStop.js +7 -9
- package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
- package/esm/cramFile/codecs/dataSeriesTypes.d.ts +4 -0
- package/esm/cramFile/codecs/dataSeriesTypes.js +2 -0
- package/esm/cramFile/codecs/dataSeriesTypes.js.map +1 -0
- package/esm/cramFile/codecs/external.d.ts +10 -6
- package/esm/cramFile/codecs/external.js +4 -3
- package/esm/cramFile/codecs/external.js.map +1 -1
- package/esm/cramFile/codecs/gamma.d.ts +7 -3
- package/esm/cramFile/codecs/gamma.js +5 -4
- package/esm/cramFile/codecs/gamma.js.map +1 -1
- package/esm/cramFile/codecs/getBits.d.ts +7 -0
- package/esm/cramFile/codecs/getBits.js +21 -0
- package/esm/cramFile/codecs/getBits.js.map +1 -0
- package/esm/cramFile/codecs/huffman.d.ts +17 -13
- package/esm/cramFile/codecs/huffman.js +22 -9
- package/esm/cramFile/codecs/huffman.js.map +1 -1
- package/esm/cramFile/codecs/index.d.ts +4 -2
- package/esm/cramFile/codecs/index.js +1 -1
- package/esm/cramFile/codecs/index.js.map +1 -1
- package/esm/cramFile/codecs/subexp.d.ts +7 -3
- package/esm/cramFile/codecs/subexp.js +7 -5
- package/esm/cramFile/codecs/subexp.js.map +1 -1
- package/esm/cramFile/constants.d.ts +35 -35
- package/esm/cramFile/constants.js.map +1 -1
- package/esm/cramFile/container/compressionScheme.d.ts +57 -11
- package/esm/cramFile/container/compressionScheme.js +15 -8
- package/esm/cramFile/container/compressionScheme.js.map +1 -1
- package/esm/cramFile/container/index.d.ts +23 -9
- package/esm/cramFile/container/index.js +11 -9
- package/esm/cramFile/container/index.js.map +1 -1
- package/esm/cramFile/encoding.d.ts +78 -0
- package/esm/cramFile/encoding.js +2 -0
- package/esm/cramFile/encoding.js.map +1 -0
- package/esm/cramFile/file.d.ts +91 -41
- package/esm/cramFile/file.js +59 -47
- package/esm/cramFile/file.js.map +1 -1
- package/esm/cramFile/filehandle.d.ts +2 -0
- package/esm/cramFile/filehandle.js +2 -0
- package/esm/cramFile/filehandle.js.map +1 -0
- package/esm/cramFile/index.d.ts +1 -1
- package/esm/cramFile/index.js.map +1 -1
- package/esm/cramFile/record.d.ts +61 -17
- package/esm/cramFile/record.js +83 -5
- package/esm/cramFile/record.js.map +1 -1
- package/esm/cramFile/sectionParsers.d.ts +99 -8
- package/esm/cramFile/sectionParsers.js +7 -17
- package/esm/cramFile/sectionParsers.js.map +1 -1
- package/esm/cramFile/slice/decodeRecord.d.ts +30 -2
- package/esm/cramFile/slice/decodeRecord.js +102 -70
- package/esm/cramFile/slice/decodeRecord.js.map +1 -1
- package/esm/cramFile/slice/index.d.ts +21 -14
- package/esm/cramFile/slice/index.js +77 -38
- package/esm/cramFile/slice/index.js.map +1 -1
- package/esm/cramFile/util.d.ts +11 -5
- package/esm/cramFile/util.js +11 -82
- package/esm/cramFile/util.js.map +1 -1
- package/esm/errors.d.ts +5 -10
- package/esm/errors.js +0 -5
- package/esm/errors.js.map +1 -1
- package/esm/index.d.ts +3 -3
- package/esm/index.js.map +1 -1
- package/esm/indexedCramFile.d.ts +37 -12
- package/esm/indexedCramFile.js +19 -8
- package/esm/indexedCramFile.js.map +1 -1
- package/esm/io/index.d.ts +5 -5
- package/esm/io/index.js +3 -3
- package/esm/io/index.js.map +1 -1
- package/esm/sam.d.ts +8 -1
- package/esm/sam.js.map +1 -1
- package/esm/typescript.d.ts +3 -0
- package/esm/typescript.js +7 -0
- package/esm/typescript.js.map +1 -0
- package/package.json +18 -11
- package/src/{craiIndex.js → craiIndex.ts} +37 -31
- package/src/cramFile/codecs/_base.ts +45 -0
- package/src/cramFile/codecs/beta.ts +34 -0
- package/src/cramFile/codecs/{byteArrayLength.js → byteArrayLength.ts} +27 -5
- package/src/cramFile/codecs/{byteArrayStop.js → byteArrayStop.ts} +25 -12
- package/src/cramFile/codecs/dataSeriesTypes.ts +39 -0
- package/src/cramFile/codecs/{external.js → external.ts} +28 -12
- package/src/cramFile/codecs/gamma.ts +42 -0
- package/src/cramFile/codecs/getBits.ts +28 -0
- package/src/cramFile/codecs/{huffman.js → huffman.ts} +48 -15
- package/src/cramFile/codecs/{index.js → index.ts} +9 -3
- package/src/cramFile/codecs/subexp.ts +45 -0
- package/src/cramFile/{constants.js → constants.ts} +0 -0
- package/src/cramFile/container/{compressionScheme.js → compressionScheme.ts} +50 -18
- package/src/cramFile/container/{index.js → index.ts} +13 -13
- package/src/cramFile/encoding.ts +98 -0
- package/src/cramFile/{file.js → file.ts} +136 -62
- package/src/cramFile/filehandle.ts +3 -0
- package/src/cramFile/{index.js → index.ts} +0 -0
- package/src/cramFile/{record.js → record.ts} +185 -14
- package/src/cramFile/{sectionParsers.js → sectionParsers.ts} +148 -20
- package/src/cramFile/slice/{decodeRecord.js → decodeRecord.ts} +158 -105
- package/src/cramFile/slice/{index.js → index.ts} +138 -63
- package/src/cramFile/{util.js → util.ts} +28 -17
- package/src/{errors.js → errors.ts} +0 -5
- package/src/{index.js → index.ts} +0 -0
- package/src/{indexedCramFile.js → indexedCramFile.ts} +79 -19
- package/src/io/{index.js → index.ts} +10 -5
- package/src/{sam.js → sam.ts} +7 -2
- package/src/typescript.ts +17 -0
- package/src/typings/binary-parser.d.ts +44 -0
- package/src/typings/bzip2.d.ts +7 -0
- package/src/typings/htscodecs.d.ts +6 -0
- package/dist/io/bufferCache.d.ts +0 -12
- package/dist/io/bufferCache.js +0 -112
- package/dist/io/bufferCache.js.map +0 -1
- package/dist/io/localFile.d.ts +0 -10
- package/dist/io/localFile.js +0 -108
- package/dist/io/localFile.js.map +0 -1
- package/dist/io/remoteFile.d.ts +0 -16
- package/dist/io/remoteFile.js +0 -143
- package/dist/io/remoteFile.js.map +0 -1
- package/esm/io/bufferCache.d.ts +0 -12
- package/esm/io/bufferCache.js +0 -54
- package/esm/io/bufferCache.js.map +0 -1
- package/esm/io/localFile.d.ts +0 -10
- package/esm/io/localFile.js +0 -31
- package/esm/io/localFile.js.map +0 -1
- package/esm/io/remoteFile.d.ts +0 -16
- package/esm/io/remoteFile.js +0 -64
- package/esm/io/remoteFile.js.map +0 -1
- package/src/cramFile/codecs/_base.js +0 -49
- package/src/cramFile/codecs/beta.js +0 -23
- package/src/cramFile/codecs/gamma.js +0 -30
- package/src/cramFile/codecs/subexp.js +0 -32
- package/src/io/bufferCache.js +0 -66
- package/src/io/localFile.js +0 -35
- package/src/io/remoteFile.js +0 -71
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import CramRecord from '../record';
|
|
2
|
+
import CramContainer from '../container';
|
|
3
|
+
import { CramFileBlock } from '../file';
|
|
4
|
+
import { MappedSliceHeader, UnmappedSliceHeader } from '../sectionParsers';
|
|
5
|
+
export declare type SliceHeader = CramFileBlock & {
|
|
6
|
+
parsedContent: MappedSliceHeader | UnmappedSliceHeader;
|
|
7
|
+
};
|
|
1
8
|
export default class CramSlice {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
file
|
|
5
|
-
containerPosition:
|
|
6
|
-
getHeader(): Promise<
|
|
7
|
-
getBlocks(): Promise<
|
|
8
|
-
getCoreDataBlock(): Promise<
|
|
9
|
-
_getBlocksContentIdIndex(): Promise<
|
|
10
|
-
getBlockByContentId(id:
|
|
9
|
+
container: CramContainer;
|
|
10
|
+
containerPosition: number;
|
|
11
|
+
private file;
|
|
12
|
+
constructor(container: CramContainer, containerPosition: number, _unused: number);
|
|
13
|
+
getHeader(): Promise<SliceHeader>;
|
|
14
|
+
getBlocks(): Promise<CramFileBlock[]>;
|
|
15
|
+
getCoreDataBlock(): Promise<CramFileBlock>;
|
|
16
|
+
_getBlocksContentIdIndex(): Promise<Record<number, CramFileBlock>>;
|
|
17
|
+
getBlockByContentId(id: number): Promise<CramFileBlock>;
|
|
11
18
|
getReferenceRegion(): Promise<{
|
|
12
19
|
seq: any;
|
|
13
|
-
start:
|
|
20
|
+
start: number;
|
|
14
21
|
end: number;
|
|
15
|
-
span:
|
|
22
|
+
span: number;
|
|
16
23
|
} | undefined>;
|
|
17
|
-
getAllRecords(): Promise<
|
|
18
|
-
_fetchRecords(): Promise<
|
|
19
|
-
getRecords(filterFunction:
|
|
24
|
+
getAllRecords(): Promise<CramRecord[]>;
|
|
25
|
+
_fetchRecords(): Promise<CramRecord[]>;
|
|
26
|
+
getRecords(filterFunction: (r: CramRecord) => boolean): Promise<CramRecord[]>;
|
|
20
27
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { parseItem,
|
|
1
|
+
import { CramArgumentError, CramMalformedError } from '../../errors';
|
|
2
|
+
import { parseItem, sequenceMD5, tinyMemoize } from '../util';
|
|
3
3
|
import Constants from '../constants';
|
|
4
4
|
import decodeRecord from './decodeRecord';
|
|
5
|
+
import CramRecord from '../record';
|
|
6
|
+
import { isMappedSliceHeader, } from '../sectionParsers';
|
|
7
|
+
import { CramBufferOverrunError } from '../codecs/getBits';
|
|
5
8
|
/**
|
|
6
9
|
* @private
|
|
7
10
|
* Try to estimate the template length from a bunch of interrelated multi-segment reads.
|
|
@@ -12,7 +15,8 @@ import decodeRecord from './decodeRecord';
|
|
|
12
15
|
function calculateMultiSegmentMatedTemplateLength(allRecords, currentRecordNumber, thisRecord) {
|
|
13
16
|
function getAllMatedRecords(startRecord) {
|
|
14
17
|
const records = [startRecord];
|
|
15
|
-
if (startRecord.mateRecordNumber
|
|
18
|
+
if (startRecord.mateRecordNumber !== undefined &&
|
|
19
|
+
startRecord.mateRecordNumber >= 0) {
|
|
16
20
|
const mateRecord = allRecords[startRecord.mateRecordNumber];
|
|
17
21
|
if (!mateRecord) {
|
|
18
22
|
throw new CramMalformedError('intra-slice mate record not found, this file seems malformed');
|
|
@@ -120,10 +124,10 @@ function associateIntraSliceMate(allRecords, currentRecordNumber, thisRecord, ma
|
|
|
120
124
|
delete thisRecord.mateRecordNumber;
|
|
121
125
|
}
|
|
122
126
|
export default class CramSlice {
|
|
123
|
-
constructor(container,
|
|
127
|
+
constructor(container, containerPosition, _unused) {
|
|
124
128
|
this.container = container;
|
|
129
|
+
this.containerPosition = containerPosition;
|
|
125
130
|
this.file = container.file;
|
|
126
|
-
this.containerPosition = position;
|
|
127
131
|
}
|
|
128
132
|
// memoize
|
|
129
133
|
async getHeader() {
|
|
@@ -131,25 +135,33 @@ export default class CramSlice {
|
|
|
131
135
|
const sectionParsers = await this.file.getSectionParsers();
|
|
132
136
|
const containerHeader = await this.container.getHeader();
|
|
133
137
|
const header = await this.file.readBlock(containerHeader._endPosition + this.containerPosition);
|
|
138
|
+
if (header === undefined) {
|
|
139
|
+
throw new Error();
|
|
140
|
+
}
|
|
134
141
|
if (header.contentType === 'MAPPED_SLICE_HEADER') {
|
|
135
|
-
|
|
142
|
+
const content = parseItem(header.content, sectionParsers.cramMappedSliceHeader.parser, 0, containerHeader._endPosition);
|
|
143
|
+
return { ...header, parsedContent: content };
|
|
136
144
|
}
|
|
137
145
|
else if (header.contentType === 'UNMAPPED_SLICE_HEADER') {
|
|
138
|
-
|
|
146
|
+
const content = parseItem(header.content, sectionParsers.cramUnmappedSliceHeader.parser, 0, containerHeader._endPosition);
|
|
147
|
+
return { ...header, parsedContent: content };
|
|
139
148
|
}
|
|
140
149
|
else {
|
|
141
|
-
throw new CramMalformedError(`error reading slice header block, invalid content type ${header.
|
|
150
|
+
throw new CramMalformedError(`error reading slice header block, invalid content type ${header.contentType}`);
|
|
142
151
|
}
|
|
143
|
-
return header;
|
|
144
152
|
}
|
|
145
153
|
// memoize
|
|
146
154
|
async getBlocks() {
|
|
147
155
|
const header = await this.getHeader();
|
|
148
156
|
// read all the blocks into memory and store them
|
|
149
157
|
let blockPosition = header._endPosition;
|
|
150
|
-
const blocks = new Array(header.
|
|
158
|
+
const blocks = new Array(header.parsedContent.numBlocks);
|
|
151
159
|
for (let i = 0; i < blocks.length; i += 1) {
|
|
152
|
-
|
|
160
|
+
const block = await this.file.readBlock(blockPosition);
|
|
161
|
+
if (block === undefined) {
|
|
162
|
+
throw new Error();
|
|
163
|
+
}
|
|
164
|
+
blocks[i] = block;
|
|
153
165
|
blockPosition = blocks[i]._endPosition;
|
|
154
166
|
}
|
|
155
167
|
return blocks;
|
|
@@ -177,20 +189,28 @@ export default class CramSlice {
|
|
|
177
189
|
}
|
|
178
190
|
async getReferenceRegion() {
|
|
179
191
|
// read the slice header
|
|
180
|
-
const sliceHeader = (await this.getHeader()).
|
|
192
|
+
const sliceHeader = (await this.getHeader()).parsedContent;
|
|
193
|
+
if (!isMappedSliceHeader(sliceHeader)) {
|
|
194
|
+
throw new Error();
|
|
195
|
+
}
|
|
181
196
|
if (sliceHeader.refSeqId < 0) {
|
|
182
197
|
return undefined;
|
|
183
198
|
}
|
|
184
199
|
const compressionScheme = await this.container.getCompressionScheme();
|
|
200
|
+
if (compressionScheme === undefined) {
|
|
201
|
+
throw new Error();
|
|
202
|
+
}
|
|
185
203
|
// console.log(JSON.stringify(sliceHeader, null, ' '))
|
|
186
204
|
if (sliceHeader.refBaseBlockId >= 0) {
|
|
187
|
-
const refBlock = this.getBlockByContentId(sliceHeader.refBaseBlockId);
|
|
205
|
+
const refBlock = await this.getBlockByContentId(sliceHeader.refBaseBlockId);
|
|
188
206
|
if (!refBlock) {
|
|
189
207
|
throw new CramMalformedError('embedded reference specified, but reference block does not exist');
|
|
190
208
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
209
|
+
// TODO: we do not read anything named 'span'
|
|
210
|
+
// if (sliceHeader.span > refBlock.uncompressedSize) {
|
|
211
|
+
// throw new CramMalformedError('Embedded reference is too small')
|
|
212
|
+
// }
|
|
213
|
+
// TODO verify
|
|
194
214
|
return {
|
|
195
215
|
seq: refBlock.data.toString('utf8'),
|
|
196
216
|
start: sliceHeader.refSeqStart,
|
|
@@ -222,22 +242,29 @@ export default class CramSlice {
|
|
|
222
242
|
async _fetchRecords() {
|
|
223
243
|
const { majorVersion } = await this.file.getDefinition();
|
|
224
244
|
const compressionScheme = await this.container.getCompressionScheme();
|
|
245
|
+
if (compressionScheme === undefined) {
|
|
246
|
+
throw new Error();
|
|
247
|
+
}
|
|
225
248
|
const sliceHeader = await this.getHeader();
|
|
249
|
+
if (sliceHeader === undefined) {
|
|
250
|
+
throw new Error();
|
|
251
|
+
}
|
|
226
252
|
const blocksByContentId = await this._getBlocksContentIdIndex();
|
|
227
253
|
// check MD5 of reference if available
|
|
228
254
|
if (majorVersion > 1 &&
|
|
229
255
|
this.file.options.checkSequenceMD5 &&
|
|
230
|
-
sliceHeader.
|
|
231
|
-
sliceHeader.
|
|
256
|
+
isMappedSliceHeader(sliceHeader.parsedContent) &&
|
|
257
|
+
sliceHeader.parsedContent.refSeqId >= 0 &&
|
|
258
|
+
sliceHeader.parsedContent.md5.join('') !== '0000000000000000') {
|
|
232
259
|
const refRegion = await this.getReferenceRegion();
|
|
233
260
|
if (refRegion) {
|
|
234
261
|
const { seq, start, end } = refRegion;
|
|
235
262
|
const seqMd5 = sequenceMD5(seq);
|
|
236
|
-
const storedMd5 = sliceHeader.
|
|
263
|
+
const storedMd5 = sliceHeader.parsedContent.md5
|
|
237
264
|
.map(byte => (byte < 16 ? '0' : '') + byte.toString(16))
|
|
238
265
|
.join('');
|
|
239
266
|
if (seqMd5 !== storedMd5) {
|
|
240
|
-
throw new CramMalformedError(`MD5 checksum reference mismatch for ref ${sliceHeader.
|
|
267
|
+
throw new CramMalformedError(`MD5 checksum reference mismatch for ref ${sliceHeader.parsedContent.refSeqId} pos ${start}..${end}. recorded MD5: ${storedMd5}, calculated MD5: ${seqMd5}`);
|
|
241
268
|
}
|
|
242
269
|
}
|
|
243
270
|
}
|
|
@@ -247,7 +274,9 @@ export default class CramSlice {
|
|
|
247
274
|
// data block
|
|
248
275
|
const coreDataBlock = await this.getCoreDataBlock();
|
|
249
276
|
const cursors = {
|
|
250
|
-
lastAlignmentStart: sliceHeader.
|
|
277
|
+
lastAlignmentStart: isMappedSliceHeader(sliceHeader.parsedContent)
|
|
278
|
+
? sliceHeader.parsedContent.refSeqStart
|
|
279
|
+
: 0,
|
|
251
280
|
coreBlock: { bitPosition: 7, bytePosition: 0 },
|
|
252
281
|
externalBlocks: {
|
|
253
282
|
map: new Map(),
|
|
@@ -261,23 +290,26 @@ export default class CramSlice {
|
|
|
261
290
|
},
|
|
262
291
|
},
|
|
263
292
|
};
|
|
264
|
-
const decodeDataSeries = dataSeriesName => {
|
|
293
|
+
const decodeDataSeries = (dataSeriesName) => {
|
|
265
294
|
const codec = compressionScheme.getCodecForDataSeries(dataSeriesName);
|
|
266
295
|
if (!codec) {
|
|
267
296
|
throw new CramMalformedError(`no codec defined for ${dataSeriesName} data series`);
|
|
268
297
|
}
|
|
269
298
|
// console.log(dataSeriesName, Object.getPrototypeOf(codec))
|
|
270
|
-
|
|
299
|
+
const decoded = codec.decode(this, coreDataBlock, blocksByContentId, cursors);
|
|
300
|
+
return decoded;
|
|
271
301
|
};
|
|
272
|
-
let records = new Array(sliceHeader.
|
|
302
|
+
let records = new Array(sliceHeader.parsedContent.numRecords);
|
|
273
303
|
for (let i = 0; i < records.length; i += 1) {
|
|
274
304
|
try {
|
|
275
|
-
|
|
276
|
-
records[i]
|
|
277
|
-
|
|
278
|
-
|
|
305
|
+
const init = decodeRecord(this, decodeDataSeries, compressionScheme, sliceHeader, coreDataBlock, blocksByContentId, cursors, majorVersion, i);
|
|
306
|
+
records[i] = new CramRecord({
|
|
307
|
+
...init,
|
|
308
|
+
uniqueId: sliceHeader.contentPosition +
|
|
309
|
+
sliceHeader.parsedContent.recordCounter +
|
|
279
310
|
i +
|
|
280
|
-
1
|
|
311
|
+
1,
|
|
312
|
+
});
|
|
281
313
|
}
|
|
282
314
|
catch (e) {
|
|
283
315
|
if (e instanceof CramBufferOverrunError) {
|
|
@@ -294,7 +326,7 @@ export default class CramSlice {
|
|
|
294
326
|
// objects Resolve mate pair cross-references between records in this slice
|
|
295
327
|
for (let i = 0; i < records.length; i += 1) {
|
|
296
328
|
const { mateRecordNumber } = records[i];
|
|
297
|
-
if (mateRecordNumber >= 0) {
|
|
329
|
+
if (mateRecordNumber !== undefined && mateRecordNumber >= 0) {
|
|
298
330
|
associateIntraSliceMate(records, i, records[i], records[mateRecordNumber]);
|
|
299
331
|
}
|
|
300
332
|
}
|
|
@@ -303,22 +335,27 @@ export default class CramSlice {
|
|
|
303
335
|
async getRecords(filterFunction) {
|
|
304
336
|
// fetch the features if necessary, using the file-level feature cache
|
|
305
337
|
const cacheKey = this.container.filePosition + this.containerPosition;
|
|
306
|
-
let recordsPromise = this.file.featureCache.get(cacheKey);
|
|
338
|
+
let recordsPromise = this.file.featureCache.get(cacheKey.toString());
|
|
307
339
|
if (!recordsPromise) {
|
|
308
340
|
recordsPromise = this._fetchRecords();
|
|
309
|
-
this.file.featureCache.set(cacheKey, recordsPromise);
|
|
341
|
+
this.file.featureCache.set(cacheKey.toString(), recordsPromise);
|
|
310
342
|
}
|
|
311
|
-
const
|
|
343
|
+
const unfiltered = await recordsPromise;
|
|
344
|
+
const records = unfiltered.filter(filterFunction);
|
|
312
345
|
// if we can fetch reference sequence, add the reference sequence to the records
|
|
313
346
|
if (records.length && this.file.fetchReferenceSequenceCallback) {
|
|
314
347
|
const sliceHeader = await this.getHeader();
|
|
315
|
-
if (sliceHeader.
|
|
316
|
-
sliceHeader.
|
|
348
|
+
if (isMappedSliceHeader(sliceHeader.parsedContent) &&
|
|
349
|
+
(sliceHeader.parsedContent.refSeqId >= 0 || // single-ref slice
|
|
350
|
+
sliceHeader.parsedContent.refSeqId === -2) // multi-ref slice
|
|
317
351
|
) {
|
|
318
|
-
const singleRefId = sliceHeader.
|
|
319
|
-
? sliceHeader.
|
|
352
|
+
const singleRefId = sliceHeader.parsedContent.refSeqId >= 0
|
|
353
|
+
? sliceHeader.parsedContent.refSeqId
|
|
320
354
|
: undefined;
|
|
321
355
|
const compressionScheme = await this.container.getCompressionScheme();
|
|
356
|
+
if (compressionScheme === undefined) {
|
|
357
|
+
throw new Error();
|
|
358
|
+
}
|
|
322
359
|
const refRegions = {}; // seqId => { start, end, seq }
|
|
323
360
|
// iterate over the records to find the spans of the reference sequences we need to fetch
|
|
324
361
|
for (let i = 0; i < records.length; i += 1) {
|
|
@@ -329,6 +366,7 @@ export default class CramSlice {
|
|
|
329
366
|
id: seqId,
|
|
330
367
|
start: records[i].alignmentStart,
|
|
331
368
|
end: -Infinity,
|
|
369
|
+
seq: null,
|
|
332
370
|
};
|
|
333
371
|
refRegions[seqId] = refRegion;
|
|
334
372
|
}
|
|
@@ -353,7 +391,8 @@ export default class CramSlice {
|
|
|
353
391
|
const seqId = singleRefId !== undefined ? singleRefId : records[i].sequenceId;
|
|
354
392
|
const refRegion = refRegions[seqId];
|
|
355
393
|
if (refRegion && refRegion.seq) {
|
|
356
|
-
|
|
394
|
+
const seq = refRegion.seq;
|
|
395
|
+
records[i].addReferenceSequence({ ...refRegion, seq }, compressionScheme);
|
|
357
396
|
}
|
|
358
397
|
}
|
|
359
398
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cramFile/slice/index.ts"],"names":[],"mappings":"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"}
|
package/esm/cramFile/util.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Parser } from '@gmod/binary-parser';
|
|
3
|
+
export declare function itf8Size(v: number): 1 | 2 | 3 | 4 | 5;
|
|
4
|
+
export declare function parseItf8(buffer: Uint8Array, initialOffset: number): [number, number];
|
|
5
|
+
export declare type ParsedItem<T> = T & {
|
|
6
|
+
_endPosition: number;
|
|
7
|
+
_size: number;
|
|
8
|
+
};
|
|
9
|
+
export declare function parseItem<T>(buffer: Buffer, parser: Parser<T>, startBufferPosition?: number, startFilePosition?: number): ParsedItem<T>;
|
|
10
|
+
export declare function tinyMemoize(_class: any, methodName: any): void;
|
|
11
|
+
export declare function sequenceMD5(seq: string): string;
|
package/esm/cramFile/util.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import md5 from 'md5';
|
|
2
|
-
import { CramBufferOverrunError } from '
|
|
2
|
+
import { CramBufferOverrunError } from './codecs/getBits';
|
|
3
3
|
export function itf8Size(v) {
|
|
4
4
|
if (!(v & ~0x7f)) {
|
|
5
5
|
return 1;
|
|
@@ -21,17 +21,17 @@ export function parseItf8(buffer, initialOffset) {
|
|
|
21
21
|
let result;
|
|
22
22
|
if (countFlags < 0x80) {
|
|
23
23
|
result = countFlags;
|
|
24
|
-
offset
|
|
24
|
+
offset = offset + 1;
|
|
25
25
|
}
|
|
26
26
|
else if (countFlags < 0xc0) {
|
|
27
27
|
result = ((countFlags << 8) | buffer[offset + 1]) & 0x3fff;
|
|
28
|
-
offset
|
|
28
|
+
offset = offset + 2;
|
|
29
29
|
}
|
|
30
30
|
else if (countFlags < 0xe0) {
|
|
31
31
|
result =
|
|
32
32
|
((countFlags << 16) | (buffer[offset + 1] << 8) | buffer[offset + 2]) &
|
|
33
33
|
0x1fffff;
|
|
34
|
-
offset
|
|
34
|
+
offset = offset + 3;
|
|
35
35
|
}
|
|
36
36
|
else if (countFlags < 0xf0) {
|
|
37
37
|
result =
|
|
@@ -40,7 +40,7 @@ export function parseItf8(buffer, initialOffset) {
|
|
|
40
40
|
(buffer[offset + 2] << 8) |
|
|
41
41
|
buffer[offset + 3]) &
|
|
42
42
|
0x0fffffff;
|
|
43
|
-
offset
|
|
43
|
+
offset = offset + 4;
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
46
|
result =
|
|
@@ -51,91 +51,20 @@ export function parseItf8(buffer, initialOffset) {
|
|
|
51
51
|
(buffer[offset + 4] & 0x0f);
|
|
52
52
|
// x=((0xff & 0x0f)<<28) | (0xff<<20) | (0xff<<12) | (0xff<<4) | (0x0f & 0x0f);
|
|
53
53
|
// TODO *val_p = uv < 0x80000000UL ? uv : -((int32_t) (0xffffffffUL - uv)) - 1;
|
|
54
|
-
offset
|
|
54
|
+
offset = offset + 5;
|
|
55
55
|
}
|
|
56
56
|
if (offset > buffer.length) {
|
|
57
57
|
throw new CramBufferOverrunError('Attempted to read beyond end of buffer; this file seems truncated.');
|
|
58
58
|
}
|
|
59
59
|
return [result, offset - initialOffset];
|
|
60
60
|
}
|
|
61
|
-
// parseLtf8(buffer, initialOffset) {
|
|
62
|
-
// let offset = initialOffset
|
|
63
|
-
// const countFlags = buffer[offset]
|
|
64
|
-
// let result
|
|
65
|
-
// if (countFlags < 0x80) {
|
|
66
|
-
// result = countFlags
|
|
67
|
-
// offset += 1
|
|
68
|
-
// } else if (countFlags < 0xc0) {
|
|
69
|
-
// result = ((buffer[offset] << 8) | buffer[offset + 1]) & 0x3fff
|
|
70
|
-
// offset += 2
|
|
71
|
-
// } else if (countFlags < 0xe0) {
|
|
72
|
-
// result =
|
|
73
|
-
// ((buffer[offset] << 16) |
|
|
74
|
-
// (buffer[offset + 1] << 8) |
|
|
75
|
-
// buffer[offset + 2]) &
|
|
76
|
-
// 0x1fffff
|
|
77
|
-
// offset += 3
|
|
78
|
-
// } else if (countFlags < 0xf0) {
|
|
79
|
-
// result =
|
|
80
|
-
// ((buffer[offset] << 24) |
|
|
81
|
-
// (buffer[offset + 1] << 16) |
|
|
82
|
-
// (buffer[offset + 2] << 8) |
|
|
83
|
-
// buffer[offset + 3]) &
|
|
84
|
-
// 0x0fffffff
|
|
85
|
-
// offset += 4
|
|
86
|
-
// } else if (countFlags < 0xf8) {
|
|
87
|
-
// result =
|
|
88
|
-
// ((buffer[offset] & 15) * Math.pow(2,32) + (buffer[offset + 1] << 24)) |
|
|
89
|
-
// ((buffer[offset + 2] << 16) |
|
|
90
|
-
// (buffer[offset + 3] << 8) |
|
|
91
|
-
// buffer[offset + 4])
|
|
92
|
-
// // TODO *val_p = uv < 0x80000000UL ? uv : -((int32_t) (0xffffffffUL - uv)) - 1;
|
|
93
|
-
// offset += 5
|
|
94
|
-
// } else if (countFlags < 0xfc) {
|
|
95
|
-
// result =
|
|
96
|
-
// ((((buffer[offset] & 7) << 8) | buffer[offset + 1]) * Math.pow(2,32) +
|
|
97
|
-
// (buffer[offset + 2] << 24)) |
|
|
98
|
-
// ((buffer[offset + 3] << 16) |
|
|
99
|
-
// (buffer[offset + 4] << 8) |
|
|
100
|
-
// buffer[offset + 5])
|
|
101
|
-
// offset += 6
|
|
102
|
-
// } else if (countFlags < 0xfe) {
|
|
103
|
-
// result =
|
|
104
|
-
// ((((buffer[offset] & 3) << 16) |
|
|
105
|
-
// (buffer[offset + 1] << 8) |
|
|
106
|
-
// buffer[offset + 2]) *
|
|
107
|
-
// Math.pow(2,32) +
|
|
108
|
-
// (buffer[offset + 3] << 24)) |
|
|
109
|
-
// ((buffer[offset + 4] << 16) |
|
|
110
|
-
// (buffer[offset + 5] << 8) |
|
|
111
|
-
// buffer[offset + 6])
|
|
112
|
-
// offset += 7
|
|
113
|
-
// } else if (countFlags < 0xff) {
|
|
114
|
-
// result = Long.fromBytesBE(buffer.slice(offset + 1, offset + 8))
|
|
115
|
-
// if (
|
|
116
|
-
// result.greaterThan(Number.MAX_SAFE_INTEGER) ||
|
|
117
|
-
// result.lessThan(Number.MIN_SAFE_INTEGER)
|
|
118
|
-
// )
|
|
119
|
-
// throw new CramUnimplementedError('integer overflow')
|
|
120
|
-
// result = result.toNumber()
|
|
121
|
-
// offset += 8
|
|
122
|
-
// } else {
|
|
123
|
-
// result = Long.fromBytesBE(buffer.slice(offset + 1, offset + 9))
|
|
124
|
-
// if (
|
|
125
|
-
// result.greaterThan(Number.MAX_SAFE_INTEGER) ||
|
|
126
|
-
// result.lessThan(Number.MIN_SAFE_INTEGER)
|
|
127
|
-
// )
|
|
128
|
-
// throw new CramUnimplementedError('integer overflow')
|
|
129
|
-
// result = result.toNumber()
|
|
130
|
-
// offset += 9
|
|
131
|
-
// }
|
|
132
|
-
// return [result, offset - initialOffset]
|
|
133
|
-
// },
|
|
134
61
|
export function parseItem(buffer, parser, startBufferPosition = 0, startFilePosition = 0) {
|
|
135
62
|
const { offset, result } = parser.parse(buffer);
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
63
|
+
return {
|
|
64
|
+
...result,
|
|
65
|
+
_endPosition: offset + startFilePosition,
|
|
66
|
+
_size: offset - startBufferPosition,
|
|
67
|
+
};
|
|
139
68
|
}
|
|
140
69
|
// this would be nice as a decorator, but i'm a little worried about
|
|
141
70
|
// babel support for it going away or changing.
|
package/esm/cramFile/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/cramFile/util.ts"],"names":[],"mappings":"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"}
|
package/esm/errors.d.ts
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
export class CramError extends Error {
|
|
1
|
+
export declare class CramError extends Error {
|
|
2
2
|
}
|
|
3
3
|
/** Error caused by encountering a part of the CRAM spec that has not yet been implemented */
|
|
4
|
-
export class CramUnimplementedError extends Error {
|
|
4
|
+
export declare class CramUnimplementedError extends Error {
|
|
5
5
|
}
|
|
6
6
|
/** An error caused by malformed data. */
|
|
7
|
-
export class CramMalformedError extends CramError {
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* An error caused by attempting to read beyond the end of the defined data.
|
|
11
|
-
*/
|
|
12
|
-
export class CramBufferOverrunError extends CramMalformedError {
|
|
7
|
+
export declare class CramMalformedError extends CramError {
|
|
13
8
|
}
|
|
14
9
|
/**
|
|
15
10
|
* An error caused by data being too big, exceeding a size limit.
|
|
16
11
|
*/
|
|
17
|
-
export class CramSizeLimitError extends CramError {
|
|
12
|
+
export declare class CramSizeLimitError extends CramError {
|
|
18
13
|
}
|
|
19
14
|
/**
|
|
20
15
|
* An invalid argument was supplied to a cram-js method or object.
|
|
21
16
|
*/
|
|
22
|
-
export class CramArgumentError extends CramError {
|
|
17
|
+
export declare class CramArgumentError extends CramError {
|
|
23
18
|
}
|
package/esm/errors.js
CHANGED
|
@@ -6,11 +6,6 @@ export class CramUnimplementedError extends Error {
|
|
|
6
6
|
/** An error caused by malformed data. */
|
|
7
7
|
export class CramMalformedError extends CramError {
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* An error caused by attempting to read beyond the end of the defined data.
|
|
11
|
-
*/
|
|
12
|
-
export class CramBufferOverrunError extends CramMalformedError {
|
|
13
|
-
}
|
|
14
9
|
/**
|
|
15
10
|
* An error caused by data being too big, exceeding a size limit.
|
|
16
11
|
*/
|
package/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAU,SAAQ,KAAK;CAAG;AAEvC,6FAA6F;AAC7F,MAAM,OAAO,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,0CAA0C;AAC1C,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;CAAG;AAEpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;CAAG"}
|
package/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import CramFile from
|
|
2
|
-
import IndexedCramFile from
|
|
3
|
-
import CraiIndex from
|
|
1
|
+
import CramFile from './cramFile';
|
|
2
|
+
import IndexedCramFile from './indexedCramFile';
|
|
3
|
+
import CraiIndex from './craiIndex';
|
|
4
4
|
export { CramFile, IndexedCramFile, CraiIndex };
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,CAAA"}
|