UNPKG

@gmod/bam

Version:

Parser for BAM and BAM index (bai) files

77 lines (76 loc) 2.96 kB
import BAI from './bai'; import Chunk from './chunk'; import CSI from './csi'; import BAMFeature from './record'; import { BamOpts, BaseOpts } from './util'; import type { GenericFilehandle } from 'generic-filehandle2'; export declare const BAM_MAGIC = 21840194; export default class BamFile { renameRefSeq: (a: string) => string; bam: GenericFilehandle; header?: string; chrToIndex?: Record<string, number>; indexToChr?: { refName: string; length: number; }[]; yieldThreadTime: number; index?: BAI | CSI; htsget: boolean; headerP?: ReturnType<BamFile['getHeaderPre']>; private featureCache; constructor({ bamFilehandle, bamPath, bamUrl, baiPath, baiFilehandle, baiUrl, csiPath, csiFilehandle, csiUrl, htsget, yieldThreadTime, renameRefSeqs, }: { bamFilehandle?: GenericFilehandle; bamPath?: string; bamUrl?: string; baiPath?: string; baiFilehandle?: GenericFilehandle; baiUrl?: string; csiPath?: string; csiFilehandle?: GenericFilehandle; csiUrl?: string; renameRefSeqs?: (a: string) => string; yieldThreadTime?: number; htsget?: boolean; }); getHeaderPre(origOpts?: BaseOpts): Promise<{ tag: string; data: { tag: string; value: string; }[]; }[] | undefined>; getHeader(opts?: BaseOpts): Promise<{ tag: string; data: { tag: string; value: string; }[]; }[] | undefined>; getHeaderText(opts?: BaseOpts): Promise<string | undefined>; _readRefSeqs(start: number, refSeqBytes: number, opts?: BaseOpts): Promise<{ chrToIndex: Record<string, number>; indexToChr: { refName: string; length: number; }[]; }>; getRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): Promise<BAMFeature[]>; streamRecordsForRange(chr: string, min: number, max: number, opts?: BamOpts): AsyncGenerator<BAMFeature[], void, unknown>; _fetchChunkFeatures(chunks: Chunk[], chrId: number, min: number, max: number, opts?: BamOpts): AsyncGenerator<BAMFeature[], void, unknown>; fetchPairs(chrId: number, feats: BAMFeature[][], opts: BamOpts): Promise<BAMFeature[]>; _readChunk({ chunk, opts }: { chunk: Chunk; opts: BaseOpts; }): Promise<{ data: Uint8Array<ArrayBuffer>; cpositions: number[]; dpositions: number[]; chunk: Chunk; }>; readBamFeatures(ba: Uint8Array, cpositions: number[], dpositions: number[], chunk: Chunk): Promise<BAMFeature[]>; hasRefSeq(seqName: string): Promise<boolean | undefined>; lineCount(seqName: string): Promise<number>; indexCov(seqName: string, start?: number, end?: number): Promise<import("./bai").IndexCovEntry[]>; blocksForRange(seqName: string, start: number, end: number, opts?: BaseOpts): Promise<Chunk[]>; }