@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,602 @@
|
|
|
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
19
|
+
|
|
20
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
21
|
+
|
|
22
|
+
var _react = require("react");
|
|
23
|
+
|
|
24
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
25
|
+
|
|
26
|
+
var _tracks = require("@jbrowse/core/util/tracks");
|
|
27
|
+
|
|
28
|
+
var _util = require("@jbrowse/core/util");
|
|
29
|
+
|
|
30
|
+
var _Visibility = _interopRequireDefault(require("@material-ui/icons/Visibility"));
|
|
31
|
+
|
|
32
|
+
var _Icons = require("@jbrowse/core/ui/Icons");
|
|
33
|
+
|
|
34
|
+
var _pluginLinearGenomeView = require("@jbrowse/plugin-linear-genome-view");
|
|
35
|
+
|
|
36
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
37
|
+
|
|
38
|
+
var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
|
|
39
|
+
|
|
40
|
+
var _MenuOpen = _interopRequireDefault(require("@material-ui/icons/MenuOpen"));
|
|
41
|
+
|
|
42
|
+
var _Sort = _interopRequireDefault(require("@material-ui/icons/Sort"));
|
|
43
|
+
|
|
44
|
+
var _Palette = _interopRequireDefault(require("@material-ui/icons/Palette"));
|
|
45
|
+
|
|
46
|
+
var _ClearAll = _interopRequireDefault(require("@material-ui/icons/ClearAll"));
|
|
47
|
+
|
|
48
|
+
var _mobx = require("mobx");
|
|
49
|
+
|
|
50
|
+
var _LinearPileupDisplayBlurb = _interopRequireDefault(require("./components/LinearPileupDisplayBlurb"));
|
|
51
|
+
|
|
52
|
+
var _shared = require("../shared");
|
|
53
|
+
|
|
54
|
+
var _excluded = ["uniqueId"];
|
|
55
|
+
|
|
56
|
+
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; }
|
|
57
|
+
|
|
58
|
+
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; }
|
|
59
|
+
|
|
60
|
+
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); }
|
|
61
|
+
|
|
62
|
+
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; }
|
|
63
|
+
|
|
64
|
+
var ColorByTagDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
65
|
+
return Promise.resolve().then(function () {
|
|
66
|
+
return _interopRequireWildcard(require('./components/ColorByTag'));
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
var FilterByTagDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
70
|
+
return Promise.resolve().then(function () {
|
|
71
|
+
return _interopRequireWildcard(require('./components/FilterByTag'));
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
var SortByTagDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
75
|
+
return Promise.resolve().then(function () {
|
|
76
|
+
return _interopRequireWildcard(require('./components/SortByTag'));
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
var SetFeatureHeightDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
80
|
+
return Promise.resolve().then(function () {
|
|
81
|
+
return _interopRequireWildcard(require('./components/SetFeatureHeight'));
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
var SetMaxHeightDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
85
|
+
return Promise.resolve().then(function () {
|
|
86
|
+
return _interopRequireWildcard(require('./components/SetMaxHeight'));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
var ModificationsDlg = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
90
|
+
return Promise.resolve().then(function () {
|
|
91
|
+
return _interopRequireWildcard(require('./components/ColorByModifications'));
|
|
92
|
+
});
|
|
93
|
+
}); // using a map because it preserves order
|
|
94
|
+
|
|
95
|
+
var rendererTypes = new Map([['pileup', 'PileupRenderer'], ['svg', 'SvgFeatureRenderer']]);
|
|
96
|
+
|
|
97
|
+
var stateModelFactory = function stateModelFactory(configSchema) {
|
|
98
|
+
return _mobxStateTree.types.compose('LinearPileupDisplay', _pluginLinearGenomeView.BaseLinearDisplay, _mobxStateTree.types.model({
|
|
99
|
+
type: _mobxStateTree.types.literal('LinearPileupDisplay'),
|
|
100
|
+
configuration: (0, _configuration.ConfigurationReference)(configSchema),
|
|
101
|
+
showSoftClipping: false,
|
|
102
|
+
featureHeight: _mobxStateTree.types.maybe(_mobxStateTree.types.number),
|
|
103
|
+
noSpacing: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
104
|
+
fadeLikelihood: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
105
|
+
trackMaxHeight: _mobxStateTree.types.maybe(_mobxStateTree.types.number),
|
|
106
|
+
mismatchAlpha: _mobxStateTree.types.maybe(_mobxStateTree.types["boolean"]),
|
|
107
|
+
sortedBy: _mobxStateTree.types.maybe(_mobxStateTree.types.model({
|
|
108
|
+
type: _mobxStateTree.types.string,
|
|
109
|
+
pos: _mobxStateTree.types.number,
|
|
110
|
+
tag: _mobxStateTree.types.maybe(_mobxStateTree.types.string),
|
|
111
|
+
refName: _mobxStateTree.types.string,
|
|
112
|
+
assemblyName: _mobxStateTree.types.string
|
|
113
|
+
})),
|
|
114
|
+
colorBy: _mobxStateTree.types.maybe(_mobxStateTree.types.model({
|
|
115
|
+
type: _mobxStateTree.types.string,
|
|
116
|
+
tag: _mobxStateTree.types.maybe(_mobxStateTree.types.string),
|
|
117
|
+
extra: _mobxStateTree.types.frozen()
|
|
118
|
+
})),
|
|
119
|
+
filterBy: _mobxStateTree.types.optional(_mobxStateTree.types.model({
|
|
120
|
+
flagInclude: _mobxStateTree.types.optional(_mobxStateTree.types.number, 0),
|
|
121
|
+
flagExclude: _mobxStateTree.types.optional(_mobxStateTree.types.number, 1540),
|
|
122
|
+
readName: _mobxStateTree.types.maybe(_mobxStateTree.types.string),
|
|
123
|
+
tagFilter: _mobxStateTree.types.maybe(_mobxStateTree.types.model({
|
|
124
|
+
tag: _mobxStateTree.types.string,
|
|
125
|
+
value: _mobxStateTree.types.string
|
|
126
|
+
}))
|
|
127
|
+
}), {})
|
|
128
|
+
}))["volatile"](function () {
|
|
129
|
+
return {
|
|
130
|
+
colorTagMap: _mobx.observable.map({}),
|
|
131
|
+
modificationTagMap: _mobx.observable.map({}),
|
|
132
|
+
ready: false
|
|
133
|
+
};
|
|
134
|
+
}).actions(function (self) {
|
|
135
|
+
return {
|
|
136
|
+
setReady: function setReady(flag) {
|
|
137
|
+
self.ready = flag;
|
|
138
|
+
},
|
|
139
|
+
setMaxHeight: function setMaxHeight(n) {
|
|
140
|
+
self.trackMaxHeight = n;
|
|
141
|
+
},
|
|
142
|
+
setFeatureHeight: function setFeatureHeight(n) {
|
|
143
|
+
self.featureHeight = n;
|
|
144
|
+
},
|
|
145
|
+
setNoSpacing: function setNoSpacing(flag) {
|
|
146
|
+
self.noSpacing = flag;
|
|
147
|
+
},
|
|
148
|
+
setColorScheme: function setColorScheme(colorScheme) {
|
|
149
|
+
self.colorTagMap = _mobx.observable.map({}); // clear existing mapping
|
|
150
|
+
|
|
151
|
+
self.colorBy = (0, _mobxStateTree.cast)(colorScheme);
|
|
152
|
+
self.ready = false;
|
|
153
|
+
},
|
|
154
|
+
updateModificationColorMap: function updateModificationColorMap(uniqueModifications) {
|
|
155
|
+
var colorPalette = ['red', 'blue', 'green', 'orange', 'purple'];
|
|
156
|
+
uniqueModifications.forEach(function (value) {
|
|
157
|
+
if (!self.modificationTagMap.has(value)) {
|
|
158
|
+
var totalKeys = (0, _toConsumableArray2["default"])(self.modificationTagMap.keys()).length;
|
|
159
|
+
var newColor = colorPalette[totalKeys];
|
|
160
|
+
self.modificationTagMap.set(value, newColor);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
updateColorTagMap: function updateColorTagMap(uniqueTag) {
|
|
165
|
+
// pale color scheme https://cran.r-project.org/web/packages/khroma/vignettes/tol.html e.g. "tol_light"
|
|
166
|
+
var colorPalette = ['#BBCCEE', 'pink', '#CCDDAA', '#EEEEBB', '#FFCCCC', 'lightblue', 'lightgreen', 'tan', '#CCEEFF', 'lightsalmon'];
|
|
167
|
+
uniqueTag.forEach(function (value) {
|
|
168
|
+
if (!self.colorTagMap.has(value)) {
|
|
169
|
+
var totalKeys = (0, _toConsumableArray2["default"])(self.colorTagMap.keys()).length;
|
|
170
|
+
var newColor = colorPalette[totalKeys];
|
|
171
|
+
self.colorTagMap.set(value, newColor);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
}).actions(function (self) {
|
|
177
|
+
return {
|
|
178
|
+
afterAttach: function afterAttach() {
|
|
179
|
+
(0, _mobxStateTree.addDisposer)(self, (0, _mobx.autorun)( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
180
|
+
var _getSession, rpcManager, sortedBy, colorBy, view, uniqueTagSet, uniqueModificationsSet, pos, refName, assemblyName, region;
|
|
181
|
+
|
|
182
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
183
|
+
while (1) {
|
|
184
|
+
switch (_context.prev = _context.next) {
|
|
185
|
+
case 0:
|
|
186
|
+
_context.prev = 0;
|
|
187
|
+
_getSession = (0, _util.getSession)(self), rpcManager = _getSession.rpcManager;
|
|
188
|
+
sortedBy = self.sortedBy, colorBy = self.colorBy;
|
|
189
|
+
view = (0, _util.getContainingView)(self); // continually generate the vc pairing, set and rerender if any
|
|
190
|
+
// new values seen
|
|
191
|
+
|
|
192
|
+
if (!(colorBy !== null && colorBy !== void 0 && colorBy.tag)) {
|
|
193
|
+
_context.next = 9;
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
_context.next = 7;
|
|
198
|
+
return (0, _shared.getUniqueTagValues)(self, colorBy, view.staticBlocks);
|
|
199
|
+
|
|
200
|
+
case 7:
|
|
201
|
+
uniqueTagSet = _context.sent;
|
|
202
|
+
self.updateColorTagMap(uniqueTagSet);
|
|
203
|
+
|
|
204
|
+
case 9:
|
|
205
|
+
if (!((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications')) {
|
|
206
|
+
_context.next = 14;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
_context.next = 12;
|
|
211
|
+
return (0, _shared.getUniqueModificationValues)(self, (0, _configuration.getConf)(self.parentTrack, ['adapter']), colorBy, view.staticBlocks);
|
|
212
|
+
|
|
213
|
+
case 12:
|
|
214
|
+
uniqueModificationsSet = _context.sent;
|
|
215
|
+
self.updateModificationColorMap(uniqueModificationsSet);
|
|
216
|
+
|
|
217
|
+
case 14:
|
|
218
|
+
if (!sortedBy) {
|
|
219
|
+
_context.next = 23;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
pos = sortedBy.pos, refName = sortedBy.refName, assemblyName = sortedBy.assemblyName;
|
|
224
|
+
region = {
|
|
225
|
+
start: pos,
|
|
226
|
+
end: pos + 1,
|
|
227
|
+
refName: refName,
|
|
228
|
+
assemblyName: assemblyName
|
|
229
|
+
}; // render just the sorted region first
|
|
230
|
+
|
|
231
|
+
_context.next = 19;
|
|
232
|
+
return self.rendererType.renderInClient(rpcManager, _objectSpread({
|
|
233
|
+
assemblyName: assemblyName,
|
|
234
|
+
regions: [region],
|
|
235
|
+
adapterConfig: self.adapterConfig,
|
|
236
|
+
rendererType: self.rendererType.name,
|
|
237
|
+
sessionId: (0, _tracks.getRpcSessionId)(self),
|
|
238
|
+
timeout: 1000000
|
|
239
|
+
}, self.renderProps()));
|
|
240
|
+
|
|
241
|
+
case 19:
|
|
242
|
+
self.setReady(true);
|
|
243
|
+
self.setCurrBpPerPx(view.bpPerPx);
|
|
244
|
+
_context.next = 24;
|
|
245
|
+
break;
|
|
246
|
+
|
|
247
|
+
case 23:
|
|
248
|
+
self.setReady(true);
|
|
249
|
+
|
|
250
|
+
case 24:
|
|
251
|
+
_context.next = 30;
|
|
252
|
+
break;
|
|
253
|
+
|
|
254
|
+
case 26:
|
|
255
|
+
_context.prev = 26;
|
|
256
|
+
_context.t0 = _context["catch"](0);
|
|
257
|
+
console.error(_context.t0);
|
|
258
|
+
self.setError(_context.t0);
|
|
259
|
+
|
|
260
|
+
case 30:
|
|
261
|
+
case "end":
|
|
262
|
+
return _context.stop();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}, _callee, null, [[0, 26]]);
|
|
266
|
+
})), {
|
|
267
|
+
delay: 1000
|
|
268
|
+
}));
|
|
269
|
+
},
|
|
270
|
+
selectFeature: function selectFeature(feature) {
|
|
271
|
+
var session = (0, _util.getSession)(self);
|
|
272
|
+
|
|
273
|
+
if ((0, _util.isSessionModelWithWidgets)(session)) {
|
|
274
|
+
var featureWidget = session.addWidget('AlignmentsFeatureWidget', 'alignmentFeature', {
|
|
275
|
+
featureData: feature.toJSON(),
|
|
276
|
+
view: (0, _util.getContainingView)(self)
|
|
277
|
+
});
|
|
278
|
+
session.showWidget(featureWidget);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
session.setSelection(feature);
|
|
282
|
+
},
|
|
283
|
+
clearSelected: function clearSelected() {
|
|
284
|
+
self.sortedBy = undefined;
|
|
285
|
+
},
|
|
286
|
+
// uses copy-to-clipboard and generates notification
|
|
287
|
+
copyFeatureToClipboard: function copyFeatureToClipboard(feature) {
|
|
288
|
+
var _feature$toJSON = feature.toJSON(),
|
|
289
|
+
uniqueId = _feature$toJSON.uniqueId,
|
|
290
|
+
rest = (0, _objectWithoutProperties2["default"])(_feature$toJSON, _excluded);
|
|
291
|
+
|
|
292
|
+
var session = (0, _util.getSession)(self);
|
|
293
|
+
(0, _copyToClipboard["default"])(JSON.stringify(rest, null, 4));
|
|
294
|
+
session.notify('Copied to clipboard', 'success');
|
|
295
|
+
},
|
|
296
|
+
toggleSoftClipping: function toggleSoftClipping() {
|
|
297
|
+
self.showSoftClipping = !self.showSoftClipping;
|
|
298
|
+
},
|
|
299
|
+
toggleMismatchAlpha: function toggleMismatchAlpha() {
|
|
300
|
+
self.mismatchAlpha = !self.mismatchAlpha;
|
|
301
|
+
},
|
|
302
|
+
setConfig: function setConfig(configuration) {
|
|
303
|
+
self.configuration = configuration;
|
|
304
|
+
},
|
|
305
|
+
setSortedBy: function setSortedBy(type, tag) {
|
|
306
|
+
var _ref2 = (0, _util.getContainingView)(self),
|
|
307
|
+
centerLineInfo = _ref2.centerLineInfo;
|
|
308
|
+
|
|
309
|
+
if (!centerLineInfo) {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
var refName = centerLineInfo.refName,
|
|
314
|
+
assemblyName = centerLineInfo.assemblyName,
|
|
315
|
+
offset = centerLineInfo.offset;
|
|
316
|
+
var centerBp = Math.round(offset) + 1;
|
|
317
|
+
var centerRefName = refName;
|
|
318
|
+
|
|
319
|
+
if (centerBp < 0) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
self.sortedBy = {
|
|
324
|
+
type: type,
|
|
325
|
+
pos: centerBp,
|
|
326
|
+
refName: centerRefName,
|
|
327
|
+
assemblyName: assemblyName,
|
|
328
|
+
tag: tag
|
|
329
|
+
};
|
|
330
|
+
self.ready = false;
|
|
331
|
+
},
|
|
332
|
+
setFilterBy: function setFilterBy(filter) {
|
|
333
|
+
self.filterBy = (0, _mobxStateTree.cast)(filter);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
}).actions(function (self) {
|
|
337
|
+
// resets the sort object and refresh whole display on reload
|
|
338
|
+
var superReload = self.reload;
|
|
339
|
+
return {
|
|
340
|
+
reload: function reload() {
|
|
341
|
+
self.clearSelected();
|
|
342
|
+
superReload();
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
}).views(function (self) {
|
|
346
|
+
return {
|
|
347
|
+
get maxHeight() {
|
|
348
|
+
var conf = (0, _configuration.getConf)(self, ['renderers', self.rendererTypeName]) || {};
|
|
349
|
+
return self.trackMaxHeight !== undefined ? self.trackMaxHeight : conf.maxHeight;
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
get rendererConfig() {
|
|
353
|
+
var configBlob = (0, _configuration.getConf)(self, ['renderers', self.rendererTypeName]) || {};
|
|
354
|
+
return self.rendererType.configSchema.create(_objectSpread(_objectSpread({}, configBlob), {}, {
|
|
355
|
+
height: self.featureHeight,
|
|
356
|
+
noSpacing: self.noSpacing,
|
|
357
|
+
maxHeight: this.maxHeight,
|
|
358
|
+
mismatchAlpha: self.mismatchAlpha
|
|
359
|
+
}), (0, _mobxStateTree.getEnv)(self));
|
|
360
|
+
},
|
|
361
|
+
|
|
362
|
+
get featureHeightSetting() {
|
|
363
|
+
return self.featureHeight || (0, _configuration.readConfObject)(this.rendererConfig, 'height');
|
|
364
|
+
},
|
|
365
|
+
|
|
366
|
+
get mismatchAlphaSetting() {
|
|
367
|
+
return self.mismatchAlpha !== undefined ? self.mismatchAlpha : (0, _configuration.readConfObject)(this.rendererConfig, 'mismatchAlpha');
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
};
|
|
371
|
+
}).views(function (self) {
|
|
372
|
+
var superTrackMenuItems = self.trackMenuItems,
|
|
373
|
+
superRenderProps = self.renderProps;
|
|
374
|
+
return {
|
|
375
|
+
get rendererTypeName() {
|
|
376
|
+
var viewName = (0, _configuration.getConf)(self, 'defaultRendering');
|
|
377
|
+
var rendererType = rendererTypes.get(viewName);
|
|
378
|
+
|
|
379
|
+
if (!rendererType) {
|
|
380
|
+
throw new Error("unknown alignments view name ".concat(viewName));
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
return rendererType;
|
|
384
|
+
},
|
|
385
|
+
|
|
386
|
+
contextMenuItems: function contextMenuItems() {
|
|
387
|
+
var feat = self.contextMenuFeature;
|
|
388
|
+
var contextMenuItems = feat ? [{
|
|
389
|
+
label: 'Open feature details',
|
|
390
|
+
icon: _MenuOpen["default"],
|
|
391
|
+
onClick: function onClick() {
|
|
392
|
+
self.clearFeatureSelection();
|
|
393
|
+
|
|
394
|
+
if (feat) {
|
|
395
|
+
self.selectFeature(feat);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}, {
|
|
399
|
+
label: 'Copy info to clipboard',
|
|
400
|
+
icon: _Icons.ContentCopy,
|
|
401
|
+
onClick: function onClick() {
|
|
402
|
+
if (feat) {
|
|
403
|
+
self.copyFeatureToClipboard(feat);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}] : [];
|
|
407
|
+
return contextMenuItems;
|
|
408
|
+
},
|
|
409
|
+
|
|
410
|
+
get DisplayBlurb() {
|
|
411
|
+
return _LinearPileupDisplayBlurb["default"];
|
|
412
|
+
},
|
|
413
|
+
|
|
414
|
+
renderProps: function renderProps() {
|
|
415
|
+
var view = (0, _util.getContainingView)(self);
|
|
416
|
+
var colorTagMap = self.colorTagMap,
|
|
417
|
+
modificationTagMap = self.modificationTagMap,
|
|
418
|
+
sortedBy = self.sortedBy,
|
|
419
|
+
colorBy = self.colorBy,
|
|
420
|
+
filterBy = self.filterBy,
|
|
421
|
+
rpcDriverName = self.rpcDriverName;
|
|
422
|
+
var superProps = superRenderProps();
|
|
423
|
+
return _objectSpread(_objectSpread({}, superProps), {}, {
|
|
424
|
+
notReady: superProps.notReady || !self.ready || sortedBy && self.currBpPerPx !== view.bpPerPx,
|
|
425
|
+
rpcDriverName: rpcDriverName,
|
|
426
|
+
displayModel: self,
|
|
427
|
+
sortedBy: sortedBy,
|
|
428
|
+
colorBy: colorBy,
|
|
429
|
+
filterBy: filterBy,
|
|
430
|
+
colorTagMap: JSON.parse(JSON.stringify(colorTagMap)),
|
|
431
|
+
modificationTagMap: JSON.parse(JSON.stringify(modificationTagMap)),
|
|
432
|
+
showSoftClip: self.showSoftClipping,
|
|
433
|
+
config: self.rendererConfig
|
|
434
|
+
});
|
|
435
|
+
},
|
|
436
|
+
trackMenuItems: function trackMenuItems() {
|
|
437
|
+
return [].concat((0, _toConsumableArray2["default"])(superTrackMenuItems()), [{
|
|
438
|
+
label: 'Show soft clipping',
|
|
439
|
+
icon: _Visibility["default"],
|
|
440
|
+
type: 'checkbox',
|
|
441
|
+
checked: self.showSoftClipping,
|
|
442
|
+
onClick: function onClick() {
|
|
443
|
+
self.toggleSoftClipping(); // if toggling from off to on, will break sort for this track
|
|
444
|
+
// so clear it
|
|
445
|
+
|
|
446
|
+
if (self.showSoftClipping) {
|
|
447
|
+
self.clearSelected();
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}, {
|
|
451
|
+
label: 'Sort by',
|
|
452
|
+
icon: _Sort["default"],
|
|
453
|
+
disabled: self.showSoftClipping,
|
|
454
|
+
subMenu: [].concat((0, _toConsumableArray2["default"])(['Start location', 'Read strand', 'Base pair'].map(function (option) {
|
|
455
|
+
return {
|
|
456
|
+
label: option,
|
|
457
|
+
onClick: function onClick() {
|
|
458
|
+
return self.setSortedBy(option);
|
|
459
|
+
}
|
|
460
|
+
};
|
|
461
|
+
})), [{
|
|
462
|
+
label: 'Sort by tag...',
|
|
463
|
+
onClick: function onClick() {
|
|
464
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
465
|
+
return [SortByTagDlg, {
|
|
466
|
+
model: self,
|
|
467
|
+
handleClose: doneCallback
|
|
468
|
+
}];
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
}, {
|
|
472
|
+
label: 'Clear sort',
|
|
473
|
+
onClick: function onClick() {
|
|
474
|
+
return self.clearSelected();
|
|
475
|
+
}
|
|
476
|
+
}])
|
|
477
|
+
}, {
|
|
478
|
+
label: 'Color scheme',
|
|
479
|
+
icon: _Palette["default"],
|
|
480
|
+
subMenu: [{
|
|
481
|
+
label: 'Normal',
|
|
482
|
+
onClick: function onClick() {
|
|
483
|
+
self.setColorScheme({
|
|
484
|
+
type: 'normal'
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
}, {
|
|
488
|
+
label: 'Mapping quality',
|
|
489
|
+
onClick: function onClick() {
|
|
490
|
+
self.setColorScheme({
|
|
491
|
+
type: 'mappingQuality'
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
}, {
|
|
495
|
+
label: 'Strand',
|
|
496
|
+
onClick: function onClick() {
|
|
497
|
+
self.setColorScheme({
|
|
498
|
+
type: 'strand'
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
}, {
|
|
502
|
+
label: 'Pair orientation',
|
|
503
|
+
onClick: function onClick() {
|
|
504
|
+
self.setColorScheme({
|
|
505
|
+
type: 'pairOrientation'
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
}, {
|
|
509
|
+
label: 'Per-base quality',
|
|
510
|
+
onClick: function onClick() {
|
|
511
|
+
self.setColorScheme({
|
|
512
|
+
type: 'perBaseQuality'
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
}, {
|
|
516
|
+
label: 'Per-base lettering',
|
|
517
|
+
onClick: function onClick() {
|
|
518
|
+
self.setColorScheme({
|
|
519
|
+
type: 'perBaseLettering'
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
}, {
|
|
523
|
+
label: 'Modifications or methylation',
|
|
524
|
+
onClick: function onClick() {
|
|
525
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
526
|
+
return [ModificationsDlg, {
|
|
527
|
+
model: self,
|
|
528
|
+
handleClose: doneCallback
|
|
529
|
+
}];
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
}, {
|
|
533
|
+
label: 'Insert size',
|
|
534
|
+
onClick: function onClick() {
|
|
535
|
+
self.setColorScheme({
|
|
536
|
+
type: 'insertSize'
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
}, {
|
|
540
|
+
label: 'Stranded paired-end',
|
|
541
|
+
onClick: function onClick() {
|
|
542
|
+
self.setColorScheme({
|
|
543
|
+
type: 'reverseTemplate'
|
|
544
|
+
});
|
|
545
|
+
}
|
|
546
|
+
}, {
|
|
547
|
+
label: 'Color by tag...',
|
|
548
|
+
onClick: function onClick() {
|
|
549
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
550
|
+
return [ColorByTagDlg, {
|
|
551
|
+
model: self,
|
|
552
|
+
handleClose: doneCallback
|
|
553
|
+
}];
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
}]
|
|
557
|
+
}, {
|
|
558
|
+
label: 'Filter by',
|
|
559
|
+
icon: _ClearAll["default"],
|
|
560
|
+
onClick: function onClick() {
|
|
561
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
562
|
+
return [FilterByTagDlg, {
|
|
563
|
+
model: self,
|
|
564
|
+
handleClose: doneCallback
|
|
565
|
+
}];
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
}, {
|
|
569
|
+
label: 'Set feature height',
|
|
570
|
+
onClick: function onClick() {
|
|
571
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
572
|
+
return [SetFeatureHeightDlg, {
|
|
573
|
+
model: self,
|
|
574
|
+
handleClose: doneCallback
|
|
575
|
+
}];
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
}, {
|
|
579
|
+
label: 'Set max height',
|
|
580
|
+
onClick: function onClick() {
|
|
581
|
+
(0, _util.getSession)(self).queueDialog(function (doneCallback) {
|
|
582
|
+
return [SetMaxHeightDlg, {
|
|
583
|
+
model: self,
|
|
584
|
+
handleClose: doneCallback
|
|
585
|
+
}];
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
}, {
|
|
589
|
+
label: 'Fade mismatches by quality',
|
|
590
|
+
type: 'checkbox',
|
|
591
|
+
checked: self.mismatchAlphaSetting,
|
|
592
|
+
onClick: function onClick() {
|
|
593
|
+
self.toggleMismatchAlpha();
|
|
594
|
+
}
|
|
595
|
+
}]);
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
});
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
var _default = stateModelFactory;
|
|
602
|
+
exports["default"] = _default;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare type Coord = [number, number];
|
|
3
|
-
declare const SNPCoverageTooltip: (props: {
|
|
4
|
-
model: any;
|
|
5
|
-
height: number;
|
|
6
|
-
offsetMouseCoord: Coord;
|
|
7
|
-
clientMouseCoord: Coord;
|
|
8
|
-
clientRect?: DOMRect;
|
|
9
|
-
}) => JSX.Element | null;
|
|
10
|
-
export default SNPCoverageTooltip;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Coord = [number, number];
|
|
3
|
+
declare const SNPCoverageTooltip: (props: {
|
|
4
|
+
model: any;
|
|
5
|
+
height: number;
|
|
6
|
+
offsetMouseCoord: Coord;
|
|
7
|
+
clientMouseCoord: Coord;
|
|
8
|
+
clientRect?: DOMRect;
|
|
9
|
+
}) => JSX.Element | null;
|
|
10
|
+
export default SNPCoverageTooltip;
|
|
@@ -0,0 +1,63 @@
|
|
|
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _pluginWiggle = require("@jbrowse/plugin-wiggle");
|
|
19
|
+
|
|
20
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
|
+
var en = function en(n) {
|
|
22
|
+
return n.toLocaleString('en-US');
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var TooltipContents = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
26
|
+
var feature = _ref.feature;
|
|
27
|
+
var start = feature.get('start');
|
|
28
|
+
var end = feature.get('end');
|
|
29
|
+
var name = feature.get('refName');
|
|
30
|
+
var info = feature.get('snpinfo');
|
|
31
|
+
var loc = [name, start === end ? en(start) : "".concat(en(start), "..").concat(en(end))].filter(function (f) {
|
|
32
|
+
return !!f;
|
|
33
|
+
}).join(':');
|
|
34
|
+
var total = info === null || info === void 0 ? void 0 : info.total;
|
|
35
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
36
|
+
ref: ref
|
|
37
|
+
}, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("caption", null, loc), /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "Base"), /*#__PURE__*/_react["default"].createElement("th", null, "Count"), /*#__PURE__*/_react["default"].createElement("th", null, "% of Total"), /*#__PURE__*/_react["default"].createElement("th", null, "Strands"), /*#__PURE__*/_react["default"].createElement("th", null, "Source"))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "Total"), /*#__PURE__*/_react["default"].createElement("td", null, total), /*#__PURE__*/_react["default"].createElement("td", null)), Object.entries(info).map(function (_ref2) {
|
|
38
|
+
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
|
|
39
|
+
key = _ref3[0],
|
|
40
|
+
entry = _ref3[1];
|
|
41
|
+
|
|
42
|
+
return Object.entries(entry).map(function (_ref4) {
|
|
43
|
+
var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
|
|
44
|
+
base = _ref5[0],
|
|
45
|
+
score = _ref5[1];
|
|
46
|
+
|
|
47
|
+
var strands = score.strands;
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
49
|
+
key: base
|
|
50
|
+
}, /*#__PURE__*/_react["default"].createElement("td", null, base.toUpperCase()), /*#__PURE__*/_react["default"].createElement("td", null, score.total), /*#__PURE__*/_react["default"].createElement("td", null, base === 'total' || base === 'skip' ? '---' : "".concat(Math.floor(score.total / (total || score.total || 1) * 100), "%")), /*#__PURE__*/_react["default"].createElement("td", null, strands['-1'] ? "".concat(strands['-1'], "(-)") : '', strands['1'] ? "".concat(strands['1'], "(+)") : ''), /*#__PURE__*/_react["default"].createElement("td", null, key));
|
|
51
|
+
});
|
|
52
|
+
}))));
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
var SNPCoverageTooltip = (0, _mobxReact.observer)(function (props) {
|
|
56
|
+
var model = props.model;
|
|
57
|
+
var feat = model.featureUnderMouse;
|
|
58
|
+
return feat && feat.get('type') === 'skip' ? null : /*#__PURE__*/_react["default"].createElement(_pluginWiggle.Tooltip, (0, _extends2["default"])({
|
|
59
|
+
TooltipContents: TooltipContents
|
|
60
|
+
}, props));
|
|
61
|
+
});
|
|
62
|
+
var _default = SNPCoverageTooltip;
|
|
63
|
+
exports["default"] = _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
export default function register(pluginManager: PluginManager): void;
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
export default function register(pluginManager: PluginManager): void;
|