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.
64 lines (63 loc) • 2.86 kB
TypeScript
/// <reference types="node" />
import { DataLoader } from "../loader/DataLoader";
import { HeaderData, FileType } from "./BigWigHeaderReader";
import { SequenceRecord } from "./TwoBitHeaderReader";
import { Readable } from "stream";
export interface BigWigData {
chr: string;
start: number;
end: number;
value: number;
}
export interface BigBedData {
chr: string;
start: number;
end: number;
name?: string;
score?: number;
strand?: string;
cdStart?: number;
cdEnd?: number;
color?: string;
exons?: Array<BigBedExon>;
}
export interface BigBedExon {
start: number;
end: number;
}
export interface BigZoomData {
chr: string;
start: number;
end: number;
validCount: number;
minVal: number;
maxVal: number;
sumData: number;
sumSquares: number;
}
export declare type ParseFunction<T> = (chrom: string, startBase: number, endBase: number, rest: string) => T;
export declare class BigWigReader {
private dataLoader;
private bufferSize;
private cachedHeader?;
private cachedSequenceRecords;
constructor(dataLoader: DataLoader, bufferSize?: number);
fileType(): Promise<FileType>;
getHeader(): Promise<HeaderData>;
getSequenceRecord(chrom: string): Promise<SequenceRecord>;
readBigWigData(startChrom: string, startBase: number, endChrom: string, endBase: number): Promise<Array<BigWigData>>;
streamBigWigData(startChrom: string, startBase: number, endChrom: string, endBase: number): Promise<Readable>;
readBigBedData(startChrom: string, startBase: number, endChrom: string, endBase: number): Promise<Array<BigBedData>>;
readBigBedData<T>(startChrom: string, startBase: number, endChrom: string, endBase: number, restParser: ParseFunction<T>): Promise<Array<T>>;
streamBigBedData(startChrom: string, startBase: number, endChrom: string, endBase: number): Promise<Readable>;
streamBigBedData<T>(startChrom: string, startBase: number, endChrom: string, endBase: number, restParser: ParseFunction<T>): Promise<Readable>;
readTwoBitData(chrom: string, startBase: number, endBase: number): Promise<string>;
readTwoBitDataMatrix(chrom: string, startBase: number, endBase: number): Promise<Array<Array<number>>>;
streamTwoBitData(chrom: string, startBase: number, endBase: number, chunkSize?: number, oneHotEncodedData?: boolean): Promise<Readable>;
readZoomData(startChrom: string, startBase: number, endChrom: string, endBase: number, zoomLevelIndex: number): Promise<Array<BigZoomData>>;
streamZoomData(startChrom: string, startBase: number, endChrom: string, endBase: number, zoomLevelIndex: number): Promise<Readable>;
private loadData;
private readData;
private streamData;
}
export declare function parseBigBed(chrom: string, startBase: number, endBase: number, rest: string): BigBedData;