@jbrowse/plugin-gccontent 2.18.0 → 3.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.
- package/dist/GCContentAdapter/GCContentAdapter.js +12 -11
- package/dist/GCContentAdapter/index.js +17 -7
- package/dist/LinearGCContentDisplay/components/EditGCContentParams.d.ts +1 -2
- package/dist/LinearGCContentDisplay/components/EditGCContentParams.js +15 -45
- package/dist/LinearGCContentDisplay/shared.d.ts +31 -8
- package/dist/LinearGCContentDisplay/shared.js +17 -7
- package/dist/LinearGCContentDisplay/stateModel1.d.ts +31 -8
- package/dist/LinearGCContentDisplay/stateModel2.d.ts +31 -8
- package/esm/GCContentAdapter/GCContentAdapter.js +12 -11
- package/esm/LinearGCContentDisplay/components/EditGCContentParams.d.ts +1 -2
- package/esm/LinearGCContentDisplay/components/EditGCContentParams.js +15 -22
- package/esm/LinearGCContentDisplay/shared.d.ts +31 -8
- package/esm/LinearGCContentDisplay/stateModel1.d.ts +31 -8
- package/esm/LinearGCContentDisplay/stateModel2.d.ts +31 -8
- package/package.json +2 -2
|
@@ -30,31 +30,32 @@ class GCContentAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
30
30
|
const sequenceAdapter = await this.configure();
|
|
31
31
|
const windowSize = this.getConf('windowSize');
|
|
32
32
|
const windowDelta = this.getConf('windowDelta');
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (queryEnd < 0 || queryStart > queryEnd) {
|
|
33
|
+
const halfWindowSize = windowSize === 1 ? 1 : Math.ceil(windowSize / 2);
|
|
34
|
+
const isWindowSizeOneBp = windowSize === 1;
|
|
35
|
+
const qs = Math.max(0, Math.floor((query.start - halfWindowSize) / windowSize) * windowSize);
|
|
36
|
+
const qe = Math.ceil((query.end + halfWindowSize) / windowSize) * windowSize;
|
|
37
|
+
if (qe < 0 || qs > qe) {
|
|
39
38
|
observer.complete();
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
41
|
const feats = await (0, rxjs_2.firstValueFrom)(sequenceAdapter
|
|
43
42
|
.getFeatures({
|
|
44
43
|
...query,
|
|
45
|
-
start:
|
|
46
|
-
end:
|
|
44
|
+
start: qs,
|
|
45
|
+
end: qe,
|
|
47
46
|
}, opts)
|
|
48
47
|
.pipe((0, operators_1.toArray)()));
|
|
49
48
|
const residues = ((_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq')) || '';
|
|
50
49
|
let start = performance.now();
|
|
51
50
|
await (0, util_1.updateStatus)('Calculating GC', statusCallback, () => {
|
|
52
|
-
for (let i =
|
|
51
|
+
for (let i = halfWindowSize; i < residues.length - halfWindowSize; i += windowDelta) {
|
|
53
52
|
if (performance.now() - start > 400) {
|
|
54
53
|
(0, stopToken_1.checkStopToken)(stopToken);
|
|
55
54
|
start = performance.now();
|
|
56
55
|
}
|
|
57
|
-
const r =
|
|
56
|
+
const r = isWindowSizeOneBp
|
|
57
|
+
? residues[i]
|
|
58
|
+
: residues.slice(i - halfWindowSize, i + halfWindowSize);
|
|
58
59
|
let nc = 0;
|
|
59
60
|
let ng = 0;
|
|
60
61
|
let len = 0;
|
|
@@ -69,7 +70,7 @@ class GCContentAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
69
70
|
len++;
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
const pos =
|
|
73
|
+
const pos = qs;
|
|
73
74
|
const score = this.gcMode === 'content'
|
|
74
75
|
? (ng + nc) / (len || 1)
|
|
75
76
|
: this.gcMode === 'skew'
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
|
|
3
2
|
model: {
|
|
4
3
|
windowSizeSetting: number;
|
|
@@ -9,5 +8,5 @@ declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
|
|
|
9
8
|
}) => void;
|
|
10
9
|
};
|
|
11
10
|
handleClose: () => void;
|
|
12
|
-
}) =>
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
13
12
|
export default EditGCContentParamsDialog;
|
|
@@ -1,55 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
27
5
|
const ui_1 = require("@jbrowse/core/ui");
|
|
28
6
|
const material_1 = require("@mui/material");
|
|
29
7
|
const mobx_react_1 = require("mobx-react");
|
|
30
8
|
const EditGCContentParamsDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
|
|
31
9
|
const [windowSize, setWindowSize] = (0, react_1.useState)(`${model.windowSizeSetting}`);
|
|
32
10
|
const [windowDelta, setWindowDelta] = (0, react_1.useState)(`${model.windowDeltaSetting}`);
|
|
33
|
-
return (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
windowSize: +windowSize,
|
|
47
|
-
windowDelta: +windowDelta,
|
|
48
|
-
});
|
|
49
|
-
handleClose();
|
|
50
|
-
} }, "Submit"),
|
|
51
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
52
|
-
handleClose();
|
|
53
|
-
} }, "Cancel")))));
|
|
11
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.Dialog, { open: true, onClose: handleClose, title: "Edit GC content params", children: (0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents." }), +windowDelta > +windowSize ? ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null, (0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
|
|
12
|
+
setWindowSize(event.target.value);
|
|
13
|
+
} }), (0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
|
|
14
|
+
setWindowDelta(event.target.value);
|
|
15
|
+
} }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", onClick: () => {
|
|
16
|
+
model.setGCContentParams({
|
|
17
|
+
windowSize: +windowSize,
|
|
18
|
+
windowDelta: +windowDelta,
|
|
19
|
+
});
|
|
20
|
+
handleClose();
|
|
21
|
+
}, children: "Submit" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
22
|
+
handleClose();
|
|
23
|
+
}, children: "Cancel" })] })] }) }));
|
|
54
24
|
});
|
|
55
25
|
exports.default = EditGCContentParamsDialog;
|
|
@@ -35,7 +35,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -190,13 +190,13 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
190
190
|
} & {
|
|
191
191
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
192
192
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
193
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
193
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
194
194
|
} & {
|
|
195
195
|
featureIdUnderMouse: undefined | string;
|
|
196
196
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
197
197
|
} & {
|
|
198
|
-
readonly DisplayMessageComponent:
|
|
199
|
-
readonly blockType: "
|
|
198
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
199
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
200
200
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
201
201
|
} & {
|
|
202
202
|
readonly renderDelay: number;
|
|
@@ -223,7 +223,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
223
223
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
224
224
|
renderProps(): any;
|
|
225
225
|
} & {
|
|
226
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
226
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
227
227
|
afterAttach(): void;
|
|
228
228
|
} & {
|
|
229
229
|
message: undefined | string;
|
|
@@ -339,7 +339,17 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
339
339
|
readonly quantitativeStatsReady: boolean;
|
|
340
340
|
} & {
|
|
341
341
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
342
|
+
type: string;
|
|
343
|
+
label?: undefined;
|
|
344
|
+
icon?: undefined;
|
|
345
|
+
subMenu?: undefined;
|
|
346
|
+
onClick?: undefined;
|
|
347
|
+
checked?: undefined;
|
|
348
|
+
} | {
|
|
342
349
|
label: string;
|
|
350
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
351
|
+
muiName: string;
|
|
352
|
+
};
|
|
343
353
|
subMenu: ({
|
|
344
354
|
label: string;
|
|
345
355
|
subMenu: {
|
|
@@ -362,8 +372,8 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
362
372
|
subMenu?: undefined;
|
|
363
373
|
})[];
|
|
364
374
|
type?: undefined;
|
|
365
|
-
checked?: undefined;
|
|
366
375
|
onClick?: undefined;
|
|
376
|
+
checked?: undefined;
|
|
367
377
|
} | {
|
|
368
378
|
label: string;
|
|
369
379
|
subMenu: {
|
|
@@ -373,10 +383,23 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
373
383
|
onClick: () => void;
|
|
374
384
|
}[];
|
|
375
385
|
type?: undefined;
|
|
376
|
-
|
|
386
|
+
icon?: undefined;
|
|
377
387
|
onClick?: undefined;
|
|
388
|
+
checked?: undefined;
|
|
389
|
+
} | {
|
|
390
|
+
label: string;
|
|
391
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
392
|
+
muiName: string;
|
|
393
|
+
};
|
|
394
|
+
onClick: () => void;
|
|
395
|
+
type?: undefined;
|
|
396
|
+
subMenu?: undefined;
|
|
397
|
+
checked?: undefined;
|
|
378
398
|
} | {
|
|
379
399
|
type: string;
|
|
400
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
401
|
+
muiName: string;
|
|
402
|
+
};
|
|
380
403
|
label: string;
|
|
381
404
|
checked: boolean;
|
|
382
405
|
onClick: () => void;
|
|
@@ -384,7 +407,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
384
407
|
})[];
|
|
385
408
|
} & {
|
|
386
409
|
afterAttach(): void;
|
|
387
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
410
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
388
411
|
} & {
|
|
389
412
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
390
413
|
windowSize: number;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.default = SharedModelF;
|
|
27
37
|
const react_1 = require("react");
|
|
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
192
192
|
} & {
|
|
193
193
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
194
194
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
195
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
195
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
196
196
|
} & {
|
|
197
197
|
featureIdUnderMouse: undefined | string;
|
|
198
198
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
199
199
|
} & {
|
|
200
|
-
readonly DisplayMessageComponent:
|
|
201
|
-
readonly blockType: "
|
|
200
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
201
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
202
202
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
203
203
|
} & {
|
|
204
204
|
readonly renderDelay: number;
|
|
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
225
225
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
226
226
|
renderProps(): any;
|
|
227
227
|
} & {
|
|
228
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
228
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
229
229
|
afterAttach(): void;
|
|
230
230
|
} & {
|
|
231
231
|
message: undefined | string;
|
|
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
341
341
|
readonly quantitativeStatsReady: boolean;
|
|
342
342
|
} & {
|
|
343
343
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
344
|
+
type: string;
|
|
345
|
+
label?: undefined;
|
|
346
|
+
icon?: undefined;
|
|
347
|
+
subMenu?: undefined;
|
|
348
|
+
onClick?: undefined;
|
|
349
|
+
checked?: undefined;
|
|
350
|
+
} | {
|
|
344
351
|
label: string;
|
|
352
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
353
|
+
muiName: string;
|
|
354
|
+
};
|
|
345
355
|
subMenu: ({
|
|
346
356
|
label: string;
|
|
347
357
|
subMenu: {
|
|
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
364
374
|
subMenu?: undefined;
|
|
365
375
|
})[];
|
|
366
376
|
type?: undefined;
|
|
367
|
-
checked?: undefined;
|
|
368
377
|
onClick?: undefined;
|
|
378
|
+
checked?: undefined;
|
|
369
379
|
} | {
|
|
370
380
|
label: string;
|
|
371
381
|
subMenu: {
|
|
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
375
385
|
onClick: () => void;
|
|
376
386
|
}[];
|
|
377
387
|
type?: undefined;
|
|
378
|
-
|
|
388
|
+
icon?: undefined;
|
|
379
389
|
onClick?: undefined;
|
|
390
|
+
checked?: undefined;
|
|
391
|
+
} | {
|
|
392
|
+
label: string;
|
|
393
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
394
|
+
muiName: string;
|
|
395
|
+
};
|
|
396
|
+
onClick: () => void;
|
|
397
|
+
type?: undefined;
|
|
398
|
+
subMenu?: undefined;
|
|
399
|
+
checked?: undefined;
|
|
380
400
|
} | {
|
|
381
401
|
type: string;
|
|
402
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
403
|
+
muiName: string;
|
|
404
|
+
};
|
|
382
405
|
label: string;
|
|
383
406
|
checked: boolean;
|
|
384
407
|
onClick: () => void;
|
|
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
386
409
|
})[];
|
|
387
410
|
} & {
|
|
388
411
|
afterAttach(): void;
|
|
389
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
412
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
390
413
|
} & {
|
|
391
414
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
392
415
|
windowSize: number;
|
|
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
192
192
|
} & {
|
|
193
193
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
194
194
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
195
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
195
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
196
196
|
} & {
|
|
197
197
|
featureIdUnderMouse: undefined | string;
|
|
198
198
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
199
199
|
} & {
|
|
200
|
-
readonly DisplayMessageComponent:
|
|
201
|
-
readonly blockType: "
|
|
200
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
201
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
202
202
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
203
203
|
} & {
|
|
204
204
|
readonly renderDelay: number;
|
|
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
225
225
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
226
226
|
renderProps(): any;
|
|
227
227
|
} & {
|
|
228
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
228
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
229
229
|
afterAttach(): void;
|
|
230
230
|
} & {
|
|
231
231
|
message: undefined | string;
|
|
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
341
341
|
readonly quantitativeStatsReady: boolean;
|
|
342
342
|
} & {
|
|
343
343
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
344
|
+
type: string;
|
|
345
|
+
label?: undefined;
|
|
346
|
+
icon?: undefined;
|
|
347
|
+
subMenu?: undefined;
|
|
348
|
+
onClick?: undefined;
|
|
349
|
+
checked?: undefined;
|
|
350
|
+
} | {
|
|
344
351
|
label: string;
|
|
352
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
353
|
+
muiName: string;
|
|
354
|
+
};
|
|
345
355
|
subMenu: ({
|
|
346
356
|
label: string;
|
|
347
357
|
subMenu: {
|
|
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
364
374
|
subMenu?: undefined;
|
|
365
375
|
})[];
|
|
366
376
|
type?: undefined;
|
|
367
|
-
checked?: undefined;
|
|
368
377
|
onClick?: undefined;
|
|
378
|
+
checked?: undefined;
|
|
369
379
|
} | {
|
|
370
380
|
label: string;
|
|
371
381
|
subMenu: {
|
|
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
375
385
|
onClick: () => void;
|
|
376
386
|
}[];
|
|
377
387
|
type?: undefined;
|
|
378
|
-
|
|
388
|
+
icon?: undefined;
|
|
379
389
|
onClick?: undefined;
|
|
390
|
+
checked?: undefined;
|
|
391
|
+
} | {
|
|
392
|
+
label: string;
|
|
393
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
394
|
+
muiName: string;
|
|
395
|
+
};
|
|
396
|
+
onClick: () => void;
|
|
397
|
+
type?: undefined;
|
|
398
|
+
subMenu?: undefined;
|
|
399
|
+
checked?: undefined;
|
|
380
400
|
} | {
|
|
381
401
|
type: string;
|
|
402
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
403
|
+
muiName: string;
|
|
404
|
+
};
|
|
382
405
|
label: string;
|
|
383
406
|
checked: boolean;
|
|
384
407
|
onClick: () => void;
|
|
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
386
409
|
})[];
|
|
387
410
|
} & {
|
|
388
411
|
afterAttach(): void;
|
|
389
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
412
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
390
413
|
} & {
|
|
391
414
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
392
415
|
windowSize: number;
|
|
@@ -28,31 +28,32 @@ class GCContentAdapter extends BaseFeatureDataAdapter {
|
|
|
28
28
|
const sequenceAdapter = await this.configure();
|
|
29
29
|
const windowSize = this.getConf('windowSize');
|
|
30
30
|
const windowDelta = this.getConf('windowDelta');
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (queryEnd < 0 || queryStart > queryEnd) {
|
|
31
|
+
const halfWindowSize = windowSize === 1 ? 1 : Math.ceil(windowSize / 2);
|
|
32
|
+
const isWindowSizeOneBp = windowSize === 1;
|
|
33
|
+
const qs = Math.max(0, Math.floor((query.start - halfWindowSize) / windowSize) * windowSize);
|
|
34
|
+
const qe = Math.ceil((query.end + halfWindowSize) / windowSize) * windowSize;
|
|
35
|
+
if (qe < 0 || qs > qe) {
|
|
37
36
|
observer.complete();
|
|
38
37
|
return;
|
|
39
38
|
}
|
|
40
39
|
const feats = await firstValueFrom(sequenceAdapter
|
|
41
40
|
.getFeatures({
|
|
42
41
|
...query,
|
|
43
|
-
start:
|
|
44
|
-
end:
|
|
42
|
+
start: qs,
|
|
43
|
+
end: qe,
|
|
45
44
|
}, opts)
|
|
46
45
|
.pipe(toArray()));
|
|
47
46
|
const residues = ((_a = feats[0]) === null || _a === void 0 ? void 0 : _a.get('seq')) || '';
|
|
48
47
|
let start = performance.now();
|
|
49
48
|
await updateStatus('Calculating GC', statusCallback, () => {
|
|
50
|
-
for (let i =
|
|
49
|
+
for (let i = halfWindowSize; i < residues.length - halfWindowSize; i += windowDelta) {
|
|
51
50
|
if (performance.now() - start > 400) {
|
|
52
51
|
checkStopToken(stopToken);
|
|
53
52
|
start = performance.now();
|
|
54
53
|
}
|
|
55
|
-
const r =
|
|
54
|
+
const r = isWindowSizeOneBp
|
|
55
|
+
? residues[i]
|
|
56
|
+
: residues.slice(i - halfWindowSize, i + halfWindowSize);
|
|
56
57
|
let nc = 0;
|
|
57
58
|
let ng = 0;
|
|
58
59
|
let len = 0;
|
|
@@ -67,7 +68,7 @@ class GCContentAdapter extends BaseFeatureDataAdapter {
|
|
|
67
68
|
len++;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
const pos =
|
|
71
|
+
const pos = qs;
|
|
71
72
|
const score = this.gcMode === 'content'
|
|
72
73
|
? (ng + nc) / (len || 1)
|
|
73
74
|
: this.gcMode === 'skew'
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
|
|
3
2
|
model: {
|
|
4
3
|
windowSizeSetting: number;
|
|
@@ -9,5 +8,5 @@ declare const EditGCContentParamsDialog: ({ model, handleClose, }: {
|
|
|
9
8
|
}) => void;
|
|
10
9
|
};
|
|
11
10
|
handleClose: () => void;
|
|
12
|
-
}) =>
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
13
12
|
export default EditGCContentParamsDialog;
|
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
2
3
|
import { Dialog, ErrorMessage } from '@jbrowse/core/ui';
|
|
3
4
|
import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
|
|
4
5
|
import { observer } from 'mobx-react';
|
|
5
6
|
const EditGCContentParamsDialog = observer(function ({ model, handleClose, }) {
|
|
6
7
|
const [windowSize, setWindowSize] = useState(`${model.windowSizeSetting}`);
|
|
7
8
|
const [windowDelta, setWindowDelta] = useState(`${model.windowDeltaSetting}`);
|
|
8
|
-
return (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
windowSize: +windowSize,
|
|
22
|
-
windowDelta: +windowDelta,
|
|
23
|
-
});
|
|
24
|
-
handleClose();
|
|
25
|
-
} }, "Submit"),
|
|
26
|
-
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
27
|
-
handleClose();
|
|
28
|
-
} }, "Cancel")))));
|
|
9
|
+
return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Edit GC content params", children: _jsxs(DialogContent, { children: [_jsx(Typography, { children: "GC content is calculated in a particular sliding window of size N, and then the sliding window moves (steps) some number of bases M forward. Note that small step sizes can result in high CPU over large areas, and it is not recommended to make the step size larger than the window size as then the sliding window will miss contents." }), +windowDelta > +windowSize ? (_jsx(ErrorMessage, { error: "It is not recommended to make the step size larger than the window size" })) : null, _jsx(TextField, { label: "Size of sliding window (bp)", value: windowSize, onChange: event => {
|
|
10
|
+
setWindowSize(event.target.value);
|
|
11
|
+
} }), _jsx(TextField, { label: "Step size of sliding window (bp)", value: windowDelta, onChange: event => {
|
|
12
|
+
setWindowDelta(event.target.value);
|
|
13
|
+
} }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", onClick: () => {
|
|
14
|
+
model.setGCContentParams({
|
|
15
|
+
windowSize: +windowSize,
|
|
16
|
+
windowDelta: +windowDelta,
|
|
17
|
+
});
|
|
18
|
+
handleClose();
|
|
19
|
+
}, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
20
|
+
handleClose();
|
|
21
|
+
}, children: "Cancel" })] })] }) }));
|
|
29
22
|
});
|
|
30
23
|
export default EditGCContentParamsDialog;
|
|
@@ -35,7 +35,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -190,13 +190,13 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
190
190
|
} & {
|
|
191
191
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
192
192
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
193
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
193
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
194
194
|
} & {
|
|
195
195
|
featureIdUnderMouse: undefined | string;
|
|
196
196
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
197
197
|
} & {
|
|
198
|
-
readonly DisplayMessageComponent:
|
|
199
|
-
readonly blockType: "
|
|
198
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
199
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
200
200
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
201
201
|
} & {
|
|
202
202
|
readonly renderDelay: number;
|
|
@@ -223,7 +223,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
223
223
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
224
224
|
renderProps(): any;
|
|
225
225
|
} & {
|
|
226
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
226
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
227
227
|
afterAttach(): void;
|
|
228
228
|
} & {
|
|
229
229
|
message: undefined | string;
|
|
@@ -339,7 +339,17 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
339
339
|
readonly quantitativeStatsReady: boolean;
|
|
340
340
|
} & {
|
|
341
341
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
342
|
+
type: string;
|
|
343
|
+
label?: undefined;
|
|
344
|
+
icon?: undefined;
|
|
345
|
+
subMenu?: undefined;
|
|
346
|
+
onClick?: undefined;
|
|
347
|
+
checked?: undefined;
|
|
348
|
+
} | {
|
|
342
349
|
label: string;
|
|
350
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
351
|
+
muiName: string;
|
|
352
|
+
};
|
|
343
353
|
subMenu: ({
|
|
344
354
|
label: string;
|
|
345
355
|
subMenu: {
|
|
@@ -362,8 +372,8 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
362
372
|
subMenu?: undefined;
|
|
363
373
|
})[];
|
|
364
374
|
type?: undefined;
|
|
365
|
-
checked?: undefined;
|
|
366
375
|
onClick?: undefined;
|
|
376
|
+
checked?: undefined;
|
|
367
377
|
} | {
|
|
368
378
|
label: string;
|
|
369
379
|
subMenu: {
|
|
@@ -373,10 +383,23 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
373
383
|
onClick: () => void;
|
|
374
384
|
}[];
|
|
375
385
|
type?: undefined;
|
|
376
|
-
|
|
386
|
+
icon?: undefined;
|
|
377
387
|
onClick?: undefined;
|
|
388
|
+
checked?: undefined;
|
|
389
|
+
} | {
|
|
390
|
+
label: string;
|
|
391
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
392
|
+
muiName: string;
|
|
393
|
+
};
|
|
394
|
+
onClick: () => void;
|
|
395
|
+
type?: undefined;
|
|
396
|
+
subMenu?: undefined;
|
|
397
|
+
checked?: undefined;
|
|
378
398
|
} | {
|
|
379
399
|
type: string;
|
|
400
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
401
|
+
muiName: string;
|
|
402
|
+
};
|
|
380
403
|
label: string;
|
|
381
404
|
checked: boolean;
|
|
382
405
|
onClick: () => void;
|
|
@@ -384,7 +407,7 @@ export default function SharedModelF(pluginManager: PluginManager, configSchema:
|
|
|
384
407
|
})[];
|
|
385
408
|
} & {
|
|
386
409
|
afterAttach(): void;
|
|
387
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
410
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
388
411
|
} & {
|
|
389
412
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
390
413
|
windowSize: number;
|
|
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
192
192
|
} & {
|
|
193
193
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
194
194
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
195
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
195
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
196
196
|
} & {
|
|
197
197
|
featureIdUnderMouse: undefined | string;
|
|
198
198
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
199
199
|
} & {
|
|
200
|
-
readonly DisplayMessageComponent:
|
|
201
|
-
readonly blockType: "
|
|
200
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
201
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
202
202
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
203
203
|
} & {
|
|
204
204
|
readonly renderDelay: number;
|
|
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
225
225
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
226
226
|
renderProps(): any;
|
|
227
227
|
} & {
|
|
228
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
228
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
229
229
|
afterAttach(): void;
|
|
230
230
|
} & {
|
|
231
231
|
message: undefined | string;
|
|
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
341
341
|
readonly quantitativeStatsReady: boolean;
|
|
342
342
|
} & {
|
|
343
343
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
344
|
+
type: string;
|
|
345
|
+
label?: undefined;
|
|
346
|
+
icon?: undefined;
|
|
347
|
+
subMenu?: undefined;
|
|
348
|
+
onClick?: undefined;
|
|
349
|
+
checked?: undefined;
|
|
350
|
+
} | {
|
|
344
351
|
label: string;
|
|
352
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
353
|
+
muiName: string;
|
|
354
|
+
};
|
|
345
355
|
subMenu: ({
|
|
346
356
|
label: string;
|
|
347
357
|
subMenu: {
|
|
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
364
374
|
subMenu?: undefined;
|
|
365
375
|
})[];
|
|
366
376
|
type?: undefined;
|
|
367
|
-
checked?: undefined;
|
|
368
377
|
onClick?: undefined;
|
|
378
|
+
checked?: undefined;
|
|
369
379
|
} | {
|
|
370
380
|
label: string;
|
|
371
381
|
subMenu: {
|
|
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
375
385
|
onClick: () => void;
|
|
376
386
|
}[];
|
|
377
387
|
type?: undefined;
|
|
378
|
-
|
|
388
|
+
icon?: undefined;
|
|
379
389
|
onClick?: undefined;
|
|
390
|
+
checked?: undefined;
|
|
391
|
+
} | {
|
|
392
|
+
label: string;
|
|
393
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
394
|
+
muiName: string;
|
|
395
|
+
};
|
|
396
|
+
onClick: () => void;
|
|
397
|
+
type?: undefined;
|
|
398
|
+
subMenu?: undefined;
|
|
399
|
+
checked?: undefined;
|
|
380
400
|
} | {
|
|
381
401
|
type: string;
|
|
402
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
403
|
+
muiName: string;
|
|
404
|
+
};
|
|
382
405
|
label: string;
|
|
383
406
|
checked: boolean;
|
|
384
407
|
onClick: () => void;
|
|
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
386
409
|
})[];
|
|
387
410
|
} & {
|
|
388
411
|
afterAttach(): void;
|
|
389
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
412
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
390
413
|
} & {
|
|
391
414
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
392
415
|
windowSize: number;
|
|
@@ -35,7 +35,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
35
35
|
status?: string;
|
|
36
36
|
reactElement?: React.ReactElement;
|
|
37
37
|
};
|
|
38
|
-
}) => import("react").JSX.Element | undefined;
|
|
38
|
+
}) => import("react/jsx-runtime").JSX.Element | undefined;
|
|
39
39
|
renderProps: any;
|
|
40
40
|
} & {
|
|
41
41
|
doReload(): void;
|
|
@@ -192,13 +192,13 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
192
192
|
} & {
|
|
193
193
|
readonly statsReadyAndRegionNotTooLarge: boolean;
|
|
194
194
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
195
|
-
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
195
|
+
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
|
|
196
196
|
} & {
|
|
197
197
|
featureIdUnderMouse: undefined | string;
|
|
198
198
|
contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
|
|
199
199
|
} & {
|
|
200
|
-
readonly DisplayMessageComponent:
|
|
201
|
-
readonly blockType: "
|
|
200
|
+
readonly DisplayMessageComponent: undefined | React.FC<any>;
|
|
201
|
+
readonly blockType: "staticBlocks" | "dynamicBlocks";
|
|
202
202
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
203
203
|
} & {
|
|
204
204
|
readonly renderDelay: number;
|
|
@@ -225,7 +225,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
225
225
|
contextMenuItems(): import("@jbrowse/core/ui").MenuItem[];
|
|
226
226
|
renderProps(): any;
|
|
227
227
|
} & {
|
|
228
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
228
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
229
229
|
afterAttach(): void;
|
|
230
230
|
} & {
|
|
231
231
|
message: undefined | string;
|
|
@@ -341,7 +341,17 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
341
341
|
readonly quantitativeStatsReady: boolean;
|
|
342
342
|
} & {
|
|
343
343
|
trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
|
|
344
|
+
type: string;
|
|
345
|
+
label?: undefined;
|
|
346
|
+
icon?: undefined;
|
|
347
|
+
subMenu?: undefined;
|
|
348
|
+
onClick?: undefined;
|
|
349
|
+
checked?: undefined;
|
|
350
|
+
} | {
|
|
344
351
|
label: string;
|
|
352
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
353
|
+
muiName: string;
|
|
354
|
+
};
|
|
345
355
|
subMenu: ({
|
|
346
356
|
label: string;
|
|
347
357
|
subMenu: {
|
|
@@ -364,8 +374,8 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
364
374
|
subMenu?: undefined;
|
|
365
375
|
})[];
|
|
366
376
|
type?: undefined;
|
|
367
|
-
checked?: undefined;
|
|
368
377
|
onClick?: undefined;
|
|
378
|
+
checked?: undefined;
|
|
369
379
|
} | {
|
|
370
380
|
label: string;
|
|
371
381
|
subMenu: {
|
|
@@ -375,10 +385,23 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
375
385
|
onClick: () => void;
|
|
376
386
|
}[];
|
|
377
387
|
type?: undefined;
|
|
378
|
-
|
|
388
|
+
icon?: undefined;
|
|
379
389
|
onClick?: undefined;
|
|
390
|
+
checked?: undefined;
|
|
391
|
+
} | {
|
|
392
|
+
label: string;
|
|
393
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
394
|
+
muiName: string;
|
|
395
|
+
};
|
|
396
|
+
onClick: () => void;
|
|
397
|
+
type?: undefined;
|
|
398
|
+
subMenu?: undefined;
|
|
399
|
+
checked?: undefined;
|
|
380
400
|
} | {
|
|
381
401
|
type: string;
|
|
402
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
403
|
+
muiName: string;
|
|
404
|
+
};
|
|
382
405
|
label: string;
|
|
383
406
|
checked: boolean;
|
|
384
407
|
onClick: () => void;
|
|
@@ -386,7 +409,7 @@ export default function stateModelF(pluginManager: PluginManager, configSchema:
|
|
|
386
409
|
})[];
|
|
387
410
|
} & {
|
|
388
411
|
afterAttach(): void;
|
|
389
|
-
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react").JSX.Element>;
|
|
412
|
+
renderSvg(opts: import("@jbrowse/plugin-linear-genome-view").ExportSvgDisplayOptions): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
390
413
|
} & {
|
|
391
414
|
setGCContentParams({ windowSize, windowDelta, }: {
|
|
392
415
|
windowSize: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-gccontent",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "JBrowse 2 gccontent concepts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"distModule": "esm/index.js",
|
|
54
54
|
"srcModule": "src/index.ts",
|
|
55
55
|
"module": "esm/index.js",
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "2c6897f1fa732b1db5b094d1dca197e333e95319"
|
|
57
57
|
}
|