@gmod/cram
Version:
read CRAM files with pure Javascript
68 lines (67 loc) • 2.45 kB
TypeScript
import CramSlice from '../slice/index.ts';
import CramContainerCompressionScheme from './compressionScheme.ts';
import type CramFile from '../file.ts';
export default class CramContainer {
file: CramFile;
filePosition: number;
private _headerResult?;
private _compressionHeaderBlockResult?;
private _compressionSchemeResult?;
constructor(file: CramFile, filePosition: number);
getHeader(): Promise<{
_size: number;
_endPosition: number;
numLandmarks: number;
landmarks: number[];
crc32?: number | undefined;
length: number;
refSeqId: number;
refSeqStart: number;
alignmentSpan: number;
numBlocks: number;
numBases: number | undefined;
recordCounter: number;
numRecords: number;
}>;
private _fetchHeader;
getCompressionHeaderBlock(): Promise<{
parsedContent: {
dataSeriesEncoding: import("../codecs/dataSeriesTypes.ts").DataSeriesEncodingMap;
preservation: import("../sectionParsers.ts").CramPreservationMap;
tagEncoding: Record<string, import("../encoding.ts").CramEncoding>;
} & {
_endPosition: number;
_size: number;
};
compressionMethod: import("../sectionParsers.ts").CompressionMethod;
contentType: "FILE_HEADER" | "COMPRESSION_HEADER" | "MAPPED_SLICE_HEADER" | "UNMAPPED_SLICE_HEADER" | "EXTERNAL_DATA" | "CORE_DATA";
contentId: number;
compressedSize: number;
uncompressedSize: number;
_endPosition: number;
contentPosition: number;
_size: number;
content: Uint8Array;
crc32?: number;
} | null>;
private _fetchCompressionHeaderBlock;
getFirstBlock(): Promise<import("../file.ts").CramFileBlock>;
getCompressionScheme(): Promise<CramContainerCompressionScheme | undefined>;
private _fetchCompressionScheme;
getSlice(slicePosition: number, sliceSize: number): CramSlice;
_readContainerHeader(position: number): Promise<{
_size: number;
_endPosition: number;
numLandmarks: number;
landmarks: number[];
crc32?: number | undefined;
length: number;
refSeqId: number;
refSeqStart: number;
alignmentSpan: number;
numBlocks: number;
numBases: number | undefined;
recordCounter: number;
numRecords: number;
}>;
}