@jbrowse/plugin-bed 1.7.9 → 2.0.0

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.
Files changed (78) hide show
  1. package/dist/BedAdapter/BedAdapter.d.ts +29 -0
  2. package/dist/BedAdapter/BedAdapter.js +273 -0
  3. package/dist/BedAdapter/BedAdapter.js.map +1 -0
  4. package/dist/BedAdapter/configSchema.d.ts +2 -0
  5. package/dist/BedAdapter/configSchema.js +40 -0
  6. package/dist/BedAdapter/configSchema.js.map +1 -0
  7. package/dist/BedAdapter/index.d.ts +1 -0
  8. package/dist/BedAdapter/index.js +9 -0
  9. package/dist/BedAdapter/index.js.map +1 -0
  10. package/dist/BedTabixAdapter/BedTabixAdapter.d.ts +3 -7
  11. package/dist/BedTabixAdapter/BedTabixAdapter.js +154 -289
  12. package/dist/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  13. package/dist/BedTabixAdapter/configSchema.js +38 -51
  14. package/dist/BedTabixAdapter/configSchema.js.map +1 -0
  15. package/dist/BedTabixAdapter/index.js +8 -14
  16. package/dist/BedTabixAdapter/index.js.map +1 -0
  17. package/dist/BigBedAdapter/BigBedAdapter.js +228 -335
  18. package/dist/BigBedAdapter/BigBedAdapter.js.map +1 -0
  19. package/dist/BigBedAdapter/configSchema.js +9 -21
  20. package/dist/BigBedAdapter/configSchema.js.map +1 -0
  21. package/dist/BigBedAdapter/index.js +8 -14
  22. package/dist/BigBedAdapter/index.js.map +1 -0
  23. package/dist/index.js +132 -129
  24. package/dist/index.js.map +1 -0
  25. package/dist/util.d.ts +3 -1
  26. package/dist/util.js +161 -121
  27. package/dist/util.js.map +1 -0
  28. package/esm/BedAdapter/BedAdapter.d.ts +29 -0
  29. package/esm/BedAdapter/BedAdapter.js +130 -0
  30. package/esm/BedAdapter/BedAdapter.js.map +1 -0
  31. package/esm/BedAdapter/configSchema.d.ts +2 -0
  32. package/esm/BedAdapter/configSchema.js +38 -0
  33. package/esm/BedAdapter/configSchema.js.map +1 -0
  34. package/esm/BedAdapter/index.d.ts +1 -0
  35. package/esm/BedAdapter/index.js +2 -0
  36. package/esm/BedAdapter/index.js.map +1 -0
  37. package/esm/BedTabixAdapter/BedTabixAdapter.d.ts +19 -0
  38. package/esm/BedTabixAdapter/BedTabixAdapter.js +69 -0
  39. package/esm/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  40. package/esm/BedTabixAdapter/configSchema.d.ts +2 -0
  41. package/esm/BedTabixAdapter/configSchema.js +38 -0
  42. package/esm/BedTabixAdapter/configSchema.js.map +1 -0
  43. package/esm/BedTabixAdapter/index.d.ts +1 -0
  44. package/esm/BedTabixAdapter/index.js +2 -0
  45. package/esm/BedTabixAdapter/index.js.map +1 -0
  46. package/esm/BigBedAdapter/BigBedAdapter.d.ts +46 -0
  47. package/esm/BigBedAdapter/BigBedAdapter.js +104 -0
  48. package/esm/BigBedAdapter/BigBedAdapter.js.map +1 -0
  49. package/esm/BigBedAdapter/configSchema.d.ts +2 -0
  50. package/esm/BigBedAdapter/configSchema.js +8 -0
  51. package/esm/BigBedAdapter/configSchema.js.map +1 -0
  52. package/esm/BigBedAdapter/index.d.ts +1 -0
  53. package/esm/BigBedAdapter/index.js +2 -0
  54. package/esm/BigBedAdapter/index.js.map +1 -0
  55. package/esm/index.d.ts +6 -0
  56. package/esm/index.js +81 -0
  57. package/esm/index.js.map +1 -0
  58. package/esm/util.d.ts +4 -0
  59. package/esm/util.js +154 -0
  60. package/esm/util.js.map +1 -0
  61. package/package.json +17 -6
  62. package/src/BedAdapter/BedAdapter.test.ts +170 -0
  63. package/src/BedAdapter/BedAdapter.ts +172 -0
  64. package/src/BedAdapter/__snapshots__/BedAdapter.test.ts.snap +437 -0
  65. package/src/BedAdapter/configSchema.ts +45 -0
  66. package/src/BedAdapter/index.ts +1 -0
  67. package/src/BedAdapter/test_data/gwas.bed +20 -0
  68. package/src/BedAdapter/test_data/volvox-autosql.bed +1 -0
  69. package/src/BedAdapter/test_data/volvox-bed12.bed +4 -0
  70. package/src/BedAdapter/test_data/volvox.sort.bed +109 -0
  71. package/src/BedAdapter/test_data/volvox.sort.with.header.bed +121 -0
  72. package/src/BedTabixAdapter/BedTabixAdapter.ts +29 -80
  73. package/src/index.ts +34 -1
  74. package/src/util.ts +65 -6
  75. package/dist/BedTabixAdapter/BedTabixAdapter.test.js +0 -276
  76. package/dist/BigBedAdapter/BigBedAdapter.test.js +0 -63
  77. package/dist/declare.d.js +0 -1
  78. package/dist/index.test.js +0 -24
