@jbrowse/plugin-linear-comparative-view 2.17.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/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.d.ts +6 -5
- package/dist/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.js +36 -60
- package/dist/LGVSyntenyDisplay/components/util.d.ts +9 -6
- package/dist/LGVSyntenyDisplay/components/util.js +6 -13
- package/dist/LGVSyntenyDisplay/configSchemaF.d.ts +19 -10
- package/dist/LGVSyntenyDisplay/configSchemaF.js +12 -9
- package/dist/LGVSyntenyDisplay/index.d.ts +1 -1
- package/dist/LGVSyntenyDisplay/index.js +1 -1
- package/dist/LGVSyntenyDisplay/model.d.ts +122 -69
- package/dist/LGVSyntenyDisplay/model.js +20 -37
- package/dist/LaunchLinearSyntenyView.d.ts +1 -1
- package/dist/LaunchLinearSyntenyView.js +1 -3
- package/dist/LinearComparativeDisplay/configSchemaF.d.ts +0 -3
- package/dist/LinearComparativeDisplay/configSchemaF.js +0 -6
- package/dist/LinearComparativeDisplay/index.d.ts +1 -1
- package/dist/LinearComparativeDisplay/stateModelFactory.d.ts +12 -69
- package/dist/LinearComparativeDisplay/stateModelFactory.js +13 -57
- package/dist/LinearComparativeView/components/Header.d.ts +2 -3
- package/dist/LinearComparativeView/components/Header.js +56 -86
- package/dist/LinearComparativeView/components/HeaderSearchBoxes.d.ts +2 -3
- package/dist/LinearComparativeView/components/HeaderSearchBoxes.js +5 -15
- package/dist/LinearComparativeView/components/LinearComparativeRenderArea.d.ts +2 -3
- package/dist/LinearComparativeView/components/LinearComparativeRenderArea.js +17 -32
- package/dist/LinearComparativeView/components/LinearComparativeView.d.ts +2 -3
- package/dist/LinearComparativeView/components/LinearComparativeView.js +4 -9
- package/dist/LinearComparativeView/components/Rubberband.d.ts +2 -3
- package/dist/LinearComparativeView/components/Rubberband.js +36 -69
- package/dist/LinearComparativeView/components/VerticalGuide.d.ts +2 -3
- package/dist/LinearComparativeView/components/VerticalGuide.js +5 -9
- package/dist/LinearComparativeView/index.d.ts +1 -1
- package/dist/LinearComparativeView/index.js +17 -7
- package/dist/LinearComparativeView/model.d.ts +38 -90
- package/dist/LinearComparativeView/model.js +40 -107
- package/dist/LinearReadVsRef/LinearReadVsRef.d.ts +2 -3
- package/dist/LinearReadVsRef/LinearReadVsRef.js +10 -55
- package/dist/LinearReadVsRef/index.d.ts +1 -1
- package/dist/LinearReadVsRef/index.js +17 -9
- package/dist/LinearSyntenyDisplay/afterAttach.d.ts +1 -1
- package/dist/LinearSyntenyDisplay/afterAttach.js +8 -12
- package/dist/LinearSyntenyDisplay/components/Component.d.ts +2 -3
- package/dist/LinearSyntenyDisplay/components/Component.js +11 -36
- package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +2 -3
- package/dist/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +95 -106
- package/dist/LinearSyntenyDisplay/components/SyntenyContextMenu.d.ts +3 -4
- package/dist/LinearSyntenyDisplay/components/SyntenyContextMenu.js +3 -6
- package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.d.ts +1 -2
- package/dist/LinearSyntenyDisplay/components/SyntenyTooltip.js +3 -4
- package/dist/LinearSyntenyDisplay/components/util.d.ts +3 -3
- package/dist/LinearSyntenyDisplay/components/util.js +0 -9
- package/dist/LinearSyntenyDisplay/configSchemaF.d.ts +1 -12
- package/dist/LinearSyntenyDisplay/configSchemaF.js +0 -15
- package/dist/LinearSyntenyDisplay/drawSynteny.d.ts +1 -1
- package/dist/LinearSyntenyDisplay/drawSynteny.js +1 -23
- package/dist/LinearSyntenyDisplay/index.d.ts +1 -1
- package/dist/LinearSyntenyDisplay/index.js +18 -9
- package/dist/LinearSyntenyDisplay/model.d.ts +8 -102
- package/dist/LinearSyntenyDisplay/model.js +18 -99
- package/dist/LinearSyntenyView/components/ExportSvgDialog.d.ts +2 -3
- package/dist/LinearSyntenyView/components/ExportSvgDialog.js +35 -76
- package/dist/LinearSyntenyView/components/Icons.d.ts +3 -4
- package/dist/LinearSyntenyView/components/Icons.js +3 -8
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +8 -0
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +130 -0
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyPreConfigured.d.ts +8 -0
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyPreConfigured.js +39 -0
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyTrackSelectorArea.d.ts +7 -0
- package/dist/LinearSyntenyView/components/ImportForm/ImportSyntenyTrackSelectorArea.js +22 -0
- package/dist/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.d.ts +2 -3
- package/dist/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +49 -150
- package/dist/LinearSyntenyView/components/ImportForm/doSubmit.d.ts +5 -0
- package/dist/LinearSyntenyView/components/ImportForm/doSubmit.js +43 -0
- package/dist/LinearSyntenyView/components/ImportForm/getAdapter.d.ts +117 -0
- package/dist/LinearSyntenyView/components/ImportForm/getAdapter.js +68 -0
- package/dist/LinearSyntenyView/components/ImportForm/util.js +1 -3
- package/dist/LinearSyntenyView/components/LinearSyntenyView.d.ts +2 -3
- package/dist/LinearSyntenyView/components/LinearSyntenyView.js +20 -10
- package/dist/LinearSyntenyView/index.d.ts +1 -1
- package/dist/LinearSyntenyView/index.js +17 -7
- package/dist/LinearSyntenyView/model.d.ts +54 -58
- package/dist/LinearSyntenyView/model.js +61 -56
- package/dist/LinearSyntenyView/svgcomponents/SVGBackground.d.ts +1 -2
- package/dist/LinearSyntenyView/svgcomponents/SVGBackground.js +3 -6
- package/dist/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.d.ts +2 -3
- package/dist/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.js +3 -11
- package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +1 -1
- package/dist/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +7 -24
- package/dist/LinearSyntenyView/types.d.ts +12 -0
- package/dist/LinearSyntenyView/types.js +2 -0
- package/dist/LinearSyntenyViewHelper/index.d.ts +1 -1
- package/dist/LinearSyntenyViewHelper/index.js +2 -2
- package/dist/LinearSyntenyViewHelper/stateModelFactory.d.ts +2 -14
- package/dist/LinearSyntenyViewHelper/stateModelFactory.js +2 -29
- package/dist/SyntenyFeatureDetail/LinkToSyntenyView.d.ts +5 -0
- package/dist/SyntenyFeatureDetail/LinkToSyntenyView.js +87 -0
- package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +2 -11
- package/dist/SyntenyFeatureDetail/SyntenyFeatureDetail.js +5 -90
- package/dist/SyntenyFeatureDetail/index.d.ts +1 -1
- package/dist/SyntenyFeatureDetail/index.js +18 -14
- package/dist/SyntenyFeatureDetail/types.d.ts +9 -0
- package/dist/SyntenyFeatureDetail/types.js +2 -0
- package/dist/SyntenyTrack/configSchema.d.ts +1 -1
- package/dist/SyntenyTrack/configSchema.js +1 -9
- package/dist/SyntenyTrack/index.d.ts +1 -1
- package/dist/SyntenyTrack/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -4
- package/dist/util.d.ts +2 -2
- package/dist/util.js +1 -11
- package/esm/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.d.ts +6 -5
- package/esm/LGVSyntenyDisplay/components/LaunchSyntenyViewDialog.js +35 -36
- package/esm/LGVSyntenyDisplay/components/util.d.ts +9 -6
- package/esm/LGVSyntenyDisplay/components/util.js +6 -13
- package/esm/LGVSyntenyDisplay/configSchemaF.d.ts +19 -10
- package/esm/LGVSyntenyDisplay/configSchemaF.js +12 -9
- package/esm/LGVSyntenyDisplay/index.d.ts +1 -1
- package/esm/LGVSyntenyDisplay/index.js +1 -1
- package/esm/LGVSyntenyDisplay/model.d.ts +122 -69
- package/esm/LGVSyntenyDisplay/model.js +4 -31
- package/esm/LaunchLinearSyntenyView.d.ts +1 -1
- package/esm/LaunchLinearSyntenyView.js +1 -3
- package/esm/LinearComparativeDisplay/configSchemaF.d.ts +0 -3
- package/esm/LinearComparativeDisplay/configSchemaF.js +0 -6
- package/esm/LinearComparativeDisplay/index.d.ts +1 -1
- package/esm/LinearComparativeDisplay/stateModelFactory.d.ts +12 -69
- package/esm/LinearComparativeDisplay/stateModelFactory.js +14 -58
- package/esm/LinearComparativeView/components/Header.d.ts +2 -3
- package/esm/LinearComparativeView/components/Header.js +56 -63
- package/esm/LinearComparativeView/components/HeaderSearchBoxes.d.ts +2 -3
- package/esm/LinearComparativeView/components/HeaderSearchBoxes.js +5 -12
- package/esm/LinearComparativeView/components/LinearComparativeRenderArea.d.ts +2 -3
- package/esm/LinearComparativeView/components/LinearComparativeRenderArea.js +17 -29
- package/esm/LinearComparativeView/components/LinearComparativeView.d.ts +2 -3
- package/esm/LinearComparativeView/components/LinearComparativeView.js +4 -9
- package/esm/LinearComparativeView/components/Rubberband.d.ts +2 -3
- package/esm/LinearComparativeView/components/Rubberband.js +36 -46
- package/esm/LinearComparativeView/components/VerticalGuide.d.ts +2 -3
- package/esm/LinearComparativeView/components/VerticalGuide.js +5 -6
- package/esm/LinearComparativeView/index.d.ts +1 -1
- package/esm/LinearComparativeView/model.d.ts +38 -90
- package/esm/LinearComparativeView/model.js +24 -101
- package/esm/LinearReadVsRef/LinearReadVsRef.d.ts +2 -3
- package/esm/LinearReadVsRef/LinearReadVsRef.js +10 -32
- package/esm/LinearReadVsRef/index.d.ts +1 -1
- package/esm/LinearReadVsRef/index.js +1 -3
- package/esm/LinearSyntenyDisplay/afterAttach.d.ts +1 -1
- package/esm/LinearSyntenyDisplay/afterAttach.js +8 -12
- package/esm/LinearSyntenyDisplay/components/Component.d.ts +2 -3
- package/esm/LinearSyntenyDisplay/components/Component.js +11 -13
- package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.d.ts +2 -3
- package/esm/LinearSyntenyDisplay/components/LinearSyntenyRendering.js +79 -100
- package/esm/LinearSyntenyDisplay/components/SyntenyContextMenu.d.ts +3 -4
- package/esm/LinearSyntenyDisplay/components/SyntenyContextMenu.js +3 -3
- package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.d.ts +1 -2
- package/esm/LinearSyntenyDisplay/components/SyntenyTooltip.js +3 -4
- package/esm/LinearSyntenyDisplay/components/util.d.ts +3 -3
- package/esm/LinearSyntenyDisplay/components/util.js +2 -11
- package/esm/LinearSyntenyDisplay/configSchemaF.d.ts +1 -12
- package/esm/LinearSyntenyDisplay/configSchemaF.js +0 -15
- package/esm/LinearSyntenyDisplay/drawSynteny.d.ts +1 -1
- package/esm/LinearSyntenyDisplay/drawSynteny.js +1 -23
- package/esm/LinearSyntenyDisplay/index.d.ts +1 -1
- package/esm/LinearSyntenyDisplay/index.js +1 -2
- package/esm/LinearSyntenyDisplay/model.d.ts +8 -102
- package/esm/LinearSyntenyDisplay/model.js +1 -92
- package/esm/LinearSyntenyView/components/ExportSvgDialog.d.ts +2 -3
- package/esm/LinearSyntenyView/components/ExportSvgDialog.js +35 -53
- package/esm/LinearSyntenyView/components/Icons.d.ts +3 -4
- package/esm/LinearSyntenyView/components/Icons.js +3 -5
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.d.ts +8 -0
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyOpenCustomTrack.js +125 -0
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyPreConfigured.d.ts +8 -0
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyPreConfigured.js +37 -0
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyTrackSelectorArea.d.ts +7 -0
- package/esm/LinearSyntenyView/components/ImportForm/ImportSyntenyTrackSelectorArea.js +16 -0
- package/esm/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.d.ts +2 -3
- package/esm/LinearSyntenyView/components/ImportForm/LinearSyntenyImportForm.js +49 -127
- package/esm/LinearSyntenyView/components/ImportForm/doSubmit.d.ts +5 -0
- package/esm/LinearSyntenyView/components/ImportForm/doSubmit.js +40 -0
- package/esm/LinearSyntenyView/components/ImportForm/getAdapter.d.ts +117 -0
- package/esm/LinearSyntenyView/components/ImportForm/getAdapter.js +65 -0
- package/esm/LinearSyntenyView/components/ImportForm/util.js +1 -3
- package/esm/LinearSyntenyView/components/LinearSyntenyView.d.ts +2 -3
- package/esm/LinearSyntenyView/components/LinearSyntenyView.js +3 -3
- package/esm/LinearSyntenyView/index.d.ts +1 -1
- package/esm/LinearSyntenyView/model.d.ts +54 -58
- package/esm/LinearSyntenyView/model.js +44 -49
- package/esm/LinearSyntenyView/svgcomponents/SVGBackground.d.ts +1 -2
- package/esm/LinearSyntenyView/svgcomponents/SVGBackground.js +3 -3
- package/esm/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.d.ts +2 -3
- package/esm/LinearSyntenyView/svgcomponents/SVGLinearGenomeView.js +4 -9
- package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.d.ts +1 -1
- package/esm/LinearSyntenyView/svgcomponents/SVGLinearSyntenyView.js +8 -25
- package/esm/LinearSyntenyView/types.d.ts +12 -0
- package/esm/LinearSyntenyView/types.js +1 -0
- package/esm/LinearSyntenyViewHelper/index.d.ts +1 -1
- package/esm/LinearSyntenyViewHelper/index.js +2 -2
- package/esm/LinearSyntenyViewHelper/stateModelFactory.d.ts +2 -14
- package/esm/LinearSyntenyViewHelper/stateModelFactory.js +2 -29
- package/esm/SyntenyFeatureDetail/LinkToSyntenyView.d.ts +5 -0
- package/esm/SyntenyFeatureDetail/LinkToSyntenyView.js +52 -0
- package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.d.ts +2 -11
- package/esm/SyntenyFeatureDetail/SyntenyFeatureDetail.js +6 -68
- package/esm/SyntenyFeatureDetail/index.d.ts +1 -1
- package/esm/SyntenyFeatureDetail/index.js +1 -7
- package/esm/SyntenyFeatureDetail/types.d.ts +9 -0
- package/esm/SyntenyFeatureDetail/types.js +1 -0
- package/esm/SyntenyTrack/configSchema.d.ts +1 -1
- package/esm/SyntenyTrack/configSchema.js +1 -9
- package/esm/SyntenyTrack/index.d.ts +1 -1
- package/esm/SyntenyTrack/index.js +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +4 -4
- package/esm/util.d.ts +2 -2
- package/esm/util.js +1 -11
- package/package.json +2 -4
- package/dist/LinearSyntenyView/components/ImportForm/AddCustomTrack.d.ts +0 -10
- package/dist/LinearSyntenyView/components/ImportForm/AddCustomTrack.js +0 -194
- package/dist/LinearSyntenyView/components/ImportForm/Spacer.d.ts +0 -2
- package/dist/LinearSyntenyView/components/ImportForm/Spacer.js +0 -10
- package/dist/LinearSyntenyView/components/ImportForm/TrackSelector.d.ts +0 -10
- package/dist/LinearSyntenyView/components/ImportForm/TrackSelector.js +0 -59
- package/dist/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.d.ts +0 -14
- package/dist/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.js +0 -52
- package/esm/LinearSyntenyView/components/ImportForm/AddCustomTrack.d.ts +0 -10
- package/esm/LinearSyntenyView/components/ImportForm/AddCustomTrack.js +0 -169
- package/esm/LinearSyntenyView/components/ImportForm/Spacer.d.ts +0 -2
- package/esm/LinearSyntenyView/components/ImportForm/Spacer.js +0 -4
- package/esm/LinearSyntenyView/components/ImportForm/TrackSelector.d.ts +0 -10
- package/esm/LinearSyntenyView/components/ImportForm/TrackSelector.js +0 -34
- package/esm/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.d.ts +0 -14
- package/esm/LinearSyntenyView/components/ImportForm/TrackSelectorUtil.js +0 -23
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import type { Instance } from 'mobx-state-tree';
|
|
3
3
|
export declare function linearSyntenyViewHelperModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
4
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
5
|
type: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
@@ -7,21 +7,9 @@ export declare function linearSyntenyViewHelperModelFactory(pluginManager: Plugi
|
|
|
7
7
|
height: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
8
8
|
level: import("mobx-state-tree").ISimpleType<number>;
|
|
9
9
|
}, {
|
|
10
|
-
/**
|
|
11
|
-
* #action
|
|
12
|
-
*/
|
|
13
10
|
setHeight(n: number): number;
|
|
14
|
-
/**
|
|
15
|
-
* #action
|
|
16
|
-
*/
|
|
17
11
|
showTrack(trackId: string, initialSnapshot?: {}): void;
|
|
18
|
-
/**
|
|
19
|
-
* #action
|
|
20
|
-
*/
|
|
21
12
|
hideTrack(trackId: string): number;
|
|
22
|
-
/**
|
|
23
|
-
* #action
|
|
24
|
-
*/
|
|
25
13
|
toggleTrack(trackId: string): boolean;
|
|
26
14
|
} & {
|
|
27
15
|
readonly assemblyNames: (string | undefined)[];
|
|
@@ -1,41 +1,20 @@
|
|
|
1
|
-
import { getRoot, resolveIdentifier, types, getParent, } from 'mobx-state-tree';
|
|
2
|
-
import { transaction } from 'mobx';
|
|
3
1
|
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
2
|
+
import { transaction } from 'mobx';
|
|
3
|
+
import { getParent, getRoot, resolveIdentifier, types } from 'mobx-state-tree';
|
|
4
4
|
export function linearSyntenyViewHelperModelFactory(pluginManager) {
|
|
5
5
|
return types
|
|
6
6
|
.model('LinearSyntenyViewHelper', {
|
|
7
|
-
/**
|
|
8
|
-
* #property
|
|
9
|
-
*/
|
|
10
7
|
id: ElementId,
|
|
11
|
-
/**
|
|
12
|
-
* #property
|
|
13
|
-
*/
|
|
14
8
|
type: 'LinearSyntenyViewHelper',
|
|
15
|
-
/**
|
|
16
|
-
* #property
|
|
17
|
-
*/
|
|
18
9
|
tracks: types.array(pluginManager.pluggableMstType('track', 'stateModel')),
|
|
19
|
-
/**
|
|
20
|
-
* #property
|
|
21
|
-
*/
|
|
22
10
|
height: 100,
|
|
23
|
-
/**
|
|
24
|
-
* #property
|
|
25
|
-
*/
|
|
26
11
|
level: types.number,
|
|
27
12
|
})
|
|
28
13
|
.actions(self => ({
|
|
29
|
-
/**
|
|
30
|
-
* #action
|
|
31
|
-
*/
|
|
32
14
|
setHeight(n) {
|
|
33
15
|
self.height = n;
|
|
34
16
|
return self.height;
|
|
35
17
|
},
|
|
36
|
-
/**
|
|
37
|
-
* #action
|
|
38
|
-
*/
|
|
39
18
|
showTrack(trackId, initialSnapshot = {}) {
|
|
40
19
|
const schema = pluginManager.pluggableConfigSchemaType('track');
|
|
41
20
|
const configuration = resolveIdentifier(schema, getRoot(self), trackId);
|
|
@@ -64,9 +43,6 @@ export function linearSyntenyViewHelperModelFactory(pluginManager) {
|
|
|
64
43
|
],
|
|
65
44
|
}));
|
|
66
45
|
},
|
|
67
|
-
/**
|
|
68
|
-
* #action
|
|
69
|
-
*/
|
|
70
46
|
hideTrack(trackId) {
|
|
71
47
|
const schema = pluginManager.pluggableConfigSchemaType('track');
|
|
72
48
|
const config = resolveIdentifier(schema, getRoot(self), trackId);
|
|
@@ -78,9 +54,6 @@ export function linearSyntenyViewHelperModelFactory(pluginManager) {
|
|
|
78
54
|
});
|
|
79
55
|
return shownTracks.length;
|
|
80
56
|
},
|
|
81
|
-
/**
|
|
82
|
-
* #action
|
|
83
|
-
*/
|
|
84
57
|
toggleTrack(trackId) {
|
|
85
58
|
const hiddenCount = this.hideTrack(trackId);
|
|
86
59
|
if (!hiddenCount) {
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { lazy } from 'react';
|
|
3
|
+
import { SimpleFeature, assembleLocString, getSession, } from '@jbrowse/core/util';
|
|
4
|
+
import { Link } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
const LaunchSyntenyViewDialog = lazy(() => import('../LGVSyntenyDisplay/components/LaunchSyntenyViewDialog'));
|
|
7
|
+
const LinkToSyntenyView = observer(function ({ model, }) {
|
|
8
|
+
const { featureData, view, level, trackId } = model;
|
|
9
|
+
return (_jsxs("ul", { children: [view.type === 'LinearSyntenyView' ? (_jsx("li", { children: _jsx(Link, { href: "#", onClick: event => {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
const { views } = view;
|
|
13
|
+
if (level !== undefined) {
|
|
14
|
+
(_a = views[level]) === null || _a === void 0 ? void 0 : _a.navTo(featureData);
|
|
15
|
+
(_b = views[level + 1]) === null || _b === void 0 ? void 0 : _b.navTo(featureData.mate);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const f1 = featureData;
|
|
19
|
+
const f2 = featureData.mate;
|
|
20
|
+
const r1 = f1.assemblyName;
|
|
21
|
+
const r2 = f2.assemblyName;
|
|
22
|
+
const v1 = views.find(view => view.assemblyNames[0] === r1);
|
|
23
|
+
const v2 = views.find(view => view.assemblyNames[0] === r2);
|
|
24
|
+
if (!v1 || !v2) {
|
|
25
|
+
getSession(model).notify([
|
|
26
|
+
v1
|
|
27
|
+
? `Unable to find ${assembleLocString(f1)} in synteny view`
|
|
28
|
+
: '',
|
|
29
|
+
v2
|
|
30
|
+
? `Unable to find ${assembleLocString(f2)} in synteny view`
|
|
31
|
+
: '',
|
|
32
|
+
].join(' ... '));
|
|
33
|
+
}
|
|
34
|
+
v1 === null || v1 === void 0 ? void 0 : v1.navTo(f1);
|
|
35
|
+
v2 === null || v2 === void 0 ? void 0 : v2.navTo(f2);
|
|
36
|
+
}
|
|
37
|
+
}, children: "Center view on this feature" }) })) : null, _jsx("li", { children: _jsx(Link, { href: "#", onClick: event => {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
const feature = new SimpleFeature(featureData);
|
|
40
|
+
const session = getSession(model);
|
|
41
|
+
session.queueDialog(handleClose => [
|
|
42
|
+
LaunchSyntenyViewDialog,
|
|
43
|
+
{
|
|
44
|
+
session,
|
|
45
|
+
feature,
|
|
46
|
+
trackId,
|
|
47
|
+
handleClose,
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
}, children: "Launch new linear synteny view on this feature" }) })] }));
|
|
51
|
+
});
|
|
52
|
+
export default LinkToSyntenyView;
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { SimpleFeatureSerialized } from '@jbrowse/core/util';
|
|
3
|
-
interface SyntenyFeatureDetailModel {
|
|
4
|
-
trackId: string;
|
|
5
|
-
featureData: SimpleFeatureSerialized;
|
|
6
|
-
level?: number;
|
|
7
|
-
view: {
|
|
8
|
-
type: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
1
|
+
import type { SyntenyFeatureDetailModel } from './types';
|
|
11
2
|
declare const SyntenyFeatureDetail: ({ model, }: {
|
|
12
3
|
model: SyntenyFeatureDetailModel;
|
|
13
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
14
5
|
export default SyntenyFeatureDetail;
|
|
@@ -1,72 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Link, Paper } from '@mui/material';
|
|
3
|
-
import { observer } from 'mobx-react';
|
|
4
|
-
// locals
|
|
5
|
-
import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
2
|
import BaseFeatureDetail from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const { featureData, view, level, trackId } = model;
|
|
12
|
-
return (React.createElement("ul", null,
|
|
13
|
-
view.type === 'LinearSyntenyView' ? (React.createElement("li", null,
|
|
14
|
-
React.createElement(Link, { href: "#", onClick: event => {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
event.preventDefault();
|
|
17
|
-
const { views } = view;
|
|
18
|
-
if (level !== undefined) {
|
|
19
|
-
// level is "pre-known", and stored in the SyntenyFeatureWidget
|
|
20
|
-
// model state e.g. when clicking on a feature from a
|
|
21
|
-
// LinearSyntenyRendering
|
|
22
|
-
(_a = views[level]) === null || _a === void 0 ? void 0 : _a.navTo(featureData);
|
|
23
|
-
(_b = views[level + 1]) === null || _b === void 0 ? void 0 : _b.navTo(featureData.mate);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
// best effort to find the right level. this is triggered for
|
|
27
|
-
// example if a user clicks on a feature in a LGVSyntenyDisplay
|
|
28
|
-
// in an existing LinearSyntenyView, there is no real proper
|
|
29
|
-
// level "pre-known" to this situation
|
|
30
|
-
const f1 = featureData;
|
|
31
|
-
const f2 = featureData.mate;
|
|
32
|
-
const r1 = f1.assemblyName;
|
|
33
|
-
const r2 = f2.assemblyName;
|
|
34
|
-
const v1 = views.find(view => view.assemblyNames[0] === r1);
|
|
35
|
-
const v2 = views.find(view => view.assemblyNames[0] === r2);
|
|
36
|
-
if (!v1 || !v2) {
|
|
37
|
-
getSession(model).notify([
|
|
38
|
-
v1
|
|
39
|
-
? `Unable to find ${assembleLocString(f1)} in synteny view`
|
|
40
|
-
: '',
|
|
41
|
-
v2
|
|
42
|
-
? `Unable to find ${assembleLocString(f2)} in synteny view`
|
|
43
|
-
: '',
|
|
44
|
-
].join(' ... '));
|
|
45
|
-
}
|
|
46
|
-
v1 === null || v1 === void 0 ? void 0 : v1.navTo(f1);
|
|
47
|
-
v2 === null || v2 === void 0 ? void 0 : v2.navTo(f2);
|
|
48
|
-
}
|
|
49
|
-
} }, "Center view on this feature"))) : null,
|
|
50
|
-
React.createElement("li", null,
|
|
51
|
-
React.createElement(Link, { href: "#", onClick: event => {
|
|
52
|
-
event.preventDefault();
|
|
53
|
-
const session = getSession(model);
|
|
54
|
-
const feature = new SimpleFeature(featureData);
|
|
55
|
-
session.queueDialog(handleClose => [
|
|
56
|
-
LaunchSyntenyViewDialog,
|
|
57
|
-
{
|
|
58
|
-
model,
|
|
59
|
-
feature,
|
|
60
|
-
trackId,
|
|
61
|
-
handleClose,
|
|
62
|
-
},
|
|
63
|
-
]);
|
|
64
|
-
} }, "Launch new linear synteny view on this feature"))));
|
|
65
|
-
});
|
|
3
|
+
import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard';
|
|
4
|
+
import { Paper } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import LinkToSyntenyView from './LinkToSyntenyView';
|
|
66
7
|
const SyntenyFeatureDetail = observer(function ({ model, }) {
|
|
67
|
-
return (
|
|
68
|
-
React.createElement(BaseFeatureDetail, { title: "Feature", model: model }),
|
|
69
|
-
React.createElement(BaseCard, { title: "Link to view" },
|
|
70
|
-
React.createElement(CustomLinker, { model: model }))));
|
|
8
|
+
return (_jsxs(Paper, { children: [_jsx(BaseFeatureDetail, { title: "Feature", model: model }), _jsx(BaseCard, { title: "Link to view", children: _jsx(LinkToSyntenyView, { model: model }) })] }));
|
|
71
9
|
});
|
|
72
10
|
export default SyntenyFeatureDetail;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
2
|
export default function SyntenyFeatureWidgetF(pluginManager: PluginManager): void;
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { lazy } from 'react';
|
|
2
|
+
import { stateModelFactory as BaseFeatureWidgetStateModelF } from '@jbrowse/core/BaseFeatureWidget';
|
|
2
3
|
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
3
4
|
import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType';
|
|
4
5
|
import { types } from 'mobx-state-tree';
|
|
5
|
-
import { stateModelFactory as BaseFeatureWidgetStateModelF } from '@jbrowse/core/BaseFeatureWidget';
|
|
6
6
|
const configSchema = ConfigurationSchema('SyntenyFeatureWidget', {});
|
|
7
7
|
function stateModelF(pluginManager) {
|
|
8
8
|
return types.compose(BaseFeatureWidgetStateModelF(pluginManager), types.model('SyntenyFeatureWidget', {
|
|
9
|
-
/**
|
|
10
|
-
* #property
|
|
11
|
-
*/
|
|
12
9
|
type: types.literal('SyntenyFeatureWidget'),
|
|
13
|
-
/**
|
|
14
|
-
* #property
|
|
15
|
-
*/
|
|
16
10
|
level: types.maybe(types.number),
|
|
17
11
|
}));
|
|
18
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
2
|
declare const configSchema: (pluginManager: PluginManager) => import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
3
3
|
name: {
|
|
4
4
|
description: string;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
2
|
import { createBaseTrackConfig } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
|
-
|
|
4
|
-
* #config SyntenyTrack
|
|
5
|
-
* extends
|
|
6
|
-
* - [BaseTrack](../basetrack)
|
|
7
|
-
*/
|
|
8
|
-
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
3
|
+
function x() { }
|
|
9
4
|
const configSchema = (pluginManager) => ConfigurationSchema('SyntenyTrack', {}, {
|
|
10
|
-
/**
|
|
11
|
-
* #baseConfiguration
|
|
12
|
-
*/
|
|
13
5
|
baseConfiguration: createBaseTrackConfig(pluginManager),
|
|
14
6
|
});
|
|
15
7
|
export default configSchema;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
2
|
export default function registerSyntenyTrack(pluginManager: PluginManager): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
2
1
|
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType';
|
|
2
|
+
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
3
|
import configSchemaF from './configSchema';
|
|
4
4
|
export default function registerSyntenyTrack(pluginManager) {
|
|
5
5
|
pluginManager.addTrackType(() => {
|
package/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Plugin from '@jbrowse/core/Plugin';
|
|
2
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
3
3
|
export default class LinearComparativeViewPlugin extends Plugin {
|
|
4
4
|
name: string;
|
|
5
5
|
install(pluginManager: PluginManager): void;
|
package/esm/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import Plugin from '@jbrowse/core/Plugin';
|
|
2
2
|
import { isAbstractMenuManager } from '@jbrowse/core/util';
|
|
3
3
|
import CalendarIcon from '@mui/icons-material/CalendarViewDay';
|
|
4
|
+
import LGVSyntenyDisplayF from './LGVSyntenyDisplay';
|
|
5
|
+
import LaunchLinearSyntenyViewF from './LaunchLinearSyntenyView';
|
|
4
6
|
import LinearComparativeDisplayF from './LinearComparativeDisplay';
|
|
5
7
|
import LinearComparativeViewF from './LinearComparativeView';
|
|
8
|
+
import LinearReadVsRefMenuItemF from './LinearReadVsRef';
|
|
6
9
|
import LinearSyntenyDisplayF from './LinearSyntenyDisplay';
|
|
7
|
-
import LGVSyntenyDisplayF from './LGVSyntenyDisplay';
|
|
8
10
|
import LinearSyntenyViewF from './LinearSyntenyView';
|
|
9
11
|
import LinearSyntenyViewHelperF from './LinearSyntenyViewHelper';
|
|
10
|
-
import LaunchLinearSyntenyViewF from './LaunchLinearSyntenyView';
|
|
11
|
-
import SyntenyTrackF from './SyntenyTrack';
|
|
12
|
-
import LinearReadVsRefMenuItemF from './LinearReadVsRef';
|
|
13
12
|
import SyntenyFeatureWidgetF from './SyntenyFeatureDetail';
|
|
13
|
+
import SyntenyTrackF from './SyntenyTrack';
|
|
14
14
|
export default class LinearComparativeViewPlugin extends Plugin {
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
package/esm/util.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
2
|
+
import type { Region } from '@jbrowse/core/util/types';
|
|
3
3
|
export type LayoutRecord = [number, number, number, number];
|
|
4
4
|
export interface ReducedLinearGenomeView {
|
|
5
5
|
bpPerPx: number;
|
package/esm/util.js
CHANGED
|
@@ -19,18 +19,14 @@ export function getTrackPos(view, trackConfigId) {
|
|
|
19
19
|
const idx = view.tracks.findIndex(t => t.configuration === trackConfigId);
|
|
20
20
|
let accum = 0;
|
|
21
21
|
for (let i = 0; i < idx; i += 1) {
|
|
22
|
-
accum += view.tracks[i].height + 3;
|
|
22
|
+
accum += view.tracks[i].height + 3;
|
|
23
23
|
}
|
|
24
24
|
return accum;
|
|
25
25
|
}
|
|
26
|
-
// Uses bpToPx to get the screen pixel coordinates but ignores some conditions
|
|
27
|
-
// where bpToPx could return undefined
|
|
28
26
|
export function getPxFromCoordinate(view, refName, coord) {
|
|
29
27
|
var _a;
|
|
30
28
|
return (((_a = bpToPx(view, { refName, coord })) === null || _a === void 0 ? void 0 : _a.offsetPx) || 0) - view.offsetPx;
|
|
31
29
|
}
|
|
32
|
-
// Retrieves the y-position of a layout record in a track
|
|
33
|
-
// If track not found returns 0
|
|
34
30
|
export function overlayYPos(trackConfigId, level, views, c, cond) {
|
|
35
31
|
const track = views[level].tracks.find(t => t.configuration === trackConfigId);
|
|
36
32
|
const ypos = track
|
|
@@ -40,11 +36,6 @@ export function overlayYPos(trackConfigId, level, views, c, cond) {
|
|
|
40
36
|
: 0;
|
|
41
37
|
return ypos + (cond ? cheight(c) : 0);
|
|
42
38
|
}
|
|
43
|
-
// Returns the pixel screen position of a refName:coord input, or undefined if
|
|
44
|
-
// the input could not be located. Uses view.displayedRegions as a representation
|
|
45
|
-
// of what is on the screen
|
|
46
|
-
//
|
|
47
|
-
// Note: does not consider that this refName:coord input could multi-match
|
|
48
39
|
function bpToPx(view, { refName, coord }) {
|
|
49
40
|
let offsetBp = 0;
|
|
50
41
|
const index = view.displayedRegions.findIndex(r => {
|
|
@@ -64,7 +55,6 @@ function bpToPx(view, { refName, coord }) {
|
|
|
64
55
|
}
|
|
65
56
|
return undefined;
|
|
66
57
|
}
|
|
67
|
-
// Returns either 0 or height depending on condition
|
|
68
58
|
export function interstitialYPos(cond, height) {
|
|
69
59
|
return cond ? 0 : height;
|
|
70
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-linear-comparative-view",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "JBrowse 2 linear comparative view",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -36,9 +36,7 @@
|
|
|
36
36
|
"clean": "rimraf dist esm *.tsbuildinfo"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@floating-ui/react": "^0.26.3",
|
|
40
39
|
"@mui/icons-material": "^6.0.0",
|
|
41
|
-
"clone": "^2.1.2",
|
|
42
40
|
"copy-to-clipboard": "^3.3.1",
|
|
43
41
|
"file-saver": "^2.0.0"
|
|
44
42
|
},
|
|
@@ -61,5 +59,5 @@
|
|
|
61
59
|
"publishConfig": {
|
|
62
60
|
"access": "public"
|
|
63
61
|
},
|
|
64
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "2c6897f1fa732b1db5b094d1dca197e333e95319"
|
|
65
63
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { SnapshotIn } from 'mobx-state-tree';
|
|
3
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
4
|
-
type Conf = SnapshotIn<AnyConfigurationModel>;
|
|
5
|
-
declare const ImportCustomTrack: ({ assembly1, assembly2, setUserOpenedSyntenyTrack, }: {
|
|
6
|
-
assembly1: string;
|
|
7
|
-
assembly2: string;
|
|
8
|
-
setUserOpenedSyntenyTrack: (arg: Conf) => void;
|
|
9
|
-
}) => React.JSX.Element;
|
|
10
|
-
export default ImportCustomTrack;
|
|
@@ -1,194 +0,0 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const react_1 = __importStar(require("react"));
|
|
27
|
-
const material_1 = require("@mui/material");
|
|
28
|
-
const ui_1 = require("@jbrowse/core/ui");
|
|
29
|
-
const mobx_react_1 = require("mobx-react");
|
|
30
|
-
const util_1 = require("./util");
|
|
31
|
-
function getAdapter({ radioOption, assembly1, assembly2, fileLocation, indexFileLocation, bed1Location, bed2Location, }) {
|
|
32
|
-
if (radioOption === '.paf') {
|
|
33
|
-
return {
|
|
34
|
-
type: 'PAFAdapter',
|
|
35
|
-
pafLocation: fileLocation,
|
|
36
|
-
queryAssembly: assembly1,
|
|
37
|
-
targetAssembly: assembly2,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
else if (radioOption === '.out') {
|
|
41
|
-
return {
|
|
42
|
-
type: 'MashMapAdapter',
|
|
43
|
-
outLocation: fileLocation,
|
|
44
|
-
queryAssembly: assembly1,
|
|
45
|
-
targetAssembly: assembly2,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
else if (radioOption === '.delta') {
|
|
49
|
-
return {
|
|
50
|
-
type: 'DeltaAdapter',
|
|
51
|
-
deltaLocation: fileLocation,
|
|
52
|
-
queryAssembly: assembly1,
|
|
53
|
-
targetAssembly: assembly2,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
else if (radioOption === '.chain') {
|
|
57
|
-
return {
|
|
58
|
-
type: 'ChainAdapter',
|
|
59
|
-
chainLocation: fileLocation,
|
|
60
|
-
queryAssembly: assembly1,
|
|
61
|
-
targetAssembly: assembly2,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
else if (radioOption === '.anchors') {
|
|
65
|
-
return {
|
|
66
|
-
type: 'MCScanAnchorsAdapter',
|
|
67
|
-
mcscanAnchorsLocation: fileLocation,
|
|
68
|
-
bed1Location,
|
|
69
|
-
bed2Location,
|
|
70
|
-
assemblyNames: [assembly1, assembly2],
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
else if (radioOption === '.anchors.simple') {
|
|
74
|
-
return {
|
|
75
|
-
type: 'MCScanSimpleAnchorsAdapter',
|
|
76
|
-
mcscanSimpleAnchorsLocation: fileLocation,
|
|
77
|
-
bed1Location,
|
|
78
|
-
bed2Location,
|
|
79
|
-
assemblyNames: [assembly1, assembly2],
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
else if (radioOption === '.pif.gz') {
|
|
83
|
-
return {
|
|
84
|
-
type: 'PairwiseIndexedPAFAdapter',
|
|
85
|
-
pifGzLocation: fileLocation,
|
|
86
|
-
index: { location: indexFileLocation },
|
|
87
|
-
assemblyNames: [assembly1, assembly2],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
throw new Error(`Unknown to detect type ${radioOption} from filename (select radio button to clarify)`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
const ImportCustomTrack = (0, mobx_react_1.observer)(function ({ assembly1, assembly2, setUserOpenedSyntenyTrack, }) {
|
|
95
|
-
const [bed2Location, setBed2Location] = (0, react_1.useState)();
|
|
96
|
-
const [bed1Location, setBed1Location] = (0, react_1.useState)();
|
|
97
|
-
const [fileLocation, setFileLocation] = (0, react_1.useState)();
|
|
98
|
-
const [indexFileLocation, setIndexFileLocation] = (0, react_1.useState)();
|
|
99
|
-
const [value, setValue] = (0, react_1.useState)('');
|
|
100
|
-
const [error, setError] = (0, react_1.useState)();
|
|
101
|
-
const fileName = (0, util_1.getName)(fileLocation);
|
|
102
|
-
const radioOption = value || (fileName ? (0, util_1.extName)((0, util_1.stripGz)(fileName)) : '');
|
|
103
|
-
(0, react_1.useEffect)(() => {
|
|
104
|
-
try {
|
|
105
|
-
if (fileLocation) {
|
|
106
|
-
const fn = fileName ? (0, util_1.basename)(fileName) : 'MyTrack';
|
|
107
|
-
const trackId = `${fn}-${Date.now()}`;
|
|
108
|
-
setError(undefined);
|
|
109
|
-
setUserOpenedSyntenyTrack({
|
|
110
|
-
trackId,
|
|
111
|
-
name: fn,
|
|
112
|
-
assemblyNames: [assembly2, assembly1],
|
|
113
|
-
type: 'SyntenyTrack',
|
|
114
|
-
adapter: getAdapter({
|
|
115
|
-
radioOption,
|
|
116
|
-
assembly1,
|
|
117
|
-
assembly2,
|
|
118
|
-
fileLocation,
|
|
119
|
-
indexFileLocation,
|
|
120
|
-
bed1Location,
|
|
121
|
-
bed2Location,
|
|
122
|
-
}),
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch (e) {
|
|
127
|
-
console.error(e);
|
|
128
|
-
setError(e);
|
|
129
|
-
}
|
|
130
|
-
}, [
|
|
131
|
-
fileName,
|
|
132
|
-
assembly1,
|
|
133
|
-
assembly2,
|
|
134
|
-
bed1Location,
|
|
135
|
-
bed2Location,
|
|
136
|
-
fileLocation,
|
|
137
|
-
indexFileLocation,
|
|
138
|
-
radioOption,
|
|
139
|
-
setUserOpenedSyntenyTrack,
|
|
140
|
-
]);
|
|
141
|
-
return (react_1.default.createElement(material_1.Paper, { style: { padding: 12 } },
|
|
142
|
-
error ? react_1.default.createElement(ui_1.ErrorMessage, { error: error }) : null,
|
|
143
|
-
react_1.default.createElement(material_1.Typography, { style: { textAlign: 'center' } }, "Add a .paf, .out (MashMap), .delta (Mummer), .chain, .anchors or .anchors.simple (MCScan) file to view. These file types can also be gzipped. The first assembly should be the query sequence (e.g. left column of the PAF) and the second assembly should be the target sequence (e.g. right column of the PAF)"),
|
|
144
|
-
react_1.default.createElement(material_1.RadioGroup, { value: radioOption, onChange: event => {
|
|
145
|
-
setValue(event.target.value);
|
|
146
|
-
} },
|
|
147
|
-
react_1.default.createElement(material_1.Grid, { container: true, justifyContent: "center" },
|
|
148
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
149
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".paf", control: react_1.default.createElement(material_1.Radio, null), label: ".paf" })),
|
|
150
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
151
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".out", control: react_1.default.createElement(material_1.Radio, null), label: ".out" })),
|
|
152
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
153
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".delta", control: react_1.default.createElement(material_1.Radio, null), label: ".delta" })),
|
|
154
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
155
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".chain", control: react_1.default.createElement(material_1.Radio, null), label: ".chain" })),
|
|
156
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
157
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".anchors", control: react_1.default.createElement(material_1.Radio, null), label: ".anchors" })),
|
|
158
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
159
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".anchors.simple", control: react_1.default.createElement(material_1.Radio, null), label: ".anchors.simple" })),
|
|
160
|
-
react_1.default.createElement(material_1.Grid, { item: true },
|
|
161
|
-
react_1.default.createElement(material_1.FormControlLabel, { value: ".pif.gz", control: react_1.default.createElement(material_1.Radio, null), label: ".pif.gz" })))),
|
|
162
|
-
react_1.default.createElement(material_1.Grid, { container: true, justifyContent: "center" },
|
|
163
|
-
react_1.default.createElement(material_1.Grid, { item: true }, value === '.anchors' || value === '.anchors.simple' ? (react_1.default.createElement("div", null,
|
|
164
|
-
react_1.default.createElement("div", { style: { margin: 20 } },
|
|
165
|
-
"Open the ",
|
|
166
|
-
value,
|
|
167
|
-
" and .bed files for both genome assemblies from the MCScan (Python version) pipeline",
|
|
168
|
-
' ',
|
|
169
|
-
react_1.default.createElement("a", { href: "https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version)" }, "(more info)")),
|
|
170
|
-
react_1.default.createElement("div", { style: { display: 'flex' } },
|
|
171
|
-
react_1.default.createElement("div", null,
|
|
172
|
-
react_1.default.createElement(ui_1.FileSelector, { name: ".anchors file", description: "", location: fileLocation, setLocation: loc => {
|
|
173
|
-
setFileLocation(loc);
|
|
174
|
-
} })),
|
|
175
|
-
react_1.default.createElement("div", null,
|
|
176
|
-
react_1.default.createElement(ui_1.FileSelector, { name: "genome 1 .bed (left column of anchors file)", description: "", location: bed1Location, setLocation: loc => {
|
|
177
|
-
setBed1Location(loc);
|
|
178
|
-
} })),
|
|
179
|
-
react_1.default.createElement("div", null,
|
|
180
|
-
react_1.default.createElement(ui_1.FileSelector, { name: "genome 2 .bed (right column of anchors file)", description: "", location: bed2Location, setLocation: loc => {
|
|
181
|
-
setBed2Location(loc);
|
|
182
|
-
} }))))) : value === '.pif.gz' ? (react_1.default.createElement("div", { style: { display: 'flex' } },
|
|
183
|
-
react_1.default.createElement("div", null,
|
|
184
|
-
react_1.default.createElement(ui_1.FileSelector, { name: `${value} location`, description: "", location: fileLocation, setLocation: loc => {
|
|
185
|
-
setFileLocation(loc);
|
|
186
|
-
} })),
|
|
187
|
-
react_1.default.createElement("div", null,
|
|
188
|
-
react_1.default.createElement(ui_1.FileSelector, { name: `${value} index location`, description: "", location: indexFileLocation, setLocation: loc => {
|
|
189
|
-
setIndexFileLocation(loc);
|
|
190
|
-
} })))) : (react_1.default.createElement(ui_1.FileSelector, { name: value ? `${value} location` : '', description: "", location: fileLocation, setLocation: loc => {
|
|
191
|
-
setFileLocation(loc);
|
|
192
|
-
} }))))));
|
|
193
|
-
});
|
|
194
|
-
exports.default = ImportCustomTrack;
|