genomic-reader
Version:
A Typescript library for reading BigWig, BigBed, 2bit, and Bam files. Capable of streaming. For use in the browser or on Node.js.
53 lines (52 loc) • 1.64 kB
TypeScript
import { DataLoader } from "../loader/DataLoader";
import { BamHeader } from "./BamHeaderReader";
import { Chunk, BamIndexData } from "./BamIndexReader";
export interface CigarOp {
opLen: number;
op: string;
seqOffset: number;
}
export interface BamAlignmentMate {
chr: string;
position: number;
strand: boolean;
}
export interface BamAlignment {
chr: string;
start: number;
flags: number;
strand: boolean;
readName: string;
cigarOps: Array<CigarOp>;
templateLength: number;
mappingQuality: number;
seq: string;
phredQualities: Array<number>;
lengthOnRef: number;
}
export declare function isFlagged(bitwiseFlags: number, flag: BamAlignmentFlag): boolean;
export declare enum BamAlignmentFlag {
READ_PAIRED = 1,
PROPER_PAIR = 2,
READ_UNMAPPED = 4,
MATE_UNMAPPED = 8,
READ_STRAND = 16,
MATE_STRAND = 32,
FIRST_OF_PAIR = 64,
SECOND_OF_PAIR = 128,
SECONDARY_ALIGNMNET = 256,
READ_FAILS_VENDOR_QUALITY_CHECK = 512,
DUPLICATE_READ = 1024,
SUPPLEMENTARY_ALIGNMENT = 2048
}
export declare class BamReader {
private bamDataLoader;
private bamIndexDataLoader;
constructor(bamDataLoader: DataLoader, bamIndexDataLoader: DataLoader);
private indexData?;
getIndexData(): Promise<BamIndexData>;
private headerData?;
getHeaderData(): Promise<BamHeader>;
read(chr: string, start: number, end: number): Promise<Array<BamAlignment>>;
}
export declare function readBam(bamDataLoader: DataLoader, chunks: Array<Chunk>, refId: number, chr: string, start: number, end: number): Promise<Array<BamAlignment>>;