@sjcrh/proteinpaint-client 2.74.2 → 2.76.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/dist/{2dmaf-b2d78c57.js → 2dmaf-74b99126.js} +1 -1
- package/dist/AppHeader-cecb39c2.js +1 -0
- package/dist/{ColorScale-9c76aef3.js → ColorScale-21cab8d2.js} +1 -1
- package/dist/DEanalysis-95bad59a.js +1 -0
- package/dist/Disco-a6e921a0.js +1 -0
- package/dist/Disco.UI-9ad999ed.js +1 -0
- package/dist/{DragControls-586f72db.js → DragControls-e3b6a937.js} +1 -1
- package/dist/{DziViewer-6311327c.js → DziViewer-354a790d.js} +1 -1
- package/dist/FilterRxComp-701a1480.js +1 -0
- package/dist/{FilterStateless-046081c2.js → FilterStateless-54c0b763.js} +1 -1
- package/dist/{HicApp-40e44cba.js → HicApp-d5a946bf.js} +1 -1
- package/dist/{OrbitControls-0cda1772.js → OrbitControls-694652cd.js} +1 -1
- package/dist/WSIViewer-dc7f8eb0.js +1 -0
- package/dist/adSandbox-f438e388.js +1 -0
- package/dist/app-3320ab6f.js +1 -0
- package/dist/app-649f8357.js +1 -0
- package/dist/app-b369b169.js +1 -0
- package/dist/app.js +1 -1
- package/dist/bam-431875ef.js +1 -0
- package/dist/barchart-8277ed43.js +1 -0
- package/dist/barchart.events-da29c90d.js +1 -0
- package/dist/{bars.renderer-5f7a4174.js → bars.renderer-dcfdd59b.js} +1 -1
- package/dist/block-6aedd569.js +1 -0
- package/dist/block.lazyload-87b12654.js +1 -0
- package/dist/block.legend-d3f61ef7.js +1 -0
- package/dist/{block.mds-effc078d.js → block.mds-3ad17dfa.js} +1 -1
- package/dist/{block.mds.cnv-ec861a26.js → block.mds.cnv-857ba868.js} +1 -1
- package/dist/{block.mds.expressionrank-a2ad7c80.js → block.mds.expressionrank-7e3b208c.js} +1 -1
- package/dist/{block.mds.expressionstat-31dc5595.js → block.mds.expressionstat-f2d31c86.js} +1 -1
- package/dist/{block.mds.geneboxplot-3ca857ce.js → block.mds.geneboxplot-f0fbaf12.js} +1 -1
- package/dist/{block.mds.junction-debba938.js → block.mds.junction-7f87f48f.js} +1 -1
- package/dist/{block.mds.svcnv-8dc5abdf.js → block.mds.svcnv-ac035c12.js} +1 -1
- package/dist/{block.mds.svcnv.share-81e62600.js → block.mds.svcnv.share-886d9479.js} +1 -1
- package/dist/block.mds2-7852c1ee.js +1 -0
- package/dist/{block.svg-9121e8e7.js → block.svg-9b916fa6.js} +1 -1
- package/dist/{block.tk.aicheck-c1b478e9.js → block.tk.aicheck-6770e333.js} +1 -1
- package/dist/{block.tk.ase-0f6ded48.js → block.tk.ase-ee807e59.js} +1 -1
- package/dist/{block.tk.bam-7cd06aee.js → block.tk.bam-00fba6e8.js} +1 -1
- package/dist/{block.tk.bedgraphdot-3ef8b94e.js → block.tk.bedgraphdot-7fda78e9.js} +1 -1
- package/dist/{block.tk.bigwig.ui-d1248810.js → block.tk.bigwig.ui-cc1a42f3.js} +1 -1
- package/dist/{block.tk.hicstraw-ee731e55.js → block.tk.hicstraw-526470e3.js} +1 -1
- package/dist/{block.tk.junction-4d8cab4d.js → block.tk.junction-b43a4cda.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-a6430b27.js → block.tk.junction.textmatrixui-a60ed78a.js} +1 -1
- package/dist/{block.tk.ld-8429a18b.js → block.tk.ld-d15bde41.js} +1 -1
- package/dist/{block.tk.menu-3f31f958.js → block.tk.menu-3aeb93c6.js} +1 -1
- package/dist/{block.tk.pgv-07e46705.js → block.tk.pgv-9af2bd64.js} +1 -1
- package/dist/boxplot-e17a17b7.js +1 -0
- package/dist/brainImaging-bf2ceee9.js +1 -0
- package/dist/{brush-c386fe3d.js → brush-aa175142.js} +1 -1
- package/dist/categorical-a52014a1.js +1 -0
- package/dist/condition-c646e357.js +1 -0
- package/dist/controls-287e6efa.js +1 -0
- package/dist/{controls.btns-1cb2bfab.js → controls.btns-79b805dd.js} +1 -1
- package/dist/controls.config-28d6d6a8.js +1 -0
- package/dist/cuminc-9e275854.js +1 -0
- package/dist/{customdata.inputui-cbd712ea.js → customdata.inputui-dc49d94b.js} +1 -1
- package/dist/dataDownload-3a3d4f33.js +1 -0
- package/dist/databrowser.ui-d8d3f8fd.js +1 -0
- package/dist/{density-19266ebf.js → density-a82a8b1c.js} +1 -1
- package/dist/dictionary-c5a19d90.js +1 -0
- package/dist/{drag-0b968811.js → drag-7b30ba17.js} +1 -1
- package/dist/{e2pca-b8752945.js → e2pca-82765817.js} +1 -1
- package/dist/{ep-a86b185a.js → ep-d017ec2f.js} +1 -1
- package/dist/facet-a9b44ef3.js +1 -0
- package/dist/{fusion.parse-244b2b97.js → fusion.parse-d40d0b9d.js} +1 -1
- package/dist/geneExpClustering-34c3f518.js +1 -0
- package/dist/geneExpression-0d1b7244.js +1 -0
- package/dist/{geneExpression-e0430f2e.js → geneExpression-589f485b.js} +1 -1
- package/dist/{geneExpression-387205bf.js → geneExpression-7d14983f.js} +1 -1
- package/dist/geneORA-903a780f.js +1 -0
- package/dist/{geneVariant-7de021b6.js → geneVariant-89601b34.js} +1 -1
- package/dist/geneVariant-92c4e870.js +1 -0
- package/dist/{genefusion.ui-a331de19.js → genefusion.ui-7e22e811.js} +1 -1
- package/dist/{genesearch-ea59f5d4.js → genesearch-a4e19f0d.js} +1 -1
- package/dist/geneset-108a39d2.js +1 -0
- package/dist/genomeBrowser-12f86a36.js +1 -0
- package/dist/genomeBrowser.controls-d5067811.js +1 -0
- package/dist/{groupsetting-20ffef77.js → groupsetting-b4416a96.js} +1 -1
- package/dist/gsea-543dab25.js +1 -0
- package/dist/hierCluster-26e14090.js +1 -0
- package/dist/hierCluster.config-98e82dff.js +1 -0
- package/dist/{hierCluster.interactivity-9b433033.js → hierCluster.interactivity-e56f6542.js} +1 -1
- package/dist/hierCluster.renderers-74a64cf5.js +1 -0
- package/dist/{html.legend-abb5452e.js → html.legend-a3f4ebfe.js} +1 -1
- package/dist/imagePlot-b9eae4ae.js +1 -0
- package/dist/{lasso-55cf4057.js → lasso-f767f634.js} +1 -1
- package/dist/launch.adhoc-abca6af3.js +1 -0
- package/dist/leftlabel.sample-24c2388d.js +1 -0
- package/dist/legacyDataset-e0e201ab.js +1 -0
- package/dist/{log-cf45fcf2.js → log-99af3443.js} +1 -1
- package/dist/{lollipop-c5b6e615.js → lollipop-806f8fa4.js} +1 -1
- package/dist/{maf-7535f1f9.js → maf-b06579e4.js} +1 -1
- package/dist/{maftimeline-1292ab62.js → maftimeline-4840a380.js} +1 -1
- package/dist/matrix-00bb50ff.js +1 -0
- package/dist/matrix.cells-914dd0c6.js +1 -0
- package/dist/{matrix.cluster-168bc96b.js → matrix.cluster-783ceab0.js} +1 -1
- package/dist/matrix.config-6ce74dfe.js +1 -0
- package/dist/matrix.controls-7b2a6f95.js +1 -0
- package/dist/{matrix.data-b1d0febe.js → matrix.data-dac4f1b7.js} +1 -1
- package/dist/{matrix.dom-00defa30.js → matrix.dom-4e10bbe9.js} +1 -1
- package/dist/matrix.groups-b9fca14a.js +1 -0
- package/dist/matrix.interactivity-84169b43.js +1 -0
- package/dist/{matrix.layout-c2345231.js → matrix.layout-dd5a44fd.js} +1 -1
- package/dist/matrix.legend-ac6d45e6.js +1 -0
- package/dist/matrix.renderers-78010275.js +1 -0
- package/dist/matrix.serieses-9b4fd744.js +1 -0
- package/dist/matrix.sort-014d798d.js +1 -0
- package/dist/{matrix.sorterUi-a741ba2e.js → matrix.sorterUi-9bf7e6f9.js} +1 -1
- package/dist/{mavb-92136d17.js → mavb-c6be46fc.js} +1 -1
- package/dist/{mds.fimo-c03115b4.js → mds.fimo-bff6a1ed.js} +1 -1
- package/dist/mds.samplescatterplot-9a02b9fb.js +1 -0
- package/dist/{mds.survivalplot-366db380.js → mds.survivalplot-055549f4.js} +1 -1
- package/dist/{metaboliteIntensity-ddb6e480.js → metaboliteIntensity-fac92f8b.js} +1 -1
- package/dist/niceNumLabels-238aabce.js +1 -0
- package/dist/{nodrag-2c046d31.js → nodrag-16ad4b03.js} +1 -1
- package/dist/{notify-44ebc0df.js → notify-224cccbd.js} +1 -1
- package/dist/{numeric-918d4686.js → numeric-b0b17185.js} +1 -1
- package/dist/numeric.binary-1f9e93f2.js +1 -0
- package/dist/numeric.continuous-ebcd0567.js +1 -0
- package/dist/numeric.discrete-7b97044a.js +1 -0
- package/dist/numeric.spline-1be88f3d.js +1 -0
- package/dist/numeric.toggle-7fa2a770.js +1 -0
- package/dist/oncomatrix-351af2a0.js +1 -0
- package/dist/{parseData-e66308cd.js → parseData-21fe9822.js} +1 -1
- package/dist/partjson.esm-b3f1fc21.js +1 -0
- package/dist/{plot.2dvaf-73dbfbd1.js → plot.2dvaf-18a35e4b.js} +1 -1
- package/dist/plot.app-30c4b8e5.js +1 -0
- package/dist/plot.barplot-7c4865a2.js +1 -0
- package/dist/{plot.boxplot-641da058.js → plot.boxplot-fe3046c6.js} +1 -1
- package/dist/plot.brainImaging-2ceb6023.js +1 -0
- package/dist/plot.disco-6011f87f.js +1 -0
- package/dist/{plot.dzi-41ea26e5.js → plot.dzi-6728a7c8.js} +1 -1
- package/dist/plot.ssgq-5581dc56.js +1 -0
- package/dist/{plot.vaf2cov-80e58833.js → plot.vaf2cov-b2284c64.js} +1 -1
- package/dist/{plot.wsi-51cc48ef.js → plot.wsi-9a9d4034.js} +1 -1
- package/dist/profileBarchart-0476f1f8.js +1 -0
- package/dist/profileHome-32eb9b50.js +1 -0
- package/dist/profilePlot-c7e099e8.js +1 -0
- package/dist/profilePolar-6b981e63.js +1 -0
- package/dist/profileRadar-bca1cc03.js +1 -0
- package/dist/profileRadarFacility-bbb1ecd8.js +1 -0
- package/dist/profileSummary-b114204f.js +1 -0
- package/dist/recover-49e09de0.js +1 -0
- package/dist/regression.inputs-a761f40d.js +1 -0
- package/dist/regression.inputs.values.table-5929d25a.js +1 -0
- package/dist/regression.results-69bc42d0.js +1 -0
- package/dist/{renderPvalueTable-895a72c2.js → renderPvalueTable-dc5d15f2.js} +1 -1
- package/dist/sampleScatter-2d0ed680.js +1 -0
- package/dist/{sampleScatter.rendererThree-5e686004.js → sampleScatter.rendererThree-0b12ac61.js} +2 -2
- package/dist/sampleView-484ab133.js +1 -0
- package/dist/samplelst-689796e6.js +1 -0
- package/dist/{samplematrix-2a1d7d82.js → samplematrix-2b137a05.js} +1 -1
- package/dist/scatter-205e013f.js +1 -0
- package/dist/{select2Terms-b4fffc50.js → select2Terms-b21e184a.js} +1 -1
- package/dist/{selectGenomeWithTklst-acf7e568.js → selectGenomeWithTklst-466995b4.js} +1 -1
- package/dist/singleCellCellType-5db730bb.js +1 -0
- package/dist/{singleCellGeneExpression-6de17162.js → singleCellGeneExpression-7147a2d0.js} +1 -1
- package/dist/singleCellPlot-73b2738f.js +1 -0
- package/dist/{singlecell-f76c856a.js → singlecell-24409b72.js} +1 -1
- package/dist/singlecell-bca774ed.js +1 -0
- package/dist/{snp-9590a1b4.js → snp-37d06246.js} +1 -1
- package/dist/snp-a8388ce4.js +1 -0
- package/dist/snplocus-7a1ea8c9.js +1 -0
- package/dist/{snplst-007a1926.js → snplst-6865d7c7.js} +1 -1
- package/dist/{spliceevent.a53ss.diagram-63dfef69.js → spliceevent.a53ss.diagram-e2eab72b.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-76fa9af8.js → spliceevent.exonskip.diagram-4d5df3a1.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-a94aad6e.js +1 -0
- package/dist/{spliceevent.noeventdiagram-64a099e0.js → spliceevent.noeventdiagram-ea97b0fb.js} +1 -1
- package/dist/{spliceevent.phrase-770c8cac.js → spliceevent.phrase-c5832470.js} +1 -1
- package/dist/{stattable-f1189f0f.js → stattable-7c5ecc2f.js} +1 -1
- package/dist/{style.gdc-89cfdb0f.js → style.gdc-131f3c77.js} +1 -1
- package/dist/summary-5ec455d3.js +1 -0
- package/dist/{sunburst-d5379952.js → sunburst-533902a7.js} +1 -1
- package/dist/survival-92250664.js +1 -0
- package/dist/survival-e16e068f.js +1 -0
- package/dist/{svg.download-86850940.js → svg.download-35926549.js} +1 -1
- package/dist/{svg.legend-a94b0697.js → svg.legend-8d490df2.js} +1 -1
- package/dist/{svgraph-c57b9ae3.js → svgraph-6fac8cbc.js} +1 -1
- package/dist/{svmr-cf6f1b27.js → svmr-d07ff695.js} +1 -1
- package/dist/table-29d5a973.js +1 -0
- package/dist/table-ad744310.js +1 -0
- package/dist/termInfo-bf99a37e.js +1 -0
- package/dist/{termdb.bins-9faa5170.js → termdb.bins-8b656cc3.js} +1 -1
- package/dist/termsetting-33ea66f1.js +1 -0
- package/dist/tk-071a7550.js +1 -0
- package/dist/{toggleButtons-002aeda1.js → toggleButtons-dbdbad01.js} +1 -1
- package/dist/tp.ui-9c2e9fc5.js +1 -0
- package/dist/tslib.es6-c3c2d88f.js +1 -0
- package/dist/tvs.density-f6128793.js +1 -0
- package/dist/{tvs.geneVariant-3a65ad94.js → tvs.geneVariant-ca4bdbb1.js} +1 -1
- package/dist/tvs.numeric-0260a825.js +1 -0
- package/dist/{tvs.samplelst-1eeb586b.js → tvs.samplelst-cb71b3bf.js} +1 -1
- package/dist/{uiUtils-1336bad7.js → uiUtils-f1bd2bcc.js} +1 -1
- package/dist/{variantBrowser-f0c812c1.js → variantBrowser-7c540224.js} +1 -1
- package/dist/{vcf-c4a23924.js → vcf-5cc55588.js} +1 -1
- package/dist/violin-2ba509eb.js +1 -0
- package/dist/violin.interactivity-4da6d7a9.js +1 -0
- package/dist/{violin.renderer-dafd89fa.js → violin.renderer-ce024265.js} +1 -1
- package/dist/{violinRenderer-8215f40d.js → violinRenderer-f7c96a60.js} +1 -1
- package/dist/{viridis-ffd14c4d.js → viridis-01ab20c5.js} +1 -1
- package/dist/{y-dd197cc9.js → y-67939f83.js} +1 -1
- package/dist/{zoom-9c63e74c.js → zoom-25dce8b9.js} +1 -1
- package/package.json +6 -4
- package/dist/AppHeader-a2a7e518.js +0 -1
- package/dist/DEanalysis-a6b50e49.js +0 -1
- package/dist/Disco-1c71b7dd.js +0 -1
- package/dist/Disco.UI-4c16ee50.js +0 -1
- package/dist/FilterRxComp-242f4615.js +0 -1
- package/dist/WSIViewer-d90032d7.js +0 -1
- package/dist/adSandbox-3528c372.js +0 -1
- package/dist/app-07dee349.js +0 -1
- package/dist/app-a8c4854a.js +0 -1
- package/dist/app-ade9c62a.js +0 -1
- package/dist/bam-92483a98.js +0 -1
- package/dist/barchart-3e69d094.js +0 -1
- package/dist/barchart.events-9b11d97e.js +0 -1
- package/dist/block-dcb130fb.js +0 -1
- package/dist/block.lazyload-9f031cac.js +0 -1
- package/dist/block.legend-b2987cd9.js +0 -1
- package/dist/block.mds2-de6e0986.js +0 -1
- package/dist/boxplot-1178fffc.js +0 -1
- package/dist/brainImaging-98ed7aa2.js +0 -1
- package/dist/categorical-26528ce8.js +0 -1
- package/dist/condition-b0d74550.js +0 -1
- package/dist/controls-0bacec22.js +0 -1
- package/dist/controls.config-0ccc9d79.js +0 -1
- package/dist/controls.divide-a9fe9466.js +0 -1
- package/dist/controls.overlay-fe20d41d.js +0 -1
- package/dist/controls.term1-faa2efcf.js +0 -1
- package/dist/cuminc-7e2cac2d.js +0 -1
- package/dist/dataDownload-ade8d840.js +0 -1
- package/dist/databrowser.ui-716f0519.js +0 -1
- package/dist/dictionary-3f83ce63.js +0 -1
- package/dist/facet-6850cfed.js +0 -1
- package/dist/geneExpClustering-7fd3c87e.js +0 -1
- package/dist/geneExpression-6462537d.js +0 -1
- package/dist/geneORA-7eb818c4.js +0 -1
- package/dist/geneVariant-b58e924a.js +0 -1
- package/dist/geneset-9f69ad3f.js +0 -1
- package/dist/genomeBrowser-1b2b83f7.js +0 -1
- package/dist/genomeBrowser.controls-cd8ddeb1.js +0 -1
- package/dist/gsea-36376589.js +0 -1
- package/dist/hierCluster-f1e30c19.js +0 -1
- package/dist/hierCluster.config-da3510b1.js +0 -1
- package/dist/hierCluster.renderers-610d8860.js +0 -1
- package/dist/imagePlot-7089bdff.js +0 -1
- package/dist/launch.adhoc-d229fd55.js +0 -1
- package/dist/leftlabel.sample-a919168c.js +0 -1
- package/dist/legacyDataset-1cbcb67d.js +0 -1
- package/dist/matrix-0614794d.js +0 -1
- package/dist/matrix.cells-819d4991.js +0 -1
- package/dist/matrix.config-c54ca273.js +0 -1
- package/dist/matrix.controls-5eca7822.js +0 -1
- package/dist/matrix.groups-4660dd70.js +0 -1
- package/dist/matrix.interactivity-23d83183.js +0 -1
- package/dist/matrix.legend-2e647224.js +0 -1
- package/dist/matrix.renderers-43445f4f.js +0 -1
- package/dist/matrix.serieses-972fbe5d.js +0 -1
- package/dist/matrix.sort-80d9b788.js +0 -1
- package/dist/mds.samplescatterplot-1623e6d0.js +0 -1
- package/dist/niceNumLabels-6cfc1508.js +0 -1
- package/dist/numeric.binary-80467e8b.js +0 -1
- package/dist/numeric.continuous-69a62a15.js +0 -1
- package/dist/numeric.discrete-86181905.js +0 -1
- package/dist/numeric.spline-1b07fd13.js +0 -1
- package/dist/numeric.toggle-37c4bee8.js +0 -1
- package/dist/oncomatrix-475271da.js +0 -1
- package/dist/plot.app-aa916e0e.js +0 -1
- package/dist/plot.barplot-8b440a2b.js +0 -1
- package/dist/plot.brainImaging-2f796b0c.js +0 -1
- package/dist/plot.disco-43e18d2f.js +0 -1
- package/dist/plot.ssgq-e49cb70b.js +0 -1
- package/dist/profileBarchart-91463ab6.js +0 -1
- package/dist/profileHome-d37a6821.js +0 -1
- package/dist/profilePlot-9ca577cb.js +0 -1
- package/dist/profilePolar-19c7da5b.js +0 -1
- package/dist/profileRadar-8bf094e3.js +0 -1
- package/dist/profileRadarFacility-f9fd8971.js +0 -1
- package/dist/profileSummary-93999c14.js +0 -1
- package/dist/recover-36ada47f.js +0 -1
- package/dist/regression.inputs-cb57ece6.js +0 -1
- package/dist/regression.inputs.values.table-908bb37a.js +0 -1
- package/dist/regression.results-c186a8dc.js +0 -1
- package/dist/roundValue-b0d0517c.js +0 -1
- package/dist/sampleScatter-9d5b3630.js +0 -1
- package/dist/sampleView-2d895023.js +0 -1
- package/dist/samplelst-9f8343ff.js +0 -1
- package/dist/scatter-b4992f64.js +0 -1
- package/dist/singleCellCellType-84a0c2cf.js +0 -1
- package/dist/singleCellPlot-2f2b8619.js +0 -1
- package/dist/singlecell-90567dde.js +0 -1
- package/dist/snp-79ec95ba.js +0 -1
- package/dist/snplocus-cb629be1.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-31d2950c.js +0 -1
- package/dist/summary-b77bef3c.js +0 -1
- package/dist/survival-61ab375a.js +0 -1
- package/dist/survival-80a0ade9.js +0 -1
- package/dist/table-79e3e776.js +0 -1
- package/dist/table-eee91e14.js +0 -1
- package/dist/termInfo-f851b415.js +0 -1
- package/dist/tk-75566002.js +0 -1
- package/dist/tp.ui-02911b56.js +0 -1
- package/dist/tslib.es6-1f85f553.js +0 -1
- package/dist/tvs.density-026fca97.js +0 -1
- package/dist/tvs.numeric-3f3d9919.js +0 -1
- package/dist/violin-1515c3e6.js +0 -1
- package/dist/violin.interactivity-8e2f480d.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as t,B as e,d as n}from"./app-
|
|
1
|
+
import{z as t,B as e,d as n}from"./app-b369b169.js";const s={type:"geneVariant",term_name_gen:o,get_pill_label:l,getSelectRemovePos:r,fillMenu:i,setTvsDefaults:c};async function i(s,i,o){const l=await s.opts.vocabApi.getCategories(o.term,s.filter,{});const r=new Map;for(const h of l.lst){r.set(h.dt,h.classes)}const c=i.append("div").style("padding","5px").style("cursor","pointer");c.append("div").style("font-size","1.2rem").text(s.tvs.term.name);const p=c.append("div").style("display","flex").style("align-items","center");const a=p.append("button").property("disabled",true).style("margin-top","3px").text("Apply").on("click",(()=>{const t=[];for(const e of d){const n=e.items;for(const e of n){if(!t.some((t=>t.dt==e.dt&&(e.origin?e.origin==t.origin:true)))){const n={dt:e.dt,mclassLst:[],mclassExcludeLst:[]};if(e.origin)n.origin=e.origin;t.push(n)}const n=t.filter((t=>t.dt==e.dt&&(e.origin?e.origin==t.origin:true)))[0];const s=n.mclassLst;const i=n.mclassExcludeLst;if(g.some((t=>t.dt==e.dt&&t.key==e.key&&(e.origin?e.origin==t.origin:true)))){i.push(e.key)}else{s.push(e.key)}}}const e={term:s.tvs.term,values:t,isnot:o.isnot};s.opts.callback(e)}));c.append("div").style("font-weight","bold").style("margin","10px 5px 5px 10px").text("Filter by only one group within which select 1 or more categories for INCLUSION");const d=[];for(const[b,x]of r){if(x.byOrigin){for(const[v,$]of Object.entries(x.byOrigin)){k($,b,v)}}else{k(x,b)}function k(n,s,i){const o=[];for(const[e,l]of Object.entries(n)){const n={...t[e]};n.dt=s;n.num=l;if(i)n.origin=i;o.push(n)}o.sort(((t,e)=>e.num-t.num));if(o.length){d.push({name:i?`${i.charAt(0).toUpperCase()+i.slice(1)} ${e[s]}`:e[s],items:o})}}}const g=[];if(o.values.length){for(const w of d){for(const L of w.items){const A=o.values.filter((t=>t.dt==L.dt&&(L.origin?L.origin==t.origin:true)))[0].mclassExcludeLst;if(A.includes(L.key))g.push(L)}}}const y=JSON.stringify(g);const f=g.length?null:d.reduce(((t,e)=>{if(e.items.length>t.items.length)return e;return t}),d[0]);const u=Math.random().toString();const m=c.append("div").selectAll(":scope>div").data(d,(t=>t.name)).enter().append("div").style("max-width","500px").style("margin","10px").style("padding-left","10px").style("text-align","left").style("opacity",.5).each((function(t){const e=n(this);const s=e.append("label").style("display","flex");const i=g.some((e=>t.items.some((t=>t.dt==e.dt&&(t.origin?t.origin==e.origin:true)))));const o=s.append("input").attr("type","radio").attr("name",u).property("checked",i||f==t).on("click",(()=>{m.style("opacity",.5);e.style("opacity",1);m.selectAll('input[type="checkbox"]').property("disabled",true);r.selectAll('input[type="checkbox"]').property("disabled",false);m.selectAll(".sjpp_row_wrapper").style("display","none");r.style("display","inline-block");m.selectAll('input[type="checkbox"]').property("checked",true);g.splice(0,g.length);a.property("disabled",JSON.stringify(g)===y||g.length==0)}));e.style("opacity",i||f==t?1:.5);s.append("span").style("font-weight",600).html(t.name);const l=Math.random().toString();const r=e.selectAll(":scope>div").data(t.items,(t=>t.label)).enter().append("label").style("margin","5px").style("margin-left","20px").style("display",o.property("checked")?"inline-block":"none").each((function(t){const e=n(this);e.attr("class","sjpp_row_wrapper");e.append("input").attr("type","checkbox").attr("name",l).property("disabled",o.property("checked")?false:true).property("checked",g.some((e=>e.key==t.key&&e.dt==t.dt&&(t.origin?t.origin==e.origin:true)))?false:true).style("vertical-align","top").style("margin-right","3px").on("change",(function(t,e){const n=g.findIndex((t=>t.key==e.key&&t.dt==e.dt&&(e.origin?e.origin==t.origin:true)));if(n==-1)g.push(e);else g.splice(n,1);if(g.length>1){const t=g[0].origin?`${g[0].origin} ${g[0].dt}`:g[0].dt;for(const e of g.slice(1)){const n=e.origin?`${e.origin} ${e.dt}`:e.dt;if(n!==t){break}}}a.property("disabled",JSON.stringify(g)===y||g.length==0)}));e.append("span").style("margin-left","3px").html(`${t.label} (n=${t.num})`)}))}))}function o(t){const e=t.term.name;return e.length<21?e:'<label title="'+e+'">'+e.substring(0,18)+"..."+"</label>"}function l(t){const n=t.values.filter((t=>t.mclassExcludeLst.length>0))[0];const s=e[n.dt];if(n.mclassLst.length==1){const t=n.mclassLst[0];return{txt:`${s}:${t}`}}return{txt:`${s}:${n.mclassLst.length} groups`}}function r(t){return t}function c(t){if(!t.values)t.values=[]}export{s as handler};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{V as t,I as e,d as n}from"./app-b369b169.js";import{addBrushes as s,addNewBrush as a}from"./tvs.density-f6128793.js";import{v as r}from"./violinRenderer-f7c96a60.js";import{n as i}from"./niceNumLabels-238aabce.js";import"./brush-aa175142.js";import"./pointer-c7475677.js";import"./nodrag-16ad4b03.js";import"./termsetting-33ea66f1.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";class o{constructor(t,e,n){this.input=t.append("input").attr("name","rangeInput").attr("aria-label","Leave blank for the allowed minimum value").style("width","250px").style("margin","3px 5px").on("change",(()=>{try{this.parseRange()}catch(t){alert(t);this.setRange()}}));this.setRange(e);this.callback=n}getInput(){return this.input}parseRange(){const t=this.input.node().value;const e=l(t);if(this.range?.min!=undefined){if(!e.startunbounded&&this.range?.min>e.start)throw"Invalid start value < minimum allowed";if(!e.stopunbounded&&this.range?.min>=e.stop)throw"Invalid stop value >= minimum allowed"}if(this.range?.max!=undefined){if(!e.stopunbounded&&this.range?.max<e.stop)throw"Invalid stop value > maximum allowed";if(!e.startunbounded&&e.start>=this.range?.max)throw"Invalid start value >= maximum allowed"}this.range=e;this.callback(e);return e}getRange(){return this.range}setRange(t){if(!t)t=this.range;else this.range=t;const e=t.start!=undefined?`${t.start} <=`:"";const n=t.stop!=undefined?`<= ${t.stop}`:"";this.input.node().value=t.value!=undefined?` x=${t.value} `:`${e} x ${n}`}}function l(t){if(!t)throw"Empty range";const e=t.replace(/\s/g,"").split("x");let n,s,a,r,i;if(e[0])p(e[0]);if(e[1])p(e[1]);if(i!=undefined)return{value:i,label:`x = ${i}`};const o=n===undefined;const l=s===undefined;if(!o&&!l&&n>s)throw"start must be lower than stop";return{start:n,stop:s,value:i,startinclusive:a,stopinclusive:r,startunbounded:o,stopunbounded:l};function p(t){const e="[+-]?\\d+(\\.\\d+)?";if(new RegExp(`^${e}<$`).test(t)||new RegExp(`^>${e}$`).test(t)){n=parseFloat(t.match(e));a=false}else if(new RegExp(`^${e}<=$`).test(t)||new RegExp(`^>=${e}$`).test(t)){n=parseFloat(t.match(e));a=true}else if(new RegExp(`^${e}>$`).test(t)||new RegExp(`^<${e}$`).test(t)){s=parseFloat(t.match(e));r=false}else if(new RegExp(`^${e}>=$`).test(t)||new RegExp(`^<=${e}$`).test(t)){s=parseFloat(t.match(e));r=true}else if(new RegExp(`^${e}=$`).test(t)||new RegExp(`^=${e}$`).test(t)){i=parseFloat(t.match(e));r=true;a=true}else throw`Could not parse expression '${t}'`}}const p={type:"numeric",term_name_gen:u,get_pill_label:d,getSelectRemovePos:c,fillMenu:f,setTvsDefaults:b};function u(t){const e=t.term.name;return e.length<26?e:'<label title="'+e+'">'+e.substring(0,24)+"..."+"</label>"}function d(t){if(t.ranges.length==1){const e=t.ranges[0];if("value"in e){if(e.label)return{txt:e.label};if(t.term.values&&t.term.values[e.value]&&t.term.values[e.value].label)return{txt:t.term.values[e.value].label};console.error(`key "${e.value}" not found in values{} of ${t.term.name}`);return{txt:e.value}}return{txt:m(e,t.term)}}return{txt:t.ranges.length+" intervals"}}function m(e,n){const s='<span style="font-family:Times;font-style:italic;font-size:1em; vertical-align:top">x</span>';if(e.startunbounded&&e.stopunbounded){const t=(t="")=>`<span style='vertical-align: middle; font-size:1.1em; line-height: 0.9em'>${t}∞</span>`;const e=`<span style='vertical-align: top; font-size: 0.9em'><</span>`;return`<span>${t("﹣")} ${e} ${s} ${e} ${t("﹢")}</span>`}const a=n.valueConversion;if(e.startunbounded)return`${s} ${e.stopinclusive?"≤":"<"} ${a?t(e.stop,a.fromUnit,a.toUnit,a.scaleFactor):e.stop}`;if(e.stopunbounded)return`${s} ${e.startinclusive?"≥":">"} ${a?t(e.start,a.fromUnit,a.toUnit,a.scaleFactor):e.start}`;let r,o;if(a){r=t(e.start,a.fromUnit,a.toUnit,a.scaleFactor);o=t(e.stop,a.fromUnit,a.toUnit,a.scaleFactor)}else{[r,o]=i([e.start,e.stop])}return`${r} \n\t\t\t${e.startinclusive?"≤":"<"}\n\t\t\t${s}\n\t\t\t${e.stopinclusive?"≤":"<"}\n\t\t\t${o}`}function c(t,e){return t-e.ranges.slice(0,t).filter((t=>t.start||t.stop)).length}async function f(t,n,i){const o=n.append("div");t.num_obj={};t.num_obj.num_div=o.append("div").attr("class","num_div").style("padding","5px").style("color","#000");t.num_obj.plot_size={width:500,height:100,xpad:10,ypad:20};if(typeof t.opts.vocabApi.getViolinPlotData=="function"){try{const e=await t.opts.vocabApi.getViolinPlotData({tw:{term:i.term,q:{mode:"continuous"}},filter:t.filter,svgw:t.num_obj.plot_size.width/window.devicePixelRatio},t.opts.getCategoriesArguments);if(e.error)throw e.error;t.num_obj.density_data=g(e)}catch(t){throw t}}else{t.num_obj.density_data={}}if(t.num_obj.density_data.error)throw t.num_obj.density_data.error;if(!t.num_obj.density_data.density||!t.num_obj.density_data.density.length){y(t,i);return}t.vr=new r(t.num_obj.num_div,t.num_obj.density_data,t.num_obj.xpad,t.num_obj.ypad);t.vr.render();t.num_obj.svg=t.vr.svg;t.num_obj.range_table=t.num_obj.num_div.append("table").style("table-layout","fixed").style("border-collapse","collapse");const l=[];for(const[t,e]of i.ranges.entries()){e.index=t;l.push(e)}t.num_obj.brush_g=t.num_obj.svg.append("g").attr("transform",`translate(${t.num_obj.plot_size.xpad}, ${t.num_obj.plot_size.ypad})`).attr("class","brush_g");const p=t.num_obj.density_data.maxvalue;const u=t.num_obj.density_data.minvalue;t.num_obj.xscale=e().domain([u,p]).range([t.num_obj.plot_size.xpad,t.num_obj.plot_size.width+t.num_obj.plot_size.xpad]);t.num_obj.ranges=l;t.num_obj.brushes=[];s(t);_(t);t.num_obj.num_div.append("div").style("width","100px").attr("class","add_range_btn sja_menuoption").style("border-radius","13px").style("padding","7px 6px").style("margin","5px").style("margin-left","20px").style("text-align","center").style("font-size",".8em").text("Add a Range").on("click",(()=>{const e=()=>_(t);a(t,l.length?"end":"center",e)}));if(!l.length){const e=()=>_(t);a(t,"center",e)}t.num_obj.brushes.forEach((t=>t.init()));await x(t,i,n)}function g(t){const e=t.plots[0]||{plotValueCount:0,biggestBin:0};const n={minvalue:t.min,maxvalue:t.max,samplecount:e.plotValueCount,densityMax:e.density.densityMax,densityMin:e.density.densityMin,density:e.density.bins,valuesImg:e.src};return n}function b(t){if(!t.ranges)t.ranges=[]}function y(t,e){const n=e.term.range||{};const s=e.ranges&&e.ranges[0]?e.ranges[0]:n;const a=t.num_obj.num_div;a.selectAll("*").remove();a.append("div").style("padding","5px").style("font-weight",600).html(e.term.name);const r={};const i=a.append("table");const l=i.append("tr");l.append("td").html("Range");r.equation_td=l.append("td");s.min="min"in e.term?e.term.min:null;s.max="max"in e.term?e.term.max:null;r.rangeInput=new o(r.equation_td,s,p);r.apply_btn=l.append("td").attr("class","sja_filter_tag_btn sjpp_apply_btn").style("border-radius","13px").style("margin","5px").style("margin-left","10px").style("text-align","center").style("font-size",".8em").style("text-transform","uppercase").text("apply").on("click",(async()=>{r.rangeInput.parseRange()}));function p(){t.dom.tip.hide();t.opts.callback({term:e.term,ranges:[r.rangeInput.getRange()]})}}function _(t){const e=t.num_obj.brushes;const s=t.num_obj.range_table.selectAll(".range_div").data(e);s.exit().each((function(){n(this).style("opacity",1).transition().duration(100).style("opacity",0).remove()}));s.enter().append("tr").attr("class","range_div").style("white-space","nowrap").style("padding","2px").transition().duration(200).each((function(e,n){h(t,this,e,n)}))}function h(t,e,a,r){if(!a.range_tr)a.range_tr=n(e);const i=a.range_tr;const l=t.num_obj.xscale;i.append("td").append("td").style("display","inline-block").style("margin-left","10px").style("padding","3px 10px").style("font-size",".9em").text("Range "+(r+1)+": ");a.equation_td=i.append("td").style("width","150px");a.rangeInput=new o(a.equation_td,a.range,p);u(t,a);if(r==0){t.num_obj.range_table.append("tr").attr("class","note_tr").append("td").attr("colspan","3").append("div").style("font-size",".8em").style("margin-left","20px").style("font-style","italic").style("color","#888").html("Option 1: Drag the rectangle to select a range. Overlapping ranges will be merged")}if(r==0){t.num_obj.range_table.append("tr").attr("class","note_tr").append("td").attr("colspan","3").append("div").style("font-size",".8em").style("margin-left","20px").style("font-style","italic").style("color","#888").html(`Option 2: Type in values to select a range. ${t.tvs.term.valueConversion?`Values are in the unit of ${t.tvs.term.valueConversion.fromUnit}`:""}.`)}async function p(e){try{a.range=e;const n=t.num_obj.density_data.minvalue;const s=t.num_obj.density_data.maxvalue;const r=e.value!=undefined?e.value:e.start!=undefined?e.start:n;const i=e.value!=undefined?e.value:e.stop!=undefined?e.stop:s;a.elem.call(a.d3brush).call(a.d3brush.move,[r,i].map(l))}catch(t){window.alert(t)}}function u(t,e){const n=e.range_tr.append("td");const a=e.range;e.apply_btn=n.append("td").attr("class","sja_filter_tag_btn sjpp_apply_btn").style("border-radius","13px").style("margin","5px").style("margin-left","10px").style("text-align","center").style("font-size",".8em").style("text-transform","uppercase").text("apply").on("click",(async()=>{t.dom.tip.hide();const n=e.rangeInput.parseRange();const s=JSON.parse(JSON.stringify(t.tvs));delete s.groupset_label;if(t.num_obj.ranges.length>1)s.ranges=v(t,n);else s.ranges[a.index]=n;try{w(s);t.opts.callback(s)}catch(t){alert(t)}}));n.append("td").attr("class","sja_filter_tag_btn sjpp_delete_btn").style("border-radius","13px").style("display",t.num_obj.ranges.length>1?"inline-block":"none").style("margin","5px").style("margin-left","10px").style("text-align","center").style("font-size",".8em").style("text-transform","uppercase").text("Delete").on("click",(async()=>{const e=JSON.parse(JSON.stringify(t.tvs));e.ranges.splice(a.index,1);t.num_obj.ranges.pop();t.num_obj.brushes.pop();t.num_obj.num_div.select(".note_tr").remove();s(t);_(t);if(e.ranges.length)t.opts.callback(e)}))}}function v(t,e){let n=JSON.parse(JSON.stringify(t.tvs.ranges));let s=false;for(const[t,a]of n.entries()){if(!a.value&&e.index!=t){if(e.start<=a.start&&e.stop>=a.stop){a.start=e.start;a.stop=e.stop;s=true}else if(e.start<=a.stop&&e.stop>=a.stop){a.stop=e.stop;s=true}else if(e.stop>=a.start&&e.start<=a.start){a.start=e.start;s=true}else if(e.start>=a.start&&e.stop<=a.stop){s=true}else if(e.startunbounded){if(e.stop>a.stop){a.stop=e.stop}delete a.start;a.startunbounded=true;s=true}else if(e.stopunbounded){if(e.start<a.start){a.start=e.start}delete a.stop;a.stopunbounded=true;s=true}}}if(s){if(e.index<=n.length-1)n.splice(e.index,1)}else{n=JSON.parse(JSON.stringify(t.tvs.ranges));if(e.index)n[e.index]=e;else n.push(e)}return n}async function x(t,e,n){if(!e.term.values){return}const s=await t.opts.vocabApi.getNumericUncomputableCategories(e.term,t.filter);const a=[];const r=s.lst?s.lst:s;for(const t of r){const n="key"in t?t.key:t.value;if(!("key"in t))t.key=n;if(!("value"in t))t.value=n;if(n in e.term.values){t.label=e.term.values[n].label;a.push(t)}}const i=a.sort(((t,e)=>e.samplecount-t.samplecount));const o=n.append("div").style("padding","5px").style("color","#000");const l=n=>{try{const s=JSON.parse(JSON.stringify(e));delete s.groupset_label;s.ranges=[...s.ranges.filter((t=>!("value"in t))),...n.map((t=>({value:i[t].value,label:i[t].label})))];t.dom.tip.hide();if(s.ranges.length==0)throw"select at least one range or category";if(JSON.parse(JSON.stringify(e)!=s)){try{w(s)}catch(t){window.alert(t);return}t.opts.callback(s)}}catch(t){window.alert(t)}};t.makeValueTable(o,e,i,l).node()}function w(t){if(!t.term)throw"tvs.term is not defined";if(!t.ranges)throw`.values[] missing for a term ${t.term.name}`;if(!Array.isArray(t.ranges))throw`.values[] is not an array for a term ${t.term.name}`;if(!t.ranges.length)throw`no categories selected for ${t.term.name}`;for(const e of t.ranges){if(e.value!=undefined){if(!e.label)throw`.label missing for special category for a term ${t.term.name}`}else{if(e.startunbounded){if(e.stopunbounded)throw`both start & stop are unbounded for a term ${t.term.name}`;if(!Number.isFinite(e.stop))throw`.stop undefined when start is unbounded for a term ${t.term.name}`}else if(e.stopunbounded){if(!Number.isFinite(e.start))throw`.start undefined when stop is unbounded for a term ${t.term.name}`}else{if(!Number.isFinite(e.start))throw`.start undefined when start is not unbounded for a term ${t.term.name}`;if(!Number.isFinite(e.stop))throw`.stop undefined when stop is not unbounded for a term ${t.term.name}`;if(e.start>=e.stop)throw`.start is not lower than stop for a term ${t.term.name}`}}}}export{g as convertViolinData,p as handler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./table-
|
|
1
|
+
import{r as e}from"./table-29d5a973.js";import"./tslib.es6-c3c2d88f.js";import"./app-b369b169.js";const t={term_name_gen:a,get_pill_label:i,fillMenu:l,getSelectRemovePos:n,getNegateText(e){return e.tvs.isnot?"NOT IN":"IN"}};async function l(e,t,l){l=JSON.parse(JSON.stringify(l));t.selectAll("*").remove();t=t.append("div");t.style("font-size","0.8em");for(const e in l.term.values){l.term.values[e].list;s(t,l,e);break}t.append("div").append("div").style("display","inline-block").style("float","right").style("padding","6px 20px").append("button").attr("class","sjpp_apply_btn sja_filter_tag_btn").text("Apply").on("click",(()=>{let t;for(const e in l.term.values){const s=l.term.values[e];if(!t){t=e;s.list=s.list.filter((e=>!("checked"in e)||e.checked))}else s.list=l.term.values[t].list}e.opts.callback(l)}))}function s(t,l,s){t.style("padding","6px").append("div").style("margin","10px").style("font-size","0.8rem").html(`<b> ${s}</b>.`);const n=l.term.values[s];const a=[];for(const e of n.list)a.push([{value:e.sample}]);const i=[{label:"Sample"}];e({rows:a,columns:i,div:t,maxWidth:"30vw",maxHeight:"40vh",noButtonCallback:(e,t)=>{n.list[e].checked=t.checked},striped:false,showHeader:false,selectAll:true})}function n(e){return e}function a(){return"Samples"}function i(e){return{txt:r(e.term)}}function r(e){let t,l;for(const s in e.values){t=e.values[s].list.length;l=s;break}return`${l} n=${t}`}export{s as addTable,t as handler};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aY as t}from"./app-
|
|
1
|
+
import{aY as t}from"./app-b369b169.js";function e(t){const e=t.toLowerCase();if(e.startsWith("https://")||e.startsWith("http://")||e.startsWith("ftp://"))return true}function r(t,e){const r=t.append("div");const p=r.append("select").style("border-radius","5px").style("padding","5px 10px").style("margin","1px 20px 1px 10px");for(const t in e){p.append("option").text(t)}return p}function p(t,e,r){const p=t.append("input").attr("type","text").attr("size",r||50).style("border-radius","5px").style("padding","5px 20px").style("margin","1px 20px 1px 10px");if(e){p.attr("placeholder",e)}return p}function n(t){const e=t.div.append("textarea").attr("rows",t.rows||"5").attr("cols",t.cols||"70").style("border-radius","5px").attr("placeholder",t.placeholder||"");return e}function a(t){const e=t.append("input").attr("type","file").property("position","relative").style("margin","1px 20px 1px 10px").style("justify-content","left");return e}function s(t){const e=t.div.append("button").html(t.text).style("color",t.color||"black").style("background-color",t.backgroundColor||"#F2F2F2").style("border",t.border||"2px solid #999").style("padding",t.padding||"5px 10px").style("cursor","pointer");return e}function o(t,e){const r=t.append("div").style("display","inline-block").style("margin","15px").style("place-items","center left").html(e);return r}function i(e,r,p){const n=s({div:e,text:"↺",backgroundColor:"white",color:"grey",padding:"0px 6px 1px 6px"});n.style("font-size","1.5em").style("display","inline-block").attr("type","reset").on("click",(async()=>{t(p).property("value","");if(r.data){r.data=typeof r.data=="string"?"":Array.isArray(r.data)?[]:{}}}));return n}export{i as a,r as b,s as c,p as d,n as e,a as f,e as i,o as m};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,P as t}from"./app-
|
|
1
|
+
import{h as e,P as t}from"./app-b369b169.js";class s{constructor(e){this.type="variantBrowser";this.dom={holder:e.holder.style("padding","20px"),header:e.header};this.rendered=false}getState(e){const t=e.plots.find((e=>e.id===this.id));return{config:t}}main(){this.config=JSON.parse(JSON.stringify(this.state.config));if(this.dom.header){this.dom.header.html(`${this.config.term.term.name}: variants in matrix samples`)}if(!this.rendered){this.dom.holder.selectAll("*").remove();const e=this.config.term.term.name;const t={holder:this.dom.holder.node(),noheader:1,nobox:1,genome:this.app.vocabApi.vocab.genome,gene:e,geneName:e,tracks:[{type:"mds3",name:e,custom_variants:this.config.custom_variants}]};runproteinpaint(t);this.rendered=true}}}const r=e(s);const i=r;function n(e,s){const r={};return t(r,e)}export{i as componentInit,n as getPlotConfig,r as variantBrowserInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{au as e,av as n,aw as l,ax as t,ay as s,az as o,z as a}from"./app-
|
|
1
|
+
import{au as e,av as n,aw as l,ax as t,ay as s,az as o,z as a}from"./app-b369b169.js";function f(e){let n=false;let l=true;let t=0;let s=0;const o={};let i;while(t<e.length){const a=e[t];if(l){if(a=="="){n=true;l=false;i=e.substring(s,t);s=t+1}else if(a==";"){o[e.substring(s,t)]=1;s=t+1}}else if(n&&a==";"){l=true;n=false;o[i]=e.substring(s,t);i=null;s=t+1}t++}const a=e.substr(s,t);if(i){o[i]=a}else{o[a]=1}return o}function r(n,l,t){if(!l){return null}for(const s of n.split(",")){const n=s.replace(/&/g,",").split("|");const o={};for(let e=0;e<l.length;e++){if(n[e]){o[l[e].name]=n[e]}}if(!o.Allele){continue}let i=null;for(const e of t.mlst||t.alleles){if(e.allele_original==o.Allele){i=e;break}}if(!i){if(o.Allele=="-"){if(t.mlst){if(t.mlst.length==1){i=t.mlst[0]}}else if(t.alleles){if(t.alleles.length==1){i=t.alleles[0]}}}else{for(const e of t.mlst||t.alleles){if(e.allele_original.substr(1)==o.Allele){i=e;break}}}if(!i){continue}}if(!i.csq){i.csq=[]}i.csq.push(o);o._gene=o.SYMBOL||o.Gene;if(o.Feature_type&&o.Feature_type=="Transcript"){o._isoform=o.Feature.split(".")[0]}else{o._isoform=o._gene}if(o.Consequence){const[n,l,t]=e(o.Consequence);o._dt=n;o._class=l;o._csqrank=t}else{o._dt=dtsnvindel;o._class=mclassnonstandard}if(o.HGVSp){o._mname=decodeURIComponent(o.HGVSp.substr(o.HGVSp.indexOf(":")+1))}else if(o.Protein_position&&o.Amino_acids){o._mname=decodeURIComponent(o.Protein_position+o.Amino_acids)}else if(o.HGVSc){o._mname=o.HGVSc.substr(o.HGVSc.indexOf(":")+1)}else if(o.Existing_variation){o._name=o.Existing_variation}else;}return true}function u(n,l,t){if(!l){return null}for(const s of n.split(",")){const n=s.replace(/&/g,",").split("|");const o={};for(let e=0;e<l.length;e++){if(n[e]){o[l[e].name]=n[e]}}if(!o.Allele){continue}let i=null;for(const e of t.alleles){if(e.allele==o.Allele){i=e;break}}if(!i){continue}if(!i.ann){i.ann=[]}i.ann.push(o);o._gene=o.Gene_Name;if(o.Feature_Type&&o.Feature_Type=="transcript"&&o.Feature_ID){o._isoform=o.Feature_ID.split(".")[0]}if(o.Annotation){const[n,l,t]=e(o.Annotation);o._dt=n;o._class=l;o._csqrank=t}else{o._dt=dtsnvindel;o._class=mclassnonstandard}if(o["HGVS.p"]){o._mname=o["HGVS.p"]}else if(o["HGVS.c"]){o._mname=o["HGVS.c"]}else;}return true}function c(e,i){if(e.length==1&&i.length==1){if(i=="."){return n}return l}if(e.length==i.length)return t;if(e.length<i.length)return s;if(e.length>i.length)return n;return o}const p=new RegExp(/<(.+)>/);const m={};for(const e in a){m[a[e].label.toUpperCase()]=e}function h(e){let n=[],l=[],t={},s=false,o={},i=false;for(const a of e){if(!a.startsWith("#")){continue}if(a.startsWith("#C")){n=a.split("\t").slice(9);continue}if(a.startsWith("##INFO")){const e=_(a.substring(8,a.length-1),t);if(e){l.push("INFO error: "+e)}else{s=true}continue}if(a.startsWith("##FORMAT")){const e=_(a.substring(10,a.length-1),o);if(e){l.push("FORMAT error: "+e)}else{i=true}}}const a=[];for(const e of n){const n={name:e};a.push(n)}if(t.CSQ){const e=t.CSQ.Description.split(" Format: ");if(e[1]){const n=e[1].split("|");if(n.length>1){t.CSQ.csqheader=[];for(const e of n){const n={name:e};t.CSQ.csqheader.push(n)}}else{l.push("unknown format for CSQ header: "+t.CSQ.Description)}}else{l.push("unknown format for CSQ header: "+t.CSQ.Description)}}if(t.ANN){const e=t.ANN.Description.split("'");if(e[1]){const n=e[1].split(" | ");if(n.length){t.ANN.annheader=[];for(const e of n){const n={name:e};t.ANN.annheader.push(n)}}else{l.push('no " | " joined annotation fields for ANN (snpEff annotation): '+t.ANN.Description)}}else{l.push("no single-quote enclosed annotation fields for ANN (snpEff annotation): "+t.ANN.Description)}}return[s?t:null,i?o:null,a,l.length?l:null]}function g(e,n){const l=e.split("\t");if(l.length<8){return["line has less than 8 fields",null,null]}const t=Number.parseInt(l[2-1]);if(!Number.isInteger(t)){return["invalid value for genomic position",null,null]}const s=l[4-1];const o={vcf_ID:l[3-1],chr:(n.nochr?"chr":"")+l[1-1],pos:t-1,ref:s,altstr:l[5-1],alleles:[{allele:s,sampledata:[]}],info:{},name:l[3-1]=="."?null:l[3-1]};const i=[];for(const e of l[5-1].split(",")){const n={ref:o.ref,allele:e,allele_original:e,sampledata:[],_m:o,info:{}};o.alleles.push(n);if(e[0]=="<"){const l=e.match(p);if(!l){i.push(e);continue}n.type=l[1];n.allele=l[1];n.issymbolicallele=true}else{const[e,l,t]=d(o.pos,o.ref,n.allele);n.pos=e;n.ref=l;n.allele=t}}if(l[9-1]&&l[10-1]){b(l,o,n)}o.alleles.shift();const a=l[8-1]=="."?[]:f(l[8-1]);let r=[];if(n.info){r=N(a,o,n)}else{o.info=a}const u=[];for(const e of o.alleles){const n={};for(const e in o){if(e!="alleles"){n[e]=o[e]}}for(const l in e){if(l=="allele"){n.alt=e[l]}else if(l=="info"){n.altinfo=e[l]}else{n[l]=e[l]}}if(!n.issymbolicallele&&n.alt!="NON_REF"){n.type=c(n.ref,n.alt)}u.push(n)}return[r.length?"unknown info keys: "+r.join(","):null,u,i.length>0?i:null]}function d(e,n,l){while(n.length>1&&l.length>1&&n[n.length-1]==l[l.length-1]){n=n.substr(0,n.length-1);l=l.substr(0,l.length-1)}while(n.length>1&&l.length>1&&n[0]==l[0]){n=n.substr(1);l=l.substr(1);e++}return[e,n,l]}function b(e,n,l){const t=e[9-1].split(":");for(let s=9;s<e.length;s++){const o=e[s].split(":");{let e=true;for(const n of o){if(n!="."){e=false;break}}if(e){continue}}const i=s-9;for(let e=1;e<n.alleles.length;e++){const t={};if(l.samples&&l.samples[i]){for(const e in l.samples[i]){t[e]=l.samples[i][e]}}else{t.name="missing_samplename_from_vcf_header"}n.alleles[e].sampledata.push({sampleobj:t})}for(let e=0;e<t.length;e++){const s=t[e];const i=o[e];if(i=="."){continue}if(s=="GT"){const e=i.indexOf("/")!=-1?"/":"|";let l=0;let t=false;const s=[];for(const o of i.split(e)){if(o=="."){t=true;continue}const e=Number.parseInt(o);if(Number.isNaN(e)){t=true;continue}l+=e;const i=n.alleles[e];if(i){s.push(i.allele)}}let o=false;if(!t){o=l==0}const a=s.join(e);for(let e=1;e<n.alleles.length;e++){const l=n.alleles[e].sampledata[n.alleles[e].sampledata.length-1];l.GT=i;l.genotype=a;if(o){l.gtallref=true}l.__gtalleles=s}continue}const a=l.format?l.format[s]:null;if(!a){for(let e=1;e<n.alleles.length;e++){n.alleles[e].sampledata[n.alleles[e].sampledata.length-1][s]=i}continue}const f=a.Type=="Integer";const r=a.Type=="Float";if(a.Number&&a.Number=="R"||s=="AD"){const e=i.split(",").map((e=>{if(f)return Number.parseInt(e);if(r)return Number.parseFloat(e);return e}));for(let l=1;l<n.alleles.length;l++){if(e[l]!=undefined){const t=n.alleles[l];const o=t.sampledata[t.sampledata.length-1];o[s]={};o[s][t.ref]=e[0];o[s][t.allele]=e[l]}}continue}if(a.Number&&a.Number=="A"){const e=i.split(",").map((e=>{if(f)return Number.parseInt(e);if(r)return Number.parseFloat(e);return e}));for(let l=1;l<n.alleles.length;l++){if(e[l-1]!=undefined){const t=n.alleles[l];const o=t.sampledata[t.sampledata.length-1];o[s]={};o[s][t.allele]=e[l-1]}}continue}for(let e=1;e<n.alleles.length;e++){n.alleles[e].sampledata[n.alleles[e].sampledata.length-1][s]=i}}}for(const e of n.alleles){for(const n of e.sampledata){if(n.AD){n.allele2readcount={};for(const e in n.AD){n.allele2readcount[e]=n.AD[e]}}}}}function _(e,n){const l={},t=[];let s=0,o=false,a=null;for(let n=0;n<e.length;n++){if(e[n]=='"'){n++;const s=n;while(e[n]!='"'){n++}if(a){l[a]=e.substring(s,n);a=null}else{t.push("k undefined before double quotes")}o=true;continue}if(e[n]=="="){a=e.substring(s,n);s=n+1;continue}if(e[n]==","){if(o){o=false}else{if(a){l[a]=e.substring(s,n);a=null}else{t.push("k undefined")}}s=n+1;continue}}if(a){l[a]=e.substring(s,i)}if(l.ID){n[l.ID]=l}else{return"no ID"}if(t.length)return t.join("\n")}function N(e,n,l){const t=[];for(const s in e){if(l.info[s]==undefined){t.push(s);continue}const o=e[s];if(s=="CSQ"){const e=r(o,l.info.CSQ.csqheader,n);if(!e){n.info[s]=o}continue}if(s=="ANN"){const e=u(o,l.info.ANN.annheader,n);if(!e){n.info[s]=o}continue}if(l.info[s].Type=="Flag"){n.info[s]=s;continue}const i=l.info[s].Number;const a=l.info[s].Type=="Integer";const f=l.info[s].Type=="Float";if(i=="0"){n.info[s]=s;continue}if(i=="A"){const e=o.split(",");for(let l=0;l<e.length;l++){if(n.alleles[l]){n.alleles[l].info[s]=a?Number.parseInt(e[l]):f?Number.parseFloat(e[l]):e[l]}}continue}if(i=="1"){n.info[s]=a?Number.parseInt(o):f?Number.parseFloat(o):o;continue}if(!o.split){continue}const c=o.split(",");if(a){n.info[s]=c.map(Number.parseInt)}else if(f){n.info[s]=c.map(Number.parseFloat)}else{n.info[s]=c}}return t}export{g as a,h as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as t,P as i,Q as e}from"./app-b369b169.js";import{term0_term2_defaultQ as s,controlsInit as o}from"./controls-287e6efa.js";import n from"./violin.renderer-ce024265.js";import{h as a}from"./html.legend-a3f4ebfe.js";import{f as l,i as r}from"./termsetting-33ea66f1.js";import{setInteractivity as p}from"./violin.interactivity-4da6d7a9.js";import"./controls.btns-79b805dd.js";import"./controls.config-28d6d6a8.js";import"./brush-aa175142.js";import"./pointer-c7475677.js";import"./nodrag-16ad4b03.js";import"./table-29d5a973.js";import"./tslib.es6-c3c2d88f.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";import"./log-99af3443.js";import"path";import"./FilterRxComp-701a1480.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";import"./niceNumLabels-238aabce.js";class d{constructor(t){this.type="violin"}async init(t){const i=this.opts.holder.append("div").attr("class","sjpp-plot-controls").style("display","inline-block");t.plots.find((t=>t.id===this.id));const e=this.opts.holder.append("div").style("display","inline-block").style("padding",this.opts.mode!="minimal"?"5px":"0px").style("padding-left",this.opts.mode!="minimal"?"45px":"0px").attr("id","sjpp-vp-holder");this.dom={header:this.opts.header,loadingDiv:this.opts.holder.append("div").style("position","absolute").style("display",this.opts.mode!="minimal"?"inline-block":"none").style("padding-left","10px").style("padding-top","20px").text("Loading ..."),controls:i,violinDiv:e.append("div").attr("class","sjpp-vp-violinDiv").style("padding-left",this.opts.mode!="minimal"?"10px":"0px"),legendDiv:e.append("div").classed("sjpp-vp-legend",true).style("padding-left","5px"),tableHolder:this.opts.holder.append("div").classed("sjpp-tableHolder",true).style("display","inline-block").style("padding","10px").style("vertical-align","top").style("margin-left","0px").style("margin-top","30px").style("margin-right","30px")};n(this);p(this);if(this.opts.mode!="minimal"){this.legendRenderer=a(this.dom.legendDiv,{settings:{legendOrientation:"vertical"},handlers:{}})}await this.setControls()}async setControls(){this.components={};if(this.opts.mode=="minimal")return;const t=[{type:"term",configKey:"term",chartType:"violin",usecase:{target:"violin",detail:"term"},vocabApi:this.app.vocabApi,menuOptions:"edit"},{type:"term",configKey:"term2",chartType:"violin",usecase:{target:"violin",detail:"term2"},title:"Overlay data",label:"Overlay",vocabApi:this.app.vocabApi,numericEditMenuVersion:this.opts.numericEditMenuVersion,defaultQ4fillTW:s},{label:"Orientation",title:"Orientation of the chart",type:"radio",chartType:"violin",settingsKey:"orientation",options:[{label:"Vertical",value:"vertical"},{label:"Horizontal",value:"horizontal"}]},{label:"Method",title:`If selected uses the KDE method, otherwise uses a histogram`,type:"radio",chartType:"violin",settingsKey:"method",options:[{label:"KDE",value:0},{label:"Histogram",value:1}]},{label:"Data symbol",title:"Symbol type",type:"radio",chartType:"violin",settingsKey:"datasymbol",options:[{label:"Ticks",value:"rug"},{label:"Circles",value:"bean"},{label:"Off",value:"none"}]},{label:"Scale",title:"Axis scale",type:"radio",chartType:"violin",settingsKey:"unit",options:[{label:"Linear",value:"abs"},{label:"Log",value:"log"}]},{label:"Symbol size",type:"number",chartType:"violin",settingsKey:"radius",step:1,max:15,min:3},{label:"Stroke width",title:"Size of Symbol stroke",type:"number",chartType:"violin",settingsKey:"strokeWidth",step:.1,max:2,min:.1},{label:"Bins",type:"number",chartType:"violin",settingsKey:"ticks",title:"Number of bins used to build the plot",min:1,max:50},{label:"Plot length",title:"Length of the plot",type:"number",chartType:"violin",settingsKey:"svgw",step:10,max:1e3,min:500,debounceInterval:1e3},{label:"Plot thickness",title:"Thickness of plots, can be between 40 and 200",type:"number",chartType:"violin",settingsKey:"plotThickness",step:10,max:500,min:40,debounceInterval:1e3},{label:"Median length",title:"Length of median",type:"number",chartType:"violin",settingsKey:"medianLength",step:1,max:15,min:3,debounceInterval:1e3},{label:"Median thickness",title:"Width of median",type:"number",chartType:"violin",settingsKey:"medianThickness",step:1,max:10,min:3,debounceInterval:100},{label:"Default color",type:"color",chartType:"violin",settingsKey:"defaultColor"}];this.components.controls=await o({app:this.app,id:this.id,holder:this.dom.controls,inputs:t});this.components.controls.on("downloadClick.violin",this.download)}reactsTo(t){if(t.type.startsWith("plot_")){return t.id===this.id&&(!t.config.childType||t.config.childType==this.type)}return true}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{termfilter:t.termfilter,config:i,displaySampleIds:t.termdbConfig.displaySampleIds,hasVerifiedToken:this.app.vocabApi.hasVerifiedToken()}}async main(){this.config=structuredClone(this.state.config);this.settings=this.config.settings.violin;if(this.config.chartType!=this.type&&this.config.childType!=this.type)return;if(this.dom.header)this.dom.header.html(this.config.term.term.name+` <span style="opacity:.6;font-size:1em;margin-left:10px;">Violin Plot</span>`);await this.getDescrStats();const t=this.validateArgs();this.data=await this.app.vocabApi.getViolinPlotData(t);if(this.settings.plotThickness==undefined){const t=this.data.plots.length==1?200:150;this.settings.plotThickness=Math.min(1400/this.data.plots.length,t)}if(this.data.error)throw this.data.error;this.toggleLoadingDiv(this.opts.mode=="minimal"?"none":"");setTimeout((()=>{this.render();this.renderPvalueTable()}),this.opts.mode=="minimal"?0:500);this.toggleLoadingDiv("none")}async getDescrStats(){const t=[this.config.term];if(this.config.term2)t.push(this.config.term2);if(this.config.term0)t.push(this.config.term0);for(const i of t){if(r(i.term)){const t=await this.app.vocabApi.getDescrStats(i,this.state.termfilter,this.config.settings?.violin?.unit=="log");if(t.error)throw t.error;i.q.descrStats=t.values}}}validateArgs(){const{term:t,term2:i,settings:e}=this.config;const s=this.settings;const o={filter:this.state.termfilter.filter,filter0:this.state.termfilter.filter0,svgw:s.svgw/window.devicePixelRatio,orientation:s.orientation,devicePixelRatio:window.devicePixelRatio,datasymbol:s.datasymbol,radius:s.radius,strokeWidth:s.strokeWidth,axisHeight:s.axisHeight,rightMargin:s.rightMargin,unit:s.unit,isKDE:s.method==0,ticks:s.ticks};if(this.opts.mode=="minimal"){o.tw=t;if(i)throw"only a single term allowed for minimal plot";if(t.q.mode=="spline"){s.lines=t.q.knots.map((t=>Number(t.value)))}else{s.lines=[]}if(t.q.scale){o.scale=t.q.scale}}else if(r(t.term)&&t.q.mode==="continuous"){o.tw=t;if(i)o.divideTw=i}else if(r(i?.term)&&i.q.mode==="continuous"){o.tw=i;o.divideTw=t}else{throw"both term1 and term2 are not numeric/continuous"}return o}}const m=t(d);const h=m;function c(t,i={}){const s={orientation:"horizontal",rowlabelw:250,brushRange:null,svgw:500,datasymbol:"rug",radius:3,strokeWidth:.2,axisHeight:60,rightMargin:50,lines:[],unit:"abs",plotThickness:undefined,medianLength:7,medianThickness:3,ticks:20,defaultColor:e,method:0};return Object.assign(s,i)}async function g(t,e){if(!t.term)throw"violin getPlotConfig: opts.term{} missing";try{await l(t.term,e.vocabApi);if(t.term2)await l(t.term2,e.vocabApi);if(t.term0)await l(t.term0,e.vocabApi)}catch(t){throw`${t} [violin getPlotConfig()]`}const s={id:t.term.term.id,settings:{controls:{term2:null,term0:null},violin:c()}};return i(s,t)}export{h as componentInit,c as getDefaultViolinSettings,g as getPlotConfig,m as violinInit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t}from"./table-29d5a973.js";import{c as e}from"./termsetting-33ea66f1.js";import{a as s,c as i}from"./FilterRxComp-701a1480.js";import{U as n,r as a}from"./app-b369b169.js";import{n as l}from"./niceNumLabels-238aabce.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";function o(s){s.download=()=>{if(!s.state)return;s.dom.violinDiv.selectAll(".sjpp-violin-plot").each((function(){n(this,"violin",{apply_dom_styles:true})}))};s.displayLabelClickMenu=function(t,e,i,n){if(!e||s.data.plots.length===1){return}const a=t.q.mode==="continuous"?"term2":"term";const l=[{label:`Add filter: ${i.label.split(",")[0]}`,callback:r(t,e,s,i,a,false)},{label:`Hide: ${i.label}`,callback:()=>{const t=s.config[a];const e=true;s.app.dispatch({type:"plot_edit",id:s.id,config:{[a]:{isAtomic:true,term:t.term,q:d(i,t,e)}}})}}];if(s.state.displaySampleIds&&s.state.hasVerifiedToken){l.push({label:`List samples`,callback:async()=>{const[a,l]=[s.data.min,s.data.max*2];await s.listSamples(n,t,e,i,a,l)}})}s.displayMenu(n,l,i)};s.displayBrushMenu=function(t,e,s,i,n,a,l){const[o,d]=l?[a.invert(n[0]),a.invert(n[1])]:[a.invert(n[1]),a.invert(n[0])];const p=[{label:`Add filter`,callback:r(t,e,s,i,o,d,true)}];if(s.state.displaySampleIds&&s.state.hasVerifiedToken){p.push({label:`List samples`,callback:async()=>s.listSamples(event,t,e,i,o,d)})}s.displayMenu(event,p,i,o,d)};s.displayMenu=function(t,e,i,n,a){s.app.tip.d.selectAll("*").remove();s.app.tip.d.classed("sjpp-violin-brush-tip",true);const o=n!=null&&a!=null;if(o){const[t,e]=s.config.term.term.type=="integer"?[Math.round(n),Math.round(a)]:l([n,a]);s.app.tip.d.append("div").text(`From ${t} to ${e}`)}s.app.tip.d.append("div").selectAll("div").data(e).enter().append("div").attr("class","sja_menuoption").text((t=>t.label)).on("click",((t,e)=>{s.app.tip.hide();e.callback();s.dom.tableHolder.style("display","none")}));s.app.tip.show(t.clientX,t.clientY)};s.addEditColorToMenu=function(t){const e=a(t.color).formatHex();const i=s.app.tip.d.append("div").attr("class","sja_sharp_border").style("padding","0px 10px").text("Color:").append("input").attr("type","color").attr("value",e).on("change",(()=>{const e=i.node().value;const n=s.config.term2;let a;for(const s in n.term.values)if(n.term.values[s].label==t.label){n.term.values[s].color=e;a=s}if(!a)n.term.values={[t.label]:{label:t.label,color:e}};s.app.dispatch({type:"plot_edit",id:s.id,config:{term2:{isAtomic:true,term:s.config.term2.term,q:d(t,s.config.term2,false)}}});s.app.tip.hide()}))};s.listSamples=async function(t,e,i,n,a,l){const o=s.getTvsLst(e,i,n,a,l);const r=e.q?.mode==="continuous"?e:i;const d={type:"tvslst",join:"and",lst:[s.state.termfilter.filter,o],in:true};const p={terms:[r],filter:d};const c=await s.app.vocabApi.getAnnotatedSampleData(p);s.displaySampleIds(t,r,c)};s.displaySampleIds=function(i,n,a){s.app.tip.clear();if(!a?.samples)return;const l=[];for(const[t,s]of Object.entries(a.samples))l.push([{value:a.refs.bySampleId[t].label},{value:e(s[n.$id].value)}]);const o=s.app.tip.d.append("div");const r=[{label:"Sample"},{label:"Value"}];const d=l;t({rows:d,columns:r,div:o,maxWidth:"30vw",maxHeight:"25vh",resize:true,showLines:true});s.app.tip.show(i.clientX,i.clientY)};s.labelHideLegendClicking=function(t,e){s.dom.legendDiv.selectAll(".sjpp-htmlLegend").on("click",(i=>{i.stopPropagation();const n=i.target.__data__;const a=t?.term.type==="condition"||t?.term.type==="samplelst"||t?.term.type==="categorical"||(t?.term.type==="float"||t?.term.type==="integer")&&s.config.term?.q.mode==="continuous"?"term2":"term";const l=s.config[a];if(t){for(const t of Object.keys(l?.q?.hiddenValues)){if(n.text===t){delete l.q.hiddenValues[t]}}const t=false;s.app.dispatch({type:"plot_edit",id:s.id,config:{[a]:{isAtomic:true,term:l.term,q:d(e,l,t)}}})}})).on("mouseover",(t=>{const e=t.target.__data__;if(e===undefined)return;if(e.isHidden===true){s.dom.tip.d.html("Click to unhide plot");s.dom.tip.show(t.clientX,t.clientY)}})).on("mouseout",(function(){s.dom.tip.hide()}))};s.createTvsLstRanges=function(t,e,s,i,n){c(t,e);e.lst[n].tvs.ranges=[{start:t.term.type=="integer"?Math.round(s):s,stop:t.term.type=="integer"?Math.round(i):i,startinclusive:true,stopinclusive:true,startunbounded:false,stopunbounded:false}]};s.getTvsLst=function(t,e,i,n,a){const l={type:"tvslst",in:true,join:"and",lst:[]};if(e){if(t.term.type==="categorical"||t.term.type==="condition"){p(t,i,l,0);s.createTvsLstRanges(e,l,n,a,1)}else if(e.q?.mode==="continuous"||(e.term?.type==="float"||e.term?.type==="integer")&&i.divideTwBins!=null){c(e,l);l.lst[0].tvs.ranges=[{start:i.divideTwBins?.start||null,stop:i.divideTwBins?.stop||null,startinclusive:i.divideTwBins?.startinclusive||true,stopinclusive:i.divideTwBins?.stopinclusive||false,startunbounded:i.divideTwBins?.startunbounded?i.divideTwBins?.startunbounded:null,stopunbounded:i.divideTwBins?.stopunbounded?i.divideTwBins?.stopunbounded:null}];s.createTvsLstRanges(t,l,n,a,1)}else{p(e,i,l,0);s.createTvsLstRanges(t,l,n,a,1)}}else s.createTvsLstRanges(t,l,n,a,0);return l}}function r(t,e,n,a,l,o,r){const d={type:"tvslst",in:true,join:"and",lst:[]};if(e){if(t.term.type==="categorical"||t.term.type==="condition"){p(t,a,d,0);if(r){n.createTvsLstRanges(e,d,l,o,1)}}else if(e.q?.mode==="continuous"||(e.term?.type==="float"||e.term?.type==="integer")&&a.divideTwBins!=null){c(e,d);d.lst[0].tvs.ranges=[{start:a.divideTwBins?.start||null,stop:a.divideTwBins?.stop||null,startinclusive:a.divideTwBins?.startinclusive||true,stopinclusive:a.divideTwBins?.stopinclusive||false,startunbounded:a.divideTwBins?.startunbounded?a.divideTwBins?.startunbounded:null,stopunbounded:a.divideTwBins?.stopunbounded?a.divideTwBins?.stopunbounded:null}];if(r){n.createTvsLstRanges(t,d,l,o,1)}}else{p(e,a,d,0);if(r){n.createTvsLstRanges(t,d,l,o,1)}}}else{if(r){n.createTvsLstRanges(t,d,l,o,0)}}return()=>{const t=s(n.state.termfilter.filter,"filterUiRoot");const e=i([t,d]);e.tag="filterUiRoot";n.app.dispatch({type:"filter_replace",filter:e})}}function d(t,e,s=false){const i=t.label;const n=e?.term?.values?e?.term?.values?.[i]?.label:i;const a=!n?i:n;const l=e.q;if(!l.hiddenValues)l.hiddenValues={};if(s)l.hiddenValues[a]=1;else delete l.hiddenValues[a];return l}function p(t,e,s,i){c(t,s);s.lst[i].tvs.values=[{key:e.seriesId,label:e.label}];if(t.term.type==="condition"){s.lst[i].tvs.bar_by_grade=t.q.bar_by_grade;s.lst[i].tvs.value_by_max_grade=t.q.value_by_max_grade}if(t.term.type==="samplelst"){s.lst[i].tvs.values=t.term.values[e.label].list}}function c(t,e){e.lst.push({type:"tvs",tvs:{term:t.term}})}export{o as setInteractivity};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as t,C as e,W as n,I as a,r as s}from"./app-a8c4854a.js";import{b as i,a as o}from"./brush-c386fe3d.js";import{r as l}from"./table-79e3e776.js";import{c as r,b as c}from"./axis-747c801e.js";import{l as d}from"./line-264f8f9e.js";import{c as p}from"./basis-3870f5ba.js";import{l as m}from"./log-cf45fcf2.js";import"./pointer-c7475677.js";import"./nodrag-2c046d31.js";import"./tslib.es6-1f85f553.js";import"./constant-426a1483.js";function u(m){m.render=function(){const n=m.config.settings.violin;const a=n.orientation==="horizontal";const s=n.datasymbol==="bean"?n.radius*window.devicePixelRatio:n.radius;const i=m.config.term;const o=m.config.term2;const l=new t({padding:"5px"});m.dom.tip=l;const r=o?.term.type==="condition"||o?.term.type==="samplelst"||o?.term.type==="categorical"||(o?.term.type==="float"||o?.term.type==="integer")&&i.q.mode==="continuous"?o:i;if(r&&r.term?.values){for(const[t,e]of Object.entries(r.term.values)){if(e.uncomputable){if(r.q.hiddenValues[t]){r.q.hiddenValues[e.label]=1;delete r.q.hiddenValues[t]}}}}m.data.plots=m.data.plots.filter((t=>!r?.q?.hiddenValues?.[t.label||t.seriesId]));this.k2c=e(m.data.plots.length);if(m.legendRenderer)m.legendRenderer(f(r,m));if(m.data.plots.length===0){m.dom.violinDiv.html(` <span style="opacity:.6;font-size:1em;margin-left:90px;">No data to render Violin Plot</span>`);m.dom.legendDiv.selectAll("*").remove();m.dom.tableHolder.selectAll(".sjpp-tableHolder")._parents[0].remove();return}else m.dom.violinDiv.select("*").remove();m.dom.violinDiv.select(".sjpp-violin-plot").remove();const c=h(i,m,a,n);v(i,o,n,a,c,m);for(const[t,e]of m.data.plots.entries()){const r=x(c,e,t,a);if(m.opts.mode!="minimal")b(i,o,r,e,a,n,l);j(e,m,a,c,t,r,s);if(m.opts.mode!="minimal")q(i,o,r,n,e,a,c);m.labelHideLegendClicking(o,e)}};m.displaySummaryStats=function(t,e,n){let a=[];if(t.summaryStats){const e=t.summaryStats.values;a=[`<tr><td colspan=2 style='padding:3px; text-align:center'>${t.label.split(",")[0]}</td></tr>`,...e.map((({id:t,label:e,value:n})=>`<tr>\n\t\t\t\t\t<td style='padding:3px; color:#aaa'>${e}</td>\n\t\t\t\t\t<td style='padding:3px; text-align:center'>${n}</td>\n\t\t\t\t</tr>`))]}const s=`<table class='sja_simpletable'>${a.join("")}</table>`;n.show(e.clientX,e.clientY).d.html(s)};m.getPlotThickness=function(){return m.settings.plotThickness||150};m.renderPvalueTable=function(){m.dom.tableHolder.selectAll("*").remove();if(m.data.plots.length===1)return;const t=m.config.term;const e=m.config.term2;if(!e){m.dom.tableHolder.style("display","none");return}const n=e?.term.type==="condition"||e?.term.type==="samplelst"||e?.term.type==="categorical"||(e?.term.type==="float"||e?.term.type==="integer")&&t.q.mode==="continuous"?e:t;m.data.pvalues=m.data.pvalues.filter((t=>{for(let e=0;e<t.length;e++){if(typeof t[e].value==="string"){if(n.q?.hiddenValues&&t[e].value in n.q.hiddenValues){return false}}}return true}));m.dom.tableHolder.style("display","inline-block").style("vertical-align","top").append("div").style("font-weight","bold").text(m.data.pvalues.length>0?"Group comparisons (Wilcoxon's rank sum test)":"");const a=[{label:"Group 1"},{label:"Group 2"},{label:"P-value"}];const s=m.data.pvalues;const i=this.settings.orientation==="horizontal";const o=i?m.getPlotThickness()*this.data.plots.length:this.settings.svgw+this.config.term.term.name.length;l({rows:s,columns:a,div:m.dom.tableHolder,showLines:false,maxWidth:"27vw",maxHeight:`${o}px`,resize:true})};function u(t,e){let n=0;for(const a of t.data.plots){const t=e.append("text").text(`${a.label}, n=${a.plotValueCount}`);n=Math.max(n,t.node().getBBox().width);t.remove()}return n}function y(t,e,n,a){let s;if(a){s=n?{left:5,top:e.axisHeight,right:e.rightMargin,bottom:10}:{left:e.axisHeight,top:30,right:e.rightMargin,bottom:10}}else{s=n?{left:t+5,top:e.axisHeight,right:e.rightMargin,bottom:10}:{left:e.axisHeight,top:50,right:e.rightMargin,bottom:t}}return s}function h(t,e,n,a){const s=e.dom.violinDiv.append("div").style("display","inline-block").style("padding",e.opts.mode!="minimal"?"5px":"0px").style("overflow","auto").style("scrollbar-width","none");const i=s.append("svg");const o=u(e,i);const l=y(o,a,n,e.opts.mode=="minimal");const r=e.getPlotThickness();i.attr("width",l.left+l.top+(n?a.svgw:r*e.data.plots.length+t.term.name.length)).attr("height",l.bottom+l.top+(n?r*e.data.plots.length:a.svgw+t.term.name.length)).classed("sjpp-violin-plot",true).attr("data-testid","sja_violin_plot");const c=i.append("g").attr("transform","translate("+l.left+","+l.top+")");return{margin:l,svgG:c,axisScale:g(e,a,n),violinSvg:i}}function v(t,e,a,s,i,o){const l=i.svgG.append("g").style("font-size","12").classed(a.unit==="log"?"sjpp-logscale":"sjpp-linearscale",true);const d=a.unit==="log"?i.axisScale.ticks(15):i.axisScale.ticks();l.call((s?r:c)().scale(i.axisScale).tickFormat(((t,e)=>{if(a.unit==="log"){if(o.app.vocabApi.termdbConfig.logscaleBase2){if(d.length>10&&e%2!==0)return"";if(t<.1)return n(".3f")(t);return n(".1f")(t)}else{if(d.length>=12&&e%5!==0)return"";if(t<50)return t;return n(".1s")(t)}}if(d.length>=12&&e%2!==0)return"";return t})).tickValues(d));if(o.opts.mode!="minimal"){i.svgG.append("text").text(e?.q?.mode==="continuous"?e.term.name:t.term.name).classed("sjpp-numeric-term-label",true).style("font-weight",600).attr("text-anchor","middle").attr("x",s?a.svgw/2:-a.svgw/2).attr("y",s?-30:-45).style("opacity",0).attr("transform",s?null:"rotate(-90)").style("opacity",1)}}function x(t,e,n,a){const s=t.svgG.append("g").datum(e).attr("transform",a?"translate(0,"+m.getPlotThickness()*(n+.5)+")":"translate("+m.getPlotThickness()*(n+.5)+",0)").attr("class","sjpp-violinG");return s}function b(t,e,n,a,s,i,o){n.append("text").classed("sjpp-axislabel",true).text(`${a.label}, n=${a.plotValueCount}`).style("cursor","pointer").on("click",(function(n){if(!n)return;m.displayLabelClickMenu(t,e,a,n)})).on("mouseover",(function(t,e){t.stopPropagation();if(!t)return;m.displaySummaryStats(e,t,o)})).on("mouseout",(function(){o.hide()})).style("opacity",0).style("opacity",1).attr("x",s?-5:0-i.svgw-5).attr("y",0).attr("text-anchor","end").attr("dominant-baseline","central").attr("transform",s?null:"rotate(-90)")}function j(t,e,n,s,i,o,l){const r=e.getPlotThickness();const c=a().domain([t.density.densityMax,t.density.densityMin]).range([r*.45,0]);let m;if(n){m=d().curve(p).x((t=>s.axisScale(t.x0))).y((t=>c(t.density)))}else{m=d().curve(p).x((t=>c(t.density))).y((t=>s.axisScale(t.x0)))}const u=t.label.split(",")[0];const g=e.config.term.q.mode=="discrete"?e.config.term:e.config.term2;const f=g?.term.values?Object.values(g.term.values).find((t=>t.label==u)):null;const y=f?.color?f.color:e.config.settings.violin.defaultColor;if(!t.color)t.color=y;if(f&&!f.color)f.color=y;k(o,t,m);k(o,t,n?m.y((t=>-c(t.density))):m.x((t=>-c(t.density))));S(e,o,t,n,l);if(e.opts.mode!="minimal")w(o,n,t,s,e);$(o,n,e.config.settings.violin.lines,s);if(e.state.config.value){const t=s.axisScale(e.state.config.value);const a=e.config.settings.violin;o.append("line").style("stroke","black").style("stroke-width",a.medianThickness).attr("x1",200).attr("x2",200).attr("x1",n?t:-a.medianLength).attr("x2",n?t:a.medianLength).attr("y1",n?-a.medianLength:t).attr("y2",n?a.medianLength:t)}}function k(t,e,n){if(e.density.densityMax==0)return;t.append("path").attr("class","sjpp-vp-path").style("fill",m.opts.mode==="minimal"?s(221,221,221):e.color).style("opacity",0).attr("stroke",s(e.color).darker()).attr("stroke-width",1).attr("stroke-linejoin","round").style("opacity","0.8").attr("d",n(e.density.bins))}function S(t,e,n,a,s){e.append("image").style("opacity",0).classed(t.config.settings.violin.datasymbol==="rug"?"sjpp-rug-img":"sjpp-beans-img",true).style("opacity",1).attr("xlink:href",n.src).attr("transform",a?`translate(0, -${s})`:`translate(-${s}, 0)`)}function w(t,e,n,a,s){const i=s.config.settings.violin;if(n.plotValueCount>=2){t.append("line").style("opacity",1).attr("class","sjpp-median-line").style("stroke-width",i.medianThickness).style("stroke","red").style("opacity","1").attr("y1",e?-i.medianLength:a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value)).attr("y2",e?i.medianLength:a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value)).attr("x1",e?a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value):-i.medianLength).attr("x2",e?a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value):i.medianLength)}else return}function $(t,e,n,a){const s=m.settings.plotThickness||150;t.selectAll(".sjpp-vp-line").remove();if(!n?.length)return;for(const i of n){t.append("line").attr("class","sjpp-vp-line").style("stroke",m.opts.mode=="minimal"?"red":"black").attr("y1",e?-(s/2):a.axisScale(i)).attr("y2",e?s/2:a.axisScale(i)).attr("x1",e?a.axisScale(i):-(s/2)).attr("x2",e?a.axisScale(i):s/2)}}function q(t,e,n,a,s,l,r){if(a.datasymbol==="rug"||a.datasymbol==="bean"){n.append("g").classed("sjpp-brush",true).call(l?i().extent([[0,-20],[a.svgw,20]]).on("end",(async n=>{const a=n.selection;if(!a)return;m.displayBrushMenu(t,e,m,s,a,r.axisScale,l)})):o().extent([[-20,0],[20,a.svgw]]).on("end",(async n=>{const a=n.selection;if(!a)return;m.displayBrushMenu(t,e,m,s,a,r.axisScale,l)})))}else return}m.toggleLoadingDiv=function(t=""){if(t!="none"){m.dom.loadingDiv.style("opacity",0).style("display",t).transition().duration("loadingWait"in m?m.loadingWait:1e5).style("opacity",1)}else{m.dom.loadingDiv.style("display",t)}m.loadingWait=1e3}}function g(t,e,n){let s;e.unit=="log"?s=m().base(t.app.vocabApi.termdbConfig.logscaleBase2?2:10).domain([t.data.min,t.data.max]).range(n?[0,e.svgw]:[e.svgw,0]):s=a().domain([t.data.min,t.data.max]).range(n?[0,e.svgw]:[e.svgw,0]);return s}function f(t,e){const n=[],a=e.config.term,s=e.config.term2,i="color: #aaa; font-weight: 400";y(a,n,i,e);if(s?.term.type==="float"||s?.q.mode==="continuous"||s?.term.type==="integer")y(s,n,i,e);h(a?.q.mode==="continuous"&&a?.q.hiddenValues&&Object.keys(a?.q.hiddenValues).length>0?a:s?.q.mode==="continuous"&&s?.q.hiddenValues&&Object.keys(s?.q.hiddenValues).length>0?s:null,n,i,e);if(s){if(t.q.hiddenValues&&Object.entries(t.q.hiddenValues).length!=0){v(t,n,i)}}return n}function y(t,e,n,a){if(t?.q.descrStats){const s=t.q.descrStats.map((t=>({text:`${t.label}: ${t.value}`,noIcon:true})));const i=a.config.term2?.term.type==="float"||a.config.term2?.term.type==="integer"?`Descriptive statistics: ${t.term.name}`:`Descriptive statistics`;const o=`<span style="${n}">${i}</span>`;e.push({name:o,items:s})}}function h(t,e,n,a){if(t?.term.values){const s=[];for(const e in t.term.values){if(a.data.uncomputableValueObj?.[t.term.values[e]?.label]){s.push({text:`${t.term.values[e].label}, n = ${a.data.uncomputableValueObj[t.term.values[e].label]}`,noIcon:true,isHidden:true,hiddenOpacity:1})}}if(s.length){const i=a.config.term2?.term.type==="float"||a.config.term2?.term.type==="integer"?`<span style="${n}">${t.term.name}</span>`:`<span style="${n}">Other categories</span>`;e.push({name:i,items:s})}}}function v(t,e,n){const a=[];for(const e of Object.keys(t.q.hiddenValues)){a.push({text:`${e}`,noIcon:true,isHidden:true,hiddenOpacity:1})}const s=`${t.term.name}`;const i=`<span style="${n}">${s}</span>`;e.push({name:i,items:a})}export{g as createNumericScale,u as default};
|
|
1
|
+
import{M as t,C as e,W as n,I as a,r as s}from"./app-b369b169.js";import{b as i,a as o}from"./brush-aa175142.js";import{r as l}from"./table-29d5a973.js";import{c as r,b as c}from"./axis-747c801e.js";import{l as d}from"./line-264f8f9e.js";import{c as p}from"./basis-3870f5ba.js";import{l as m}from"./log-99af3443.js";import"./pointer-c7475677.js";import"./nodrag-16ad4b03.js";import"./tslib.es6-c3c2d88f.js";import"./constant-426a1483.js";function u(m){m.render=function(){const n=m.config.settings.violin;const a=n.orientation==="horizontal";const s=n.datasymbol==="bean"?n.radius*window.devicePixelRatio:n.radius;const i=m.config.term;const o=m.config.term2;const l=new t({padding:"5px"});m.dom.tip=l;const r=o?.term.type==="condition"||o?.term.type==="samplelst"||o?.term.type==="categorical"||(o?.term.type==="float"||o?.term.type==="integer")&&i.q.mode==="continuous"?o:i;if(r&&r.term?.values){for(const[t,e]of Object.entries(r.term.values)){if(e.uncomputable){if(r.q.hiddenValues[t]){r.q.hiddenValues[e.label]=1;delete r.q.hiddenValues[t]}}}}m.data.plots=m.data.plots.filter((t=>!r?.q?.hiddenValues?.[t.label||t.seriesId]));this.k2c=e(m.data.plots.length);if(m.legendRenderer)m.legendRenderer(f(r,m));if(m.data.plots.length===0){m.dom.violinDiv.html(` <span style="opacity:.6;font-size:1em;margin-left:90px;">No data to render Violin Plot</span>`);m.dom.legendDiv.selectAll("*").remove();m.dom.tableHolder.selectAll(".sjpp-tableHolder")._parents[0].remove();return}else m.dom.violinDiv.select("*").remove();m.dom.violinDiv.select(".sjpp-violin-plot").remove();const c=h(i,m,a,n);v(i,o,n,a,c,m);for(const[t,e]of m.data.plots.entries()){const r=b(c,e,t,a);if(m.opts.mode!="minimal")x(i,o,r,e,a,n,l);j(e,m,a,c,t,r,s);if(m.opts.mode!="minimal")q(i,o,r,n,e,a,c);m.labelHideLegendClicking(o,e)}};m.displaySummaryStats=function(t,e,n){let a=[];if(t.summaryStats){const e=t.summaryStats.values;a=[`<tr><td colspan=2 style='padding:3px; text-align:center'>${t.label.split(",")[0]}</td></tr>`,...e.map((({id:t,label:e,value:n})=>`<tr>\n\t\t\t\t\t<td style='padding:3px; color:#aaa'>${e}</td>\n\t\t\t\t\t<td style='padding:3px; text-align:center'>${n}</td>\n\t\t\t\t</tr>`))]}const s=`<table class='sja_simpletable'>${a.join("")}</table>`;n.show(e.clientX,e.clientY).d.html(s)};m.getPlotThickness=function(){return m.settings.plotThickness||150};m.renderPvalueTable=function(){m.dom.tableHolder.selectAll("*").remove();if(m.data.plots.length===1)return;const t=m.config.term;const e=m.config.term2;if(!e){m.dom.tableHolder.style("display","none");return}const n=e?.term.type==="condition"||e?.term.type==="samplelst"||e?.term.type==="categorical"||(e?.term.type==="float"||e?.term.type==="integer")&&t.q.mode==="continuous"?e:t;m.data.pvalues=m.data.pvalues.filter((t=>{for(let e=0;e<t.length;e++){if(typeof t[e].value==="string"){if(n.q?.hiddenValues&&t[e].value in n.q.hiddenValues){return false}}}return true}));m.dom.tableHolder.style("display","inline-block").style("vertical-align","top").append("div").style("font-weight","bold").text(m.data.pvalues.length>0?"Group comparisons (Wilcoxon's rank sum test)":"");const a=[{label:"Group 1"},{label:"Group 2"},{label:"P-value"}];const s=m.data.pvalues;const i=this.settings.orientation==="horizontal";const o=i?m.getPlotThickness()*this.data.plots.length:this.settings.svgw+this.config.term.term.name.length;l({rows:s,columns:a,div:m.dom.tableHolder,showLines:false,maxWidth:"27vw",maxHeight:`${o}px`,resize:true})};function u(t,e){let n=0;for(const a of t.data.plots){const t=e.append("text").text(`${a.label}, n=${a.plotValueCount}`);n=Math.max(n,t.node().getBBox().width);t.remove()}return n}function y(t,e,n,a){let s;if(a){s=n?{left:5,top:e.axisHeight,right:e.rightMargin,bottom:10}:{left:e.axisHeight,top:30,right:e.rightMargin,bottom:10}}else{s=n?{left:t+5,top:e.axisHeight,right:e.rightMargin,bottom:10}:{left:e.axisHeight,top:50,right:e.rightMargin,bottom:t}}return s}function h(t,e,n,a){const s=e.dom.violinDiv.append("div").style("display","inline-block").style("padding",e.opts.mode!="minimal"?"5px":"0px").style("overflow","auto").style("scrollbar-width","none");const i=s.append("svg");const o=u(e,i);const l=y(o,a,n,e.opts.mode=="minimal");const r=e.getPlotThickness();i.attr("width",l.left+l.top+(n?a.svgw:r*e.data.plots.length+t.term.name.length)).attr("height",l.bottom+l.top+(n?r*e.data.plots.length:a.svgw+t.term.name.length)).classed("sjpp-violin-plot",true).attr("data-testid","sja_violin_plot");const c=i.append("g").attr("transform","translate("+l.left+","+l.top+")");return{margin:l,svgG:c,axisScale:g(e,a,n),violinSvg:i}}function v(t,e,a,s,i,o){const l=i.svgG.append("g").style("font-size","12").classed(a.unit==="log"?"sjpp-logscale":"sjpp-linearscale",true);const d=a.unit==="log"?i.axisScale.ticks(15):i.axisScale.ticks();l.call((s?r:c)().scale(i.axisScale).tickFormat(((t,e)=>{if(a.unit==="log"){if(o.app.vocabApi.termdbConfig.logscaleBase2){if(d.length>10&&e%2!==0)return"";if(t<.1)return n(".3f")(t);return n(".1f")(t)}else{if(d.length>=12&&e%5!==0)return"";if(t<50)return t;return n(".1s")(t)}}if(d.length>=12&&e%2!==0)return"";return t})).tickValues(d));if(o.opts.mode!="minimal"){i.svgG.append("text").text(e?.q?.mode==="continuous"?e.term.name:t.term.name).classed("sjpp-numeric-term-label",true).style("font-weight",600).attr("text-anchor","middle").attr("x",s?a.svgw/2:-a.svgw/2).attr("y",s?-30:-45).style("opacity",0).attr("transform",s?null:"rotate(-90)").style("opacity",1)}}function b(t,e,n,a){const s=t.svgG.append("g").datum(e).attr("transform",a?"translate(0,"+m.getPlotThickness()*(n+.5)+")":"translate("+m.getPlotThickness()*(n+.5)+",0)").attr("class","sjpp-violinG");return s}function x(t,e,n,a,s,i,o){n.append("text").classed("sjpp-axislabel",true).text(`${a.label}, n=${a.plotValueCount}`).style("cursor","pointer").on("click",(function(n){if(!n)return;m.displayLabelClickMenu(t,e,a,n)})).on("mouseover",(function(t,e){t.stopPropagation();if(!t)return;m.displaySummaryStats(e,t,o)})).on("mouseout",(function(){o.hide()})).style("opacity",0).style("opacity",1).attr("x",s?-5:0-i.svgw-5).attr("y",0).attr("text-anchor","end").attr("dominant-baseline","central").attr("transform",s?null:"rotate(-90)")}function j(t,e,n,s,i,o,l){const r=e.getPlotThickness();const c=a().domain([t.density.densityMax,t.density.densityMin]).range([r*.45,0]);let m;if(n){m=d().curve(p).x((t=>s.axisScale(t.x0))).y((t=>c(t.density)))}else{m=d().curve(p).x((t=>c(t.density))).y((t=>s.axisScale(t.x0)))}const u=t.label?.split(",")[0];const g=e.config.term.q.mode=="discrete"?e.config.term:e.config.term2;const f=g?.term.values?Object.values(g.term.values).find((t=>t.label==u)):null;const y=f?.color?f.color:e.config.settings.violin.defaultColor;if(!t.color)t.color=y;if(f&&!f.color)f.color=y;k(o,t,m);k(o,t,n?m.y((t=>-c(t.density))):m.x((t=>-c(t.density))));S(e,o,t,n,l);if(e.opts.mode!="minimal")w(o,n,t,s,e);$(o,n,e.config.settings.violin.lines,s);if(e.state.config.value){const t=s.axisScale(e.state.config.value);const a=e.config.settings.violin;o.append("line").style("stroke","black").style("stroke-width",a.medianThickness).attr("x1",200).attr("x2",200).attr("x1",n?t:-a.medianLength).attr("x2",n?t:a.medianLength).attr("y1",n?-a.medianLength:t).attr("y2",n?a.medianLength:t)}}function k(t,e,n){if(e.density.densityMax==0)return;t.append("path").attr("class","sjpp-vp-path").style("fill",m.opts.mode==="minimal"?s(221,221,221):e.color).style("opacity",0).attr("stroke",s(e.color).darker()).attr("stroke-width",1).attr("stroke-linejoin","round").style("opacity","0.8").attr("d",n(e.density.bins))}function S(t,e,n,a,s){e.append("image").style("opacity",0).classed(t.config.settings.violin.datasymbol==="rug"?"sjpp-rug-img":"sjpp-beans-img",true).style("opacity",1).attr("xlink:href",n.src).attr("transform",a?`translate(0, -${s})`:`translate(-${s}, 0)`)}function w(t,e,n,a,s){const i=s.config.settings.violin;if(n.plotValueCount>=2){t.append("line").style("opacity",1).attr("class","sjpp-median-line").style("stroke-width",i.medianThickness).style("stroke","red").style("opacity","1").attr("y1",e?-i.medianLength:a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value)).attr("y2",e?i.medianLength:a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value)).attr("x1",e?a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value):-i.medianLength).attr("x2",e?a.axisScale(n.summaryStats.values.find((t=>t.id==="median")).value):i.medianLength)}else return}function $(t,e,n,a){const s=m.settings.plotThickness||150;t.selectAll(".sjpp-vp-line").remove();if(!n?.length)return;for(const i of n){t.append("line").attr("class","sjpp-vp-line").style("stroke",m.opts.mode=="minimal"?"red":"black").attr("y1",e?-(s/2):a.axisScale(i)).attr("y2",e?s/2:a.axisScale(i)).attr("x1",e?a.axisScale(i):-(s/2)).attr("x2",e?a.axisScale(i):s/2)}}function q(t,e,n,a,s,l,r){if(a.datasymbol==="rug"||a.datasymbol==="bean"){n.append("g").classed("sjpp-brush",true).call(l?i().extent([[0,-20],[a.svgw,20]]).on("end",(async n=>{const a=n.selection;if(!a)return;m.displayBrushMenu(t,e,m,s,a,r.axisScale,l)})):o().extent([[-20,0],[20,a.svgw]]).on("end",(async n=>{const a=n.selection;if(!a)return;m.displayBrushMenu(t,e,m,s,a,r.axisScale,l)})))}else return}m.toggleLoadingDiv=function(t=""){if(t!="none"){m.dom.loadingDiv.style("opacity",0).style("display",t).transition().duration("loadingWait"in m?m.loadingWait:1e5).style("opacity",1)}else{m.dom.loadingDiv.style("display",t)}m.loadingWait=1e3}}function g(t,e,n){let s;e.unit=="log"?s=m().base(t.app.vocabApi.termdbConfig.logscaleBase2?2:10).domain([t.data.min,t.data.max]).range(n?[0,e.svgw]:[e.svgw,0]):s=a().domain([t.data.min,t.data.max]).range(n?[0,e.svgw]:[e.svgw,0]);return s}function f(t,e){const n=[],a=e.config.term,s=e.config.term2,i="color: #aaa; font-weight: 400";y(a,n,i,e);if(s?.term.type==="float"||s?.q.mode==="continuous"||s?.term.type==="integer")y(s,n,i,e);h(a?.q.mode==="continuous"&&a?.q.hiddenValues&&Object.keys(a?.q.hiddenValues).length>0?a:s?.q.mode==="continuous"&&s?.q.hiddenValues&&Object.keys(s?.q.hiddenValues).length>0?s:null,n,i,e);if(s){if(t.q.hiddenValues&&Object.entries(t.q.hiddenValues).length!=0){v(t,n,i)}}return n}function y(t,e,n,a){if(t?.q.descrStats){const s=t.q.descrStats.map((t=>({text:`${t.label}: ${t.value}`,noIcon:true})));const i=a.config.term2?.term.type==="float"||a.config.term2?.term.type==="integer"?`Descriptive statistics: ${t.term.name}`:`Descriptive statistics`;const o=`<span style="${n}">${i}</span>`;e.push({name:o,items:s})}}function h(t,e,n,a){if(t?.term.values){const s=[];for(const e in t.term.values){if(a.data.uncomputableValueObj?.[t.term.values[e]?.label]){s.push({text:`${t.term.values[e].label}, n = ${a.data.uncomputableValueObj[t.term.values[e].label]}`,noIcon:true,isHidden:true,hiddenOpacity:1})}}if(s.length){const i=a.config.term2?.term.type==="float"||a.config.term2?.term.type==="integer"?`<span style="${n}">${t.term.name}</span>`:`<span style="${n}">Other categories</span>`;e.push({name:i,items:s})}}}function v(t,e,n){const a=[];for(const e of Object.keys(t.q.hiddenValues)){a.push({text:`${e}`,noIcon:true,isHidden:true,hiddenOpacity:1})}const s=`${t.term.name}`;const i=`<span style="${n}">${s}</span>`;e.push({name:i,items:a})}export{g as createNumericScale,u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t}from"./brush-
|
|
1
|
+
import{b as t}from"./brush-aa175142.js";import{I as s,r as i}from"./app-b369b169.js";import{c as a}from"./axis-747c801e.js";import{l as e}from"./line-264f8f9e.js";import{c as h}from"./basis-3870f5ba.js";class r{constructor(t,i,a=500,e=100,h=20,r=20,l=null,n=1){this.holder=t;this.plot=i;this.width=a;this.height=e;this.callback=l;this.shiftx=h;this.shifty=r;this.svg=t.append("svg").attr("width",`${a+50}px`).attr("height",`${e+50}px`);this.axisScale=s().domain([i.minvalue,i.maxvalue]).range([0,a]);this.axisScaleUI=s().domain([i.minvalue*n,i.maxvalue*n]).range([0,a]);this.wScale=s().domain([i.densityMax,i.densityMin]).range([e*.45,0])}render(){this.svg.selectAll("*").remove();this.violinG=this.svg.append("g").attr("transform",`translate(${this.shiftx}, ${this.height/2+this.shifty})`);this.scaleG=this.svg.append("g").attr("transform",`translate(${this.shiftx}, ${this.shifty})`);this.scaleG.call(a(this.axisScaleUI).tickValues(this.axisScaleUI.ticks()));this.renderArea(false);this.renderArea(true);if(this.plot.valuesImg)this.violinG.append("image").classed("sjpp-beans-img",true).attr("xlink:href",this.plot.valuesImg).attr("transform",`translate(0, -${this.plot.radius||3})`);if(this.callback)this.svg.append("g").call(t().extent([[this.shiftx,this.shifty],[this.width+this.shiftx,this.height+this.shifty]]).on("end",(async t=>{const s=t.selection;if(!s)return;const i=this.axisScale.invert(s[0]-this.shiftx);const a=this.axisScale.invert(s[1]-this.shiftx);this.callback({range_start:i,range_end:a})})))}renderArea(t){if(this.plot.densityMax==0)return;const s=e().curve(h).x((t=>this.axisScale(t.x0))).y((s=>t?-this.wScale(s.density):this.wScale(s.density)));this.violinG.append("path").style("fill",this.plot.color||i(221,221,221)).style("opacity",0).attr("stroke",i(this.plot.color).darker()).attr("stroke-width",1).attr("stroke-linejoin","round").style("opacity","0.8").attr("d",s(this.plot.density))}}export{r as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{by as f}from"./app-
|
|
1
|
+
import{by as f}from"./app-b369b169.js";function e(f){var e=f.length;return function(a){return f[Math.max(0,Math.min(e-1,Math.floor(a*e)))]}}e(f("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));e(f("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));e(f("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));var a=e(f("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));export{a as p};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bB as n,_ as t}from"./app-
|
|
1
|
+
import{bB as n,_ as t}from"./app-b369b169.js";function r(n){return function(){return n}}function e(n){return(n()-.5)*1e-6}const i=1664525;const f=1013904223;const u=4294967296;function o(){let n=1;return()=>(n=(i*n+f)%u)/u}var a=10,c=Math.PI*(3-Math.sqrt(5));function l(r){var e,i=1,f=.001,u=1-Math.pow(f,1/300),l=0,h=.6,s=new Map,y=n(p),g=t("tick","end"),v=o();if(r==null)r=[];function p(){x();g.call("tick",e);if(i<f){y.stop();g.call("end",e)}}function x(n){var t,f=r.length,o;if(n===undefined)n=1;for(var a=0;a<n;++a){i+=(l-i)*u;s.forEach((function(n){n(i)}));for(t=0;t<f;++t){o=r[t];if(o.fx==null)o.x+=o.vx*=h;else o.x=o.fx,o.vx=0;if(o.fy==null)o.y+=o.vy*=h;else o.y=o.fy,o.vy=0}}return e}function N(){for(var n=0,t=r.length,e;n<t;++n){e=r[n],e.index=n;if(e.fx!=null)e.x=e.fx;if(e.fy!=null)e.y=e.fy;if(isNaN(e.x)||isNaN(e.y)){var i=a*Math.sqrt(.5+n),f=n*c;e.x=i*Math.cos(f);e.y=i*Math.sin(f)}if(isNaN(e.vx)||isNaN(e.vy)){e.vx=e.vy=0}}}function d(n){if(n.initialize)n.initialize(r,v);return n}N();return e={tick:x,restart:function(){return y.restart(p),e},stop:function(){return y.stop(),e},nodes:function(n){return arguments.length?(r=n,N(),s.forEach(d),e):r},alpha:function(n){return arguments.length?(i=+n,e):i},alphaMin:function(n){return arguments.length?(f=+n,e):f},alphaDecay:function(n){return arguments.length?(u=+n,e):+u},alphaTarget:function(n){return arguments.length?(l=+n,e):l},velocityDecay:function(n){return arguments.length?(h=1-n,e):1-h},randomSource:function(n){return arguments.length?(v=n,s.forEach(d),e):v},force:function(n,t){return arguments.length>1?(t==null?s.delete(n):s.set(n,d(t)),e):s.get(n)},find:function(n,t,e){var i=0,f=r.length,u,o,a,c,l;if(e==null)e=Infinity;else e*=e;for(i=0;i<f;++i){c=r[i];u=n-c.x;o=t-c.y;a=u*u+o*o;if(a<e)l=c,e=a}return l},on:function(n,t){return arguments.length>1?(g.on(n,t),e):g.on(n)}}}function h(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vx+=(f[t]-u.x)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.x=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}function s(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vy+=(f[t]-u.y)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.y=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}export{r as c,e as j,l as s,h as x,s as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,N as e,a6 as n,d as o,a0 as i}from"./app-
|
|
1
|
+
import{_ as t,N as e,a6 as n,d as o,a0 as i}from"./app-b369b169.js";import{p as u}from"./pointer-c7475677.js";import{d as r,y as a}from"./nodrag-16ad4b03.js";var h=1e-12;function s(t){return((t=Math.exp(t))+1/t)/2}function c(t){return((t=Math.exp(t))-1/t)/2}function f(t){return((t=Math.exp(2*t))-1)/(t+1)}var l=function t(e,n,o){function i(t,i){var u=t[0],r=t[1],a=t[2],l=i[0],m=i[1],p=i[2],v=l-u,y=m-r,d=v*v+y*y,g,z;if(d<h){z=Math.log(p/a)/e;g=function(t){return[u+t*v,r+t*y,a*Math.exp(e*t*z)]}}else{var _=Math.sqrt(d),M=(p*p-a*a+o*d)/(2*a*n*_),x=(p*p-a*a-o*d)/(2*p*n*_),w=Math.log(Math.sqrt(M*M+1)-M),b=Math.log(Math.sqrt(x*x+1)-x);z=(b-w)/e;g=function(t){var o=t*z,i=s(w),h=a/(n*_)*(i*f(e*o+w)-c(w));return[u+h*v,r+h*y,a*i/s(e*o+w)]}}g.duration=z*1e3*e/Math.SQRT2;return g}i.rho=function(e){var n=Math.max(.001,+e),o=n*n,i=o*o;return t(n,o,i)};return i}(Math.SQRT2,2,4);var m=t=>()=>t;function p(t,{sourceEvent:e,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:true,configurable:true},sourceEvent:{value:e,enumerable:true,configurable:true},target:{value:n,enumerable:true,configurable:true},transform:{value:o,enumerable:true,configurable:true},_:{value:i}})}function v(t){t.stopImmediatePropagation()}function y(t){t.preventDefault();t.stopImmediatePropagation()}function d(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function g(){var t=this;if(t instanceof SVGElement){t=t.ownerSVGElement||t;if(t.hasAttribute("viewBox")){t=t.viewBox.baseVal;return[[t.x,t.y],[t.x+t.width,t.y+t.height]]}return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}return[[0,0],[t.clientWidth,t.clientHeight]]}function z(){return this.__zoom||e}function _(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function M(){return navigator.maxTouchPoints||"ontouchstart"in this}function x(t,e,n){var o=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],u=t.invertY(e[0][1])-n[0][1],r=t.invertY(e[1][1])-n[1][1];return t.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),r>u?(u+r)/2:Math.min(0,u)||Math.max(0,r))}function w(){var h=d,s=g,c=x,f=_,w=M,b=[0,Infinity],T=[[-Infinity,-Infinity],[Infinity,Infinity]],k=250,E=l,I=t("start","zoom","end"),q,V,Y,j=500,B=150,D=0,P=10;function S(t){t.property("__zoom",z).on("wheel.zoom",H,{passive:false}).on("mousedown.zoom",N).on("dblclick.zoom",O).filter(w).on("touchstart.zoom",W).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}S.transform=function(t,e,n,o){var i=t.selection?t.selection():t;i.property("__zoom",z);if(t!==i){Q(t,e,n,o)}else{i.interrupt().each((function(){R(this,arguments).event(o).start().zoom(null,typeof e==="function"?e.apply(this,arguments):e).end()}))}};S.scaleBy=function(t,e,n,o){S.scaleTo(t,(function(){var t=this.__zoom.k,n=typeof e==="function"?e.apply(this,arguments):e;return t*n}),n,o)};S.scaleTo=function(t,e,n,o){S.transform(t,(function(){var t=s.apply(this,arguments),o=this.__zoom,i=n==null?G(t):typeof n==="function"?n.apply(this,arguments):n,u=o.invert(i),r=typeof e==="function"?e.apply(this,arguments):e;return c(K(X(o,r),i,u),t,T)}),n,o)};S.translateBy=function(t,e,n,o){S.transform(t,(function(){return c(this.__zoom.translate(typeof e==="function"?e.apply(this,arguments):e,typeof n==="function"?n.apply(this,arguments):n),s.apply(this,arguments),T)}),null,o)};S.translateTo=function(t,n,o,i,u){S.transform(t,(function(){var t=s.apply(this,arguments),u=this.__zoom,r=i==null?G(t):typeof i==="function"?i.apply(this,arguments):i;return c(e.translate(r[0],r[1]).scale(u.k).translate(typeof n==="function"?-n.apply(this,arguments):-n,typeof o==="function"?-o.apply(this,arguments):-o),t,T)}),i,u)};function X(t,e){e=Math.max(b[0],Math.min(b[1],e));return e===t.k?t:new n(e,t.x,t.y)}function K(t,e,o){var i=e[0]-o[0]*t.k,u=e[1]-o[1]*t.k;return i===t.x&&u===t.y?t:new n(t.k,i,u)}function G(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function Q(t,e,o,i){t.on("start.zoom",(function(){R(this,arguments).event(i).start()})).on("interrupt.zoom end.zoom",(function(){R(this,arguments).event(i).end()})).tween("zoom",(function(){var t=this,u=arguments,r=R(t,u).event(i),a=s.apply(t,u),h=o==null?G(a):typeof o==="function"?o.apply(t,u):o,c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),f=t.__zoom,l=typeof e==="function"?e.apply(t,u):e,m=E(f.invert(h).concat(c/f.k),l.invert(h).concat(c/l.k));return function(t){if(t===1)t=l;else{var e=m(t),o=c/e[2];t=new n(o,h[0]-e[0]*o,h[1]-e[1]*o)}r.zoom(null,t)}}))}function R(t,e,n){return!n&&t.__zooming||new A(t,e)}function A(t,e){this.that=t;this.args=e;this.active=0;this.sourceEvent=null;this.extent=s.apply(t,e);this.taps=0}A.prototype={event:function(t){if(t)this.sourceEvent=t;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(t,e){if(this.mouse&&t!=="mouse")this.mouse[1]=e.invert(this.mouse[0]);if(this.touch0&&t!=="touch")this.touch0[1]=e.invert(this.touch0[0]);if(this.touch1&&t!=="touch")this.touch1[1]=e.invert(this.touch1[0]);this.that.__zoom=e;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(t){var e=o(this.that).datum();I.call(t,this.that,new p(t,{sourceEvent:this.sourceEvent,target:S,type:t,transform:this.that.__zoom,dispatch:I}),e)}};function H(t,...e){if(!h.apply(this,arguments))return;var n=R(this,e).event(t),o=this.__zoom,r=Math.max(b[0],Math.min(b[1],o.k*Math.pow(2,f.apply(this,arguments)))),a=u(t);if(n.wheel){if(n.mouse[0][0]!==a[0]||n.mouse[0][1]!==a[1]){n.mouse[1]=o.invert(n.mouse[0]=a)}clearTimeout(n.wheel)}else if(o.k===r)return;else{n.mouse=[a,o.invert(a)];i(this);n.start()}y(t);n.wheel=setTimeout(s,B);n.zoom("mouse",c(K(X(o,r),n.mouse[0],n.mouse[1]),n.extent,T));function s(){n.wheel=null;n.end()}}function N(t,...e){if(Y||!h.apply(this,arguments))return;var n=t.currentTarget,s=R(this,e,true).event(t),f=o(t.view).on("mousemove.zoom",d,true).on("mouseup.zoom",g,true),l=u(t,n),m=t.clientX,p=t.clientY;r(t.view);v(t);s.mouse=[l,this.__zoom.invert(l)];i(this);s.start();function d(t){y(t);if(!s.moved){var e=t.clientX-m,o=t.clientY-p;s.moved=e*e+o*o>D}s.event(t).zoom("mouse",c(K(s.that.__zoom,s.mouse[0]=u(t,n),s.mouse[1]),s.extent,T))}function g(t){f.on("mousemove.zoom mouseup.zoom",null);a(t.view,s.moved);y(t);s.event(t).end()}}function O(t,...e){if(!h.apply(this,arguments))return;var n=this.__zoom,i=u(t.changedTouches?t.changedTouches[0]:t,this),r=n.invert(i),a=n.k*(t.shiftKey?.5:2),f=c(K(X(n,a),i,r),s.apply(this,e),T);y(t);if(k>0)o(this).transition().duration(k).call(Q,f,i,t);else o(this).call(S.transform,f,i,t)}function W(t,...e){if(!h.apply(this,arguments))return;var n=t.touches,o=n.length,r=R(this,e,t.changedTouches.length===o).event(t),a,s,c,f;v(t);for(s=0;s<o;++s){c=n[s],f=u(c,this);f=[f,this.__zoom.invert(f),c.identifier];if(!r.touch0)r.touch0=f,a=true,r.taps=1+!!q;else if(!r.touch1&&r.touch0[2]!==f[2])r.touch1=f,r.taps=0}if(q)q=clearTimeout(q);if(a){if(r.taps<2)V=f[0],q=setTimeout((function(){q=null}),j);i(this);r.start()}}function C(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),o=t.changedTouches,i=o.length,r,a,h,s;y(t);for(r=0;r<i;++r){a=o[r],h=u(a,this);if(n.touch0&&n.touch0[2]===a.identifier)n.touch0[0]=h;else if(n.touch1&&n.touch1[2]===a.identifier)n.touch1[0]=h}a=n.that.__zoom;if(n.touch1){var f=n.touch0[0],l=n.touch0[1],m=n.touch1[0],p=n.touch1[1],v=(v=m[0]-f[0])*v+(v=m[1]-f[1])*v,d=(d=p[0]-l[0])*d+(d=p[1]-l[1])*d;a=X(a,Math.sqrt(v/d));h=[(f[0]+m[0])/2,(f[1]+m[1])/2];s=[(l[0]+p[0])/2,(l[1]+p[1])/2]}else if(n.touch0)h=n.touch0[0],s=n.touch0[1];else return;n.zoom("touch",c(K(a,h,s),n.extent,T))}function F(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),i=t.changedTouches,r=i.length,a,h;v(t);if(Y)clearTimeout(Y);Y=setTimeout((function(){Y=null}),j);for(a=0;a<r;++a){h=i[a];if(n.touch0&&n.touch0[2]===h.identifier)delete n.touch0;else if(n.touch1&&n.touch1[2]===h.identifier)delete n.touch1}if(n.touch1&&!n.touch0)n.touch0=n.touch1,delete n.touch1;if(n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else{n.end();if(n.taps===2){h=u(h,this);if(Math.hypot(V[0]-h[0],V[1]-h[1])<P){var s=o(this).on("dblclick.zoom");if(s)s.apply(this,arguments)}}}}S.wheelDelta=function(t){return arguments.length?(f=typeof t==="function"?t:m(+t),S):f};S.filter=function(t){return arguments.length?(h=typeof t==="function"?t:m(!!t),S):h};S.touchable=function(t){return arguments.length?(w=typeof t==="function"?t:m(!!t),S):w};S.extent=function(t){return arguments.length?(s=typeof t==="function"?t:m([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),S):s};S.scaleExtent=function(t){return arguments.length?(b[0]=+t[0],b[1]=+t[1],S):[b[0],b[1]]};S.translateExtent=function(t){return arguments.length?(T[0][0]=+t[0][0],T[1][0]=+t[1][0],T[0][1]=+t[0][1],T[1][1]=+t[1][1],S):[[T[0][0],T[0][1]],[T[1][0],T[1][1]]]};S.constrain=function(t){return arguments.length?(c=t,S):c};S.duration=function(t){return arguments.length?(k=+t,S):k};S.interpolate=function(t){return arguments.length?(E=t,S):E};S.on=function(){var t=I.on.apply(I,arguments);return t===I?S:t};S.clickDistance=function(t){return arguments.length?(D=(t=+t)*t,S):Math.sqrt(D)};S.tapDistance=function(t){return arguments.length?(P=+t,S):P};return S}export{w as d};
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjcrh/proteinpaint-client",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.76.0",
|
|
4
4
|
"description": "a genomics visualization tool for exploring a cohort's genotype and phenotype data",
|
|
5
5
|
"main": "dist/app.js",
|
|
6
6
|
"module": "dist/app.js",
|
|
7
7
|
"browser": "dist/app.js",
|
|
8
8
|
"imports": {
|
|
9
|
-
"#src/*": "./src/*.js",
|
|
10
9
|
"#common/*": "./common/*.js",
|
|
11
10
|
"#dom/*": "./dom/*.js",
|
|
12
11
|
"#filter": "./filter/filter.js",
|
|
@@ -15,11 +14,14 @@
|
|
|
15
14
|
"#plots/*": "./plots/*",
|
|
16
15
|
"#plots/disco/*": "./plots/disco/*",
|
|
17
16
|
"#rx": "./rx/index.js",
|
|
18
|
-
"#types": "./shared/types/index.ts",
|
|
19
17
|
"#shared/*": "@sjcrh/proteinpaint-server/shared/*",
|
|
18
|
+
"#src/*": "./src/*.js",
|
|
20
19
|
"#termdb/*": "./termdb/*.js",
|
|
21
20
|
"#termsetting": "./termsetting/termsetting.ts",
|
|
22
|
-
"#termsetting/handlers/*": "./termsetting/handlers/*.ts"
|
|
21
|
+
"#termsetting/handlers/*": "./termsetting/handlers/*.ts",
|
|
22
|
+
"#tw": "./tw/*",
|
|
23
|
+
"#types": "./shared/types/index.ts",
|
|
24
|
+
"#updated-types": "./shared/types/terms/updated-types.ts"
|
|
23
25
|
},
|
|
24
26
|
"scripts": {
|
|
25
27
|
"predev0": "node ./test/import-specs.js name=? && rm -f ../public/bin/*proteinpaint.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t}from"./tslib.es6-1f85f553.js";import{M as e,k as s,a as i,t as a,d as n,b as o,n as r,u as p,g as l,c as d,f as c,e as h,h as m,r as u,i as y,j as b,l as f,m as g,o as w}from"./app-a8c4854a.js";import{o as v,m as x}from"./adSandbox-3528c372.js";import"./genesearch-ea59f5d4.js";import"./toggleButtons-002aeda1.js";class k{constructor(t){this.holder=t.holder;this.input=t.holder.append("input");this.tip=t.tip||new e({border:"",padding:"0px"});this.style=t.style||{};this.size=t.size||20;this.placeholder=t.placeholder||"";this.title=t.title||"";this.searchItems=t.searchItems;this.app=t.app}initUI(){this.holder.style("padding","padding"in this.style?this.style.padding:"5px").style("display","inline-block");this.input.attr("class","sjpp-input-search").style("border","border"in this.style?this.style.border:"5px").attr("size",this.size).attr("placeholder",this.placeholder).attr("title",this.title).on("keyup",(e=>t(this,void 0,void 0,(function*(){if(s(e))yield this.enterSearch();i.debounce(this.addSearchItems(),400)}))))}addSearchItems(){return t(this,void 0,void 0,(function*(){if(!this.input.property("value").trim()){this.tip.hide();return}try{this.tip.clear().showunder(this.input.node());const t=this.tip.d.append("div");const e=yield this.searchItems();yield t.append("div").style("display","flex").selectAll().data(e.filter((t=>{var e;return((e=t.items)===null||e===void 0?void 0:e.length)>=1}))).enter().append("div").style("display","block").style("border-left","0.5px solid lightgrey").each(this.showResultsList)}catch(t){if(t.stack)console.error(t.stack);else a(t)}}))}showResultsList(e){return t(this,void 0,void 0,(function*(){e.wrapper=n(this);e.wrapper.style("padding","5px");e.titleDiv=e.wrapper.append("span").style("padding","3px 0px 5px").style("opacity",.65).style("font-size","0.8em").text(e.title);yield e.wrapper.append("div").classed("sjpp-result-wrapper",true).selectAll("div").data(e.items).enter().append("div").classed("sja_menuoption",true).classed("sjpp-search-result",true).style("display","block").style("padding-left","10px").style("background-color",e.color||"").text((t=>t.name||t.label||t.title||t)).on("click",((t,s)=>{t.stopPropagation();e.callback(s)}))}))}enterSearch(){return t(this,void 0,void 0,(function*(){if(!this.input.property("value").trim())return;const t=this.tip.d.select(".sjpp-result-wrapper").node();const e=this.tip.d.select(".sjpp-search-result").node();if(e!=null&&e.__data__)t.__data__.callback(e.__data__);else{const t=yield this.searchItems();const e=t.filter((t=>t.default));e[0].callback(this.input.property("value"))}this.input.property("value","");this.tip.hide()}))}updatePlaceholder(t){this.input.attr("placeholder",t)}}async function _(t,e,s,i,a){const o=n("input").property("value").trim();const r=[{title:"Genes",default:true,items:await P(o,t.selectgenome.property("value"),a),color:"#F2F2F2",callback:s=>{t.drawer.dispatch({type:"is_apps_btn_active",value:false});e.hide();B(s,t,t.selectgenome.property("value"),a)}}];await j(t,o,r,e);r.push({title:"Help",default:false,items:s.filter((t=>t.label.toLowerCase().includes(o.toLowerCase()))),color:"#faebd9",callback:t=>{window.open(t.link,t.label)}});r.push({title:"Publications",default:false,items:i.filter((t=>t.title.toLowerCase().includes(o.toLowerCase())||t.appHeaderTitle.toLowerCase().includes(o.toLowerCase()))),color:"#E6E6FA",callback:t=>{window.open(t.doi,t.title)}});return r}async function j(t,e,s,i){const n=await o(t.cardsPath+"/index.json");if(n.error)a(`Problem retrieving ../cards/index.json`);const r=e.toLowerCase().trim();const p=[...n.elements];let l;if(r.length>2){await A(p,t);l=$(p,r)}else{l=$(p,r)}const d={app:t.drawer.opts,sandboxDiv:t.drawer.opts.sandboxDiv,genomes:t.genomes,fromApp:true};s.push({title:"Tracks and Apps",items:l.filter((t=>t.type=="card")),color:"#e1edf7",callback:e=>{t.drawer.dispatch({type:"is_apps_btn_active",value:false});i.hide();v(e,d)}},{title:"Datasets",items:l.filter((t=>t.type=="dsButton")),color:"#e5f5e4",callback:e=>{t.drawer.dispatch({type:"is_apps_btn_active",value:false});i.hide();v(e,d)}});return s}async function A(t,e){const s=t.map((async t=>{if(t.hidden||t.type!="card"||!t.sandboxJson)return t;const s=await o(e.cardsPath+`/${t.sandboxJson}.json`);if(s?.ppcalls.length>0){for(const e of s.ppcalls){if(e.isUI)return;if(e?.label)t.searchterms.push(e.label)}}}));await Promise.all(s)}function $(t,e){return t.filter((t=>{if(t.hidden)return false;let s=(t.searchterms||[]).reduce(((t,s)=>{if(t)return true;return s.toLowerCase().includes(e)}),false);return s||t.name.toLowerCase().includes(e)})).sort(((t,e)=>t.name.localeCompare(e.name)))}async function P(t,e,s){if(t.length==0)return;try{const i=await o("/genelookup",{body:{input:t,genome:e,jwt:s}});if(i.error)throw i.error;if(!i.hits)throw".hits[] missing";return i.hits}catch(t){}}async function B(t,e,s,i){const a=e.genomes[s];if(!a){console.error("unknown genome "+s);return}const n=r(e.drawer.opts.sandboxDiv);n.header.html('<div style="display:inline-block;">'+t+'</div><div class="sjpp-output-sandbox-title">'+s+"</div>");const o=p();const m=await l(o,a);const u=d(t,a);if(u){const t={hostURL:e.hostURL,jwt:i,holder:n.body,genome:a,nobox:true,chr:u.chr,start:u.start,stop:u.stop,dogtag:s,tklst:m,debugmode:e.debugmode};c(a,t.tklst);import("./block-dcb130fb.js").then((function(t){return t.c})).then((e=>new e.Block(t))).catch((t=>{e.error0(t)}));return}const y={hostURL:e.hostURL,jwt:i,query:t,genome:a,holder:n.body,variantPageCall_snv:e.variantPageCall_snv,samplecart:e.samplecart,tklst:m,debugmode:e.debugmode};const b=sessionStorage.getItem("urlp_mds");if(b){const t=b.split(",");if(t.length==2){y.datasetqueries=[{dataset:t[0],querykey:t[1]}]}}await h(y)}class D{constructor(t){this.type="card";this.opts=this.validateOpts(t);this.holder=t.holder;this.dom=t.dom;this.sandboxDiv=t.sandboxDiv;S(this)}validateOpts(t){if(!t.element.name)throw`Card .name is missing`;if(t.element.type=="card"){if(!t.element.sandboxJson&&!t.element.sandboxHtml)throw`Either .sandboxJson or .sandboxHtml is missing for card=${t.element.name}`}if(t.element.type=="nestedCard"){if(!t.element.children||t.element.children.length==0)throw`Missing .children for nested card = ${t.element.name}`}if(t.element.ribbon){if(!t.element.ribbon.text)throw`Missing ribbon .text for ${t.element.type} = ${t.element.name}`;if((t.element.ribbon.text.toUpperCase()=="NEW"||t.element.ribbon.text.toUpperCase()=="UPDATED")&&!t.element.ribbon.expireDate)throw`${t.element.type} = ${t.element.name} ribbon is ${t.element.ribbon.text.toUpperCase()} but .expireDate is missing. Please provide`;if(t.element.ribbon.expireDate){if(t.element.ribbon.expireDate>=0){throw`Flag for ${t.element.type} = ${t.element.name} is not a valid date`}}}return t}main(){}}const L=m(D);function S(t){const e=t.holder.append("li");if(t.opts.element.type=="card"){e.classed("sjpp-track",true).html(`<div class="sjpp-track-h"><span style="font-size:14.5px;font-weight:500;">${t.opts.element.name}</span></div>\n\t\t\t\t${t.opts.element.description?`<span class="sjpp-track-blurb" style="cursor:default">${t.opts.element.description}</span></div>`:" "}\n\t\t\t\t<span class="sjpp-track-image"><img src="${t.opts.element.image}" alt="${t.opts.element.description}"></img></span>\n\t\t\t\t</div>`)}else if(t.opts.element.type=="nestedCard"){e.classed("sjpp-app-drawer-card",true).html(`<p style="margin-left: 12px; font-size:14.5px;font-weight:500; display: block;">${t.opts.element.name}</p>\n\t\t\t<p style="display: block; font-size: 13px; font-weight: 300; margin-left: 20px; justify-content: center; font-style:oblique; color: #403f3f;">${t.opts.element.description}</p>`)}t.makeRibbon=function(t){const s=e.append("div").classed("sjpp-app-drawer-card-ribbon",true).style("align-items","center").style("justify-content","center");const i=t.text.toUpperCase();const a=i=="BETA"?"#418cb5":i=="NEW"?"#1ba176":i=="UPDATED"?"orange":t.color?t.color:"red";s.append("span").text(i).style("color","white").style("background-color",u(a).darker()).style("height","auto").style("width","100%").style("top","15%").style("left","-30%").style("font-size","11.5px").style("text-transform","uppercase").style("text-align","center")};if(t.opts.element.ribbon){const e=new Date;const s=new Date(t.opts.element.ribbon.expireDate);if(s>e||s=="Invalid Date")t.makeRibbon(t.opts.element.ribbon)}e.on("click",(async e=>{e.stopPropagation();await t.app.dispatch({type:"is_apps_btn_active",value:false});T(t);await v(t.opts.element,t.opts)}))}class R{constructor(t){this.type="button";this.opts=this.validateOpts(t);this.holder=t.holder;this.dom=t.dom;this.sandboxDiv=t.sandboxDiv;z(this)}validateOpts(t){if(!t.element.name)throw`Button name is missing`;if(!t.element.sandboxJson&&!t.element.sandboxHtml)throw`Either .sandboxJson or .sandboxHtml is missing for button=${t.element.name}`;return t}main(){}}const C=y(R);function z(t){const e=x({div:t.holder,text:t.opts.element.name,margin:"20px 20px 0px"});e.attr("class","sjpp-appdrawer-dataset-btn").on("click",(async e=>{e.stopPropagation();await t.app.dispatch({type:"is_apps_btn_active",value:false});T(t);await v(t.opts.element,t.opts)}))}class I{constructor(t){this.type="layout";this.dom={holder:t.dom.drawerDiv,wrapper:t.dom.wrapper,sandboxDiv:t.dom.sandboxDiv};this.state=t.state;this.hasStatePreMain=true}async validateIndexJson(){const t=await this.getIndexJson();if(!t.elements)throw`Missing elements array`;if(!t.elements.length)throw`No element objects provided`;if(t.columnsLayout){if(t.columnsLayout.length==0)throw`Missing column objects`;const e=t.columnsLayout.map((t=>t.gridarea));if(e.length!=new Set(e).size)throw`Duplicate values for .gridarea found`;const s=[];for(const e of t.columnsLayout){if(!e.gridarea)throw`Missing column .gridarea for column = ${e.name}`;if(!e.sections||e.sections.length==0)throw`Missing section objects for column = ${e.name}`;for(const t of e.sections){if(!t.id)throw`Missing section .id in ${t.name?`section = ${t.name}`:`column = ${e.name} array`}`;s.push(t.id)}if(e.sections.length!=new Set(e.sections).size){throw`Non-unique levels in line ${lineNum}: ${JSON.stringify(levelNames)}`}}if(s.length!=new Set(s).size)throw`Duplicate values for section.id found`;for(const e of t.elements){if(!e.section)throw`.section is missing for ${e.type} = ${e.name}`;if(!s.some((t=>t==e.section)))throw`section = ${e.section} for ${e.type} = ${e.name} is not a column section`}}return t}async getIndexJson(){const t=await o(this.app.cardsPath+"/index.json");if(t.error){b(this.dom.holder.append("div"),t.error);return}return t}validateElements(){const t=JSON.parse(sessionStorage.getItem("optionalFeatures"))||{};this.elements=this.index.elements.filter((e=>!e.hidden&&(!e.configFeature||t[e.configFeature])))}async init(){this.index=await this.validateIndexJson();this.elementsRendered=false;U(this);this.validateElements();this.layout=this.index.columnsLayout?this.index.columnsLayout:null;this.components={elements:[]}}async main(){if(this.elementsRendered==true)return;this.elementsRendered=true;for(const t of this.elements){const e=n(this.layout?`#${t.section} > .sjpp-element-list`:`.sjpp-element-list`);if(t.type=="card"||t.type=="nestedCard"){this.components.elements.push(await L({app:this.app,holder:e.style("display","grid").style("grid-template-columns","repeat(auto-fit, minmax(320px, 1fr))").style("gap","10px").style("list-style","none").style("margin","15px 0px"),element:t,dom:this.opts.dom,state:this.state,sandboxDiv:this.dom.sandboxDiv}))}else if(t.type=="dsButton"){this.components.elements.push(await C({app:this.app,holder:e,element:t,dom:this.opts.dom,state:this.state,sandboxDiv:this.dom.sandboxDiv}))}}}}const H=m(I);function U(t){if(!t.index.columnsLayout)F(t);if(t.index.columnsLayout)O(t)}function F(t){const e=t.dom.wrapper.append("div").style("display","flex").style("padding","10px").classed("sjpp-element-list",true);return e}function O(t){const e=t.dom.wrapper.append("div").style("display","grid").style("grid-template-columns","repeat(auto-fit, minmax(425px, 1fr))").style("gap","10px").style("padding","10px").style("text-align","left");const s=[];for(const e of t.index.columnsLayout)s.push(e.gridarea);e.style("grid-template-areas",`"${s.toString().replace(","," ")}"`);for(const s of t.index.columnsLayout){const t=e.append("div").style("grid-area",s.gridarea).classed(".sjpp-track-cols",true);for(const e of s.sections)i(e,t)}function i(t,e){const s=e.append("div").attr("id",t.id);if(t.name)s.append("h5").classed("sjpp-appdrawer-cols",true).style("color",u(f).darker()).text(t.name);s.append("div").classed("sjpp-element-list",true).style("padding","10px");return s}}class E{constructor(t){this.type="mainBtn";this.opts=this.validateOpts(t);this.dom=t.dom;this.state=t.state;this.hasStatePreMain=true;N(this)}validateOpts(t){return t.app.opts}getState(t){return{appBtnActive:t.appBtnActive}}async init(){this.btnRendered=false;this.drawerFullHeight="";try{if(window.location.pathname=="/"&&!window.location.search.length)await this.app.dispatch({type:"is_apps_btn_active",value:true});this.components={layout:[]}}catch(t){throw t}}async main(t){if(this.app.getState(t).appBtnActive==true&&this.btnRendered==false){this.dom.drawerDiv.style("background-color","#f5f5f5");this.components.layout.push(await H({app:this.app,dom:this.dom,state:this.state}));setTimeout((()=>{this.drawerFullHeight=this.dom.drawerDiv.node().getBoundingClientRect().height+5}),this.state.duration+5);T(this);this.btnRendered=true}if(this.state.appBtnActive==false&&this.btnRendered==true)T(this)}}const J=m(E);function N(t){t.dom.btnWrapper.style("background-color",t.state.appBtnActive?"#b2b2b2":"#f2f2f2").style("color",t.state.appBtnActive?"#fff":"#000").on("click",(async e=>{e.stopPropagation();await t.app.dispatch({type:"is_apps_btn_active"});T(t);if(t.state.appBtnActive){setTimeout((()=>{t.drawerFullHeight=t.dom.drawerDiv.node().getBoundingClientRect().height+5}),t.state.duration+5)}}));t.dom.btn.attr("class","sja_menuoption").style("display","inline-block").style("background-color","transparent").style("color",t.state.appBtnActive?"#fff":"#000").style("padding",t.opts.padw_sm).style("margin","0px 5px").style("cursor","pointer").text("Apps");t.dom.drawerHint.style("position","relative").style("display","inline-block").style("height",t.state.arrowSize.closed+"px").style("width",t.state.appBtnActive?t.state.hintWidth.open:t.state.hintWidth.closed).style("background-color","transparent").style("text-align","center").style("cursor","pointer");t.dom.drawerArrow.style("position","absolute").style("font-size",t.state.arrowSize.closed+"px").style("right",t.state.hintPos.closed.rt+"px").style("bottom",t.state.hintPos.closed.btm+"px").style("background-color","transparent").style("color",t.state.arrowColor.closed).style("opacity",t.state.appBtnActive?0:1).style("cursor","pointer").html("▼");t.dom.drawerArrowOpen.style("position","absolute").style("font-size",t.state.arrowSize.open+"px").style("left",t.state.hintPos.open.left+"px").style("bottom",t.state.hintPos.open.btm+"px").style("transform","rotate(180deg)").style("background-color","transparent").style("color",t.state.arrowColor.open).style("opacity",t.state.appBtnActive?1:0).style("cursor","pointer").style("pointer-events",t.state.appBtnActive?"auto":"none").html("▼");t.drawerFullHeight=t.dom.drawerRow.node().getBoundingClientRect().height+5}async function T(t){t.dom.btnWrapper.transition().duration(t.opts.state.duration).style("background-color",t.state.appBtnActive?"#b2b2b2":"#f2f2f2").style("color",t.state.appBtnActive?"#fff":"#000");t.dom.btn.transition().duration(t.opts.state.duration).style("color",t.state.appBtnActive?"#fff":"#000");t.dom.drawerDiv.style("display","inline-block").transition().duration(t.opts.state.duration).style("top",t.state.appBtnActive?"0px":"-"+t.drawerFullHeight+"px");t.dom.drawerRow.transition().duration(t.opts.state.duration).style("height",t.state.appBtnActive?t.drawerFullHeight+"px":"0px");t.dom.drawerHint.transition().duration(t.opts.state.duration).style("width",t.state.appBtnActive?t.opts.state.hintWidth.open:t.opts.state.hintWidth.closed);t.dom.drawerArrow.transition().duration(t.opts.state.duration).style("opacity",t.state.appBtnActive?0:1);t.dom.drawerArrowOpen.style("pointer-events",t.state.appBtnActive?"auto":"none").transition().duration(t.opts.state.duration).style("opacity",t.state.appBtnActive?1:0)}class W{constructor(t){this.type="store";this.defaultState={duration:500,hintPos:{open:{btm:-42,left:13},closed:{btm:3,rt:5}},hintWidth:{open:"0px",closed:"18px"},arrowSize:{open:42,closed:20},arrowColor:{open:"rgb(242,242,242)",closed:"rgb(85,85,85)"},appBtnActive:false}}async init(){}}const M=g(W);W.prototype.actions={is_apps_btn_active(t){this.state.appBtnActive="value"in t?t.value:!this.state.appBtnActive}};class q{constructor(t){this.type="app";const e=t.drawerRow.append("div").style("position","relative").style("margin","0 20px").style("padding",`0 ${t.padw_sm}`).style("display","inline-block").style("overflow","hidden").style("border-radius","0px 0px 5px 5px").style("width","93vw").classed("sjpp-drawer-div",true);const s=t.headbox.append("div").style("position","relative").style("display","inline-block").style("margin-left","5px").style("margin-right","5px").style("border-radius","5px").classed("sjpp-apps-btn-wrapper",true);this.dom={drawerRow:t.drawerRow,drawerDiv:e,sandboxDiv:t.sandboxDiv,btnWrapper:s,btn:s.append("div"),drawerHint:s.append("div"),drawerArrow:s.append("div"),drawerArrowOpen:s.append("div"),wrapper:e.append("div")}}preApiFreeze(t){t.cardsPath=this.opts.cardsPath}async init(){try{this.store=await M({app:this.api,state:this.opts.state});this.state=await this.store.copyState();this.components={mainBtn:await J({app:this.api,dom:this.dom,state:this.state,indexJson:this.indexJson})};await this.api.dispatch()}catch(t){throw t}}main(){}}const G=w(q);class K{constructor(t){this.headtip=t.headtip;this.app=t.app;this.data=t.data;this.jwt=t.jwt;this.publications=[]}createPublicationsList(){var e;return t(this,void 0,void 0,(function*(){const t=yield o(this.app.cardsPath+"/citations.json");if(t.error)console.error(`Problem retrieving ../cards/citations.json`);this.publications=((e=t===null||t===void 0?void 0:t.publications)===null||e===void 0?void 0:e.length)?t.publications.filter((t=>t.appHeaderTitle)).sort(((t,e)=>e.year-t.year)):[]}))}makeheader(){return t(this,void 0,void 0,(function*(){yield this.createPublicationsList();const e=u(f);const s="13px";const i="5px 10px";const a="7px 10px";const n=document.documentElement.clientWidth;const r=this.app.holder.append("div").style("white-space","nowrap").style("border-bottom",n>1600?"solid 1px rgba("+e.r+","+e.g+","+e.b+",.3)":"");const p=r.append("div").style("margin","10px").style("padding","8px").style("padding-bottom","12px").style("display",n<1600?"block":"inline-block").style("border-bottom",n<1600?"solid 1px rgba("+e.r+","+e.g+","+e.b+",.3)":"");const l=r.append("div").style("display","inline-block").style("padding",a).style("padding-left","25px").style("font-size",".8em").style("color",u(f).darker());{const e=l.append("div").style("padding-left","15px");e.attr("id","sjpp-serverstat").append("span").text("Code updated: "+(this.data.codedate||"??")+", server launched: "+(this.data.launchdate||"??")+".");if(this.data.hasblat){e.append("a").style("margin-left","10px").text("Running BLAT").on("click",(e=>t(this,void 0,void 0,(function*(){this.headtip.clear().showunder(e.target);const t=this.headtip.d.append("div").style("margin","10px");const s=t.append("div").text("Loading...");try{const e=yield o("blat?serverstat=1");if(e.error)throw e.error;if(!e.lst)throw"invalid response";s.remove();for(const s of e.lst){t.append("div").text(s)}}catch(t){s.text(t.message||t);if(t.stack)console.error(t.stack)}}))))}}if(this.data.headermessage){l.append("div").html(this.data.headermessage)}p.append("div").text("ProteinPaint").style("display","inline-block").style("padding",s).style("color",f).style("font-size","1.3em").style("font-weight","bold");const d=new k({holder:p,tip:this.headtip,style:{padding:a,border:`'solid 1px ${f}`},size:32,placeholder:"Gene, position, SNP, app, or dataset",title:"Search by gene, SNP, position, app, or dataset",searchItems:()=>t(this,void 0,void 0,(function*(){return yield _(this.app,this.headtip,K.help,this.publications,this.jwt)}))});d.initUI();const c=p.append("div").attr("class","sjpp-genome-select-div").style("padding",a);const h=()=>{const t=this.app.genomes[this.app.selectgenome.property("value")];const e=["Gene","position","app"];if(t.hasSNP)e.splice(2,0,"SNP");if(Object.keys(t.datasets).length)e.push("dataset");const s=e.join(", ").replace(/,(?=[^,]*$)/,", or");return s};this.app.selectgenome=c.append("select").attr("title","Select a genome").attr("class","sjpp-genome-select").style("padding",i).style("border","solid 1px "+f).on("change",(()=>{this.update_genome_browser_btn(this.app);d.updatePlaceholder(h())}));const m=Object.values(this.app.genomes).filter((t=>!t.hideOnClient));for(const t of m){this.app.selectgenome.append("option").attr("n",t.name).text(`${t.species} ${t.name}`).property("value",t.name)}this.app.genome_browser_btn=this.make_genome_browser_btn(this.app,p,this.jwt);this.app.drawer=yield G({holder:this.app.holder,genomes:this.app.genomes,drawerRow:this.app.holder.append("div").style("position","relative").style("overflow-x","visible").style("overflow-y","hidden").classed("sjpp-drawer-row",true),sandboxDiv:this.app.holder.append("div").style("margin-top","15px").classed("sjpp-drawer-sandbox",true),genome_browser_btn:this.app.genome_browser_btn,debugmode:this.app.debugmode,headbox:p,padw_sm:a,cardsPath:this.app.cardsPath});p.append("span").classed("sja_menuoption",true).attr("id","sjpp-header-help-btn").style("padding",a).text("Help").on("click",(e=>t(this,void 0,void 0,(function*(){const t=e.target.getBoundingClientRect();const s=this.headtip.clear().show(t.left-0,t.top+t.height+5);yield s.d.append("div").style("padding","5px 20px").selectAll("p").data(K.help.filter((t=>!t.onlySearch))).enter().append("p").html((t=>`<a href=${t.link} target=_blank>${t.label}</a>`))}))));if(this.publications.length>0){p.append("span").classed("sja_menuoption",true).attr("id","sjpp-header-publications-btn").style("padding",a).style("margin","0px 5px").text("Publications").on("click",(e=>t(this,void 0,void 0,(function*(){const t=e.target.getBoundingClientRect();const s=this.headtip.clear().show(t.left-150,t.top+t.height+5);yield s.d.append("div").style("padding","5px 20px").selectAll("p").data(this.publications).enter().append("p").html((t=>`<a href=${t.doi} target=_blank>${t.appHeaderTitle}, ${t.journal}, ${t.year}</a>`))}))))}}))}make_genome_browser_btn(t,e,s){const i="8px";const a=e.append("span");const n=t.selectgenome.node().options[t.selectgenome.property("selectedIndex")].value;const o=a.attr("class","sja_menuoption").attr("id","genome_btn").style("padding",i).datum(n).text(n+" genome browser").on("click",(()=>{const e=t.selectgenome.node().value;const i=t.genomes[e];if(!i){alert("Invalid genome name: "+e);return}const a=r(t.drawer.opts.sandboxDiv);a.header.text(e+" genome browser");const n={hostURL:t.hostURL,jwt:s,holder:a.body,genome:i,chr:i.defaultcoord.chr,start:i.defaultcoord.start,stop:i.defaultcoord.stop,nobox:true,tklst:[],debugmode:t.debugmode};c(i,n.tklst);import("./block-dcb130fb.js").then((function(t){return t.c})).then((t=>new t.Block(n)));t.drawer.dispatch({type:"is_apps_btn_active",value:false})}));return o}update_genome_browser_btn(t){t.genome_browser_btn.text(t.selectgenome.node().value+" genome browser");t.genome_browser_btn.datum(t.selectgenome.node().value)}}K.help=[{label:"Embed in your website",link:"https://github.com/stjude/proteinpaint/wiki/Embedding"},{label:"URL parameters",link:"https://github.com/stjude/proteinpaint/wiki/URL-parameters"},{label:"All tutorials",link:"https://github.com/stjude/proteinpaint/wiki/"},{label:"User community",link:"https://groups.google.com/g/proteinpaint"},{label:"License ProteinPaint",link:"https://www.stjude.org/research/why-st-jude/shared-resources/technology-licensing/technologies/proteinpaint-web-application-for-visualizing-genomic-data-sj-15-0021.html",onlySearch:true},{label:"Our Team",link:"https://proteinpaint.stjude.org/team/",onlySearch:true}];export{K as AppHeader};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./axisstyle-fac7f76b.js";import{M as t,P as a,h as s,I as l,D as o,d as n,b as i}from"./app-a8c4854a.js";import{d as r,r as c}from"./table-79e3e776.js";import{controlsInit as d}from"./controls-0bacec22.js";import{b as p,a as g}from"./axis-747c801e.js";import"./tslib.es6-1f85f553.js";import"./controls.btns-1cb2bfab.js";import"./controls.config-0ccc9d79.js";import"./controls.overlay-fe20d41d.js";import"./roundValue-b0d0517c.js";import"path";import"./FilterRxComp-242f4615.js";import"./termdb.bins-9faa5170.js";import"./controls.term1-faa2efcf.js";import"./controls.divide-a9fe9466.js";const u="#ffa200";const h=new t;class m{constructor(){this.type="DEanalysis"}async init(e){e.plots.find((e=>e.id===this.id));const t=this.opts.holder.append("div").style("display","inline-block");const a=this.opts.holder.append("div").style("display","inline-block").style("margin-left","50px");const s=a.append("div").style("display","inline-block");const l=a.append("div").style("display","inline-block").style("vertical-align","top").style("margin-top","50px");const o=this.opts.holder.append("div").style("margin-left","50px");this.dom={holder:s,header:this.opts.header,controlsDiv:t,detailsDiv:l,tableDiv:o}}async setControls(e){this.dom.controlsDiv.selectAll("*").remove();const t=[{label:"Minimum read count",type:"number",chartType:"DEanalysis",settingsKey:"min_count",title:"Relative cpm cutoff for filtering a gene compared to all samples and genes in dataset",min:0,max:1e4},{label:"Minimum total read count",type:"number",chartType:"DEanalysis",settingsKey:"min_total_count",title:"Minimum total read count required for each sample",min:0,max:1e4},{label:"P-value significance (linear scale)",type:"number",chartType:"DEanalysis",settingsKey:"pvalue",title:"P-value significance",min:0,max:1},{label:"Fold change (log scale)",type:"number",chartType:"DEanalysis",settingsKey:"foldchange",title:"Fold change",min:-10,max:10},{label:"P-value table",type:"checkbox",chartType:"DEanalysis",settingsKey:"pvaluetable",title:"Display table showing original and adjusted pvalues for all significant genes",boxLabel:""},{label:"P-value",type:"radio",chartType:"DEanalysis",settingsKey:"adjusted_original_pvalue",title:"Toggle between original and adjusted pvalues for volcano plot",options:[{label:"adjusted",value:"adjusted"},{label:"original",value:"original"}]}];if(e.mid_sample_size_cutoff>=e.sample_size1&&e.mid_sample_size_cutoff<e.sample_size2&&e.sample_size2<e.high_sample_size_cutoff||e.mid_sample_size_cutoff>=e.sample_size2&&e.mid_sample_size_cutoff<e.sample_size1&&e.sample_size1<e.high_sample_size_cutoff){t.push({label:"Method",type:"radio",chartType:"DEanalysis",settingsKey:"method",title:"Toggle between edgeR and wilcoxon test",options:[{label:"edgeR",value:"edgeR"},{label:"wilcoxon",value:"wilcoxon"}]});this.settings.method=e.method;this.state.config=e.method}if(this.app.opts.genome.termdbs){t.push({label:"Gene set overrepresentation analysis",type:"radio",chartType:"DEanalysis",settingsKey:"gene_ora",title:"Toggle between analyzing upregulated, downregulated or both genes",options:[{label:"upregulated",value:"upregulated"},{label:"downregulated",value:"downregulated"},{label:"both",value:"both"}]})}if(this.app.opts.genome.termdbs&&!this.settings.gsea){t.push({label:"Gene set enrichment analysis",type:"radio",chartType:"DEanalysis",settingsKey:"gsea",title:"Gene set enrichment analysis",options:[{label:"Submit",value:"Submit"}]})}if(this.settings.pvaluetable==true){t.push({label:"Hierarchial Clustering",type:"radio",chartType:"DEanalysis",settingsKey:"hierCluster",title:"Toggle between various methods for selecting genes for hierarchial clustering",options:[{label:"Top 100 genes",value:"top100"},{label:"Top 100 upregulated",value:"top100up"},{label:"Top 100 downregulated",value:"top100down"}]});this.settings.hierCluster="top100"}this.components={controls:await d({app:this.app,id:this.id,holder:this.dom.controlsDiv,inputs:t})};this.components.controls.on("downloadClick.DEanalysis",(()=>{r(this.table_rows,this.table_cols)}))}getState(e){const t=e.plots.find((e=>e.id===this.id));if(!t)throw`No plot with id='${this.id}' found`;return{config:t}}async main(){this.config=JSON.parse(JSON.stringify(this.state.config));this.settings=this.config.settings.DEanalysis;if(this.dom.detailsDiv){this.dom.detailsDiv.selectAll("*").remove()}if(this.dom.holder){this.dom.holder.selectAll("*").remove()}const e=this.dom.detailsDiv.append("div").text("Loading...");const t=await D(this);e.remove();t.mid_sample_size_cutoff=8;t.high_sample_size_cutoff=30;await this.setControls(t);this.dom.header.style("opacity",.6).style("padding-left","10px").style("font-size","0.75em").text("DIFFERENTIAL GENE EXPRESSION");f(this,t)}}async function f(t,a){const s=a.sample_size1;const n=a.sample_size2;const i=a.data;const r=t.dom.holder;r.selectAll("*").remove();t.dom.detailsDiv.selectAll("*").remove();let d=0,h=0,m=0,f=0;for(const e of i){d=Math.min(d,e.fold_change);h=Math.max(h,e.fold_change);if(e.adjusted_p_value==0){continue}else{m=Math.min(m,e.adjusted_p_value);f=Math.max(f,e.adjusted_p_value)}}let _,v,b,y,j,D,E=50,M=50,k;const z=r.append("svg");const T=z.append("g");const P=z.append("g");const A=z.append("text").text("log2(fold change)").attr("fill","black").attr("text-anchor","middle");const R=z.append("text").text("-log10(adjusted P value)").attr("fill","black").attr("text-anchor","middle");i.vo_dotarea=z.append("g");const K=i.vo_dotarea.append("rect").attr("stroke","#ededed").attr("fill","none").attr("shape-rendering","crispEdges");const S=l().domain([d,h]);const C=l().domain([m,f]);const N=i.vo_dotarea.selectAll().data(i).enter().append("g").each((function(e){e.vo_g=this}));const G=t.settings.foldchange;if(t.settings.pvalue==0)throw"p-value significance cannot be zero";const F=-Math.log10(t.settings.pvalue);const O=t.settings.adjusted_original_pvalue;let I=0;let L=0;t.table_rows=[];const H=N.append("circle").attr("stroke",(e=>{let a;if(O=="adjusted"&&e.adjusted_p_value>F&&Math.abs(e.fold_change)>G){a="red";I+=1;t.table_rows.push([{value:e.gene_name},{value:e.gene_symbol},{value:e.fold_change.toPrecision(4)},{value:Math.pow(10,-e.original_p_value).toPrecision(4)},{value:Math.pow(10,-e.adjusted_p_value).toPrecision(4)}])}else if(O=="original"&&e.original_p_value>F&&Math.abs(e.fold_change)>G){a="red";I+=1;t.table_rows.push([{value:e.gene_name},{value:e.gene_symbol},{value:e.fold_change},{value:Math.pow(10,-e.original_p_value)},{value:Math.pow(10,-e.adjusted_p_value)}])}else{a="black";L+=1}return a})).attr("stroke-opacity",.2).attr("stroke-width",1).attr("fill",u).attr("fill-opacity",0).each((function(e){e.vo_circle=this})).on("mouseover",x).on("mouseout",w);t.table_rows.sort(((e,t)=>e[2].value-t[2].value)).reverse();const J=i.vo_dotarea.append("line").attr("stroke","#ccc").attr("shape-rendering","crispEdges");function X(t,a){b=t;y=a;_=Math.max(50,b/8);v=Math.max(50,y/8);k=Math.max(b,y)/80;const s=k*3;H.each((e=>{e.vo_radius=k}));j=Math.max(s,b/50);D=Math.max(s,y/50);T.attr("transform","translate("+_+","+E+")");P.attr("transform","translate("+(_+j)+","+(E+y+D)+")");A.attr("x",_+j+b/2).attr("y",E+y+D+v-5);R.attr("transform","translate(15,"+(E+y/2)+") rotate(-90)");i.vo_dotarea.attr("transform","translate("+(_+j)+","+E+")");K.attr("width",b).attr("height",y);S.range([0,b]);C.range([y,0]);N.attr("transform",(e=>"translate("+S(e.fold_change)+","+C(e.adjusted_p_value)+")"));H.attr("r",(e=>e.vo_radius));J.attr("x1",S(0)).attr("x2",S(0)).attr("y2",y);z.attr("width",_+j+b+M).attr("height",E+y+D+v);e({axis:T.call(p().scale(C)),color:"black",showline:true});e({axis:P.call(g().scale(S)),color:"black",showline:true})}X(400,400);if(i[0].adjusted_p_value!=undefined){r.append("div").style("margin","20px");m=0;f=0;let l;for(const e of i){let t;if(O=="adjusted"){t=e.adjusted_p_value}else{t=e.original_p_value}if(t==0)continue;m=Math.min(m,t);f=Math.max(f,t)}C.domain([m,f]);e({axis:T.call(p().scale(C)),color:"black",showline:true});N.attr("transform",(e=>{let t;if(O=="adjusted"){t=e.adjusted_p_value}else{t=e.original_p_value}return"translate("+S(e.fold_change)+","+C(t)+")"}));if(O=="adjusted"){l="-log10(adjusted P value)"}else{l="-log10(original P value)"}R.text(l);const d=o({holder:t.dom.detailsDiv});const g=[{label:"Percentage of significant genes",value:(I*100/(I+L)).toPrecision(2)},{label:"Number of significant genes",value:I},{label:"Number of total genes",value:I+L},{label:"Group1 sample size",value:s},{label:"Group2 sample size",value:n}];for(const e of g){const[t,a]=d.addRow();t.text(e.label);a.style("text-align","end").text(e.value)}t.table_cols=[{label:"Gene Name"},{label:"Gene Symbol"},{label:"log2 Fold change"},{label:"Original p-value (linear scale)"},{label:"Adjusted p-value (linear scale)"}];if(t.settings.pvaluetable==true){const e=t.dom.tableDiv.append("div").html(`<br>DE analysis results`);c({columns:t.table_cols,rows:t.table_rows,div:e,showLines:true,maxHeight:"150vh",resize:true})}else{t.dom.tableDiv.selectAll("*").remove()}if(t.settings.gene_ora&&t.app.opts.genome.termdbs){const e=[];const s=[];if(t.settings.gene_ora=="upregulated"){for(const t of a.data){if(t.gene_symbol.length>0){if(G<Math.abs(t.fold_change)&&t.fold_change>0){e.push(t.gene_symbol)}s.push(t.gene_symbol)}}}else if(t.settings.gene_ora=="downregulated"){for(const t of a.data){if(t.gene_symbol.length>0){if(G<Math.abs(t.fold_change)&&t.fold_change<0){e.push(t.gene_symbol)}s.push(t.gene_symbol)}}}else if(t.settings.gene_ora=="both"){for(const t of a.data){if(t.gene_symbol.length>0){if(G<Math.abs(t.fold_change)){e.push(t.gene_symbol)}s.push(t.gene_symbol)}}}else{console.log("Unrecognized option")}const l={sample_genes:e.toString(),background_genes:s.toString(),genome:t.app.vocabApi.opts.state.vocab.genome};const o={chartType:"geneORA",geneORAparams:l};t.app.dispatch({type:"plot_create",config:o})}if(t.settings.gsea&&t.app.opts.genome.termdbs){const e={genes:a.data.map((e=>e.gene_symbol)),fold_change:a.data.map((e=>e.fold_change)),genome:t.app.vocabApi.opts.state.vocab.genome};const s={chartType:"gsea",gsea_params:e};t.app.dispatch({type:"plot_create",config:s})}}return z}async function _(e,t){try{if(e.samplelst.groups.length!=2)throw"opts.samplelst.groups[].length!=2";if(e.samplelst.groups[0].values?.length<1)throw"group 1 not having >1 samples";if(e.samplelst.groups[1].values?.length<1)throw"group 2 not having >1 samples";const t={settings:{DEanalysis:{pvalue:.05,foldchange:2,min_count:10,min_total_count:15,pvaluetable:false,adjusted_original_pvalue:"adjusted",method:undefined,gene_ora:undefined,gsea:undefined}}};return a(t,e)}catch(e){throw`${e} [DEanalysis getPlotConfig()]`}}const v=s(m);const b=v;function y(e,t){t.prepPlot({config:{chartType:"DEanalysis"}})}function x(e,t){h.clear().show(e.clientX,e.clientY);const a=[{k:"gene_name",v:t.gene_name},{k:"gene_symbol",v:t.gene_symbol},{k:"log fold change",v:t.fold_change.toPrecision(6)},{k:"log original p-value",v:t.original_p_value.toPrecision(6)},{k:"log adjusted p-value",v:t.adjusted_p_value.toPrecision(6)}];const s=o({holder:h.d});for(const e of a){const[t,a]=s.addRow();t.text(e.k);a.text(e.v)}if(!t.ma_label){n(t.ma_circle).attr("fill-opacity",.9);n(t.vo_circle).attr("fill-opacity",.9)}}function w(e,t){h.hide();if(!t.ma_label){n(t.ma_circle).attr("fill-opacity",0);n(t.vo_circle).attr("fill-opacity",0)}}async function j(e,t,a,s,l){e.term?e:{term:e};let o={chartType:"hierCluster",genes:["barchart",xxx]};if(s)o.insertBefore=s;if(l)o.id=l();await a.dispatch({type:"plot_create",config:o})}async function D(e){const t=await i("DEanalysis",{body:{genome:e.app.vocabApi.vocab.genome,dslabel:e.app.vocabApi.vocab.dslabel,samplelst:e.config.samplelst,min_count:e.settings.min_count,min_total_count:e.settings.min_total_count,method:e.settings.method}});if(t.error)console.log("server side error:",t.error);return t}export{v as DEanalysisInit,b as componentInit,_ as getPlotConfig,y as makeChartBtnMenu,j as openHiercluster};
|