@gmod/bam
Version:
Parser for BAM and BAM index (bai) files
77 lines (76 loc) • 2.96 kB
TypeScript
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[]>;
}