@gmod/cram
Version:
read CRAM files with pure Javascript
51 lines (50 loc) • 2.02 kB
TypeScript
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[]>;
}