@@ -1,295 +1,160 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _bed = _interopRequireDefault(require("@gmod/bed"));
29
-
30
- var _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
31
-
32
- var _io = require("@jbrowse/core/util/io");
33
-
34
- var _rxjs = require("@jbrowse/core/util/rxjs");
35
-
36
- var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
37
-
38
- var _tabix = require("@gmod/tabix");
39
-
40
- var _configuration = require("@jbrowse/core/configuration");
41
-
42
- var _util = require("../util");
43
-
44
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
-
46
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
-
48
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
49
-
50
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
-
52
- var BedTabixAdapter = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
53
- (0, _inherits2.default)(BedTabixAdapter, _BaseFeatureDataAdapt);
54
-
55
- var _super = _createSuper(BedTabixAdapter);
56
-
57
- function BedTabixAdapter(config, getSubAdapter, pluginManager) {
58
- var _this;
59
-
60
- (0, _classCallCheck2.default)(this, BedTabixAdapter);
61
- _this = _super.call(this, config, getSubAdapter, pluginManager);
62
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parser", void 0);
63
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "bed", void 0);
64
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "columnNames", void 0);
65
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "scoreColumn", void 0);
66
- var bedGzLocation = (0, _configuration.readConfObject)(config, 'bedGzLocation');
67
- var index = (0, _configuration.readConfObject)(config, 'index');
68
- var autoSql = (0, _configuration.readConfObject)(config, 'autoSql');
69
- var location = index.location,
70
- indexType = index.indexType;
71
- _this.bed = new _tabix.TabixIndexedFile({
72
- filehandle: (0, _io.openLocation)(bedGzLocation, _this.pluginManager),
73
- csiFilehandle: indexType === 'CSI' ? (0, _io.openLocation)(location, _this.pluginManager) : undefined,
74
- tbiFilehandle: indexType !== 'CSI' ? (0, _io.openLocation)(location, _this.pluginManager) : undefined,
75
- chunkCacheSize: 50 * Math.pow(2, 20)
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());
76
24
  });
