@jbrowse/plugin-bed 1.7.11 → 2.1.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 (69) hide show
  1. package/dist/BedAdapter/BedAdapter.d.ts +1 -1
  2. package/dist/BedAdapter/BedAdapter.js +260 -485
  3. package/dist/BedAdapter/BedAdapter.js.map +1 -0
  4. package/dist/BedAdapter/configSchema.js +39 -51
  5. package/dist/BedAdapter/configSchema.js.map +1 -0
  6. package/dist/BedAdapter/index.js +8 -14
  7. package/dist/BedAdapter/index.js.map +1 -0
  8. package/dist/BedTabixAdapter/BedTabixAdapter.js +154 -234
  9. package/dist/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  10. package/dist/BedTabixAdapter/configSchema.js +38 -51
  11. package/dist/BedTabixAdapter/configSchema.js.map +1 -0
  12. package/dist/BedTabixAdapter/index.js +8 -14
  13. package/dist/BedTabixAdapter/index.js.map +1 -0
  14. package/dist/BigBedAdapter/BigBedAdapter.d.ts +4 -21
  15. package/dist/BigBedAdapter/BigBedAdapter.js +228 -335
  16. package/dist/BigBedAdapter/BigBedAdapter.js.map +1 -0
  17. package/dist/BigBedAdapter/configSchema.js +9 -21
  18. package/dist/BigBedAdapter/configSchema.js.map +1 -0
  19. package/dist/BigBedAdapter/index.js +8 -14
  20. package/dist/BigBedAdapter/index.js.map +1 -0
  21. package/dist/index.js +129 -157
  22. package/dist/index.js.map +1 -0
  23. package/dist/util.d.ts +1 -1
  24. package/dist/util.js +156 -175
  25. package/dist/util.js.map +1 -0
  26. package/esm/BedAdapter/BedAdapter.d.ts +29 -0
  27. package/esm/BedAdapter/BedAdapter.js +130 -0
  28. package/esm/BedAdapter/BedAdapter.js.map +1 -0
  29. package/esm/BedAdapter/configSchema.d.ts +2 -0
  30. package/esm/BedAdapter/configSchema.js +38 -0
  31. package/esm/BedAdapter/configSchema.js.map +1 -0
  32. package/esm/BedAdapter/index.d.ts +1 -0
  33. package/esm/BedAdapter/index.js +2 -0
  34. package/esm/BedAdapter/index.js.map +1 -0
  35. package/esm/BedTabixAdapter/BedTabixAdapter.d.ts +19 -0
  36. package/esm/BedTabixAdapter/BedTabixAdapter.js +68 -0
  37. package/esm/BedTabixAdapter/BedTabixAdapter.js.map +1 -0
  38. package/esm/BedTabixAdapter/configSchema.d.ts +2 -0
  39. package/esm/BedTabixAdapter/configSchema.js +38 -0
  40. package/esm/BedTabixAdapter/configSchema.js.map +1 -0
  41. package/esm/BedTabixAdapter/index.d.ts +1 -0
  42. package/esm/BedTabixAdapter/index.js +2 -0
  43. package/esm/BedTabixAdapter/index.js.map +1 -0
  44. package/esm/BigBedAdapter/BigBedAdapter.d.ts +29 -0
  45. package/esm/BigBedAdapter/BigBedAdapter.js +104 -0
  46. package/esm/BigBedAdapter/BigBedAdapter.js.map +1 -0
  47. package/esm/BigBedAdapter/configSchema.d.ts +2 -0
  48. package/esm/BigBedAdapter/configSchema.js +8 -0
  49. package/esm/BigBedAdapter/configSchema.js.map +1 -0
  50. package/esm/BigBedAdapter/index.d.ts +1 -0
  51. package/esm/BigBedAdapter/index.js +2 -0
  52. package/esm/BigBedAdapter/index.js.map +1 -0
  53. package/esm/index.d.ts +6 -0
  54. package/esm/index.js +81 -0
  55. package/esm/index.js.map +1 -0
  56. package/esm/util.d.ts +4 -0
  57. package/esm/util.js +154 -0
  58. package/esm/util.js.map +1 -0
  59. package/package.json +18 -9
  60. package/src/BedAdapter/BedAdapter.ts +1 -1
  61. package/src/BedTabixAdapter/BedTabixAdapter.ts +1 -2
  62. package/src/BigBedAdapter/BigBedAdapter.ts +2 -14
  63. package/src/util.ts +1 -1
  64. package/dist/BedAdapter/BedAdapter.test.js +0 -255
  65. package/dist/BedTabixAdapter/BedTabixAdapter.test.js +0 -276
  66. package/dist/BigBedAdapter/BigBedAdapter.test.js +0 -63
  67. package/dist/declare.d.js +0 -1
  68. package/dist/index.test.js +0 -24
  69. package/src/declare.d.ts +0 -1
