UNPKG

@gmod/cram

Version:

read CRAM files with pure Javascript

51 lines (50 loc) 2.02 kB
import CramContainer from '../container/index.ts'; import { CramFileBlock } from '../file.ts'; import CramRecord from '../record.ts'; import { MappedSliceHeader, UnmappedSliceHeader } from '../sectionParsers.ts'; export type SliceHeader = CramFileBlock & { parsedContent: MappedSliceHeader | UnmappedSliceHeader; }; export default class CramSlice { container: CramContainer; containerPosition: number; sliceSize: number; private file; constructor(container: CramContainer, containerPosition: number, sliceSize: number); getHeader(): Promise<{ parsedContent: { recordCounter: number; md5: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number] | undefined; contentIds: number[]; numContentIds: number; numBlocks: number; numRecords: number; } & { _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; }>; getBlocks(): Promise<CramFileBlock[]>; getCoreDataBlock(): Promise<CramFileBlock>; _getBlocksContentIdIndex(): Promise<Record<number, CramFileBlock>>; getBlockByContentId(id: number): Promise<CramFileBlock | undefined>; getReferenceRegion(): Promise<{ seq: string; start: number; end: number; span: number; } | undefined>; getAllRecords(): Promise<CramRecord[]>; _fetchRecords(): Promise<CramRecord[]>; getRecords(filterFunction: (r: CramRecord) => boolean): Promise<CramRecord[]>; }