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.
62 lines (61 loc) • 1.48 kB
TypeScript
import { DataLoader } from "../loader/DataLoader";
export interface HeaderData {
fileType: FileType;
littleEndian: boolean;
common?: CommonHeader;
zoomLevelHeaders?: Array<ZoomLevelHeader>;
autosql?: string;
totalSummary?: BWTotalSummary;
chromTree?: ChromTree;
sequences?: {
[name: string]: number;
};
}
export declare enum FileType {
BigWig = "BigWig",
BigBed = "BigBed",
TwoBit = "TwoBit"
}
export interface CommonHeader {
bwVersion: number;
nZoomLevels: number;
chromTreeOffset: number;
fullDataOffset: number;
fullIndexOffset: number;
fieldCount: number;
definedFieldCount: number;
autoSqlOffset: number;
totalSummaryOffset: number;
uncompressBuffSize: number;
reserved: number;
}
export interface ZoomLevelHeader {
index: number;
reductionLevel: number;
reserved: number;
dataOffset: number;
indexOffset: number;
}
export interface BWTotalSummary {
basesCovered: number;
minVal: number;
maxVal: number;
sumData: number;
sumSquares: number;
}
export interface ChromTree {
magic: number;
blockSize: number;
keySize: number;
valSize: number;
itemCount: number;
reserved: number;
chromToId: {
[chrom: string]: number;
};
chromSize: {
[chrom: string]: number;
};
idToChrom: Array<string>;
}
export declare function loadHeaderData(dataLoader: DataLoader): Promise<HeaderData>;