@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/cramFile/encoding.ts"],"names":[],"mappings":""}
|
package/dist/cramFile/file.d.ts
CHANGED
|
@@ -1,63 +1,113 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import QuickLRU from 'quick-lru';
|
|
3
|
+
import { BlockHeader, CompressionMethod } from './sectionParsers';
|
|
4
|
+
import CramContainer from './container';
|
|
5
|
+
import { Parser } from '@gmod/binary-parser';
|
|
6
|
+
import CramRecord from './record';
|
|
7
|
+
import { Filehandle } from './filehandle';
|
|
8
|
+
export declare type CramFileSource = {
|
|
9
|
+
filehandle?: Filehandle;
|
|
10
|
+
url?: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare type SeqFetch = (seqId: number, start: number, end: number) => Promise<string>;
|
|
14
|
+
export declare type CramFileArgs = CramFileSource & {
|
|
15
|
+
checkSequenceMD5: boolean;
|
|
16
|
+
cacheSize?: number;
|
|
17
|
+
seqFetch: SeqFetch;
|
|
18
|
+
};
|
|
19
|
+
export declare type CramFileBlock = BlockHeader & {
|
|
20
|
+
_endPosition: number;
|
|
21
|
+
contentPosition: number;
|
|
22
|
+
_size: number;
|
|
23
|
+
content: Buffer;
|
|
24
|
+
crc32?: number;
|
|
25
|
+
};
|
|
1
26
|
export default class CramFile {
|
|
2
|
-
|
|
3
|
-
* @param {object} args
|
|
4
|
-
* @param {object} [args.filehandle] - a filehandle that implements the stat() and
|
|
5
|
-
* read() methods of the Node filehandle API https://nodejs.org/api/fs.html#fs_class_filehandle
|
|
6
|
-
* @param {object} [args.path] - path to the cram file
|
|
7
|
-
* @param {object} [args.url] - url for the cram file. also supports file:// urls for local files
|
|
8
|
-
* @param {function} [args.seqFetch] - a function with signature
|
|
9
|
-
* `(seqId, startCoordinate, endCoordinate)` that returns a promise for a string of sequence bases
|
|
10
|
-
* @param {number} [args.cacheSize] optional maximum number of CRAM records to cache. default 20,000
|
|
11
|
-
* @param {boolean} [args.checkSequenceMD5] - default true. if false, disables verifying the MD5
|
|
12
|
-
* checksum of the reference sequence underlying a slice. In some applications, this check can cause an inconvenient amount (many megabases) of sequences to be fetched.
|
|
13
|
-
*/
|
|
14
|
-
constructor(args: {
|
|
15
|
-
filehandle?: object | undefined;
|
|
16
|
-
path?: object | undefined;
|
|
17
|
-
url?: object | undefined;
|
|
18
|
-
seqFetch?: Function | undefined;
|
|
19
|
-
cacheSize?: number | undefined;
|
|
20
|
-
checkSequenceMD5?: boolean | undefined;
|
|
21
|
-
});
|
|
22
|
-
file: any;
|
|
27
|
+
private file;
|
|
23
28
|
validateChecksums: boolean;
|
|
24
|
-
fetchReferenceSequenceCallback:
|
|
29
|
+
fetchReferenceSequenceCallback: SeqFetch;
|
|
25
30
|
options: {
|
|
26
31
|
checkSequenceMD5: boolean;
|
|
27
32
|
cacheSize: number;
|
|
28
33
|
};
|
|
29
|
-
featureCache:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
featureCache: QuickLRU<string, Promise<CramRecord[]>>;
|
|
35
|
+
private header;
|
|
36
|
+
constructor(args: CramFileArgs);
|
|
37
|
+
read(buffer: Buffer, offset: number, length: number, position: number): Promise<{
|
|
38
|
+
bytesRead: number;
|
|
39
|
+
buffer: Buffer;
|
|
40
|
+
}>;
|
|
41
|
+
stat(): Promise<import("generic-filehandle").Stats>;
|
|
33
42
|
getDefinition(): Promise<any>;
|
|
34
|
-
getSamHeader(): Promise<
|
|
35
|
-
|
|
36
|
-
getHeaderText(): Promise<any>;
|
|
43
|
+
getSamHeader(): Promise<import("../sam").HeaderDataItem[]>;
|
|
44
|
+
getHeaderText(): Promise<string | undefined>;
|
|
37
45
|
getSectionParsers(): Promise<{
|
|
38
46
|
cramFileDefinition: {
|
|
39
|
-
parser:
|
|
47
|
+
parser: Parser<{
|
|
48
|
+
magic: string;
|
|
49
|
+
majorVersion: number;
|
|
50
|
+
minorVersion: number;
|
|
51
|
+
fileId: string;
|
|
52
|
+
}>;
|
|
53
|
+
maxLength: number;
|
|
54
|
+
};
|
|
55
|
+
cramContainerHeader1: {
|
|
56
|
+
parser: Parser<{
|
|
57
|
+
length: number;
|
|
58
|
+
refSeqId: number;
|
|
59
|
+
refSeqStart: number;
|
|
60
|
+
alignmentSpan: number;
|
|
61
|
+
numRecords: number;
|
|
62
|
+
recordCounter: number;
|
|
63
|
+
numBases: number;
|
|
64
|
+
numBlocks: number;
|
|
65
|
+
numLandmarks: number;
|
|
66
|
+
}>;
|
|
40
67
|
maxLength: number;
|
|
41
68
|
};
|
|
69
|
+
cramContainerHeader2: {
|
|
70
|
+
parser: Parser<{
|
|
71
|
+
numLandmarks: number;
|
|
72
|
+
landmarks: number[];
|
|
73
|
+
crc32: number;
|
|
74
|
+
}>;
|
|
75
|
+
maxLength: (x: number) => number;
|
|
76
|
+
};
|
|
42
77
|
cramBlockHeader: {
|
|
43
|
-
parser:
|
|
78
|
+
parser: Parser<BlockHeader>;
|
|
44
79
|
maxLength: number;
|
|
45
80
|
};
|
|
46
81
|
cramBlockCrc32: {
|
|
47
|
-
parser:
|
|
82
|
+
parser: Parser<{
|
|
83
|
+
crc32: number;
|
|
84
|
+
}>;
|
|
48
85
|
maxLength: number;
|
|
49
86
|
};
|
|
87
|
+
cramCompressionHeader: {
|
|
88
|
+
parser: Parser<import("./sectionParsers").CramCompressionHeader>;
|
|
89
|
+
};
|
|
90
|
+
cramMappedSliceHeader: {
|
|
91
|
+
parser: Parser<import("./sectionParsers").MappedSliceHeader>;
|
|
92
|
+
maxLength: (numContentIds: number) => number;
|
|
93
|
+
};
|
|
94
|
+
cramUnmappedSliceHeader: {
|
|
95
|
+
parser: Parser<import("./sectionParsers").UnmappedSliceHeader>;
|
|
96
|
+
maxLength: (numContentIds: number) => number;
|
|
97
|
+
};
|
|
50
98
|
}>;
|
|
51
|
-
getContainerById(containerNumber:
|
|
52
|
-
checkCrc32(position:
|
|
99
|
+
getContainerById(containerNumber: number): Promise<CramContainer | undefined>;
|
|
100
|
+
checkCrc32(position: number, length: number, recordedCrc32: number, description: string): Promise<void>;
|
|
53
101
|
/**
|
|
54
102
|
* @returns {Promise[number]} the number of containers in the file
|
|
55
103
|
*/
|
|
56
|
-
containerCount():
|
|
57
|
-
getContainerAtPosition(position:
|
|
58
|
-
readBlockHeader(position:
|
|
59
|
-
_parseSection(section:
|
|
60
|
-
|
|
61
|
-
|
|
104
|
+
containerCount(): Promise<number | undefined>;
|
|
105
|
+
getContainerAtPosition(position: number): CramContainer;
|
|
106
|
+
readBlockHeader(position: number): Promise<import("./util").ParsedItem<BlockHeader> | undefined>;
|
|
107
|
+
_parseSection<T>(section: {
|
|
108
|
+
parser: Parser<T>;
|
|
109
|
+
maxLength: number;
|
|
110
|
+
}, position: number, size?: number, preReadBuffer?: undefined): Promise<import("./util").ParsedItem<T> | undefined>;
|
|
111
|
+
_uncompress(compressionMethod: CompressionMethod, inputBuffer: Buffer, outputBuffer: Buffer): void;
|
|
112
|
+
readBlock(position: number): Promise<CramFileBlock | undefined>;
|
|
62
113
|
}
|
|
63
|
-
import CramContainer from "./container";
|