@jbrowse/plugin-sequence 1.6.7 → 1.7.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 (40) hide show
  1. package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js +70 -0
  2. package/dist/BgzipFastaAdapter/BgzipFastaAdapter.test.js +64 -0
  3. package/dist/BgzipFastaAdapter/configSchema.js +36 -0
  4. package/dist/BgzipFastaAdapter/index.js +15 -0
  5. package/dist/ChromSizesAdapter/ChromSizesAdapter.js +170 -0
  6. package/dist/ChromSizesAdapter/ChromSizesAdapter.test.js +46 -0
  7. package/dist/ChromSizesAdapter/configSchema.js +22 -0
  8. package/dist/ChromSizesAdapter/index.js +15 -0
  9. package/dist/DivSequenceRenderer/components/DivSequenceRendering.js +239 -0
  10. package/dist/DivSequenceRenderer/components/DivSequenceRendering.test.js +245 -0
  11. package/dist/DivSequenceRenderer/configSchema.js +20 -0
  12. package/dist/DivSequenceRenderer/index.js +23 -0
  13. package/dist/GCContentAdapter/GCContentAdapter.js +261 -0
  14. package/dist/GCContentAdapter/configSchema.js +18 -0
  15. package/dist/GCContentAdapter/index.js +31 -0
  16. package/dist/IndexedFastaAdapter/IndexedFastaAdapter.d.ts +0 -5
  17. package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js +228 -0
  18. package/dist/IndexedFastaAdapter/IndexedFastaAdapter.test.js +71 -0
  19. package/dist/IndexedFastaAdapter/configSchema.js +29 -0
  20. package/dist/IndexedFastaAdapter/index.js +15 -0
  21. package/dist/LinearReferenceSequenceDisplay/configSchema.js +18 -0
  22. package/dist/LinearReferenceSequenceDisplay/index.js +21 -0
  23. package/dist/LinearReferenceSequenceDisplay/model.d.ts +8 -8
  24. package/dist/LinearReferenceSequenceDisplay/model.js +102 -0
  25. package/dist/TwoBitAdapter/TwoBitAdapter.js +289 -0
  26. package/dist/TwoBitAdapter/TwoBitAdapter.test.js +94 -0
  27. package/dist/TwoBitAdapter/configSchema.js +30 -0
  28. package/dist/TwoBitAdapter/index.js +15 -0
  29. package/dist/declare.d.js +1 -0
  30. package/dist/index.js +325 -6
  31. package/dist/index.test.js +29 -0
  32. package/dist/plugin-sequence.cjs.development.js +0 -6
  33. package/dist/plugin-sequence.cjs.development.js.map +1 -1
  34. package/dist/plugin-sequence.cjs.production.min.js.map +1 -1
  35. package/dist/plugin-sequence.esm.js +0 -6
  36. package/dist/plugin-sequence.esm.js.map +1 -1
  37. package/dist/referenceSeqTrackConfig.js +88 -0
  38. package/package.json +3 -6
  39. package/src/IndexedFastaAdapter/IndexedFastaAdapter.ts +0 -5
  40. package/src/index.ts +7 -8
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
9
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
10
+
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+
15
+ var _react = _interopRequireDefault(require("react"));
16
+
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+
19
+ var _react2 = require("@testing-library/react");
20
+
21
+ var _ui = require("@jbrowse/core/ui");
22
+
23
+ var _PrecomputedLayout = _interopRequireDefault(require("@jbrowse/core/util/layouts/PrecomputedLayout"));
24
+
25
+ var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
26
+
27
+ var _core = require("@material-ui/core");
28
+
29
+ var _DivSequenceRendering = _interopRequireDefault(require("./DivSequenceRendering"));
30
+
31
+ var _configSchema = _interopRequireDefault(require("../configSchema"));
32
+
33
+ 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); }; }
34
+
35
+ 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; } }
36
+
37
+ function Rendering(props) {
38
+ return /*#__PURE__*/_react["default"].createElement(_core.ThemeProvider, {
39
+ theme: (0, _ui.createJBrowseTheme)()
40
+ }, /*#__PURE__*/_react["default"].createElement(_DivSequenceRendering["default"], props));
41
+ }
42
+
43
+ var ErrorCatcher = /*#__PURE__*/function (_React$Component) {
44
+ (0, _inherits2["default"])(ErrorCatcher, _React$Component);
45
+
46
+ var _super = _createSuper(ErrorCatcher);
47
+
48
+ function ErrorCatcher(props) {
49
+ var _this;
50
+
51
+ (0, _classCallCheck2["default"])(this, ErrorCatcher);
52
+ _this = _super.call(this, props);
53
+ _this.state = {
54
+ hasError: false,
55
+ errorText: ''
56
+ };
57
+ return _this;
58
+ }
59
+
60
+ (0, _createClass2["default"])(ErrorCatcher, [{
61
+ key: "render",
62
+ value: function render() {
63
+ var _this$state = this.state,
64
+ hasError = _this$state.hasError,
65
+ errorText = _this$state.errorText;
66
+
67
+ if (hasError) {
68
+ // You can render any custom fallback UI
69
+ return /*#__PURE__*/_react["default"].createElement("h1", {
70
+ className: "error"
71
+ }, errorText);
72
+ }
73
+
74
+ var children = this.props.children;
75
+ return children;
76
+ }
77
+ }], [{
78
+ key: "getDerivedStateFromError",
79
+ value: function getDerivedStateFromError(error) {
80
+ // Update state so the next render will show the fallback UI.
81
+ return {
82
+ hasError: true,
83
+ errorText: String(error)
84
+ };
85
+ }
86
+ }]);
87
+ return ErrorCatcher;
88
+ }(_react["default"].Component);
89
+
90
+ ErrorCatcher.propTypes = {
91
+ children: _propTypes["default"].node.isRequired
92
+ };
93
+ describe('<DivSequenceRendering />', function () {
94
+ // This just keeps our testing logs clean by not displaying `console.error`s
95
+ // from errors we intentionally throw in our tests. Hopefully React will
96
+ // someday provide a way for error boundaries to prevent error logging so we
97
+ // won't have to do this: https://github.com/facebook/react/issues/15069
98
+ var originalError = console.error;
99
+ beforeAll(function () {
100
+ console.error = function () {
101
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
102
+ args[_key] = arguments[_key];
103
+ }
104
+
105
+ if (args[0].includes('feature one did not contain a valid `seq` attribute') || args[0].includes('The above error occurred in the <SequenceDivs> component')) {
106
+ return;
107
+ }
108
+
109
+ originalError.call.apply(originalError, [console].concat(args));
110
+ };
111
+ });
112
+ afterAll(function () {
113
+ console.error = originalError;
114
+ });
115
+ it('renders with no features', function () {
116
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(Rendering, {
117
+ width: 500,
118
+ height: 500,
119
+ regions: [{
120
+ refName: 'zonk',
121
+ start: 0,
122
+ end: 300
123
+ }],
124
+ layout: new _PrecomputedLayout["default"]({
125
+ rectangles: {},
126
+ totalHeight: 20
127
+ }),
128
+ config: _configSchema["default"].create(),
129
+ bpPerPx: 3
130
+ })),
131
+ container = _render.container;
132
+
133
+ expect(container).toMatchSnapshot();
134
+ });
135
+ it('renders with one, zoomed way out', function () {
136
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(Rendering, {
137
+ width: 500,
138
+ height: 500,
139
+ regions: [{
140
+ refName: 'zonk',
141
+ start: 0,
142
+ end: 1000
143
+ }],
144
+ features: new Map([['one', new _simpleFeature["default"]({
145
+ uniqueId: 'one',
146
+ start: 1,
147
+ end: 3,
148
+ seq: 'AB'
149
+ })]]),
150
+ config: _configSchema["default"].create({}),
151
+ bpPerPx: 3
152
+ })),
153
+ container = _render2.container;
154
+
155
+ expect(container).toMatchSnapshot();
156
+ });
157
+ it('renders with one feature with no seq, zoomed in, should throw', function () {
158
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(ErrorCatcher, null, /*#__PURE__*/_react["default"].createElement(Rendering, {
159
+ width: 500,
160
+ height: 500,
161
+ regions: [{
162
+ refName: 'zonk',
163
+ start: 0,
164
+ end: 1000
165
+ }],
166
+ features: new Map([['one', new _simpleFeature["default"]({
167
+ uniqueId: 'one',
168
+ start: 1,
169
+ end: 3
170
+ })]]),
171
+ config: _configSchema["default"].create({}),
172
+ bpPerPx: 0.05
173
+ }))),
174
+ container = _render3.container;
175
+
176
+ expect(container).toMatchSnapshot();
177
+ });
178
+ it('renders with one feature with an incorrect seq, zoomed in, should throw', function () {
179
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(ErrorCatcher, null, /*#__PURE__*/_react["default"].createElement(Rendering, {
180
+ width: 500,
181
+ height: 500,
182
+ regions: [{
183
+ refName: 'zonk',
184
+ start: 0,
185
+ end: 1000
186
+ }],
187
+ features: new Map([['one', new _simpleFeature["default"]({
188
+ uniqueId: 'one',
189
+ start: 1,
190
+ end: 3,
191
+ seq: 'ABC'
192
+ })]]),
193
+ config: _configSchema["default"].create({}),
194
+ bpPerPx: 0.05
195
+ }))),
196
+ container = _render4.container;
197
+
198
+ expect(container).toMatchSnapshot();
199
+ });
200
+ it('renders with one feature with a correct seq, zoomed in, should render nicely', function () {
201
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(Rendering, {
202
+ width: 500,
203
+ height: 500,
204
+ regions: [{
205
+ refName: 'zonk',
206
+ start: 0,
207
+ end: 1000
208
+ }],
209
+ features: new Map([['one', new _simpleFeature["default"]({
210
+ uniqueId: 'one',
211
+ start: 1,
212
+ end: 10,
213
+ seq: 'ABCDEFGHI'
214
+ })]]),
215
+ config: _configSchema["default"].create({}),
216
+ bpPerPx: 0.05
217
+ })),
218
+ container = _render5.container;
219
+
220
+ expect(container).toMatchSnapshot();
221
+ });
222
+ it('renders with one feature reversed with a correct seq, zoomed in, should render nicely', function () {
223
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(Rendering, {
224
+ width: 500,
225
+ height: 500,
226
+ regions: [{
227
+ refName: 'zonk',
228
+ start: 0,
229
+ end: 1000,
230
+ reversed: true
231
+ }],
232
+ features: new Map([['one', new _simpleFeature["default"]({
233
+ uniqueId: 'one',
234
+ start: 1,
235
+ end: 10,
236
+ seq: 'ABCDEFGHI'
237
+ })]]),
238
+ config: _configSchema["default"].create({}),
239
+ bpPerPx: 0.05
240
+ })),
241
+ container = _render6.container;
242
+
243
+ expect(container).toMatchSnapshot();
244
+ });
245
+ });
@@ -0,0 +1,20 @@
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 _default = (0, _configuration.ConfigurationSchema)('DivSequenceRenderer', {
11
+ height: {
12
+ type: 'number',
13
+ description: 'height in pixels of each line of sequence',
14
+ defaultValue: 16
15
+ }
16
+ }, {
17
+ explicitlyTyped: true
18
+ });
19
+
20
+ exports["default"] = _default;
@@ -0,0 +1,23 @@
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, "ReactComponent", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _DivSequenceRendering["default"];
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "configSchema", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _configSchema["default"];
18
+ }
19
+ });
20
+
21
+ var _DivSequenceRendering = _interopRequireDefault(require("./components/DivSequenceRendering"));
22
+
23
+ var _configSchema = _interopRequireDefault(require("./configSchema"));
@@ -0,0 +1,261 @@
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 _BaseAdapter = require("@jbrowse/core/data_adapters/BaseAdapter");
29
+
30
+ var _rxjs = require("@jbrowse/core/util/rxjs");
31
+
32
+ var _simpleFeature = _interopRequireDefault(require("@jbrowse/core/util/simpleFeature"));
33
+
34
+ var _configuration = require("@jbrowse/core/configuration");
35
+
36
+ var _operators = require("rxjs/operators");
37
+
38
+ 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; }
39
+
40
+ 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; }
41
+
42
+ 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); }; }
43
+
44
+ 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; } }
45
+
46
+ var _default = /*#__PURE__*/function (_BaseFeatureDataAdapt) {
47
+ (0, _inherits2["default"])(_default, _BaseFeatureDataAdapt);
48
+
49
+ var _super = _createSuper(_default);
50
+
51
+ function _default() {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2["default"])(this, _default);
55
+
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+
60
+ _this = _super.call.apply(_super, [this].concat(args));
61
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "windowSize", 1000);
62
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "windowDelta", 1000);
63
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "gcMode", 'content');
64
+ return _this;
65
+ }
66
+
67
+ (0, _createClass2["default"])(_default, [{
68
+ key: "configure",
69
+ value: function () {
70
+ var _configure = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
71
+ var _this$getSubAdapter;
72
+
73
+ var sequenceAdapter, dataAdapter;
74
+ return _regenerator["default"].wrap(function _callee$(_context) {
75
+ while (1) {
76
+ switch (_context.prev = _context.next) {
77
+ case 0:
78
+ // instantiate the sequence adapter
79
+ sequenceAdapter = (0, _configuration.readConfObject)(this.config, 'sequenceAdapter');
80
+ _context.next = 3;
81
+ return (_this$getSubAdapter = this.getSubAdapter) === null || _this$getSubAdapter === void 0 ? void 0 : _this$getSubAdapter.call(this, sequenceAdapter);
82
+
83
+ case 3:
84
+ dataAdapter = _context.sent;
85
+
86
+ if (dataAdapter) {
87
+ _context.next = 6;
88
+ break;
89
+ }
90
+
91
+ throw new Error('Error getting subadapter');
92
+
93
+ case 6:
94
+ return _context.abrupt("return", dataAdapter.dataAdapter);
95
+
96
+ case 7:
97
+ case "end":
98
+ return _context.stop();
99
+ }
100
+ }
101
+ }, _callee, this);
102
+ }));
103
+
104
+ function configure() {
105
+ return _configure.apply(this, arguments);
106
+ }
107
+
108
+ return configure;
109
+ }()
110
+ }, {
111
+ key: "getRefNames",
112
+ value: function () {
113
+ var _getRefNames = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
114
+ var sequenceAdapter;
115
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
116
+ while (1) {
117
+ switch (_context2.prev = _context2.next) {
118
+ case 0:
119
+ _context2.next = 2;
120
+ return this.configure();
121
+
122
+ case 2:
123
+ sequenceAdapter = _context2.sent;
124
+ return _context2.abrupt("return", sequenceAdapter.getRefNames());
125
+
126
+ case 4:
127
+ case "end":
128
+ return _context2.stop();
129
+ }
130
+ }
131
+ }, _callee2, this);
132
+ }));
133
+
134
+ function getRefNames() {
135
+ return _getRefNames.apply(this, arguments);
136
+ }
137
+
138
+ return getRefNames;
139
+ }()
140
+ /**
141
+ * Fetch features for a certain region
142
+ * @param param -
143
+ * @returns Observable of Feature objects in the region
144
+ */
145
+
146
+ }, {
147
+ key: "getFeatures",
148
+ value: function getFeatures(query, opts) {
149
+ var _this2 = this;
150
+
151
+ this.windowSize = 1000;
152
+ this.windowDelta = 1000;
153
+ this.gcMode = 'content';
154
+ return (0, _rxjs.ObservableCreate)( /*#__PURE__*/function () {
155
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(observer) {
156
+ var _feats$;
157
+
158
+ var sequenceAdapter, hw, f, queryStart, queryEnd, ret, feats, residues, i, r, nc, ng, len, j, pos, score;
159
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
160
+ while (1) {
161
+ switch (_context3.prev = _context3.next) {
162
+ case 0:
163
+ _context3.next = 2;
164
+ return _this2.configure();
165
+
166
+ case 2:
167
+ sequenceAdapter = _context3.sent;
168
+ hw = _this2.windowSize === 1 ? 1 : _this2.windowSize / 2; // Half the window size
169
+
170
+ f = _this2.windowSize === 1;
171
+ queryStart = query.start, queryEnd = query.end;
172
+ queryStart = Math.max(0, queryStart - hw);
173
+ queryEnd += hw;
174
+
175
+ if (!(queryEnd < 0 || queryStart > queryEnd)) {
176
+ _context3.next = 11;
177
+ break;
178
+ }
179
+
180
+ observer.complete();
181
+ return _context3.abrupt("return");
182
+
183
+ case 11:
184
+ ret = sequenceAdapter.getFeatures(_objectSpread(_objectSpread({}, query), {}, {
185
+ start: queryStart,
186
+ end: queryEnd
187
+ }));
188
+ _context3.next = 14;
189
+ return ret.pipe((0, _operators.toArray)()).toPromise();
190
+
191
+ case 14:
192
+ feats = _context3.sent;
193
+ residues = ((_feats$ = feats[0]) === null || _feats$ === void 0 ? void 0 : _feats$.get('seq')) || '';
194
+
195
+ for (i = hw; i < residues.length - hw; i += _this2.windowDelta) {
196
+ r = f ? residues[i] : residues.slice(i - hw, i + hw);
197
+ nc = 0;
198
+ ng = 0;
199
+ len = 0;
200
+
201
+ for (j = 0; j < r.length; j++) {
202
+ if (r[j] === 'c' || r[j] === 'C') {
203
+ nc++;
204
+ } else if (r[j] === 'g' || r[j] === 'G') {
205
+ ng++;
206
+ }
207
+
208
+ if (r[j] !== 'N') {
209
+ len++;
210
+ }
211
+ }
212
+
213
+ pos = queryStart;
214
+ score = void 0;
215
+
216
+ if (_this2.gcMode === 'content') {
217
+ score = (ng + nc) / (len || 1);
218
+ } else if (_this2.gcMode === 'skew') {
219
+ score = (ng - nc) / (ng + nc || 1);
220
+ }
221
+
222
+ observer.next(new _simpleFeature["default"]({
223
+ uniqueId: "".concat(_this2.id, "_").concat(pos + i),
224
+ start: pos + i,
225
+ end: pos + i + _this2.windowDelta,
226
+ score: score
227
+ }));
228
+ }
229
+
230
+ observer.complete();
231
+
232
+ case 18:
233
+ case "end":
234
+ return _context3.stop();
235
+ }
236
+ }
237
+ }, _callee3);
238
+ }));
239
+
240
+ return function (_x) {
241
+ return _ref.apply(this, arguments);
242
+ };
243
+ }());
244
+ }
245
+ /**
246
+ * called to provide a hint that data tied to a certain region
247
+ * will not be needed for the forseeable future and can be purged
248
+ * from caches, etc
249
+ */
250
+
251
+ }, {
252
+ key: "freeResources",
253
+ value: function
254
+ /* { region } */
255
+ freeResources() {}
256
+ }]);
257
+ return _default;
258
+ }(_BaseAdapter.BaseFeatureDataAdapter);
259
+
260
+ exports["default"] = _default;
261
+ (0, _defineProperty2["default"])(_default, "capabilities", ['hasLocalStats']);
@@ -0,0 +1,18 @@
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 _default = function _default(pluginManager) {
11
+ return (0, _configuration.ConfigurationSchema)('GCContentAdapter', {
12
+ sequenceAdapter: pluginManager.pluggableConfigSchemaType('adapter')
13
+ }, {
14
+ explicitlyTyped: true
15
+ });
16
+ };
17
+
18
+ exports["default"] = _default;
@@ -0,0 +1,31 @@
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
12
+ var _configSchema = _interopRequireDefault(require("./configSchema"));
13
+
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2["default"])(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+
18
+ var _default = function _default(pluginManager) {
19
+ return {
20
+ configSchema: pluginManager.load(_configSchema["default"]),
21
+ getAdapterClass: function getAdapterClass() {
22
+ return Promise.resolve().then(function () {
23
+ return _interopRequireWildcard(require('./GCContentAdapter'));
24
+ }).then(function (r) {
25
+ return r["default"];
26
+ });
27
+ }
28
+ };
29
+ };
30
+
31
+ exports["default"] = _default;
@@ -15,11 +15,6 @@ export default class extends BaseSequenceAdapter {
15
15
  start: number;
16
16
  end: number;
17
17
  }[]>;
18
- /**
19
- * Fetch features for a certain region
20
- * @param param -
21
- * @returns Observable of Feature objects in the region
22
- */
23
18
  getFeatures(region: NoAssemblyRegion, opts?: BaseOptions): import("rxjs").Observable<Feature>;
24
19
  /**
25
20
  * called to provide a hint that data tied to a certain region