@jbrowse/plugin-wiggle 2.16.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.js +2 -1
  2. package/dist/BigWigAdapter/configSchema.d.ts +8 -0
  3. package/dist/BigWigAdapter/configSchema.js +8 -0
  4. package/dist/LinearWiggleDisplay/components/Tooltip.js +1 -1
  5. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  6. package/dist/LinearWiggleDisplay/{models/configSchema.js → configSchema.js} +2 -2
  7. package/dist/LinearWiggleDisplay/index.d.ts +1 -1
  8. package/dist/LinearWiggleDisplay/index.js +3 -3
  9. package/{esm/LinearWiggleDisplay/models → dist/LinearWiggleDisplay}/model.d.ts +22 -6
  10. package/dist/LinearWiggleDisplay/{models/model.js → model.js} +82 -47
  11. package/dist/LinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -1
  12. package/dist/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +1 -1
  13. package/dist/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -1
  14. package/dist/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  15. package/dist/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -1
  16. package/dist/MultiLinearWiggleDisplay/components/util.d.ts +1 -1
  17. package/dist/MultiLinearWiggleDisplay/{models/configSchema.js → configSchema.js} +2 -2
  18. package/dist/MultiLinearWiggleDisplay/index.js +2 -2
  19. package/dist/MultiLinearWiggleDisplay/{models/model.d.ts → model.d.ts} +30 -12
  20. package/dist/MultiLinearWiggleDisplay/{models/model.js → model.js} +118 -87
  21. package/dist/MultiLinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +1 -1
  22. package/dist/MultiRowXYPlotRenderer/configSchema.js +1 -1
  23. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -1
  24. package/dist/MultiWiggleAdapter/MultiWiggleAdapter.js +4 -2
  25. package/dist/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +52 -44
  26. package/dist/MultiXYPlotRenderer/configSchema.js +1 -1
  27. package/dist/WiggleBaseRenderer.d.ts +1 -1
  28. package/dist/XYPlotRenderer/configSchema.js +1 -1
  29. package/dist/getMultiWiggleSourcesAutorun.d.ts +17 -0
  30. package/dist/getMultiWiggleSourcesAutorun.js +35 -0
  31. package/dist/getQuantitativeStats.d.ts +13 -0
  32. package/dist/getQuantitativeStats.js +78 -0
  33. package/dist/getQuantitativeStatsAutorun.d.ts +13 -0
  34. package/dist/getQuantitativeStatsAutorun.js +37 -0
  35. package/dist/index.d.ts +2 -2
  36. package/{esm/shared/modelShared.d.ts → dist/shared/SharedWiggleMixin.d.ts} +17 -3
  37. package/dist/shared/{modelShared.js → SharedWiggleMixin.js} +21 -10
  38. package/dist/util.d.ts +5 -29
  39. package/dist/util.js +4 -100
  40. package/esm/BigWigAdapter/BigWigAdapter.js +2 -1
  41. package/esm/BigWigAdapter/configSchema.d.ts +8 -0
  42. package/esm/BigWigAdapter/configSchema.js +8 -0
  43. package/esm/LinearWiggleDisplay/components/Tooltip.js +1 -1
  44. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  45. package/esm/LinearWiggleDisplay/{models/configSchema.js → configSchema.js} +1 -1
  46. package/esm/LinearWiggleDisplay/index.d.ts +1 -1
  47. package/esm/LinearWiggleDisplay/index.js +3 -3
  48. package/{dist/LinearWiggleDisplay/models → esm/LinearWiggleDisplay}/model.d.ts +22 -6
  49. package/esm/LinearWiggleDisplay/{models/model.js → model.js} +82 -47
  50. package/esm/LinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +2 -1
  51. package/esm/MultiLinearWiggleDisplay/components/ColorLegend.d.ts +1 -1
  52. package/esm/MultiLinearWiggleDisplay/components/ScoreLegend.d.ts +1 -1
  53. package/esm/MultiLinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +1 -1
  54. package/esm/MultiLinearWiggleDisplay/components/YScaleBars.d.ts +1 -1
  55. package/esm/MultiLinearWiggleDisplay/components/util.d.ts +1 -1
  56. package/esm/MultiLinearWiggleDisplay/{models/configSchema.js → configSchema.js} +1 -1
  57. package/esm/MultiLinearWiggleDisplay/index.js +2 -2
  58. package/esm/MultiLinearWiggleDisplay/{models/model.d.ts → model.d.ts} +30 -12
  59. package/esm/MultiLinearWiggleDisplay/{models/model.js → model.js} +119 -88
  60. package/esm/MultiLinearWiggleDisplay/{models/renderSvg.js → renderSvg.js} +1 -1
  61. package/esm/MultiRowXYPlotRenderer/configSchema.js +1 -1
  62. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.d.ts +1 -1
  63. package/esm/MultiWiggleAdapter/MultiWiggleAdapter.js +4 -2
  64. package/esm/MultiWiggleAddTrackWorkflow/AddTrackWorkflow.js +52 -44
  65. package/esm/MultiXYPlotRenderer/configSchema.js +1 -1
  66. package/esm/WiggleBaseRenderer.d.ts +1 -1
  67. package/esm/XYPlotRenderer/configSchema.js +1 -1
  68. package/esm/getMultiWiggleSourcesAutorun.d.ts +17 -0
  69. package/esm/getMultiWiggleSourcesAutorun.js +32 -0
  70. package/esm/getQuantitativeStats.d.ts +13 -0
  71. package/esm/getQuantitativeStats.js +75 -0
  72. package/esm/getQuantitativeStatsAutorun.d.ts +13 -0
  73. package/esm/getQuantitativeStatsAutorun.js +34 -0
  74. package/esm/index.d.ts +2 -2
  75. package/{dist/shared/modelShared.d.ts → esm/shared/SharedWiggleMixin.d.ts} +17 -3
  76. package/esm/shared/{modelShared.js → SharedWiggleMixin.js} +21 -10
  77. package/esm/util.d.ts +5 -29
  78. package/esm/util.js +4 -98
  79. package/package.json +2 -2
  80. /package/dist/LinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
  81. /package/dist/LinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +0 -0
  82. /package/dist/MultiLinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
  83. /package/dist/MultiLinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +0 -0
  84. /package/dist/shared/{configShared.d.ts → SharedWiggleConfigSchema.d.ts} +0 -0
  85. /package/dist/shared/{configShared.js → SharedWiggleConfigSchema.js} +0 -0
  86. /package/esm/LinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
  87. /package/esm/LinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +0 -0
  88. /package/esm/MultiLinearWiggleDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
  89. /package/esm/MultiLinearWiggleDisplay/{models/renderSvg.d.ts → renderSvg.d.ts} +0 -0
  90. /package/esm/shared/{configShared.d.ts → SharedWiggleConfigSchema.d.ts} +0 -0
  91. /package/esm/shared/{configShared.js → SharedWiggleConfigSchema.js} +0 -0
