@gmod/bbi 1.0.27 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +42 -27
- package/dist/bbi.d.ts +18 -15
- package/dist/bbi.js +361 -593
- package/dist/bigbed.d.ts +7 -16
- package/dist/bigbed.js +285 -455
- package/dist/bigwig.d.ts +2 -2
- package/dist/bigwig.js +88 -110
- package/dist/blockView.d.ts +2 -1
- package/dist/blockView.js +404 -508
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -35
- package/dist/range.js +115 -178
- package/dist/util.js +110 -114
- package/esm/bbi.d.ts +84 -0
- package/esm/bbi.js +259 -0
- package/esm/bigbed.d.ts +12 -0
- package/esm/bigbed.js +182 -0
- package/esm/bigwig.d.ts +13 -0
- package/esm/bigwig.js +35 -0
- package/esm/blockView.d.ts +42 -0
- package/esm/blockView.js +323 -0
- package/esm/index.d.ts +3 -0
- package/esm/index.js +7 -0
- package/esm/range.d.ts +18 -0
- package/esm/range.js +126 -0
- package/esm/util.d.ts +24 -0
- package/esm/util.js +74 -0
- package/package.json +17 -27
- package/dist/declares.d.js +0 -2
package/dist/bigwig.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockView } from './blockView';
|
|
2
|
-
import { BBI } from './bbi';
|
|
2
|
+
import { BBI, RequestOptions } from './bbi';
|
|
3
3
|
export declare class BigWig extends BBI {
|
|
4
4
|
/**
|
|
5
5
|
* Retrieves a BlockView of a specific zoomLevel
|
|
@@ -9,5 +9,5 @@ export declare class BigWig extends BBI {
|
|
|
9
9
|
* @param end - The end of a region
|
|
10
10
|
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
|
|
11
11
|
*/
|
|
12
|
-
protected getView(scale: number,
|
|
12
|
+
protected getView(scale: number, opts: RequestOptions): Promise<BlockView>;
|
|
13
13
|
}
|
package/dist/bigwig.js
CHANGED
|
@@ -1,43 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
28
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
+
function step(op) {
|
|
31
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
+
while (_) try {
|
|
33
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
+
switch (op[0]) {
|
|
36
|
+
case 0: case 1: t = op; break;
|
|
37
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
+
default:
|
|
41
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
+
if (t[2]) _.ops.pop();
|
|
46
|
+
_.trys.pop(); continue;
|
|
47
|
+
}
|
|
48
|
+
op = body.call(thisArg, _);
|
|
49
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
54
|
exports.BigWig = void 0;
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
-
|
|
24
|
-
var _blockView = require("./blockView");
|
|
25
|
-
|
|
26
|
-
var _bbi = require("./bbi");
|
|
27
|
-
|
|
28
|
-
var BigWig =
|
|
29
|
-
/*#__PURE__*/
|
|
30
|
-
function (_BBI) {
|
|
31
|
-
(0, _inherits2.default)(BigWig, _BBI);
|
|
32
|
-
|
|
33
|
-
function BigWig() {
|
|
34
|
-
(0, _classCallCheck2.default)(this, BigWig);
|
|
35
|
-
return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(BigWig).apply(this, arguments));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
(0, _createClass2.default)(BigWig, [{
|
|
39
|
-
key: "getView",
|
|
40
|
-
|
|
55
|
+
var blockView_1 = require("./blockView");
|
|
56
|
+
var bbi_1 = require("./bbi");
|
|
57
|
+
var BigWig = /** @class */ (function (_super) {
|
|
58
|
+
__extends(BigWig, _super);
|
|
59
|
+
function BigWig() {
|
|
60
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
61
|
+
}
|
|
41
62
|
/**
|
|
42
63
|
* Retrieves a BlockView of a specific zoomLevel
|
|
43
64
|
*
|
|
@@ -46,77 +67,34 @@ function (_BBI) {
|
|
|
46
67
|
* @param end - The end of a region
|
|
47
68
|
* @param opts - An object containing basesPerSpan (e.g. pixels per basepair) or scale used to infer the zoomLevel to use
|
|
48
69
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
// if we don't know the file size, we can't fetch the highest zoom level :-(
|
|
74
|
-
maxLevel -= 1;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
i = maxLevel;
|
|
78
|
-
|
|
79
|
-
case 12:
|
|
80
|
-
if (!(i >= 0)) {
|
|
81
|
-
_context.next = 20;
|
|
82
|
-
break;
|
|
70
|
+
BigWig.prototype.getView = function (scale, opts) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
var _a, zoomLevels, refsByName, fileSize, isBigEndian, uncompressBufSize, basesPerPx, maxLevel, i, zh, indexLength;
|
|
73
|
+
return __generator(this, function (_b) {
|
|
74
|
+
switch (_b.label) {
|
|
75
|
+
case 0: return [4 /*yield*/, this.getHeader(opts)];
|
|
76
|
+
case 1:
|
|
77
|
+
_a = _b.sent(), zoomLevels = _a.zoomLevels, refsByName = _a.refsByName, fileSize = _a.fileSize, isBigEndian = _a.isBigEndian, uncompressBufSize = _a.uncompressBufSize;
|
|
78
|
+
basesPerPx = 1 / scale;
|
|
79
|
+
maxLevel = zoomLevels.length;
|
|
80
|
+
if (!fileSize) {
|
|
81
|
+
// if we don't know the file size, we can't fetch the highest zoom level :-(
|
|
82
|
+
maxLevel -= 1;
|
|
83
|
+
}
|
|
84
|
+
for (i = maxLevel; i >= 0; i -= 1) {
|
|
85
|
+
zh = zoomLevels[i];
|
|
86
|
+
if (zh && zh.reductionLevel <= 2 * basesPerPx) {
|
|
87
|
+
indexLength = i < zoomLevels.length - 1
|
|
88
|
+
? zoomLevels[i + 1].dataOffset - zh.indexOffset
|
|
89
|
+
: fileSize - 4 - zh.indexOffset;
|
|
90
|
+
return [2 /*return*/, new blockView_1.BlockView(this.bbi, refsByName, zh.indexOffset, indexLength, isBigEndian, uncompressBufSize > 0, 'summary')];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return [2 /*return*/, this.getUnzoomedView(opts)];
|
|
83
94
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
indexLength = i < zoomLevels.length - 1 ? zoomLevels[i + 1].dataOffset - zh.indexOffset : fileSize - 4 - zh.indexOffset;
|
|
93
|
-
return _context.abrupt("return", new _blockView.BlockView(this.bbi, refsByName, zh.indexOffset, indexLength, isBigEndian, uncompressBufSize > 0, 'summary'));
|
|
94
|
-
|
|
95
|
-
case 17:
|
|
96
|
-
i -= 1;
|
|
97
|
-
_context.next = 12;
|
|
98
|
-
break;
|
|
99
|
-
|
|
100
|
-
case 20:
|
|
101
|
-
return _context.abrupt("return", this.getUnzoomedView(abortSignal));
|
|
102
|
-
|
|
103
|
-
case 21:
|
|
104
|
-
case "end":
|
|
105
|
-
return _context.stop();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}, _callee, this);
|
|
109
|
-
}));
|
|
110
|
-
|
|
111
|
-
function getView(_x, _x2) {
|
|
112
|
-
return _getView.apply(this, arguments);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
return getView;
|
|
116
|
-
}()
|
|
117
|
-
}]);
|
|
118
|
-
return BigWig;
|
|
119
|
-
}(_bbi.BBI);
|
|
120
|
-
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
return BigWig;
|
|
99
|
+
}(bbi_1.BBI));
|
|
121
100
|
exports.BigWig = BigWig;
|
|
122
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iaWd3aWcudHMiXSwibmFtZXMiOlsiQmlnV2lnIiwic2NhbGUiLCJhYm9ydFNpZ25hbCIsImdldEhlYWRlciIsInpvb21MZXZlbHMiLCJyZWZzQnlOYW1lIiwiZmlsZVNpemUiLCJpc0JpZ0VuZGlhbiIsInVuY29tcHJlc3NCdWZTaXplIiwiYmFzZXNQZXJQeCIsIm1heExldmVsIiwibGVuZ3RoIiwiaSIsInpoIiwicmVkdWN0aW9uTGV2ZWwiLCJpbmRleExlbmd0aCIsImRhdGFPZmZzZXQiLCJpbmRleE9mZnNldCIsIkJsb2NrVmlldyIsImJiaSIsImdldFVuem9vbWVkVmlldyIsIkJCSSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7SUFFYUEsTTs7Ozs7Ozs7Ozs7OztBQUNYOzs7Ozs7Ozs7OztpREFRd0JDLEssRUFBZUMsVzs7Ozs7Ozs7dUJBQzhDLEtBQUtDLFNBQUwsQ0FBZUQsV0FBZixDOzs7O0FBQTNFRSxnQkFBQUEsVSxRQUFBQSxVO0FBQVlDLGdCQUFBQSxVLFFBQUFBLFU7QUFBWUMsZ0JBQUFBLFEsUUFBQUEsUTtBQUFVQyxnQkFBQUEsVyxRQUFBQSxXO0FBQWFDLGdCQUFBQSxpQixRQUFBQSxpQjtBQUNqREMsZ0JBQUFBLFUsR0FBYSxJQUFJUixLO0FBQ25CUyxnQkFBQUEsUSxHQUFXTixVQUFVLENBQUNPLE07O0FBQzFCLG9CQUFJLENBQUNMLFFBQUwsRUFBZTtBQUNiO0FBQ0FJLGtCQUFBQSxRQUFRLElBQUksQ0FBWjtBQUNEOztBQUVRRSxnQkFBQUEsQyxHQUFJRixROzs7c0JBQVVFLENBQUMsSUFBSSxDOzs7OztBQUNwQkMsZ0JBQUFBLEUsR0FBS1QsVUFBVSxDQUFDUSxDQUFELEM7O3NCQUNqQkMsRUFBRSxJQUFJQSxFQUFFLENBQUNDLGNBQUgsSUFBcUIsSUFBSUwsVTs7Ozs7QUFDM0JNLGdCQUFBQSxXLEdBQ0pILENBQUMsR0FBR1IsVUFBVSxDQUFDTyxNQUFYLEdBQW9CLENBQXhCLEdBQTRCUCxVQUFVLENBQUNRLENBQUMsR0FBRyxDQUFMLENBQVYsQ0FBa0JJLFVBQWxCLEdBQStCSCxFQUFFLENBQUNJLFdBQTlELEdBQTRFWCxRQUFRLEdBQUcsQ0FBWCxHQUFlTyxFQUFFLENBQUNJLFc7aURBQ3pGLElBQUlDLG9CQUFKLENBQ0wsS0FBS0MsR0FEQSxFQUVMZCxVQUZLLEVBR0xRLEVBQUUsQ0FBQ0ksV0FIRSxFQUlMRixXQUpLLEVBS0xSLFdBTEssRUFNTEMsaUJBQWlCLEdBQUcsQ0FOZixFQU9MLFNBUEssQzs7O0FBTG9CSSxnQkFBQUEsQ0FBQyxJQUFJLEM7Ozs7O2lEQWdCN0IsS0FBS1EsZUFBTCxDQUFxQmxCLFdBQXJCLEM7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWxDaUJtQixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmxvY2tWaWV3IH0gZnJvbSAnLi9ibG9ja1ZpZXcnXG5pbXBvcnQgeyBCQkkgfSBmcm9tICcuL2JiaSdcblxuZXhwb3J0IGNsYXNzIEJpZ1dpZyBleHRlbmRzIEJCSSB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYSBCbG9ja1ZpZXcgb2YgYSBzcGVjaWZpYyB6b29tTGV2ZWxcbiAgICpcbiAgICogQHBhcmFtIHJlZk5hbWUgLSBUaGUgY2hyb21vc29tZSBuYW1lXG4gICAqIEBwYXJhbSBzdGFydCAtIFRoZSBzdGFydCBvZiBhIHJlZ2lvblxuICAgKiBAcGFyYW0gZW5kIC0gVGhlIGVuZCBvZiBhIHJlZ2lvblxuICAgKiBAcGFyYW0gb3B0cyAtIEFuIG9iamVjdCBjb250YWluaW5nIGJhc2VzUGVyU3BhbiAoZS5nLiBwaXhlbHMgcGVyIGJhc2VwYWlyKSBvciBzY2FsZSB1c2VkIHRvIGluZmVyIHRoZSB6b29tTGV2ZWwgdG8gdXNlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0VmlldyhzY2FsZTogbnVtYmVyLCBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxCbG9ja1ZpZXc+IHtcbiAgICBjb25zdCB7IHpvb21MZXZlbHMsIHJlZnNCeU5hbWUsIGZpbGVTaXplLCBpc0JpZ0VuZGlhbiwgdW5jb21wcmVzc0J1ZlNpemUgfSA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVyKGFib3J0U2lnbmFsKVxuICAgIGNvbnN0IGJhc2VzUGVyUHggPSAxIC8gc2NhbGVcbiAgICBsZXQgbWF4TGV2ZWwgPSB6b29tTGV2ZWxzLmxlbmd0aFxuICAgIGlmICghZmlsZVNpemUpIHtcbiAgICAgIC8vIGlmIHdlIGRvbid0IGtub3cgdGhlIGZpbGUgc2l6ZSwgd2UgY2FuJ3QgZmV0Y2ggdGhlIGhpZ2hlc3Qgem9vbSBsZXZlbCA6LShcbiAgICAgIG1heExldmVsIC09IDFcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gbWF4TGV2ZWw7IGkgPj0gMDsgaSAtPSAxKSB7XG4gICAgICBjb25zdCB6aCA9IHpvb21MZXZlbHNbaV1cbiAgICAgIGlmICh6aCAmJiB6aC5yZWR1Y3Rpb25MZXZlbCA8PSAyICogYmFzZXNQZXJQeCkge1xuICAgICAgICBjb25zdCBpbmRleExlbmd0aCA9XG4gICAgICAgICAgaSA8IHpvb21MZXZlbHMubGVuZ3RoIC0gMSA/IHpvb21MZXZlbHNbaSArIDFdLmRhdGFPZmZzZXQgLSB6aC5pbmRleE9mZnNldCA6IGZpbGVTaXplIC0gNCAtIHpoLmluZGV4T2Zmc2V0XG4gICAgICAgIHJldHVybiBuZXcgQmxvY2tWaWV3KFxuICAgICAgICAgIHRoaXMuYmJpLFxuICAgICAgICAgIHJlZnNCeU5hbWUsXG4gICAgICAgICAgemguaW5kZXhPZmZzZXQsXG4gICAgICAgICAgaW5kZXhMZW5ndGgsXG4gICAgICAgICAgaXNCaWdFbmRpYW4sXG4gICAgICAgICAgdW5jb21wcmVzc0J1ZlNpemUgPiAwLFxuICAgICAgICAgICdzdW1tYXJ5JyxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRVbnpvb21lZFZpZXcoYWJvcnRTaWduYWwpXG4gIH1cbn1cbiJdfQ==
|
package/dist/blockView.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Observer } from 'rxjs';
|
|
2
|
+
import { GenericFilehandle } from 'generic-filehandle';
|
|
2
3
|
import { Feature } from './bbi';
|
|
3
4
|
interface CoordRequest {
|
|
4
5
|
chrId: number;
|
|
@@ -30,7 +31,7 @@ export declare class BlockView {
|
|
|
30
31
|
private bigWigParser;
|
|
31
32
|
private bigBedParser;
|
|
32
33
|
private summaryParser;
|
|
33
|
-
constructor(bbi:
|
|
34
|
+
constructor(bbi: GenericFilehandle, refsByName: any, cirTreeOffset: number, cirTreeLength: number, isBigEndian: boolean, isCompressed: boolean, blockType: string);
|
|
34
35
|
readWigData(chrName: string, start: number, end: number, observer: Observer<Feature[]>, opts: Options): Promise<void>;
|
|
35
36
|
private parseSummaryBlock;
|
|
36
37
|
private parseBigBedBlock;
|