package/dist/util.js CHANGED
@@ -1,183 +1,164 @@
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.featureData = featureData;
9
- exports.ucscProcessedTranscript = ucscProcessedTranscript;
10
-
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
-
13
- var _util = require("@jbrowse/core/util");
14
-
15
- 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; }
16
-
17
- 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; }
18
-
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.featureData = exports.ucscProcessedTranscript = void 0;
15
+ var util_1 = require("@jbrowse/core/util");
19
16
  function ucscProcessedTranscript(feature) {
20
- var children = feature.children(); // split the blocks into UTR, CDS, and exons
21
-
22
- var thickStart = feature.get('thickStart');
23
- var thickEnd = feature.get('thickEnd');
24
-
25
- if (!thickStart && !thickEnd) {
26
- return feature;
27
- }
28
-
29
- var blocks = children ? children.filter(function (child) {
30
- return child.get('type') === 'block';
31
- }).sort(function (a, b) {
32
- return a.get('start') - b.get('start');
33
- }) : []; // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
-
35
- var newChildren = [];
36
- blocks.forEach(function (block) {
37
- var start = block.get('start');
38
- var end = block.get('end');
39
-
40
- if (thickStart >= end) {
41
- // left-side UTR
42
- var prime = feature.get('strand') > 0 ? 'five' : 'three';
43
- newChildren.push({
44
- type: "".concat(prime, "_prime_UTR"),
45
- start: start,
46
- end: end
47
- });
48
- } else if (thickStart > start && thickStart < end && thickEnd >= end) {
49
- // UTR | CDS
50
- var _prime = feature.get('strand') > 0 ? 'five' : 'three';
51
-
52
- newChildren.push({
53
- type: "".concat(_prime, "_prime_UTR"),
54
- start: start,
55
- end: thickStart
56
- }, {
57
- type: 'CDS',
58
- start: thickStart,
59
- end: end
60
- });
61
- } else if (thickStart <= start && thickEnd >= end) {
62
- // CDS
63
- newChildren.push({
64
- type: 'CDS',
65
- start: start,
66
- end: end
67
- });
68
- } else if (thickStart > start && thickStart < end && thickEnd < end) {
69
- // UTR | CDS | UTR
70
- var leftPrime = feature.get('strand') > 0 ? 'five' : 'three';
71
- var rightPrime = feature.get('strand') > 0 ? 'three' : 'five';
72
- newChildren.push({
73
- type: "".concat(leftPrime, "_prime_UTR"),
74
- start: start,
75
- end: thickStart
76
- }, {
77
- type: "CDS",
78
- start: thickStart,
79
- end: thickEnd
80
- }, {
81
- type: "".concat(rightPrime, "_prime_UTR"),
82
- start: thickEnd,
83
- end: end
84
- });
85
- } else if (thickStart <= start && thickEnd > start && thickEnd < end) {
86
- // CDS | UTR
87
- var _prime2 = feature.get('strand') > 0 ? 'three' : 'five';
88
-
89
- newChildren.push({
90
- type: "CDS",
91
- start: start,
92
- end: thickEnd
93
- }, {
94
- type: "".concat(_prime2, "_prime_UTR"),
95
- start: thickEnd,
96
- end: end
97
- });
98
- } else if (thickEnd <= start) {
99
- // right-side UTR
100
- var _prime3 = feature.get('strand') > 0 ? 'three' : 'five';
101
-
102
- newChildren.push({
103
- type: "".concat(_prime3, "_prime_UTR"),
104
- start: start,
105
- end: end
106
- });
17
+ var children = feature.children();
18
+ // split the blocks into UTR, CDS, and exons
19
+ var thickStart = feature.get('thickStart');
20
+ var thickEnd = feature.get('thickEnd');
21
+ if (!thickStart && !thickEnd) {
22
+ return feature;
107
23
  }
108
- });
109
- var newData = Object.fromEntries(feature.tags().map(function (tag) {
110
- return [tag, feature.get(tag)];
111
- }));
112
- newData.subfeatures = newChildren;
113
- newData.type = 'mRNA';
114
- newData.uniqueId = feature.id();
115
- delete newData.chromStarts;
116
- delete newData.chromStart;
117
- delete newData.chromEnd;
118
- delete newData.chrom;
119
- delete newData.blockStarts;
120
- delete newData.blockSizes;
121
- delete newData.blockCount;
122
- delete newData.thickStart;
123
- delete newData.thickEnd;
124
- var newFeature = new _util.SimpleFeature({
125
- data: newData,
126
- id: feature.id()
127
- });
128
- return newFeature;
24
+ var blocks = children
25
+ ? children
26
+ .filter(function (child) { return child.get('type') === 'block'; })
27
+ .sort(function (a, b) { return a.get('start') - b.get('start'); })
28
+ : [];
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ var newChildren = [];
31
+ blocks.forEach(function (block) {
32
+ var start = block.get('start');
33
+ var end = block.get('end');
34
+ if (thickStart >= end) {
35
+ // left-side UTR
36
+ var prime = feature.get('strand') > 0 ? 'five' : 'three';
37
+ newChildren.push({
38
+ type: "".concat(prime, "_prime_UTR"),
39
+ start: start,
40
+ end: end,
41
+ });
42
+ }
43
+ else if (thickStart > start && thickStart < end && thickEnd >= end) {
44
+ // UTR | CDS
45
+ var prime = feature.get('strand') > 0 ? 'five' : 'three';
46
+ newChildren.push({
47
+ type: "".concat(prime, "_prime_UTR"),
48
+ start: start,
49
+ end: thickStart,
50
+ }, {
51
+ type: 'CDS',
52
+ start: thickStart,
53
+ end: end,
54
+ });
55
+ }
56
+ else if (thickStart <= start && thickEnd >= end) {
57
+ // CDS
58
+ newChildren.push({
59
+ type: 'CDS',
60
+ start: start,
61
+ end: end,
62
+ });
63
+ }
64
+ else if (thickStart > start && thickStart < end && thickEnd < end) {
65
+ // UTR | CDS | UTR
66
+ var leftPrime = feature.get('strand') > 0 ? 'five' : 'three';
67
+ var rightPrime = feature.get('strand') > 0 ? 'three' : 'five';
68
+ newChildren.push({
69
+ type: "".concat(leftPrime, "_prime_UTR"),
70
+ start: start,
71
+ end: thickStart,
72
+ }, {
73
+ type: "CDS",
74
+ start: thickStart,
75
+ end: thickEnd,
76
+ }, {
77
+ type: "".concat(rightPrime, "_prime_UTR"),
78
+ start: thickEnd,
79
+ end: end,
80
+ });
81
+ }
82
+ else if (thickStart <= start && thickEnd > start && thickEnd < end) {
83
+ // CDS | UTR
84
+ var prime = feature.get('strand') > 0 ? 'three' : 'five';
85
+ newChildren.push({
86
+ type: "CDS",
87
+ start: start,
88
+ end: thickEnd,
89
+ }, {
90
+ type: "".concat(prime, "_prime_UTR"),
91
+ start: thickEnd,
92
+ end: end,
93
+ });
94
+ }
95
+ else if (thickEnd <= start) {
96
+ // right-side UTR
97
+ var prime = feature.get('strand') > 0 ? 'three' : 'five';
98
+ newChildren.push({
99
+ type: "".concat(prime, "_prime_UTR"),
100
+ start: start,
101
+ end: end,
102
+ });
103
+ }
104
+ });
105
+ var newData = Object.fromEntries(feature.tags().map(function (tag) { return [tag, feature.get(tag)]; }));
106
+ newData.subfeatures = newChildren;
107
+ newData.type = 'mRNA';
108
+ newData.uniqueId = feature.id();
109
+ delete newData.chromStarts;
110
+ delete newData.chromStart;
111
+ delete newData.chromEnd;
112
+ delete newData.chrom;
113
+ delete newData.blockStarts;
114
+ delete newData.blockSizes;
115
+ delete newData.blockCount;
116
+ delete newData.thickStart;
117
+ delete newData.thickEnd;
118
+ var newFeature = new util_1.SimpleFeature({
119
+ data: newData,
120
+ id: feature.id(),
121
+ });
122
+ return newFeature;
129
123
  }
130
-
124
+ exports.ucscProcessedTranscript = ucscProcessedTranscript;
131
125
  function defaultParser(fields, line) {
132
- return Object.fromEntries(line.split('\t').map(function (f, i) {
133
- return [fields[i], f];
134
- }));
126
+ return Object.fromEntries(line.split('\t').map(function (f, i) { return [fields[i], f]; }));
135
127
  }
136
-
137
128
  function featureData(line, colRef, colStart, colEnd, scoreColumn, parser, uniqueId, names) {
138
- var l = line.split('\t');
139
- var refName = l[colRef];
140
- var start = +l[colStart];
141
- var colSame = colStart === colEnd ? 1 : 0;
142
- var end = +l[colEnd] + colSame;
143
- var data = names ? defaultParser(names, line) : parser.parseLine(line, {
144
- uniqueId: uniqueId
145
- });
146
- var blockCount = data.blockCount,
147
- blockSizes = data.blockSizes,
148
- blockStarts = data.blockStarts,
149
- chromStarts = data.chromStarts;
150
-
151
- if (blockCount) {
152
- var starts = chromStarts || blockStarts || [];
153
- var sizes = blockSizes;
154
- var blocksOffset = start;
155
- data.subfeatures = [];
156
-
157
- for (var b = 0; b < blockCount; b += 1) {
158
- var bmin = (starts[b] || 0) + blocksOffset;
159
- var bmax = bmin + (sizes[b] || 0);
160
- data.subfeatures.push({
161
- uniqueId: "".concat(uniqueId, "-").concat(b),
162
- start: bmin,
163
- end: bmax,
164
- type: 'block'
165
- });
129
+ var l = line.split('\t');
130
+ var refName = l[colRef];
131
+ var start = +l[colStart];
132
+ var colSame = colStart === colEnd ? 1 : 0;
133
+ var end = +l[colEnd] + colSame;
134
+ var data = names
135
+ ? defaultParser(names, line)
136
+ : parser.parseLine(line, { uniqueId: uniqueId });
137
+ var blockCount = data.blockCount, blockSizes = data.blockSizes, blockStarts = data.blockStarts, chromStarts = data.chromStarts;
138
+ if (blockCount) {
139
+ var starts = chromStarts || blockStarts || [];
140
+ var sizes = blockSizes;
141
+ var blocksOffset = start;
142
+ data.subfeatures = [];
143
+ for (var b = 0; b < blockCount; b += 1) {
144
+ var bmin = (starts[b] || 0) + blocksOffset;
145
+ var bmax = bmin + (sizes[b] || 0);
146
+ data.subfeatures.push({
147
+ uniqueId: "".concat(uniqueId, "-").concat(b),
148
+ start: bmin,
149
+ end: bmax,
150
+ type: 'block',
151
+ });
152
+ }
166
153
  }
167
- }
168
-
169
- if (scoreColumn) {
170
- data.score = +data[scoreColumn];
171
- }
172
-
173
- delete data.chrom;
174
- delete data.chromStart;
175
- delete data.chromEnd;
176
- var f = new _util.SimpleFeature(_objectSpread(_objectSpread({}, data), {}, {
177
- start: start,
178
- end: end,
179
- refName: refName,
180
- uniqueId: uniqueId
181
- }));
182
- return f.get('thickStart') ? ucscProcessedTranscript(f) : f;
183
- }
154
+ if (scoreColumn) {
155
+ data.score = +data[scoreColumn];
156
+ }
157
+ delete data.chrom;
158
+ delete data.chromStart;
159
+ delete data.chromEnd;
160
+ var f = new util_1.SimpleFeature(__assign(__assign({}, data), { start: start, end: end, refName: refName, uniqueId: uniqueId }));
161
+ return f.get('thickStart') ? ucscProcessedTranscript(f) : f;
162
+ }
163
+ exports.featureData = featureData;
164
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import BED from '@gmod/bed';
2
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { Region, Feature } from '@jbrowse/core/util';
4
+ import IntervalTree from '@flatten-js/interval-tree';
5
+ export default class BedAdapter extends BaseFeatureDataAdapter {
6
+ protected bedFeatures?: Promise<{
7
+ header: string;
8
+ features: Record<string, string[]>;
9
+ parser: BED;
10
+ columnNames: string[];
11
+ scoreColumn: string;
12
+ colRef: number;
13
+ colStart: number;
14
+ colEnd: number;
15
+ }>;
16
+ protected intervalTrees: {
17
+ [key: string]: Promise<IntervalTree | undefined> | undefined;
18
+ };
19
+ static capabilities: string[];
20
+ private loadDataP;
21
+ private loadData;
22
+ getRefNames(opts?: BaseOptions): Promise<string[]>;
23
+ getHeader(opts?: BaseOptions): Promise<string>;
24
+ getNames(): Promise<string[] | undefined>;
25
+ private loadFeatureIntervalTreeHelper;
26
+ private loadFeatureIntervalTree;
27
+ getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
28
+ freeResources(): void;
29
+ }
@@ -0,0 +1,130 @@
1
+ import BED from '@gmod/bed';
2
+ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { openLocation } from '@jbrowse/core/util/io';
4
+ import { ObservableCreate } from '@jbrowse/core/util/rxjs';
5
+ import { featureData } from '../util';
6
+ import IntervalTree from '@flatten-js/interval-tree';
7
+ import { unzip } from '@gmod/bgzf-filehandle';
8
+ function isGzip(buf) {
9
+ return buf[0] === 31 && buf[1] === 139 && buf[2] === 8;
10
+ }
11
+ export default class BedAdapter extends BaseFeatureDataAdapter {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.intervalTrees = {};
15
+ }
16
+ async loadDataP(opts = {}) {
17
+ const pm = this.pluginManager;
18
+ const bedLoc = this.getConf('bedLocation');
19
+ const buf = await openLocation(bedLoc, pm).readFile(opts);
20
+ const buffer = isGzip(buf) ? await unzip(buf) : buf;
21
+ // 512MB max chrome string length is 512MB
22
+ if (buffer.length > 536870888) {
23
+ throw new Error('Data exceeds maximum string length (512MB)');
24
+ }
25
+ const data = new TextDecoder('utf8', { fatal: true }).decode(buffer);
26
+ const lines = data.split('\n').filter(f => !!f);
27
+ const headerLines = [];
28
+ let i = 0;
29
+ for (; i < lines.length && lines[i].startsWith('#'); i++) {
30
+ headerLines.push(lines[i]);
31
+ }
32
+ const header = headerLines.join('\n');
33
+ const features = {};
34
+ for (; i < lines.length; i++) {
35
+ const line = lines[i];
36
+ const tab = line.indexOf('\t');
37
+ const refName = line.slice(0, tab);
38
+ if (!features[refName]) {
39
+ features[refName] = [];
40
+ }
41
+ features[refName].push(line);
42
+ }
43
+ const autoSql = this.getConf('autoSql');
44
+ const parser = new BED({ autoSql });
45
+ const columnNames = this.getConf('columnNames');
46
+ const scoreColumn = this.getConf('scoreColumn');
47
+ const colRef = this.getConf('colRef');
48
+ const colStart = this.getConf('colStart');
49
+ const colEnd = this.getConf('colEnd');
50
+ return {
51
+ header,
52
+ features,
53
+ parser,
54
+ columnNames,
55
+ scoreColumn,
56
+ colRef,
57
+ colStart,
58
+ colEnd,
59
+ };
60
+ }
61
+ async loadData(opts = {}) {
62
+ if (!this.bedFeatures) {
63
+ this.bedFeatures = this.loadDataP(opts).catch(e => {
64
+ this.bedFeatures = undefined;
65
+ throw e;
66
+ });
67
+ }
68
+ return this.bedFeatures;
69
+ }
70
+ async getRefNames(opts = {}) {
71
+ const { features } = await this.loadData(opts);
72
+ return Object.keys(features);
73
+ }
74
+ async getHeader(opts = {}) {
75
+ const { header } = await this.loadData(opts);
76
+ return header;
77
+ }
78
+ async getNames() {
79
+ const { header, columnNames } = await this.loadData();
80
+ if (columnNames.length) {
81
+ return columnNames;
82
+ }
83
+ const defs = header.split('\n').filter(f => !!f);
84
+ const defline = defs[defs.length - 1];
85
+ return (defline === null || defline === void 0 ? void 0 : defline.includes('\t'))
86
+ ? defline
87
+ .slice(1)
88
+ .split('\t')
89
+ .map(field => field.trim())
90
+ : undefined;
91
+ }
92
+ async loadFeatureIntervalTreeHelper(refName) {
93
+ const { colRef, colStart, colEnd, features, parser, scoreColumn } = await this.loadData();
94
+ const lines = features[refName];
95
+ if (!lines) {
96
+ return undefined;
97
+ }
98
+ const names = await this.getNames();
99
+ const intervalTree = new IntervalTree();
100
+ const ret = lines.map((f, i) => {
101
+ const uniqueId = `${this.id}-${refName}-${i}`;
102
+ return featureData(f, colRef, colStart, colEnd, scoreColumn, parser, uniqueId, names);
103
+ });
104
+ for (let i = 0; i < ret.length; i++) {
105
+ const obj = ret[i];
106
+ intervalTree.insert([obj.get('start'), obj.get('end')], obj);
107
+ }
108
+ return intervalTree;
109
+ }
110
+ async loadFeatureIntervalTree(refName) {
111
+ if (!this.intervalTrees[refName]) {
112
+ this.intervalTrees[refName] = this.loadFeatureIntervalTreeHelper(refName).catch(e => {
113
+ this.intervalTrees[refName] = undefined;
114
+ throw e;
115
+ });
116
+ }
117
+ return this.intervalTrees[refName];
118
+ }
119
+ getFeatures(query, opts = {}) {
120
+ return ObservableCreate(async (observer) => {
121
+ const { start, end, refName } = query;
122
+ const intervalTree = await this.loadFeatureIntervalTree(refName);
123
+ intervalTree === null || intervalTree === void 0 ? void 0 : intervalTree.search([start, end]).forEach(f => observer.next(f));
124
+ observer.complete();
125
+ }, opts.signal);
126
+ }
127
+ freeResources() { }
128
+ }
129
+ BedAdapter.capabilities = ['getFeatures', 'getRefNames'];
130
+ //# sourceMappingURL=BedAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BedAdapter.js","sourceRoot":"","sources":["../../src/BedAdapter/BedAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default _default;
@@ -0,0 +1,38 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export default ConfigurationSchema('BedAdapter', {
3
+ bedLocation: {
4
+ type: 'fileLocation',
5
+ defaultValue: { uri: '/path/to/my.bed.gz', locationType: 'UriLocation' },
6
+ },
7
+ columnNames: {
8
+ type: 'stringArray',
9
+ description: 'List of column names',
10
+ defaultValue: [],
11
+ },
12
+ scoreColumn: {
13
+ type: 'string',
14
+ description: 'The column to use as a "score" attribute',
15
+ defaultValue: '',
16
+ },
17
+ autoSql: {
18
+ type: 'string',
19
+ description: 'The autoSql definition for the data fields in the file',
20
+ defaultValue: '',
21
+ },
22
+ colRef: {
23
+ type: 'number',
24
+ description: 'The column to use as a "refName" attribute',
25
+ defaultValue: 0,
26
+ },
27
+ colStart: {
28
+ type: 'number',
29
+ description: 'The column to use as a "start" attribute',
30
+ defaultValue: 1,
31
+ },
32
+ colEnd: {
33
+ type: 'number',
34
+ description: 'The column to use as a "end" attribute',
35
+ defaultValue: 2,
36
+ },
37
+ }, { explicitlyTyped: true });
38
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BedAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,YAAY,EACZ;IACE,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE;KACzE;IAED,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;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE,CAAC;KAChB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;QACvD,YAAY,EAAE,CAAC;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wCAAwC;QACrD,YAAY,EAAE,CAAC;KAChB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -0,0 +1 @@
1
+ export { default as configSchema } from './configSchema';
@@ -0,0 +1,2 @@
1
+ export { default as configSchema } from './configSchema';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BedAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { Region, Feature } from '@jbrowse/core/util';
3
+ import { TabixIndexedFile } from '@gmod/tabix';
4
+ import PluginManager from '@jbrowse/core/PluginManager';
5
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
6
+ import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
7
+ export default class BedTabixAdapter extends BaseFeatureDataAdapter {
8
+ private parser;
9
+ protected bed: TabixIndexedFile;
10
+ protected columnNames: string[];
11
+ protected scoreColumn: string;
12
+ static capabilities: string[];
13
+ constructor(config: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
14
+ getRefNames(opts?: BaseOptions): Promise<any>;
15
+ getHeader(): Promise<string>;
16
+ getNames(): Promise<string[] | undefined>;
17
+ getFeatures(query: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
18
+ freeResources(): void;
19
+ }