@jbrowse/plugin-alignments 1.6.9 → 1.7.3
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/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -6
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +216 -0
- package/dist/AlignmentsFeatureDetail/index.d.ts +13 -13
- package/dist/AlignmentsFeatureDetail/index.js +63 -0
- package/dist/AlignmentsFeatureDetail/index.test.js +60 -0
- package/dist/AlignmentsTrack/index.d.ts +2 -2
- package/dist/AlignmentsTrack/index.js +37 -0
- package/dist/BamAdapter/BamAdapter.d.ts +40 -30
- package/dist/BamAdapter/BamAdapter.js +598 -0
- package/dist/BamAdapter/BamAdapter.test.js +177 -0
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -33
- package/dist/BamAdapter/BamSlightlyLazyFeature.js +176 -0
- package/dist/BamAdapter/MismatchParser.d.ts +28 -28
- package/dist/BamAdapter/MismatchParser.js +384 -0
- package/dist/BamAdapter/MismatchParser.test.js +259 -0
- package/dist/BamAdapter/configSchema.d.ts +2 -2
- package/dist/BamAdapter/configSchema.js +48 -0
- package/dist/BamAdapter/index.d.ts +3 -3
- package/dist/BamAdapter/index.js +36 -0
- package/dist/CramAdapter/CramAdapter.d.ts +52 -43
- package/dist/CramAdapter/CramAdapter.js +660 -0
- package/dist/CramAdapter/CramAdapter.test.js +138 -0
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -49
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +447 -0
- package/dist/CramAdapter/CramTestAdapters.d.ts +29 -29
- package/dist/CramAdapter/CramTestAdapters.js +234 -0
- package/dist/CramAdapter/configSchema.d.ts +3 -3
- package/dist/CramAdapter/configSchema.js +40 -0
- package/dist/CramAdapter/index.d.ts +3 -3
- package/dist/CramAdapter/index.js +36 -0
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -9
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +97 -0
- package/dist/HtsgetBamAdapter/configSchema.d.ts +2 -2
- package/dist/HtsgetBamAdapter/configSchema.js +31 -0
- package/dist/HtsgetBamAdapter/index.d.ts +3 -3
- package/dist/HtsgetBamAdapter/index.js +42 -0
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -7
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +69 -0
- package/dist/LinearAlignmentsDisplay/index.d.ts +2 -2
- package/dist/LinearAlignmentsDisplay/index.js +31 -0
- package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -4
- package/dist/LinearAlignmentsDisplay/models/configSchema.js +25 -0
- package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +83 -0
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +105 -105
- package/dist/LinearAlignmentsDisplay/models/model.js +250 -0
- package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -14
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +123 -0
- package/dist/LinearPileupDisplay/components/ColorByTag.d.ts +9 -9
- package/dist/LinearPileupDisplay/components/ColorByTag.js +98 -0
- package/dist/LinearPileupDisplay/components/FilterByTag.d.ts +18 -18
- package/dist/LinearPileupDisplay/components/FilterByTag.js +203 -0
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -13
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +32 -0
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -16
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +99 -0
- package/dist/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -10
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +90 -0
- package/dist/LinearPileupDisplay/components/SortByTag.d.ts +9 -9
- package/dist/LinearPileupDisplay/components/SortByTag.js +95 -0
- package/dist/LinearPileupDisplay/configSchema.d.ts +6 -6
- package/dist/LinearPileupDisplay/configSchema.js +47 -0
- package/dist/LinearPileupDisplay/configSchema.test.js +92 -0
- package/dist/LinearPileupDisplay/index.d.ts +2 -2
- package/dist/LinearPileupDisplay/index.js +30 -0
- package/dist/LinearPileupDisplay/model.d.ts +319 -321
- package/dist/LinearPileupDisplay/model.js +602 -0
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +10 -10
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +63 -0
- package/dist/LinearSNPCoverageDisplay/index.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/index.js +30 -0
- package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js +57 -0
- package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +62 -0
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +346 -96
- package/dist/LinearSNPCoverageDisplay/models/model.js +237 -0
- package/dist/NestedFrequencyTable.d.ts +14 -14
- package/dist/NestedFrequencyTable.js +152 -0
- package/dist/PileupRPC/rpcMethods.d.ts +34 -34
- package/dist/PileupRPC/rpcMethods.js +285 -0
- package/dist/PileupRenderer/PileupLayoutSession.d.ts +29 -29
- package/dist/PileupRenderer/PileupLayoutSession.js +79 -0
- package/dist/PileupRenderer/PileupRenderer.d.ts +125 -125
- package/dist/PileupRenderer/PileupRenderer.js +1220 -0
- package/dist/PileupRenderer/components/PileupRendering.d.ts +23 -23
- package/dist/PileupRenderer/components/PileupRendering.js +270 -0
- package/dist/PileupRenderer/components/PileupRendering.test.js +36 -0
- package/dist/PileupRenderer/configSchema.d.ts +2 -2
- package/dist/PileupRenderer/configSchema.js +72 -0
- package/dist/PileupRenderer/index.d.ts +2 -2
- package/dist/PileupRenderer/index.js +25 -0
- package/dist/PileupRenderer/sortUtil.d.ts +8 -8
- package/dist/PileupRenderer/sortUtil.js +112 -0
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -71
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +606 -0
- package/dist/SNPCoverageAdapter/configSchema.d.ts +3 -3
- package/dist/SNPCoverageAdapter/configSchema.js +22 -0
- package/dist/SNPCoverageAdapter/index.d.ts +3 -3
- package/dist/SNPCoverageAdapter/index.js +45 -0
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -20
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +296 -0
- package/dist/SNPCoverageRenderer/configSchema.d.ts +2 -2
- package/dist/SNPCoverageRenderer/configSchema.js +40 -0
- package/dist/SNPCoverageRenderer/index.d.ts +3 -3
- package/dist/SNPCoverageRenderer/index.js +34 -0
- package/dist/declare.d.js +1 -0
- package/dist/index.d.ts +10 -10
- package/dist/index.js +154 -6
- package/dist/index.test.js +26 -0
- package/dist/shared.d.ts +25 -25
- package/dist/shared.js +96 -0
- package/dist/util.d.ts +19 -19
- package/dist/util.js +135 -0
- package/package.json +5 -8
- package/src/BamAdapter/BamAdapter.ts +35 -8
- package/src/CramAdapter/CramAdapter.ts +42 -15
- package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +1 -1
- package/src/LinearPileupDisplay/model.ts +2 -22
- package/src/LinearSNPCoverageDisplay/models/model.ts +6 -36
- package/src/PileupRenderer/PileupRenderer.tsx +3 -6
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +11 -17
- package/dist/AlignmentsFeatureDetail/index.test.d.ts +0 -1
- package/dist/LinearAlignmentsDisplay/models/configSchema.test.d.ts +0 -1
- package/dist/LinearPileupDisplay/configSchema.test.d.ts +0 -1
- package/dist/LinearSNPCoverageDisplay/models/configSchema.test.d.ts +0 -1
- package/dist/PileupRenderer/components/PileupRendering.test.d.ts +0 -1
- package/dist/plugin-alignments.cjs.development.js +0 -8438
- package/dist/plugin-alignments.cjs.development.js.map +0 -1
- package/dist/plugin-alignments.cjs.production.min.js +0 -2
- package/dist/plugin-alignments.cjs.production.min.js.map +0 -1
- package/dist/plugin-alignments.esm.js +0 -8430
- package/dist/plugin-alignments.esm.js.map +0 -1
|
@@ -0,0 +1,237 @@
|
|
|
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
19
|
+
|
|
20
|
+
var _mobx = require("mobx");
|
|
21
|
+
|
|
22
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
23
|
+
|
|
24
|
+
var _pluginWiggle = require("@jbrowse/plugin-wiggle");
|
|
25
|
+
|
|
26
|
+
var _util = require("@jbrowse/core/util");
|
|
27
|
+
|
|
28
|
+
var _Tooltip = _interopRequireDefault(require("../components/Tooltip"));
|
|
29
|
+
|
|
30
|
+
var _shared = require("../../shared");
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
// using a map because it preserves order
|
|
37
|
+
var rendererTypes = new Map([['snpcoverage', 'SNPCoverageRenderer']]);
|
|
38
|
+
|
|
39
|
+
var stateModelFactory = function stateModelFactory(pluginManager, configSchema) {
|
|
40
|
+
return _mobxStateTree.types.compose('LinearSNPCoverageDisplay', (0, _pluginWiggle.linearWiggleDisplayModelFactory)(pluginManager, configSchema), _mobxStateTree.types.model({
|
|
41
|
+
type: _mobxStateTree.types.literal('LinearSNPCoverageDisplay'),
|
|
42
|
+
drawInterbaseCounts: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
43
|
+
drawIndicators: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
44
|
+
drawArcs: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
45
|
+
filterBy: _mobxStateTree.types.optional(_mobxStateTree.types.model({
|
|
46
|
+
flagInclude: _mobxStateTree.types.optional(_mobxStateTree.types.number, 0),
|
|
47
|
+
flagExclude: _mobxStateTree.types.optional(_mobxStateTree.types.number, 1540),
|
|
48
|
+
readName: _mobxStateTree.types.maybe(_mobxStateTree.types.string),
|
|
49
|
+
tagFilter: _mobxStateTree.types.maybe(_mobxStateTree.types.model({
|
|
50
|
+
tag: _mobxStateTree.types.string,
|
|
51
|
+
value: _mobxStateTree.types.string
|
|
52
|
+
}))
|
|
53
|
+
}), {}),
|
|
54
|
+
colorBy: _mobxStateTree.types.maybe(_mobxStateTree.types.model({
|
|
55
|
+
type: _mobxStateTree.types.string,
|
|
56
|
+
tag: _mobxStateTree.types.maybe(_mobxStateTree.types.string)
|
|
57
|
+
}))
|
|
58
|
+
}))["volatile"](function () {
|
|
59
|
+
return {
|
|
60
|
+
modificationTagMap: _mobx.observable.map({})
|
|
61
|
+
};
|
|
62
|
+
}).actions(function (self) {
|
|
63
|
+
return {
|
|
64
|
+
setConfig: function setConfig(configuration) {
|
|
65
|
+
self.configuration = configuration;
|
|
66
|
+
},
|
|
67
|
+
setFilterBy: function setFilterBy(filter) {
|
|
68
|
+
self.filterBy = (0, _mobxStateTree.cast)(filter);
|
|
69
|
+
},
|
|
70
|
+
setColorBy: function setColorBy(colorBy) {
|
|
71
|
+
self.colorBy = (0, _mobxStateTree.cast)(colorBy);
|
|
72
|
+
},
|
|
73
|
+
updateModificationColorMap: function updateModificationColorMap(uniqueModifications) {
|
|
74
|
+
var colorPalette = ['red', 'blue', 'green', 'orange', 'purple'];
|
|
75
|
+
var i = 0;
|
|
76
|
+
uniqueModifications.forEach(function (value) {
|
|
77
|
+
if (!self.modificationTagMap.has(value)) {
|
|
78
|
+
var newColor = colorPalette[i++];
|
|
79
|
+
self.modificationTagMap.set(value, newColor);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}).views(function (self) {
|
|
85
|
+
var superRenderProps = self.renderProps;
|
|
86
|
+
return {
|
|
87
|
+
get rendererConfig() {
|
|
88
|
+
var configBlob = (0, _configuration.getConf)(self, ['renderers', self.rendererTypeName]) || {};
|
|
89
|
+
return self.rendererType.configSchema.create(_objectSpread(_objectSpread({}, configBlob), {}, {
|
|
90
|
+
drawInterbaseCounts: self.drawInterbaseCounts === undefined ? configBlob.drawInterbaseCounts : self.drawInterbaseCounts,
|
|
91
|
+
drawIndicators: self.drawIndicators === undefined ? configBlob.drawIndicators : self.drawIndicators,
|
|
92
|
+
drawArcs: self.drawArcs === undefined ? configBlob.drawArcs : self.drawArcs
|
|
93
|
+
}), (0, _mobxStateTree.getEnv)(self));
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
get drawArcsSetting() {
|
|
97
|
+
return self.drawArcs !== undefined ? self.drawArcs : (0, _configuration.readConfObject)(this.rendererConfig, 'drawArcs');
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
get drawInterbaseCountsSetting() {
|
|
101
|
+
return self.drawInterbaseCounts !== undefined ? self.drawInterbaseCounts : (0, _configuration.readConfObject)(this.rendererConfig, 'drawInterbaseCounts');
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
get drawIndicatorsSetting() {
|
|
105
|
+
return self.drawIndicators !== undefined ? self.drawIndicators : (0, _configuration.readConfObject)(this.rendererConfig, 'drawIndicators');
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
get modificationsReady() {
|
|
109
|
+
var _self$colorBy;
|
|
110
|
+
|
|
111
|
+
return ((_self$colorBy = self.colorBy) === null || _self$colorBy === void 0 ? void 0 : _self$colorBy.type) === 'modifications' ? Object.keys(JSON.parse(JSON.stringify(self.modificationTagMap))).length > 0 : true;
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
renderProps: function renderProps() {
|
|
115
|
+
var superProps = superRenderProps();
|
|
116
|
+
return _objectSpread(_objectSpread({}, superProps), {}, {
|
|
117
|
+
notReady: superProps.notReady || !this.modificationsReady,
|
|
118
|
+
modificationTagMap: JSON.parse(JSON.stringify(self.modificationTagMap)),
|
|
119
|
+
// must use getSnapshot because otherwise changes to e.g. just the
|
|
120
|
+
// colorBy.type are not read
|
|
121
|
+
colorBy: self.colorBy ? (0, _mobxStateTree.getSnapshot)(self.colorBy) : undefined,
|
|
122
|
+
filterBy: self.filterBy
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}).actions(function (self) {
|
|
127
|
+
return {
|
|
128
|
+
toggleDrawIndicators: function toggleDrawIndicators() {
|
|
129
|
+
self.drawIndicators = !self.drawIndicatorsSetting;
|
|
130
|
+
},
|
|
131
|
+
toggleDrawInterbaseCounts: function toggleDrawInterbaseCounts() {
|
|
132
|
+
self.drawInterbaseCounts = !self.drawInterbaseCountsSetting;
|
|
133
|
+
},
|
|
134
|
+
toggleDrawArcs: function toggleDrawArcs() {
|
|
135
|
+
self.drawArcs = !self.drawArcsSetting;
|
|
136
|
+
},
|
|
137
|
+
afterAttach: function afterAttach() {
|
|
138
|
+
(0, _mobxStateTree.addDisposer)(self, (0, _mobx.autorun)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
139
|
+
var colorBy, _ref2, staticBlocks, vals;
|
|
140
|
+
|
|
141
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
142
|
+
while (1) {
|
|
143
|
+
switch (_context.prev = _context.next) {
|
|
144
|
+
case 0:
|
|
145
|
+
_context.prev = 0;
|
|
146
|
+
colorBy = self.colorBy;
|
|
147
|
+
_ref2 = (0, _util.getContainingView)(self), staticBlocks = _ref2.staticBlocks;
|
|
148
|
+
|
|
149
|
+
if (!((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications')) {
|
|
150
|
+
_context.next = 8;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
_context.next = 6;
|
|
155
|
+
return (0, _shared.getUniqueModificationValues)(self, (0, _configuration.getConf)(self.parentTrack, 'adapter'), colorBy, staticBlocks);
|
|
156
|
+
|
|
157
|
+
case 6:
|
|
158
|
+
vals = _context.sent;
|
|
159
|
+
self.updateModificationColorMap(vals);
|
|
160
|
+
|
|
161
|
+
case 8:
|
|
162
|
+
_context.next = 14;
|
|
163
|
+
break;
|
|
164
|
+
|
|
165
|
+
case 10:
|
|
166
|
+
_context.prev = 10;
|
|
167
|
+
_context.t0 = _context["catch"](0);
|
|
168
|
+
console.error(_context.t0);
|
|
169
|
+
self.setError(_context.t0);
|
|
170
|
+
|
|
171
|
+
case 14:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context.stop();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, _callee, null, [[0, 10]]);
|
|
177
|
+
})), {
|
|
178
|
+
delay: 1000
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}).views(function (self) {
|
|
183
|
+
var superTrackMenuItems = self.trackMenuItems;
|
|
184
|
+
return {
|
|
185
|
+
get TooltipComponent() {
|
|
186
|
+
return _Tooltip["default"];
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
get adapterConfig() {
|
|
190
|
+
var subadapter = (0, _configuration.getConf)(self.parentTrack, 'adapter');
|
|
191
|
+
return {
|
|
192
|
+
type: 'SNPCoverageAdapter',
|
|
193
|
+
subadapter: subadapter
|
|
194
|
+
};
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
get rendererTypeName() {
|
|
198
|
+
return rendererTypes.get('snpcoverage');
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
get needsScalebar() {
|
|
202
|
+
return true;
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
contextMenuItems: function contextMenuItems() {
|
|
206
|
+
return [];
|
|
207
|
+
},
|
|
208
|
+
trackMenuItems: function trackMenuItems() {
|
|
209
|
+
return [].concat((0, _toConsumableArray2["default"])(superTrackMenuItems()), [{
|
|
210
|
+
label: 'Draw insertion/clipping indicators',
|
|
211
|
+
type: 'checkbox',
|
|
212
|
+
checked: self.drawIndicatorsSetting,
|
|
213
|
+
onClick: function onClick() {
|
|
214
|
+
self.toggleDrawIndicators();
|
|
215
|
+
}
|
|
216
|
+
}, {
|
|
217
|
+
label: 'Draw insertion/clipping counts',
|
|
218
|
+
type: 'checkbox',
|
|
219
|
+
checked: self.drawInterbaseCountsSetting,
|
|
220
|
+
onClick: function onClick() {
|
|
221
|
+
self.toggleDrawInterbaseCounts();
|
|
222
|
+
}
|
|
223
|
+
}, {
|
|
224
|
+
label: 'Draw arcs',
|
|
225
|
+
type: 'checkbox',
|
|
226
|
+
checked: self.drawArcsSetting,
|
|
227
|
+
onClick: function onClick() {
|
|
228
|
+
self.toggleDrawArcs();
|
|
229
|
+
}
|
|
230
|
+
}]);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
var _default = stateModelFactory;
|
|
237
|
+
exports["default"] = _default;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export default class NestedFrequencyTable {
|
|
2
|
-
categories: {
|
|
3
|
-
[key: string]: any;
|
|
4
|
-
};
|
|
5
|
-
constructor(initialData?: {});
|
|
6
|
-
total(): number;
|
|
7
|
-
decrement(slotName: string, amount: number): any;
|
|
8
|
-
increment(slotName: string, amount: number): any;
|
|
9
|
-
get(slotName: string): any;
|
|
10
|
-
getNested(path: string | string[]): any;
|
|
11
|
-
toString(): string;
|
|
12
|
-
valueOf(): number;
|
|
13
|
-
forEach(func: Function, ctx: any): void;
|
|
14
|
-
}
|
|
1
|
+
export default class NestedFrequencyTable {
|
|
2
|
+
categories: {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
};
|
|
5
|
+
constructor(initialData?: {});
|
|
6
|
+
total(): number;
|
|
7
|
+
decrement(slotName: string, amount: number): any;
|
|
8
|
+
increment(slotName: string, amount: number): any;
|
|
9
|
+
get(slotName: string): any;
|
|
10
|
+
getNested(path: string | string[]): any;
|
|
11
|
+
toString(): string;
|
|
12
|
+
valueOf(): number;
|
|
13
|
+
forEach(func: Function, ctx: any): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
// see perf results on object.keys vs for-in loop
|
|
22
|
+
// https://jsperf.com/object-keys-vs-hasownproperty/55
|
|
23
|
+
var NestedFrequencyTable = /*#__PURE__*/function () {
|
|
24
|
+
function NestedFrequencyTable() {
|
|
25
|
+
var initialData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
26
|
+
(0, _classCallCheck2["default"])(this, NestedFrequencyTable);
|
|
27
|
+
(0, _defineProperty2["default"])(this, "categories", void 0);
|
|
28
|
+
this.categories = _objectSpread({}, initialData);
|
|
29
|
+
} // get the sum of all the category counts
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
(0, _createClass2["default"])(NestedFrequencyTable, [{
|
|
33
|
+
key: "total",
|
|
34
|
+
value: function total() {
|
|
35
|
+
// calculate total if necessary
|
|
36
|
+
var t = 0;
|
|
37
|
+
|
|
38
|
+
for (var k in this.categories) {
|
|
39
|
+
var v = this.categories[k];
|
|
40
|
+
t += v.total ? v.total() : v;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return t;
|
|
44
|
+
} // decrement the count for the given category
|
|
45
|
+
|
|
46
|
+
}, {
|
|
47
|
+
key: "decrement",
|
|
48
|
+
value: function decrement(slotName, amount) {
|
|
49
|
+
if (!amount) {
|
|
50
|
+
amount = 1;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (!slotName) {
|
|
54
|
+
slotName = 'default';
|
|
55
|
+
} else {
|
|
56
|
+
slotName = slotName.toString();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (this.categories[slotName]) {
|
|
60
|
+
this.categories[slotName] = Math.max(0, this.categories[slotName] - amount);
|
|
61
|
+
return this.categories[slotName];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return 0;
|
|
65
|
+
} // increment the count for the given category
|
|
66
|
+
|
|
67
|
+
}, {
|
|
68
|
+
key: "increment",
|
|
69
|
+
value: function increment(slotName, amount) {
|
|
70
|
+
if (!amount) {
|
|
71
|
+
amount = 1;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!slotName) {
|
|
75
|
+
slotName = 'default';
|
|
76
|
+
} else {
|
|
77
|
+
slotName = slotName.toString();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this.categories[slotName] = (this.categories[slotName] || 0) + amount;
|
|
81
|
+
return this.categories[slotName];
|
|
82
|
+
} // get the value of the given category. may be a number or a
|
|
83
|
+
// frequency table.
|
|
84
|
+
|
|
85
|
+
}, {
|
|
86
|
+
key: "get",
|
|
87
|
+
value: function get(slotName) {
|
|
88
|
+
return this.categories[slotName] || 0;
|
|
89
|
+
} // get a given category as a frequency table
|
|
90
|
+
|
|
91
|
+
}, {
|
|
92
|
+
key: "getNested",
|
|
93
|
+
value: function getNested(path) {
|
|
94
|
+
if (typeof path === 'string') {
|
|
95
|
+
path = path.split('/');
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (!path.length) {
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var slotName = path[0].toString();
|
|
103
|
+
var slot = this.categories[slotName];
|
|
104
|
+
|
|
105
|
+
if (!slot || !slot.categories) {
|
|
106
|
+
this.categories[slotName] = new NestedFrequencyTable(slot ? {
|
|
107
|
+
"default": slot + 0
|
|
108
|
+
} : {});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
slot = this.categories[slotName];
|
|
112
|
+
|
|
113
|
+
if (path.length > 1) {
|
|
114
|
+
return slot.getNested(path.slice(1));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
return slot;
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "toString",
|
|
121
|
+
value: function toString() {
|
|
122
|
+
return this.total().toPrecision(6).toString().replace(/\.?0+$/, '');
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
key: "valueOf",
|
|
126
|
+
value: function valueOf() {
|
|
127
|
+
return this.total();
|
|
128
|
+
} // iterate through the categories and counts, call like:
|
|
129
|
+
//
|
|
130
|
+
// tbl.forEach( function( count, categoryName ) {
|
|
131
|
+
// // do something
|
|
132
|
+
// }, this );
|
|
133
|
+
//
|
|
134
|
+
|
|
135
|
+
}, {
|
|
136
|
+
key: "forEach",
|
|
137
|
+
value: function forEach(func, ctx) {
|
|
138
|
+
if (ctx) {
|
|
139
|
+
for (var slotName in this.categories) {
|
|
140
|
+
func.call(ctx, this.categories[slotName], slotName);
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
for (var _slotName in this.categories) {
|
|
144
|
+
func(this.categories[_slotName], _slotName);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}]);
|
|
149
|
+
return NestedFrequencyTable;
|
|
150
|
+
}();
|
|
151
|
+
|
|
152
|
+
exports["default"] = NestedFrequencyTable;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType';
|
|
2
|
-
import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods';
|
|
3
|
-
import { Region } from '@jbrowse/core/util/types';
|
|
4
|
-
import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals';
|
|
5
|
-
export declare class PileupGetGlobalValueForTag extends RpcMethodType {
|
|
6
|
-
name: string;
|
|
7
|
-
serializeArguments(args: RenderArgs & {
|
|
8
|
-
signal?: AbortSignal;
|
|
9
|
-
statusCallback?: Function;
|
|
10
|
-
}, rpcDriverClassName: string): Promise<{}>;
|
|
11
|
-
execute(args: {
|
|
12
|
-
adapterConfig: {};
|
|
13
|
-
signal?: RemoteAbortSignal;
|
|
14
|
-
headers?: Record<string, string>;
|
|
15
|
-
regions: Region[];
|
|
16
|
-
sessionId: string;
|
|
17
|
-
tag: string;
|
|
18
|
-
}, rpcDriverClassName: string): Promise<string[]>;
|
|
19
|
-
}
|
|
20
|
-
export declare class PileupGetVisibleModifications extends RpcMethodType {
|
|
21
|
-
name: string;
|
|
22
|
-
serializeArguments(args: RenderArgs & {
|
|
23
|
-
signal?: AbortSignal;
|
|
24
|
-
statusCallback?: Function;
|
|
25
|
-
}, rpcDriverClassName: string): Promise<{}>;
|
|
26
|
-
execute(args: {
|
|
27
|
-
adapterConfig: {};
|
|
28
|
-
signal?: RemoteAbortSignal;
|
|
29
|
-
headers?: Record<string, string>;
|
|
30
|
-
regions: Region[];
|
|
31
|
-
sessionId: string;
|
|
32
|
-
tag: string;
|
|
33
|
-
}, rpcDriverClassName: string): Promise<string[]>;
|
|
34
|
-
}
|
|
1
|
+
import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType';
|
|
2
|
+
import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods';
|
|
3
|
+
import { Region } from '@jbrowse/core/util/types';
|
|
4
|
+
import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals';
|
|
5
|
+
export declare class PileupGetGlobalValueForTag extends RpcMethodType {
|
|
6
|
+
name: string;
|
|
7
|
+
serializeArguments(args: RenderArgs & {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
statusCallback?: Function;
|
|
10
|
+
}, rpcDriverClassName: string): Promise<{}>;
|
|
11
|
+
execute(args: {
|
|
12
|
+
adapterConfig: {};
|
|
13
|
+
signal?: RemoteAbortSignal;
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
regions: Region[];
|
|
16
|
+
sessionId: string;
|
|
17
|
+
tag: string;
|
|
18
|
+
}, rpcDriverClassName: string): Promise<string[]>;
|
|
19
|
+
}
|
|
20
|
+
export declare class PileupGetVisibleModifications extends RpcMethodType {
|
|
21
|
+
name: string;
|
|
22
|
+
serializeArguments(args: RenderArgs & {
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
statusCallback?: Function;
|
|
25
|
+
}, rpcDriverClassName: string): Promise<{}>;
|
|
26
|
+
execute(args: {
|
|
27
|
+
adapterConfig: {};
|
|
28
|
+
signal?: RemoteAbortSignal;
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
regions: Region[];
|
|
31
|
+
sessionId: string;
|
|
32
|
+
tag: string;
|
|
33
|
+
}, rpcDriverClassName: string): Promise<string[]>;
|
|
34
|
+
}
|