UNPKG

@gmod/cram

Version:

read CRAM files with pure Javascript

68 lines (67 loc) 2.45 kB
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; }>; }