@gmod/bbi
Version:
Parser for BigWig/BigBed files
30 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BigWig = void 0;
const bbi_ts_1 = require("./bbi.js");
const block_view_ts_1 = require("./block-view.js");
class BigWig extends bbi_ts_1.BBI {
/**
* Retrieves a BlockView of a specific zoomLevel
*
* @param scale - number
*
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair)
* or scale used to infer the zoomLevel to use
*/
async getView(scale, opts) {
const { zoomLevels, refsByName, uncompressBufSize } = await this.getHeader(opts);
const basesPerPx = 1 / scale;
const maxLevel = zoomLevels.length - 1;
for (let i = maxLevel; i >= 0; i -= 1) {
const zh = zoomLevels[i];
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
if (zh && zh.reductionLevel <= 2 * basesPerPx) {
return new block_view_ts_1.BlockView(this.bbi, refsByName, zh.indexOffset, uncompressBufSize > 0, 'summary');
}
}
return this.getUnzoomedView(opts);
}
}
exports.BigWig = BigWig;
//# sourceMappingURL=bigwig.js.map