77
- _this.columnNames = (0, _configuration.readConfObject)(config, 'columnNames');
78
- _this.scoreColumn = (0, _configuration.readConfObject)(config, 'scoreColumn');
79
- _this.parser = new _bed.default({
80
- autoSql: autoSql
81
- });
82
- return _this;
83
- }
84
-
85
- (0, _createClass2.default)(BedTabixAdapter, [{
86
- key: "getRefNames",
87
- value: function () {
88
- var _getRefNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
89
- var opts,
90
- _args = arguments;
91
- return _regenerator.default.wrap(function _callee$(_context) {
92
- while (1) {
93
- switch (_context.prev = _context.next) {
94
- case 0:
95
- opts = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
96
- return _context.abrupt("return", this.bed.getReferenceSequenceNames(opts));
97
-
98
- case 2:
99
- case "end":
100
- return _context.stop();
101
- }
102
- }
103
- }, _callee, this);
104
- }));
105
-
106
- function getRefNames() {
107
- return _getRefNames.apply(this, arguments);
108
- }
109
-
110
- return getRefNames;
111
- }()
112
- }, {
113
- key: "getHeader",
114
- value: function () {
115
- var _getHeader = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
116
- return _regenerator.default.wrap(function _callee2$(_context2) {
117
- while (1) {
118
- switch (_context2.prev = _context2.next) {
119
- case 0:
120
- return _context2.abrupt("return", this.bed.getHeader());
121
-
122
- case 1:
123
- case "end":
124
- return _context2.stop();
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;
125
47
  }
126
- }
127
- }, _callee2, this);
128
- }));
129
-
130
- function getHeader() {
131
- return _getHeader.apply(this, arguments);
132
- }
133
-
134
- return getHeader;
135
- }()
136
- }, {
137
- key: "defaultParser",
138
- value: function defaultParser(fields, line) {
139
- return Object.fromEntries(line.split('\t').map(function (f, i) {
140
- return [fields[i], f];
141
- }));
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 };
142
51
  }
