react-msaview 7.0.0 → 8.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/README.md +11 -10
- package/bundle/index.js +122 -111
- package/bundle/index.js.map +4 -4
- package/dist/colorSchemes.js +1 -2
- package/dist/colorSchemes.js.map +1 -1
- package/dist/columnStats.d.ts +28 -0
- package/dist/columnStats.js +34 -0
- package/dist/columnStats.js.map +1 -0
- package/dist/components/DragHandle.d.ts +3 -2
- package/dist/components/DragHandle.js +11 -5
- package/dist/components/DragHandle.js.map +1 -1
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAView.js +17 -6
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/MSAViewer.d.ts +64 -7
- package/dist/components/MSAViewer.js +128 -23
- package/dist/components/MSAViewer.js.map +1 -1
- package/dist/components/PortalTooltip.d.ts +11 -0
- package/dist/components/PortalTooltip.js +29 -0
- package/dist/components/PortalTooltip.js.map +1 -0
- package/dist/components/ResizeHandles.js +11 -29
- package/dist/components/ResizeHandles.js.map +1 -1
- package/dist/components/SequenceTextArea.js +3 -3
- package/dist/components/SequenceTextArea.js.map +1 -1
- package/dist/components/Track.js +41 -22
- package/dist/components/Track.js.map +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js +5 -3
- package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
- package/dist/components/header/GappynessSlider.js +6 -11
- package/dist/components/header/GappynessSlider.js.map +1 -1
- package/dist/components/header/Header.js +3 -0
- package/dist/components/header/Header.js.map +1 -1
- package/dist/components/header/LoadWarnings.js +3 -4
- package/dist/components/header/LoadWarnings.js.map +1 -1
- package/dist/components/header/ScrollZoomIcons.d.ts +6 -0
- package/dist/components/header/ScrollZoomIcons.js +35 -0
- package/dist/components/header/ScrollZoomIcons.js.map +1 -0
- package/dist/components/header/TreeSettingsMenu.js +1 -3
- package/dist/components/header/TreeSettingsMenu.js.map +1 -1
- package/dist/components/header/UnshareableDataWarning.js +2 -4
- package/dist/components/header/UnshareableDataWarning.js.map +1 -1
- package/dist/components/header/ZoomControls.js +49 -6
- package/dist/components/header/ZoomControls.js.map +1 -1
- package/dist/components/header/getAnnotationsMenu.js +3 -6
- package/dist/components/header/getAnnotationsMenu.js.map +1 -1
- package/dist/components/header/settingsMenuItems.js +10 -7
- package/dist/components/header/settingsMenuItems.js.map +1 -1
- package/dist/components/import/util.js +1 -2
- package/dist/components/import/util.js.map +1 -1
- package/dist/components/minimap/Minimap.js +1 -2
- package/dist/components/minimap/Minimap.js.map +1 -1
- package/dist/components/msa/AnnotationLegend.js +27 -19
- package/dist/components/msa/AnnotationLegend.js.map +1 -1
- package/dist/components/msa/MSACanvas.js +1 -1
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.js +13 -15
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js +2 -1
- package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/msa/domainBandCursor.d.ts +7 -11
- package/dist/components/msa/domainBandCursor.js +7 -11
- package/dist/components/msa/domainBandCursor.js.map +1 -1
- package/dist/components/msa/drawFeatureSpans.d.ts +53 -0
- package/dist/components/msa/drawFeatureSpans.js +78 -0
- package/dist/components/msa/drawFeatureSpans.js.map +1 -0
- package/dist/components/msa/legendRows.d.ts +8 -0
- package/dist/components/msa/legendRows.js +16 -0
- package/dist/components/msa/legendRows.js.map +1 -0
- package/dist/components/msa/msaRaster.d.ts +24 -31
- package/dist/components/msa/msaRaster.js +30 -39
- package/dist/components/msa/msaRaster.js.map +1 -1
- package/dist/components/msa/packDomainLanes.d.ts +20 -0
- package/dist/components/msa/packDomainLanes.js +33 -0
- package/dist/components/msa/packDomainLanes.js.map +1 -0
- package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +3 -1
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js +51 -87
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
- package/dist/components/msa/renderHighlights.d.ts +15 -13
- package/dist/components/msa/renderHighlights.js +43 -20
- package/dist/components/msa/renderHighlights.js.map +1 -1
- package/dist/components/msa/renderMSABlock.js +5 -4
- package/dist/components/msa/renderMSABlock.js.map +1 -1
- package/dist/components/msa/tileColor.js +4 -7
- package/dist/components/msa/tileColor.js.map +1 -1
- package/dist/components/msa/useMsaBlockMouse.d.ts +5 -3
- package/dist/components/msa/useMsaBlockMouse.js +6 -6
- package/dist/components/msa/useMsaBlockMouse.js.map +1 -1
- package/dist/components/rowpanels/RowPanelBlock.d.ts +9 -0
- package/dist/components/rowpanels/RowPanelBlock.js +86 -0
- package/dist/components/rowpanels/RowPanelBlock.js.map +1 -0
- package/dist/components/rowpanels/RowPanelHeaders.d.ts +12 -0
- package/dist/components/rowpanels/RowPanelHeaders.js +38 -0
- package/dist/components/rowpanels/RowPanelHeaders.js.map +1 -0
- package/dist/components/{msa/ColumnStats.d.ts → rowpanels/RowPanels.d.ts} +2 -2
- package/dist/components/rowpanels/RowPanels.js +32 -0
- package/dist/components/rowpanels/RowPanels.js.map +1 -0
- package/dist/components/rowpanels/headerLayout.d.ts +1 -0
- package/dist/components/rowpanels/headerLayout.js +5 -0
- package/dist/components/rowpanels/headerLayout.js.map +1 -0
- package/dist/components/rowpanels/renderFeaturePanel.d.ts +21 -0
- package/dist/components/rowpanels/renderFeaturePanel.js +37 -0
- package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -0
- package/dist/components/rowpanels/renderRowPanel.d.ts +23 -0
- package/dist/components/rowpanels/renderRowPanel.js +22 -0
- package/dist/components/rowpanels/renderRowPanel.js.map +1 -0
- package/dist/components/rowpanels/renderStrip.d.ts +20 -0
- package/dist/components/rowpanels/renderStrip.js +26 -0
- package/dist/components/rowpanels/renderStrip.js.map +1 -0
- package/dist/components/tracks/TrackBlocks.js +3 -5
- package/dist/components/tracks/TrackBlocks.js.map +1 -1
- package/dist/components/tracks/TrackTooltipContent.d.ts +15 -0
- package/dist/components/tracks/TrackTooltipContent.js +109 -0
- package/dist/components/tracks/TrackTooltipContent.js.map +1 -0
- package/dist/components/tracks/drawTracks.d.ts +4 -4
- package/dist/components/tracks/drawTracks.js +17 -34
- package/dist/components/tracks/drawTracks.js.map +1 -1
- package/dist/components/tracks/useTrackHover.d.ts +22 -0
- package/dist/components/tracks/useTrackHover.js +30 -0
- package/dist/components/tracks/useTrackHover.js.map +1 -0
- package/dist/components/tree/CladeLabels.d.ts +12 -0
- package/dist/components/tree/CladeLabels.js +48 -0
- package/dist/components/tree/CladeLabels.js.map +1 -0
- package/dist/components/tree/TreeCanvas.js +4 -1
- package/dist/components/tree/TreeCanvas.js.map +1 -1
- package/dist/components/tree/TreeCanvasBlock.js +4 -21
- package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
- package/dist/components/tree/TreeOverview.d.ts +14 -0
- package/dist/components/tree/TreeOverview.js +75 -0
- package/dist/components/tree/TreeOverview.js.map +1 -0
- package/dist/components/tree/TreeRuler.js +9 -13
- package/dist/components/tree/TreeRuler.js.map +1 -1
- package/dist/components/tree/cladeBrackets.d.ts +25 -0
- package/dist/components/tree/cladeBrackets.js +51 -0
- package/dist/components/tree/cladeBrackets.js.map +1 -0
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +2 -2
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.js +158 -24
- package/dist/components/tree/renderTreeCanvas.js.map +1 -1
- package/dist/components/tree/renderTreeOverview.d.ts +52 -0
- package/dist/components/tree/renderTreeOverview.js +138 -0
- package/dist/components/tree/renderTreeOverview.js.map +1 -0
- package/dist/components/tree/useTreeHover.js +2 -4
- package/dist/components/tree/useTreeHover.js.map +1 -1
- package/dist/constants.d.ts +15 -0
- package/dist/constants.js +48 -22
- package/dist/constants.js.map +1 -1
- package/dist/createPaletteMap.d.ts +7 -6
- package/dist/createPaletteMap.js +10 -9
- package/dist/createPaletteMap.js.map +1 -1
- package/dist/element.d.ts +13 -0
- package/dist/element.js +269 -0
- package/dist/element.js.map +1 -0
- package/dist/featureFields.d.ts +11 -0
- package/dist/featureFields.js +17 -0
- package/dist/featureFields.js.map +1 -0
- package/dist/flatToTree.js +1 -2
- package/dist/flatToTree.js.map +1 -1
- package/dist/ggplotPalettes.d.ts +10 -0
- package/dist/ggplotPalettes.js +58 -0
- package/dist/ggplotPalettes.js.map +1 -1
- package/dist/hierarchy.d.ts +27 -0
- package/dist/hierarchy.js +66 -9
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/model/DataModel.js +2 -5
- package/dist/model/DataModel.js.map +1 -1
- package/dist/model/msaModel.d.ts +3 -2
- package/dist/model/msaModel.js +3 -2
- package/dist/model/msaModel.js.map +1 -1
- package/dist/model/treeModel.d.ts +30 -0
- package/dist/model/treeModel.js +37 -1
- package/dist/model/treeModel.js.map +1 -1
- package/dist/model.d.ts +531 -275
- package/dist/model.js +1295 -547
- package/dist/model.js.map +1 -1
- package/dist/mount.d.ts +11 -0
- package/dist/mount.js +22 -0
- package/dist/mount.js.map +1 -0
- package/dist/neighborJoining.js +8 -32
- package/dist/neighborJoining.js.map +1 -1
- package/dist/renderToStaticMarkup.d.ts +10 -19
- package/dist/renderToStaticMarkup.js +13 -24
- package/dist/renderToStaticMarkup.js.map +1 -1
- package/dist/renderToSvg.js +180 -56
- package/dist/renderToSvg.js.map +1 -1
- package/dist/rowCoordinateCalculations.d.ts +4 -6
- package/dist/rowCoordinateCalculations.js +4 -6
- package/dist/rowCoordinateCalculations.js.map +1 -1
- package/dist/scales.d.ts +22 -0
- package/dist/scales.js +30 -0
- package/dist/scales.js.map +1 -0
- package/dist/seqPosToGlobalCol.d.ts +2 -3
- package/dist/seqPosToGlobalCol.js +2 -3
- package/dist/seqPosToGlobalCol.js.map +1 -1
- package/dist/sequenceLogo.d.ts +6 -11
- package/dist/sequenceLogo.js +6 -11
- package/dist/sequenceLogo.js.map +1 -1
- package/dist/stripDefault.d.ts +7 -14
- package/dist/stripDefault.js +7 -14
- package/dist/stripDefault.js.map +1 -1
- package/dist/svgTestUtil.d.ts +172 -52
- package/dist/types.d.ts +219 -21
- package/dist/umd.d.ts +2 -0
- package/dist/umd.js +4 -2
- package/dist/umd.js.map +1 -1
- package/dist/useCanvasAutorun.d.ts +5 -10
- package/dist/useCanvasAutorun.js +5 -10
- package/dist/useCanvasAutorun.js.map +1 -1
- package/dist/useMsaSvgFigure.d.ts +20 -0
- package/dist/useMsaSvgFigure.js +46 -0
- package/dist/useMsaSvgFigure.js.map +1 -0
- package/dist/util.d.ts +5 -6
- package/dist/util.js +13 -6
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +19 -12
- package/src/colorSchemes.ts +1 -2
- package/src/columnStats.ts +58 -0
- package/src/components/DragHandle.tsx +18 -7
- package/src/components/Loading.tsx +2 -6
- package/src/components/MSAView.tsx +19 -5
- package/src/components/MSAViewer.tsx +240 -28
- package/src/components/PortalTooltip.tsx +47 -0
- package/src/components/ResizeHandles.tsx +17 -32
- package/src/components/SequenceTextArea.tsx +3 -3
- package/src/components/Track.tsx +55 -18
- package/src/components/dialogs/ExportSVGDialog.tsx +7 -2
- package/src/components/dialogs/TrackInfoDialog.tsx +1 -1
- package/src/components/header/GappynessSlider.tsx +6 -11
- package/src/components/header/Header.tsx +6 -0
- package/src/components/header/LoadWarnings.tsx +3 -4
- package/src/components/header/ScrollZoomIcons.tsx +52 -0
- package/src/components/header/TreeSettingsMenu.tsx +1 -3
- package/src/components/header/UnshareableDataWarning.tsx +2 -4
- package/src/components/header/ZoomControls.tsx +74 -14
- package/src/components/header/getAnnotationsMenu.ts +3 -6
- package/src/components/header/settingsMenuItems.ts +11 -6
- package/src/components/import/ImportFormExamples.tsx +2 -2
- package/src/components/import/util.ts +1 -2
- package/src/components/minimap/Minimap.tsx +1 -2
- package/src/components/msa/AnnotationLegend.tsx +48 -38
- package/src/components/msa/MSACanvas.tsx +3 -5
- package/src/components/msa/MSACanvasBlock.tsx +13 -16
- package/src/components/msa/MSAMouseoverCanvas.tsx +2 -1
- package/src/components/msa/domainBandCursor.ts +7 -11
- package/src/components/msa/drawFeatureSpans.ts +150 -0
- package/src/components/msa/legendRows.ts +24 -0
- package/src/components/msa/msaRaster.ts +30 -39
- package/src/components/msa/packDomainLanes.ts +36 -0
- package/src/components/msa/renderBoxFeatureCanvasBlock.ts +69 -123
- package/src/components/msa/renderHighlights.ts +53 -20
- package/src/components/msa/renderMSABlock.ts +5 -3
- package/src/components/msa/tileColor.ts +4 -7
- package/src/components/msa/useMsaBlockMouse.ts +6 -6
- package/src/components/rowpanels/RowPanelBlock.tsx +139 -0
- package/src/components/rowpanels/RowPanelHeaders.tsx +57 -0
- package/src/components/rowpanels/RowPanels.tsx +77 -0
- package/src/components/rowpanels/headerLayout.ts +5 -0
- package/src/components/rowpanels/renderFeaturePanel.ts +66 -0
- package/src/components/rowpanels/renderRowPanel.ts +41 -0
- package/src/components/rowpanels/renderStrip.ts +46 -0
- package/src/components/tracks/TrackBlocks.tsx +3 -5
- package/src/components/tracks/TrackTooltipContent.tsx +156 -0
- package/src/components/tracks/drawTracks.ts +17 -34
- package/src/components/tracks/useTrackHover.ts +42 -0
- package/src/components/tree/CladeLabels.tsx +77 -0
- package/src/components/tree/TreeCanvas.tsx +2 -0
- package/src/components/tree/TreeCanvasBlock.tsx +8 -32
- package/src/components/tree/TreeOverview.tsx +106 -0
- package/src/components/tree/TreeRuler.tsx +11 -22
- package/src/components/tree/cladeBrackets.ts +73 -0
- package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +2 -2
- package/src/components/tree/renderTreeCanvas.ts +240 -20
- package/src/components/tree/renderTreeOverview.ts +212 -0
- package/src/components/tree/useTreeHover.ts +2 -4
- package/src/constants.ts +56 -22
- package/src/createPaletteMap.ts +10 -9
- package/src/element.ts +321 -0
- package/src/featureFields.ts +19 -0
- package/src/flatToTree.ts +1 -2
- package/src/ggplotPalettes.ts +60 -0
- package/src/hierarchy.ts +77 -9
- package/src/index.ts +31 -7
- package/src/model/DataModel.ts +2 -5
- package/src/model/msaModel.ts +3 -2
- package/src/model/treeModel.ts +42 -0
- package/src/model.ts +1523 -560
- package/src/mount.tsx +32 -0
- package/src/neighborJoining.ts +8 -32
- package/src/renderToStaticMarkup.ts +13 -24
- package/src/renderToSvg.tsx +335 -68
- package/src/rowCoordinateCalculations.ts +4 -6
- package/src/scales.ts +47 -0
- package/src/seqPosToGlobalCol.ts +2 -3
- package/src/sequenceLogo.ts +6 -11
- package/src/stripDefault.ts +7 -14
- package/src/types.ts +258 -45
- package/src/umd.ts +4 -2
- package/src/useCanvasAutorun.ts +5 -10
- package/src/useMsaSvgFigure.ts +72 -0
- package/src/util.ts +15 -6
- package/src/version.ts +1 -1
- package/dist/components/msa/ColumnStats.js +0 -42
- package/dist/components/msa/ColumnStats.js.map +0 -1
- package/src/components/msa/ColumnStats.tsx +0 -54
package/dist/element.js
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { when } from 'mobx';
|
|
2
|
+
import { mount } from './mount.js';
|
|
3
|
+
const ownAttributes = [
|
|
4
|
+
'msa-url',
|
|
5
|
+
'tree-url',
|
|
6
|
+
'gff-url',
|
|
7
|
+
'color-scheme',
|
|
8
|
+
'height',
|
|
9
|
+
'hide-header',
|
|
10
|
+
'theme',
|
|
11
|
+
'reference-row',
|
|
12
|
+
'tree-area-width',
|
|
13
|
+
];
|
|
14
|
+
// the attributes a <nightingale-manager> writes on the elements it holds
|
|
15
|
+
const nightingaleAttributes = ['display-start', 'display-end', 'highlight'];
|
|
16
|
+
function location(uri) {
|
|
17
|
+
return uri ? { uri, locationType: 'UriLocation' } : undefined;
|
|
18
|
+
}
|
|
19
|
+
function numberAttribute(value) {
|
|
20
|
+
const n = value ? Number(value) : Number.NaN;
|
|
21
|
+
return Number.isFinite(n) ? n : undefined;
|
|
22
|
+
}
|
|
23
|
+
// Nightingale writes a highlight as "start:end,start:end", 1-based inclusive
|
|
24
|
+
function parseHighlight(value, row) {
|
|
25
|
+
return (value ?? '').split(',').flatMap(span => {
|
|
26
|
+
const [start, end] = span.split(':').map(numberAttribute);
|
|
27
|
+
return start === undefined ? [] : [{ row, start, end: end ?? start }];
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function residueAtColumn(model, row, column) {
|
|
31
|
+
const visible = model.globalColToVisibleCol(column - 1);
|
|
32
|
+
return visible === undefined
|
|
33
|
+
? undefined
|
|
34
|
+
: model.visibleColToSeqPosOneBased(row, visible);
|
|
35
|
+
}
|
|
36
|
+
// the first and last residues of `row` inside the viewport's columns
|
|
37
|
+
function residueRange(model, row, viewport) {
|
|
38
|
+
let start;
|
|
39
|
+
let end;
|
|
40
|
+
for (let c = viewport.startColumn; c <= viewport.endColumn && !start; c++) {
|
|
41
|
+
start = residueAtColumn(model, row, c);
|
|
42
|
+
}
|
|
43
|
+
for (let c = viewport.endColumn; c >= viewport.startColumn && !end; c--) {
|
|
44
|
+
end = residueAtColumn(model, row, c);
|
|
45
|
+
}
|
|
46
|
+
return start && end ? { start, end } : undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Registers a custom element that renders MSAViewer, for pages with no React.
|
|
50
|
+
* Attributes: msa-url, tree-url, gff-url, color-scheme, height, hide-header,
|
|
51
|
+
* theme, tree-area-width and reference-row. Properties: msa, tree and gff text, highlights,
|
|
52
|
+
* columnTracks and residueMappings. Events: cell-hover, cell-click and
|
|
53
|
+
* viewport-change, each with the MSAViewer callback's value as detail.
|
|
54
|
+
*
|
|
55
|
+
* Inside a <nightingale-manager>, the element registers with it and speaks its
|
|
56
|
+
* protocol: it follows the display-start, display-end and highlight attributes
|
|
57
|
+
* the manager writes, and reports its own range and hovered residue as change
|
|
58
|
+
* events. Positions are residues of reference-row, or columns without one.
|
|
59
|
+
*/
|
|
60
|
+
export function defineMsaElement(tagName = 'jbrowse-msa') {
|
|
61
|
+
const existing = customElements.get(tagName);
|
|
62
|
+
if (existing) {
|
|
63
|
+
return existing;
|
|
64
|
+
}
|
|
65
|
+
class MsaElement extends HTMLElement {
|
|
66
|
+
static observedAttributes = [...ownAttributes, ...nightingaleAttributes];
|
|
67
|
+
#viewer;
|
|
68
|
+
#model;
|
|
69
|
+
#manager;
|
|
70
|
+
#cancelRange;
|
|
71
|
+
#rangePending = false;
|
|
72
|
+
#reported;
|
|
73
|
+
#data = {};
|
|
74
|
+
get msa() {
|
|
75
|
+
return this.#data.msa;
|
|
76
|
+
}
|
|
77
|
+
set msa(value) {
|
|
78
|
+
this.#setData({ msa: value });
|
|
79
|
+
}
|
|
80
|
+
get tree() {
|
|
81
|
+
return this.#data.tree;
|
|
82
|
+
}
|
|
83
|
+
set tree(value) {
|
|
84
|
+
this.#setData({ tree: value });
|
|
85
|
+
}
|
|
86
|
+
get gff() {
|
|
87
|
+
return this.#data.gff;
|
|
88
|
+
}
|
|
89
|
+
set gff(value) {
|
|
90
|
+
this.#setData({ gff: value });
|
|
91
|
+
}
|
|
92
|
+
get highlights() {
|
|
93
|
+
return this.#data.highlights;
|
|
94
|
+
}
|
|
95
|
+
set highlights(value) {
|
|
96
|
+
this.#setData({ highlights: value });
|
|
97
|
+
}
|
|
98
|
+
get columnTracks() {
|
|
99
|
+
return this.#data.columnTracks;
|
|
100
|
+
}
|
|
101
|
+
set columnTracks(value) {
|
|
102
|
+
this.#setData({ columnTracks: value });
|
|
103
|
+
}
|
|
104
|
+
get residueMappings() {
|
|
105
|
+
return this.#data.residueMappings;
|
|
106
|
+
}
|
|
107
|
+
set residueMappings(value) {
|
|
108
|
+
this.#setData({ residueMappings: value });
|
|
109
|
+
}
|
|
110
|
+
get #referenceRow() {
|
|
111
|
+
return this.getAttribute('reference-row') ?? undefined;
|
|
112
|
+
}
|
|
113
|
+
#setData(data) {
|
|
114
|
+
this.#data = { ...this.#data, ...data };
|
|
115
|
+
this.#viewer?.update(this.#props());
|
|
116
|
+
}
|
|
117
|
+
#props() {
|
|
118
|
+
const theme = this.getAttribute('theme');
|
|
119
|
+
return {
|
|
120
|
+
...this.#data,
|
|
121
|
+
msaFilehandle: location(this.getAttribute('msa-url')),
|
|
122
|
+
treeFilehandle: location(this.getAttribute('tree-url')),
|
|
123
|
+
gffFilehandle: location(this.getAttribute('gff-url')),
|
|
124
|
+
colorScheme: this.getAttribute('color-scheme') ?? undefined,
|
|
125
|
+
height: numberAttribute(this.getAttribute('height')),
|
|
126
|
+
treeAreaWidth: numberAttribute(this.getAttribute('tree-area-width')),
|
|
127
|
+
hideHeader: this.hasAttribute('hide-header'),
|
|
128
|
+
theme: theme === 'dark' ? 'dark' : 'light',
|
|
129
|
+
onCellHover: cell => {
|
|
130
|
+
this.#emit('cell-hover', cell);
|
|
131
|
+
this.#reportHover(cell);
|
|
132
|
+
},
|
|
133
|
+
onCellClick: cell => {
|
|
134
|
+
this.#emit('cell-click', cell);
|
|
135
|
+
},
|
|
136
|
+
onViewportChange: viewport => {
|
|
137
|
+
this.#emit('viewport-change', viewport);
|
|
138
|
+
this.#reportRange(viewport);
|
|
139
|
+
},
|
|
140
|
+
onModel: model => {
|
|
141
|
+
this.#model = model;
|
|
142
|
+
this.#followRange();
|
|
143
|
+
this.#followHighlight();
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
#emit(type, detail) {
|
|
148
|
+
this.dispatchEvent(new CustomEvent(type, { detail }));
|
|
149
|
+
}
|
|
150
|
+
#nightingaleChange(detail) {
|
|
151
|
+
if (this.#manager) {
|
|
152
|
+
this.dispatchEvent(new CustomEvent('change', {
|
|
153
|
+
detail,
|
|
154
|
+
bubbles: true,
|
|
155
|
+
cancelable: true,
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
#reportHover(cell) {
|
|
160
|
+
const model = this.#model;
|
|
161
|
+
const row = this.#referenceRow;
|
|
162
|
+
const position = cell && model && row
|
|
163
|
+
? residueAtColumn(model, row, cell.column)
|
|
164
|
+
: cell?.column;
|
|
165
|
+
this.#nightingaleChange({
|
|
166
|
+
type: 'highlight',
|
|
167
|
+
value: position === undefined ? null : `${position}:${position}`,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
#reportRange(viewport) {
|
|
171
|
+
const model = this.#model;
|
|
172
|
+
const row = this.#referenceRow;
|
|
173
|
+
if (!viewport || !model) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const range = row
|
|
177
|
+
? residueRange(model, row, viewport)
|
|
178
|
+
: { start: viewport.startColumn, end: viewport.endColumn };
|
|
179
|
+
const shownStart = numberAttribute(this.getAttribute('display-start'));
|
|
180
|
+
const shownEnd = numberAttribute(this.getAttribute('display-end'));
|
|
181
|
+
// a range the manager just wrote comes back within a column of itself,
|
|
182
|
+
// since the viewer shows whole columns
|
|
183
|
+
const echo = range &&
|
|
184
|
+
shownStart !== undefined &&
|
|
185
|
+
shownEnd !== undefined &&
|
|
186
|
+
Math.abs(range.start - shownStart) <= 1 &&
|
|
187
|
+
Math.abs(range.end - shownEnd) <= 1;
|
|
188
|
+
if (range && !echo) {
|
|
189
|
+
this.#reported = range;
|
|
190
|
+
this.#nightingaleChange({
|
|
191
|
+
'display-start': range.start,
|
|
192
|
+
'display-end': range.end,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
#followRange() {
|
|
197
|
+
const model = this.#model;
|
|
198
|
+
const start = numberAttribute(this.getAttribute('display-start'));
|
|
199
|
+
const end = numberAttribute(this.getAttribute('display-end'));
|
|
200
|
+
const reported = this.#reported;
|
|
201
|
+
// the manager writes the range this element reported back onto it, and
|
|
202
|
+
// zooming to it again would snap the reader's own zoom to whole residues
|
|
203
|
+
if (reported && reported.start === start && reported.end === end) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
this.#cancelRange?.();
|
|
207
|
+
if (model && start !== undefined && end !== undefined) {
|
|
208
|
+
const row = this.#referenceRow;
|
|
209
|
+
this.#cancelRange = when(() => model.viewInitialized && model.numColumns > 0, () => {
|
|
210
|
+
model.zoomToRegion({ row, start, end });
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
#followHighlight() {
|
|
215
|
+
const spans = parseHighlight(this.getAttribute('highlight'), this.#referenceRow);
|
|
216
|
+
if (spans.length) {
|
|
217
|
+
this.#model?.applyHighlight('nightingale', spans);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
this.#model?.clearHighlight('nightingale');
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
connectedCallback() {
|
|
224
|
+
if (!this.style.display) {
|
|
225
|
+
this.style.display = 'block';
|
|
226
|
+
}
|
|
227
|
+
this.#viewer = mount(this, this.#props());
|
|
228
|
+
const manager = this.closest('nightingale-manager');
|
|
229
|
+
if (manager) {
|
|
230
|
+
void customElements.whenDefined('nightingale-manager').then(() => {
|
|
231
|
+
if (this.isConnected) {
|
|
232
|
+
this.#manager = manager;
|
|
233
|
+
manager.register(this);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
disconnectedCallback() {
|
|
239
|
+
this.#manager?.unregister(this);
|
|
240
|
+
this.#manager = undefined;
|
|
241
|
+
this.#cancelRange?.();
|
|
242
|
+
this.#viewer?.destroy();
|
|
243
|
+
this.#viewer = undefined;
|
|
244
|
+
this.#model = undefined;
|
|
245
|
+
}
|
|
246
|
+
attributeChangedCallback(name) {
|
|
247
|
+
if (name === 'display-start' || name === 'display-end') {
|
|
248
|
+
// the manager writes the two attributes one after the other, and a
|
|
249
|
+
// zoom between them reports a range that overwrites the second
|
|
250
|
+
if (!this.#rangePending) {
|
|
251
|
+
this.#rangePending = true;
|
|
252
|
+
queueMicrotask(() => {
|
|
253
|
+
this.#rangePending = false;
|
|
254
|
+
this.#followRange();
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else if (name === 'highlight') {
|
|
259
|
+
this.#followHighlight();
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
this.#viewer?.update(this.#props());
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
customElements.define(tagName, MsaElement);
|
|
267
|
+
return MsaElement;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Annotation } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The value a feature gives an encoded field: an Annotation property, else one
|
|
4
|
+
* of the GFF attributes the parser kept.
|
|
5
|
+
*/
|
|
6
|
+
export declare function featureField(annotation: Annotation, field: string): string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The name a feature answers to in a transform: its GFF `Name` attribute, else
|
|
9
|
+
* the name the parser gave it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function featureName(annotation: Annotation): string | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The value a feature gives an encoded field: an Annotation property, else one
|
|
3
|
+
* of the GFF attributes the parser kept.
|
|
4
|
+
*/
|
|
5
|
+
export function featureField(annotation, field) {
|
|
6
|
+
const own = annotation[field];
|
|
7
|
+
const value = own ?? annotation.attributes?.[field];
|
|
8
|
+
return typeof value === 'string' ? value : undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The name a feature answers to in a transform: its GFF `Name` attribute, else
|
|
12
|
+
* the name the parser gave it.
|
|
13
|
+
*/
|
|
14
|
+
export function featureName(annotation) {
|
|
15
|
+
return featureField(annotation, 'Name') ?? featureField(annotation, 'name');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=featureFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureFields.js","sourceRoot":"","sources":["../src/featureFields.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,UAAsB,EAAE,KAAa;IAChE,MAAM,GAAG,GAAI,UAAiD,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,UAAsB;IAChD,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAC7E,CAAC"}
|
package/dist/flatToTree.js
CHANGED
|
@@ -5,8 +5,7 @@ export function flatToTree(items) {
|
|
|
5
5
|
item.id,
|
|
6
6
|
{
|
|
7
7
|
id: `${item.id}`,
|
|
8
|
-
//
|
|
9
|
-
// node id would render a tree of bare numbers
|
|
8
|
+
// NCBI's tree viewer shows the label
|
|
10
9
|
name: item.label || `${item.id}`,
|
|
11
10
|
...(length !== undefined && Number.isFinite(length)
|
|
12
11
|
? { length }
|
package/dist/flatToTree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatToTree.js","sourceRoot":"","sources":["../src/flatToTree.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,OAAO;YACL,IAAI,CAAC,EAAE;YACP;gBACE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChB,
|
|
1
|
+
{"version":3,"file":"flatToTree.js","sourceRoot":"","sources":["../src/flatToTree.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,OAAO;YACL,IAAI,CAAC,EAAE;YACP;gBACE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChB,qCAAqC;gBACrC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACjD,CAAC,CAAC,EAAE,MAAM,EAAE;oBACZ,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE,EAAgB;aAC3B;SACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,IAAI,IAA0B,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAA;QAClC,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/ggplotPalettes.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
declare const palettes: string[][];
|
|
2
2
|
export default palettes;
|
|
3
|
+
/**
|
|
4
|
+
* Fixed categorical palettes a scale names. `ggplot` is not one of them: it is
|
|
5
|
+
* the ramp above, which picks its colors from the number of keys.
|
|
6
|
+
*/
|
|
7
|
+
export declare const namedPalettes: Record<string, readonly string[]>;
|
|
8
|
+
/**
|
|
9
|
+
* The colors a palette name asks for. `ggplot`, an unknown name, and no name at
|
|
10
|
+
* all give undefined, which `createPaletteMap` answers with the hue ramp.
|
|
11
|
+
*/
|
|
12
|
+
export declare function paletteNamed(name?: string): readonly string[] | undefined;
|
package/dist/ggplotPalettes.js
CHANGED
|
@@ -18,4 +18,62 @@ const palettes = [
|
|
|
18
18
|
],
|
|
19
19
|
];
|
|
20
20
|
export default palettes;
|
|
21
|
+
/**
|
|
22
|
+
* Fixed categorical palettes a scale names. `ggplot` is not one of them: it is
|
|
23
|
+
* the ramp above, which picks its colors from the number of keys.
|
|
24
|
+
*/
|
|
25
|
+
export const namedPalettes = {
|
|
26
|
+
set1: [
|
|
27
|
+
'#e41a1c',
|
|
28
|
+
'#377eb8',
|
|
29
|
+
'#4daf4a',
|
|
30
|
+
'#984ea3',
|
|
31
|
+
'#ff7f00',
|
|
32
|
+
'#ffff33',
|
|
33
|
+
'#a65628',
|
|
34
|
+
'#f781bf',
|
|
35
|
+
'#999999',
|
|
36
|
+
],
|
|
37
|
+
dark2: [
|
|
38
|
+
'#1b9e77',
|
|
39
|
+
'#d95f02',
|
|
40
|
+
'#7570b3',
|
|
41
|
+
'#e7298a',
|
|
42
|
+
'#66a61e',
|
|
43
|
+
'#e6ab02',
|
|
44
|
+
'#a6761d',
|
|
45
|
+
'#666666',
|
|
46
|
+
],
|
|
47
|
+
// Okabe-Ito, which stays distinguishable under the common forms of color
|
|
48
|
+
// blindness
|
|
49
|
+
okabeito: [
|
|
50
|
+
'#e69f00',
|
|
51
|
+
'#56b4e9',
|
|
52
|
+
'#009e73',
|
|
53
|
+
'#f0e442',
|
|
54
|
+
'#0072b2',
|
|
55
|
+
'#d55e00',
|
|
56
|
+
'#cc79a7',
|
|
57
|
+
'#000000',
|
|
58
|
+
],
|
|
59
|
+
tableau: [
|
|
60
|
+
'#4e79a7',
|
|
61
|
+
'#f28e2b',
|
|
62
|
+
'#e15759',
|
|
63
|
+
'#76b7b2',
|
|
64
|
+
'#59a14f',
|
|
65
|
+
'#edc948',
|
|
66
|
+
'#b07aa1',
|
|
67
|
+
'#ff9da7',
|
|
68
|
+
'#9c755f',
|
|
69
|
+
'#bab0ac',
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The colors a palette name asks for. `ggplot`, an unknown name, and no name at
|
|
74
|
+
* all give undefined, which `createPaletteMap` answers with the hue ramp.
|
|
75
|
+
*/
|
|
76
|
+
export function paletteNamed(name) {
|
|
77
|
+
return name === undefined ? undefined : namedPalettes[name];
|
|
78
|
+
}
|
|
21
79
|
//# sourceMappingURL=ggplotPalettes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ggplotPalettes.js","sourceRoot":"","sources":["../src/ggplotPalettes.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,CAAC;IACX,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACjC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC5C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACvD,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAClE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7E;QACE,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"ggplotPalettes.js","sourceRoot":"","sources":["../src/ggplotPalettes.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,CAAC;IACX,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACjC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC5C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACvD,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAClE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7E;QACE,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED,eAAe,QAAQ,CAAA;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsC;IAC9D,IAAI,EAAE;QACJ,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,KAAK,EAAE;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,yEAAyE;IACzE,YAAY;IACZ,QAAQ,EAAE;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC"}
|
package/dist/hierarchy.d.ts
CHANGED
|
@@ -31,3 +31,30 @@ export declare function collapsedSubtreeMaxLength<T extends {
|
|
|
31
31
|
export declare function calcDepthToLeaf<T>(node: HierarchyNode<T>): number;
|
|
32
32
|
export declare function maxLength(d: HierarchyNode): number;
|
|
33
33
|
export declare function setBrLength(d: HierarchyNode, y0: number, k: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Every leaf by name, with a name two leaves share mapping to undefined: a tip
|
|
36
|
+
* set naming it cannot say which tip it means.
|
|
37
|
+
*/
|
|
38
|
+
export declare function leafIndex<T extends {
|
|
39
|
+
name: string;
|
|
40
|
+
}>(root: HierarchyNode<T>): Map<string, HierarchyNode<T> | undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* The most recent common ancestor of a set of tip names, or undefined when a
|
|
43
|
+
* name is not a tip of this tree or names two of them.
|
|
44
|
+
*
|
|
45
|
+
* Each name lifts through `parent` to the ancestor the names before it share,
|
|
46
|
+
* so the walk holds two nodes. Recording a root-to-tip path per name instead
|
|
47
|
+
* costs the depth in memory per name, and a caterpillar tree's depth is its tip
|
|
48
|
+
* count. `index` is `leafIndex(root)`, which a caller resolving several tip
|
|
49
|
+
* sets against one tree builds once.
|
|
50
|
+
*/
|
|
51
|
+
export declare function mrca<T extends {
|
|
52
|
+
name: string;
|
|
53
|
+
}>(root: HierarchyNode<T>, names: string[], index?: Map<string, HierarchyNode<T> | undefined>): HierarchyNode<T> | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The deepest node whose subtree covers a run of rows, given in the row-space
|
|
56
|
+
* coordinates clusterLayout writes to xMin/xMax. A subtree's leaves are one
|
|
57
|
+
* contiguous run, so at most one child per level covers the run and the descent
|
|
58
|
+
* visits the tree's depth rather than its nodes.
|
|
59
|
+
*/
|
|
60
|
+
export declare function nodeCoveringRows<T>(root: HierarchyNode<T>, top: number, bottom: number): HierarchyNode<T>;
|
package/dist/hierarchy.js
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { descendants, find, forEachDescendant, forEachLink, hierarchy as coreHierarchy, leaves, links, sort, sum, } from '@gmod/newick';
|
|
2
|
-
// The
|
|
3
|
-
//
|
|
4
|
-
// a phylogenetic tree can be a caterpillar, whose depth equals its leaf count,
|
|
5
|
-
// and the recursive form overflows the stack somewhere past 5000 tips.
|
|
2
|
+
// The @gmod/newick traversals are iterative: a caterpillar tree's depth equals
|
|
3
|
+
// its leaf count, and recursion overflows the stack past about 5000 tips.
|
|
6
4
|
export { descendants, find, forEachDescendant, forEachLink, leaves, links, sort, sum, };
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// two node types are mutually assignable and this needs no cast -- it exists
|
|
10
|
-
// only to declare the wider return type, which is what lets those later
|
|
11
|
-
// assignments typecheck.
|
|
5
|
+
// declares the wider return type so the layout code can assign the optional
|
|
6
|
+
// fields above onto coreHierarchy's nodes
|
|
12
7
|
export function hierarchy(data, childrenAccessor) {
|
|
13
8
|
return coreHierarchy(data, childrenAccessor);
|
|
14
9
|
}
|
|
@@ -153,4 +148,66 @@ export function setBrLength(d, y0, k) {
|
|
|
153
148
|
}
|
|
154
149
|
}
|
|
155
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Every leaf by name, with a name two leaves share mapping to undefined: a tip
|
|
153
|
+
* set naming it cannot say which tip it means.
|
|
154
|
+
*/
|
|
155
|
+
export function leafIndex(root) {
|
|
156
|
+
const index = new Map();
|
|
157
|
+
for (const leaf of leaves(root)) {
|
|
158
|
+
const { name } = leaf.data;
|
|
159
|
+
index.set(name, index.has(name) ? undefined : leaf);
|
|
160
|
+
}
|
|
161
|
+
return index;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The most recent common ancestor of a set of tip names, or undefined when a
|
|
165
|
+
* name is not a tip of this tree or names two of them.
|
|
166
|
+
*
|
|
167
|
+
* Each name lifts through `parent` to the ancestor the names before it share,
|
|
168
|
+
* so the walk holds two nodes. Recording a root-to-tip path per name instead
|
|
169
|
+
* costs the depth in memory per name, and a caterpillar tree's depth is its tip
|
|
170
|
+
* count. `index` is `leafIndex(root)`, which a caller resolving several tip
|
|
171
|
+
* sets against one tree builds once.
|
|
172
|
+
*/
|
|
173
|
+
export function mrca(root, names, index = leafIndex(root)) {
|
|
174
|
+
let node;
|
|
175
|
+
for (const name of names) {
|
|
176
|
+
let other = index.get(name);
|
|
177
|
+
if (!other) {
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
if (!node) {
|
|
181
|
+
node = other;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
while (node.depth > other.depth) {
|
|
185
|
+
node = node.parent;
|
|
186
|
+
}
|
|
187
|
+
while (other.depth > node.depth) {
|
|
188
|
+
other = other.parent;
|
|
189
|
+
}
|
|
190
|
+
while (node !== other) {
|
|
191
|
+
node = node.parent;
|
|
192
|
+
other = other.parent;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return node;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The deepest node whose subtree covers a run of rows, given in the row-space
|
|
199
|
+
* coordinates clusterLayout writes to xMin/xMax. A subtree's leaves are one
|
|
200
|
+
* contiguous run, so at most one child per level covers the run and the descent
|
|
201
|
+
* visits the tree's depth rather than its nodes.
|
|
202
|
+
*/
|
|
203
|
+
export function nodeCoveringRows(root, top, bottom) {
|
|
204
|
+
let node = root;
|
|
205
|
+
for (;;) {
|
|
206
|
+
const child = node.children?.find(c => c.xMin <= top && c.xMax >= bottom);
|
|
207
|
+
if (!child) {
|
|
208
|
+
return node;
|
|
209
|
+
}
|
|
210
|
+
node = child;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
156
213
|
//# sourceMappingURL=hierarchy.js.map
|
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;AA8BrB
|
|
1
|
+
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../src/hierarchy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,17 @@ export { CHAR_WIDTH_RATIO, installHeadlessRenderEnv, } from './headlessRenderEnv
|
|
|
4
4
|
export { maxNeighborJoiningRows } from './constants.ts';
|
|
5
5
|
export { default as MSAView } from './components/Loading.tsx';
|
|
6
6
|
export { default as MSAViewer } from './components/MSAViewer.tsx';
|
|
7
|
+
export type { MSAViewerProps } from './components/MSAViewer.tsx';
|
|
8
|
+
export { mount } from './mount.tsx';
|
|
9
|
+
export { defineMsaElement } from './element.ts';
|
|
10
|
+
export { useMsaSvgFigure } from './useMsaSvgFigure.ts';
|
|
11
|
+
export type { MsaSvgFigure } from './useMsaSvgFigure.ts';
|
|
12
|
+
export type { MountedViewer } from './mount.tsx';
|
|
7
13
|
export { type MsaViewModel, default as MSAModelF } from './model.ts';
|
|
8
14
|
export type { MSAFormat, MSAParserType } from 'msa-parsers';
|
|
9
15
|
export type { HierarchyNode } from './hierarchy.ts';
|
|
10
16
|
export type { InterProScanResults } from 'msa-parsers';
|
|
11
17
|
export type { ColumnCounts } from './columnCounts.ts';
|
|
12
|
-
export type {
|
|
18
|
+
export type { ColumnStats } from './columnStats.ts';
|
|
19
|
+
export type { ResolvedScale, ScaleSpec } from './scales.ts';
|
|
20
|
+
export type { Accession, Annotation, Arc, ArcSpec, ArcTrackModel, BasicTrack, BasicTrackModel, Cell, Clade, CladeMark, ColumnTrackSpec, DomainBand, Encoding, EncodingChannel, Highlight, Legend, LegendEntry, Node, MappedStructure, NodeWithIds, NodeWithIdsAndLength, Region, ResidueEncoding, ResidueMapping, ResidueMappingProblem, ResidueSegment, ResolvedClade, ResolvedEncoding, ResolvedHighlight, ResolvedRowPanel, RowPanelSpec, RowResidue, StructureResidue, TextTrackModel, TidyDomainAnnotation, TrackKind, UnshareableData, Viewport, } from './types.ts';
|
package/dist/index.js
CHANGED
|
@@ -11,11 +11,13 @@ export { renderToSvg } from './renderToSvg.js';
|
|
|
11
11
|
// renderToSvg outside a browser needs DOM bits jsdom omits; react-msaview-cli
|
|
12
12
|
// and the README figure generator both drive it that way
|
|
13
13
|
export { CHAR_WIDTH_RATIO, installHeadlessRenderEnv, } from './headlessRenderEnv.js';
|
|
14
|
-
// the row count
|
|
15
|
-
//
|
|
16
|
-
// button that throws
|
|
14
|
+
// the row count above which calculateNeighborJoiningTreeFromMSA throws, for
|
|
15
|
+
// hosts gating their own menu item
|
|
17
16
|
export { maxNeighborJoiningRows } from './constants.js';
|
|
18
17
|
export { default as MSAView } from './components/Loading.js';
|
|
19
18
|
export { default as MSAViewer } from './components/MSAViewer.js';
|
|
19
|
+
export { mount } from './mount.js';
|
|
20
|
+
export { defineMsaElement } from './element.js';
|
|
21
|
+
export { useMsaSvgFigure } from './useMsaSvgFigure.js';
|
|
20
22
|
export { default as MSAModelF } from './model.js';
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yDAAyD;AACzD,6EAA6E;AAC7E,+DAA+D;AAC/D,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,8EAA8E;AAC9E,yDAAyD;AACzD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,wBAAwB,CAAA;AAC/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yDAAyD;AACzD,6EAA6E;AAC7E,+DAA+D;AAC/D,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,mEAAmE;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,8EAA8E;AAC9E,yDAAyD;AACzD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,wBAAwB,CAAA;AAC/B,4EAA4E;AAC5E,mCAAmC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA4B,CAAA;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAa,CAAA;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/model/DataModel.js
CHANGED
|
@@ -54,11 +54,8 @@ export function DataModelF() {
|
|
|
54
54
|
},
|
|
55
55
|
}))
|
|
56
56
|
.postProcessSnapshot(snap =>
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
// the rule is the same for all of them. The parent model's
|
|
60
|
-
// `unshareableData` reports what this drops, since dropping it silently
|
|
61
|
-
// is how a copied link comes to open an empty viewer
|
|
57
|
+
// drops any field over maxInlineSnapshotBytes; the parent model's
|
|
58
|
+
// `unshareableData` reports what was dropped
|
|
62
59
|
Object.fromEntries(Object.entries(snap).map(([key, text]) => [
|
|
63
60
|
key,
|
|
64
61
|
text && text.length > maxInlineSnapshotBytes ? undefined : text,
|
|
@@ -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,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD;;;;;;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,
|
|
1
|
+
{"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/model/DataModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExD;;;;;;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,kEAAkE;IAClE,6CAA6C;IAC7C,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,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;KAChE,CAAC,CACH,CACF,CAAA;AACL,CAAC"}
|