@jbrowse/plugin-wiggle 1.7.11 → 2.0.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 (138) hide show
  1. package/dist/BigWigAdapter/BigWigAdapter.js +176 -284
  2. package/dist/BigWigAdapter/BigWigAdapter.js.map +1 -0
  3. package/dist/BigWigAdapter/configSchema.js +12 -21
  4. package/dist/BigWigAdapter/configSchema.js.map +1 -0
  5. package/dist/BigWigAdapter/index.js +8 -14
  6. package/dist/BigWigAdapter/index.js.map +1 -0
  7. package/dist/DensityRenderer/index.d.ts +1 -1
  8. package/dist/DensityRenderer/index.js +152 -133
  9. package/dist/DensityRenderer/index.js.map +1 -0
  10. package/dist/LinePlotRenderer/LinePlotRenderer.d.ts +1 -1
  11. package/dist/LinePlotRenderer/LinePlotRenderer.js +182 -168
  12. package/dist/LinePlotRenderer/LinePlotRenderer.js.map +1 -0
  13. package/dist/LinePlotRenderer/index.js +19 -33
  14. package/dist/LinePlotRenderer/index.js.map +1 -0
  15. package/dist/LinearWiggleDisplay/components/SetColorDialog.js +95 -105
  16. package/dist/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  17. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js +86 -107
  18. package/dist/LinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  19. package/dist/LinearWiggleDisplay/components/Tooltip.js +147 -152
  20. package/dist/LinearWiggleDisplay/components/Tooltip.js.map +1 -0
  21. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js +44 -50
  22. package/dist/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  23. package/dist/LinearWiggleDisplay/components/YScaleBar.js +24 -31
  24. package/dist/LinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  25. package/dist/LinearWiggleDisplay/index.js +13 -42
  26. package/dist/LinearWiggleDisplay/index.js.map +1 -0
  27. package/dist/LinearWiggleDisplay/models/configSchema.js +65 -69
  28. package/dist/LinearWiggleDisplay/models/configSchema.js.map +1 -0
  29. package/dist/LinearWiggleDisplay/models/model.d.ts +15 -13
  30. package/dist/LinearWiggleDisplay/models/model.js +585 -696
  31. package/dist/LinearWiggleDisplay/models/model.js.map +1 -0
  32. package/dist/WiggleBaseRenderer.d.ts +3 -3
  33. package/dist/WiggleBaseRenderer.js +119 -129
  34. package/dist/WiggleBaseRenderer.js.map +1 -0
  35. package/dist/WiggleRPC/rpcMethods.js +182 -288
  36. package/dist/WiggleRPC/rpcMethods.js.map +1 -0
  37. package/dist/WiggleRendering.js +107 -102
  38. package/dist/WiggleRendering.js.map +1 -0
  39. package/dist/XYPlotRenderer/XYPlotRenderer.d.ts +1 -1
  40. package/dist/XYPlotRenderer/XYPlotRenderer.js +250 -194
  41. package/dist/XYPlotRenderer/XYPlotRenderer.js.map +1 -0
  42. package/dist/XYPlotRenderer/index.js +30 -33
  43. package/dist/XYPlotRenderer/index.js.map +1 -0
  44. package/dist/configSchema.js +47 -74
  45. package/dist/configSchema.js.map +1 -0
  46. package/dist/index.d.ts +115 -64
  47. package/dist/index.js +167 -242
  48. package/dist/index.js.map +1 -0
  49. package/dist/util.js +112 -143
  50. package/dist/util.js.map +1 -0
  51. package/esm/BigWigAdapter/BigWigAdapter.d.ts +24 -0
  52. package/esm/BigWigAdapter/BigWigAdapter.js +62 -0
  53. package/esm/BigWigAdapter/BigWigAdapter.js.map +1 -0
  54. package/{dist/LinePlotRenderer → esm/BigWigAdapter}/configSchema.d.ts +0 -0
  55. package/esm/BigWigAdapter/configSchema.js +11 -0
  56. package/esm/BigWigAdapter/configSchema.js.map +1 -0
  57. package/esm/BigWigAdapter/index.d.ts +1 -0
  58. package/esm/BigWigAdapter/index.js +2 -0
  59. package/esm/BigWigAdapter/index.js.map +1 -0
  60. package/esm/DensityRenderer/index.d.ts +6 -0
  61. package/esm/DensityRenderer/index.js +39 -0
  62. package/esm/DensityRenderer/index.js.map +1 -0
  63. package/esm/LinePlotRenderer/LinePlotRenderer.d.ts +4 -0
  64. package/esm/LinePlotRenderer/LinePlotRenderer.js +71 -0
  65. package/esm/LinePlotRenderer/LinePlotRenderer.js.map +1 -0
  66. package/esm/LinePlotRenderer/index.d.ts +3 -0
  67. package/esm/LinePlotRenderer/index.js +12 -0
  68. package/esm/LinePlotRenderer/index.js.map +1 -0
  69. package/esm/LinearWiggleDisplay/components/SetColorDialog.d.ts +10 -0
  70. package/esm/LinearWiggleDisplay/components/SetColorDialog.js +55 -0
  71. package/esm/LinearWiggleDisplay/components/SetColorDialog.js.map +1 -0
  72. package/esm/LinearWiggleDisplay/components/SetMinMaxDialog.d.ts +11 -0
  73. package/esm/LinearWiggleDisplay/components/SetMinMaxDialog.js +46 -0
  74. package/esm/LinearWiggleDisplay/components/SetMinMaxDialog.js.map +1 -0
  75. package/esm/LinearWiggleDisplay/components/Tooltip.d.ts +24 -0
  76. package/esm/LinearWiggleDisplay/components/Tooltip.js +107 -0
  77. package/esm/LinearWiggleDisplay/components/Tooltip.js.map +1 -0
  78. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.d.ts +8 -0
  79. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js +29 -0
  80. package/esm/LinearWiggleDisplay/components/WiggleDisplayComponent.js.map +1 -0
  81. package/esm/LinearWiggleDisplay/components/YScaleBar.d.ts +7 -0
  82. package/esm/LinearWiggleDisplay/components/YScaleBar.js +9 -0
  83. package/esm/LinearWiggleDisplay/components/YScaleBar.js.map +1 -0
  84. package/esm/LinearWiggleDisplay/index.d.ts +3 -0
  85. package/esm/LinearWiggleDisplay/index.js +4 -0
  86. package/esm/LinearWiggleDisplay/index.js.map +1 -0
  87. package/esm/LinearWiggleDisplay/models/configSchema.d.ts +2 -0
  88. package/esm/LinearWiggleDisplay/models/configSchema.js +64 -0
  89. package/esm/LinearWiggleDisplay/models/configSchema.js.map +1 -0
  90. package/esm/LinearWiggleDisplay/models/model.d.ts +290 -0
  91. package/esm/LinearWiggleDisplay/models/model.js +495 -0
  92. package/esm/LinearWiggleDisplay/models/model.js.map +1 -0
  93. package/esm/WiggleBaseRenderer.d.ts +55 -0
  94. package/esm/WiggleBaseRenderer.js +34 -0
  95. package/esm/WiggleBaseRenderer.js.map +1 -0
  96. package/esm/WiggleRPC/rpcMethods.d.ts +31 -0
  97. package/esm/WiggleRPC/rpcMethods.js +70 -0
  98. package/esm/WiggleRPC/rpcMethods.js.map +1 -0
  99. package/esm/WiggleRendering.d.ts +16 -0
  100. package/esm/WiggleRendering.js +40 -0
  101. package/esm/WiggleRendering.js.map +1 -0
  102. package/esm/XYPlotRenderer/XYPlotRenderer.d.ts +4 -0
  103. package/esm/XYPlotRenderer/XYPlotRenderer.js +109 -0
  104. package/esm/XYPlotRenderer/XYPlotRenderer.js.map +1 -0
  105. package/esm/XYPlotRenderer/index.d.ts +3 -0
  106. package/esm/XYPlotRenderer/index.js +23 -0
  107. package/esm/XYPlotRenderer/index.js.map +1 -0
  108. package/esm/configSchema.d.ts +2 -0
  109. package/esm/configSchema.js +46 -0
  110. package/esm/configSchema.js.map +1 -0
  111. package/esm/index.d.ts +917 -0
  112. package/esm/index.js +115 -0
  113. package/esm/index.js.map +1 -0
  114. package/esm/util.d.ts +41 -0
  115. package/esm/util.js +123 -0
  116. package/esm/util.js.map +1 -0
  117. package/package.json +21 -13
  118. package/src/DensityRenderer/index.ts +1 -1
  119. package/src/LinePlotRenderer/LinePlotRenderer.js +1 -1
  120. package/src/LinePlotRenderer/index.js +7 -1
  121. package/src/LinearWiggleDisplay/components/SetColorDialog.tsx +10 -13
  122. package/src/LinearWiggleDisplay/components/SetMinMaxDialog.tsx +13 -11
  123. package/src/LinearWiggleDisplay/components/Tooltip.tsx +4 -3
  124. package/src/LinearWiggleDisplay/components/WiggleDisplayComponent.tsx +9 -4
  125. package/src/LinearWiggleDisplay/models/model.tsx +56 -65
  126. package/src/WiggleBaseRenderer.tsx +3 -3
  127. package/src/XYPlotRenderer/XYPlotRenderer.ts +87 -40
  128. package/src/XYPlotRenderer/index.ts +19 -2
  129. package/src/configSchema.ts +0 -23
  130. package/dist/BigWigAdapter/BigWigAdapter.test.js +0 -157
  131. package/dist/DensityRenderer/DensityRenderer.test.js +0 -88
  132. package/dist/LinePlotRenderer/configSchema.js +0 -70
  133. package/dist/WiggleRendering.test.js +0 -52
  134. package/dist/XYPlotRenderer/XYPlotRenderer.test.js +0 -87
  135. package/dist/declare.d.js +0 -1
  136. package/dist/index.test.js +0 -24
  137. package/dist/util.test.js +0 -66
  138. package/src/LinePlotRenderer/configSchema.js +0 -68