143
- }, {
144
- key: "getNames",
145
- value: function () {
146
- var _getNames = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
147
- var header, defs, defline;
148
- return _regenerator.default.wrap(function _callee3$(_context3) {
149
- while (1) {
150
- switch (_context3.prev = _context3.next) {
151
- case 0:
152
- if (!this.columnNames.length) {
153
- _context3.next = 2;
154
- break;
155
- }
156
-
157
- return _context3.abrupt("return", this.columnNames);
158
-
159
- case 2:
160
- _context3.next = 4;
161
- return this.bed.getHeader();
162
-
163
- case 4:
164
- header = _context3.sent;
165
- defs = header.split('\n').filter(function (f) {
166
- return !!f;
167
- });
168
- defline = defs[defs.length - 1];
169
- return _context3.abrupt("return", defline && defline.includes('\t') ? defline.slice(1).split('\t').map(function (field) {
170
- return field.trim();
171
- }) : null);
172
-
173
- case 8:
174
- case "end":
175
- return _context3.stop();
176
- }
177
- }
178
- }, _callee3, this);
179
- }));
180
-
181
- function getNames() {
182
- return _getNames.apply(this, arguments);
183
- }
184
-
185
- return getNames;
186
- }()
187
- }, {
188
- key: "getFeatures",
189
- value: function getFeatures(query) {
190
- var _this2 = this;
191
-
192
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
193
- return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
194
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(observer) {
195
- var meta, columnNumbers, colRef, colStart, colEnd, colSame, names;
196
- return _regenerator.default.wrap(function _callee4$(_context4) {
197
- while (1) {
198
- switch (_context4.prev = _context4.next) {
199
- case 0:
200
- _context4.next = 2;
201
- return _this2.bed.getMetadata();
202
-
203
- case 2:
204
- meta = _context4.sent;
205
- columnNumbers = meta.columnNumbers;
206
- colRef = columnNumbers.ref - 1;
207
- colStart = columnNumbers.start - 1;
208
- colEnd = columnNumbers.end - 1; // colSame handles special case for tabix where a single column is both
209
- // the start and end, this is assumed to be covering the base at this
210
- // position (e.g. tabix -s 1 -b 2 -e 2) begin and end are same
211
-
212
- colSame = colStart === colEnd ? 1 : 0;
213
- _context4.next = 10;
214
- return _this2.getNames();
215
-
216
- case 10:
217
- names = _context4.sent;
218
- _context4.next = 13;
219
- return _this2.bed.getLines(query.refName, query.start, query.end, {
220
- lineCallback: function lineCallback(line, fileOffset) {
221
- var l = line.split('\t');
222
- var refName = l[colRef];
223
- var start = +l[colStart];
224
- var end = +l[colEnd] + colSame;
225
- var uniqueId = "".concat(_this2.id, "-").concat(fileOffset);
226
- var data = names ? _this2.defaultParser(names, line) : _this2.parser.parseLine(line, {
227
- uniqueId: uniqueId
228
- });
229
- var blockCount = data.blockCount,
230
- blockSizes = data.blockSizes,
231
- blockStarts = data.blockStarts,
232
- chromStarts = data.chromStarts;
233
-
234
- if (blockCount) {
235
- var starts = chromStarts || blockStarts || [];
236
- var sizes = blockSizes;
237
- var blocksOffset = start;
238
- data.subfeatures = [];
239
-
240
- for (var b = 0; b < blockCount; b += 1) {
241
- var bmin = (starts[b] || 0) + blocksOffset;
242
- var bmax = bmin + (sizes[b] || 0);
243
- data.subfeatures.push({
244
- uniqueId: "".concat(uniqueId, "-").concat(b),
245
- start: bmin,
246
- end: bmax,
247
- type: 'block'
248
- });
249
- }
250
- }
251
-
252
- if (_this2.scoreColumn) {
253
- data.score = +data[_this2.scoreColumn];
254
- }
255
-
256
- delete data.chrom;
257
- delete data.chromStart;
258
- delete data.chromEnd;
259
- var f = new _simpleFeature.default(_objectSpread(_objectSpread({}, data), {}, {
260
- start: start,
261
- end: end,
262
- refName: refName,
263
- uniqueId: uniqueId
264
- }));
265
- var r = f.get('thickStart') ? (0, _util.ucscProcessedTranscript)(f) : f;
266
- observer.next(r);
267
- },
268
- signal: opts.signal
269
- });
270
-
271
- case 13:
272
- observer.complete();
273
-
274
- case 14:
275
- case "end":
276
- return _context4.stop();
277
- }
278
- }
279
- }, _callee4);
280
- }));
281
-
282
- return function (_x) {
283
- return _ref.apply(this, arguments);
284
- };
285
- }(), opts.signal);
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ /* eslint-disable @typescript-eslint/no-explicit-any */
58
+ var bed_1 = __importDefault(require("@gmod/bed"));
59
+ var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
60
+ var io_1 = require("@jbrowse/core/util/io");
61
+ var rxjs_1 = require("@jbrowse/core/util/rxjs");
62
+ var tabix_1 = require("@gmod/tabix");
63
+ var util_1 = require("../util");
64
+ var BedTabixAdapter = /** @class */ (function (_super) {
65
+ __extends(BedTabixAdapter, _super);
66
+ function BedTabixAdapter(config, getSubAdapter, pluginManager) {
67
+ var _this = _super.call(this, config, getSubAdapter, pluginManager) || this;
68
+ var bedGzLoc = _this.getConf('bedGzLocation');
69
+ var type = _this.getConf(['index', 'indexType']);
70
+ var loc = _this.getConf(['index', 'location']);
71
+ var autoSql = _this.getConf('autoSql');
72
+ var pm = _this.pluginManager;
73
+ _this.bed = new tabix_1.TabixIndexedFile({
74
+ filehandle: (0, io_1.openLocation)(bedGzLoc, pm),
75
+ csiFilehandle: type === 'CSI' ? (0, io_1.openLocation)(loc, pm) : undefined,
76
+ tbiFilehandle: type !== 'CSI' ? (0, io_1.openLocation)(loc, pm) : undefined,
77
+ chunkCacheSize: 50 * Math.pow(2, 20),
78
+ });
79
+ _this.columnNames = _this.getConf('columnNames');
80
+ _this.scoreColumn = _this.getConf('scoreColumn');
81
+ _this.parser = new bed_1.default({ autoSql: autoSql });
82
+ return _this;
286
83
  }
287
- }, {
288
- key: "freeResources",
289
- value: function freeResources() {}
290
- }]);
291
- return BedTabixAdapter;
292
- }(_BaseAdapter.BaseFeatureDataAdapter);
293
-
84
+ BedTabixAdapter.prototype.getRefNames = function (opts) {
85
+ if (opts === void 0) { opts = {}; }
86
+ return __awaiter(this, void 0, void 0, function () {
87
+ return __generator(this, function (_a) {
88
+ return [2 /*return*/, this.bed.getReferenceSequenceNames(opts)];
89
+ });
90
+ });
91
+ };
92
+ BedTabixAdapter.prototype.getHeader = function () {
93
+ return __awaiter(this, void 0, void 0, function () {
94
+ return __generator(this, function (_a) {
95
+ return [2 /*return*/, this.bed.getHeader()];
96
+ });
97
+ });
98
+ };
99
+ BedTabixAdapter.prototype.getNames = function () {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var header, defs, defline;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ if (this.columnNames.length) {
106
+ return [2 /*return*/, this.columnNames];
107
+ }
108
+ return [4 /*yield*/, this.bed.getHeader()];
109
+ case 1:
110
+ header = _a.sent();
111
+ defs = header.split('\n').filter(function (f) { return !!f; });
112
+ defline = defs[defs.length - 1];
113
+ return [2 /*return*/, (defline === null || defline === void 0 ? void 0 : defline.includes('\t'))
114
+ ? defline
115
+ .slice(1)
116
+ .split('\t')
117
+ .map(function (f) { return f.trim(); })
118
+ : undefined];
119
+ }
120
+ });
121
+ });
122
+ };
123
+ BedTabixAdapter.prototype.getFeatures = function (query, opts) {
124
+ var _this = this;
125
+ if (opts === void 0) { opts = {}; }
126
+ return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
127
+ var meta, columnNumbers, colRef, colStart, colEnd, names;
128
+ var _this = this;
129
+ return __generator(this, function (_a) {
130
+ switch (_a.label) {
131
+ case 0: return [4 /*yield*/, this.bed.getMetadata()];
132
+ case 1:
133
+ meta = _a.sent();
134
+ columnNumbers = meta.columnNumbers;
135
+ colRef = columnNumbers.ref - 1;
136
+ colStart = columnNumbers.start - 1;
137
+ colEnd = columnNumbers.end - 1;
138
+ return [4 /*yield*/, this.getNames()];
139
+ case 2:
140
+ names = _a.sent();
141
+ return [4 /*yield*/, this.bed.getLines(query.refName, query.start, query.end, {
142
+ lineCallback: function (line, fileOffset) {
143
+ observer.next((0, util_1.featureData)(line, colRef, colStart, colEnd, _this.scoreColumn, _this.parser, "".concat(_this.id, "-").concat(fileOffset), names));
144
+ },
145
+ signal: opts.signal,
146
+ })];
147
+ case 3:
148
+ _a.sent();
149
+ observer.complete();
150
+ return [2 /*return*/];
151
+ }
152
+ });
153
+ }); }, opts.signal);
154
+ };
155
+ BedTabixAdapter.prototype.freeResources = function () { };
156
+ BedTabixAdapter.capabilities = ['getFeatures', 'getRefNames'];
157
+ return BedTabixAdapter;
158
+ }(BaseAdapter_1.BaseFeatureDataAdapter));
294
159
  exports.default = BedTabixAdapter;