package/esm/util.js CHANGED
@@ -1,9 +1,4 @@
1
1
  import { scaleLinear, scaleLog, scaleQuantize, } from '@mui/x-charts-vendor/d3-scale';
2
- import { autorun } from 'mobx';
3
- import { isAbortException, getSession, getContainingView, } from '@jbrowse/core/util';
4
- import { getRpcSessionId } from '@jbrowse/core/util/tracks';
5
- import { addDisposer, isAlive } from 'mobx-state-tree';
6
- import { getConf } from '@jbrowse/core/configuration';
7
2
  export const YSCALEBAR_LABEL_OFFSET = 5;
8
3
  /**
9
4
  * produces a d3-scale from arguments. applies a "nice domain" adjustment
@@ -44,7 +39,8 @@ export function getScale({ domain = [], range = [], scaleType, pivotValue, inver
44
39
  return scale;
45
40
  }
46
41
  /**
47
- * gets the origin for drawing the graph. for linear this is 0, for log this is arbitrarily set to log(1)==0
42
+ * gets the origin for drawing the graph. for linear this is 0, for log this is
43
+ * arbitrarily set to log(1)==0
48
44
  *
49
45
  * @param scaleType -
50
46
  */
@@ -67,8 +63,8 @@ export function getOrigin(scaleType /* , pivot, stats */) {
67
63
  return 0;
68
64
  }
