UNPKG

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
/// <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;