react-msaview 5.10.0 → 6.1.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/bundle/index.js +99 -99
- package/bundle/index.js.map +4 -4
- package/dist/clustalX.js +22 -22
- package/dist/clustalX.js.map +1 -1
- package/dist/columnCounts.d.ts +7 -0
- package/dist/columnCounts.js +18 -0
- package/dist/columnCounts.js.map +1 -1
- package/dist/components/CopyButton.d.ts +9 -0
- package/dist/components/CopyButton.js +23 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/DragHandle.d.ts +25 -0
- package/dist/components/DragHandle.js +49 -0
- package/dist/components/DragHandle.js.map +1 -0
- package/dist/components/Loading.js +2 -2
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAView.js +2 -2
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/ResizeHandles.d.ts +4 -2
- package/dist/components/ResizeHandles.js +35 -54
- package/dist/components/ResizeHandles.js.map +1 -1
- package/dist/components/SequenceTextArea.js +3 -10
- package/dist/components/SequenceTextArea.js.map +1 -1
- package/dist/components/VerticalScrollbar.js +11 -25
- package/dist/components/VerticalScrollbar.js.map +1 -1
- package/dist/components/dialogs/FeatureDialog.js +3 -3
- package/dist/components/dialogs/FeatureDialog.js.map +1 -1
- package/dist/components/dialogs/InterProScanDialog.js +52 -129
- package/dist/components/dialogs/InterProScanDialog.js.map +1 -1
- package/dist/components/dialogs/{UserProvidedDomainsDialog.d.ts → InterProScanFileDialog.d.ts} +2 -2
- package/dist/components/dialogs/{UserProvidedDomainsDialog.js → InterProScanFileDialog.js} +6 -10
- package/dist/components/dialogs/InterProScanFileDialog.js.map +1 -0
- package/dist/components/dialogs/TrackInfoDialog.d.ts +2 -4
- package/dist/components/dialogs/TrackInfoDialog.js +8 -14
- package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
- package/dist/components/header/FileMenu.js +3 -3
- package/dist/components/header/FileMenu.js.map +1 -1
- package/dist/components/header/GappynessSlider.js +1 -1
- package/dist/components/header/GappynessSlider.js.map +1 -1
- package/dist/components/header/{getDomainsMenu.d.ts → getAnnotationsMenu.d.ts} +1 -1
- package/dist/components/header/{getDomainsMenu.js → getAnnotationsMenu.js} +10 -9
- package/dist/components/header/getAnnotationsMenu.js.map +1 -0
- package/dist/components/header/settingsMenuItems.js +15 -0
- package/dist/components/header/settingsMenuItems.js.map +1 -1
- package/dist/components/import/ImportForm.js +1 -1
- package/dist/components/import/ImportForm.js.map +1 -1
- package/dist/components/import/ImportFormExamples.js +66 -57
- package/dist/components/import/ImportFormExamples.js.map +1 -1
- package/dist/components/minimap/Minimap.js +40 -23
- package/dist/components/minimap/Minimap.js.map +1 -1
- package/dist/components/minimap/MinimapSVG.d.ts +2 -1
- package/dist/components/minimap/MinimapSVG.js +3 -4
- package/dist/components/minimap/MinimapSVG.js.map +1 -1
- package/dist/components/minimap/minimapLayout.d.ts +10 -1
- package/dist/components/minimap/minimapLayout.js +15 -10
- package/dist/components/minimap/minimapLayout.js.map +1 -1
- package/dist/components/msa/{DomainLegend.d.ts → AnnotationLegend.d.ts} +2 -2
- package/dist/components/msa/{DomainLegend.js → AnnotationLegend.js} +4 -4
- package/dist/components/msa/AnnotationLegend.js.map +1 -0
- package/dist/components/msa/MSACanvas.js +9 -3
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.js +12 -3
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js +1 -2
- package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/msa/MSAPanel.js +2 -2
- package/dist/components/msa/MSAPanel.js.map +1 -1
- package/dist/components/msa/domainBandCursor.d.ts +17 -0
- package/dist/components/msa/domainBandCursor.js +39 -0
- package/dist/components/msa/domainBandCursor.js.map +1 -0
- package/dist/components/msa/msaRaster.d.ts +63 -0
- package/dist/components/msa/msaRaster.js +252 -0
- package/dist/components/msa/msaRaster.js.map +1 -0
- package/dist/components/msa/renderMSABlock.d.ts +2 -1
- package/dist/components/msa/renderMSABlock.js +27 -41
- package/dist/components/msa/renderMSABlock.js.map +1 -1
- package/dist/components/msa/renderMSAMouseover.js +1 -2
- package/dist/components/msa/renderMSAMouseover.js.map +1 -1
- package/dist/components/msa/tileColor.d.ts +6 -0
- package/dist/components/msa/tileColor.js +35 -0
- package/dist/components/msa/tileColor.js.map +1 -0
- package/dist/components/renderCtx.d.ts +1 -1
- package/dist/components/tracks/TrackBlocks.d.ts +14 -0
- package/dist/components/tracks/TrackBlocks.js +65 -0
- package/dist/components/tracks/TrackBlocks.js.map +1 -0
- package/dist/components/tracks/{renderTracksSvg.d.ts → drawTracks.d.ts} +22 -10
- package/dist/components/tracks/drawTracks.js +193 -0
- package/dist/components/tracks/drawTracks.js.map +1 -0
- package/dist/components/tree/TreeCanvas.js +8 -2
- package/dist/components/tree/TreeCanvas.js.map +1 -1
- package/dist/components/tree/TreeCanvasBlock.js +7 -4
- package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
- package/dist/components/tree/TreeRuler.js +5 -2
- package/dist/components/tree/TreeRuler.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.js +5 -2
- package/dist/components/tree/renderTreeCanvas.js.map +1 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/ggplotPalettes.d.ts +0 -1
- package/dist/ggplotPalettes.js +0 -3
- package/dist/ggplotPalettes.js.map +1 -1
- package/dist/hierarchy.d.ts +2 -6
- package/dist/hierarchy.js +4 -6
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/launchInterProScan.d.ts +0 -23
- package/dist/launchInterProScan.js +2 -5
- package/dist/launchInterProScan.js.map +1 -1
- package/dist/measureTextCanvas.js +21 -6
- package/dist/measureTextCanvas.js.map +1 -1
- package/dist/model/DataModel.d.ts +1 -4
- package/dist/model/DataModel.js +8 -10
- package/dist/model/DataModel.js.map +1 -1
- package/dist/model.d.ts +86 -107
- package/dist/model.js +238 -162
- package/dist/model.js.map +1 -1
- package/dist/neighborJoining.js +34 -18
- package/dist/neighborJoining.js.map +1 -1
- package/dist/renderTestEnv.d.ts +43 -0
- package/dist/renderTestEnv.js +88 -0
- package/dist/renderTestEnv.js.map +1 -0
- package/dist/renderToSvg.js +3 -3
- package/dist/renderToSvg.js.map +1 -1
- package/dist/rowCoordinateCalculations.d.ts +13 -17
- package/dist/rowCoordinateCalculations.js +45 -39
- package/dist/rowCoordinateCalculations.js.map +1 -1
- package/dist/sequenceLogo.d.ts +28 -0
- package/dist/sequenceLogo.js +47 -0
- package/dist/sequenceLogo.js.map +1 -0
- package/dist/types.d.ts +6 -11
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +5 -5
- package/src/clustalX.ts +22 -22
- package/src/colSpace.test.ts +27 -0
- package/src/columnCounts.test.ts +15 -0
- package/src/columnCounts.ts +19 -0
- package/src/components/CopyButton.tsx +44 -0
- package/src/components/DragHandle.tsx +81 -0
- package/src/components/Loading.tsx +10 -1
- package/src/components/MSAView.tsx +2 -3
- package/src/components/ResizeHandles.tsx +70 -87
- package/src/components/SequenceTextArea.tsx +3 -16
- package/src/components/VerticalScrollbar.tsx +20 -33
- package/src/components/dialogs/FeatureDialog.tsx +3 -4
- package/src/components/dialogs/InterProScanDialog.tsx +54 -131
- package/src/components/dialogs/{UserProvidedDomainsDialog.tsx → InterProScanFileDialog.tsx} +6 -14
- package/src/components/dialogs/TrackInfoDialog.tsx +18 -20
- package/src/components/header/FileMenu.tsx +3 -3
- package/src/components/header/GappynessSlider.tsx +4 -1
- package/src/components/header/{getDomainsMenu.ts → getAnnotationsMenu.ts} +10 -9
- package/src/components/header/settingsMenuItems.ts +18 -0
- package/src/components/import/ImportForm.tsx +1 -1
- package/src/components/import/ImportFormExamples.tsx +82 -133
- package/src/components/minimap/Minimap.tsx +67 -32
- package/src/components/minimap/MinimapSVG.tsx +32 -31
- package/src/components/minimap/minimapLayout.test.ts +60 -0
- package/src/components/minimap/minimapLayout.ts +15 -10
- package/src/components/msa/{DomainLegend.tsx → AnnotationLegend.tsx} +7 -3
- package/src/components/msa/MSACanvas.tsx +24 -11
- package/src/components/msa/MSACanvasBlock.tsx +13 -3
- package/src/components/msa/MSAMouseoverCanvas.tsx +1 -3
- package/src/components/msa/MSAPanel.tsx +2 -2
- package/src/components/msa/domainBandCursor.ts +41 -0
- package/src/components/msa/msaRaster.test.ts +145 -0
- package/src/components/msa/msaRaster.ts +350 -0
- package/src/components/msa/renderMSABlock.ts +34 -43
- package/src/components/msa/renderMSAMouseover.ts +1 -3
- package/src/components/msa/tileColor.ts +37 -0
- package/src/components/renderCtx.ts +2 -0
- package/src/components/tracks/TrackBlocks.tsx +111 -0
- package/src/components/tracks/drawTracks.ts +323 -0
- package/src/components/tree/TreeCanvas.tsx +16 -4
- package/src/components/tree/TreeCanvasBlock.tsx +18 -11
- package/src/components/tree/TreeRuler.tsx +7 -2
- package/src/components/tree/renderTreeCanvas.test.ts +15 -7
- package/src/components/tree/renderTreeCanvas.ts +5 -1
- package/src/constants.ts +10 -0
- package/src/domainBands.test.ts +24 -0
- package/src/domainLetterColor.test.ts +80 -0
- package/src/ggplotPalettes.ts +0 -4
- package/src/hierarchy.test.ts +7 -7
- package/src/hierarchy.ts +6 -9
- package/src/impgRender.test.tsx +2 -57
- package/src/index.ts +4 -1
- package/src/largeTree.test.ts +39 -4
- package/src/launchInterProScan.ts +3 -30
- package/src/loadErrorDisplay.test.tsx +102 -0
- package/src/measureTextCanvas.ts +22 -6
- package/src/model/DataModel.ts +11 -11
- package/src/model.ts +262 -172
- package/src/neighborJoining.ts +36 -18
- package/src/renderDomainsSvg.test.tsx +2 -57
- package/src/renderMinimapSvg.test.tsx +55 -0
- package/src/renderSequenceLogoSvg.test.tsx +176 -0
- package/src/renderTestEnv.ts +96 -0
- package/src/renderToSvg.tsx +3 -3
- package/src/rowCoordinateCalculations.ts +48 -44
- package/src/sequenceLogo.test.ts +88 -0
- package/src/sequenceLogo.ts +63 -0
- package/src/types.ts +17 -16
- package/src/version.ts +1 -1
- package/src/viewChrome.test.tsx +134 -0
- package/dist/components/ConservationTrack.d.ts +0 -8
- package/dist/components/ConservationTrack.js +0 -49
- package/dist/components/ConservationTrack.js.map +0 -1
- package/dist/components/TextTrack.d.ts +0 -8
- package/dist/components/TextTrack.js +0 -58
- package/dist/components/TextTrack.js.map +0 -1
- package/dist/components/dialogs/DomainDialog.d.ts +0 -6
- package/dist/components/dialogs/DomainDialog.js +0 -19
- package/dist/components/dialogs/DomainDialog.js.map +0 -1
- package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +0 -1
- package/dist/components/header/SettingsMenu.d.ts +0 -6
- package/dist/components/header/SettingsMenu.js +0 -40
- package/dist/components/header/SettingsMenu.js.map +0 -1
- package/dist/components/header/getDomainsMenu.js.map +0 -1
- package/dist/components/msa/DomainLegend.js.map +0 -1
- package/dist/components/tracks/renderTracksSvg.js +0 -126
- package/dist/components/tracks/renderTracksSvg.js.map +0 -1
- package/src/components/ConservationTrack.tsx +0 -99
- package/src/components/TextTrack.tsx +0 -103
- package/src/components/dialogs/DomainDialog.tsx +0 -45
- package/src/components/header/SettingsMenu.tsx +0 -57
- package/src/components/tracks/renderTracksSvg.ts +0 -247
package/dist/hierarchy.js
CHANGED
|
@@ -56,12 +56,11 @@ export function collapse(node) {
|
|
|
56
56
|
node.children = null;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
//
|
|
60
|
-
// its detached subtree (excludes the node's own branch).
|
|
59
|
+
// Cumulative raw branch length from a collapsed node down to the farthest tip of
|
|
60
|
+
// its detached subtree (excludes the node's own branch). Sizes the base of the
|
|
61
61
|
// collapsed-clade triangle in phylogram mode.
|
|
62
|
-
export function
|
|
62
|
+
export function collapsedSubtreeMaxLength(node) {
|
|
63
63
|
const roots = node._children ?? node.children;
|
|
64
|
-
let min = Infinity;
|
|
65
64
|
let max = 0;
|
|
66
65
|
if (roots) {
|
|
67
66
|
const stack = roots.map(child => ({
|
|
@@ -80,12 +79,11 @@ export function collapsedSubtreeLengthExtent(node) {
|
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
else {
|
|
83
|
-
min = Math.min(min, acc);
|
|
84
82
|
max = Math.max(max, acc);
|
|
85
83
|
}
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
|
-
return
|
|
86
|
+
return max;
|
|
89
87
|
}
|
|
90
88
|
// Cladogram positioning based on ape's plot.phylo: uses topological depth (max
|
|
91
89
|
// steps to a tip) instead of branch length so all leaves align at the rightmost
|
package/dist/hierarchy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,IAAI,EACJ,iBAAiB,EACjB,WAAW,EACX,SAAS,IAAI,aAAa,EAC1B,MAAM,EACN,KAAK,EACL,IAAI,EACJ,GAAG,GACJ,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export { default as MSAViewer } from './components/MSAViewer.tsx';
|
|
|
4
4
|
export { type MsaViewModel, default as MSAModelF } from './model.ts';
|
|
5
5
|
export type { MSAFormat, MSAParserType } from 'msa-parsers';
|
|
6
6
|
export type { HierarchyNode } from './hierarchy.ts';
|
|
7
|
-
export type { InterProScanResults } from '
|
|
7
|
+
export type { InterProScanResults } from 'msa-parsers';
|
|
8
8
|
export type { ColumnCounts } from './columnCounts.ts';
|
|
9
|
-
export type { Accession, BasicTrack, BasicTrackModel, DomainBand, Node, NodeWithIds, NodeWithIdsAndLength, TextTrackModel, TidyDomainAnnotation, } from './types.ts';
|
|
9
|
+
export type { Accession, Annotation, BasicTrack, BasicTrackModel, DomainBand, Node, NodeWithIds, NodeWithIdsAndLength, TextTrackModel, TidyDomainAnnotation, } from './types.ts';
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
import type { MsaViewModel } from './model.ts';
|
|
2
|
-
export interface InterProScanResults {
|
|
3
|
-
matches: {
|
|
4
|
-
signature: {
|
|
5
|
-
entry?: {
|
|
6
|
-
name: string;
|
|
7
|
-
description: string;
|
|
8
|
-
accession: string;
|
|
9
|
-
featureType?: string;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
locations: {
|
|
13
|
-
start: number;
|
|
14
|
-
end: number;
|
|
15
|
-
strand?: number;
|
|
16
|
-
}[];
|
|
17
|
-
}[];
|
|
18
|
-
xref: {
|
|
19
|
-
id: string;
|
|
20
|
-
}[];
|
|
21
|
-
}
|
|
22
|
-
export interface InterProScanResponse {
|
|
23
|
-
results: InterProScanResults[];
|
|
24
|
-
}
|
|
25
2
|
export declare function launchInterProScan({ algorithm, seq, programs, onJobId, onProgress, model, signal, }: {
|
|
26
3
|
algorithm: string;
|
|
27
4
|
seq: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getSession } from '@jbrowse/core/util';
|
|
2
|
+
import { interProScanResponseToAnnotations } from 'msa-parsers';
|
|
2
3
|
import { isAbortError, jsonfetch, textfetch, timeout } from './fetchUtils.js';
|
|
3
4
|
const base = 'https://www.ebi.ac.uk/Tools/services/rest';
|
|
4
5
|
async function runInterProScan({ seq, onProgress, onJobId, programs, model, signal, }) {
|
|
@@ -90,11 +91,7 @@ async function loadInterProScanResultsWithStatus({ jobId, model, onProgress, sig
|
|
|
90
91
|
url: `https://www.ebi.ac.uk/Tools/services/rest/iprscan5/result/${jobId}/json`,
|
|
91
92
|
});
|
|
92
93
|
const ret = await loadInterProScanResults(jobId, signal);
|
|
93
|
-
|
|
94
|
-
// rather than crashing the whole load on one malformed result
|
|
95
|
-
model.setDomains(Object.fromEntries(ret.results
|
|
96
|
-
.map(r => [r.xref[0]?.id, r])
|
|
97
|
-
.filter((e) => e[0] !== undefined)));
|
|
94
|
+
model.setAnnotations(interProScanResponseToAnnotations(ret));
|
|
98
95
|
getSession(model).notify(`Loaded interproscan ${jobId} results`, 'success');
|
|
99
96
|
}
|
|
100
97
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
1
|
import { setFontSize } from './setFontSize.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
// Cached across calls: labelWidthMap measures every leaf label on every layout,
|
|
3
|
+
// and both createElement and getContext are far more expensive than measureText.
|
|
4
|
+
// `null` records that this environment has no 2d context, so the lookup is not
|
|
5
|
+
// retried on every label.
|
|
6
|
+
let ctxHandle;
|
|
7
|
+
function getCtx() {
|
|
8
|
+
if (ctxHandle === undefined) {
|
|
9
|
+
ctxHandle =
|
|
10
|
+
typeof document === 'undefined'
|
|
11
|
+
? null
|
|
12
|
+
: document.createElement('canvas').getContext('2d');
|
|
6
13
|
}
|
|
7
|
-
|
|
14
|
+
return ctxHandle;
|
|
15
|
+
}
|
|
16
|
+
// Rough average glyph width as a fraction of the font size for the sans-serif
|
|
17
|
+
// stack the tree labels use. Only reached where there is no canvas to measure
|
|
18
|
+
// with (jsdom, SSR); estimating the label gutter beats throwing out of the
|
|
19
|
+
// layout getters that read this on every render.
|
|
20
|
+
const fallbackGlyphWidthRatio = 0.6;
|
|
21
|
+
export function measureTextCanvas(text, fontSize) {
|
|
22
|
+
const ctx = getCtx();
|
|
8
23
|
if (!ctx) {
|
|
9
|
-
|
|
24
|
+
return text.length * fontSize * fallbackGlyphWidthRatio;
|
|
10
25
|
}
|
|
11
26
|
setFontSize(ctx, fontSize);
|
|
12
27
|
return ctx.measureText(text).width;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureTextCanvas.js","sourceRoot":"","sources":["../src/measureTextCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,IAAI,
|
|
1
|
+
{"version":3,"file":"measureTextCanvas.js","sourceRoot":"","sources":["../src/measureTextCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,gFAAgF;AAChF,iFAAiF;AACjF,+EAA+E;AAC/E,0BAA0B;AAC1B,IAAI,SAAsD,CAAA;AAE1D,SAAS,MAAM;IACb,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS;YACP,OAAO,QAAQ,KAAK,WAAW;gBAC7B,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,2EAA2E;AAC3E,iDAAiD;AACjD,MAAM,uBAAuB,GAAG,GAAG,CAAA;AAEnC,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB;IAC9D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,uBAAuB,CAAA;IACzD,CAAC;IACD,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1B,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;AACpC,CAAC"}
|
|
@@ -40,8 +40,5 @@ export declare function DataModelF(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
40
40
|
*/
|
|
41
41
|
setGFF(gff?: string): void;
|
|
42
42
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, {
|
|
43
|
-
|
|
44
|
-
msa: string | undefined;
|
|
45
|
-
treeMetadata: string | undefined;
|
|
46
|
-
gff: string | undefined;
|
|
43
|
+
[k: string]: string | undefined;
|
|
47
44
|
}>;
|
package/dist/model/DataModel.js
CHANGED
|
@@ -52,15 +52,13 @@ export function DataModelF() {
|
|
|
52
52
|
self.gff = gff;
|
|
53
53
|
},
|
|
54
54
|
}))
|
|
55
|
-
.postProcessSnapshot(snap =>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
});
|
|
55
|
+
.postProcessSnapshot(snap =>
|
|
56
|
+
// a large document is dropped from the snapshot rather than inlined
|
|
57
|
+
// into a session or a shared URL, and every field here holds one, so
|
|
58
|
+
// the rule is the same for all of them
|
|
59
|
+
Object.fromEntries(Object.entries(snap).map(([key, text]) => [
|
|
60
|
+
key,
|
|
61
|
+
text && text.length > 50_000 ? undefined : text,
|
|
62
|
+
])));
|
|
65
63
|
}
|
|
66
64
|
//# sourceMappingURL=DataModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/model/DataModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK;SACT,KAAK,CAAC;QACL;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B;;WAEG;QACH,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9B;;WAEG;QACH,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC;;WAEG;QACH,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;KAC/B,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;WAEG;QACH,OAAO,CAAC,IAAa;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD;;WAEG;QACH,MAAM,CAAC,GAAY;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,CAAC;QACD;;WAEG;QACH,eAAe,CAAC,YAAqB;YACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAClC,CAAC;QACD;;WAEG;QACH,MAAM,CAAC,GAAY;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,CAAC;KACF,CAAC,CAAC;SACF,mBAAmB,CAAC,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/model/DataModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK;SACT,KAAK,CAAC;QACL;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/B;;WAEG;QACH,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9B;;WAEG;QACH,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC;;WAEG;QACH,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;KAC/B,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;WAEG;QACH,OAAO,CAAC,IAAa;YACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD;;WAEG;QACH,MAAM,CAAC,GAAY;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,CAAC;QACD;;WAEG;QACH,eAAe,CAAC,YAAqB;YACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAClC,CAAC;QACD;;WAEG;QACH,MAAM,CAAC,GAAY;YACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAChB,CAAC;KACF,CAAC,CAAC;SACF,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAC1B,oEAAoE;IACpE,qEAAqE;IACrE,uCAAuC;IACvC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG;QACH,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;KAChD,CAAC,CACH,CACF,CAAA;AACL,CAAC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { HierarchyNode } from './hierarchy.ts';
|
|
2
|
-
import type {
|
|
3
|
-
import type { BasicTrack, DomainBand, NodeWithIds, NodeWithIdsAndLength } from './types.ts';
|
|
2
|
+
import type { Annotation, BasicTrack, DomainBand, NodeWithIds, NodeWithIdsAndLength } from './types.ts';
|
|
4
3
|
import type { FileLocation as FileLocationType } from '@jbrowse/core/util/types';
|
|
5
4
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
6
5
|
import type { Theme } from '@mui/material';
|
|
6
|
+
import type { InterProScanResults } from 'msa-parsers';
|
|
7
7
|
/**
|
|
8
8
|
* #stateModel MsaView
|
|
9
9
|
*
|
|
10
10
|
* The main MSAView state model. Holds the loaded alignment, tree, and optional
|
|
11
|
-
*
|
|
11
|
+
* overlay annotations, plus all display state (color scheme, zoom,
|
|
12
12
|
* scroll, collapsed clades). It composes in members from `DialogQueueSessionMixin`,
|
|
13
13
|
* `Tree`, and `MSAModel` (see Inherited members below). Data is loaded reactively
|
|
14
14
|
* from the `msaFilehandle` / `treeFilehandle` / `gffFilehandle` properties, or set
|
|
@@ -405,7 +405,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
405
405
|
}>, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
|
|
406
406
|
/**
|
|
407
407
|
* #property
|
|
408
|
-
* filehandle object for
|
|
408
|
+
* filehandle object for a GFF file of overlay annotations
|
|
409
409
|
*/
|
|
410
410
|
gffFilehandle: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISnapshotProcessor<import("@jbrowse/mobx-state-tree").ITypeUnion<import("@jbrowse/mobx-state-tree").ModelCreationType<{
|
|
411
411
|
locationType: "LocalPathLocation";
|
|
@@ -518,7 +518,10 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
518
518
|
showOnly: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
519
519
|
/**
|
|
520
520
|
* #property
|
|
521
|
-
*
|
|
521
|
+
* the user's explicit show/hide choice per track id, keyed by id with
|
|
522
|
+
* the value meaning "off". A track the user has never touched is absent
|
|
523
|
+
* and falls back to its own default (see `defaultOffTracks`), so a
|
|
524
|
+
* hidden-by-default track adds nothing to the shared URL.
|
|
522
525
|
*/
|
|
523
526
|
turnedOffTracks: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IMapType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>>, [undefined]>;
|
|
524
527
|
/**
|
|
@@ -537,10 +540,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
537
540
|
setTreeMetadata(treeMetadata?: string): void;
|
|
538
541
|
setGFF(gff?: string): void;
|
|
539
542
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, {
|
|
540
|
-
|
|
541
|
-
msa: string | undefined;
|
|
542
|
-
treeMetadata: string | undefined;
|
|
543
|
-
gff: string | undefined;
|
|
543
|
+
[k: string]: string | undefined;
|
|
544
544
|
}>, [undefined]>;
|
|
545
545
|
/**
|
|
546
546
|
* #property
|
|
@@ -664,6 +664,13 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
664
664
|
* #volatile
|
|
665
665
|
*/
|
|
666
666
|
conservationTrackHeight: number;
|
|
667
|
+
/**
|
|
668
|
+
* #volatile
|
|
669
|
+
* taller than the conservation track by default: the logo spends its
|
|
670
|
+
* height on stacked glyphs, and a 40px stack of four residues leaves each
|
|
671
|
+
* one too short to identify
|
|
672
|
+
*/
|
|
673
|
+
sequenceLogoTrackHeight: number;
|
|
667
674
|
/**
|
|
668
675
|
* #volatile
|
|
669
676
|
*/
|
|
@@ -674,8 +681,12 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
674
681
|
error: unknown;
|
|
675
682
|
/**
|
|
676
683
|
* #volatile
|
|
684
|
+
* overlay annotations drawn on the alignment, whatever their source.
|
|
685
|
+
* Every source -- InterProScan, GFF, a user upload -- converts to this
|
|
686
|
+
* flat list before it reaches the model, so nothing downstream of here
|
|
687
|
+
* knows which one it came from
|
|
677
688
|
*/
|
|
678
|
-
|
|
689
|
+
annotations: Annotation[];
|
|
679
690
|
} & {
|
|
680
691
|
/**
|
|
681
692
|
* #action
|
|
@@ -740,7 +751,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
740
751
|
setHighlightedColumns(columns?: number[]): void;
|
|
741
752
|
/**
|
|
742
753
|
* #action
|
|
743
|
-
* toggle the
|
|
754
|
+
* toggle the annotation overlay on the alignment
|
|
744
755
|
*/
|
|
745
756
|
setShowDomains(arg: boolean): void;
|
|
746
757
|
/**
|
|
@@ -767,11 +778,6 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
767
778
|
* set col width (px)
|
|
768
779
|
*/
|
|
769
780
|
setColWidth(n: number): void;
|
|
770
|
-
/**
|
|
771
|
-
* #action
|
|
772
|
-
* set scroll Y-offset (px)
|
|
773
|
-
*/
|
|
774
|
-
setScrollY(n: number): void;
|
|
775
781
|
/**
|
|
776
782
|
* #action
|
|
777
783
|
*
|
|
@@ -938,10 +944,6 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
938
944
|
* #getter
|
|
939
945
|
*/
|
|
940
946
|
readonly blanks: number[];
|
|
941
|
-
/**
|
|
942
|
-
* #getter
|
|
943
|
-
*/
|
|
944
|
-
readonly blanksSet: Set<number>;
|
|
945
947
|
/**
|
|
946
948
|
* #getter
|
|
947
949
|
* Returns a map of row name to array of insertions with display position and letters
|
|
@@ -989,11 +991,6 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
989
991
|
* #getter
|
|
990
992
|
*/
|
|
991
993
|
readonly colStats: import("./columnCounts.ts").ColumnCounts;
|
|
992
|
-
/**
|
|
993
|
-
* #getter
|
|
994
|
-
* per-column residue totals (gaps included)
|
|
995
|
-
*/
|
|
996
|
-
readonly colStatsSums: Uint32Array<ArrayBufferLike>;
|
|
997
994
|
/**
|
|
998
995
|
* #getter
|
|
999
996
|
* Detects sequence type based on letters present in the alignment.
|
|
@@ -1023,6 +1020,13 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1023
1020
|
* Returns values 0-1 where 1 = fully conserved, 0 = no conservation.
|
|
1024
1021
|
*/
|
|
1025
1022
|
readonly conservation: number[];
|
|
1023
|
+
/**
|
|
1024
|
+
* #getter
|
|
1025
|
+
* The information content of a fully conserved column, in bits, which
|
|
1026
|
+
* depends on the alphabet. Both the entropy ceiling `conservation`
|
|
1027
|
+
* normalizes against and the y-axis ceiling of the sequence logo track.
|
|
1028
|
+
*/
|
|
1029
|
+
readonly alphabetMaxBits: number;
|
|
1026
1030
|
/**
|
|
1027
1031
|
* #getter
|
|
1028
1032
|
* Per-column conservation of physicochemical property class (amino acids
|
|
@@ -1080,6 +1084,12 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1080
1084
|
* #getter
|
|
1081
1085
|
*/
|
|
1082
1086
|
readonly blocksY: number[];
|
|
1087
|
+
/**
|
|
1088
|
+
* #getter
|
|
1089
|
+
* height of the alignment viewport, px. The same subtraction as
|
|
1090
|
+
* msaAreaHeight, which is defined later in the views chain
|
|
1091
|
+
*/
|
|
1092
|
+
readonly visibleMsaHeight: number;
|
|
1083
1093
|
} & {
|
|
1084
1094
|
/**
|
|
1085
1095
|
* #getter
|
|
@@ -1096,8 +1106,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1096
1106
|
/**
|
|
1097
1107
|
* #getter
|
|
1098
1108
|
* most-negative allowed scrollY, keeping the last row in view rather than
|
|
1099
|
-
* letting the whole alignment scroll off the top.
|
|
1100
|
-
* computed inline here because msaAreaHeight is defined later in the chain.
|
|
1109
|
+
* letting the whole alignment scroll off the top.
|
|
1101
1110
|
*/
|
|
1102
1111
|
readonly maxScrollY: number;
|
|
1103
1112
|
/**
|
|
@@ -1173,9 +1182,21 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1173
1182
|
doScrollY(deltaY: number): void;
|
|
1174
1183
|
/**
|
|
1175
1184
|
* #action
|
|
1176
|
-
*
|
|
1177
|
-
|
|
1178
|
-
|
|
1185
|
+
* set scroll Y-offset (px), clamped to keep the alignment in view
|
|
1186
|
+
*/
|
|
1187
|
+
setScrollY(n: number): void;
|
|
1188
|
+
/**
|
|
1189
|
+
* #action
|
|
1190
|
+
* Set the overlay annotations and reveal the overlay in a single step (an
|
|
1191
|
+
* empty list clears both). Every source funnels through here after its
|
|
1192
|
+
* own adapter has flattened it: InterProScan, GFF, user uploads, NCBI CDD.
|
|
1193
|
+
*/
|
|
1194
|
+
setAnnotations(annotations: Annotation[]): void;
|
|
1195
|
+
/**
|
|
1196
|
+
* #action
|
|
1197
|
+
* set the overlay from raw InterProScan results keyed by row name. Kept
|
|
1198
|
+
* for downstream plugins that hold the EBI wire format; new code should
|
|
1199
|
+
* adapt to Annotation[] and call setAnnotations.
|
|
1179
1200
|
*/
|
|
1180
1201
|
setDomains(data?: Record<string, InterProScanResults>): void;
|
|
1181
1202
|
applyGFFText(gffText: string): void;
|
|
@@ -1204,6 +1225,12 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1204
1225
|
* #getter
|
|
1205
1226
|
*/
|
|
1206
1227
|
readonly labelWidthMap: Map<string, number>;
|
|
1228
|
+
/**
|
|
1229
|
+
* #getter
|
|
1230
|
+
* factor turning a labelWidthMap entry into its width at the current
|
|
1231
|
+
* font size
|
|
1232
|
+
*/
|
|
1233
|
+
readonly labelWidthScale: number;
|
|
1207
1234
|
readonly labelsWidth: number;
|
|
1208
1235
|
/**
|
|
1209
1236
|
* #getter
|
|
@@ -1303,46 +1330,13 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1303
1330
|
* total height of track area (px)
|
|
1304
1331
|
*/
|
|
1305
1332
|
readonly totalTrackAreaHeight: number;
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
end: number;
|
|
1314
|
-
strand: number | undefined;
|
|
1315
|
-
}>;
|
|
1316
|
-
readonly tidyInterProAnnotations: {
|
|
1317
|
-
id: string;
|
|
1318
|
-
name: string;
|
|
1319
|
-
accession: string;
|
|
1320
|
-
description: string;
|
|
1321
|
-
featureType: string | undefined;
|
|
1322
|
-
start: number;
|
|
1323
|
-
end: number;
|
|
1324
|
-
strand: number | undefined;
|
|
1325
|
-
}[];
|
|
1326
|
-
readonly tidyFilteredInterProAnnotations: {
|
|
1327
|
-
id: string;
|
|
1328
|
-
name: string;
|
|
1329
|
-
accession: string;
|
|
1330
|
-
description: string;
|
|
1331
|
-
featureType: string | undefined;
|
|
1332
|
-
start: number;
|
|
1333
|
-
end: number;
|
|
1334
|
-
strand: number | undefined;
|
|
1335
|
-
}[];
|
|
1336
|
-
readonly tidyFilteredGatheredInterProAnnotations: Record<string, {
|
|
1337
|
-
id: string;
|
|
1338
|
-
name: string;
|
|
1339
|
-
accession: string;
|
|
1340
|
-
description: string;
|
|
1341
|
-
featureType: string | undefined;
|
|
1342
|
-
start: number;
|
|
1343
|
-
end: number;
|
|
1344
|
-
strand: number | undefined;
|
|
1345
|
-
}[]>;
|
|
1333
|
+
/**
|
|
1334
|
+
* one representative annotation per accession, which is what the legend,
|
|
1335
|
+
* the filter dialog and the palettes key off
|
|
1336
|
+
*/
|
|
1337
|
+
readonly annotationTypes: Map<string, Annotation>;
|
|
1338
|
+
readonly filteredAnnotations: Annotation[];
|
|
1339
|
+
readonly annotationsByRow: Record<string, Annotation[]>;
|
|
1346
1340
|
} & {
|
|
1347
1341
|
/**
|
|
1348
1342
|
* #getter
|
|
@@ -1353,37 +1347,26 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1353
1347
|
* #getter
|
|
1354
1348
|
*/
|
|
1355
1349
|
readonly verticalScrollbarWidth: 0 | 20;
|
|
1350
|
+
/**
|
|
1351
|
+
* #getter
|
|
1352
|
+
* width of the alignment canvas itself: the msa area less the vertical
|
|
1353
|
+
* scrollbar sitting in it. Not usable from showHorizontalScrollbar, which
|
|
1354
|
+
* feeds msaAreaHeight -> showVerticalScrollbar and would close a cycle
|
|
1355
|
+
*/
|
|
1356
|
+
readonly msaCanvasWidth: number;
|
|
1356
1357
|
/**
|
|
1357
1358
|
* #getter
|
|
1358
1359
|
* ordinal segment types (exons etc.), ordered by sequence position so
|
|
1359
1360
|
* exon-1..exon-14 read left-to-right; colored by alternating shade and
|
|
1360
1361
|
* labeled by number rather than each getting a distinct hue + legend row
|
|
1361
1362
|
*/
|
|
1362
|
-
readonly segmentDomainTypes:
|
|
1363
|
-
id: string;
|
|
1364
|
-
name: string;
|
|
1365
|
-
accession: string;
|
|
1366
|
-
description: string;
|
|
1367
|
-
featureType: string | undefined;
|
|
1368
|
-
start: number;
|
|
1369
|
-
end: number;
|
|
1370
|
-
strand: number | undefined;
|
|
1371
|
-
}[];
|
|
1363
|
+
readonly segmentDomainTypes: Annotation[];
|
|
1372
1364
|
/**
|
|
1373
1365
|
* #getter
|
|
1374
1366
|
* categorical feature types (InterPro domains and the like) that each get
|
|
1375
1367
|
* their own color and a legend entry
|
|
1376
1368
|
*/
|
|
1377
|
-
readonly categoricalDomainTypes:
|
|
1378
|
-
id: string;
|
|
1379
|
-
name: string;
|
|
1380
|
-
accession: string;
|
|
1381
|
-
description: string;
|
|
1382
|
-
featureType: string | undefined;
|
|
1383
|
-
start: number;
|
|
1384
|
-
end: number;
|
|
1385
|
-
strand: number | undefined;
|
|
1386
|
-
}[];
|
|
1369
|
+
readonly categoricalDomainTypes: Annotation[];
|
|
1387
1370
|
readonly fillPalette: {
|
|
1388
1371
|
[x: string]: string;
|
|
1389
1372
|
};
|
|
@@ -1403,24 +1386,16 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1403
1386
|
* (exons) are excluded — they read as a numbered gene model, not a color
|
|
1404
1387
|
* key — so this is the categorical types ordered by sequence position
|
|
1405
1388
|
*/
|
|
1406
|
-
readonly visibleDomainTypes:
|
|
1407
|
-
id: string;
|
|
1408
|
-
name: string;
|
|
1409
|
-
accession: string;
|
|
1410
|
-
description: string;
|
|
1411
|
-
featureType: string | undefined;
|
|
1412
|
-
start: number;
|
|
1413
|
-
end: number;
|
|
1414
|
-
strand: number | undefined;
|
|
1415
|
-
}[];
|
|
1389
|
+
readonly visibleDomainTypes: Annotation[];
|
|
1416
1390
|
/**
|
|
1417
1391
|
* #getter
|
|
1418
|
-
* every filtered-on
|
|
1419
|
-
*
|
|
1420
|
-
*
|
|
1421
|
-
*
|
|
1422
|
-
*
|
|
1423
|
-
*
|
|
1392
|
+
* every filtered-on annotation resolved to the visible column span it is
|
|
1393
|
+
* drawn across, keyed by row name. Each row is ordered longest-first so a
|
|
1394
|
+
* short domain nested inside a long one draws on top of it rather than
|
|
1395
|
+
* under it. Resolving these once here rather than inside each canvas
|
|
1396
|
+
* block removes a per-feature, per-block sequence position conversion
|
|
1397
|
+
* from every redraw, and gives the letter renderer the band colors it
|
|
1398
|
+
* needs to keep residues readable on top of the boxes.
|
|
1424
1399
|
*/
|
|
1425
1400
|
readonly domainBands: Map<string, DomainBand[]>;
|
|
1426
1401
|
/**
|
|
@@ -1434,7 +1409,7 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1434
1409
|
* domain annotations under the mouse, hit-tested against the exact visible
|
|
1435
1410
|
* column span each box is drawn at (so it matches the overlay across gaps)
|
|
1436
1411
|
*/
|
|
1437
|
-
readonly mouseOverDomains:
|
|
1412
|
+
readonly mouseOverDomains: Annotation[];
|
|
1438
1413
|
/**
|
|
1439
1414
|
* #getter
|
|
1440
1415
|
* row index of the reference row (`relativeTo`), undefined when unset
|
|
@@ -1496,6 +1471,10 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1496
1471
|
* #action
|
|
1497
1472
|
*/
|
|
1498
1473
|
setConservationTrackHeight(arg: number): void;
|
|
1474
|
+
/**
|
|
1475
|
+
* #action
|
|
1476
|
+
*/
|
|
1477
|
+
setSequenceLogoTrackHeight(arg: number): void;
|
|
1499
1478
|
/**
|
|
1500
1479
|
* #action
|
|
1501
1480
|
*/
|