69
65
  /**
70
- * produces a "nice" domain that actually rounds down to 0 for the min
71
- * or 0 to the max depending on if all values are positive or negative
66
+ * produces a "nice" domain that actually rounds down to 0 for the min or 0 to
67
+ * the max depending on if all values are positive or negative
72
68
  *
73
69
  * @param object - containing attributes
74
70
  * - domain [min,max]
@@ -121,96 +117,6 @@ export function getNiceDomain({ scaleType, domain, bounds, }) {
121
117
  scale.nice();
122
118
  return scale.domain();
123
119
  }
124
- export async function getQuantitativeStats(self, opts) {
125
- const { rpcManager } = getSession(self);
126
- const numStdDev = getConf(self, 'numStdDev') || 3;
127
- const { adapterConfig, autoscaleType } = self;
128
- const sessionId = getRpcSessionId(self);
129
- const params = {
130
- sessionId,
131
- adapterConfig,
132
- statusCallback: (message) => {
133
- if (isAlive(self)) {
134
- self.setMessage(message);
135
- }
136
- },
137
- ...opts,
138
- };
139
- if (autoscaleType === 'global' || autoscaleType === 'globalsd') {
140
- const results = (await rpcManager.call(sessionId, 'WiggleGetGlobalQuantitativeStats', params));
141
- const { scoreMin, scoreMean, scoreStdDev } = results;
142
- // globalsd uses heuristic to avoid unnecessary scoreMin<0
143
- // if the scoreMin is never less than 0
144
- // helps with most coverage bigwigs just being >0
145
- return autoscaleType === 'globalsd'
146
- ? {
147
- ...results,
148
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - numStdDev * scoreStdDev,
149
- scoreMax: scoreMean + numStdDev * scoreStdDev,
150
- }
151
- : results;
152
- }
153
- if (autoscaleType === 'local' || autoscaleType === 'localsd') {
154
- const { dynamicBlocks, bpPerPx } = getContainingView(self);
155
- const results = (await rpcManager.call(sessionId, 'WiggleGetMultiRegionQuantitativeStats', {
156
- ...params,
157
- regions: dynamicBlocks.contentBlocks.map(region => {
158
- const { start, end } = region;
159
- return {
160
- ...JSON.parse(JSON.stringify(region)),
161
- start: Math.floor(start),
162
- end: Math.ceil(end),
163
- };
164
- }),
165
- bpPerPx,
166
- }));
167
- const { scoreMin, scoreMean, scoreStdDev } = results;
168
- // localsd uses heuristic to avoid unnecessary scoreMin<0 if the
169
- // scoreMin is never less than 0 helps with most coverage bigwigs
170
- // just being >0
171
- return autoscaleType === 'localsd'
172
- ? {
173
- ...results,
174
- scoreMin: scoreMin >= 0 ? 0 : scoreMean - numStdDev * scoreStdDev,
175
- scoreMax: scoreMean + numStdDev * scoreStdDev,
176
- }
177
- : results;
178
- }
179
- if (autoscaleType === 'zscale') {
180
- return rpcManager.call(sessionId, 'WiggleGetGlobalQuantitativeStats', params);
181
- }
182
- throw new Error(`invalid autoscaleType '${autoscaleType}'`);
183
- }
184
- export function quantitativeStatsAutorun(self) {
185
- addDisposer(self, autorun(async () => {
186
- try {
187
- const aborter = new AbortController();
188
- const view = getContainingView(self);
189
- self.setLoading(aborter);
190
- if (!view.initialized ||
191
- !self.featureDensityStatsReady ||
192
- self.regionTooLarge ||
193
- self.error) {
194
- return;
195
- }
196
- const statsRegion = JSON.stringify(view.dynamicBlocks);
197
- const wiggleStats = await getQuantitativeStats(self, {
198
- signal: aborter.signal,
199
- filters: [],
200
- ...self.renderProps(),
201
- });
202
- if (isAlive(self)) {
203
- self.updateQuantitativeStats(wiggleStats, statsRegion);
204
- }
205
- }
206
- catch (e) {
207
- if (!isAbortException(e) && isAlive(self)) {
208
- console.error(e);
209
- self.setError(e);
210
- }
211
- }
212
- }, { delay: 1000 }));
213
- }
214
120
  export function toP(s = 0) {
215
121
  return +(+s).toPrecision(6);
216
122
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-wiggle",
3
- "version": "2.16.0",
3
+ "version": "2.17.0",
4
4
  "description": "JBrowse 2 wiggle adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -65,5 +65,5 @@
65
65
  "distModule": "esm/index.js",
66
66
  "srcModule": "src/index.ts",
67
67
  "module": "esm/index.js",
68
- "gitHead": "1e6d4fbc27ce684eed19e3c217f34bd2da24ab75"
68
+ "gitHead": "eed30b5e671f8f7823652d7cecc51aa89226de46"
69
69
  }