@jbrowse/plugin-wiggle 2.1.7 → 2.2.1
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/BigWigAdapter/configSchema.d.ts +2 -2
- package/dist/BigWigAdapter/configSchema.js +12 -1
- package/dist/BigWigAdapter/configSchema.js.map +1 -1
- package/dist/DensityRenderer/configSchema.js +11 -1
- package/dist/DensityRenderer/configSchema.js.map +1 -1
- package/dist/LinePlotRenderer/configSchema.js +14 -1
- package/dist/LinePlotRenderer/configSchema.js.map +1 -1
- package/dist/LinearWiggleDisplay/components/Tooltip.d.ts +1 -1
- package/dist/LinearWiggleDisplay/models/configSchema.js +38 -1
- package/dist/LinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/dist/LinearWiggleDisplay/models/model.d.ts +203 -10
- package/dist/LinearWiggleDisplay/models/model.js +588 -408
- package/dist/LinearWiggleDisplay/models/model.js.map +1 -1
- package/dist/MultiDensityRenderer/configSchema.js +11 -1
- package/dist/MultiDensityRenderer/configSchema.js.map +1 -1
- package/dist/MultiLineRenderer/configSchema.js +17 -1
- package/dist/MultiLineRenderer/configSchema.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -1
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js +38 -1
- package/dist/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/dist/MultiLinearWiggleDisplay/models/model.d.ts +3 -3
- package/dist/MultiQuantitativeTrack/configSchema.d.ts +3 -0
- package/dist/MultiQuantitativeTrack/configSchema.js +18 -0
- package/dist/MultiQuantitativeTrack/configSchema.js.map +1 -0
- package/dist/MultiQuantitativeTrack/index.js +2 -2
- package/dist/MultiQuantitativeTrack/index.js.map +1 -1
- package/dist/MultiRowLineRenderer/configSchema.js +17 -1
- package/dist/MultiRowLineRenderer/configSchema.js.map +1 -1
- package/dist/MultiRowXYPlotRenderer/configSchema.js +23 -1
- package/dist/MultiRowXYPlotRenderer/configSchema.js.map +1 -1
- package/dist/MultiWiggleAdapter/configSchema.d.ts +2 -2
- package/dist/MultiWiggleAdapter/configSchema.js +14 -1
- package/dist/MultiWiggleAdapter/configSchema.js.map +1 -1
- package/dist/MultiXYPlotRenderer/configSchema.js +23 -1
- package/dist/MultiXYPlotRenderer/configSchema.js.map +1 -1
- package/dist/QuantitativeTrack/configSchema.d.ts +3 -0
- package/dist/QuantitativeTrack/configSchema.js +18 -0
- package/dist/QuantitativeTrack/configSchema.js.map +1 -0
- package/dist/QuantitativeTrack/index.js +2 -2
- package/dist/QuantitativeTrack/index.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -2
- package/dist/WiggleBaseRenderer.d.ts +4 -0
- package/dist/XYPlotRenderer/configSchema.js +23 -1
- package/dist/XYPlotRenderer/configSchema.js.map +1 -1
- package/dist/configSchema.d.ts +2 -2
- package/dist/configSchema.js +25 -1
- package/dist/configSchema.js.map +1 -1
- package/dist/drawxy.js +4 -4
- package/dist/drawxy.js.map +1 -1
- package/dist/index.d.ts +3 -307
- package/esm/BigWigAdapter/configSchema.d.ts +2 -2
- package/esm/BigWigAdapter/configSchema.js +12 -1
- package/esm/BigWigAdapter/configSchema.js.map +1 -1
- package/esm/DensityRenderer/configSchema.js +12 -2
- package/esm/DensityRenderer/configSchema.js.map +1 -1
- package/esm/LinePlotRenderer/configSchema.js +15 -2
- package/esm/LinePlotRenderer/configSchema.js.map +1 -1
- package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +1 -1
- package/esm/LinearWiggleDisplay/models/configSchema.js +38 -1
- package/esm/LinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/esm/LinearWiggleDisplay/models/model.d.ts +203 -10
- package/esm/LinearWiggleDisplay/models/model.js +588 -408
- package/esm/LinearWiggleDisplay/models/model.js.map +1 -1
- package/esm/MultiDensityRenderer/configSchema.js +12 -2
- package/esm/MultiDensityRenderer/configSchema.js.map +1 -1
- package/esm/MultiLineRenderer/configSchema.js +18 -2
- package/esm/MultiLineRenderer/configSchema.js.map +1 -1
- package/esm/MultiLinearWiggleDisplay/components/Tooltip.d.ts +1 -1
- package/esm/MultiLinearWiggleDisplay/models/configSchema.js +38 -1
- package/esm/MultiLinearWiggleDisplay/models/configSchema.js.map +1 -1
- package/esm/MultiLinearWiggleDisplay/models/model.d.ts +3 -3
- package/esm/MultiQuantitativeTrack/configSchema.d.ts +3 -0
- package/esm/MultiQuantitativeTrack/configSchema.js +16 -0
- package/esm/MultiQuantitativeTrack/configSchema.js.map +1 -0
- package/esm/MultiQuantitativeTrack/index.js +3 -3
- package/esm/MultiQuantitativeTrack/index.js.map +1 -1
- package/esm/MultiRowLineRenderer/configSchema.js +18 -2
- package/esm/MultiRowLineRenderer/configSchema.js.map +1 -1
- package/esm/MultiRowXYPlotRenderer/configSchema.js +24 -2
- package/esm/MultiRowXYPlotRenderer/configSchema.js.map +1 -1
- package/esm/MultiWiggleAdapter/configSchema.d.ts +2 -2
- package/esm/MultiWiggleAdapter/configSchema.js +14 -1
- package/esm/MultiWiggleAdapter/configSchema.js.map +1 -1
- package/esm/MultiXYPlotRenderer/configSchema.js +24 -2
- package/esm/MultiXYPlotRenderer/configSchema.js.map +1 -1
- package/esm/QuantitativeTrack/configSchema.d.ts +3 -0
- package/esm/QuantitativeTrack/configSchema.js +16 -0
- package/esm/QuantitativeTrack/configSchema.js.map +1 -0
- package/esm/QuantitativeTrack/index.js +3 -3
- package/esm/QuantitativeTrack/index.js.map +1 -1
- package/esm/Tooltip.d.ts +2 -2
- package/esm/WiggleBaseRenderer.d.ts +4 -0
- package/esm/XYPlotRenderer/configSchema.js +24 -2
- package/esm/XYPlotRenderer/configSchema.js.map +1 -1
- package/esm/configSchema.d.ts +2 -2
- package/esm/configSchema.js +25 -1
- package/esm/configSchema.js.map +1 -1
- package/esm/drawxy.js +4 -4
- package/esm/drawxy.js.map +1 -1
- package/esm/index.d.ts +3 -307
- package/package.json +2 -2
- package/src/BigWigAdapter/__snapshots__/BigWigAdapter.test.ts.snap +14 -14
- package/src/BigWigAdapter/configSchema.ts +15 -1
- package/src/DensityRenderer/__snapshots__/DensityRenderer.test.js.snap +9 -3
- package/src/DensityRenderer/configSchema.ts +13 -2
- package/src/LinePlotRenderer/configSchema.ts +16 -2
- package/src/LinearWiggleDisplay/models/configSchema.ts +40 -2
- package/src/LinearWiggleDisplay/models/model.tsx +192 -12
- package/src/MultiDensityRenderer/configSchema.ts +13 -2
- package/src/MultiLineRenderer/configSchema.ts +18 -3
- package/src/MultiLinearWiggleDisplay/models/configSchema.ts +41 -1
- package/src/MultiQuantitativeTrack/configSchema.ts +23 -0
- package/src/MultiQuantitativeTrack/index.ts +3 -10
- package/src/MultiRowLineRenderer/configSchema.ts +19 -2
- package/src/MultiRowXYPlotRenderer/configSchema.ts +25 -2
- package/src/MultiWiggleAdapter/configSchema.ts +17 -1
- package/src/MultiXYPlotRenderer/configSchema.ts +25 -2
- package/src/QuantitativeTrack/configSchema.ts +23 -0
- package/src/QuantitativeTrack/index.ts +3 -10
- package/src/WiggleBaseRenderer.tsx +1 -1
- package/src/XYPlotRenderer/__snapshots__/XYPlotRenderer.test.js.snap +9 -3
- package/src/XYPlotRenderer/configSchema.ts +25 -2
- package/src/__snapshots__/index.test.js.snap +1 -1
- package/src/configSchema.ts +26 -1
- package/src/drawxy.ts +4 -4
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
getSession,
|
|
11
11
|
getContainingView,
|
|
12
12
|
isSelectionContainer,
|
|
13
|
+
Feature,
|
|
13
14
|
} from '@jbrowse/core/util'
|
|
14
15
|
import {
|
|
15
16
|
BaseLinearDisplay,
|
|
@@ -19,7 +20,6 @@ import { when } from 'mobx'
|
|
|
19
20
|
import { isAlive, types, Instance } from 'mobx-state-tree'
|
|
20
21
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
21
22
|
|
|
22
|
-
import { Feature } from '@jbrowse/core/util/simpleFeature'
|
|
23
23
|
import { axisPropsFromTickScale } from 'react-d3-axis-mod'
|
|
24
24
|
import {
|
|
25
25
|
getNiceDomain,
|
|
@@ -44,29 +44,78 @@ const rendererTypes = new Map([
|
|
|
44
44
|
|
|
45
45
|
type LGV = LinearGenomeViewModel
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
/**
|
|
48
|
+
* #stateModel LinearWiggleDisplay
|
|
49
|
+
* Extends `BaseLinearDisplay`
|
|
50
|
+
*/
|
|
51
|
+
function stateModelFactory(
|
|
48
52
|
pluginManager: PluginManager,
|
|
49
53
|
configSchema: AnyConfigurationSchemaType,
|
|
50
|
-
)
|
|
51
|
-
types
|
|
54
|
+
) {
|
|
55
|
+
return types
|
|
52
56
|
.compose(
|
|
53
57
|
'LinearWiggleDisplay',
|
|
54
58
|
BaseLinearDisplay,
|
|
55
59
|
types.model({
|
|
60
|
+
/**
|
|
61
|
+
* #property
|
|
62
|
+
*/
|
|
56
63
|
type: types.literal('LinearWiggleDisplay'),
|
|
64
|
+
/**
|
|
65
|
+
* #property
|
|
66
|
+
*/
|
|
57
67
|
configuration: ConfigurationReference(configSchema),
|
|
68
|
+
/**
|
|
69
|
+
* #property
|
|
70
|
+
*/
|
|
58
71
|
selectedRendering: types.optional(types.string, ''),
|
|
72
|
+
/**
|
|
73
|
+
* #property
|
|
74
|
+
*/
|
|
59
75
|
resolution: types.optional(types.number, 1),
|
|
76
|
+
/**
|
|
77
|
+
* #property
|
|
78
|
+
*/
|
|
60
79
|
fill: types.maybe(types.boolean),
|
|
80
|
+
/**
|
|
81
|
+
* #property
|
|
82
|
+
*/
|
|
61
83
|
minSize: types.maybe(types.number),
|
|
84
|
+
/**
|
|
85
|
+
* #property
|
|
86
|
+
*/
|
|
62
87
|
color: types.maybe(types.string),
|
|
88
|
+
/**
|
|
89
|
+
* #property
|
|
90
|
+
*/
|
|
63
91
|
posColor: types.maybe(types.string),
|
|
92
|
+
/**
|
|
93
|
+
* #property
|
|
94
|
+
*/
|
|
64
95
|
negColor: types.maybe(types.string),
|
|
96
|
+
/**
|
|
97
|
+
* #property
|
|
98
|
+
*/
|
|
65
99
|
summaryScoreMode: types.maybe(types.string),
|
|
100
|
+
/**
|
|
101
|
+
* #property
|
|
102
|
+
*/
|
|
66
103
|
rendererTypeNameState: types.maybe(types.string),
|
|
104
|
+
/**
|
|
105
|
+
* #property
|
|
106
|
+
*/
|
|
67
107
|
scale: types.maybe(types.string),
|
|
108
|
+
/**
|
|
109
|
+
* #property
|
|
110
|
+
*/
|
|
68
111
|
autoscale: types.maybe(types.string),
|
|
112
|
+
/**
|
|
113
|
+
* #property
|
|
114
|
+
*/
|
|
69
115
|
displayCrossHatches: types.maybe(types.boolean),
|
|
116
|
+
/**
|
|
117
|
+
* #property
|
|
118
|
+
*/
|
|
70
119
|
constraints: types.optional(
|
|
71
120
|
types.model({
|
|
72
121
|
max: types.maybe(types.number),
|
|
@@ -83,6 +132,9 @@ const stateModelFactory = (
|
|
|
83
132
|
statsFetchInProgress: undefined as undefined | AbortController,
|
|
84
133
|
}))
|
|
85
134
|
.actions(self => ({
|
|
135
|
+
/**
|
|
136
|
+
* #action
|
|
137
|
+
*/
|
|
86
138
|
updateStats(stats: { scoreMin: number; scoreMax: number }) {
|
|
87
139
|
const { scoreMin, scoreMax } = stats
|
|
88
140
|
const EPSILON = 0.000001
|
|
@@ -91,19 +143,31 @@ const stateModelFactory = (
|
|
|
91
143
|
Math.abs(self.stats.scoreMin - scoreMin) > EPSILON
|
|
92
144
|
) {
|
|
93
145
|
self.stats = { scoreMin, scoreMax }
|
|
94
|
-
self.statsReady = true
|
|
95
146
|
}
|
|
147
|
+
self.statsReady = true
|
|
96
148
|
},
|
|
149
|
+
/**
|
|
150
|
+
* #action
|
|
151
|
+
*/
|
|
97
152
|
setColor(color?: string) {
|
|
98
153
|
self.color = color
|
|
99
154
|
},
|
|
155
|
+
/**
|
|
156
|
+
* #action
|
|
157
|
+
*/
|
|
100
158
|
setPosColor(color?: string) {
|
|
101
159
|
self.posColor = color
|
|
102
160
|
},
|
|
161
|
+
/**
|
|
162
|
+
* #action
|
|
163
|
+
*/
|
|
103
164
|
setNegColor(color?: string) {
|
|
104
165
|
self.negColor = color
|
|
105
166
|
},
|
|
106
167
|
|
|
168
|
+
/**
|
|
169
|
+
* #action
|
|
170
|
+
*/
|
|
107
171
|
setLoading(aborter: AbortController) {
|
|
108
172
|
const { statsFetchInProgress: statsFetch } = self
|
|
109
173
|
if (statsFetch !== undefined && !statsFetch.signal.aborted) {
|
|
@@ -112,19 +176,29 @@ const stateModelFactory = (
|
|
|
112
176
|
self.statsFetchInProgress = aborter
|
|
113
177
|
},
|
|
114
178
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
179
|
+
/**
|
|
180
|
+
* #action
|
|
181
|
+
* this overrides the BaseLinearDisplayModel to avoid popping up a
|
|
182
|
+
* feature detail display, but still sets the feature selection on the
|
|
183
|
+
* model so listeners can detect a click
|
|
184
|
+
*/
|
|
118
185
|
selectFeature(feature: Feature) {
|
|
119
186
|
const session = getSession(self)
|
|
120
187
|
if (isSelectionContainer(session)) {
|
|
121
188
|
session.setSelection(feature)
|
|
122
189
|
}
|
|
123
190
|
},
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* #action
|
|
194
|
+
*/
|
|
124
195
|
setResolution(res: number) {
|
|
125
196
|
self.resolution = res
|
|
126
197
|
},
|
|
127
198
|
|
|
199
|
+
/**
|
|
200
|
+
* #action
|
|
201
|
+
*/
|
|
128
202
|
setFill(fill: number) {
|
|
129
203
|
if (fill === 0) {
|
|
130
204
|
self.fill = true
|
|
@@ -138,6 +212,9 @@ const stateModelFactory = (
|
|
|
138
212
|
}
|
|
139
213
|
},
|
|
140
214
|
|
|
215
|
+
/**
|
|
216
|
+
* #action
|
|
217
|
+
*/
|
|
141
218
|
toggleLogScale() {
|
|
142
219
|
if (self.scale !== 'log') {
|
|
143
220
|
self.scale = 'log'
|
|
@@ -146,51 +223,87 @@ const stateModelFactory = (
|
|
|
146
223
|
}
|
|
147
224
|
},
|
|
148
225
|
|
|
226
|
+
/**
|
|
227
|
+
* #action
|
|
228
|
+
*/
|
|
149
229
|
setScaleType(scale?: string) {
|
|
150
230
|
self.scale = scale
|
|
151
231
|
},
|
|
152
232
|
|
|
233
|
+
/**
|
|
234
|
+
* #action
|
|
235
|
+
*/
|
|
153
236
|
setSummaryScoreMode(val: string) {
|
|
154
237
|
self.summaryScoreMode = val
|
|
155
238
|
},
|
|
156
239
|
|
|
240
|
+
/**
|
|
241
|
+
* #action
|
|
242
|
+
*/
|
|
157
243
|
setAutoscale(val: string) {
|
|
158
244
|
self.autoscale = val
|
|
159
245
|
},
|
|
160
246
|
|
|
247
|
+
/**
|
|
248
|
+
* #action
|
|
249
|
+
*/
|
|
161
250
|
setMaxScore(val?: number) {
|
|
162
251
|
self.constraints.max = val
|
|
163
252
|
},
|
|
164
253
|
|
|
254
|
+
/**
|
|
255
|
+
* #action
|
|
256
|
+
*/
|
|
165
257
|
setRendererType(val: string) {
|
|
166
258
|
self.rendererTypeNameState = val
|
|
167
259
|
},
|
|
168
260
|
|
|
261
|
+
/**
|
|
262
|
+
* #action
|
|
263
|
+
*/
|
|
169
264
|
setMinScore(val?: number) {
|
|
170
265
|
self.constraints.min = val
|
|
171
266
|
},
|
|
172
267
|
|
|
268
|
+
/**
|
|
269
|
+
* #action
|
|
270
|
+
*/
|
|
173
271
|
toggleCrossHatches() {
|
|
174
272
|
self.displayCrossHatches = !self.displayCrossHatches
|
|
175
273
|
},
|
|
176
274
|
|
|
275
|
+
/**
|
|
276
|
+
* #action
|
|
277
|
+
*/
|
|
177
278
|
setCrossHatches(cross: boolean) {
|
|
178
279
|
self.displayCrossHatches = cross
|
|
179
280
|
},
|
|
180
281
|
}))
|
|
181
282
|
.views(self => ({
|
|
283
|
+
/**
|
|
284
|
+
* #getter
|
|
285
|
+
*/
|
|
182
286
|
get TooltipComponent() {
|
|
183
287
|
return Tooltip as unknown as React.FC
|
|
184
288
|
},
|
|
185
289
|
|
|
290
|
+
/**
|
|
291
|
+
* #getter
|
|
292
|
+
*/
|
|
186
293
|
get adapterTypeName() {
|
|
187
294
|
return self.adapterConfig.type
|
|
188
295
|
},
|
|
189
296
|
|
|
297
|
+
/**
|
|
298
|
+
* #getter
|
|
299
|
+
*/
|
|
190
300
|
get rendererTypeNameSimple() {
|
|
191
301
|
return self.rendererTypeNameState || getConf(self, 'defaultRendering')
|
|
192
302
|
},
|
|
193
303
|
|
|
304
|
+
/**
|
|
305
|
+
* #getter
|
|
306
|
+
*/
|
|
194
307
|
get rendererTypeName() {
|
|
195
308
|
const name = this.rendererTypeNameSimple
|
|
196
309
|
const rendererType = rendererTypes.get(name)
|
|
@@ -200,24 +313,39 @@ const stateModelFactory = (
|
|
|
200
313
|
return rendererType
|
|
201
314
|
},
|
|
202
315
|
|
|
203
|
-
|
|
316
|
+
/**
|
|
317
|
+
* #getter
|
|
318
|
+
* subclasses can define these, as snpcoverage track does
|
|
319
|
+
*/
|
|
204
320
|
get filters() {
|
|
205
321
|
return undefined
|
|
206
322
|
},
|
|
207
323
|
|
|
324
|
+
/**
|
|
325
|
+
* #getter
|
|
326
|
+
*/
|
|
208
327
|
get scaleType() {
|
|
209
328
|
return self.scale || getConf(self, 'scaleType')
|
|
210
329
|
},
|
|
211
330
|
|
|
331
|
+
/**
|
|
332
|
+
* #getter
|
|
333
|
+
*/
|
|
212
334
|
get maxScore() {
|
|
213
335
|
return self.constraints.max ?? getConf(self, 'maxScore')
|
|
214
336
|
},
|
|
215
337
|
|
|
338
|
+
/**
|
|
339
|
+
* #getter
|
|
340
|
+
*/
|
|
216
341
|
get minScore() {
|
|
217
342
|
return self.constraints.min ?? getConf(self, 'minScore')
|
|
218
343
|
},
|
|
219
344
|
}))
|
|
220
345
|
.views(self => ({
|
|
346
|
+
/**
|
|
347
|
+
* #getter
|
|
348
|
+
*/
|
|
221
349
|
get rendererConfig() {
|
|
222
350
|
const configBlob =
|
|
223
351
|
getConf(self, ['renderers', self.rendererTypeName]) || {}
|
|
@@ -254,14 +382,23 @@ const stateModelFactory = (
|
|
|
254
382
|
.views(self => {
|
|
255
383
|
let oldDomain: [number, number] = [0, 0]
|
|
256
384
|
return {
|
|
385
|
+
/**
|
|
386
|
+
* #getter
|
|
387
|
+
*/
|
|
257
388
|
get filled() {
|
|
258
389
|
const { fill, rendererConfig: conf } = self
|
|
259
390
|
return fill ?? readConfObject(conf, 'filled')
|
|
260
391
|
},
|
|
392
|
+
/**
|
|
393
|
+
* #getter
|
|
394
|
+
*/
|
|
261
395
|
get summaryScoreModeSetting() {
|
|
262
396
|
const { summaryScoreMode, rendererConfig: conf } = self
|
|
263
397
|
return summaryScoreMode ?? readConfObject(conf, 'summaryScoreMode')
|
|
264
398
|
},
|
|
399
|
+
/**
|
|
400
|
+
* #getter
|
|
401
|
+
*/
|
|
265
402
|
get domain() {
|
|
266
403
|
const { stats, scaleType, minScore, maxScore } = self
|
|
267
404
|
|
|
@@ -284,12 +421,18 @@ const stateModelFactory = (
|
|
|
284
421
|
return oldDomain
|
|
285
422
|
},
|
|
286
423
|
|
|
424
|
+
/**
|
|
425
|
+
* #getter
|
|
426
|
+
*/
|
|
287
427
|
get needsScalebar() {
|
|
288
428
|
return (
|
|
289
429
|
self.rendererTypeName === 'XYPlotRenderer' ||
|
|
290
430
|
self.rendererTypeName === 'LinePlotRenderer'
|
|
291
431
|
)
|
|
292
432
|
},
|
|
433
|
+
/**
|
|
434
|
+
* #getter
|
|
435
|
+
*/
|
|
293
436
|
get scaleOpts() {
|
|
294
437
|
return {
|
|
295
438
|
domain: this.domain,
|
|
@@ -300,14 +443,23 @@ const stateModelFactory = (
|
|
|
300
443
|
}
|
|
301
444
|
},
|
|
302
445
|
|
|
446
|
+
/**
|
|
447
|
+
* #getter
|
|
448
|
+
*/
|
|
303
449
|
get canHaveFill() {
|
|
304
450
|
return self.rendererTypeName === 'XYPlotRenderer'
|
|
305
451
|
},
|
|
306
452
|
|
|
453
|
+
/**
|
|
454
|
+
* #getter
|
|
455
|
+
*/
|
|
307
456
|
get autoscaleType() {
|
|
308
457
|
return self.autoscale ?? getConf(self, 'autoscale')
|
|
309
458
|
},
|
|
310
459
|
|
|
460
|
+
/**
|
|
461
|
+
* #getter
|
|
462
|
+
*/
|
|
311
463
|
get displayCrossHatchesSetting() {
|
|
312
464
|
const { displayCrossHatches: hatches, rendererConfig: conf } = self
|
|
313
465
|
return hatches ?? readConfObject(conf, 'displayCrossHatches')
|
|
@@ -315,6 +467,9 @@ const stateModelFactory = (
|
|
|
315
467
|
}
|
|
316
468
|
})
|
|
317
469
|
.views(self => ({
|
|
470
|
+
/**
|
|
471
|
+
* #getter
|
|
472
|
+
*/
|
|
318
473
|
get ticks() {
|
|
319
474
|
const { scaleType, domain, height } = self
|
|
320
475
|
const minimalTicks = getConf(self, 'minimalTicks')
|
|
@@ -332,14 +487,20 @@ const stateModelFactory = (
|
|
|
332
487
|
: ticks
|
|
333
488
|
},
|
|
334
489
|
|
|
490
|
+
/**
|
|
491
|
+
* #getter
|
|
492
|
+
*/
|
|
335
493
|
get adapterCapabilities() {
|
|
336
|
-
|
|
337
|
-
|
|
494
|
+
const type = self.adapterTypeName
|
|
495
|
+
return pluginManager.getAdapterType(type).adapterCapabilities
|
|
338
496
|
},
|
|
339
497
|
}))
|
|
340
498
|
.views(self => {
|
|
341
499
|
const { renderProps: superRenderProps } = self
|
|
342
500
|
return {
|
|
501
|
+
/**
|
|
502
|
+
* #method
|
|
503
|
+
*/
|
|
343
504
|
renderProps() {
|
|
344
505
|
const superProps = superRenderProps()
|
|
345
506
|
const { filters, ticks, height, resolution, scaleOpts } = self
|
|
@@ -357,14 +518,23 @@ const stateModelFactory = (
|
|
|
357
518
|
filters,
|
|
358
519
|
}
|
|
359
520
|
},
|
|
521
|
+
/**
|
|
522
|
+
* #getter
|
|
523
|
+
*/
|
|
360
524
|
get hasResolution() {
|
|
361
525
|
return self.adapterCapabilities.includes('hasResolution')
|
|
362
526
|
},
|
|
363
527
|
|
|
528
|
+
/**
|
|
529
|
+
* #getter
|
|
530
|
+
*/
|
|
364
531
|
get hasGlobalStats() {
|
|
365
532
|
return self.adapterCapabilities.includes('hasGlobalStats')
|
|
366
533
|
},
|
|
367
534
|
|
|
535
|
+
/**
|
|
536
|
+
* #getter
|
|
537
|
+
*/
|
|
368
538
|
get fillSetting() {
|
|
369
539
|
if (self.filled) {
|
|
370
540
|
return 0
|
|
@@ -380,6 +550,9 @@ const stateModelFactory = (
|
|
|
380
550
|
const { trackMenuItems: superTrackMenuItems } = self
|
|
381
551
|
const hasRenderings = getConf(self, 'defaultRendering')
|
|
382
552
|
return {
|
|
553
|
+
/**
|
|
554
|
+
* #method
|
|
555
|
+
*/
|
|
383
556
|
trackMenuItems() {
|
|
384
557
|
return [
|
|
385
558
|
...superTrackMenuItems(),
|
|
@@ -501,7 +674,10 @@ const stateModelFactory = (
|
|
|
501
674
|
type ExportSvgOpts = Parameters<typeof superRenderSvg>[0]
|
|
502
675
|
|
|
503
676
|
return {
|
|
504
|
-
|
|
677
|
+
/**
|
|
678
|
+
* #action
|
|
679
|
+
* re-runs stats and refresh whole display on reload
|
|
680
|
+
*/
|
|
505
681
|
async reload() {
|
|
506
682
|
self.setError()
|
|
507
683
|
const aborter = new AbortController()
|
|
@@ -522,6 +698,9 @@ const stateModelFactory = (
|
|
|
522
698
|
afterAttach() {
|
|
523
699
|
statsAutorun(self)
|
|
524
700
|
},
|
|
701
|
+
/**
|
|
702
|
+
* #action
|
|
703
|
+
*/
|
|
525
704
|
async renderSvg(opts: ExportSvgOpts) {
|
|
526
705
|
await when(() => self.statsReady && !!self.regionCannotBeRenderedText)
|
|
527
706
|
const { needsScalebar, stats } = self
|
|
@@ -542,6 +721,7 @@ const stateModelFactory = (
|
|
|
542
721
|
},
|
|
543
722
|
}
|
|
544
723
|
})
|
|
724
|
+
}
|
|
545
725
|
|
|
546
726
|
export type WiggleDisplayStateModel = ReturnType<typeof stateModelFactory>
|
|
547
727
|
export type WiggleDisplayModel = Instance<WiggleDisplayStateModel>
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
-
import
|
|
2
|
+
import baseWiggleRendererConfigSchema from '../configSchema'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* #config MultiDensityRenderer
|
|
6
|
+
*/
|
|
7
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
3
8
|
|
|
4
9
|
const configSchema = ConfigurationSchema(
|
|
5
10
|
'MultiDensityRenderer',
|
|
6
11
|
{},
|
|
7
|
-
{
|
|
12
|
+
{
|
|
13
|
+
/**
|
|
14
|
+
* #baseConfiguration
|
|
15
|
+
*/
|
|
16
|
+
baseConfiguration: baseWiggleRendererConfigSchema,
|
|
17
|
+
explicitlyTyped: true,
|
|
18
|
+
},
|
|
8
19
|
)
|
|
9
20
|
|
|
10
21
|
export default configSchema
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
2
|
import { types } from 'mobx-state-tree'
|
|
3
|
-
import
|
|
3
|
+
import baseWiggleRendererConfigSchema from '../configSchema'
|
|
4
|
+
/**
|
|
5
|
+
* #config MultiLineRenderer
|
|
6
|
+
*/
|
|
7
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
4
8
|
|
|
5
9
|
const configSchema = ConfigurationSchema(
|
|
6
10
|
'MultiLineRenderer',
|
|
7
11
|
{
|
|
12
|
+
/**
|
|
13
|
+
* #slot
|
|
14
|
+
*/
|
|
8
15
|
displayCrossHatches: {
|
|
9
16
|
type: 'boolean',
|
|
10
17
|
description: 'choose to draw cross hatches (sideways lines)',
|
|
11
18
|
defaultValue: false,
|
|
12
19
|
},
|
|
13
|
-
|
|
20
|
+
/**
|
|
21
|
+
* #slot
|
|
22
|
+
*/
|
|
14
23
|
summaryScoreMode: {
|
|
15
24
|
type: 'stringEnum',
|
|
16
25
|
model: types.enumeration('Score type', ['max', 'min', 'avg', 'whiskers']),
|
|
@@ -19,6 +28,12 @@ const configSchema = ConfigurationSchema(
|
|
|
19
28
|
defaultValue: 'avg',
|
|
20
29
|
},
|
|
21
30
|
},
|
|
22
|
-
{
|
|
31
|
+
{
|
|
32
|
+
/**
|
|
33
|
+
* #baseConfiguration
|
|
34
|
+
*/
|
|
35
|
+
baseConfiguration: baseWiggleRendererConfigSchema,
|
|
36
|
+
explicitlyTyped: true,
|
|
37
|
+
},
|
|
23
38
|
)
|
|
24
39
|
export default configSchema
|
|
@@ -3,6 +3,11 @@ import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-vie
|
|
|
3
3
|
import { types } from 'mobx-state-tree'
|
|
4
4
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* #config MultiLinearWiggleDisplay
|
|
8
|
+
*/
|
|
9
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
10
|
+
|
|
6
11
|
export default function WiggleConfigFactory(pluginManager: PluginManager) {
|
|
7
12
|
const MultiXYPlotRendererConfigSchema = pluginManager.getRendererType(
|
|
8
13
|
'MultiXYPlotRenderer',
|
|
@@ -22,6 +27,9 @@ export default function WiggleConfigFactory(pluginManager: PluginManager) {
|
|
|
22
27
|
return ConfigurationSchema(
|
|
23
28
|
'MultiLinearWiggleDisplay',
|
|
24
29
|
{
|
|
30
|
+
/**
|
|
31
|
+
* #slot
|
|
32
|
+
*/
|
|
25
33
|
autoscale: {
|
|
26
34
|
type: 'stringEnum',
|
|
27
35
|
defaultValue: 'local',
|
|
@@ -35,40 +43,63 @@ export default function WiggleConfigFactory(pluginManager: PluginManager) {
|
|
|
35
43
|
description:
|
|
36
44
|
'global/local using their min/max values or w/ standard deviations (globalsd/localsd)',
|
|
37
45
|
},
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* #slot
|
|
49
|
+
*/
|
|
38
50
|
minimalTicks: {
|
|
39
51
|
type: 'boolean',
|
|
40
52
|
defaultValue: false,
|
|
41
53
|
description: 'use the minimal amount of ticks',
|
|
42
54
|
},
|
|
43
55
|
|
|
56
|
+
/**
|
|
57
|
+
* #slot
|
|
58
|
+
*/
|
|
44
59
|
minScore: {
|
|
45
60
|
type: 'number',
|
|
46
61
|
defaultValue: Number.MIN_VALUE,
|
|
47
62
|
description: 'minimum value for the y-scale',
|
|
48
63
|
},
|
|
64
|
+
/**
|
|
65
|
+
* #slot
|
|
66
|
+
*/
|
|
49
67
|
maxScore: {
|
|
50
68
|
type: 'number',
|
|
51
69
|
description: 'maximum value for the y-scale',
|
|
52
70
|
defaultValue: Number.MAX_VALUE,
|
|
53
71
|
},
|
|
72
|
+
/**
|
|
73
|
+
* #slot
|
|
74
|
+
*/
|
|
54
75
|
numStdDev: {
|
|
55
76
|
type: 'number',
|
|
56
77
|
description:
|
|
57
78
|
'number of standard deviations to use for autoscale types globalsd or localsd',
|
|
58
79
|
defaultValue: 3,
|
|
59
80
|
},
|
|
81
|
+
/**
|
|
82
|
+
* #slot
|
|
83
|
+
*/
|
|
60
84
|
scaleType: {
|
|
61
85
|
type: 'stringEnum',
|
|
62
86
|
model: types.enumeration('Scale type', ['linear', 'log']), // todo zscale
|
|
63
87
|
description: 'The type of scale to use',
|
|
64
88
|
defaultValue: 'linear',
|
|
65
89
|
},
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* #slot
|
|
93
|
+
*/
|
|
66
94
|
inverted: {
|
|
67
95
|
type: 'boolean',
|
|
68
96
|
description: 'draw upside down',
|
|
69
97
|
defaultValue: false,
|
|
70
98
|
},
|
|
71
99
|
|
|
100
|
+
/**
|
|
101
|
+
* #slot
|
|
102
|
+
*/
|
|
72
103
|
defaultRendering: {
|
|
73
104
|
type: 'stringEnum',
|
|
74
105
|
model: types.enumeration('Rendering', [
|
|
@@ -81,6 +112,9 @@ export default function WiggleConfigFactory(pluginManager: PluginManager) {
|
|
|
81
112
|
defaultValue: 'multirowxy',
|
|
82
113
|
},
|
|
83
114
|
|
|
115
|
+
/**
|
|
116
|
+
* #slot
|
|
117
|
+
*/
|
|
84
118
|
renderers: ConfigurationSchema('RenderersConfiguration', {
|
|
85
119
|
MultiXYPlotRenderer: MultiXYPlotRendererConfigSchema,
|
|
86
120
|
MultiDensityRenderer: MultiDensityRendererConfigSchema,
|
|
@@ -89,6 +123,12 @@ export default function WiggleConfigFactory(pluginManager: PluginManager) {
|
|
|
89
123
|
MultiRowLineRenderer: MultiRowLineRendererConfigSchema,
|
|
90
124
|
}),
|
|
91
125
|
},
|
|
92
|
-
{
|
|
126
|
+
{
|
|
127
|
+
/**
|
|
128
|
+
* #baseConfiguration
|
|
129
|
+
*/
|
|
130
|
+
baseConfiguration: baseLinearDisplayConfigSchema,
|
|
131
|
+
explicitlyTyped: true,
|
|
132
|
+
},
|
|
93
133
|
)
|
|
94
134
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
+
import { createBaseTrackConfig } from '@jbrowse/core/pluggableElementTypes/models'
|
|
3
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* #config MultiQuantitativeTrack
|
|
7
|
+
*/
|
|
8
|
+
function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
9
|
+
|
|
10
|
+
const configSchema = (pluginManager: PluginManager) => {
|
|
11
|
+
return ConfigurationSchema(
|
|
12
|
+
'MultiQuantitativeTrack',
|
|
13
|
+
{},
|
|
14
|
+
{
|
|
15
|
+
/**
|
|
16
|
+
* #baseConfiguration
|
|
17
|
+
*/
|
|
18
|
+
baseConfiguration: createBaseTrackConfig(pluginManager),
|
|
19
|
+
},
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default configSchema
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
createBaseTrackConfig,
|
|
4
|
-
createBaseTrackModel,
|
|
5
|
-
} from '@jbrowse/core/pluggableElementTypes/models'
|
|
1
|
+
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models'
|
|
6
2
|
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType'
|
|
7
3
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
4
|
+
import configSchemaF from './configSchema'
|
|
8
5
|
|
|
9
6
|
export default (pluginManager: PluginManager) => {
|
|
10
7
|
pluginManager.addTrackType(() => {
|
|
11
|
-
const configSchema =
|
|
12
|
-
'MultiQuantitativeTrack',
|
|
13
|
-
{},
|
|
14
|
-
{ baseConfiguration: createBaseTrackConfig(pluginManager) },
|
|
15
|
-
)
|
|
8
|
+
const configSchema = configSchemaF(pluginManager)
|
|
16
9
|
return new TrackType({
|
|
17
10
|
name: 'MultiQuantitativeTrack',
|
|
18
11
|
configSchema,
|