package/dist/util.js CHANGED
@@ -1,18 +1,23 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getNiceDomain = getNiceDomain;
9
- exports.getOrigin = getOrigin;
10
- exports.getScale = getScale;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _d3Scale = require("d3-scale");
15
-
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.getNiceDomain = exports.getOrigin = exports.getScale = void 0;
20
+ var d3_scale_1 = require("d3-scale");
16
21
  /**
17
22
  * produces a d3-scale from arguments. applies a "nice domain" adjustment
18
23
  *
@@ -24,75 +29,60 @@ var _d3Scale = require("d3-scale");
24
29
  * - pivotValue (number)
25
30
  * - inverted (boolean)
26
31
  */
27
- function getScale(_ref) {
28
- var _ref$domain = _ref.domain,
29
- domain = _ref$domain === void 0 ? [] : _ref$domain,
30
- _ref$range = _ref.range,
31
- range = _ref$range === void 0 ? [] : _ref$range,
32
- scaleType = _ref.scaleType,
33
- pivotValue = _ref.pivotValue,
34
- inverted = _ref.inverted;
35
- var scale;
36
-
37
- var _domain = (0, _slicedToArray2.default)(domain, 2),
38
- min = _domain[0],
39
- max = _domain[1];
40
-
41
- if (min === undefined || max === undefined) {
42
- throw new Error('invalid domain');
43
- }
44
-
45
- if (scaleType === 'linear') {
46
- scale = (0, _d3Scale.scaleLinear)();
47
- } else if (scaleType === 'log') {
48
- scale = (0, _d3Scale.scaleLog)();
49
- scale.base(2);
50
- } else if (scaleType === 'quantize') {
51
- scale = (0, _d3Scale.scaleQuantize)();
52
- } else {
53
- throw new Error('undefined scaleType');
54
- }
55
-
56
- scale.domain(pivotValue !== undefined ? [min, pivotValue, max] : [min, max]);
57
- scale.nice();
58
-
59
- var _range = (0, _slicedToArray2.default)(range, 2),
60
- rangeMin = _range[0],
61
- rangeMax = _range[1];
62
-
63
- if (rangeMin === undefined || rangeMax === undefined) {
64
- throw new Error('invalid range');
65
- }
66
-
67
- scale.range(inverted ? range.slice().reverse() : range);
68
- return scale;
32
+ function getScale(_a) {
33
+ var _b = _a.domain, domain = _b === void 0 ? [] : _b, _c = _a.range, range = _c === void 0 ? [] : _c, scaleType = _a.scaleType, pivotValue = _a.pivotValue, inverted = _a.inverted;
34
+ var scale;
35
+ var _d = __read(domain, 2), min = _d[0], max = _d[1];
36
+ if (min === undefined || max === undefined) {
37
+ throw new Error('invalid domain');
38
+ }
39
+ if (scaleType === 'linear') {
40
+ scale = (0, d3_scale_1.scaleLinear)();
41
+ }
42
+ else if (scaleType === 'log') {
43
+ scale = (0, d3_scale_1.scaleLog)();
44
+ scale.base(2);
45
+ }
46
+ else if (scaleType === 'quantize') {
47
+ scale = (0, d3_scale_1.scaleQuantize)();
48
+ }
49
+ else {
50
+ throw new Error('undefined scaleType');
51
+ }
52
+ scale.domain(pivotValue !== undefined ? [min, pivotValue, max] : [min, max]);
53
+ scale.nice();
54
+ var _e = __read(range, 2), rangeMin = _e[0], rangeMax = _e[1];
55
+ if (rangeMin === undefined || rangeMax === undefined) {
56
+ throw new Error('invalid range');
57
+ }
58
+ scale.range(inverted ? range.slice().reverse() : range);
59
+ return scale;
69
60
  }
61
+ exports.getScale = getScale;
70
62
  /**
71
63
  * gets the origin for drawing the graph. for linear this is 0, for log this is arbitrarily set to log(1)==0
72
64
  *
73
65
  * @param scaleType -
74
66
  */
75
-
76
-
77
- function getOrigin(scaleType) {
78
- // if (pivot) {
79
- // if (pivot === 'mean') {
80
- // return stats.scoreMean || 0
81
- // }
82
- // if (pivot === 'zero') {
83
- // return 0
84
- // }
85
- // return parseFloat()
86
- // }
87
- // if (scaleType === 'z_score') {
88
- // return stats.scoreMean || 0
89
- // }
90
- if (scaleType === 'log') {
91
- return 1;
92
- }
93
-
94
- return 0;
67
+ function getOrigin(scaleType /* , pivot, stats */) {
68
+ // if (pivot) {
69
+ // if (pivot === 'mean') {
70
+ // return stats.scoreMean || 0
71
+ // }
72
+ // if (pivot === 'zero') {
73
+ // return 0
74
+ // }
75
+ // return parseFloat()
76
+ // }
77
+ // if (scaleType === 'z_score') {
78
+ // return stats.scoreMean || 0
79
+ // }
80
+ if (scaleType === 'log') {
81
+ return 1;
82
+ }
83
+ return 0;
95
84
  }
85
+ exports.getOrigin = getOrigin;
96
86
  /**
97
87
  * produces a "nice" domain that actually rounds down to 0 for the min
98
88
  * or 0 to the max depending on if all values are positive or negative
@@ -104,75 +94,54 @@ function getOrigin(scaleType) {
104
94
  * - stddev
105
95
  * - scaleType (linear or log)
106
96
  */
107
-
108
-
109
- function getNiceDomain(_ref2) {
110
- var scaleType = _ref2.scaleType,
111
- domain = _ref2.domain,
112
- bounds = _ref2.bounds;
113
-
114
- var _bounds = (0, _slicedToArray2.default)(bounds, 2),
115
- minScore = _bounds[0],
116
- maxScore = _bounds[1];
117
-
118
- var _domain2 = (0, _slicedToArray2.default)(domain, 2),
119
- min = _domain2[0],
120
- max = _domain2[1];
121
-
122
- if (scaleType === 'linear') {
123
- if (max < 0) {
124
- max = 0;
125
- }
126
-
127
- if (min > 0) {
128
- min = 0;
97
+ function getNiceDomain(_a) {
98
+ var scaleType = _a.scaleType, domain = _a.domain, bounds = _a.bounds;
99
+ var _b = __read(bounds, 2), minScore = _b[0], maxScore = _b[1];
100
+ var _c = __read(domain, 2), min = _c[0], max = _c[1];
101
+ if (scaleType === 'linear') {
102
+ if (max < 0) {
103
+ max = 0;
104
+ }
105
+ if (min > 0) {
106
+ min = 0;
107
+ }
129
108
  }
130
- }
131
-
132
- if (scaleType === 'log') {
133
- // if the min is 0, assume that it's just something
134
- // with no read coverage and that we should ignore it in calculations
135
- // if it's greater than 1 pin to 1 for the full range also
136
- // otherwise, we may see bigwigs with fractional values
137
- if (min === 0 || min > 1) {
138
- min = 1;
109
+ if (scaleType === 'log') {
110
+ // if the min is 0, assume that it's just something
111
+ // with no read coverage and that we should ignore it in calculations
112
+ // if it's greater than 1 pin to 1 for the full range also
113
+ // otherwise, we may see bigwigs with fractional values
114
+ if (min === 0 || min > 1) {
115
+ min = 1;
116
+ }
139
117
  }
140
- }
141
-
142
- if (min === undefined || max === undefined) {
143
- throw new Error('invalid domain supplied to stats function');
144
- }
145
-
146
- if (minScore !== undefined && minScore !== Number.MIN_VALUE) {
147
- min = minScore;
148
- }
149
-
150
- if (maxScore !== undefined && maxScore !== Number.MAX_VALUE) {
151
- max = maxScore;
152
- }
153
-
154
- var getScaleType = function getScaleType(type) {
155
- if (type === 'linear') {
156
- return (0, _d3Scale.scaleLinear)();
118
+ if (min === undefined || max === undefined) {
119
+ throw new Error('invalid domain supplied to stats function');
157
120
  }
158
-
159
- if (type === 'log') {
160
- var _scale = (0, _d3Scale.scaleLog)();
161
-
162
- _scale.base(2);
163
-
164
- return _scale;
121
+ if (minScore !== undefined && minScore !== Number.MIN_VALUE) {
122
+ min = minScore;
165
123
  }
166
-
167
- if (type === 'quantize') {
168
- return (0, _d3Scale.scaleQuantize)();
124
+ if (maxScore !== undefined && maxScore !== Number.MAX_VALUE) {
125
+ max = maxScore;
169
126
  }
170
-
171
- throw new Error("undefined scaleType ".concat(type));
172
- };
173
-
174
- var scale = getScaleType(scaleType);
175
- scale.domain([min, max]);
176
- scale.nice();
177
- return scale.domain();
178
- }
127
+ var getScaleType = function (type) {
128
+ if (type === 'linear') {
129
+ return (0, d3_scale_1.scaleLinear)();
130
+ }
131
+ if (type === 'log') {
132
+ var scale_1 = (0, d3_scale_1.scaleLog)();
133
+ scale_1.base(2);
134
+ return scale_1;
135
+ }
136
+ if (type === 'quantize') {
137
+ return (0, d3_scale_1.scaleQuantize)();
138
+ }
139
+ throw new Error("undefined scaleType ".concat(type));
140
+ };
141
+ var scale = getScaleType(scaleType);
142
+ scale.domain([min, max]);
143
+ scale.nice();
144
+ return scale.domain();
145
+ }
146
+ exports.getNiceDomain = getNiceDomain;
147
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,qCAA+D;AAS/D;;;;;;;;;;GAUG;AACH,SAAgB,QAAQ,CAAC,EAMb;QALV,cAAW,EAAX,MAAM,mBAAG,EAAE,KAAA,EACX,aAAU,EAAV,KAAK,mBAAG,EAAE,KAAA,EACV,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,QAAQ,cAAA;IAER,IAAI,KAAK,CAAA;IACH,IAAA,KAAA,OAAa,MAAM,IAAA,EAAlB,GAAG,QAAA,EAAE,GAAG,QAAU,CAAA;IACzB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;KAClC;IACD,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,KAAK,GAAG,IAAA,sBAAW,GAAE,CAAA;KACtB;SAAM,IAAI,SAAS,KAAK,KAAK,EAAE;QAC9B,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE;QACnC,KAAK,GAAG,IAAA,wBAAa,GAAE,CAAA;KACxB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;KACvC;IACD,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5E,KAAK,CAAC,IAAI,EAAE,CAAA;IAEN,IAAA,KAAA,OAAuB,KAAK,IAAA,EAA3B,QAAQ,QAAA,EAAE,QAAQ,QAAS,CAAA;IAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;KACjC;IACD,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,KAAK,CAAA;AACd,CAAC;AA/BD,4BA+BC;AACD;;;;GAIG;AACH,SAAgB,SAAS,CAAC,SAAiB,CAAC,oBAAoB;IAC9D,eAAe;IACf,4BAA4B;IAC5B,kCAAkC;IAClC,MAAM;IACN,4BAA4B;IAC5B,eAAe;IACf,MAAM;IACN,wBAAwB;IACxB,IAAI;IACJ,iCAAiC;IACjC,gCAAgC;IAChC,IAAI;IACJ,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,OAAO,CAAC,CAAA;KACT;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAjBD,8BAiBC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,aAAa,CAAC,EAQ7B;QAPC,SAAS,eAAA,EACT,MAAM,YAAA,EACN,MAAM,YAAA;IAMA,IAAA,KAAA,OAAuB,MAAM,IAAA,EAA5B,QAAQ,QAAA,EAAE,QAAQ,QAAU,CAAA;IAC/B,IAAA,KAAA,OAAa,MAAM,IAAA,EAAlB,GAAG,QAAA,EAAE,GAAG,QAAU,CAAA;IAEvB,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,GAAG,GAAG,CAAC,CAAA;SACR;QACD,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,GAAG,GAAG,CAAC,CAAA;SACR;KACF;IACD,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,mDAAmD;QACnD,qEAAqE;QACrE,0DAA0D;QAC1D,uDAAuD;QACvD,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;YACxB,GAAG,GAAG,CAAC,CAAA;SACR;KACF;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;KAC7D;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE;QAC3D,GAAG,GAAG,QAAQ,CAAA;KACf;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC,SAAS,EAAE;QAC3D,GAAG,GAAG,QAAQ,CAAA;KACf;IACD,IAAM,YAAY,GAAG,UAAC,IAAY;QAChC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,IAAA,sBAAW,GAAE,CAAA;SACrB;QACD,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,IAAM,OAAK,GAAG,IAAA,mBAAQ,GAAE,CAAA;YACxB,OAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACb,OAAO,OAAK,CAAA;SACb;QACD,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,OAAO,IAAA,wBAAa,GAAE,CAAA;SACvB;QACD,MAAM,IAAI,KAAK,CAAC,8BAAuB,IAAI,CAAE,CAAC,CAAA;IAChD,CAAC,CAAA;IACD,IAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IAErC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,EAAE,CAAA;IACZ,OAAO,KAAK,CAAC,MAAM,EAAsB,CAAA;AAC3C,CAAC;AAzDD,sCAyDC"}
@@ -0,0 +1,24 @@
1
+ import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { AugmentedRegion as Region } from '@jbrowse/core/util/types';
3
+ import { Feature } from '@jbrowse/core/util/simpleFeature';
4
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema';
5
+ import PluginManager from '@jbrowse/core/PluginManager';
6
+ import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
7
+ interface WiggleOptions extends BaseOptions {
8
+ resolution?: number;
9
+ }
10
+ export default class BigWigAdapter extends BaseFeatureDataAdapter {
11
+ private bigwig;
12
+ static capabilities: string[];
13
+ constructor(config: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
14
+ private setup;
15
+ getRefNames(opts?: BaseOptions): Promise<string[]>;
16
+ refIdToName(refId: number): Promise<any>;
17
+ getGlobalStats(opts?: BaseOptions): Promise<import("@jbrowse/core/util/stats").FeatureStats>;
18
+ getFeatures(region: Region, opts?: WiggleOptions): import("rxjs").Observable<Feature>;
19
+ estimateRegionsStats(_regions: Region[]): Promise<{
20
+ featureDensity: number;
21
+ }>;
22
+ freeResources(): void;
23
+ }
24
+ export {};
@@ -0,0 +1,62 @@
1
+ import { BigWig } from '@gmod/bbi';
2
+ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { openLocation } from '@jbrowse/core/util/io';
4
+ import { updateStatus } from '@jbrowse/core/util';
5
+ import { ObservableCreate } from '@jbrowse/core/util/rxjs';
6
+ import SimpleFeature from '@jbrowse/core/util/simpleFeature';
7
+ import { map, mergeAll } from 'rxjs/operators';
8
+ import { readConfObject } from '@jbrowse/core/configuration';
9
+ import { rectifyStats } from '@jbrowse/core/util/stats';
10
+ export default class BigWigAdapter extends BaseFeatureDataAdapter {
11
+ constructor(config, getSubAdapter, pluginManager) {
12
+ super(config, getSubAdapter, pluginManager);
13
+ this.bigwig = new BigWig({
14
+ filehandle: openLocation(readConfObject(config, 'bigWigLocation'), this.pluginManager),
15
+ });
16
+ }
17
+ async setup(opts) {
18
+ const { statusCallback = () => { } } = opts || {};
19
+ return updateStatus('Downloading bigwig header', statusCallback, () => this.bigwig.getHeader(opts));
20
+ }
21
+ async getRefNames(opts) {
22
+ const { refsByName } = await this.setup(opts);
23
+ return Object.keys(refsByName);
24
+ }
25
+ async refIdToName(refId) {
26
+ var _a;
27
+ const { refsByNumber } = await this.setup();
28
+ return (_a = refsByNumber[refId]) === null || _a === void 0 ? void 0 : _a.name;
29
+ }
30
+ async getGlobalStats(opts) {
31
+ const { totalSummary } = await this.setup(opts);
32
+ return rectifyStats(totalSummary);
33
+ }
34
+ getFeatures(region, opts = {}) {
35
+ const { refName, start, end } = region;
36
+ const { bpPerPx = 0, signal, resolution = 1, statusCallback = () => { }, } = opts;
37
+ return ObservableCreate(async (observer) => {
38
+ statusCallback('Downloading bigwig data');
39
+ const ob = await this.bigwig.getFeatureStream(refName, start, end, {
40
+ ...opts,
41
+ basesPerSpan: bpPerPx / resolution,
42
+ });
43
+ ob.pipe(mergeAll(), map(record => {
44
+ return new SimpleFeature({
45
+ id: `${refName}:${record.start}-${record.end}`,
46
+ data: { ...record, refName },
47
+ });
48
+ })).subscribe(observer);
49
+ }, signal);
50
+ }
51
+ // always render bigwig instead of calculating a feature density for it
52
+ async estimateRegionsStats(_regions) {
53
+ return { featureDensity: 0 };
54
+ }
55
+ freeResources() { }
56
+ }
57
+ BigWigAdapter.capabilities = [
58
+ 'hasResolution',
59
+ 'hasLocalStats',
60
+ 'hasGlobalStats',
61
+ ];
62
+ //# sourceMappingURL=BigWigAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BigWigAdapter.js","sourceRoot":"","sources":["../../src/BigWigAdapter/BigWigAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export default ConfigurationSchema('BigWigAdapter', {
3
+ bigWigLocation: {
4
+ type: 'fileLocation',
5
+ defaultValue: {
6
+ uri: '/path/to/my.bw',
7
+ locationType: 'UriLocation',
8
+ },
9
+ },
10
+ }, { explicitlyTyped: true });
11
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BigWigAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,eAAe,EACf;IACE,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,aAAa;SAC5B;KACF;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -0,0 +1 @@
1
+ export { default as configSchema } from './configSchema';
@@ -0,0 +1,2 @@
1
+ export { default as configSchema } from './configSchema';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BigWigAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import WiggleBaseRenderer, { RenderArgsDeserializedWithFeatures } from '../WiggleBaseRenderer';
2
+ export { default as ReactComponent } from '../WiggleRendering';
3
+ export default class DensityRenderer extends WiggleBaseRenderer {
4
+ draw(ctx: CanvasRenderingContext2D, props: RenderArgsDeserializedWithFeatures): Promise<void>;
5
+ }
6
+ export declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -0,0 +1,39 @@
1
+ import { readConfObject, ConfigurationSchema, } from '@jbrowse/core/configuration';
2
+ import { featureSpanPx } from '@jbrowse/core/util';
3
+ import { getScale } from '../util';
4
+ import ConfigSchema from '../configSchema';
5
+ import WiggleBaseRenderer from '../WiggleBaseRenderer';
6
+ export { default as ReactComponent } from '../WiggleRendering';
7
+ export default class DensityRenderer extends WiggleBaseRenderer {
8
+ async draw(ctx, props) {
9
+ const { features, regions, bpPerPx, scaleOpts, height, config } = props;
10
+ const [region] = regions;
11
+ const pivot = readConfObject(config, 'bicolorPivot');
12
+ const pivotValue = readConfObject(config, 'bicolorPivotValue');
13
+ const negColor = readConfObject(config, 'negColor');
14
+ const posColor = readConfObject(config, 'posColor');
15
+ const color = readConfObject(config, 'color');
16
+ let colorCallback;
17
+ if (color === '#f0f') {
18
+ const colorScale = pivot !== 'none'
19
+ ? getScale({
20
+ ...scaleOpts,
21
+ pivotValue,
22
+ range: [negColor, 'white', posColor],
23
+ })
24
+ : getScale({ ...scaleOpts, range: ['white', posColor] });
25
+ colorCallback = (feature) => colorScale(feature.get('score'));
26
+ }
27
+ else {
28
+ colorCallback = (feature) => readConfObject(config, 'color', { feature });
29
+ }
30
+ for (const feature of features.values()) {
31
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
32
+ const w = rightPx - leftPx + 0.3; // fudge factor for subpixel rendering
33
+ ctx.fillStyle = colorCallback(feature);
34
+ ctx.fillRect(leftPx, 0, w, height);
35
+ }
36
+ }
37
+ }
38
+ export const configSchema = ConfigurationSchema('DensityRenderer', {}, { baseConfiguration: ConfigSchema, explicitlyTyped: true });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DensityRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAC1C,OAAO,kBAEN,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,kBAAkB;IAC7D,KAAK,CAAC,IAAI,CACR,GAA6B,EAC7B,KAAyC;QAEzC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;QACxB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACnD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC7C,IAAI,aAAa,CAAA;QACjB,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,MAAM,UAAU,GACd,KAAK,KAAK,MAAM;gBACd,CAAC,CAAC,QAAQ,CAAC;oBACP,GAAG,SAAS;oBACZ,UAAU;oBACV,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;iBACrC,CAAC;gBACJ,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;YAC5D,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;SACvE;aAAM;YACL,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE,CACnC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;SAC/C;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACjE,MAAM,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,CAAA,CAAC,sCAAsC;YACvE,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;YACtC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;SACnC;IACH,CAAC;CACF;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAC7C,iBAAiB,EACjB,EAAE,EACF,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAC3D,CAAA"}
@@ -0,0 +1,4 @@
1
+ export default class LinePlotRenderer extends WiggleBaseRenderer {
2
+ draw(ctx: any, props: any): Promise<void>;
3
+ }
4
+ import WiggleBaseRenderer from "../WiggleBaseRenderer";
@@ -0,0 +1,71 @@
1
+ import { readConfObject } from '@jbrowse/core/configuration';
2
+ import { featureSpanPx } from '@jbrowse/core/util';
3
+ import { getScale } from '../util';
4
+ import WiggleBaseRenderer from '../WiggleBaseRenderer';
5
+ import { YSCALEBAR_LABEL_OFFSET } from '../LinearWiggleDisplay/models/model';
6
+ export default class LinePlotRenderer extends WiggleBaseRenderer {
7
+ async draw(ctx, props) {
8
+ const { features, regions, bpPerPx, scaleOpts, height: unadjustedHeight, ticks: { values }, displayCrossHatches, config, } = props;
9
+ const [region] = regions;
10
+ const width = (region.end - region.start) / bpPerPx;
11
+ const offset = YSCALEBAR_LABEL_OFFSET;
12
+ // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
13
+ // wiggle display, and makes the height of the actual drawn area add
14
+ // "padding" to the top and bottom of the display
15
+ const height = unadjustedHeight - offset * 2;
16
+ const clipColor = readConfObject(config, 'clipColor');
17
+ const highlightColor = readConfObject(config, 'highlightColor');
18
+ const scale = getScale({ ...scaleOpts, range: [0, height] });
19
+ const [niceMin, niceMax] = scale.domain();
20
+ const toY = rawscore => height - scale(rawscore) + offset;
21
+ const colorCallback = readConfObject(config, 'color') === '#f0f'
22
+ ? () => 'grey'
23
+ : feature => readConfObject(config, 'color', { feature });
24
+ let lastVal;
25
+ for (const feature of features.values()) {
26
+ const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx);
27
+ const score = feature.get('score');
28
+ const lowClipping = score < niceMin;
29
+ const highClipping = score > niceMax;
30
+ const w = rightPx - leftPx + 0.3; // fudge factor for subpixel rendering
31
+ const c = colorCallback(feature);
32
+ ctx.strokeStyle = c;
33
+ ctx.beginPath();
34
+ if (!region.reversed) {
35
+ ctx.moveTo(leftPx, toY(typeof lastVal !== 'undefined' ? lastVal : score));
36
+ ctx.lineTo(leftPx, toY(score));
37
+ ctx.lineTo(rightPx, toY(score));
38
+ }
39
+ else {
40
+ ctx.moveTo(rightPx, toY(typeof lastVal !== 'undefined' ? lastVal : score));
41
+ ctx.lineTo(rightPx, toY(score));
42
+ ctx.lineTo(leftPx, toY(score));
43
+ }
44
+ ctx.stroke();
45
+ lastVal = score;
46
+ if (highClipping) {
47
+ ctx.fillStyle = clipColor;
48
+ ctx.fillRect(leftPx, 0, w, 4);
49
+ }
50
+ else if (lowClipping && scaleOpts.scaleType !== 'log') {
51
+ ctx.fillStyle = clipColor;
52
+ ctx.fillRect(leftPx, height - 4, w, height);
53
+ }
54
+ if (feature.get('highlighted')) {
55
+ ctx.fillStyle = highlightColor;
56
+ ctx.fillRect(leftPx, 0, w, height);
57
+ }
58
+ }
59
+ if (displayCrossHatches) {
60
+ ctx.lineWidth = 1;
61
+ ctx.strokeStyle = 'rgba(200,200,200,0.8)';
62
+ values.forEach(tick => {
63
+ ctx.beginPath();
64
+ ctx.moveTo(0, Math.round(toY(tick)));
65
+ ctx.lineTo(width, Math.round(toY(tick)));
66
+ ctx.stroke();
67
+ });
68
+ }
69
+ }
70
+ }
71
+ //# sourceMappingURL=LinePlotRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinePlotRenderer.js","sourceRoot":"","sources":["../../src/LinePlotRenderer/LinePlotRenderer.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { default as ReactComponent } from "../WiggleRendering";
2
+ export { default } from "./LinePlotRenderer";
3
+ export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -0,0 +1,12 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ import ConfigSchema from '../configSchema';
3
+ export { default as ReactComponent } from '../WiggleRendering';
4
+ export { default } from './LinePlotRenderer';
5
+ export const configSchema = ConfigurationSchema('LinePlotRenderer', {
6
+ displayCrossHatches: {
7
+ type: 'boolean',
8
+ description: 'choose to draw cross hatches (sideways lines)',
9
+ defaultValue: false,
10
+ },
11
+ }, { baseConfiguration: ConfigSchema, explicitlyTyped: true });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinePlotRenderer/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,YAAY,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAC7C,kBAAkB,EAClB;IACE,mBAAmB,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+CAA+C;QAC5D,YAAY,EAAE,KAAK;KACpB;CACF,EACD,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,CAC3D,CAAA"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ export default function SetColorDialog({ model, handleClose, }: {
3
+ model: {
4
+ color: number;
5
+ setColor: (arg?: string) => void;
6
+ setPosColor: (arg?: string) => void;
7
+ setNegColor: (arg?: string) => void;
8
+ };
9
+ handleClose: () => void;
10
+ }): JSX.Element;