@datagrok-libraries/bio 5.15.0 → 5.16.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/index.d.ts +7 -4
- package/index.d.ts.map +1 -1
- package/index.js +8 -5
- package/index.ts +19 -7
- package/package.json +1 -1
- package/src/trees/index.d.ts +25 -0
- package/src/trees/index.d.ts.map +1 -0
- package/src/trees/index.js +11 -0
- package/src/{phylocanvas.d.ts → trees/phylocanvas.d.ts} +3 -2
- package/src/{phylocanvas.d.ts.map → trees/phylocanvas.d.ts.map} +1 -1
- package/src/trees/phylocanvas.js +83 -0
- package/src/{utils → trees}/tree-helper.d.ts +3 -1
- package/src/{utils → trees}/tree-helper.d.ts.map +1 -1
- package/src/trees/tree-helper.js +20 -0
- package/src/types/index.d.ts +0 -10
- package/src/types/index.d.ts.map +1 -1
- package/src/types/index.js +2 -5
- package/src/phylocanvas.js +0 -196
- package/src/utils/tree-helper.js +0 -20
package/index.d.ts
CHANGED
|
@@ -2,13 +2,12 @@ import { Aminoacids, AminoacidsPalettes } from './src/aminoacids';
|
|
|
2
2
|
import { MonomerWorks } from './src/monomer-works/monomer-works';
|
|
3
3
|
import { Nucleotides, NucleotidesPalettes } from './src/nucleotides';
|
|
4
4
|
import { SeqPalette, SeqPaletteBase } from './src/seq-palettes';
|
|
5
|
-
import { IMonomerLib, Monomer, NodeType, isLeaf, NodeCuttedType } from './src/types';
|
|
6
5
|
import { UnknownSeqPalette, UnknownSeqPalettes } from './src/unknown';
|
|
7
6
|
import { DrawStyle, printLeftOrCentered } from './src/utils/cell-renderer';
|
|
8
7
|
import { FastaFileHandler } from './src/utils/fasta-handler';
|
|
9
8
|
import { NotationConverter } from './src/utils/notation-converter';
|
|
10
9
|
import { splitAlignedSequences } from './src/utils/splitter';
|
|
11
|
-
import { getTreeHelper, ITreeHelper } from './src/
|
|
10
|
+
import { getTreeHelper, ITreeHelper } from './src/trees/tree-helper';
|
|
12
11
|
import { UnitsHandler } from './src/utils/units-handler';
|
|
13
12
|
import { VdRegion, VdRegionType } from './src/vd-regions';
|
|
14
13
|
import { CanvasCallback, getPhylocanvasGlService, IPhylocanvasGlViewer, NodeStyleType, PhylocanvasGlServiceBase, PhylocanvasGlTask, StylesType, TreeTypesNames } from './src/viewers/phylocanvas-gl-viewer';
|
|
@@ -17,7 +16,11 @@ import { PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer } from
|
|
|
17
16
|
import { MonomerLib } from './src/monomer-works/monomer-lib';
|
|
18
17
|
import { readLibrary } from './src/monomer-works/monomer-utils';
|
|
19
18
|
import { getNglGlService, NglGlServiceBase, NglGlTask } from './src/viewers/ngl-gl-viewer';
|
|
20
|
-
import { parseNewick, PhylocanvasTreeNode
|
|
19
|
+
import { parseNewick, PhylocanvasTreeNode } from './src/trees/phylocanvas';
|
|
20
|
+
import { isLeaf } from './src/trees';
|
|
21
21
|
export { ALIGNMENT, ALPHABET, NOTATION, TAGS, getSplitter, splitterAsFasta, getSplitterForColumn, SplitterFunc, monomerToShort, splitterAsHelm, getStats, pickUpPalette, getPaletteByType, getAlphabet, getAlphabetSimilarity } from './src/utils/macromolecule';
|
|
22
|
-
export {
|
|
22
|
+
export { IMonomerLib, Monomer } from './src/types';
|
|
23
|
+
export { NodeType, NodeCuttedType } from './src/trees';
|
|
24
|
+
export { Shapes, TreeTypes } from './src/trees/phylocanvas';
|
|
25
|
+
export { NotationConverter, splitAlignedSequences, SeqPalette, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, IVdRegionsViewer, isLeaf, PhylocanvasTreeNode, NodeStyleType, StylesType, IPhylocanvasGlViewer, TreeTypesNames, PhylocanvasGlServiceBase, CanvasCallback, PhylocanvasGlTask, getPhylocanvasGlService, parseNewick, ITreeHelper, getTreeHelper, getNglGlService, NglGlServiceBase, NglGlTask, MonomerWorks, MonomerLib, readLibrary };
|
|
23
26
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,MAAM,EACN,SAAS,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAEhB,MAAM,EACN,mBAAmB,EAEnB,aAAa,EAAE,UAAU,EAEzB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EAEvB,WAAW,EAGX,WAAW,EACX,aAAa,EAEb,eAAe,EACf,gBAAgB,EAChB,SAAS,EAGT,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,CAAC"}
|
package/index.js
CHANGED
|
@@ -2,13 +2,12 @@ import { Aminoacids, AminoacidsPalettes } from './src/aminoacids';
|
|
|
2
2
|
import { MonomerWorks } from './src/monomer-works/monomer-works';
|
|
3
3
|
import { Nucleotides, NucleotidesPalettes } from './src/nucleotides';
|
|
4
4
|
import { SeqPaletteBase } from './src/seq-palettes';
|
|
5
|
-
import { isLeaf } from './src/types';
|
|
6
5
|
import { UnknownSeqPalette, UnknownSeqPalettes } from './src/unknown';
|
|
7
6
|
import { DrawStyle, printLeftOrCentered } from './src/utils/cell-renderer';
|
|
8
7
|
import { FastaFileHandler } from './src/utils/fasta-handler';
|
|
9
8
|
import { NotationConverter } from './src/utils/notation-converter';
|
|
10
9
|
import { splitAlignedSequences } from './src/utils/splitter';
|
|
11
|
-
import { getTreeHelper } from './src/
|
|
10
|
+
import { getTreeHelper } from './src/trees/tree-helper';
|
|
12
11
|
import { UnitsHandler } from './src/utils/units-handler';
|
|
13
12
|
import { VdRegion, VdRegionType } from './src/vd-regions';
|
|
14
13
|
import { getPhylocanvasGlService, PhylocanvasGlServiceBase, TreeTypesNames } from './src/viewers/phylocanvas-gl-viewer';
|
|
@@ -16,7 +15,11 @@ import { PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer } from
|
|
|
16
15
|
import { MonomerLib } from './src/monomer-works/monomer-lib';
|
|
17
16
|
import { readLibrary } from './src/monomer-works/monomer-utils';
|
|
18
17
|
import { getNglGlService, NglGlServiceBase } from './src/viewers/ngl-gl-viewer';
|
|
19
|
-
import { parseNewick
|
|
18
|
+
import { parseNewick } from './src/trees/phylocanvas';
|
|
19
|
+
import { isLeaf } from './src/trees';
|
|
20
20
|
export { getSplitter, splitterAsFasta, getSplitterForColumn, monomerToShort, splitterAsHelm, getStats, pickUpPalette, getPaletteByType, getAlphabet, getAlphabetSimilarity } from './src/utils/macromolecule';
|
|
21
|
-
export {
|
|
22
|
-
|
|
21
|
+
export { Shapes, TreeTypes } from './src/trees/phylocanvas';
|
|
22
|
+
export { NotationConverter, splitAlignedSequences, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, isLeaf, TreeTypesNames, PhylocanvasGlServiceBase, getPhylocanvasGlService, parseNewick, getTreeHelper, getNglGlService, NglGlServiceBase,
|
|
23
|
+
//Monomer lib and features
|
|
24
|
+
MonomerWorks, MonomerLib, readLibrary };
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUd2Qix3QkFBd0IsRUFHeEIsY0FBYyxFQUNmLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0csT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUVqQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxXQUFXLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUVuQyxPQUFPLEVBS0wsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFFcEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFZbkMsT0FBTyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFlBQVksRUFDWixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osUUFBUSxFQUdSLE1BQU0sRUFNTixjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLHVCQUF1QixFQUV2QixXQUFXLEVBSVgsYUFBYSxFQUViLGVBQWUsRUFDZixnQkFBZ0I7QUFHaEIsMEJBQTBCO0FBQzFCLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlc30gZnJvbSAnLi9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQge01vbm9tZXJXb3Jrc30gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLXdvcmtzJztcbmltcG9ydCB7TnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXN9IGZyb20gJy4vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7U2VxUGFsZXR0ZSwgU2VxUGFsZXR0ZUJhc2V9IGZyb20gJy4vc3JjL3NlcS1wYWxldHRlcyc7XG5pbXBvcnQge1Vua25vd25TZXFQYWxldHRlLCBVbmtub3duU2VxUGFsZXR0ZXN9IGZyb20gJy4vc3JjL3Vua25vd24nO1xuaW1wb3J0IHtEcmF3U3R5bGUsIHByaW50TGVmdE9yQ2VudGVyZWR9IGZyb20gJy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHtGYXN0YUZpbGVIYW5kbGVyfSBmcm9tICcuL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7Tm90YXRpb25Db252ZXJ0ZXJ9IGZyb20gJy4vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlcic7XG5pbXBvcnQge3NwbGl0QWxpZ25lZFNlcXVlbmNlc30gZnJvbSAnLi9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0IHtnZXRUcmVlSGVscGVyLCBJVHJlZUhlbHBlcn0gZnJvbSAnLi9zcmMvdHJlZXMvdHJlZS1oZWxwZXInO1xuaW1wb3J0IHtVbml0c0hhbmRsZXJ9IGZyb20gJy4vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHtWZFJlZ2lvbiwgVmRSZWdpb25UeXBlfSBmcm9tICcuL3NyYy92ZC1yZWdpb25zJztcbmltcG9ydCB7XG4gIENhbnZhc0NhbGxiYWNrLFxuICBnZXRQaHlsb2NhbnZhc0dsU2VydmljZSxcbiAgSVBoeWxvY2FudmFzR2xWaWV3ZXIsXG4gIE5vZGVTdHlsZVR5cGUsXG4gIFBoeWxvY2FudmFzR2xTZXJ2aWNlQmFzZSxcbiAgUGh5bG9jYW52YXNHbFRhc2ssXG4gIFN0eWxlc1R5cGUsXG4gIFRyZWVUeXBlc05hbWVzXG59IGZyb20gJy4vc3JjL3ZpZXdlcnMvcGh5bG9jYW52YXMtZ2wtdmlld2VyJztcbmltcG9ydCB7SVZkUmVnaW9uc1ZpZXdlcn0gZnJvbSAnLi9zcmMvdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQge1Bvc2l0aW9uSGVpZ2h0LCBQb3NpdGlvbkluZm8sIFBvc2l0aW9uTW9ub21lckluZm8sIFdlYkxvZ29WaWV3ZXJ9IGZyb20gJy4vc3JjL3ZpZXdlcnMvd2ViLWxvZ28tdmlld2VyJztcbmltcG9ydCB7TW9ub21lckxpYn0gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLWxpYic7XG5pbXBvcnQge3JlYWRMaWJyYXJ5fSBmcm9tICcuL3NyYy9tb25vbWVyLXdvcmtzL21vbm9tZXItdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0TmdsR2xTZXJ2aWNlLFxuICBOZ2xHbFNlcnZpY2VCYXNlLFxuICBOZ2xHbFRhc2tcbn0gZnJvbSAnLi9zcmMvdmlld2Vycy9uZ2wtZ2wtdmlld2VyJztcbmltcG9ydCB7cGFyc2VOZXdpY2ssIFBoeWxvY2FudmFzVHJlZU5vZGV9IGZyb20gJy4vc3JjL3RyZWVzL3BoeWxvY2FudmFzJztcbmltcG9ydCB7aXNMZWFmfSBmcm9tICcuL3NyYy90cmVlcyc7XG5cbmV4cG9ydCB7XG4gIEFMSUdOTUVOVCxcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTLFxuICBnZXRTcGxpdHRlcixcbiAgc3BsaXR0ZXJBc0Zhc3RhLFxuICBnZXRTcGxpdHRlckZvckNvbHVtbixcbiAgU3BsaXR0ZXJGdW5jLFxuICBtb25vbWVyVG9TaG9ydCxcbiAgc3BsaXR0ZXJBc0hlbG0sXG4gIGdldFN0YXRzLFxuICBwaWNrVXBQYWxldHRlLFxuICBnZXRQYWxldHRlQnlUeXBlLFxuICBnZXRBbHBoYWJldCxcbiAgZ2V0QWxwaGFiZXRTaW1pbGFyaXR5XG59IGZyb20gJy4vc3JjL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xuXG5leHBvcnQge1xuICBJTW9ub21lckxpYixcbiAgTW9ub21lclxufSBmcm9tICcuL3NyYy90eXBlcyc7XG5cbmV4cG9ydCB7XG4gIE5vZGVUeXBlLFxuICBOb2RlQ3V0dGVkVHlwZVxufSBmcm9tICcuL3NyYy90cmVlcyc7XG5cbmV4cG9ydCB7XG4gIFNoYXBlcyxcbiAgVHJlZVR5cGVzXG59IGZyb20gJy4vc3JjL3RyZWVzL3BoeWxvY2FudmFzJztcblxuZXhwb3J0IHtcbiAgTm90YXRpb25Db252ZXJ0ZXIsXG4gIHNwbGl0QWxpZ25lZFNlcXVlbmNlcyxcbiAgU2VxUGFsZXR0ZSxcbiAgU2VxUGFsZXR0ZUJhc2UsXG4gIEFtaW5vYWNpZHMsXG4gIEFtaW5vYWNpZHNQYWxldHRlcyxcbiAgTnVjbGVvdGlkZXMsXG4gIE51Y2xlb3RpZGVzUGFsZXR0ZXMsXG4gIFVua25vd25TZXFQYWxldHRlcyxcbiAgVW5rbm93blNlcVBhbGV0dGUsXG4gIFBvc2l0aW9uSGVpZ2h0LFxuICBQb3NpdGlvbkluZm8sXG4gIFBvc2l0aW9uTW9ub21lckluZm8sXG4gIFdlYkxvZ29WaWV3ZXIsXG4gIFVuaXRzSGFuZGxlcixcbiAgRHJhd1N0eWxlLFxuICBwcmludExlZnRPckNlbnRlcmVkLFxuICBGYXN0YUZpbGVIYW5kbGVyLFxuICBWZFJlZ2lvblR5cGUsXG4gIFZkUmVnaW9uLFxuICBJVmRSZWdpb25zVmlld2VyLFxuXG4gIGlzTGVhZixcbiAgUGh5bG9jYW52YXNUcmVlTm9kZSxcbiAgLy8gdHJlZVRyYXZlcnNhbCxcbiAgTm9kZVN0eWxlVHlwZSwgU3R5bGVzVHlwZSxcblxuICBJUGh5bG9jYW52YXNHbFZpZXdlcixcbiAgVHJlZVR5cGVzTmFtZXMsXG4gIFBoeWxvY2FudmFzR2xTZXJ2aWNlQmFzZSxcbiAgQ2FudmFzQ2FsbGJhY2ssXG4gIFBoeWxvY2FudmFzR2xUYXNrLFxuICBnZXRQaHlsb2NhbnZhc0dsU2VydmljZSxcblxuICBwYXJzZU5ld2ljayxcbiAgLy8gVXRpbHMsXG4gIC8vIE5ld2ljayxcbiAgSVRyZWVIZWxwZXIsXG4gIGdldFRyZWVIZWxwZXIsXG5cbiAgZ2V0TmdsR2xTZXJ2aWNlLFxuICBOZ2xHbFNlcnZpY2VCYXNlLFxuICBOZ2xHbFRhc2ssXG5cbiAgLy9Nb25vbWVyIGxpYiBhbmQgZmVhdHVyZXNcbiAgTW9ub21lcldvcmtzLFxuICBNb25vbWVyTGliLFxuICByZWFkTGlicmFyeVxufTtcbiJdfQ==
|
package/index.ts
CHANGED
|
@@ -2,13 +2,12 @@ import {Aminoacids, AminoacidsPalettes} from './src/aminoacids';
|
|
|
2
2
|
import {MonomerWorks} from './src/monomer-works/monomer-works';
|
|
3
3
|
import {Nucleotides, NucleotidesPalettes} from './src/nucleotides';
|
|
4
4
|
import {SeqPalette, SeqPaletteBase} from './src/seq-palettes';
|
|
5
|
-
import {IMonomerLib, Monomer, NodeType, isLeaf, NodeCuttedType} from './src/types';
|
|
6
5
|
import {UnknownSeqPalette, UnknownSeqPalettes} from './src/unknown';
|
|
7
6
|
import {DrawStyle, printLeftOrCentered} from './src/utils/cell-renderer';
|
|
8
7
|
import {FastaFileHandler} from './src/utils/fasta-handler';
|
|
9
8
|
import {NotationConverter} from './src/utils/notation-converter';
|
|
10
9
|
import {splitAlignedSequences} from './src/utils/splitter';
|
|
11
|
-
import {getTreeHelper, ITreeHelper} from './src/
|
|
10
|
+
import {getTreeHelper, ITreeHelper} from './src/trees/tree-helper';
|
|
12
11
|
import {UnitsHandler} from './src/utils/units-handler';
|
|
13
12
|
import {VdRegion, VdRegionType} from './src/vd-regions';
|
|
14
13
|
import {
|
|
@@ -30,7 +29,8 @@ import {
|
|
|
30
29
|
NglGlServiceBase,
|
|
31
30
|
NglGlTask
|
|
32
31
|
} from './src/viewers/ngl-gl-viewer';
|
|
33
|
-
import {parseNewick, PhylocanvasTreeNode
|
|
32
|
+
import {parseNewick, PhylocanvasTreeNode} from './src/trees/phylocanvas';
|
|
33
|
+
import {isLeaf} from './src/trees';
|
|
34
34
|
|
|
35
35
|
export {
|
|
36
36
|
ALIGNMENT,
|
|
@@ -50,6 +50,21 @@ export {
|
|
|
50
50
|
getAlphabetSimilarity
|
|
51
51
|
} from './src/utils/macromolecule';
|
|
52
52
|
|
|
53
|
+
export {
|
|
54
|
+
IMonomerLib,
|
|
55
|
+
Monomer
|
|
56
|
+
} from './src/types';
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
NodeType,
|
|
60
|
+
NodeCuttedType
|
|
61
|
+
} from './src/trees';
|
|
62
|
+
|
|
63
|
+
export {
|
|
64
|
+
Shapes,
|
|
65
|
+
TreeTypes
|
|
66
|
+
} from './src/trees/phylocanvas';
|
|
67
|
+
|
|
53
68
|
export {
|
|
54
69
|
NotationConverter,
|
|
55
70
|
splitAlignedSequences,
|
|
@@ -73,7 +88,7 @@ export {
|
|
|
73
88
|
VdRegion,
|
|
74
89
|
IVdRegionsViewer,
|
|
75
90
|
|
|
76
|
-
|
|
91
|
+
isLeaf,
|
|
77
92
|
PhylocanvasTreeNode,
|
|
78
93
|
// treeTraversal,
|
|
79
94
|
NodeStyleType, StylesType,
|
|
@@ -85,7 +100,6 @@ export {
|
|
|
85
100
|
PhylocanvasGlTask,
|
|
86
101
|
getPhylocanvasGlService,
|
|
87
102
|
|
|
88
|
-
Shapes, TreeTypes,
|
|
89
103
|
parseNewick,
|
|
90
104
|
// Utils,
|
|
91
105
|
// Newick,
|
|
@@ -97,8 +111,6 @@ export {
|
|
|
97
111
|
NglGlTask,
|
|
98
112
|
|
|
99
113
|
//Monomer lib and features
|
|
100
|
-
Monomer,
|
|
101
|
-
IMonomerLib,
|
|
102
114
|
MonomerWorks,
|
|
103
115
|
MonomerLib,
|
|
104
116
|
readLibrary
|
package/package.json
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Interface for hierarchical data structure returned by parseNewick (from phylocanvas.gl Newick.parse_newick) */
|
|
2
|
+
export interface NodeType {
|
|
3
|
+
name: string;
|
|
4
|
+
branch_length?: number;
|
|
5
|
+
children?: NodeType[];
|
|
6
|
+
}
|
|
7
|
+
export interface NodeCuttedType extends NodeType {
|
|
8
|
+
cuttedLeafNameList: string[];
|
|
9
|
+
cuttedChildren?: NodeType[];
|
|
10
|
+
}
|
|
11
|
+
export type TreeLeafDict = {
|
|
12
|
+
[nodeName: string]: NodeType;
|
|
13
|
+
};
|
|
14
|
+
export type DataNodeDict = {
|
|
15
|
+
[nodeName: string]: number;
|
|
16
|
+
};
|
|
17
|
+
export type NodeNameCallback = (nodeName: string) => void;
|
|
18
|
+
export declare enum TAGS {
|
|
19
|
+
NEWICK = ".newick",
|
|
20
|
+
NEWICK_JSON = ".newick_json",
|
|
21
|
+
OBJECTS = ".newick_objects",
|
|
22
|
+
NEWICK_LEAF_COL_NAME = ".newickLeafColumn"
|
|
23
|
+
}
|
|
24
|
+
export declare function isLeaf(node: NodeType): boolean;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,kHAAkH;AAClH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D,oBAAY,IAAI;IACd,MAAM,YAAY;IAClB,WAAW,iBAAiB;IAC5B,OAAO,oBAAoB;IAC3B,oBAAoB,sBAAsB;CAC3C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,WAEpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var TAGS;
|
|
2
|
+
(function (TAGS) {
|
|
3
|
+
TAGS["NEWICK"] = ".newick";
|
|
4
|
+
TAGS["NEWICK_JSON"] = ".newick_json";
|
|
5
|
+
TAGS["OBJECTS"] = ".newick_objects";
|
|
6
|
+
TAGS["NEWICK_LEAF_COL_NAME"] = ".newickLeafColumn";
|
|
7
|
+
})(TAGS || (TAGS = {}));
|
|
8
|
+
export function isLeaf(node) {
|
|
9
|
+
return !node.children || node.children.length == 0;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsTUFBTSxDQUFOLElBQVksSUFLWDtBQUxELFdBQVksSUFBSTtJQUNkLDBCQUFrQixDQUFBO0lBQ2xCLG9DQUE0QixDQUFBO0lBQzVCLG1DQUEyQixDQUFBO0lBQzNCLGtEQUEwQyxDQUFBO0FBQzVDLENBQUMsRUFMVyxJQUFJLEtBQUosSUFBSSxRQUtmO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuLyoqIEludGVyZmFjZSBmb3IgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlIHJldHVybmVkIGJ5IHBhcnNlTmV3aWNrIChmcm9tIHBoeWxvY2FudmFzLmdsIE5ld2ljay5wYXJzZV9uZXdpY2spICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVUeXBlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBicmFuY2hfbGVuZ3RoPzogbnVtYmVyO1xuICBjaGlsZHJlbj86IE5vZGVUeXBlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUN1dHRlZFR5cGUgZXh0ZW5kcyBOb2RlVHlwZSB7XG4gIGN1dHRlZExlYWZOYW1lTGlzdDogc3RyaW5nW107XG4gIGN1dHRlZENoaWxkcmVuPzogTm9kZVR5cGVbXTtcbn1cblxuZXhwb3J0IHR5cGUgVHJlZUxlYWZEaWN0ID0geyBbbm9kZU5hbWU6IHN0cmluZ106IE5vZGVUeXBlIH07XG5leHBvcnQgdHlwZSBEYXRhTm9kZURpY3QgPSB7IFtub2RlTmFtZTogc3RyaW5nXTogbnVtYmVyIH07XG5leHBvcnQgdHlwZSBOb2RlTmFtZUNhbGxiYWNrID0gKG5vZGVOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG5cbmV4cG9ydCBlbnVtIFRBR1Mge1xuICBORVdJQ0sgPSAnLm5ld2ljaycsXG4gIE5FV0lDS19KU09OID0gJy5uZXdpY2tfanNvbicsXG4gIE9CSkVDVFMgPSAnLm5ld2lja19vYmplY3RzJyxcbiAgTkVXSUNLX0xFQUZfQ09MX05BTUUgPSAnLm5ld2lja0xlYWZDb2x1bW4nLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMZWFmKG5vZGU6IE5vZGVUeXBlKSB7XG4gIHJldHVybiAhbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PSAwO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NodeType } from './
|
|
1
|
+
import { NodeType } from './index';
|
|
2
2
|
export declare const TreeTypes: {
|
|
3
3
|
Circular: string;
|
|
4
4
|
Diagonal: string;
|
|
@@ -60,5 +60,6 @@ export type PhylocanvasTreeNode = NodeType & {
|
|
|
60
60
|
totalSubtreeLength: number;
|
|
61
61
|
visibleLeaves: number;
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
/** Based on phylocanvas.gl */
|
|
64
|
+
export declare function parseNewick(s: string): NodeType;
|
|
64
65
|
//# sourceMappingURL=phylocanvas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phylocanvas.d.ts","sourceRoot":"","sources":["phylocanvas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"phylocanvas.d.ts","sourceRoot":"","sources":["phylocanvas.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoClB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAkC/C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export const TreeTypes = {
|
|
2
|
+
Circular: 'cr',
|
|
3
|
+
Diagonal: 'dg',
|
|
4
|
+
Hierarchical: 'hr',
|
|
5
|
+
Radial: 'rd',
|
|
6
|
+
Rectangular: 'rc',
|
|
7
|
+
};
|
|
8
|
+
export const Shapes = {
|
|
9
|
+
Chevron: 'chevron',
|
|
10
|
+
ChevronInverted: 'chevron-inverted',
|
|
11
|
+
ChevronLeft: 'chevron-left',
|
|
12
|
+
ChevronRight: 'chevron-right',
|
|
13
|
+
Circle: 'circle',
|
|
14
|
+
Cross: 'cross',
|
|
15
|
+
Diamond: 'diamond',
|
|
16
|
+
Dot: 'dot',
|
|
17
|
+
DoubleChevron: 'double-chevron',
|
|
18
|
+
DoubleChevronInverted: 'double-chevron-inverted',
|
|
19
|
+
DoubleChevronLeft: 'double-chevron-left',
|
|
20
|
+
DoubleChevronRight: 'double-chevron-right',
|
|
21
|
+
Heptagon: 'heptagon',
|
|
22
|
+
HeptagonInverted: 'heptagon-inverted',
|
|
23
|
+
Heptagram: 'heptagram',
|
|
24
|
+
HeptagramInverted: 'heptagram-inverted',
|
|
25
|
+
Hexagon: 'hexagon',
|
|
26
|
+
Hexagram: 'hexagram',
|
|
27
|
+
Octagon: 'octagon',
|
|
28
|
+
Octagram: 'octagram',
|
|
29
|
+
Pentagon: 'pentagon',
|
|
30
|
+
PentagonInverted: 'pentagon-inverted',
|
|
31
|
+
Pentagram: 'pentagram',
|
|
32
|
+
PentagramInverted: 'pentagram-inverted',
|
|
33
|
+
Plus: 'plus',
|
|
34
|
+
Square: 'square',
|
|
35
|
+
Star: 'pentagram',
|
|
36
|
+
StarInverted: 'pentagram-inverted',
|
|
37
|
+
Tetragram: 'tetragram',
|
|
38
|
+
Triangle: 'triangle',
|
|
39
|
+
TriangleInverted: 'triangle-inverted',
|
|
40
|
+
TriangleLeft: 'triangle-left',
|
|
41
|
+
TriangleRight: 'triangle-right',
|
|
42
|
+
Wye: 'wye',
|
|
43
|
+
WyeInverted: 'wye-inverted',
|
|
44
|
+
};
|
|
45
|
+
/** Based on phylocanvas.gl */
|
|
46
|
+
export function parseNewick(s) {
|
|
47
|
+
const ancestors = [];
|
|
48
|
+
let tree = { name: '' };
|
|
49
|
+
const tokens = s.split(/\s*(;|\(|\)|,|:)\s*/);
|
|
50
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
51
|
+
const token = tokens[i];
|
|
52
|
+
switch (token) {
|
|
53
|
+
case '(':
|
|
54
|
+
{ // new children
|
|
55
|
+
const subtree = { name: '' };
|
|
56
|
+
tree.children = [subtree];
|
|
57
|
+
ancestors.push(tree);
|
|
58
|
+
tree = subtree;
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case ',':
|
|
62
|
+
{ // another branch
|
|
63
|
+
const subtree = { name: '' };
|
|
64
|
+
ancestors[ancestors.length - 1].children.push(subtree);
|
|
65
|
+
tree = subtree;
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
case ')': // optional name next
|
|
69
|
+
tree = ancestors.pop();
|
|
70
|
+
break;
|
|
71
|
+
case ':': // optional length next
|
|
72
|
+
break;
|
|
73
|
+
default:
|
|
74
|
+
const x = tokens[i - 1];
|
|
75
|
+
if (x == ')' || x == '(' || x == ',')
|
|
76
|
+
tree.name = token;
|
|
77
|
+
else if (x == ':')
|
|
78
|
+
tree.branch_length = parseFloat(token);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return tree;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5bG9jYW52YXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaHlsb2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUc7SUFDdkIsUUFBUSxFQUFFLElBQUk7SUFDZCxRQUFRLEVBQUUsSUFBSTtJQUNkLFlBQVksRUFBRSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxJQUFJO0lBQ1osV0FBVyxFQUFFLElBQUk7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFlBQVksRUFBRSxlQUFlO0lBQzdCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLEtBQUs7SUFDVixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsa0JBQWtCLEVBQUUsc0JBQXNCO0lBQzFDLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxvQkFBb0I7SUFDdkMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2QyxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFBRSxvQkFBb0I7SUFDbEMsU0FBUyxFQUFFLFdBQVc7SUFDdEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLFlBQVksRUFBRSxlQUFlO0lBQzdCLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsR0FBRyxFQUFFLEtBQUs7SUFDVixXQUFXLEVBQUUsY0FBYztDQUM1QixDQUFDO0FBb0JGLDhCQUE4QjtBQUM5QixNQUFNLFVBQVUsV0FBVyxDQUFDLENBQVM7SUFDbkMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksSUFBSSxHQUFhLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsUUFBUSxLQUFLLEVBQUU7WUFDZixLQUFLLEdBQUc7Z0JBQUUsRUFBRSxlQUFlO29CQUN6QixNQUFNLE9BQU8sR0FBYSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUMxQixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyQixJQUFJLEdBQUcsT0FBTyxDQUFDO2lCQUNoQjtnQkFDQyxNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUFFLEVBQUUsaUJBQWlCO29CQUMzQixNQUFNLE9BQU8sR0FBYSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztvQkFDckMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxHQUFHLE9BQU8sQ0FBQztpQkFDaEI7Z0JBQ0MsTUFBTTtZQUNSLEtBQUssR0FBRyxFQUFFLHFCQUFxQjtnQkFDN0IsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUcsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssR0FBRyxFQUFFLHVCQUF1QjtnQkFDL0IsTUFBTTtZQUNSO2dCQUNFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztxQkFDZixJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG4vLyBodHRwczovL2dpdGxhYi5jb20vY2dwcy9waHlsb2NhbnZhcy9waHlsb2NhbnZhcy5nbFxuXG5pbXBvcnQge05vZGVUeXBlfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGNvbnN0IFRyZWVUeXBlcyA9IHtcbiAgQ2lyY3VsYXI6ICdjcicsXG4gIERpYWdvbmFsOiAnZGcnLFxuICBIaWVyYXJjaGljYWw6ICdocicsXG4gIFJhZGlhbDogJ3JkJyxcbiAgUmVjdGFuZ3VsYXI6ICdyYycsXG59O1xuXG5leHBvcnQgY29uc3QgU2hhcGVzID0ge1xuICBDaGV2cm9uOiAnY2hldnJvbicsXG4gIENoZXZyb25JbnZlcnRlZDogJ2NoZXZyb24taW52ZXJ0ZWQnLFxuICBDaGV2cm9uTGVmdDogJ2NoZXZyb24tbGVmdCcsXG4gIENoZXZyb25SaWdodDogJ2NoZXZyb24tcmlnaHQnLFxuICBDaXJjbGU6ICdjaXJjbGUnLFxuICBDcm9zczogJ2Nyb3NzJyxcbiAgRGlhbW9uZDogJ2RpYW1vbmQnLFxuICBEb3Q6ICdkb3QnLFxuICBEb3VibGVDaGV2cm9uOiAnZG91YmxlLWNoZXZyb24nLFxuICBEb3VibGVDaGV2cm9uSW52ZXJ0ZWQ6ICdkb3VibGUtY2hldnJvbi1pbnZlcnRlZCcsXG4gIERvdWJsZUNoZXZyb25MZWZ0OiAnZG91YmxlLWNoZXZyb24tbGVmdCcsXG4gIERvdWJsZUNoZXZyb25SaWdodDogJ2RvdWJsZS1jaGV2cm9uLXJpZ2h0JyxcbiAgSGVwdGFnb246ICdoZXB0YWdvbicsXG4gIEhlcHRhZ29uSW52ZXJ0ZWQ6ICdoZXB0YWdvbi1pbnZlcnRlZCcsXG4gIEhlcHRhZ3JhbTogJ2hlcHRhZ3JhbScsXG4gIEhlcHRhZ3JhbUludmVydGVkOiAnaGVwdGFncmFtLWludmVydGVkJyxcbiAgSGV4YWdvbjogJ2hleGFnb24nLFxuICBIZXhhZ3JhbTogJ2hleGFncmFtJyxcbiAgT2N0YWdvbjogJ29jdGFnb24nLFxuICBPY3RhZ3JhbTogJ29jdGFncmFtJyxcbiAgUGVudGFnb246ICdwZW50YWdvbicsXG4gIFBlbnRhZ29uSW52ZXJ0ZWQ6ICdwZW50YWdvbi1pbnZlcnRlZCcsXG4gIFBlbnRhZ3JhbTogJ3BlbnRhZ3JhbScsXG4gIFBlbnRhZ3JhbUludmVydGVkOiAncGVudGFncmFtLWludmVydGVkJyxcbiAgUGx1czogJ3BsdXMnLFxuICBTcXVhcmU6ICdzcXVhcmUnLFxuICBTdGFyOiAncGVudGFncmFtJyxcbiAgU3RhckludmVydGVkOiAncGVudGFncmFtLWludmVydGVkJyxcbiAgVGV0cmFncmFtOiAndGV0cmFncmFtJyxcbiAgVHJpYW5nbGU6ICd0cmlhbmdsZScsXG4gIFRyaWFuZ2xlSW52ZXJ0ZWQ6ICd0cmlhbmdsZS1pbnZlcnRlZCcsXG4gIFRyaWFuZ2xlTGVmdDogJ3RyaWFuZ2xlLWxlZnQnLFxuICBUcmlhbmdsZVJpZ2h0OiAndHJpYW5nbGUtcmlnaHQnLFxuICBXeWU6ICd3eWUnLFxuICBXeWVJbnZlcnRlZDogJ3d5ZS1pbnZlcnRlZCcsXG59O1xuXG4vKiogUmVwcmVzZW50cyBhIHNpbmdsZSB0cmVlIG5vZGUgKi9cbmV4cG9ydCB0eXBlIFBoeWxvY2FudmFzVHJlZU5vZGUgPSBOb2RlVHlwZSAmIHtcbiAgYnJhbmNoTGVuZ3RoOiBudW1iZXIsXG4gIGNoaWxkcmVuOiBQaHlsb2NhbnZhc1RyZWVOb2RlW10sXG4gIHBhcmVudD86IFBoeWxvY2FudmFzVHJlZU5vZGUsXG4gIGlkOiBzdHJpbmcsXG4gIGlzQ29sbGFwc2VkOiBib29sZWFuLFxuICBpc0hpZGRlbjogYm9vbGVhbixcbiAgaXNMZWFmOiBib29sZWFuLFxuICBuYW1lPzogc3RyaW5nLFxuICBwb3N0SW5kZXg6IG51bWJlcixcbiAgcHJlSW5kZXg6IG51bWJlcixcbiAgdG90YWxMZWF2ZXM6IG51bWJlcixcbiAgdG90YWxOb2RlczogbnVtYmVyLFxuICB0b3RhbFN1YnRyZWVMZW5ndGg6IG51bWJlcixcbiAgdmlzaWJsZUxlYXZlczogbnVtYmVyLFxufVxuXG4vKiogQmFzZWQgb24gcGh5bG9jYW52YXMuZ2wgKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU5ld2ljayhzOiBzdHJpbmcpOiBOb2RlVHlwZSB7XG4gIGNvbnN0IGFuY2VzdG9ycyA9IFtdO1xuICBsZXQgdHJlZTogTm9kZVR5cGUgPSB7bmFtZTogJyd9O1xuICBjb25zdCB0b2tlbnMgPSBzLnNwbGl0KC9cXHMqKDt8XFwofFxcKXwsfDopXFxzKi8pO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldO1xuICAgIHN3aXRjaCAodG9rZW4pIHtcbiAgICBjYXNlICcoJzogeyAvLyBuZXcgY2hpbGRyZW5cbiAgICAgIGNvbnN0IHN1YnRyZWU6IE5vZGVUeXBlID0ge25hbWU6ICcnfTtcbiAgICAgIHRyZWUuY2hpbGRyZW4gPSBbc3VidHJlZV07XG4gICAgICBhbmNlc3RvcnMucHVzaCh0cmVlKTtcbiAgICAgIHRyZWUgPSBzdWJ0cmVlO1xuICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJywnOiB7IC8vIGFub3RoZXIgYnJhbmNoXG4gICAgICBjb25zdCBzdWJ0cmVlOiBOb2RlVHlwZSA9IHtuYW1lOiAnJ307XG4gICAgICBhbmNlc3RvcnNbYW5jZXN0b3JzLmxlbmd0aCAtIDFdLmNoaWxkcmVuIS5wdXNoKHN1YnRyZWUpO1xuICAgICAgdHJlZSA9IHN1YnRyZWU7XG4gICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnKSc6IC8vIG9wdGlvbmFsIG5hbWUgbmV4dFxuICAgICAgdHJlZSA9IGFuY2VzdG9ycy5wb3AoKSE7XG4gICAgICBicmVhaztcbiAgICBjYXNlICc6JzogLy8gb3B0aW9uYWwgbGVuZ3RoIG5leHRcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBjb25zdCB4ID0gdG9rZW5zW2kgLSAxXTtcbiAgICAgIGlmICh4ID09ICcpJyB8fCB4ID09ICcoJyB8fCB4ID09ICcsJylcbiAgICAgICAgdHJlZS5uYW1lID0gdG9rZW47XG4gICAgICBlbHNlIGlmICh4ID09ICc6JylcbiAgICAgICAgdHJlZS5icmFuY2hfbGVuZ3RoID0gcGFyc2VGbG9hdCh0b2tlbik7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cmVlO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
|
-
import { NodeCuttedType, NodeType } from '
|
|
2
|
+
import { NodeCuttedType, NodeType } from './index';
|
|
3
3
|
export interface ITreeHelper {
|
|
4
4
|
/** Generates data frame with row per node, parent relation, distance, annotation
|
|
5
5
|
* @param {string} newick Newick format data
|
|
@@ -29,6 +29,8 @@ export interface ITreeHelper {
|
|
|
29
29
|
* @param {string|null} leafColName Column name for leaf name in newick, null - use row index
|
|
30
30
|
*/
|
|
31
31
|
cutTreeToGrid(node: NodeType, cutHeight: number, dataDf: DG.DataFrame, leafColName: string, clusterColName: string, na?: any): void;
|
|
32
|
+
/** Generate tree structures with {@link size} nodes number (counting internal).*/
|
|
33
|
+
generateTree(size: number): NodeType;
|
|
32
34
|
}
|
|
33
35
|
export declare function getTreeHelper(): Promise<ITreeHelper>;
|
|
34
36
|
//# sourceMappingURL=tree-helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-helper.d.ts","sourceRoot":"","sources":["tree-helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tree-helper.d.ts","sourceRoot":"","sources":["tree-helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAE3G,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;IAExC,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErF,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAEvF,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEhH;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9F,YAAY,CAAC,IAAI,EAAE,cAAc,EAC/B,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE5F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,cAAc,EAChC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAErF;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EACnE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/D,kFAAkF;IAClF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;CACtC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAO1D"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import * as DG from 'datagrok-api/dg';
|
|
11
|
+
export function getTreeHelper() {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const funcList = DG.Func.find({ package: 'Dendrogram', name: 'getTreeHelper' });
|
|
14
|
+
if (funcList.length === 0)
|
|
15
|
+
throw new Error('Package "PhyloTreeViewer"" must be installed for TreeHelper.');
|
|
16
|
+
const res = (yield funcList[0].prepare().call()).getOutputParamValue();
|
|
17
|
+
return res;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0cmVlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBa0R0QyxNQUFNLFVBQWdCLGFBQWE7O1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFbEYsTUFBTSxHQUFHLEdBQWdCLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBaUIsQ0FBQztRQUNuRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmltcG9ydCB7Tm9kZUN1dHRlZFR5cGUsIE5vZGVUeXBlfSBmcm9tICcuL2luZGV4JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlSGVscGVyIHtcbiAgLyoqIEdlbmVyYXRlcyBkYXRhIGZyYW1lIHdpdGggcm93IHBlciBub2RlLCBwYXJlbnQgcmVsYXRpb24sIGRpc3RhbmNlLCBhbm5vdGF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdpY2sgICAgICAgICAgICAgICAgTmV3aWNrIGZvcm1hdCBkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lICAgICAgICAgICAgICAgICAgUmVzdWx0IGRhdGEgZnJhbWUgbmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbm9kZVByZWZpeCAgICAgICAgICAgIFByZWZpeCBmb3Igbm9kZXMgd2l0aCBhdXRvIGdlbmVyYXRlZCBuYW1lICAgKlxuICAgKiBAcGFyYW0ge2Jvb2x9ICAgZW1wdHlQYXJlbnRSb290U2tpcCAgIFNraXAgcm93IHdpdGggcm9vdCBub2RlIGFuZCBlbXB0eSBwYXJlbnQgKGZvciBOZXR3b3JrIERpYWdyYW0pXG4gICAqL1xuICBuZXdpY2tUb0RmKG5ld2ljazogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG5vZGVQcmVmaXg/OiBzdHJpbmcsIGVtcHR5UGFyZW50Um9vdFNraXA/OiBib29sZWFuKTogREcuRGF0YUZyYW1lO1xuXG4gIHRvTmV3aWNrKG5vZGU6IE5vZGVUeXBlIHwgbnVsbCk6IHN0cmluZztcblxuICBnZXRMZWFmTGlzdDxUTm9kZSBleHRlbmRzIE5vZGVUeXBlPihub2RlOiBUTm9kZSk6IFROb2RlW107XG5cbiAgZ2V0Tm9kZUxpc3Q8VE5vZGUgZXh0ZW5kcyBOb2RlVHlwZT4obm9kZTogVE5vZGUpOiBUTm9kZVtdO1xuXG4gIHRyZWVGaWx0ZXJCeUxlYXZlcyhub2RlOiBOb2RlVHlwZSwgbGVhdmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IE5vZGVUeXBlIHwgbnVsbDtcblxuICB0cmVlQ3V0QXNMZWF2ZXMobm9kZTogTm9kZVR5cGUsIGN1dEhlaWdodDogbnVtYmVyLCBjdXJyZW50SGVpZ2h0PzogbnVtYmVyKTogTm9kZVR5cGVbXTtcblxuICB0cmVlQ3V0QXNUcmVlKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwga2VlcFNob3J0cz86IGJvb2xlYW4sIGN1cnJlbnRIZWlnaHQ/OiBudW1iZXIpOiBOb2RlVHlwZSB8IG51bGw7XG5cbiAgLyoqIFJlb3JkZXIgdGhlIGdyaWQncyByb3dzIGFjY29yZGluZyB0byB0aGUgbGVhdmVzJyBvcmRlciBpbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBzZXRHcmlkT3JkZXIodHJlZTogTm9kZVR5cGUsIGdyaWQ6IERHLkdyaWQsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogW05vZGVUeXBlLCBzdHJpbmdbXV07XG5cbiAgbWFya0NsdXN0ZXJzKHRyZWU6IE5vZGVDdXR0ZWRUeXBlLFxuICAgIGRhdGFEZjogREcuRGF0YUZyYW1lLCBsZWFmQ29sTmFtZTogc3RyaW5nIHwgbnVsbCwgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudWxsfSBsZWFmQ29sTmFtZSBDb2x1bW4gbmFtZSBmb3IgbGVhZiBuYW1lIGluIG5ld2ljaywgbnVsbCAtIHVzZSByb3cgaW5kZXhcbiAgICovXG4gIGJ1aWxkQ2x1c3RlcnModHJlZTogTm9kZUN1dHRlZFR5cGUsXG4gICAgY2x1c3RlckRmOiBERy5EYXRhRnJhbWUsIGNsdXN0ZXJDb2xOYW1lOiBzdHJpbmcsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZDtcblxuICAvKiogTW9kaWZpZXMgdGhlIHRyZWUgKHtAbGluayBub2RlfSkgY3V0dGluZyBhdCB7QGxpbmsgY3V0SGVpZ2h0fSBjcmVhdGluZyBleHRyYSBub2Rlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBjdXRUcmVlVG9HcmlkKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwgZGF0YURmOiBERy5EYXRhRnJhbWUsXG4gICAgbGVhZkNvbE5hbWU6IHN0cmluZywgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKiBHZW5lcmF0ZSB0cmVlIHN0cnVjdHVyZXMgd2l0aCB7QGxpbmsgc2l6ZX0gbm9kZXMgbnVtYmVyIChjb3VudGluZyBpbnRlcm5hbCkuKi9cbiAgZ2VuZXJhdGVUcmVlKHNpemU6IG51bWJlcik6IE5vZGVUeXBlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHJlZUhlbHBlcigpOiBQcm9taXNlPElUcmVlSGVscGVyPiB7XG4gIGNvbnN0IGZ1bmNMaXN0ID0gREcuRnVuYy5maW5kKHtwYWNrYWdlOiAnRGVuZHJvZ3JhbScsIG5hbWU6ICdnZXRUcmVlSGVscGVyJ30pO1xuICBpZiAoZnVuY0xpc3QubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignUGFja2FnZSBcIlBoeWxvVHJlZVZpZXdlclwiXCIgbXVzdCBiZSBpbnN0YWxsZWQgZm9yIFRyZWVIZWxwZXIuJyk7XG5cbiAgY29uc3QgcmVzOiBJVHJlZUhlbHBlciA9IChhd2FpdCBmdW5jTGlzdFswXS5wcmVwYXJlKCkuY2FsbCgpKS5nZXRPdXRwdXRQYXJhbVZhbHVlKCkgYXMgSVRyZWVIZWxwZXI7XG4gIHJldHVybiByZXM7XG59XG4iXX0=
|
package/src/types/index.d.ts
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
export interface NodeType {
|
|
3
|
-
name: string;
|
|
4
|
-
branch_length?: number;
|
|
5
|
-
children?: NodeType[];
|
|
6
|
-
}
|
|
7
|
-
export declare function isLeaf(node: NodeType): boolean;
|
|
8
|
-
export interface NodeCuttedType extends NodeType {
|
|
9
|
-
cuttedLeafNameList: string[];
|
|
10
|
-
cuttedChildren?: NodeType[];
|
|
11
|
-
}
|
|
12
2
|
export type Monomer = {
|
|
13
3
|
symbol: string;
|
|
14
4
|
name: string;
|
package/src/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAGhC,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/F,IAAI,EAAE;QAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAA;CAChC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACrE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IACtE,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9C,QAAQ,IAAI,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;CAClC"}
|
package/src/types/index.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return !node.children || node.children.length == 0;
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFZeEQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFjO0lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHtOb2RlVHlwZX0gZnJvbSAnQHBoeWxvY2FudmFzL3BoeWxvY2FudmFzLmdsJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuXG4vKiBJbnRlcmZhY2UgZm9yIGhpZXJhcmNoaWNhbCBkYXRhIHN0cnVjdHVyZSByZXR1cm5lZCBieSBOZXdpY2sucGFyc2VfbmV3aWNrICovXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVUeXBlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBicmFuY2hfbGVuZ3RoPzogbnVtYmVyO1xuICBjaGlsZHJlbj86IE5vZGVUeXBlW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xlYWYobm9kZTogTm9kZVR5cGUpIHtcbiAgcmV0dXJuICFub2RlLmNoaWxkcmVuIHx8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09IDA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUN1dHRlZFR5cGUgZXh0ZW5kcyBOb2RlVHlwZSB7XG4gIGN1dHRlZExlYWZOYW1lTGlzdDogc3RyaW5nW107XG4gIGN1dHRlZENoaWxkcmVuPzogTm9kZVR5cGVbXTtcbn1cblxuZXhwb3J0IHR5cGUgTW9ub21lciA9IHtcbiAgc3ltYm9sOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgbmF0dXJhbEFuYWxvZzogc3RyaW5nLFxuICBtb2xmaWxlOiBzdHJpbmcsXG4gIHBvbHltZXJUeXBlOiBzdHJpbmcsXG4gIG1vbm9tZXJUeXBlOiBzdHJpbmcsXG4gIHJncm91cHM6IHtjYXBHcm91cFNtaWxlczogc3RyaW5nLCBhbHRlcm5hdGVJZDogc3RyaW5nLCBjYXBHcm91cE5hbWU6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9W10sXG4gIGRhdGE6IHtbcHJvcGVydHk6IHN0cmluZ106IGFueX1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vbm9tZXJMaWIge1xuICBnZXRNb25vbWVyKG1vbm9tZXJUeXBlOiBzdHJpbmcsIG1vbm9tZXJOYW1lOiBzdHJpbmcpOiBNb25vbWVyIHwgbnVsbDtcbiAgZ2V0TW9ub21lck1vbHNCeVR5cGUodHlwZTogc3RyaW5nKToge1tzeW1ib2w6IHN0cmluZ106IHN0cmluZ30gfCBudWxsO1xuICBnZXRNb25vbWVyTmFtZXNCeVR5cGUodHlwZTogc3RyaW5nKTogc3RyaW5nW107XG4gIGdldFR5cGVzKCk6IHN0cmluZ1tdO1xuICB1cGRhdGUobGliOiBJTW9ub21lckxpYik6IHZvaWQ7XG4gIGdldCBvbkNoYW5nZWQoKTogT2JzZXJ2YWJsZTxhbnk+O1xufVxuIl19
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuXG5leHBvcnQgdHlwZSBNb25vbWVyID0ge1xuICBzeW1ib2w6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBuYXR1cmFsQW5hbG9nOiBzdHJpbmcsXG4gIG1vbGZpbGU6IHN0cmluZyxcbiAgcG9seW1lclR5cGU6IHN0cmluZyxcbiAgbW9ub21lclR5cGU6IHN0cmluZyxcbiAgcmdyb3Vwczoge2NhcEdyb3VwU21pbGVzOiBzdHJpbmcsIGFsdGVybmF0ZUlkOiBzdHJpbmcsIGNhcEdyb3VwTmFtZTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH1bXSxcbiAgZGF0YToge1twcm9wZXJ0eTogc3RyaW5nXTogYW55fVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBJTW9ub21lckxpYiB7XG4gIGdldE1vbm9tZXIobW9ub21lclR5cGU6IHN0cmluZywgbW9ub21lck5hbWU6IHN0cmluZyk6IE1vbm9tZXIgfCBudWxsO1xuICBnZXRNb25vbWVyTW9sc0J5VHlwZSh0eXBlOiBzdHJpbmcpOiB7W3N5bWJvbDogc3RyaW5nXTogc3RyaW5nfSB8IG51bGw7XG4gIGdldE1vbm9tZXJOYW1lc0J5VHlwZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmdbXTtcbiAgZ2V0VHlwZXMoKTogc3RyaW5nW107XG4gIHVwZGF0ZShsaWI6IElNb25vbWVyTGliKTogdm9pZDtcbiAgZ2V0IG9uQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGFueT47XG59XG4iXX0=
|
package/src/phylocanvas.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
// https://gitlab.com/cgps/phylocanvas/phylocanvas.gl
|
|
2
|
-
export const TreeTypes = {
|
|
3
|
-
Circular: 'cr',
|
|
4
|
-
Diagonal: 'dg',
|
|
5
|
-
Hierarchical: 'hr',
|
|
6
|
-
Radial: 'rd',
|
|
7
|
-
Rectangular: 'rc',
|
|
8
|
-
};
|
|
9
|
-
export const Shapes = {
|
|
10
|
-
Chevron: 'chevron',
|
|
11
|
-
ChevronInverted: 'chevron-inverted',
|
|
12
|
-
ChevronLeft: 'chevron-left',
|
|
13
|
-
ChevronRight: 'chevron-right',
|
|
14
|
-
Circle: 'circle',
|
|
15
|
-
Cross: 'cross',
|
|
16
|
-
Diamond: 'diamond',
|
|
17
|
-
Dot: 'dot',
|
|
18
|
-
DoubleChevron: 'double-chevron',
|
|
19
|
-
DoubleChevronInverted: 'double-chevron-inverted',
|
|
20
|
-
DoubleChevronLeft: 'double-chevron-left',
|
|
21
|
-
DoubleChevronRight: 'double-chevron-right',
|
|
22
|
-
Heptagon: 'heptagon',
|
|
23
|
-
HeptagonInverted: 'heptagon-inverted',
|
|
24
|
-
Heptagram: 'heptagram',
|
|
25
|
-
HeptagramInverted: 'heptagram-inverted',
|
|
26
|
-
Hexagon: 'hexagon',
|
|
27
|
-
Hexagram: 'hexagram',
|
|
28
|
-
Octagon: 'octagon',
|
|
29
|
-
Octagram: 'octagram',
|
|
30
|
-
Pentagon: 'pentagon',
|
|
31
|
-
PentagonInverted: 'pentagon-inverted',
|
|
32
|
-
Pentagram: 'pentagram',
|
|
33
|
-
PentagramInverted: 'pentagram-inverted',
|
|
34
|
-
Plus: 'plus',
|
|
35
|
-
Square: 'square',
|
|
36
|
-
Star: 'pentagram',
|
|
37
|
-
StarInverted: 'pentagram-inverted',
|
|
38
|
-
Tetragram: 'tetragram',
|
|
39
|
-
Triangle: 'triangle',
|
|
40
|
-
TriangleInverted: 'triangle-inverted',
|
|
41
|
-
TriangleLeft: 'triangle-left',
|
|
42
|
-
TriangleRight: 'triangle-right',
|
|
43
|
-
Wye: 'wye',
|
|
44
|
-
WyeInverted: 'wye-inverted',
|
|
45
|
-
};
|
|
46
|
-
/*
|
|
47
|
-
|
|
48
|
-
// https://en.wikipedia.org/wiki/Tree_traversal#Post-order
|
|
49
|
-
function getPostorderTraversal<TNode extends NodeType>(rootNode: TNode): TNode[] {
|
|
50
|
-
const nodes: TNode[] = [];
|
|
51
|
-
const queue: TNode[] = [rootNode];
|
|
52
|
-
|
|
53
|
-
while (queue.length) {
|
|
54
|
-
const node: TNode = queue.pop()!;
|
|
55
|
-
if (node.children)
|
|
56
|
-
Array.prototype.push.apply(queue, node.children);
|
|
57
|
-
nodes.push(node);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return nodes.reverse();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// https://en.wikipedia.org/wiki/Tree_traversal#Pre-order
|
|
64
|
-
function getPreorderTraversal<TNode extends NodeType>(rootNode: TNode): TNode[] {
|
|
65
|
-
const nodes: TNode[] = [];
|
|
66
|
-
const queue: TNode[] = [rootNode];
|
|
67
|
-
|
|
68
|
-
while (queue.length) {
|
|
69
|
-
const node: TNode = queue.shift()!;
|
|
70
|
-
nodes.push(node);
|
|
71
|
-
if (node.children)
|
|
72
|
-
Array.prototype.unshift.apply(queue, node.children);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return nodes;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export function treeTraversal(rootNode: PhylocanvasTreeNode, {trimQuotes = true} = {}) {
|
|
79
|
-
performance.mark('getPostorderTraversal');
|
|
80
|
-
const postorderTraversal = getPostorderTraversal(rootNode);
|
|
81
|
-
performance.measure(' getPostorderTraversal', 'getPostorderTraversal');
|
|
82
|
-
performance.mark('getPreorderTraversal');
|
|
83
|
-
const preorderTraversal = getPreorderTraversal(rootNode);
|
|
84
|
-
performance.measure(' getPreorderTraversal', 'getPreorderTraversal');
|
|
85
|
-
|
|
86
|
-
// Detect cladograms
|
|
87
|
-
const isCladogram = postorderTraversal.every((x) => (x.branchLength || x.branch_length || 0) === 0);
|
|
88
|
-
if (isCladogram) {
|
|
89
|
-
rootNode.branchLength = 0;
|
|
90
|
-
for (let nodeIndex = 0; nodeIndex < preorderTraversal.length; nodeIndex++) {
|
|
91
|
-
const node = preorderTraversal[nodeIndex];
|
|
92
|
-
if (node.children) {
|
|
93
|
-
for (const child of node.children)
|
|
94
|
-
child.branchLength = node.branchLength + 1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
performance.mark('bottom-up traversal');
|
|
100
|
-
// bottom-up traversal starting from leaves to root
|
|
101
|
-
for (let nodeIndex = 0; nodeIndex < postorderTraversal.length; nodeIndex++) {
|
|
102
|
-
const node: PhylocanvasTreeNode = postorderTraversal[nodeIndex];
|
|
103
|
-
node.postIndex = nodeIndex;
|
|
104
|
-
node.isLeaf = !Array.isArray(node.children);
|
|
105
|
-
node.branchLength = Math.abs(node.branchLength || node.branch_length || 0);
|
|
106
|
-
delete node.branch_length;
|
|
107
|
-
if (node.isLeaf && typeof node.name === 'string') {
|
|
108
|
-
if (trimQuotes)
|
|
109
|
-
node.id = node.name.trim().replace(/^['"]|['"]$/g, '');
|
|
110
|
-
else
|
|
111
|
-
node.id = node.name;
|
|
112
|
-
|
|
113
|
-
// @ts-ignore
|
|
114
|
-
delete node.name;
|
|
115
|
-
}
|
|
116
|
-
node.totalNodes = 1;
|
|
117
|
-
node.totalLeaves = 1;
|
|
118
|
-
node.totalSubtreeLength = 0;
|
|
119
|
-
if (!node.isLeaf) {
|
|
120
|
-
node.totalNodes = 1;
|
|
121
|
-
node.totalLeaves = 0;
|
|
122
|
-
let totalSubtreeLength = 0;
|
|
123
|
-
for (const child of node.children) {
|
|
124
|
-
node.totalNodes += child.totalNodes;
|
|
125
|
-
node.totalLeaves += child.totalLeaves;
|
|
126
|
-
if (child.totalSubtreeLength + child.branchLength > totalSubtreeLength)
|
|
127
|
-
totalSubtreeLength = child.totalSubtreeLength + child.branchLength;
|
|
128
|
-
child.parent = node;
|
|
129
|
-
}
|
|
130
|
-
node.totalSubtreeLength = totalSubtreeLength;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
performance.measure(' bottom-up traversal', 'bottom-up traversal');
|
|
134
|
-
|
|
135
|
-
performance.mark('top-down traversal');
|
|
136
|
-
const nodeById: { [id: string]: PhylocanvasTreeNode } = {};
|
|
137
|
-
// top-down traversal starting from root to leaves
|
|
138
|
-
for (let nodeIndex = 0; nodeIndex < preorderTraversal.length; nodeIndex++) {
|
|
139
|
-
const node = preorderTraversal[nodeIndex];
|
|
140
|
-
node.preIndex = nodeIndex;
|
|
141
|
-
if (!node.id)
|
|
142
|
-
node.id = nodeIndex.toString();
|
|
143
|
-
nodeById[node.id] = node;
|
|
144
|
-
node.visibleLeaves = node.totalLeaves;
|
|
145
|
-
node.isCollapsed = false;
|
|
146
|
-
node.isHidden = false;
|
|
147
|
-
}
|
|
148
|
-
performance.measure(' top-down traversal', 'top-down traversal');
|
|
149
|
-
|
|
150
|
-
return {
|
|
151
|
-
nodeById,
|
|
152
|
-
rootNode,
|
|
153
|
-
postorderTraversal,
|
|
154
|
-
preorderTraversal,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**/
|
|
159
|
-
export function parseNewick(s) {
|
|
160
|
-
const ancestors = [];
|
|
161
|
-
let tree = { name: '' };
|
|
162
|
-
const tokens = s.split(/\s*(;|\(|\)|,|:)\s*/);
|
|
163
|
-
for (let i = 0; i < tokens.length; i++) {
|
|
164
|
-
const token = tokens[i];
|
|
165
|
-
switch (token) {
|
|
166
|
-
case '(':
|
|
167
|
-
{ // new children
|
|
168
|
-
const subtree = { name: '' };
|
|
169
|
-
tree.children = [subtree];
|
|
170
|
-
ancestors.push(tree);
|
|
171
|
-
tree = subtree;
|
|
172
|
-
}
|
|
173
|
-
break;
|
|
174
|
-
case ',':
|
|
175
|
-
{ // another branch
|
|
176
|
-
const subtree = { name: '' };
|
|
177
|
-
ancestors[ancestors.length - 1].children.push(subtree);
|
|
178
|
-
tree = subtree;
|
|
179
|
-
}
|
|
180
|
-
break;
|
|
181
|
-
case ')': // optional name next
|
|
182
|
-
tree = ancestors.pop();
|
|
183
|
-
break;
|
|
184
|
-
case ':': // optional length next
|
|
185
|
-
break;
|
|
186
|
-
default:
|
|
187
|
-
const x = tokens[i - 1];
|
|
188
|
-
if (x == ')' || x == '(' || x == ',')
|
|
189
|
-
tree.name = token;
|
|
190
|
-
else if (x == ':')
|
|
191
|
-
tree.branch_length = parseFloat(token);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return tree;
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5bG9jYW52YXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaHlsb2NhbnZhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFJckQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLElBQUk7SUFDZCxZQUFZLEVBQUUsSUFBSTtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxXQUFXLEVBQUUsY0FBYztJQUMzQixZQUFZLEVBQUUsZUFBZTtJQUM3QixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixxQkFBcUIsRUFBRSx5QkFBeUI7SUFDaEQsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLGtCQUFrQixFQUFFLHNCQUFzQjtJQUMxQyxRQUFRLEVBQUUsVUFBVTtJQUNwQixnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsU0FBUyxFQUFFLFdBQVc7SUFDdEIsaUJBQWlCLEVBQUUsb0JBQW9CO0lBQ3ZDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxTQUFTLEVBQUUsV0FBVztJQUN0QixpQkFBaUIsRUFBRSxvQkFBb0I7SUFDdkMsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtJQUNoQixJQUFJLEVBQUUsV0FBVztJQUNqQixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxZQUFZLEVBQUUsZUFBZTtJQUM3QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLEdBQUcsRUFBRSxLQUFLO0lBQ1YsV0FBVyxFQUFFLGNBQWM7Q0FDNUIsQ0FBQztBQW9CRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWdISTtBQUVKLE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBUztJQUNuQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDckIsSUFBSSxJQUFJLEdBQWEsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixRQUFRLEtBQUssRUFBRTtZQUNmLEtBQUssR0FBRztnQkFBRSxFQUFFLGVBQWU7b0JBQ3pCLE1BQU0sT0FBTyxHQUFhLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLElBQUksR0FBRyxPQUFPLENBQUM7aUJBQ2hCO2dCQUNDLE1BQU07WUFDUixLQUFLLEdBQUc7Z0JBQUUsRUFBRSxpQkFBaUI7b0JBQzNCLE1BQU0sT0FBTyxHQUFhLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO29CQUNyQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN4RCxJQUFJLEdBQUcsT0FBTyxDQUFDO2lCQUNoQjtnQkFDQyxNQUFNO1lBQ1IsS0FBSyxHQUFHLEVBQUUscUJBQXFCO2dCQUM3QixJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRyxDQUFDO2dCQUN4QixNQUFNO1lBQ1IsS0FBSyxHQUFHLEVBQUUsdUJBQXVCO2dCQUMvQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUc7b0JBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO3FCQUNmLElBQUksQ0FBQyxJQUFJLEdBQUc7b0JBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUM7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0bGFiLmNvbS9jZ3BzL3BoeWxvY2FudmFzL3BoeWxvY2FudmFzLmdsXG5cbmltcG9ydCB7Tm9kZVR5cGV9IGZyb20gJy4vdHlwZXMvaW5kZXgnO1xuXG5leHBvcnQgY29uc3QgVHJlZVR5cGVzID0ge1xuICBDaXJjdWxhcjogJ2NyJyxcbiAgRGlhZ29uYWw6ICdkZycsXG4gIEhpZXJhcmNoaWNhbDogJ2hyJyxcbiAgUmFkaWFsOiAncmQnLFxuICBSZWN0YW5ndWxhcjogJ3JjJyxcbn07XG5cbmV4cG9ydCBjb25zdCBTaGFwZXMgPSB7XG4gIENoZXZyb246ICdjaGV2cm9uJyxcbiAgQ2hldnJvbkludmVydGVkOiAnY2hldnJvbi1pbnZlcnRlZCcsXG4gIENoZXZyb25MZWZ0OiAnY2hldnJvbi1sZWZ0JyxcbiAgQ2hldnJvblJpZ2h0OiAnY2hldnJvbi1yaWdodCcsXG4gIENpcmNsZTogJ2NpcmNsZScsXG4gIENyb3NzOiAnY3Jvc3MnLFxuICBEaWFtb25kOiAnZGlhbW9uZCcsXG4gIERvdDogJ2RvdCcsXG4gIERvdWJsZUNoZXZyb246ICdkb3VibGUtY2hldnJvbicsXG4gIERvdWJsZUNoZXZyb25JbnZlcnRlZDogJ2RvdWJsZS1jaGV2cm9uLWludmVydGVkJyxcbiAgRG91YmxlQ2hldnJvbkxlZnQ6ICdkb3VibGUtY2hldnJvbi1sZWZ0JyxcbiAgRG91YmxlQ2hldnJvblJpZ2h0OiAnZG91YmxlLWNoZXZyb24tcmlnaHQnLFxuICBIZXB0YWdvbjogJ2hlcHRhZ29uJyxcbiAgSGVwdGFnb25JbnZlcnRlZDogJ2hlcHRhZ29uLWludmVydGVkJyxcbiAgSGVwdGFncmFtOiAnaGVwdGFncmFtJyxcbiAgSGVwdGFncmFtSW52ZXJ0ZWQ6ICdoZXB0YWdyYW0taW52ZXJ0ZWQnLFxuICBIZXhhZ29uOiAnaGV4YWdvbicsXG4gIEhleGFncmFtOiAnaGV4YWdyYW0nLFxuICBPY3RhZ29uOiAnb2N0YWdvbicsXG4gIE9jdGFncmFtOiAnb2N0YWdyYW0nLFxuICBQZW50YWdvbjogJ3BlbnRhZ29uJyxcbiAgUGVudGFnb25JbnZlcnRlZDogJ3BlbnRhZ29uLWludmVydGVkJyxcbiAgUGVudGFncmFtOiAncGVudGFncmFtJyxcbiAgUGVudGFncmFtSW52ZXJ0ZWQ6ICdwZW50YWdyYW0taW52ZXJ0ZWQnLFxuICBQbHVzOiAncGx1cycsXG4gIFNxdWFyZTogJ3NxdWFyZScsXG4gIFN0YXI6ICdwZW50YWdyYW0nLFxuICBTdGFySW52ZXJ0ZWQ6ICdwZW50YWdyYW0taW52ZXJ0ZWQnLFxuICBUZXRyYWdyYW06ICd0ZXRyYWdyYW0nLFxuICBUcmlhbmdsZTogJ3RyaWFuZ2xlJyxcbiAgVHJpYW5nbGVJbnZlcnRlZDogJ3RyaWFuZ2xlLWludmVydGVkJyxcbiAgVHJpYW5nbGVMZWZ0OiAndHJpYW5nbGUtbGVmdCcsXG4gIFRyaWFuZ2xlUmlnaHQ6ICd0cmlhbmdsZS1yaWdodCcsXG4gIFd5ZTogJ3d5ZScsXG4gIFd5ZUludmVydGVkOiAnd3llLWludmVydGVkJyxcbn07XG5cbi8qKiBSZXByZXNlbnRzIGEgc2luZ2xlIHRyZWUgbm9kZSAqL1xuZXhwb3J0IHR5cGUgUGh5bG9jYW52YXNUcmVlTm9kZSA9IE5vZGVUeXBlICYge1xuICBicmFuY2hMZW5ndGg6IG51bWJlcixcbiAgY2hpbGRyZW46IFBoeWxvY2FudmFzVHJlZU5vZGVbXSxcbiAgcGFyZW50PzogUGh5bG9jYW52YXNUcmVlTm9kZSxcbiAgaWQ6IHN0cmluZyxcbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW4sXG4gIGlzSGlkZGVuOiBib29sZWFuLFxuICBpc0xlYWY6IGJvb2xlYW4sXG4gIG5hbWU/OiBzdHJpbmcsXG4gIHBvc3RJbmRleDogbnVtYmVyLFxuICBwcmVJbmRleDogbnVtYmVyLFxuICB0b3RhbExlYXZlczogbnVtYmVyLFxuICB0b3RhbE5vZGVzOiBudW1iZXIsXG4gIHRvdGFsU3VidHJlZUxlbmd0aDogbnVtYmVyLFxuICB2aXNpYmxlTGVhdmVzOiBudW1iZXIsXG59XG5cbi8qXG5cbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RyZWVfdHJhdmVyc2FsI1Bvc3Qtb3JkZXJcbmZ1bmN0aW9uIGdldFBvc3RvcmRlclRyYXZlcnNhbDxUTm9kZSBleHRlbmRzIE5vZGVUeXBlPihyb290Tm9kZTogVE5vZGUpOiBUTm9kZVtdIHtcbiAgY29uc3Qgbm9kZXM6IFROb2RlW10gPSBbXTtcbiAgY29uc3QgcXVldWU6IFROb2RlW10gPSBbcm9vdE5vZGVdO1xuXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBub2RlOiBUTm9kZSA9IHF1ZXVlLnBvcCgpITtcbiAgICBpZiAobm9kZS5jaGlsZHJlbilcbiAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHF1ZXVlLCBub2RlLmNoaWxkcmVuKTtcbiAgICBub2Rlcy5wdXNoKG5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIG5vZGVzLnJldmVyc2UoKTtcbn1cblxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVHJlZV90cmF2ZXJzYWwjUHJlLW9yZGVyXG5mdW5jdGlvbiBnZXRQcmVvcmRlclRyYXZlcnNhbDxUTm9kZSBleHRlbmRzIE5vZGVUeXBlPihyb290Tm9kZTogVE5vZGUpOiBUTm9kZVtdIHtcbiAgY29uc3Qgbm9kZXM6IFROb2RlW10gPSBbXTtcbiAgY29uc3QgcXVldWU6IFROb2RlW10gPSBbcm9vdE5vZGVdO1xuXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBub2RlOiBUTm9kZSA9IHF1ZXVlLnNoaWZ0KCkhO1xuICAgIG5vZGVzLnB1c2gobm9kZSk7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pXG4gICAgICBBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShxdWV1ZSwgbm9kZS5jaGlsZHJlbik7XG4gIH1cblxuICByZXR1cm4gbm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmVlVHJhdmVyc2FsKHJvb3ROb2RlOiBQaHlsb2NhbnZhc1RyZWVOb2RlLCB7dHJpbVF1b3RlcyA9IHRydWV9ID0ge30pIHtcbiAgcGVyZm9ybWFuY2UubWFyaygnZ2V0UG9zdG9yZGVyVHJhdmVyc2FsJyk7XG4gIGNvbnN0IHBvc3RvcmRlclRyYXZlcnNhbCA9IGdldFBvc3RvcmRlclRyYXZlcnNhbChyb290Tm9kZSk7XG4gIHBlcmZvcm1hbmNlLm1lYXN1cmUoJyAgICBnZXRQb3N0b3JkZXJUcmF2ZXJzYWwnLCAnZ2V0UG9zdG9yZGVyVHJhdmVyc2FsJyk7XG4gIHBlcmZvcm1hbmNlLm1hcmsoJ2dldFByZW9yZGVyVHJhdmVyc2FsJyk7XG4gIGNvbnN0IHByZW9yZGVyVHJhdmVyc2FsID0gZ2V0UHJlb3JkZXJUcmF2ZXJzYWwocm9vdE5vZGUpO1xuICBwZXJmb3JtYW5jZS5tZWFzdXJlKCcgICAgZ2V0UHJlb3JkZXJUcmF2ZXJzYWwnLCAnZ2V0UHJlb3JkZXJUcmF2ZXJzYWwnKTtcblxuICAvLyBEZXRlY3QgY2xhZG9ncmFtc1xuICBjb25zdCBpc0NsYWRvZ3JhbSA9IHBvc3RvcmRlclRyYXZlcnNhbC5ldmVyeSgoeCkgPT4gKHguYnJhbmNoTGVuZ3RoIHx8IHguYnJhbmNoX2xlbmd0aCB8fCAwKSA9PT0gMCk7XG4gIGlmIChpc0NsYWRvZ3JhbSkge1xuICAgIHJvb3ROb2RlLmJyYW5jaExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgcHJlb3JkZXJUcmF2ZXJzYWwubGVuZ3RoOyBub2RlSW5kZXgrKykge1xuICAgICAgY29uc3Qgbm9kZSA9IHByZW9yZGVyVHJhdmVyc2FsW25vZGVJbmRleF07XG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pXG4gICAgICAgICAgY2hpbGQuYnJhbmNoTGVuZ3RoID0gbm9kZS5icmFuY2hMZW5ndGggKyAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHBlcmZvcm1hbmNlLm1hcmsoJ2JvdHRvbS11cCB0cmF2ZXJzYWwnKTtcbiAgLy8gYm90dG9tLXVwIHRyYXZlcnNhbCBzdGFydGluZyBmcm9tIGxlYXZlcyB0byByb290XG4gIGZvciAobGV0IG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IHBvc3RvcmRlclRyYXZlcnNhbC5sZW5ndGg7IG5vZGVJbmRleCsrKSB7XG4gICAgY29uc3Qgbm9kZTogUGh5bG9jYW52YXNUcmVlTm9kZSA9IHBvc3RvcmRlclRyYXZlcnNhbFtub2RlSW5kZXhdO1xuICAgIG5vZGUucG9zdEluZGV4ID0gbm9kZUluZGV4O1xuICAgIG5vZGUuaXNMZWFmID0gIUFycmF5LmlzQXJyYXkobm9kZS5jaGlsZHJlbik7XG4gICAgbm9kZS5icmFuY2hMZW5ndGggPSBNYXRoLmFicyhub2RlLmJyYW5jaExlbmd0aCB8fCBub2RlLmJyYW5jaF9sZW5ndGggfHwgMCk7XG4gICAgZGVsZXRlIG5vZGUuYnJhbmNoX2xlbmd0aDtcbiAgICBpZiAobm9kZS5pc0xlYWYgJiYgdHlwZW9mIG5vZGUubmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0cmltUXVvdGVzKVxuICAgICAgICBub2RlLmlkID0gbm9kZS5uYW1lLnRyaW0oKS5yZXBsYWNlKC9eWydcIl18WydcIl0kL2csICcnKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbm9kZS5pZCA9IG5vZGUubmFtZTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgZGVsZXRlIG5vZGUubmFtZTtcbiAgICB9XG4gICAgbm9kZS50b3RhbE5vZGVzID0gMTtcbiAgICBub2RlLnRvdGFsTGVhdmVzID0gMTtcbiAgICBub2RlLnRvdGFsU3VidHJlZUxlbmd0aCA9IDA7XG4gICAgaWYgKCFub2RlLmlzTGVhZikge1xuICAgICAgbm9kZS50b3RhbE5vZGVzID0gMTtcbiAgICAgIG5vZGUudG90YWxMZWF2ZXMgPSAwO1xuICAgICAgbGV0IHRvdGFsU3VidHJlZUxlbmd0aCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgbm9kZS50b3RhbE5vZGVzICs9IGNoaWxkLnRvdGFsTm9kZXM7XG4gICAgICAgIG5vZGUudG90YWxMZWF2ZXMgKz0gY2hpbGQudG90YWxMZWF2ZXM7XG4gICAgICAgIGlmIChjaGlsZC50b3RhbFN1YnRyZWVMZW5ndGggKyBjaGlsZC5icmFuY2hMZW5ndGggPiB0b3RhbFN1YnRyZWVMZW5ndGgpXG4gICAgICAgICAgdG90YWxTdWJ0cmVlTGVuZ3RoID0gY2hpbGQudG90YWxTdWJ0cmVlTGVuZ3RoICsgY2hpbGQuYnJhbmNoTGVuZ3RoO1xuICAgICAgICBjaGlsZC5wYXJlbnQgPSBub2RlO1xuICAgICAgfVxuICAgICAgbm9kZS50b3RhbFN1YnRyZWVMZW5ndGggPSB0b3RhbFN1YnRyZWVMZW5ndGg7XG4gICAgfVxuICB9XG4gIHBlcmZvcm1hbmNlLm1lYXN1cmUoJyAgICBib3R0b20tdXAgdHJhdmVyc2FsJywgJ2JvdHRvbS11cCB0cmF2ZXJzYWwnKTtcblxuICBwZXJmb3JtYW5jZS5tYXJrKCd0b3AtZG93biB0cmF2ZXJzYWwnKTtcbiAgY29uc3Qgbm9kZUJ5SWQ6IHsgW2lkOiBzdHJpbmddOiBQaHlsb2NhbnZhc1RyZWVOb2RlIH0gPSB7fTtcbiAgLy8gdG9wLWRvd24gdHJhdmVyc2FsIHN0YXJ0aW5nIGZyb20gcm9vdCB0byBsZWF2ZXNcbiAgZm9yIChsZXQgbm9kZUluZGV4ID0gMDsgbm9kZUluZGV4IDwgcHJlb3JkZXJUcmF2ZXJzYWwubGVuZ3RoOyBub2RlSW5kZXgrKykge1xuICAgIGNvbnN0IG5vZGUgPSBwcmVvcmRlclRyYXZlcnNhbFtub2RlSW5kZXhdO1xuICAgIG5vZGUucHJlSW5kZXggPSBub2RlSW5kZXg7XG4gICAgaWYgKCFub2RlLmlkKVxuICAgICAgbm9kZS5pZCA9IG5vZGVJbmRleC50b1N0cmluZygpO1xuICAgIG5vZGVCeUlkW25vZGUuaWRdID0gbm9kZTtcbiAgICBub2RlLnZpc2libGVMZWF2ZXMgPSBub2RlLnRvdGFsTGVhdmVzO1xuICAgIG5vZGUuaXNDb2xsYXBzZWQgPSBmYWxzZTtcbiAgICBub2RlLmlzSGlkZGVuID0gZmFsc2U7XG4gIH1cbiAgcGVyZm9ybWFuY2UubWVhc3VyZSgnICAgIHRvcC1kb3duIHRyYXZlcnNhbCcsICd0b3AtZG93biB0cmF2ZXJzYWwnKTtcblxuICByZXR1cm4ge1xuICAgIG5vZGVCeUlkLFxuICAgIHJvb3ROb2RlLFxuICAgIHBvc3RvcmRlclRyYXZlcnNhbCxcbiAgICBwcmVvcmRlclRyYXZlcnNhbCxcbiAgfTtcbn1cblxuLyoqL1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOZXdpY2soczogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgYW5jZXN0b3JzID0gW107XG4gIGxldCB0cmVlOiBOb2RlVHlwZSA9IHtuYW1lOiAnJ307XG4gIGNvbnN0IHRva2VucyA9IHMuc3BsaXQoL1xccyooO3xcXCh8XFwpfCx8OilcXHMqLyk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgc3dpdGNoICh0b2tlbikge1xuICAgIGNhc2UgJygnOiB7IC8vIG5ldyBjaGlsZHJlblxuICAgICAgY29uc3Qgc3VidHJlZTogTm9kZVR5cGUgPSB7bmFtZTogJyd9O1xuICAgICAgdHJlZS5jaGlsZHJlbiA9IFtzdWJ0cmVlXTtcbiAgICAgIGFuY2VzdG9ycy5wdXNoKHRyZWUpO1xuICAgICAgdHJlZSA9IHN1YnRyZWU7XG4gICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnLCc6IHsgLy8gYW5vdGhlciBicmFuY2hcbiAgICAgIGNvbnN0IHN1YnRyZWU6IE5vZGVUeXBlID0ge25hbWU6ICcnfTtcbiAgICAgIGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV0uY2hpbGRyZW4hLnB1c2goc3VidHJlZSk7XG4gICAgICB0cmVlID0gc3VidHJlZTtcbiAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICcpJzogLy8gb3B0aW9uYWwgbmFtZSBuZXh0XG4gICAgICB0cmVlID0gYW5jZXN0b3JzLnBvcCgpITtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJzonOiAvLyBvcHRpb25hbCBsZW5ndGggbmV4dFxuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnN0IHggPSB0b2tlbnNbaSAtIDFdO1xuICAgICAgaWYgKHggPT0gJyknIHx8IHggPT0gJygnIHx8IHggPT0gJywnKVxuICAgICAgICB0cmVlLm5hbWUgPSB0b2tlbjtcbiAgICAgIGVsc2UgaWYgKHggPT0gJzonKVxuICAgICAgICB0cmVlLmJyYW5jaF9sZW5ndGggPSBwYXJzZUZsb2F0KHRva2VuKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRyZWU7XG59XG4iXX0=
|
package/src/utils/tree-helper.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import * as DG from 'datagrok-api/dg';
|
|
11
|
-
export function getTreeHelper() {
|
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
const funcList = DG.Func.find({ package: 'PhyloTreeViewer', name: 'getTreeHelper' });
|
|
14
|
-
if (funcList.length === 0)
|
|
15
|
-
throw new Error('Package "PhyloTreeViewer"" must be installed for TreeHelper.');
|
|
16
|
-
const res = (yield funcList[0].prepare().call()).getOutputParamValue();
|
|
17
|
-
return res;
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0cmVlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBK0N0QyxNQUFNLFVBQWdCLGFBQWE7O1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUVsRixNQUFNLEdBQUcsR0FBZ0IsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixFQUFpQixDQUFDO1FBQ25HLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcblxuaW1wb3J0IHtOb2RlQ3V0dGVkVHlwZSwgTm9kZVR5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlSGVscGVyIHtcbiAgLyoqIEdlbmVyYXRlcyBkYXRhIGZyYW1lIHdpdGggcm93IHBlciBub2RlLCBwYXJlbnQgcmVsYXRpb24sIGRpc3RhbmNlLCBhbm5vdGF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdpY2sgICAgICAgICAgICAgICAgTmV3aWNrIGZvcm1hdCBkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lICAgICAgICAgICAgICAgICAgUmVzdWx0IGRhdGEgZnJhbWUgbmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbm9kZVByZWZpeCAgICAgICAgICAgIFByZWZpeCBmb3Igbm9kZXMgd2l0aCBhdXRvIGdlbmVyYXRlZCBuYW1lICAgKlxuICAgKiBAcGFyYW0ge2Jvb2x9ICAgZW1wdHlQYXJlbnRSb290U2tpcCAgIFNraXAgcm93IHdpdGggcm9vdCBub2RlIGFuZCBlbXB0eSBwYXJlbnQgKGZvciBOZXR3b3JrIERpYWdyYW0pXG4gICAqL1xuICBuZXdpY2tUb0RmKG5ld2ljazogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG5vZGVQcmVmaXg/OiBzdHJpbmcsIGVtcHR5UGFyZW50Um9vdFNraXA/OiBib29sZWFuKTogREcuRGF0YUZyYW1lO1xuXG4gIHRvTmV3aWNrKG5vZGU6IE5vZGVUeXBlIHwgbnVsbCk6IHN0cmluZztcblxuICBnZXRMZWFmTGlzdDxUTm9kZSBleHRlbmRzIE5vZGVUeXBlPihub2RlOiBUTm9kZSk6IFROb2RlW107XG5cbiAgZ2V0Tm9kZUxpc3Q8VE5vZGUgZXh0ZW5kcyBOb2RlVHlwZT4obm9kZTogVE5vZGUpOiBUTm9kZVtdO1xuXG4gIHRyZWVGaWx0ZXJCeUxlYXZlcyhub2RlOiBOb2RlVHlwZSwgbGVhdmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IE5vZGVUeXBlIHwgbnVsbDtcblxuICB0cmVlQ3V0QXNMZWF2ZXMobm9kZTogTm9kZVR5cGUsIGN1dEhlaWdodDogbnVtYmVyLCBjdXJyZW50SGVpZ2h0PzogbnVtYmVyKTogTm9kZVR5cGVbXTtcblxuICB0cmVlQ3V0QXNUcmVlKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwga2VlcFNob3J0cz86IGJvb2xlYW4sIGN1cnJlbnRIZWlnaHQ/OiBudW1iZXIpOiBOb2RlVHlwZSB8IG51bGw7XG5cbiAgLyoqIFJlb3JkZXIgdGhlIGdyaWQncyByb3dzIGFjY29yZGluZyB0byB0aGUgbGVhdmVzJyBvcmRlciBpbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBzZXRHcmlkT3JkZXIodHJlZTogTm9kZVR5cGUsIGdyaWQ6IERHLkdyaWQsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogW05vZGVUeXBlLCBzdHJpbmdbXV07XG5cbiAgbWFya0NsdXN0ZXJzKHRyZWU6IE5vZGVDdXR0ZWRUeXBlLFxuICAgIGRhdGFEZjogREcuRGF0YUZyYW1lLCBsZWFmQ29sTmFtZTogc3RyaW5nIHwgbnVsbCwgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudWxsfSBsZWFmQ29sTmFtZSBDb2x1bW4gbmFtZSBmb3IgbGVhZiBuYW1lIGluIG5ld2ljaywgbnVsbCAtIHVzZSByb3cgaW5kZXhcbiAgICovXG4gIGJ1aWxkQ2x1c3RlcnModHJlZTogTm9kZUN1dHRlZFR5cGUsXG4gICAgY2x1c3RlckRmOiBERy5EYXRhRnJhbWUsIGNsdXN0ZXJDb2xOYW1lOiBzdHJpbmcsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZDtcblxuICAvKiogTW9kaWZpZXMgdGhlIHRyZWUgKHtAbGluayBub2RlfSkgY3V0dGluZyBhdCB7QGxpbmsgY3V0SGVpZ2h0fSBjcmVhdGluZyBleHRyYSBub2Rlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBjdXRUcmVlVG9HcmlkKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwgZGF0YURmOiBERy5EYXRhRnJhbWUsXG4gICAgbGVhZkNvbE5hbWU6IHN0cmluZywgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHJlZUhlbHBlcigpOiBQcm9taXNlPElUcmVlSGVscGVyPiB7XG4gIGNvbnN0IGZ1bmNMaXN0ID0gREcuRnVuYy5maW5kKHtwYWNrYWdlOiAnUGh5bG9UcmVlVmlld2VyJywgbmFtZTogJ2dldFRyZWVIZWxwZXInfSk7XG4gIGlmIChmdW5jTGlzdC5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYWNrYWdlIFwiUGh5bG9UcmVlVmlld2VyXCJcIiBtdXN0IGJlIGluc3RhbGxlZCBmb3IgVHJlZUhlbHBlci4nKTtcblxuICBjb25zdCByZXM6IElUcmVlSGVscGVyID0gKGF3YWl0IGZ1bmNMaXN0WzBdLnByZXBhcmUoKS5jYWxsKCkpLmdldE91dHB1dFBhcmFtVmFsdWUoKSBhcyBJVHJlZUhlbHBlcjtcbiAgcmV0dXJuIHJlcztcbn1cbiJdfQ==
|