UNPKG

@gmod/bam

Version:

Parser for BAM and BAM index (bai) files

54 lines (53 loc) 1.98 kB
import Chunk from './chunk.ts'; import type { Offset, VirtualOffset } from './virtualOffset.ts'; export interface TagFilter { tag: string; value?: string; } export interface FilterBy { flagInclude?: number; flagExclude?: number; tagFilter?: TagFilter; } export interface BamOpts { viewAsPairs?: boolean; pairAcrossChr?: boolean; maxInsertSize?: number; signal?: AbortSignal; filterBy?: FilterBy; } export interface BaseOpts { signal?: AbortSignal; } export declare function optimizeChunks(chunks: Chunk[], lowest?: Offset): Chunk[]; export declare function parsePseudoBin(bytes: Uint8Array, offset: number): { lineCount: number; }; export declare function parseRefSeqs(uncba: Uint8Array, start: number, renameRefSeq: (s: string) => string): { chrToIndex: Record<string, number>; indexToChr: { refName: string; length: number; }[]; } | undefined; export declare function findFirstData(firstDataLine: VirtualOffset | undefined, virtualOffset: VirtualOffset): VirtualOffset; export declare function parseNameBytes(namesBytes: Uint8Array, renameRefSeq?: (arg: string) => string): { refNameToId: Record<string, number>; refIdToName: string[]; }; export declare function concatUint8Array(args: Uint8Array[]): Uint8Array<ArrayBuffer>; export declare function filterReadFlag(flags: number, flagInclude: number, flagExclude: number): boolean; export declare function filterTagValue(readVal: unknown, filterVal?: string): boolean; export declare function filterCacheKey(filterBy?: FilterBy): string; interface Filterable { flags: number; tags: Record<string, unknown>; } export declare function applyFilters<T extends Filterable>(records: T[], filterBy: FilterBy): T[]; interface Positioned { ref_id: number; start: number; end: number; } export declare function appendInRange<T extends Positioned>(records: T[], chrId: number, min: number, max: number, out?: T[]): T[]; export {};