295
- (0, _defineProperty2.default)(BedTabixAdapter, "capabilities", ['getFeatures', 'getRefNames']);
160
+ //# sourceMappingURL=BedTabixAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BedTabixAdapter.js","sourceRoot":"","sources":["../../src/BedTabixAdapter/BedTabixAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,53 +1,40 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _configuration = require("@jbrowse/core/configuration");
9
-
10
- var _mobxStateTree = require("mobx-state-tree");
11
-
12
- var _default = (0, _configuration.ConfigurationSchema)('BedTabixAdapter', {
13
- bedGzLocation: {
14
- type: 'fileLocation',
15
- defaultValue: {
16
- uri: '/path/to/my.bed.gz',
17
- locationType: 'UriLocation'
18
- }
19
- },
20
- index: (0, _configuration.ConfigurationSchema)('TabixIndex', {
21
- indexType: {
22
- model: _mobxStateTree.types.enumeration('IndexType', ['TBI', 'CSI']),
23
- type: 'stringEnum',
24
- defaultValue: 'TBI'
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var configuration_1 = require("@jbrowse/core/configuration");
4
+ var mobx_state_tree_1 = require("mobx-state-tree");
5
+ exports.default = (0, configuration_1.ConfigurationSchema)('BedTabixAdapter', {
6
+ bedGzLocation: {
7
+ type: 'fileLocation',
8
+ defaultValue: { uri: '/path/to/my.bed.gz', locationType: 'UriLocation' },
25
9
  },
26
- location: {
27
- type: 'fileLocation',
28
- defaultValue: {
29
- uri: '/path/to/my.bed.gz.tbi',
30
- locationType: 'UriLocation'
31
- }
32
- }
33
- }),
34
- columnNames: {
35
- type: 'stringArray',
36
- description: 'List of column names',
37
- defaultValue: []
38
- },
39
- scoreColumn: {
40
- type: 'string',
41
- description: 'The column to use as a "score" attribute',
42
- defaultValue: ''
43
- },
44
- autoSql: {
45
- type: 'string',
46
- description: 'The autoSql definition for the data fields in the file',
47
- defaultValue: ''
48
- }
49
- }, {
50
- explicitlyTyped: true
51
- });
52
-
53
- exports.default = _default;
10
+ index: (0, configuration_1.ConfigurationSchema)('TabixIndex', {
11
+ indexType: {
12
+ model: mobx_state_tree_1.types.enumeration('IndexType', ['TBI', 'CSI']),
13
+ type: 'stringEnum',
14
+ defaultValue: 'TBI',
15
+ },
16
+ location: {
17
+ type: 'fileLocation',
18
+ defaultValue: {
19
+ uri: '/path/to/my.bed.gz.tbi',
20
+ locationType: 'UriLocation',
21
+ },
22
+ },
23
+ }),
24
+ columnNames: {
25
+ type: 'stringArray',
26
+ description: 'List of column names',
27
+ defaultValue: [],
28
+ },
29
+ scoreColumn: {
30
+ type: 'string',
31
+ description: 'The column to use as a "score" attribute',
32
+ defaultValue: '',
33
+ },
34
+ autoSql: {
35
+ type: 'string',
36
+ description: 'The autoSql definition for the data fields in the file',
37
+ defaultValue: '',
38
+ },
39
+ }, { explicitlyTyped: true });
40
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BedTabixAdapter/configSchema.ts"],"names":[],"mappings":";;AAAA,6DAAiE;AACjE,mDAAuC;AAEvC,kBAAe,IAAA,mCAAmB,EAChC,iBAAiB,EACjB;IACE,aAAa,EAAE;QACb,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE;KACzE;IAED,KAAK,EAAE,IAAA,mCAAmB,EAAC,YAAY,EAAE;QACvC,SAAS,EAAE;YACT,KAAK,EAAE,uBAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,KAAK;SACpB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,GAAG,EAAE,wBAAwB;gBAC7B,YAAY,EAAE,aAAa;aAC5B;SACF;KACF,CAAC;IAEF,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,EAAE;KACjB;IAED,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;QACvD,YAAY,EAAE,EAAE;KACjB;IAED,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wDAAwD;QACrE,YAAY,EAAE,EAAE;KACjB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -1,15 +1,9 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "configSchema", {
9
- enumerable: true,
10
- get: function get() {
11
- return _configSchema.default;
12
- }
13
- });
14
-
15
- var _configSchema = _interopRequireDefault(require("./configSchema"));
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configSchema = void 0;
7
+ var configSchema_1 = require("./configSchema");
8
+ Object.defineProperty(exports, "configSchema", { enumerable: true, get: function () { return __importDefault(configSchema_1).default; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BedTabixAdapter/index.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAwD;AAA/C,6HAAA,OAAO,OAAgB"}