react-msaview 5.0.1 → 5.0.4
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 +79 -79
- package/bundle/index.js.LICENSE.txt +0 -15
- package/bundle/index.js.map +1 -1
- package/dist/colorSchemes.js +1 -1
- package/dist/colorSchemes.js.map +1 -1
- package/dist/components/ConservationTrack.d.ts +2 -2
- package/dist/components/Loading.d.ts +1 -1
- package/dist/components/Loading.js +2 -2
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAView.d.ts +1 -1
- package/dist/components/MSAView.js +8 -8
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/ResizeHandles.d.ts +1 -1
- package/dist/components/SequenceTextArea.js +2 -2
- package/dist/components/SequenceTextArea.js.map +1 -1
- package/dist/components/TextTrack.d.ts +2 -2
- package/dist/components/TextTrack.js +1 -1
- package/dist/components/TextTrack.js.map +1 -1
- package/dist/components/Track.d.ts +1 -1
- package/dist/components/Track.js +1 -1
- package/dist/components/Track.js.map +1 -1
- package/dist/components/VerticalScrollbar.d.ts +1 -1
- package/dist/components/dialogs/AboutDialog.js +1 -1
- package/dist/components/dialogs/AboutDialog.js.map +1 -1
- package/dist/components/dialogs/AddTrackDialog.d.ts +1 -1
- package/dist/components/dialogs/DomainDialog.d.ts +1 -1
- package/dist/components/dialogs/DomainDialog.js +3 -3
- package/dist/components/dialogs/DomainDialog.js.map +1 -1
- package/dist/components/dialogs/ExportSVGDialog.d.ts +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
- package/dist/components/dialogs/FeatureDialog.d.ts +1 -1
- package/dist/components/dialogs/FeatureDialog.js +1 -1
- package/dist/components/dialogs/FeatureDialog.js.map +1 -1
- package/dist/components/dialogs/InterProScanDialog.d.ts +1 -1
- package/dist/components/dialogs/InterProScanDialog.js +1 -1
- package/dist/components/dialogs/InterProScanDialog.js.map +1 -1
- package/dist/components/dialogs/MetadataDialog.d.ts +1 -1
- package/dist/components/dialogs/MetadataDialog.js +1 -1
- package/dist/components/dialogs/MetadataDialog.js.map +1 -1
- package/dist/components/dialogs/SettingsDialog.d.ts +1 -1
- package/dist/components/dialogs/SettingsDialog.js +2 -2
- package/dist/components/dialogs/SettingsDialog.js.map +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
- package/dist/components/dialogs/UserProvidedDomainsDialog.d.ts +1 -1
- package/dist/components/dialogs/UserProvidedDomainsDialog.js +1 -1
- package/dist/components/dialogs/UserProvidedDomainsDialog.js.map +1 -1
- package/dist/components/header/GappynessSlider.d.ts +1 -1
- package/dist/components/header/Header.d.ts +1 -1
- package/dist/components/header/Header.js +10 -10
- package/dist/components/header/Header.js.map +1 -1
- package/dist/components/header/HeaderInfoArea.d.ts +1 -1
- package/dist/components/header/HeaderMenu.d.ts +1 -1
- package/dist/components/header/HeaderMenu.js +6 -6
- package/dist/components/header/HeaderMenu.js.map +1 -1
- package/dist/components/header/HeaderStatusArea.d.ts +1 -1
- package/dist/components/header/MultiAlignmentSelector.d.ts +1 -1
- package/dist/components/header/SettingsMenu.d.ts +1 -1
- package/dist/components/header/SettingsMenu.js +1 -1
- package/dist/components/header/SettingsMenu.js.map +1 -1
- package/dist/components/header/ZoomControls.d.ts +1 -1
- package/dist/components/header/ZoomMenu.d.ts +1 -1
- package/dist/components/header/ZoomStar.d.ts +1 -1
- package/dist/components/import/ImportForm.d.ts +1 -1
- package/dist/components/import/ImportForm.js +2 -2
- package/dist/components/import/ImportForm.js.map +1 -1
- package/dist/components/import/ImportFormExamples.d.ts +1 -1
- package/dist/components/import/ImportFormExamples.js +2 -2
- package/dist/components/import/ImportFormExamples.js.map +1 -1
- package/dist/components/import/util.d.ts +1 -1
- package/dist/components/minimap/Minimap.d.ts +1 -1
- package/dist/components/minimap/MinimapSVG.d.ts +1 -1
- package/dist/components/msa/MSACanvas.d.ts +1 -1
- package/dist/components/msa/MSACanvas.js +2 -2
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.d.ts +1 -1
- package/dist/components/msa/MSACanvasBlock.js +5 -4
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.d.ts +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/msa/MSAPanel.d.ts +1 -1
- package/dist/components/msa/MSAPanel.js +2 -2
- package/dist/components/msa/MSAPanel.js.map +1 -1
- package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +1 -1
- package/dist/components/msa/renderMSABlock.d.ts +1 -1
- package/dist/components/msa/renderMSAMouseover.d.ts +1 -1
- package/dist/components/tracks/renderTracksSvg.d.ts +2 -2
- package/dist/components/tree/TreeBranchMenu.d.ts +1 -1
- package/dist/components/tree/TreeCanvas.d.ts +1 -1
- package/dist/components/tree/TreeCanvas.js +2 -2
- package/dist/components/tree/TreeCanvas.js.map +1 -1
- package/dist/components/tree/TreeCanvasBlock.d.ts +1 -1
- package/dist/components/tree/TreeCanvasBlock.js +3 -3
- package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
- package/dist/components/tree/TreeNodeMenu.d.ts +1 -1
- package/dist/components/tree/TreeNodeMenu.js +1 -1
- package/dist/components/tree/TreeNodeMenu.js.map +1 -1
- package/dist/components/tree/TreePanel.d.ts +1 -1
- package/dist/components/tree/TreePanel.js +1 -1
- package/dist/components/tree/TreePanel.js.map +1 -1
- package/dist/components/tree/TreeRuler.d.ts +1 -1
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.d.ts +1 -1
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +1 -1
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.d.ts +1 -1
- package/dist/createPaletteMap.d.ts +7 -0
- package/dist/createPaletteMap.js +11 -0
- package/dist/createPaletteMap.js.map +1 -0
- package/dist/createPaletteMap.test.d.ts +1 -0
- package/dist/createPaletteMap.test.js +49 -0
- package/dist/createPaletteMap.test.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/launchInterProScan.d.ts +1 -1
- package/dist/launchInterProScan.js +1 -1
- package/dist/launchInterProScan.js.map +1 -1
- package/dist/model/msaModel.js +1 -1
- package/dist/model/msaModel.js.map +1 -1
- package/dist/model/treeModel.js +1 -1
- package/dist/model/treeModel.js.map +1 -1
- package/dist/model.d.ts +11 -3
- package/dist/model.js +54 -35
- package/dist/model.js.map +1 -1
- package/dist/neighborJoining.test.js +1 -1
- package/dist/neighborJoining.test.js.map +1 -1
- package/dist/parseAsn1.test.js +1 -1
- package/dist/parseAsn1.test.js.map +1 -1
- package/dist/renderToSvg.d.ts +1 -1
- package/dist/renderToSvg.js +10 -10
- package/dist/renderToSvg.js.map +1 -1
- package/dist/reparseTree.d.ts +1 -1
- package/dist/rowCoordinateCalculations.js +1 -1
- package/dist/rowCoordinateCalculations.js.map +1 -1
- package/dist/rowCoordinateCalculations.test.js +1 -1
- package/dist/rowCoordinateCalculations.test.js.map +1 -1
- package/dist/seqPosToGlobalCol.js +1 -1
- package/dist/seqPosToGlobalCol.js.map +1 -1
- package/dist/seqPosToGlobalCol.test.js +1 -1
- package/dist/seqPosToGlobalCol.test.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/vendor/copyToClipboard.d.ts +10 -0
- package/dist/vendor/copyToClipboard.js +113 -0
- package/dist/vendor/copyToClipboard.js.map +1 -0
- package/dist/vendor/fileSaver.d.ts +11 -0
- package/dist/vendor/fileSaver.js +80 -0
- package/dist/vendor/fileSaver.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webpack.d.ts +2 -2
- package/dist/webpack.js +2 -2
- package/dist/webpack.js.map +1 -1
- package/package.json +24 -22
- package/src/colorSchemes.ts +1 -1
- package/src/components/ConservationTrack.tsx +2 -2
- package/src/components/Loading.tsx +3 -3
- package/src/components/MSAView.tsx +12 -9
- package/src/components/ResizeHandles.tsx +1 -1
- package/src/components/SequenceTextArea.tsx +2 -2
- package/src/components/TextTrack.tsx +3 -3
- package/src/components/Track.tsx +2 -2
- package/src/components/VerticalScrollbar.tsx +1 -1
- package/src/components/dialogs/AboutDialog.tsx +1 -1
- package/src/components/dialogs/AddTrackDialog.tsx +1 -1
- package/src/components/dialogs/DomainDialog.tsx +4 -4
- package/src/components/dialogs/ExportSVGDialog.tsx +2 -2
- package/src/components/dialogs/FeatureDialog.tsx +2 -2
- package/src/components/dialogs/InterProScanDialog.tsx +2 -2
- package/src/components/dialogs/MetadataDialog.tsx +2 -2
- package/src/components/dialogs/SettingsDialog.tsx +3 -3
- package/src/components/dialogs/TrackInfoDialog.tsx +2 -1
- package/src/components/dialogs/UserProvidedDomainsDialog.tsx +3 -3
- package/src/components/header/GappynessSlider.tsx +1 -1
- package/src/components/header/Header.tsx +11 -11
- package/src/components/header/HeaderInfoArea.tsx +1 -1
- package/src/components/header/HeaderMenu.tsx +9 -7
- package/src/components/header/HeaderStatusArea.tsx +1 -1
- package/src/components/header/MultiAlignmentSelector.tsx +1 -1
- package/src/components/header/SettingsMenu.tsx +2 -2
- package/src/components/header/ZoomControls.tsx +1 -1
- package/src/components/header/ZoomMenu.tsx +1 -1
- package/src/components/header/ZoomStar.tsx +1 -1
- package/src/components/import/ImportForm.tsx +3 -3
- package/src/components/import/ImportFormExamples.tsx +3 -3
- package/src/components/import/util.ts +1 -1
- package/src/components/minimap/Minimap.tsx +1 -1
- package/src/components/minimap/MinimapSVG.tsx +1 -1
- package/src/components/msa/MSACanvas.tsx +3 -3
- package/src/components/msa/MSACanvasBlock.tsx +6 -5
- package/src/components/msa/MSAMouseoverCanvas.tsx +2 -2
- package/src/components/msa/MSAPanel.tsx +3 -3
- package/src/components/msa/renderBoxFeatureCanvasBlock.ts +2 -2
- package/src/components/msa/renderMSABlock.ts +2 -2
- package/src/components/msa/renderMSAMouseover.ts +1 -1
- package/src/components/tracks/renderTracksSvg.ts +2 -2
- package/src/components/tree/TreeBranchMenu.tsx +1 -1
- package/src/components/tree/TreeCanvas.tsx +3 -3
- package/src/components/tree/TreeCanvasBlock.tsx +4 -4
- package/src/components/tree/TreeNodeMenu.tsx +4 -2
- package/src/components/tree/TreePanel.tsx +2 -2
- package/src/components/tree/TreeRuler.tsx +1 -1
- package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +2 -2
- package/src/components/tree/renderTreeCanvas.ts +1 -1
- package/src/createPaletteMap.test.ts +57 -0
- package/src/createPaletteMap.ts +11 -0
- package/src/index.ts +12 -2
- package/src/launchInterProScan.ts +2 -2
- package/src/model/msaModel.ts +1 -1
- package/src/model/treeModel.ts +1 -1
- package/src/model.ts +58 -38
- package/src/neighborJoining.test.ts +1 -1
- package/src/parseAsn1.test.ts +1 -1
- package/src/renderToSvg.tsx +17 -19
- package/src/reparseTree.ts +1 -1
- package/src/rowCoordinateCalculations.test.ts +1 -1
- package/src/rowCoordinateCalculations.ts +1 -1
- package/src/seqPosToGlobalCol.test.ts +1 -1
- package/src/seqPosToGlobalCol.ts +1 -1
- package/src/util.ts +1 -1
- package/src/vendor/copyToClipboard.ts +125 -0
- package/src/vendor/fileSaver.ts +107 -0
- package/src/version.ts +1 -1
- package/src/webpack.ts +2 -2
- package/src/declare.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeMenu.js","sourceRoot":"","sources":["../../../src/components/tree/TreeNodeMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,SAAS;AACT,MAAM,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"TreeNodeMenu.js","sourceRoot":"","sources":["../../../src/components/tree/TreeNodeMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,SAAS;AACT,MAAM,kBAAkB,GAAG,IAAI,CAC7B,GAAG,EAAE,CAAC,MAAM,CAAC,iCAAkC,CAAC,CACjD,CAAA;AAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,EAClC,IAAI,EACJ,OAAO,EACP,KAAK,GAUN;IACC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACrB,OAAO,CACL,oBAAC,IAAI,IACH,eAAe,EAAC,gBAAgB,EAChC,cAAc,EAAE;YACd,GAAG,EAAE,IAAI,CAAC,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,CAAC;SACb,EACD,kBAAkB,EAAE,CAAC,EACrB,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EACnB,OAAO,EAAE,OAAO;QAEhB,oBAAC,QAAQ,IAAC,KAAK,QAAC,QAAQ,UACrB,IAAI,CACI;QAEX,oBAAC,QAAQ,IACP,KAAK,QACL,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,kBAAkB;oBAClB;wBACE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;wBAC5B,KAAK;wBACL,QAAQ,EAAE,IAAI;wBACd,OAAO;qBACR;iBACF,CAAC,CAAA;gBACF,OAAO,EAAE,CAAA;YACX,CAAC,mBAGQ;QACX,oBAAC,QAAQ,IACP,KAAK,QACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChC,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBAClC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACpC,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC,CAAA;oBAClD,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAA;YACX,CAAC,IAEA,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CACN;QACX,oBAAC,QAAQ,IACP,KAAK,QACL,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC/B,OAAO,EAAE,CAAA;YACX,CAAC,yCAGQ;QACV,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAClB,oBAAC,QAAQ,IACP,KAAK,QACL,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;gBAC/B,OAAO,EAAE,CAAA;YACX,CAAC,0BAGQ,CACZ,CAAC,CAAC,CAAC,IAAI,CACH,CACR,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,QAAQ,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
import TreeCanvas from
|
|
3
|
+
import TreeCanvas from "./TreeCanvas.js";
|
|
4
4
|
const TreePanel = observer(function ({ model }) {
|
|
5
5
|
const { treeAreaWidth } = model;
|
|
6
6
|
return (React.createElement("div", { style: { overflow: 'hidden', flexShrink: 0, width: treeAreaWidth } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreePanel.js","sourceRoot":"","sources":["../../../src/components/tree/TreePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"TreePanel.js","sourceRoot":"","sources":["../../../src/components/tree/TreePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,UAAU,MAAM,iBAAkB,CAAA;AAIzC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IACrE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAC/B,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;QACrE,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CACxB,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,SAAS,CAAA"}
|
|
@@ -4,7 +4,7 @@ import BaseCard from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard
|
|
|
4
4
|
import { Dialog } from '@jbrowse/core/ui';
|
|
5
5
|
import { DialogContent } from '@mui/material';
|
|
6
6
|
import { observer } from 'mobx-react';
|
|
7
|
-
import SequenceTextArea from
|
|
7
|
+
import SequenceTextArea from "../../SequenceTextArea.js";
|
|
8
8
|
const TreeNodeInfoDialog = observer(function ({ info, model, nodeName, onClose, }) {
|
|
9
9
|
const { treeMetadata, rows } = model;
|
|
10
10
|
const metadata = treeMetadata[nodeName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeNodeInfoDialog.js","sourceRoot":"","sources":["../../../../src/components/tree/dialogs/TreeNodeInfoDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,UAAU,MAAM,8DAA8D,CAAA;AACrF,OAAO,QAAQ,MAAM,4DAA4D,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,gBAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"TreeNodeInfoDialog.js","sourceRoot":"","sources":["../../../../src/components/tree/dialogs/TreeNodeInfoDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,UAAU,MAAM,8DAA8D,CAAA;AACrF,OAAO,QAAQ,MAAM,4DAA4D,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,gBAAgB,MAAM,2BAA4B,CAAA;AAIzD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,EAC5C,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,GAMR;IACC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;IAC7C,OAAO,CACL,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAA;QACX,CAAC,EACD,IAAI,QACJ,KAAK,EAAC,gBAAgB,EACtB,QAAQ,EAAC,IAAI;QAEb,oBAAC,aAAa;YACZ,oBAAC,QAAQ,IAAC,KAAK,EAAC,YAAY;gBAC1B,oBAAC,UAAU,IAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAI,CACxC;YACX,oBAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,IACvB,GAAG,CAAC,CAAC,CAAC,CACL,oBAAC,gBAAgB,IAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAI,CACjC,CAAC,CAAC,CAAC,CACF,sDAA6B,CAC9B,CACQ;YACV,QAAQ,CAAC,CAAC,CAAC,CACV,oBAAC,QAAQ,IAAC,KAAK,EAAC,gBAAgB;gBAC9B,oBAAC,UAAU,IAAC,UAAU,EAAE,QAAQ,GAAI,CAC3B,CACZ,CAAC,CAAC,CAAC,IAAI,CACM,CACT,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import palettes from "./ggplotPalettes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a map from keys to colors using ggplot-style palettes.
|
|
4
|
+
* The palette is selected based on the number of keys.
|
|
5
|
+
*/
|
|
6
|
+
export function createPaletteMap(keys) {
|
|
7
|
+
const k = Math.min(keys.length - 1, palettes.length - 1);
|
|
8
|
+
const palette = palettes[k];
|
|
9
|
+
return Object.fromEntries(keys.map((key, i) => [key, palette[i]]));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=createPaletteMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPaletteMap.js","sourceRoot":"","sources":["../src/createPaletteMap.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAE1C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAA;AACrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
2
|
+
import { createPaletteMap } from "./createPaletteMap.js";
|
|
3
|
+
import palettes from "./ggplotPalettes.js";
|
|
4
|
+
// Original implementation for comparison
|
|
5
|
+
function originalFillPalette(keys) {
|
|
6
|
+
let i = 0;
|
|
7
|
+
const map = {};
|
|
8
|
+
for (const key of keys) {
|
|
9
|
+
const k = Math.min(keys.length - 1, palettes.length - 1);
|
|
10
|
+
map[key] = palettes[k][i];
|
|
11
|
+
i++;
|
|
12
|
+
}
|
|
13
|
+
return map;
|
|
14
|
+
}
|
|
15
|
+
test('createPaletteMap matches original implementation with 1 key', () => {
|
|
16
|
+
const keys = ['IPR001234'];
|
|
17
|
+
expect(createPaletteMap(keys)).toEqual(originalFillPalette(keys));
|
|
18
|
+
});
|
|
19
|
+
test('createPaletteMap matches original implementation with 3 keys', () => {
|
|
20
|
+
const keys = ['IPR001234', 'IPR005678', 'IPR009012'];
|
|
21
|
+
expect(createPaletteMap(keys)).toEqual(originalFillPalette(keys));
|
|
22
|
+
});
|
|
23
|
+
test('createPaletteMap matches original implementation with 8 keys (max palette size)', () => {
|
|
24
|
+
const keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];
|
|
25
|
+
expect(createPaletteMap(keys)).toEqual(originalFillPalette(keys));
|
|
26
|
+
});
|
|
27
|
+
test('createPaletteMap matches original implementation with more keys than palette colors', () => {
|
|
28
|
+
const keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
|
|
29
|
+
expect(createPaletteMap(keys)).toEqual(originalFillPalette(keys));
|
|
30
|
+
});
|
|
31
|
+
test('createPaletteMap returns correct colors for 3 keys', () => {
|
|
32
|
+
const keys = ['X', 'Y', 'Z'];
|
|
33
|
+
const result = createPaletteMap(keys);
|
|
34
|
+
// With 3 keys, uses palette index 2 (0-indexed)
|
|
35
|
+
expect(result).toEqual({
|
|
36
|
+
X: '#F8766D',
|
|
37
|
+
Y: '#00BA38',
|
|
38
|
+
Z: '#619CFF',
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
test('createPaletteMap returns empty object for empty keys', () => {
|
|
42
|
+
expect(createPaletteMap([])).toEqual({});
|
|
43
|
+
});
|
|
44
|
+
test('createPaletteMap preserves key order', () => {
|
|
45
|
+
const keys = ['Z', 'A', 'M'];
|
|
46
|
+
const result = createPaletteMap(keys);
|
|
47
|
+
expect(Object.keys(result)).toEqual(['Z', 'A', 'M']);
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=createPaletteMap.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPaletteMap.test.js","sourceRoot":"","sources":["../src/createPaletteMap.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { default as MSAView } from './components/Loading';
|
|
2
|
-
export { type MsaViewModel, default as MSAModelF } from './model';
|
|
1
|
+
export { default as MSAView } from './components/Loading.tsx';
|
|
2
|
+
export { type MsaViewModel, default as MSAModelF } from './model.ts';
|
|
3
3
|
export type { MSAParserType } from 'msa-parsers';
|
|
4
|
+
export type { InterProScanResults } from './launchInterProScan.ts';
|
|
5
|
+
export type { Accession, BasicTrack, BasicTrackModel, Node, NodeWithIds, NodeWithIdsAndLength, TextTrackModel, } from './types.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as MSAView } from
|
|
2
|
-
export { default as MSAModelF } from
|
|
1
|
+
export { default as MSAView } from "./components/Loading.js";
|
|
2
|
+
export { default as MSAModelF } from "./model.js";
|
|
3
3
|
//# 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,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAA0B,CAAA;AAC7D,OAAO,EAAqB,OAAO,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getSession } from '@jbrowse/core/util';
|
|
2
|
-
import { jsonfetch, textfetch, timeout } from
|
|
2
|
+
import { jsonfetch, textfetch, timeout } from "./fetchUtils.js";
|
|
3
3
|
const base = 'https://www.ebi.ac.uk/Tools/services/rest';
|
|
4
4
|
async function runInterProScan({ seq, onProgress, onJobId, programs, model, }) {
|
|
5
5
|
const jobId = await textfetch(`${base}/iprscan5/run`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"launchInterProScan.js","sourceRoot":"","sources":["../src/launchInterProScan.ts"],"names":[],"mappings":"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"}
|
package/dist/model/msaModel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msaModel.js","sourceRoot":"","sources":["../../src/model/msaModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"msaModel.js","sourceRoot":"","sources":["../../src/model/msaModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAExE;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK;SACT,KAAK,CAAC;QACL;;;WAGG;QACH,OAAO,EAAE,cAAc;QAEvB;;;WAGG;QACH,eAAe,EAAE,sBAAsB;KACxC,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;;WAGG;QACH,kBAAkB,CAAC,IAAY;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC7B,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,GAAY;YACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QACpB,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC"}
|
package/dist/model/treeModel.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { types } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import { defaultDrawLabels, defaultDrawNodeBubbles, defaultDrawTree, defaultLabelsAlignRight, defaultShowBranchLen, defaultTreeAreaWidth, defaultTreeWidth, defaultTreeWidthMatchesArea, } from
|
|
2
|
+
import { defaultDrawLabels, defaultDrawNodeBubbles, defaultDrawTree, defaultLabelsAlignRight, defaultShowBranchLen, defaultTreeAreaWidth, defaultTreeWidth, defaultTreeWidthMatchesArea, } from "../constants.js";
|
|
3
3
|
/**
|
|
4
4
|
* #stateModel Tree
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeModel.js","sourceRoot":"","sources":["../../src/model/treeModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"treeModel.js","sourceRoot":"","sources":["../../src/model/treeModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAA;AAExB;;GAEG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK;SACT,KAAK,CAAC;QACL;;WAEG;QACH,UAAU,EAAE,iBAAiB;QAC7B;;;WAGG;QACH,gBAAgB,EAAE,uBAAuB;QAEzC;;;WAGG;QACH,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAEjE;;;WAGG;QACH,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC;QAEzD;;;WAGG;QACH,oBAAoB,EAAE,2BAA2B;QAEjD;;;;;WAKG;QACH,aAAa,EAAE,oBAAoB;QAEnC;;;WAGG;QACH,QAAQ,EAAE,eAAe;QAEzB;;;WAGG;QACH,eAAe,EAAE,sBAAsB;KACxC,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB;;;WAGG;QACH,uBAAuB,CAAC,GAAY;YAClC,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAA;QACjC,CAAC;QAED;;;WAGG;QACH,gBAAgB,CAAC,CAAS;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QACD;;;WAGG;QACH,YAAY,CAAC,CAAS;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QAED;;WAEG;QACH,mBAAmB,CAAC,GAAY;YAC9B,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAA;QAC7B,CAAC;QACD;;WAEG;QACH,WAAW,CAAC,GAAY;YACtB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAA;QACrB,CAAC;QAED;;WAEG;QACH,gBAAgB,CAAC,GAAY;YAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAA;QAC1B,CAAC;QAED;;WAEG;QACH,kBAAkB,CAAC,GAAY;YAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAA;QAC5B,CAAC;QACD;;WAEG;QACH,aAAa,CAAC,GAAY;YACxB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;QACvB,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC"}
|
package/dist/model.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A3mMSA, ClustalMSA, EmfMSA, FastaMSA, StockholmMSA } from 'msa-parsers';
|
|
2
|
-
import type { InterProScanResults } from './launchInterProScan';
|
|
3
|
-
import type { Accession, BasicTrack, NodeWithIds, NodeWithIdsAndLength } from './types';
|
|
2
|
+
import type { InterProScanResults } from './launchInterProScan.ts';
|
|
3
|
+
import type { Accession, BasicTrack, NodeWithIds, NodeWithIdsAndLength } from './types.ts';
|
|
4
4
|
import type { FileLocation as FileLocationType } from '@jbrowse/core/util/types';
|
|
5
5
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
6
6
|
import type { Theme } from '@mui/material';
|
|
@@ -720,6 +720,12 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
720
720
|
* #getter
|
|
721
721
|
*/
|
|
722
722
|
readonly colStatsSums: number[];
|
|
723
|
+
/**
|
|
724
|
+
* #getter
|
|
725
|
+
* Detects sequence type based on letters present in the alignment.
|
|
726
|
+
* Returns 'dna', 'rna', or 'amino'.
|
|
727
|
+
*/
|
|
728
|
+
readonly sequenceType: "dna" | "rna" | "amino";
|
|
723
729
|
/**
|
|
724
730
|
* #getter
|
|
725
731
|
* Pre-computed consensus letter and percent identity color per column.
|
|
@@ -1021,7 +1027,9 @@ declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelT
|
|
|
1021
1027
|
/**
|
|
1022
1028
|
* #getter
|
|
1023
1029
|
*/
|
|
1024
|
-
readonly fillPalette:
|
|
1030
|
+
readonly fillPalette: {
|
|
1031
|
+
[k: string]: string;
|
|
1032
|
+
};
|
|
1025
1033
|
/**
|
|
1026
1034
|
* #getter
|
|
1027
1035
|
*/
|
package/dist/model.js
CHANGED
|
@@ -5,27 +5,27 @@ import { addDisposer, cast, types } from '@jbrowse/mobx-state-tree';
|
|
|
5
5
|
import { colord } from 'colord';
|
|
6
6
|
import { ascending } from 'd3-array';
|
|
7
7
|
import { cluster, hierarchy } from 'd3-hierarchy';
|
|
8
|
-
import { saveAs } from 'file-saver';
|
|
9
8
|
import { autorun, transaction } from 'mobx';
|
|
10
9
|
import { A3mMSA, ClustalMSA, EmfMSA, FastaMSA, StockholmMSA, generateNodeIds, gffToInterProResults, parseEmfTree, parseGFF, parseNewick, stockholmSniff, } from 'msa-parsers';
|
|
11
|
-
import { blocksX, blocksY } from
|
|
12
|
-
import colorSchemes from
|
|
13
|
-
import ConservationTrack from
|
|
14
|
-
import TextTrack from
|
|
15
|
-
import { defaultAllowedGappyness, defaultBgColor, defaultColWidth, defaultColorSchemeName, defaultContrastLettering, defaultCurrentAlignment, defaultDrawLabels, defaultDrawMsaLetters, defaultDrawNodeBubbles, defaultDrawTree, defaultHeight, defaultHideGaps, defaultLabelsAlignRight, defaultRowHeight, defaultScrollX, defaultScrollY, defaultShowBranchLen, defaultShowDomains, defaultSubFeatureRows, defaultTreeAreaWidth, defaultTreeWidth, defaultTreeWidthMatchesArea, } from
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import { measureTextCanvas } from
|
|
19
|
-
import { DataModelF } from
|
|
20
|
-
import { DialogQueueSessionMixin } from
|
|
21
|
-
import { MSAModelF } from
|
|
22
|
-
import { TreeModelF } from
|
|
23
|
-
import { calculateNeighborJoiningTree } from
|
|
24
|
-
import { parseAsn1 } from
|
|
25
|
-
import { reparseTree } from
|
|
26
|
-
import { globalColToVisibleCol, visibleColToGlobalCol, visibleColToSeqPosForRow, } from
|
|
27
|
-
import { seqPosToGlobalCol } from
|
|
28
|
-
import { collapse, len, maxLength, setBrLength, skipBlanks } from
|
|
10
|
+
import { blocksX, blocksY } from "./calculateBlocks.js";
|
|
11
|
+
import colorSchemes from "./colorSchemes.js";
|
|
12
|
+
import ConservationTrack from "./components/ConservationTrack.js";
|
|
13
|
+
import TextTrack from "./components/TextTrack.js";
|
|
14
|
+
import { defaultAllowedGappyness, defaultBgColor, defaultColWidth, defaultColorSchemeName, defaultContrastLettering, defaultCurrentAlignment, defaultDrawLabels, defaultDrawMsaLetters, defaultDrawNodeBubbles, defaultDrawTree, defaultHeight, defaultHideGaps, defaultLabelsAlignRight, defaultRowHeight, defaultScrollX, defaultScrollY, defaultShowBranchLen, defaultShowDomains, defaultSubFeatureRows, defaultTreeAreaWidth, defaultTreeWidth, defaultTreeWidthMatchesArea, } from "./constants.js";
|
|
15
|
+
import { createPaletteMap } from "./createPaletteMap.js";
|
|
16
|
+
import { flatToTree } from "./flatToTree.js";
|
|
17
|
+
import { measureTextCanvas } from "./measureTextCanvas.js";
|
|
18
|
+
import { DataModelF } from "./model/DataModel.js";
|
|
19
|
+
import { DialogQueueSessionMixin } from "./model/DialogQueue.js";
|
|
20
|
+
import { MSAModelF } from "./model/msaModel.js";
|
|
21
|
+
import { TreeModelF } from "./model/treeModel.js";
|
|
22
|
+
import { calculateNeighborJoiningTree } from "./neighborJoining.js";
|
|
23
|
+
import { parseAsn1 } from "./parseAsn1.js";
|
|
24
|
+
import { reparseTree } from "./reparseTree.js";
|
|
25
|
+
import { globalColToVisibleCol, visibleColToGlobalCol, visibleColToSeqPosForRow, } from "./rowCoordinateCalculations.js";
|
|
26
|
+
import { seqPosToGlobalCol } from "./seqPosToGlobalCol.js";
|
|
27
|
+
import { collapse, len, maxLength, setBrLength, skipBlanks } from "./util.js";
|
|
28
|
+
import { saveAs } from "./vendor/fileSaver.js";
|
|
29
29
|
const showZoomStarKey = 'msa-showZoomStar';
|
|
30
30
|
/**
|
|
31
31
|
* #stateModel MsaView
|
|
@@ -349,7 +349,7 @@ function stateModelFactory() {
|
|
|
349
349
|
return;
|
|
350
350
|
}
|
|
351
351
|
// Get all descendant leaf names
|
|
352
|
-
const descendantNames = node.leaves().map(
|
|
352
|
+
const descendantNames = node.leaves().map(leaf => leaf.data.name);
|
|
353
353
|
self.hoveredTreeNode = { nodeId, descendantNames };
|
|
354
354
|
},
|
|
355
355
|
/**
|
|
@@ -855,6 +855,33 @@ function stateModelFactory() {
|
|
|
855
855
|
get colStatsSums() {
|
|
856
856
|
return this.colStats.map(val => sum(Object.values(val)));
|
|
857
857
|
},
|
|
858
|
+
/**
|
|
859
|
+
* #getter
|
|
860
|
+
* Detects sequence type based on letters present in the alignment.
|
|
861
|
+
* Returns 'dna', 'rna', or 'amino'.
|
|
862
|
+
*/
|
|
863
|
+
get sequenceType() {
|
|
864
|
+
const letters = new Set();
|
|
865
|
+
for (const stats of this.colStats) {
|
|
866
|
+
for (const letter of Object.keys(stats)) {
|
|
867
|
+
const upper = letter.toUpperCase();
|
|
868
|
+
if (upper !== '-' && upper !== '.') {
|
|
869
|
+
letters.add(upper);
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
const dna = new Set(['A', 'C', 'G', 'T', 'N']);
|
|
874
|
+
const rna = new Set(['A', 'C', 'G', 'U', 'N']);
|
|
875
|
+
const isDna = [...letters].every(l => dna.has(l));
|
|
876
|
+
const isRna = [...letters].every(l => rna.has(l));
|
|
877
|
+
if (isDna && !letters.has('U')) {
|
|
878
|
+
return 'dna';
|
|
879
|
+
}
|
|
880
|
+
if (isRna && !letters.has('T')) {
|
|
881
|
+
return 'rna';
|
|
882
|
+
}
|
|
883
|
+
return 'amino';
|
|
884
|
+
},
|
|
858
885
|
/**
|
|
859
886
|
* #getter
|
|
860
887
|
* Pre-computed consensus letter and percent identity color per column.
|
|
@@ -1002,8 +1029,8 @@ function stateModelFactory() {
|
|
|
1002
1029
|
* Returns values 0-1 where 1 = fully conserved, 0 = no conservation.
|
|
1003
1030
|
*/
|
|
1004
1031
|
get conservation() {
|
|
1005
|
-
const { colStats, colStatsSums } = this;
|
|
1006
|
-
const alphabetSize = 20;
|
|
1032
|
+
const { colStats, colStatsSums, sequenceType } = this;
|
|
1033
|
+
const alphabetSize = sequenceType === 'amino' ? 20 : 4;
|
|
1007
1034
|
const maxEntropy = Math.log2(alphabetSize);
|
|
1008
1035
|
return colStats.map((stats, i) => {
|
|
1009
1036
|
const total = colStatsSums[i];
|
|
@@ -1406,9 +1433,9 @@ function stateModelFactory() {
|
|
|
1406
1433
|
* @returns The global column index in the full MSA
|
|
1407
1434
|
*/
|
|
1408
1435
|
seqPosToGlobalCol(rowName, seqPos) {
|
|
1409
|
-
const {
|
|
1410
|
-
const index =
|
|
1411
|
-
return index !==
|
|
1436
|
+
const { rows } = self;
|
|
1437
|
+
const index = this.rowNamesSet.get(rowName);
|
|
1438
|
+
return index !== undefined && rows[index]
|
|
1412
1439
|
? seqPosToGlobalCol({
|
|
1413
1440
|
row: rows[index][1],
|
|
1414
1441
|
seqPos,
|
|
@@ -1516,15 +1543,7 @@ function stateModelFactory() {
|
|
|
1516
1543
|
* #getter
|
|
1517
1544
|
*/
|
|
1518
1545
|
get fillPalette() {
|
|
1519
|
-
|
|
1520
|
-
let i = 0;
|
|
1521
|
-
const map = {};
|
|
1522
|
-
for (const key of arr) {
|
|
1523
|
-
const k = Math.min(arr.length - 1, palettes.length - 1);
|
|
1524
|
-
map[key] = palettes[k][i];
|
|
1525
|
-
i++;
|
|
1526
|
-
}
|
|
1527
|
-
return map;
|
|
1546
|
+
return createPaletteMap([...self.tidyInterProAnnotationTypes.keys()]);
|
|
1528
1547
|
},
|
|
1529
1548
|
/**
|
|
1530
1549
|
* #getter
|
|
@@ -1572,7 +1591,7 @@ function stateModelFactory() {
|
|
|
1572
1591
|
* #action
|
|
1573
1592
|
*/
|
|
1574
1593
|
async exportSVG(opts) {
|
|
1575
|
-
const { renderToSvg } = await import(
|
|
1594
|
+
const { renderToSvg } = await import("./renderToSvg.js");
|
|
1576
1595
|
const html = await renderToSvg(self, opts);
|
|
1577
1596
|
const blob = new Blob([html], { type: 'image/svg+xml' });
|
|
1578
1597
|
saveAs(blob, 'image.svg');
|