@jbrowse/plugin-alignments 2.10.1 → 2.10.2
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/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +10 -113
- package/dist/AlignmentsFeatureDetail/BreakendOptionDialog.d.ts +12 -0
- package/dist/AlignmentsFeatureDetail/BreakendOptionDialog.js +89 -0
- package/dist/AlignmentsFeatureDetail/Formatter.d.ts +4 -0
- package/dist/AlignmentsFeatureDetail/Formatter.js +47 -0
- package/dist/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.d.ts +9 -0
- package/dist/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.js +92 -0
- package/dist/AlignmentsFeatureDetail/PairLink.d.ts +6 -0
- package/dist/AlignmentsFeatureDetail/PairLink.js +16 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignments.d.ts +8 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignments.js +26 -0
- package/dist/AlignmentsFeatureDetail/SuppAlignmentsLocStrings.d.ts +6 -0
- package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureSuppAligns.js → SuppAlignmentsLocStrings.js} +8 -7
- package/dist/AlignmentsFeatureDetail/configSchema.d.ts +1 -0
- package/dist/AlignmentsFeatureDetail/configSchema.js +5 -0
- package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +23 -0
- package/dist/AlignmentsFeatureDetail/getSAFeatures.js +41 -0
- package/dist/AlignmentsFeatureDetail/index.d.ts +1 -50
- package/dist/AlignmentsFeatureDetail/index.js +6 -17
- package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +22 -0
- package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.js +50 -0
- package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +51 -0
- package/dist/AlignmentsFeatureDetail/stateModelFactory.js +12 -0
- package/dist/AlignmentsFeatureDetail/tagInfo.d.ts +63 -0
- package/dist/AlignmentsFeatureDetail/tagInfo.js +66 -0
- package/dist/BamAdapter/BamAdapter.js +3 -1
- package/dist/CramAdapter/CramAdapter.js +3 -1
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +20 -20
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +8 -8
- package/dist/LinearPileupDisplay/model.d.ts +15 -24
- package/dist/LinearPileupDisplay/model.js +4 -4
- package/dist/LinearReadArcsDisplay/model.d.ts +8 -8
- package/dist/LinearReadArcsDisplay/model.js +2 -2
- package/dist/LinearReadCloudDisplay/model.d.ts +13 -7
- package/dist/LinearReadCloudDisplay/model.js +2 -2
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +5 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -2
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +12 -92
- package/esm/AlignmentsFeatureDetail/BreakendOptionDialog.d.ts +12 -0
- package/esm/AlignmentsFeatureDetail/BreakendOptionDialog.js +64 -0
- package/esm/AlignmentsFeatureDetail/Formatter.d.ts +4 -0
- package/esm/AlignmentsFeatureDetail/Formatter.js +18 -0
- package/esm/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.d.ts +9 -0
- package/esm/AlignmentsFeatureDetail/LaunchBreakpointSplitViewPanel.js +66 -0
- package/esm/AlignmentsFeatureDetail/PairLink.d.ts +6 -0
- package/esm/AlignmentsFeatureDetail/PairLink.js +10 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignments.d.ts +8 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignments.js +20 -0
- package/esm/AlignmentsFeatureDetail/SuppAlignmentsLocStrings.d.ts +6 -0
- package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureSuppAligns.js → SuppAlignmentsLocStrings.js} +7 -6
- package/esm/AlignmentsFeatureDetail/configSchema.d.ts +1 -0
- package/esm/AlignmentsFeatureDetail/configSchema.js +2 -0
- package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +23 -0
- package/esm/AlignmentsFeatureDetail/getSAFeatures.js +37 -0
- package/esm/AlignmentsFeatureDetail/index.d.ts +1 -50
- package/esm/AlignmentsFeatureDetail/index.js +4 -13
- package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +22 -0
- package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.js +46 -0
- package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +51 -0
- package/esm/AlignmentsFeatureDetail/stateModelFactory.js +8 -0
- package/esm/AlignmentsFeatureDetail/tagInfo.d.ts +63 -0
- package/esm/AlignmentsFeatureDetail/tagInfo.js +63 -0
- package/esm/BamAdapter/BamAdapter.js +3 -1
- package/esm/CramAdapter/CramAdapter.js +3 -1
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +20 -20
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +8 -8
- package/esm/LinearPileupDisplay/model.d.ts +15 -24
- package/esm/LinearPileupDisplay/model.js +4 -4
- package/esm/LinearReadArcsDisplay/model.d.ts +8 -8
- package/esm/LinearReadArcsDisplay/model.js +2 -2
- package/esm/LinearReadCloudDisplay/model.d.ts +13 -7
- package/esm/LinearReadCloudDisplay/model.js +2 -2
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +5 -2
- package/package.json +2 -2
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +0 -6
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.d.ts +0 -6
- /package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.d.ts → Flags.d.ts} +0 -0
- /package/dist/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.js → Flags.js} +0 -0
- /package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.d.ts → Flags.d.ts} +0 -0
- /package/esm/AlignmentsFeatureDetail/{AlignmentsFeatureFlags.js → Flags.js} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getSession } from '@jbrowse/core/util';
|
|
2
|
+
// locals
|
|
3
|
+
import { featurizeSA, getClip, getLengthSansClipping } from '../MismatchParser';
|
|
4
|
+
import { getTag } from '../util';
|
|
5
|
+
export async function getSAFeatures({ view, feature, }) {
|
|
6
|
+
const { assemblyManager } = getSession(view);
|
|
7
|
+
const cigar = feature.get('CIGAR');
|
|
8
|
+
const origStrand = feature.get('strand');
|
|
9
|
+
const SA = getTag(feature, 'SA') || '';
|
|
10
|
+
const readName = feature.get('name');
|
|
11
|
+
const clipPos = getClip(cigar, 1);
|
|
12
|
+
// get the canonical refname for the read because if the
|
|
13
|
+
// read.get('refName') is chr1 and the actual fasta refName is 1 then no
|
|
14
|
+
// tracks can be opened on the top panel of the linear read vs ref
|
|
15
|
+
const assembly = await assemblyManager.waitForAssembly(view.assemblyNames[0]);
|
|
16
|
+
if (!assembly) {
|
|
17
|
+
throw new Error('assembly not found');
|
|
18
|
+
}
|
|
19
|
+
const suppAlns = featurizeSA(SA, feature.id(), origStrand, readName, true);
|
|
20
|
+
const feat = feature.toJSON();
|
|
21
|
+
feat.clipPos = clipPos;
|
|
22
|
+
feat.strand = 1;
|
|
23
|
+
feat.mate = {
|
|
24
|
+
refName: readName,
|
|
25
|
+
start: clipPos,
|
|
26
|
+
end: clipPos + getLengthSansClipping(cigar),
|
|
27
|
+
};
|
|
28
|
+
const features = [feat, ...suppAlns];
|
|
29
|
+
features.forEach((f, idx) => {
|
|
30
|
+
f.refName = (assembly === null || assembly === void 0 ? void 0 : assembly.getCanonicalRefName(f.refName)) || f.refName;
|
|
31
|
+
f.syntenyId = idx;
|
|
32
|
+
f.mate.syntenyId = idx;
|
|
33
|
+
f.mate.uniqueId = `${f.uniqueId}_mate`;
|
|
34
|
+
});
|
|
35
|
+
features.sort((a, b) => a.clipPos - b.clipPos);
|
|
36
|
+
return features;
|
|
37
|
+
}
|
|
@@ -1,51 +1,2 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
|
|
3
|
-
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
-
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
6
|
-
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
7
|
-
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
-
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
9
|
-
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
10
|
-
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
11
|
-
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
12
|
-
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
13
|
-
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
14
|
-
} & {
|
|
15
|
-
type: import("mobx-state-tree").ISimpleType<"AlignmentsFeatureWidget">;
|
|
16
|
-
}, {
|
|
17
|
-
error: unknown;
|
|
18
|
-
} & {
|
|
19
|
-
setFeatureData(featureData: Record<string, unknown>): void;
|
|
20
|
-
clearFeatureData(): void;
|
|
21
|
-
setFormattedData(feat: Record<string, unknown>): void;
|
|
22
|
-
setExtra(type?: string | undefined, trackId?: string | undefined, maxDepth?: number | undefined): void;
|
|
23
|
-
setError(e: unknown): void;
|
|
24
|
-
} & {
|
|
25
|
-
afterCreate(): void;
|
|
26
|
-
}, {
|
|
27
|
-
type: "BaseFeatureWidget";
|
|
28
|
-
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
29
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
30
|
-
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
31
|
-
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
32
|
-
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
33
|
-
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
34
|
-
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
35
|
-
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
36
|
-
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
37
|
-
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
38
|
-
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
39
|
-
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
|
|
40
|
-
type: "BaseFeatureWidget";
|
|
41
|
-
id: string;
|
|
42
|
-
track: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
43
|
-
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
44
|
-
trackId: string | undefined;
|
|
45
|
-
trackType: string | undefined;
|
|
46
|
-
maxDepth: number | undefined;
|
|
47
|
-
formattedFields: any;
|
|
48
|
-
finalizedFeatureData: any;
|
|
49
|
-
} & import("mobx-state-tree")._NotCustomized>;
|
|
50
|
-
export default function register(pluginManager: PluginManager): void;
|
|
51
|
-
export { configSchema };
|
|
2
|
+
export default function AlignmentFeatureDetailsF(pluginManager: PluginManager): void;
|
|
@@ -1,22 +1,13 @@
|
|
|
1
1
|
import { lazy } from 'react';
|
|
2
|
-
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
3
|
-
import { types } from 'mobx-state-tree';
|
|
4
2
|
import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export function
|
|
8
|
-
const baseModel = baseModelFactory(pluginManager);
|
|
9
|
-
return types.compose(baseModel, types.model('AlignmentsFeatureWidget', {
|
|
10
|
-
type: types.literal('AlignmentsFeatureWidget'),
|
|
11
|
-
}));
|
|
12
|
-
}
|
|
13
|
-
export default function register(pluginManager) {
|
|
3
|
+
import { configSchema } from './configSchema';
|
|
4
|
+
import { stateModelFactory } from './stateModelFactory';
|
|
5
|
+
export default function AlignmentFeatureDetailsF(pluginManager) {
|
|
14
6
|
pluginManager.addWidgetType(() => new WidgetType({
|
|
15
7
|
name: 'AlignmentsFeatureWidget',
|
|
16
8
|
heading: 'Feature details',
|
|
17
|
-
configSchema,
|
|
9
|
+
configSchema: configSchema,
|
|
18
10
|
stateModel: stateModelFactory(pluginManager),
|
|
19
11
|
ReactComponent: lazy(() => import('./AlignmentsFeatureDetail')),
|
|
20
12
|
}));
|
|
21
13
|
}
|
|
22
|
-
export { configSchema };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
|
|
2
|
+
import { ReducedFeature } from './getSAFeatures';
|
|
3
|
+
export declare function getBreakpointSplitView({ f1, f2, view, }: {
|
|
4
|
+
f1: ReducedFeature;
|
|
5
|
+
f2: ReducedFeature;
|
|
6
|
+
view: LinearGenomeViewModel;
|
|
7
|
+
}): {
|
|
8
|
+
type: string;
|
|
9
|
+
views: {
|
|
10
|
+
type: string;
|
|
11
|
+
displayedRegions: {
|
|
12
|
+
start: number;
|
|
13
|
+
end: number;
|
|
14
|
+
refName: string;
|
|
15
|
+
assemblyName: string;
|
|
16
|
+
}[];
|
|
17
|
+
hideHeader: boolean;
|
|
18
|
+
bpPerPx: number;
|
|
19
|
+
offsetPx: number;
|
|
20
|
+
}[];
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getSession } from '@jbrowse/core/util';
|
|
2
|
+
export function getBreakpointSplitView({ f1, f2, view, }) {
|
|
3
|
+
const { assemblyName } = view.displayedRegions[0];
|
|
4
|
+
const { assemblyManager } = getSession(view);
|
|
5
|
+
const assembly = assemblyManager.get(assemblyName);
|
|
6
|
+
if (!assembly) {
|
|
7
|
+
throw new Error(`assembly ${assemblyName} not found`);
|
|
8
|
+
}
|
|
9
|
+
if (!assembly.regions) {
|
|
10
|
+
throw new Error(`assembly ${assemblyName} regions not loaded`);
|
|
11
|
+
}
|
|
12
|
+
const topRegion = assembly.regions.find(f => f.refName === f1.refName);
|
|
13
|
+
const bottomRegion = assembly.regions.find(f => f.refName === f2.refName);
|
|
14
|
+
if (!topRegion || !bottomRegion) {
|
|
15
|
+
throw new Error(`unable to find the refName for the top or bottom of the breakpoint view`);
|
|
16
|
+
}
|
|
17
|
+
const topMarkedRegion = [{ ...topRegion }, { ...topRegion }];
|
|
18
|
+
const bottomMarkedRegion = [{ ...bottomRegion }, { ...bottomRegion }];
|
|
19
|
+
const s = f1.strand === 1 ? f1.end : f1.start;
|
|
20
|
+
const e = f2.strand === 1 ? f2.start : f2.end;
|
|
21
|
+
topMarkedRegion[0].end = s;
|
|
22
|
+
topMarkedRegion[1].start = s + 1;
|
|
23
|
+
bottomMarkedRegion[0].end = e;
|
|
24
|
+
bottomMarkedRegion[1].start = e + 1;
|
|
25
|
+
const bpPerPx = 10;
|
|
26
|
+
return {
|
|
27
|
+
type: 'BreakpointSplitView',
|
|
28
|
+
views: [
|
|
29
|
+
{
|
|
30
|
+
type: 'LinearGenomeView',
|
|
31
|
+
displayedRegions: topMarkedRegion,
|
|
32
|
+
hideHeader: true,
|
|
33
|
+
bpPerPx,
|
|
34
|
+
offsetPx: (topRegion.start + s) / bpPerPx,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
type: 'LinearGenomeView',
|
|
38
|
+
displayedRegions: bottomMarkedRegion,
|
|
39
|
+
hideHeader: true,
|
|
40
|
+
bpPerPx,
|
|
41
|
+
offsetPx: (bottomRegion.start + e) / bpPerPx,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
displayName: `breakend split detail`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import { Instance } from 'mobx-state-tree';
|
|
3
|
+
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
+
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
6
|
+
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
7
|
+
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
8
|
+
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
9
|
+
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
10
|
+
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
11
|
+
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
12
|
+
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
13
|
+
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
14
|
+
} & {
|
|
15
|
+
type: import("mobx-state-tree").ISimpleType<"AlignmentsFeatureWidget">;
|
|
16
|
+
}, {
|
|
17
|
+
error: unknown;
|
|
18
|
+
} & {
|
|
19
|
+
setFeatureData(featureData: Record<string, unknown>): void;
|
|
20
|
+
clearFeatureData(): void;
|
|
21
|
+
setFormattedData(feat: Record<string, unknown>): void;
|
|
22
|
+
setExtra(type?: string | undefined, trackId?: string | undefined, maxDepth?: number | undefined): void;
|
|
23
|
+
setError(e: unknown): void;
|
|
24
|
+
} & {
|
|
25
|
+
afterCreate(): void;
|
|
26
|
+
}, {
|
|
27
|
+
type: "BaseFeatureWidget";
|
|
28
|
+
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
29
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
30
|
+
type: import("mobx-state-tree").ISimpleType<"BaseFeatureWidget">;
|
|
31
|
+
featureData: import("mobx-state-tree").IType<any, any, any>;
|
|
32
|
+
formattedFields: import("mobx-state-tree").IType<any, any, any>;
|
|
33
|
+
unformattedFeatureData: import("mobx-state-tree").IType<any, any, any>;
|
|
34
|
+
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
35
|
+
track: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
36
|
+
trackId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
37
|
+
trackType: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
38
|
+
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
39
|
+
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject & import("mobx-state-tree")._NotCustomized, {
|
|
40
|
+
type: "BaseFeatureWidget";
|
|
41
|
+
id: string;
|
|
42
|
+
track: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
43
|
+
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
44
|
+
trackId: string | undefined;
|
|
45
|
+
trackType: string | undefined;
|
|
46
|
+
maxDepth: number | undefined;
|
|
47
|
+
formattedFields: any;
|
|
48
|
+
finalizedFeatureData: any;
|
|
49
|
+
} & import("mobx-state-tree")._NotCustomized>;
|
|
50
|
+
export type AlignmentFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
51
|
+
export type AlignmentFeatureWidgetModel = Instance<AlignmentFeatureWidgetStateModel>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { types } from 'mobx-state-tree';
|
|
2
|
+
import { stateModelFactory as baseModelFactory } from '@jbrowse/core/BaseFeatureWidget';
|
|
3
|
+
export function stateModelFactory(pluginManager) {
|
|
4
|
+
const baseModel = baseModelFactory(pluginManager);
|
|
5
|
+
return types.compose(baseModel, types.model('AlignmentsFeatureWidget', {
|
|
6
|
+
type: types.literal('AlignmentsFeatureWidget'),
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const tags: {
|
|
2
|
+
AM: string;
|
|
3
|
+
AS: string;
|
|
4
|
+
BC: string;
|
|
5
|
+
BQ: string;
|
|
6
|
+
BZ: string;
|
|
7
|
+
CB: string;
|
|
8
|
+
CC: string;
|
|
9
|
+
CM: string;
|
|
10
|
+
CO: string;
|
|
11
|
+
CP: string;
|
|
12
|
+
CQ: string;
|
|
13
|
+
CR: string;
|
|
14
|
+
CS: string;
|
|
15
|
+
CT: string;
|
|
16
|
+
CY: string;
|
|
17
|
+
E2: string;
|
|
18
|
+
FI: string;
|
|
19
|
+
FS: string;
|
|
20
|
+
FZ: string;
|
|
21
|
+
GC: string;
|
|
22
|
+
GQ: string;
|
|
23
|
+
GS: string;
|
|
24
|
+
H0: string;
|
|
25
|
+
H1: string;
|
|
26
|
+
H2: string;
|
|
27
|
+
HI: string;
|
|
28
|
+
IH: string;
|
|
29
|
+
LB: string;
|
|
30
|
+
MC: string;
|
|
31
|
+
MD: string;
|
|
32
|
+
MF: string;
|
|
33
|
+
MI: string;
|
|
34
|
+
ML: string;
|
|
35
|
+
MM: string;
|
|
36
|
+
MQ: string;
|
|
37
|
+
NH: string;
|
|
38
|
+
NM: string;
|
|
39
|
+
OA: string;
|
|
40
|
+
OC: string;
|
|
41
|
+
OP: string;
|
|
42
|
+
OQ: string;
|
|
43
|
+
OX: string;
|
|
44
|
+
PG: string;
|
|
45
|
+
PQ: string;
|
|
46
|
+
PT: string;
|
|
47
|
+
PU: string;
|
|
48
|
+
Q2: string;
|
|
49
|
+
QT: string;
|
|
50
|
+
QX: string;
|
|
51
|
+
R2: string;
|
|
52
|
+
RG: string;
|
|
53
|
+
RT: string;
|
|
54
|
+
RX: string;
|
|
55
|
+
S2: string;
|
|
56
|
+
SA: string;
|
|
57
|
+
SM: string;
|
|
58
|
+
SQ: string;
|
|
59
|
+
TC: string;
|
|
60
|
+
TS: string;
|
|
61
|
+
U2: string;
|
|
62
|
+
UQ: string;
|
|
63
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export const tags = {
|
|
2
|
+
AM: 'The smallest template-independent mapping quality in the template',
|
|
3
|
+
AS: 'Alignment score generated by aligner',
|
|
4
|
+
BC: 'Barcode sequence identifying the sample',
|
|
5
|
+
BQ: 'Offset to base alignment quality (BAQ)',
|
|
6
|
+
BZ: 'Phred quality of the unique molecular barcode bases in the {OX} tag',
|
|
7
|
+
CB: 'Cell identifier',
|
|
8
|
+
CC: 'Reference name of the next hit',
|
|
9
|
+
CM: 'Edit distance between the color sequence and the color reference (see also {NM})',
|
|
10
|
+
CO: 'Free-text comments',
|
|
11
|
+
CP: 'Leftmost coordinate of the next hit',
|
|
12
|
+
CQ: 'Color read base qualities',
|
|
13
|
+
CR: 'Cellular barcode sequence bases (uncorrected)',
|
|
14
|
+
CS: 'Color read sequence',
|
|
15
|
+
CT: 'Complete read annotation tag, used for consensus annotation dummy features',
|
|
16
|
+
CY: 'Phred quality of the cellular barcode sequence in the {CR} tag',
|
|
17
|
+
E2: 'The 2nd most likely base calls',
|
|
18
|
+
FI: 'The index of segment in the template',
|
|
19
|
+
FS: 'Segment suffix',
|
|
20
|
+
FZ: 'Flow signal intensities',
|
|
21
|
+
GC: 'Reserved for backwards compatibility reasons',
|
|
22
|
+
GQ: 'Reserved for backwards compatibility reasons',
|
|
23
|
+
GS: 'Reserved for backwards compatibility reasons',
|
|
24
|
+
H0: 'Number of perfect hits',
|
|
25
|
+
H1: 'Number of 1-difference hits (see also {NM})',
|
|
26
|
+
H2: 'Number of 2-difference hits',
|
|
27
|
+
HI: 'Query hit index',
|
|
28
|
+
IH: 'Query hit total count',
|
|
29
|
+
LB: 'Library',
|
|
30
|
+
MC: 'CIGAR string for mate/next segment',
|
|
31
|
+
MD: 'String encoding mismatched and deleted reference bases',
|
|
32
|
+
MF: 'Reserved for backwards compatibility reasons',
|
|
33
|
+
MI: 'Molecular identifier; a string that uniquely identifies the molecule from which the record was derived',
|
|
34
|
+
ML: 'Base modification probabilities',
|
|
35
|
+
MM: 'Base modifications / methylation ',
|
|
36
|
+
MQ: 'Mapping quality of the mate/next segment',
|
|
37
|
+
NH: 'Number of reported alignments that contain the query in the current record',
|
|
38
|
+
NM: 'Edit distance to the reference',
|
|
39
|
+
OA: 'Original alignment',
|
|
40
|
+
OC: 'Original CIGAR (deprecated; use {OA} instead)',
|
|
41
|
+
OP: 'Original mapping position (deprecated; use {OA} instead)',
|
|
42
|
+
OQ: 'Original base quality',
|
|
43
|
+
OX: 'Original unique molecular barcode bases',
|
|
44
|
+
PG: 'Program',
|
|
45
|
+
PQ: 'Phred likelihood of the template',
|
|
46
|
+
PT: 'Read annotations for parts of the padded read sequence',
|
|
47
|
+
PU: 'Platform unit',
|
|
48
|
+
Q2: 'Phred quality of the mate/next segment sequence in the {R2} tag',
|
|
49
|
+
QT: 'Phred quality of the sample barcode sequence in the {BC} tag',
|
|
50
|
+
QX: 'Quality score of the unique molecular identifier in the {RX} tag',
|
|
51
|
+
R2: 'Sequence of the mate/next segment in the template',
|
|
52
|
+
RG: 'Read group',
|
|
53
|
+
RT: 'Reserved for backwards compatibility reasons',
|
|
54
|
+
RX: 'Sequence bases of the (possibly corrected) unique molecular identifier',
|
|
55
|
+
S2: 'Reserved for backwards compatibility reasons',
|
|
56
|
+
SA: 'Other canonical alignments in a chimeric alignment',
|
|
57
|
+
SM: 'Template-independent mapping quality',
|
|
58
|
+
SQ: 'Reserved for backwards compatibility reasons',
|
|
59
|
+
TC: 'The number of segments in the template',
|
|
60
|
+
TS: 'Transcript strand',
|
|
61
|
+
U2: 'Phred probability of the 2nd call being wrong conditional on the best being wrong',
|
|
62
|
+
UQ: 'Phred likelihood of the segment, conditional on the mapping being correct',
|
|
63
|
+
};
|
|
@@ -139,7 +139,9 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
139
139
|
}
|
|
140
140
|
if (tagFilter) {
|
|
141
141
|
const v = record.get(tagFilter.tag);
|
|
142
|
-
if (!(
|
|
142
|
+
if (!(tagFilter.value === '*'
|
|
143
|
+
? v !== undefined
|
|
144
|
+
: `${v}` === tagFilter.value)) {
|
|
143
145
|
continue;
|
|
144
146
|
}
|
|
145
147
|
}
|
|
@@ -180,7 +180,9 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
180
180
|
const v = tagFilter.tag === 'RG'
|
|
181
181
|
? (_a = this.samHeader.readGroups) === null || _a === void 0 ? void 0 : _a[record.readGroupId]
|
|
182
182
|
: record.tags[tagFilter.tag];
|
|
183
|
-
if (!(
|
|
183
|
+
if (!(tagFilter.value === '*'
|
|
184
|
+
? v !== undefined
|
|
185
|
+
: `${v}` === tagFilter.value)) {
|
|
184
186
|
continue;
|
|
185
187
|
}
|
|
186
188
|
}
|
|
@@ -54,20 +54,17 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
54
54
|
afterAttach(): void;
|
|
55
55
|
setStatus(message: string): void;
|
|
56
56
|
setLoading(abortController: AbortController): void;
|
|
57
|
-
setMessage(messageText: string): void;
|
|
57
|
+
setMessage(messageText: string): void; /**
|
|
58
|
+
* #action
|
|
59
|
+
*/
|
|
58
60
|
setRendered(props: {
|
|
59
61
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
60
|
-
/**
|
|
61
|
-
* #action
|
|
62
|
-
*/
|
|
63
62
|
features: Map<string, Feature>;
|
|
64
63
|
layout: any;
|
|
65
64
|
maxHeightReached: boolean;
|
|
66
65
|
renderProps: any;
|
|
67
66
|
} | undefined): void;
|
|
68
|
-
setError(error: unknown): void;
|
|
69
|
-
* #action
|
|
70
|
-
*/
|
|
67
|
+
setError(error: unknown): void;
|
|
71
68
|
reload(): void;
|
|
72
69
|
beforeDestroy(): void;
|
|
73
70
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -173,11 +170,11 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
173
170
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
174
171
|
rendererTypeName: string;
|
|
175
172
|
error: unknown;
|
|
176
|
-
message: string | undefined;
|
|
177
|
-
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
178
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>; /**
|
|
173
|
+
message: string | undefined; /**
|
|
179
174
|
* #property
|
|
180
175
|
*/
|
|
176
|
+
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
177
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
181
178
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
182
179
|
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
183
180
|
}, {
|
|
@@ -220,7 +217,9 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
220
217
|
} & {
|
|
221
218
|
afterAttach(): void;
|
|
222
219
|
} & {
|
|
223
|
-
setCurrStatsBpPerPx(n: number): void;
|
|
220
|
+
setCurrStatsBpPerPx(n: number): void; /**
|
|
221
|
+
* #property
|
|
222
|
+
*/
|
|
224
223
|
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
225
224
|
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
|
|
226
225
|
setFeatureDensityStatsP(arg: any): void;
|
|
@@ -241,13 +240,17 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
241
240
|
} & {
|
|
242
241
|
readonly renderDelay: number;
|
|
243
242
|
readonly TooltipComponent: import("react").FC<any>;
|
|
244
|
-
readonly selectedFeatureId: string | undefined;
|
|
243
|
+
readonly selectedFeatureId: string | undefined; /**
|
|
244
|
+
* #action
|
|
245
|
+
*/
|
|
245
246
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
246
247
|
} & {
|
|
247
248
|
readonly features: import("@jbrowse/core/util/compositeMap").default<string, Feature>;
|
|
248
249
|
readonly featureUnderMouse: Feature | undefined;
|
|
249
250
|
getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
|
|
250
|
-
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
251
|
+
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined; /**
|
|
252
|
+
* #action
|
|
253
|
+
*/
|
|
251
254
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
252
255
|
} & {
|
|
253
256
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
@@ -458,20 +461,17 @@ export declare function SharedLinearPileupDisplayMixin(configSchema: AnyConfigur
|
|
|
458
461
|
afterAttach(): void;
|
|
459
462
|
setStatus(message: string): void;
|
|
460
463
|
setLoading(abortController: AbortController): void;
|
|
461
|
-
setMessage(messageText: string): void;
|
|
464
|
+
setMessage(messageText: string): void; /**
|
|
465
|
+
* #action
|
|
466
|
+
*/
|
|
462
467
|
setRendered(props: {
|
|
463
468
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
464
|
-
/**
|
|
465
|
-
* #action
|
|
466
|
-
*/
|
|
467
469
|
features: Map<string, Feature>;
|
|
468
470
|
layout: any;
|
|
469
471
|
maxHeightReached: boolean;
|
|
470
472
|
renderProps: any;
|
|
471
473
|
} | undefined): void;
|
|
472
|
-
setError(error: unknown): void;
|
|
473
|
-
* #action
|
|
474
|
-
*/
|
|
474
|
+
setError(error: unknown): void;
|
|
475
475
|
reload(): void;
|
|
476
476
|
beforeDestroy(): void;
|
|
477
477
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -17,10 +17,10 @@ import { getUniqueTagValues, FilterModel } from '../shared';
|
|
|
17
17
|
import { createAutorun } from '../util';
|
|
18
18
|
import { ColorByModel } from '../shared/color';
|
|
19
19
|
// async
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
20
|
+
const FilterByTagDialog = lazy(() => import('../shared/FilterByTag'));
|
|
21
|
+
const ColorByTagDialog = lazy(() => import('./components/ColorByTag'));
|
|
22
|
+
const SetFeatureHeightDialog = lazy(() => import('./components/SetFeatureHeight'));
|
|
23
|
+
const SetMaxHeightDialog = lazy(() => import('./components/SetMaxHeight'));
|
|
24
24
|
// using a map because it preserves order
|
|
25
25
|
const rendererTypes = new Map([
|
|
26
26
|
['pileup', 'PileupRenderer'],
|
|
@@ -392,7 +392,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
392
392
|
label: 'Color by tag...',
|
|
393
393
|
onClick: () => {
|
|
394
394
|
getSession(self).queueDialog(doneCallback => [
|
|
395
|
-
|
|
395
|
+
ColorByTagDialog,
|
|
396
396
|
{ model: self, handleClose: doneCallback },
|
|
397
397
|
]);
|
|
398
398
|
},
|
|
@@ -410,7 +410,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
410
410
|
icon: FilterListIcon,
|
|
411
411
|
onClick: () => {
|
|
412
412
|
getSession(self).queueDialog(doneCallback => [
|
|
413
|
-
|
|
413
|
+
FilterByTagDialog,
|
|
414
414
|
{ model: self, handleClose: doneCallback },
|
|
415
415
|
]);
|
|
416
416
|
},
|
|
@@ -436,7 +436,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
436
436
|
label: 'Manually set height',
|
|
437
437
|
onClick: () => {
|
|
438
438
|
getSession(self).queueDialog(doneCallback => [
|
|
439
|
-
|
|
439
|
+
SetFeatureHeightDialog,
|
|
440
440
|
{ model: self, handleClose: doneCallback },
|
|
441
441
|
]);
|
|
442
442
|
},
|
|
@@ -447,7 +447,7 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
|
|
|
447
447
|
label: 'Set max height...',
|
|
448
448
|
onClick: () => {
|
|
449
449
|
getSession(self).queueDialog(doneCallback => [
|
|
450
|
-
|
|
450
|
+
SetMaxHeightDialog,
|
|
451
451
|
{ model: self, handleClose: doneCallback },
|
|
452
452
|
]);
|
|
453
453
|
},
|
|
@@ -45,9 +45,6 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
45
45
|
ReactComponent: ({ model, }: {
|
|
46
46
|
model: any;
|
|
47
47
|
}) => any;
|
|
48
|
-
/**
|
|
49
|
-
* #property
|
|
50
|
-
*/
|
|
51
48
|
renderProps: any;
|
|
52
49
|
} & {
|
|
53
50
|
doReload(): void;
|
|
@@ -77,12 +74,6 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
77
74
|
defaultValue: number;
|
|
78
75
|
description: string;
|
|
79
76
|
};
|
|
80
|
-
/**
|
|
81
|
-
* #stateModel LinearPileupDisplay
|
|
82
|
-
* #category display
|
|
83
|
-
* extends
|
|
84
|
-
*- [SharedLinearPileupDisplayMixin](../sharedlinearpileupdisplaymixin)
|
|
85
|
-
*/
|
|
86
77
|
height: {
|
|
87
78
|
type: string;
|
|
88
79
|
defaultValue: number;
|
|
@@ -98,6 +89,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
98
89
|
} & {
|
|
99
90
|
configuration: AnyConfigurationSchemaType;
|
|
100
91
|
featureHeight: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
92
|
+
/**
|
|
93
|
+
* #action
|
|
94
|
+
*/
|
|
101
95
|
noSpacing: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
102
96
|
fadeLikelihood: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
103
97
|
trackMaxHeight: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
@@ -162,15 +156,15 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
162
156
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
163
157
|
rendererTypeName: string;
|
|
164
158
|
error: unknown;
|
|
165
|
-
message: string | undefined;
|
|
159
|
+
message: string | undefined; /**
|
|
160
|
+
* #action
|
|
161
|
+
*/
|
|
166
162
|
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
167
163
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
168
164
|
type: import("mobx-state-tree").ISimpleType<string>;
|
|
169
165
|
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
170
166
|
}, {
|
|
171
|
-
rendererTypeName: string;
|
|
172
|
-
* #action
|
|
173
|
-
*/
|
|
167
|
+
rendererTypeName: string;
|
|
174
168
|
error: unknown;
|
|
175
169
|
message: string | undefined;
|
|
176
170
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
@@ -184,7 +178,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
184
178
|
readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
|
|
185
179
|
regionCannotBeRendered(): null;
|
|
186
180
|
} & {
|
|
187
|
-
setMessage(arg?: string | undefined): void;
|
|
181
|
+
setMessage(arg?: string | undefined): void; /**
|
|
182
|
+
* #getter
|
|
183
|
+
*/
|
|
188
184
|
setError(error?: unknown): void;
|
|
189
185
|
setRpcDriverName(rpcDriverName: string): void;
|
|
190
186
|
reload(): void;
|
|
@@ -201,9 +197,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
201
197
|
featureDensityStats: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined;
|
|
202
198
|
currStatsBpPerPx: number;
|
|
203
199
|
} & {
|
|
204
|
-
readonly currentBytesRequested: number;
|
|
205
|
-
* #property
|
|
206
|
-
*/
|
|
200
|
+
readonly currentBytesRequested: number;
|
|
207
201
|
readonly currentFeatureScreenDensity: number;
|
|
208
202
|
readonly maxFeatureScreenDensity: any;
|
|
209
203
|
readonly featureDensityStatsReady: boolean;
|
|
@@ -224,18 +218,13 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
224
218
|
regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
|
|
225
219
|
regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react").JSX.Element | null;
|
|
226
220
|
} & {
|
|
227
|
-
featureIdUnderMouse: string | undefined;
|
|
228
|
-
* #action
|
|
229
|
-
*/
|
|
221
|
+
featureIdUnderMouse: string | undefined;
|
|
230
222
|
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
231
223
|
} & {
|
|
232
224
|
readonly blockType: "dynamicBlocks" | "staticBlocks";
|
|
233
225
|
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
234
226
|
} & {
|
|
235
227
|
readonly renderDelay: number;
|
|
236
|
-
/**
|
|
237
|
-
* #action
|
|
238
|
-
*/
|
|
239
228
|
readonly TooltipComponent: import("react").FC<any>;
|
|
240
229
|
readonly selectedFeatureId: string | undefined;
|
|
241
230
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
@@ -263,7 +252,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
263
252
|
afterAttach(): void;
|
|
264
253
|
} & {
|
|
265
254
|
colorTagMap: import("mobx").ObservableMap<string, string>;
|
|
266
|
-
featureUnderMouseVolatile: import("@jbrowse/core/util").Feature | undefined;
|
|
255
|
+
featureUnderMouseVolatile: import("@jbrowse/core/util").Feature | undefined; /**
|
|
256
|
+
* #action
|
|
257
|
+
*/
|
|
267
258
|
tagsReady: boolean;
|
|
268
259
|
} & {
|
|
269
260
|
readonly autorunReady: boolean;
|