@sjcrh/proteinpaint-client 2.181.0 → 2.183.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-6ZTETSC5.js +1371 -0
- package/dist/AIProjectAdmin-ZT3XKBBT.js +830 -0
- package/dist/AIProjectAdmin-ZT3XKBBT.js.map +7 -0
- package/dist/AppHeader-U7SJPIBS.js +833 -0
- package/dist/BoxPlot-QGHLZ67V.js +1217 -0
- package/dist/BoxPlot-QGHLZ67V.js.map +7 -0
- package/dist/CorrelationVolcano-7SE4CTBW.js +617 -0
- package/dist/DE-PZ7RHPBS.js +93 -0
- package/dist/DE-PZ7RHPBS.js.map +7 -0
- package/dist/DEinput-UZEQIU2V.js +297 -0
- package/dist/DEinput-UZEQIU2V.js.map +7 -0
- package/dist/DifferentialAnalysis-L6BOEYVO.js +238 -0
- package/dist/Disco-6FDT6KRM.js +3235 -0
- package/dist/Disco-6FDT6KRM.js.map +7 -0
- package/dist/Disco.UI-HKOUAD4P.js +242 -0
- package/dist/DmrPlot-3R24PTXP.js +640 -0
- package/dist/GB-SZVYZASR.js +1125 -0
- package/dist/HicApp-SEEJETVE.js +2248 -0
- package/dist/NumBinaryEditor-SDQFJ3FW.js +268 -0
- package/dist/NumBinaryEditor-SDQFJ3FW.js.map +7 -0
- package/dist/NumBinaryEditor.unit.spec-76ZZXTYC.js +284 -0
- package/dist/NumContEditor-G75O4YZE.js +105 -0
- package/dist/NumContEditor.unit.spec-BFUZRBPL.js +167 -0
- package/dist/NumCustomBinEditor-ILTPHCEF.js +36 -0
- package/dist/NumCustomBinEditor.unit.spec-GFIYV55V.js +282 -0
- package/dist/NumDiscreteEditor-5K3OKUOE.js +177 -0
- package/dist/NumDiscreteEditor-5K3OKUOE.js.map +7 -0
- package/dist/NumDiscreteEditor.unit.spec-NZ4KWPFK.js +200 -0
- package/dist/NumRegularBinEditor-7ZJ2MEMY.js +36 -0
- package/dist/NumRegularBinEditor.unit.spec-QGVJET65.js +225 -0
- package/dist/NumSplineEditor-KE4UPODZ.js +190 -0
- package/dist/NumSplineEditor-KE4UPODZ.js.map +7 -0
- package/dist/NumSplineEditor.unit.spec-YQOOZA7S.js +197 -0
- package/dist/NumericDensity-RL42P4QC.js +36 -0
- package/dist/NumericDensity.unit.spec-Y6RMTYC7.js +219 -0
- package/dist/NumericHandler-4QIX324I.js +37 -0
- package/dist/NumericHandler.unit.spec-T6F5QYP6.js +217 -0
- package/dist/RunChart2-ASGCKKER.js +756 -0
- package/dist/RunChart2-ASGCKKER.js.map +7 -0
- package/dist/SC-H2YCKSBH.js +682 -0
- package/dist/SC-H2YCKSBH.js.map +7 -0
- package/dist/Volcano-QBYYJYVW.js +1185 -0
- package/dist/Volcano-QBYYJYVW.js.map +7 -0
- package/dist/WSIViewer-NDHWFVAB.js +47974 -0
- package/dist/WSIViewer-NDHWFVAB.js.map +7 -0
- package/dist/WsiSamplesPlot-CXGWPCDL.js +163 -0
- package/dist/adSandbox-DE4VRO4Z.js +36 -0
- package/dist/alphaGenome-FSIGC5ZT.js +173 -0
- package/dist/app-KZGKWQMU.js +47 -0
- package/dist/app-MQRJ7FVL.js +35 -0
- package/dist/app.js +17 -17
- package/dist/bam-BDWTA4O3.js +857 -0
- package/dist/bam-BDWTA4O3.js.map +7 -0
- package/dist/barchart-4Q6LVJY4.js +45 -0
- package/dist/barchart.data-EXENRVMU.js +22 -0
- package/dist/barchart.events-XRGND6I7.js +45 -0
- package/dist/barchart.integration.spec-VQITP4YH.js +1675 -0
- package/dist/bars.renderer-S7A7I6BQ.js +12 -0
- package/dist/block-2MABX5QO.js +6200 -0
- package/dist/block-2MABX5QO.js.map +7 -0
- package/dist/block.init-NCNSE3HD.js +36 -0
- package/dist/block.mds.expressionrank-JYZARS7T.js +357 -0
- package/dist/block.mds.geneboxplot-FD2MCIHV.js +826 -0
- package/dist/block.mds.junction-LOHVQBIU.js +1543 -0
- package/dist/block.mds.svcnv-Z7SAYPQL.js +6799 -0
- package/dist/block.svg-LNJOKQNN.js +162 -0
- package/dist/block.tk.aicheck-IXCMMAGV.js +281 -0
- package/dist/block.tk.ase-WYRYFP6N.js +363 -0
- package/dist/block.tk.bam-EIVBNGAL.js +1904 -0
- package/dist/block.tk.bedgraphdot-3FHLNCU7.js +382 -0
- package/dist/block.tk.bigwig.ui-YDQU5PC4.js +209 -0
- package/dist/block.tk.hicstraw-S3ROL3CV.js +821 -0
- package/dist/block.tk.junction-DL7RNWX3.js +2362 -0
- package/dist/block.tk.junction.textmatrixui-Z6I7IEDY.js +197 -0
- package/dist/block.tk.ld-XHVU6L56.js +97 -0
- package/dist/block.tk.menu-FPLAEEFY.js +1027 -0
- package/dist/block.tk.pgv-6ZZ2QGNO.js +942 -0
- package/dist/brainImaging-VSOOMITW.js +421 -0
- package/dist/chat-LW23PIG5.js +148 -0
- package/dist/chunk-2A2KM5DU.js +117 -0
- package/dist/chunk-2A2KM5DU.js.map +7 -0
- package/dist/chunk-2LULD7RN.js +31 -0
- package/dist/chunk-36DYWBU7.js +514 -0
- package/dist/chunk-36DYWBU7.js.map +7 -0
- package/dist/chunk-3AGB6HL4.js +158 -0
- package/dist/chunk-3AVDNIDN.js +55 -0
- package/dist/chunk-3DCABJHB.js +381 -0
- package/dist/chunk-3JMB3OSC.js +102 -0
- package/dist/chunk-3UEMY45Y.js +215 -0
- package/dist/chunk-3UEMY45Y.js.map +7 -0
- package/dist/chunk-4RR4KPRJ.js +1205 -0
- package/dist/chunk-4RR4KPRJ.js.map +7 -0
- package/dist/chunk-5RFB7TYT.js +92 -0
- package/dist/chunk-5UMPBVA6.js +534 -0
- package/dist/chunk-6C2SBTLR.js +407 -0
- package/dist/chunk-6C2SBTLR.js.map +7 -0
- package/dist/chunk-6ITDJ5UR.js +261 -0
- package/dist/chunk-6ITDJ5UR.js.map +7 -0
- package/dist/chunk-6LAE5AVA.js +13624 -0
- package/dist/chunk-77ZJGPK2.js +289 -0
- package/dist/chunk-77ZJGPK2.js.map +7 -0
- package/dist/chunk-7FKIAQ4K.js +17 -0
- package/dist/chunk-7FKIAQ4K.js.map +7 -0
- package/dist/chunk-7RN3L2BX.js +1788 -0
- package/dist/chunk-7RN3L2BX.js.map +7 -0
- package/dist/chunk-7VV43ICF.js +272 -0
- package/dist/chunk-A6TQGNDQ.js +421 -0
- package/dist/chunk-A6TQGNDQ.js.map +7 -0
- package/dist/chunk-A742TQD2.js +615 -0
- package/dist/chunk-A7E3JZ5P.js +56 -0
- package/dist/chunk-A7E3JZ5P.js.map +7 -0
- package/dist/chunk-AFLFPYJI.js +480 -0
- package/dist/chunk-APOHXHKH.js +526 -0
- package/dist/chunk-APOHXHKH.js.map +7 -0
- package/dist/chunk-BAY47D5E.js +226 -0
- package/dist/chunk-CFHKYLDY.js +26 -0
- package/dist/chunk-CTAKX5CT.js +129 -0
- package/dist/chunk-CVBQWXLH.js +455 -0
- package/dist/chunk-CVBQWXLH.js.map +7 -0
- package/dist/chunk-D4QFQQWJ.js +170 -0
- package/dist/chunk-DGMK7SXX.js +203 -0
- package/dist/chunk-DNCSPTOQ.js +446 -0
- package/dist/chunk-DTDQKGIQ.js +2672 -0
- package/dist/chunk-E4NVHKWD.js +142 -0
- package/dist/chunk-E6KEZENR.js +4207 -0
- package/dist/chunk-E6KEZENR.js.map +7 -0
- package/dist/chunk-EY2KBPHJ.js +261 -0
- package/dist/chunk-EY2KBPHJ.js.map +7 -0
- package/dist/chunk-FRBYOOWT.js +229 -0
- package/dist/chunk-FRBYOOWT.js.map +7 -0
- package/dist/chunk-HWHG63LH.js +148 -0
- package/dist/chunk-HWHG63LH.js.map +7 -0
- package/dist/chunk-HYZG6OPC.js +467 -0
- package/dist/chunk-HYZG6OPC.js.map +7 -0
- package/dist/chunk-I4IKRKYJ.js +2815 -0
- package/dist/chunk-IEQSUAIO.js +6364 -0
- package/dist/chunk-IET6P5MV.js +335 -0
- package/dist/chunk-IET6P5MV.js.map +7 -0
- package/dist/chunk-JMPSZMDD.js +52 -0
- package/dist/chunk-JXOL73PT.js +2784 -0
- package/dist/chunk-K62XUHA4.js +100 -0
- package/dist/chunk-KQMEJUWI.js +815 -0
- package/dist/chunk-L4YGMXLX.js +37 -0
- package/dist/chunk-L4YGMXLX.js.map +7 -0
- package/dist/chunk-M7W2GYSM.js +4961 -0
- package/dist/chunk-M7W2GYSM.js.map +7 -0
- package/dist/chunk-MV6O4I2B.js +441 -0
- package/dist/chunk-MXNSW55L.js +148 -0
- package/dist/chunk-NB7NLFGZ.js +228 -0
- package/dist/chunk-NGGWK6HX.js +302 -0
- package/dist/chunk-OGGFS66K.js +1087 -0
- package/dist/chunk-OSM7YS23.js +276 -0
- package/dist/chunk-OXJ2TWDO.js +20644 -0
- package/dist/chunk-OXJ2TWDO.js.map +7 -0
- package/dist/chunk-Q7PYFSNU.js +107 -0
- package/dist/chunk-QMI222IJ.js +386 -0
- package/dist/chunk-QRIRWDIW.js +252 -0
- package/dist/chunk-R6L6NVEC.js +14 -0
- package/dist/chunk-RLTLYKHO.js +34 -0
- package/dist/chunk-S5ZI6N2I.js +293 -0
- package/dist/chunk-S7T7OZC7.js +158 -0
- package/dist/chunk-S7T7OZC7.js.map +7 -0
- package/dist/chunk-TEZLFSOV.js +54 -0
- package/dist/chunk-TFI7ZZJG.js +50 -0
- package/dist/chunk-TFI7ZZJG.js.map +7 -0
- package/dist/chunk-UEMTP6ZC.js +824 -0
- package/dist/chunk-UJU3Q7QJ.js +119 -0
- package/dist/chunk-V245THQC.js +2370 -0
- package/dist/chunk-V6DLLX4N.js +176 -0
- package/dist/chunk-V6DLLX4N.js.map +7 -0
- package/dist/chunk-VIPMLSZP.js +217 -0
- package/dist/chunk-VQPS4SXU.js +97 -0
- package/dist/chunk-VQPS4SXU.js.map +7 -0
- package/dist/chunk-VUUZJANK.js +1150 -0
- package/dist/chunk-VYIO7T6J.js +82 -0
- package/dist/chunk-VYIO7T6J.js.map +7 -0
- package/dist/chunk-W345H42C.js +273 -0
- package/dist/chunk-W345H42C.js.map +7 -0
- package/dist/chunk-WGHO2NCP.js +205 -0
- package/dist/chunk-WGL6FIUE.js +330 -0
- package/dist/chunk-WPHOEG56.js +194 -0
- package/dist/chunk-WS5XVKPJ.js +470 -0
- package/dist/chunk-X6URQAFD.js +1271 -0
- package/dist/chunk-X6URQAFD.js.map +7 -0
- package/dist/chunk-XYFDBYOY.js +1658 -0
- package/dist/chunk-XYFDBYOY.js.map +7 -0
- package/dist/chunk-Y6RCKITI.js +1155 -0
- package/dist/chunk-Y6RCKITI.js.map +7 -0
- package/dist/chunk-YALAQWX4.js +368 -0
- package/dist/chunk-YALAQWX4.js.map +7 -0
- package/dist/chunk-YK5NFMHR.js +269 -0
- package/dist/chunk-YK5NFMHR.js.map +7 -0
- package/dist/chunk-YY4CKQJ6.js +95 -0
- package/dist/chunk-Z3KV6SC2.js +629 -0
- package/dist/chunk-ZGT4XP5J.js +1426 -0
- package/dist/chunk-ZGT4XP5J.js.map +7 -0
- package/dist/chunk-ZIBWLDQI.js +230 -0
- package/dist/chunk-ZIBWLDQI.js.map +7 -0
- package/dist/condition-JKQIRMMW.js +330 -0
- package/dist/controls-324AGOZG.js +39 -0
- package/dist/controls.config-TA4NNARU.js +37 -0
- package/dist/correlation-3Z36TKC2.js +96 -0
- package/dist/cuminc-4DY2CSZF.js +1147 -0
- package/dist/cuminc.integration.spec-SFQPLMSF.js +676 -0
- package/dist/customdata.inputui-IKGPEBXV.js +287 -0
- package/dist/customdata.inputui-IKGPEBXV.js.map +7 -0
- package/dist/dataDownload-3AE2N7KI.js +328 -0
- package/dist/dataDownload.integration.spec-DKOT6BJP.js +191 -0
- package/dist/databrowser.ui-ATODRS5P.js +419 -0
- package/dist/dictionary-WHDZBW5M.js +109 -0
- package/dist/dictionary-WHDZBW5M.js.map +7 -0
- package/dist/dnaMethylation-TVA5YMOR.js +36 -0
- package/dist/dnaMethylation.integration.spec-JTWQR6XY.js +165 -0
- package/dist/dnaMethylation.integration.spec-JTWQR6XY.js.map +7 -0
- package/dist/e2pca-KHVDNFEZ.js +348 -0
- package/dist/ep-B5GAAMNM.js +1254 -0
- package/dist/expclust.gdc.spec-EDPX7V6K.js +305 -0
- package/dist/facet-ZCSXKXIO.js +519 -0
- package/dist/geneExpClustering-ERNCMAED.js +246 -0
- package/dist/geneExpression-HUOXWETT.js +36 -0
- package/dist/geneExpression-X2KXJPND.js +312 -0
- package/dist/geneExpression.unit.spec-5QQB4ISW.js +100 -0
- package/dist/geneORA-B5UK77KL.js +276 -0
- package/dist/geneVariant-7MGUAIZ6.js +39 -0
- package/dist/geneVariant-FK3KZJ2K.js +37 -0
- package/dist/geneVariant.integration.spec-C6TYWKIC.js +196 -0
- package/dist/genefusion.ui-VKAINMY7.js +249 -0
- package/dist/geneset-673KAZVX.js +194 -0
- package/dist/genomeBrowser.spec-T6TQCJ3O.js +279 -0
- package/dist/grin2-376BD4XY.js +1554 -0
- package/dist/grin2-OALS75LC.js +1031 -0
- package/dist/gsea-25LD2LGP.js +45 -0
- package/dist/hierCluster-7KU3K52V.js +58 -0
- package/dist/hierCluster-M5VVWKQK.js +62 -0
- package/dist/hierCluster.config-EDO3SH2P.js +38 -0
- package/dist/hierCluster.integration.spec-UOX7J2XD.js +374 -0
- package/dist/hierCluster.interactivity-FEFZDXML.js +52 -0
- package/dist/hierCluster.renderers-A6MEGO2B.js +21 -0
- package/dist/imagePlot-FPXZ2H5Z.js +139 -0
- package/dist/importPlot-VKWPSFEK.js +8 -0
- package/dist/isoformExpression-2R2TOB6P.js +38 -0
- package/dist/isoformExpression.unit.spec-ZKFKOPKT.js +206 -0
- package/dist/isoformExpression.unit.spec-ZKFKOPKT.js.map +7 -0
- package/dist/jspdf.es.min-FC3BCETM.js +40 -0
- package/dist/launch.adhoc-242RS6DW.js +40 -0
- package/dist/leftlabel.sample-OJW3AE64.js +257 -0
- package/dist/lollipop-TRQ3LK7Y.js +166 -0
- package/dist/maf-ZBOLN2FE.js +450 -0
- package/dist/maf-ZBOLN2FE.js.map +7 -0
- package/dist/maftimeline-GVX7NJP7.js +591 -0
- package/dist/matrix-73KRNXLM.js +57 -0
- package/dist/matrix-US3OXYRY.js +62 -0
- package/dist/matrix.cells-U7AQNEBP.js +28 -0
- package/dist/matrix.config-Q57D7C3F.js +39 -0
- package/dist/matrix.controls-AWXDRSWP.js +37 -0
- package/dist/matrix.data-EEIY6AO4.js +25 -0
- package/dist/matrix.dom-6QL3AJMW.js +11 -0
- package/dist/matrix.groups-CUB6UWC5.js +26 -0
- package/dist/matrix.integration.spec-PQH67KRM.js +3070 -0
- package/dist/matrix.interactivity-JW4AXAWO.js +40 -0
- package/dist/matrix.layout-I56KRVCO.js +42 -0
- package/dist/matrix.legend-42LQGAGX.js +22 -0
- package/dist/matrix.renderers-IX3FCNBK.js +36 -0
- package/dist/matrix.serieses-4B2WB526.js +21 -0
- package/dist/matrix.sort-BJACNR7G.js +27 -0
- package/dist/matrix.sort.unit.spec-3KKDKIPY.js +470 -0
- package/dist/matrix.sorterUi-W6XFYZY2.js +18 -0
- package/dist/matrix.sorterUi.unit.spec-CMJ7EBIW.js +340 -0
- package/dist/mavb-ROAE6WYA.js +730 -0
- package/dist/mds.fimo-UGK5OWCF.js +516 -0
- package/dist/mds.samplescatterplot-5KFUAYSB.js +1548 -0
- package/dist/mds.survivalplot-2EVNZUX5.js +481 -0
- package/dist/oncomatrix-UGFXSXQJ.js +293 -0
- package/dist/oncomatrix-UGFXSXQJ.js.map +7 -0
- package/dist/oncomatrix.spec-FEP7BR7L.js +446 -0
- package/dist/plot.2dvaf-WXGLWCOC.js +375 -0
- package/dist/plot.app-IZAFRTBU.js +39 -0
- package/dist/plot.barplot-Z4VWOPFJ.js +100 -0
- package/dist/plot.boxplot-QU2KZSB7.js +150 -0
- package/dist/plot.brainImaging-U643YIK7.js +51 -0
- package/dist/plot.disco-3BV6YEBC.js +101 -0
- package/dist/plot.disco-3BV6YEBC.js.map +7 -0
- package/dist/plot.dzi-DWXPOOQE.js +33 -0
- package/dist/plot.ssgq-GXB2GZO3.js +137 -0
- package/dist/plot.vaf2cov-EKRIADPB.js +257 -0
- package/dist/plot.wsi-E2LLE6HI.js +36 -0
- package/dist/polar-MZLIUXHO.js +184 -0
- package/dist/polar2-IUVHNQM4.js +226 -0
- package/dist/profile.spec-JRW6KYUI.js +78 -0
- package/dist/profileBarchart-N7HJMYZ5.js +265 -0
- package/dist/profileForms-Q5TPGPQP.js +438 -0
- package/dist/profilePlot-TXTUYDVE.js +52 -0
- package/dist/profileRadar-ICEASI7W.js +261 -0
- package/dist/profileRadarFacility-NFMRNJYX.js +261 -0
- package/dist/profileRadarFacility-NFMRNJYX.js.map +7 -0
- package/dist/proteinView-K3JFNORQ.js +633 -0
- package/dist/proteinView-K3JFNORQ.js.map +7 -0
- package/dist/proteomeAbundance-DE4NVBCN.js +21 -0
- package/dist/proteomeAbundance-LTB3QR3G.js +63 -0
- package/dist/qualitative-DFGWQURY.js +41 -0
- package/dist/regression-TTQTAEGD.js +54 -0
- package/dist/regression.inputs-2LU2XRGC.js +46 -0
- package/dist/regression.inputs.term-G57GL57T.js +46 -0
- package/dist/regression.inputs.values.table-JSEM3PXL.js +43 -0
- package/dist/regression.integration.spec-XJQJAIC3.js +782 -0
- package/dist/regression.integration.spec-XJQJAIC3.js.map +7 -0
- package/dist/regression.results-3YNM6LLQ.js +38 -0
- package/dist/regression.spec-S6WFCPSW.js +706 -0
- package/dist/report-YRAV4MY4.js +220 -0
- package/dist/sampleScatter.spec-MBJ4XNTX.js +200 -0
- package/dist/sampleView-IUR3ZEN7.js +46 -0
- package/dist/samplelst-C2NBFGH6.js +109 -0
- package/dist/samplematrix-AOK2HHSB.js +2196 -0
- package/dist/sc-XT3Z5XJI.js +84 -0
- package/dist/scatter-SAHKZRFL.js +800 -0
- package/dist/scatter.integration.spec-6KRDNHHH.js +1194 -0
- package/dist/scatter.integration.spec-6KRDNHHH.js.map +7 -0
- package/dist/selectGenomeWithTklst-2YVZ4JWV.js +132 -0
- package/dist/singleCellCellType-NFN5GQJM.js +36 -0
- package/dist/singleCellCellType.unit.spec-CR4IJ4DA.js +158 -0
- package/dist/singleCellCellType.unit.spec-CR4IJ4DA.js.map +7 -0
- package/dist/singleCellGeneExpression-7AQGLXTR.js +36 -0
- package/dist/singleCellGeneExpression.unit.spec-QYNWSV2G.js +151 -0
- package/dist/singleCellGeneExpression.unit.spec-QYNWSV2G.js.map +7 -0
- package/dist/singleCellPlot-IWFEG44C.js +51 -0
- package/dist/singlecell-3QNV4OMZ.js +1570 -0
- package/dist/singlecell-EATPLH66.js +84 -0
- package/dist/snp-UP7WL7WG.js +36 -0
- package/dist/snp.unit.spec-Y5NWQ442.js +174 -0
- package/dist/snplocus-WAQK2AZG.js +206 -0
- package/dist/spliceevent.a53ss.diagram-FFK27UIB.js +149 -0
- package/dist/spliceevent.exonskip.diagram-KWEF2OZJ.js +275 -0
- package/dist/spliceevent.noeventdiagram-PU4TI7OM.js +458 -0
- package/dist/ssGSEA-N6QOAVLW.js +36 -0
- package/dist/ssGSEA.unit.spec-KQBNZNNP.js +86 -0
- package/dist/summarizeCnvGeneexp-NWX4M6LZ.js +161 -0
- package/dist/summarizeCnvGeneexp-NWX4M6LZ.js.map +7 -0
- package/dist/summarizeGeneexpSurvival-N5VTE2G6.js +106 -0
- package/dist/summarizeGeneexpSurvival-N5VTE2G6.js.map +7 -0
- package/dist/summarizeMutationCnv-VV7CVAA7.js +162 -0
- package/dist/summarizeMutationCnv-VV7CVAA7.js.map +7 -0
- package/dist/summarizeMutationDiagnosis-5RHSG7L6.js +38 -0
- package/dist/summarizeMutationSurvival-22YYXGS5.js +97 -0
- package/dist/summary-P3WIKJS7.js +47 -0
- package/dist/summary.integration.spec-ULGRPICW.js +412 -0
- package/dist/summaryInput-IH4EVNF5.js +218 -0
- package/dist/sunburst-VJJ3UVYC.js +282 -0
- package/dist/sunburst-VJJ3UVYC.js.map +7 -0
- package/dist/survival-2ZE3N62A.js +44 -0
- package/dist/survival-ASCLKIII.js +56 -0
- package/dist/survival.integration.spec-C5YXOY77.js +787 -0
- package/dist/svg2pdf.es.min-CYTPRWNB.js +3157 -0
- package/dist/svgraph-AYR2UPNK.js +1385 -0
- package/dist/svmr-MOMW5DNY.js +3840 -0
- package/dist/table-PQB6KCEY.js +198 -0
- package/dist/termCollection-5AY2AWT4.js +36 -0
- package/dist/termCollection-OQMUUTW6.js +177 -0
- package/dist/termCollection.unit.spec-BUAXYIJK.js +206 -0
- package/dist/tk-EJLFFA5H.js +44 -0
- package/dist/tp.ui-WUW6A7KP.js +1457 -0
- package/dist/tvs.dt-MVJXQMNU.js +37 -0
- package/dist/tvs.dtcnv.categorical-FIIDWVK7.js +38 -0
- package/dist/tvs.dtcnv.continuous-JPQU3JA2.js +70 -0
- package/dist/tvs.dtfusion-BW35GOQM.js +38 -0
- package/dist/tvs.dtsnvindel-AEMFZ4EH.js +38 -0
- package/dist/tvs.dtsv-JHTU7UFD.js +38 -0
- package/dist/tvs.samplelst-VD2NFFFS.js +102 -0
- package/dist/tvs.termCollection-IKE5Q74D.js +151 -0
- package/dist/violin-DPMJLHQG.js +44 -0
- package/dist/violin.integration.spec-A4PNR4ES.js +1423 -0
- package/dist/violin.integration.spec-A4PNR4ES.js.map +7 -0
- package/dist/violin.interactivity-TS4DYUE5.js +36 -0
- package/dist/violin.renderer-53L4PXUT.js +38 -0
- package/dist/vocabulary-4MPFHKYC.js +39 -0
- package/package.json +3 -3
- package/dist/2dmaf-PFPBHIUI.js +0 -1371
- package/dist/AIProjectAdmin-H2GB5ZOX.js +0 -830
- package/dist/AIProjectAdmin-H2GB5ZOX.js.map +0 -7
- package/dist/AppHeader-FCWML6WH.js +0 -833
- package/dist/BoxPlot-QKXGF76K.js +0 -1295
- package/dist/BoxPlot-QKXGF76K.js.map +0 -7
- package/dist/CorrelationVolcano-ZJ7Q6JBC.js +0 -617
- package/dist/DifferentialAnalysis-PWCFCWFY.js +0 -238
- package/dist/Disco-IE5JKIF2.js +0 -3199
- package/dist/Disco-IE5JKIF2.js.map +0 -7
- package/dist/Disco.UI-SR7LSJE3.js +0 -242
- package/dist/DmrPlot-UDY7GOSY.js +0 -640
- package/dist/GB-GNTOP5C6.js +0 -1125
- package/dist/HicApp-FZTJL3OA.js +0 -2248
- package/dist/NumBinaryEditor-R5QVG3C4.js +0 -266
- package/dist/NumBinaryEditor-R5QVG3C4.js.map +0 -7
- package/dist/NumBinaryEditor.unit.spec-BMVRI24W.js +0 -284
- package/dist/NumContEditor-6JT5D6IW.js +0 -105
- package/dist/NumContEditor.unit.spec-XBQF2SW6.js +0 -167
- package/dist/NumCustomBinEditor-MEKEFOQI.js +0 -36
- package/dist/NumCustomBinEditor.unit.spec-LEMQJHDT.js +0 -282
- package/dist/NumDiscreteEditor-U3N37XRQ.js +0 -170
- package/dist/NumDiscreteEditor-U3N37XRQ.js.map +0 -7
- package/dist/NumDiscreteEditor.unit.spec-WQM4DLKO.js +0 -200
- package/dist/NumRegularBinEditor-HQR5Y6P7.js +0 -36
- package/dist/NumRegularBinEditor.unit.spec-FL4IFT7L.js +0 -225
- package/dist/NumSplineEditor-OESWMWP5.js +0 -188
- package/dist/NumSplineEditor-OESWMWP5.js.map +0 -7
- package/dist/NumSplineEditor.unit.spec-HYOXO45B.js +0 -197
- package/dist/NumericDensity-GJZ4BBJS.js +0 -36
- package/dist/NumericDensity.unit.spec-6LXWAXW7.js +0 -219
- package/dist/NumericHandler-LZIMPOHS.js +0 -37
- package/dist/NumericHandler.unit.spec-ZSU35AMD.js +0 -217
- package/dist/RunChart2-7XV6TIFO.js +0 -756
- package/dist/RunChart2-7XV6TIFO.js.map +0 -7
- package/dist/SC-E4EYAG26.js +0 -733
- package/dist/SC-E4EYAG26.js.map +0 -7
- package/dist/Volcano-Z7TJK6PW.js +0 -1187
- package/dist/Volcano-Z7TJK6PW.js.map +0 -7
- package/dist/WSIViewer-ZH2XABLC.js +0 -47933
- package/dist/WSIViewer-ZH2XABLC.js.map +0 -7
- package/dist/WsiSamplesPlot-BL47MDHQ.js +0 -163
- package/dist/adSandbox-V3NTKVBC.js +0 -36
- package/dist/alphaGenome-IQVFCSWQ.js +0 -173
- package/dist/app-GJLZ2G2U.js +0 -47
- package/dist/app-YSD2U64Q.js +0 -35
- package/dist/bam-TRIF3AIQ.js +0 -849
- package/dist/bam-TRIF3AIQ.js.map +0 -7
- package/dist/barchart-GLLUYTAJ.js +0 -45
- package/dist/barchart.data-FRYRGKH3.js +0 -22
- package/dist/barchart.events-WODVSHRN.js +0 -45
- package/dist/barchart.integration.spec-6POS3V3T.js +0 -1675
- package/dist/bars.renderer-T5R3UIBW.js +0 -12
- package/dist/block-2QM37YSE.js +0 -6300
- package/dist/block-2QM37YSE.js.map +0 -7
- package/dist/block.init-7HDLKQVX.js +0 -36
- package/dist/block.mds.expressionrank-UIB25S6E.js +0 -357
- package/dist/block.mds.geneboxplot-4PQYO3MR.js +0 -826
- package/dist/block.mds.junction-DWFYZEC2.js +0 -1543
- package/dist/block.mds.svcnv-N3KJJ4GQ.js +0 -6799
- package/dist/block.svg-2HBDI7BT.js +0 -162
- package/dist/block.tk.aicheck-2M4522IQ.js +0 -281
- package/dist/block.tk.ase-URIKF6JD.js +0 -363
- package/dist/block.tk.bam-HTDMASHX.js +0 -1904
- package/dist/block.tk.bedgraphdot-RVKMSFCQ.js +0 -382
- package/dist/block.tk.bigwig.ui-7JPEOIKM.js +0 -209
- package/dist/block.tk.hicstraw-72J7UJ2J.js +0 -821
- package/dist/block.tk.junction-GGFMBCV5.js +0 -2362
- package/dist/block.tk.junction.textmatrixui-44SAYYWE.js +0 -197
- package/dist/block.tk.ld-XDKJFEOL.js +0 -97
- package/dist/block.tk.menu-46FOTM7H.js +0 -1027
- package/dist/block.tk.pgv-ZVONRT4B.js +0 -942
- package/dist/brainImaging-CSLO7ODJ.js +0 -421
- package/dist/chat-GMD22F3K.js +0 -148
- package/dist/chunk-22KWZOCN.js +0 -153
- package/dist/chunk-22KWZOCN.js.map +0 -7
- package/dist/chunk-2NQ4TM74.js +0 -48
- package/dist/chunk-2NQ4TM74.js.map +0 -7
- package/dist/chunk-2SRMRC6L.js +0 -421
- package/dist/chunk-2SRMRC6L.js.map +0 -7
- package/dist/chunk-2TIYJ3PH.js +0 -815
- package/dist/chunk-2UWHV2SB.js +0 -261
- package/dist/chunk-2UWHV2SB.js.map +0 -7
- package/dist/chunk-3656ZY4T.js +0 -237
- package/dist/chunk-3656ZY4T.js.map +0 -7
- package/dist/chunk-3TU6TRLQ.js +0 -98
- package/dist/chunk-3TU6TRLQ.js.map +0 -7
- package/dist/chunk-4FJ5GS6P.js +0 -4202
- package/dist/chunk-4FJ5GS6P.js.map +0 -7
- package/dist/chunk-4FO7KZY2.js +0 -534
- package/dist/chunk-4OEOQX4L.js +0 -334
- package/dist/chunk-4OEOQX4L.js.map +0 -7
- package/dist/chunk-5ZICCKEH.js +0 -4952
- package/dist/chunk-5ZICCKEH.js.map +0 -7
- package/dist/chunk-6UU7VPDO.js +0 -272
- package/dist/chunk-6YLQN7FF.js +0 -441
- package/dist/chunk-74QJDBIP.js +0 -480
- package/dist/chunk-75EBDB7G.js +0 -21
- package/dist/chunk-75EBDB7G.js.map +0 -7
- package/dist/chunk-7FXPMQRW.js +0 -34
- package/dist/chunk-A2Y3GEUH.js +0 -228
- package/dist/chunk-AAEXTQT3.js +0 -330
- package/dist/chunk-AG6HVFQY.js +0 -504
- package/dist/chunk-AG6HVFQY.js.map +0 -7
- package/dist/chunk-AHLUW2BN.js +0 -129
- package/dist/chunk-AYDXOUFX.js +0 -1275
- package/dist/chunk-AYDXOUFX.js.map +0 -7
- package/dist/chunk-BBIPZ2UF.js +0 -52
- package/dist/chunk-BBVOZ5BY.js +0 -230
- package/dist/chunk-BBVOZ5BY.js.map +0 -7
- package/dist/chunk-BHVDOW3W.js +0 -470
- package/dist/chunk-BNN32RI2.js +0 -36
- package/dist/chunk-BNN32RI2.js.map +0 -7
- package/dist/chunk-BQLC6QOH.js +0 -368
- package/dist/chunk-BQLC6QOH.js.map +0 -7
- package/dist/chunk-C5QOWZK6.js +0 -629
- package/dist/chunk-CJJ6LDZM.js +0 -170
- package/dist/chunk-CJJ6LDZM.js.map +0 -7
- package/dist/chunk-D4U5X2QQ.js +0 -261
- package/dist/chunk-D4U5X2QQ.js.map +0 -7
- package/dist/chunk-DV444SFD.js +0 -26
- package/dist/chunk-DWWAB4YQ.js +0 -102
- package/dist/chunk-FP5VKE3Z.js +0 -170
- package/dist/chunk-G2MAZI6I.js +0 -205
- package/dist/chunk-HLRNIO5K.js +0 -158
- package/dist/chunk-HTHH2B6D.js +0 -46
- package/dist/chunk-HTHH2B6D.js.map +0 -7
- package/dist/chunk-I7X6K4OL.js +0 -217
- package/dist/chunk-IC7SUXJD.js +0 -82
- package/dist/chunk-IC7SUXJD.js.map +0 -7
- package/dist/chunk-ITYEOGLB.js +0 -302
- package/dist/chunk-J6XKDYNZ.js +0 -276
- package/dist/chunk-JDX4E7ZO.js +0 -381
- package/dist/chunk-JWX7GYHP.js +0 -95
- package/dist/chunk-KISFQDQE.js +0 -258
- package/dist/chunk-KISFQDQE.js.map +0 -7
- package/dist/chunk-KLFROH3F.js +0 -203
- package/dist/chunk-KQSN7PUK.js +0 -215
- package/dist/chunk-KQSN7PUK.js.map +0 -7
- package/dist/chunk-L2ED35QZ.js +0 -2815
- package/dist/chunk-LLPFFNLV.js +0 -526
- package/dist/chunk-LLPFFNLV.js.map +0 -7
- package/dist/chunk-LRV4VWRF.js +0 -94
- package/dist/chunk-LRV4VWRF.js.map +0 -7
- package/dist/chunk-M464GTNI.js +0 -615
- package/dist/chunk-MDN3K2BG.js +0 -229
- package/dist/chunk-MDN3K2BG.js.map +0 -7
- package/dist/chunk-N46WTUX7.js +0 -286
- package/dist/chunk-N46WTUX7.js.map +0 -7
- package/dist/chunk-NBMJ2UMA.js +0 -194
- package/dist/chunk-NI7VSKJI.js +0 -293
- package/dist/chunk-NTVM4ZPG.js +0 -2784
- package/dist/chunk-O64UTRAC.js +0 -252
- package/dist/chunk-OM326NV3.js +0 -100
- package/dist/chunk-P4ENJUBN.js +0 -386
- package/dist/chunk-PEKVBCIH.js +0 -824
- package/dist/chunk-PF6MKI4X.js +0 -92
- package/dist/chunk-PJTQP6RL.js +0 -54
- package/dist/chunk-PVSRVJBE.js +0 -1201
- package/dist/chunk-PVSRVJBE.js.map +0 -7
- package/dist/chunk-PZ3L3KM6.js +0 -55
- package/dist/chunk-QEHUEG4X.js +0 -1788
- package/dist/chunk-QEHUEG4X.js.map +0 -7
- package/dist/chunk-QXCVG66S.js +0 -2672
- package/dist/chunk-RIGZHHCP.js +0 -119
- package/dist/chunk-SEIANPCX.js +0 -142
- package/dist/chunk-SK7YVOQN.js +0 -148
- package/dist/chunk-SPPZB5ZQ.js +0 -158
- package/dist/chunk-SPPZB5ZQ.js.map +0 -7
- package/dist/chunk-T5KFRIP4.js +0 -1087
- package/dist/chunk-TTSNECVD.js +0 -1413
- package/dist/chunk-TTSNECVD.js.map +0 -7
- package/dist/chunk-TVXESYIR.js +0 -439
- package/dist/chunk-TVXESYIR.js.map +0 -7
- package/dist/chunk-U3UR3U3F.js +0 -446
- package/dist/chunk-UBS5UVIY.js +0 -13624
- package/dist/chunk-UFYU7AKL.js +0 -107
- package/dist/chunk-VIYGTRUZ.js +0 -6364
- package/dist/chunk-WCTH7CB3.js +0 -31
- package/dist/chunk-WGSWVYHY.js +0 -1155
- package/dist/chunk-WGSWVYHY.js.map +0 -7
- package/dist/chunk-WYZ4COTF.js +0 -226
- package/dist/chunk-WZRXJ5LL.js +0 -2370
- package/dist/chunk-XDI4UFCZ.js +0 -467
- package/dist/chunk-XDI4UFCZ.js.map +0 -7
- package/dist/chunk-XZZLEHWC.js +0 -20328
- package/dist/chunk-XZZLEHWC.js.map +0 -7
- package/dist/chunk-Y7JAPSMG.js +0 -406
- package/dist/chunk-Y7JAPSMG.js.map +0 -7
- package/dist/chunk-YJ2HC4CP.js +0 -1150
- package/dist/chunk-ZLH4PJKX.js +0 -1658
- package/dist/chunk-ZLH4PJKX.js.map +0 -7
- package/dist/chunk-ZZSDYKD5.js +0 -14
- package/dist/condition-S52W57ZO.js +0 -330
- package/dist/controls-B4MTTPWO.js +0 -39
- package/dist/controls.config-6KBCTIPN.js +0 -37
- package/dist/correlation-VSBCBFFP.js +0 -96
- package/dist/cuminc-T5ZPAGVB.js +0 -1147
- package/dist/cuminc.integration.spec-2QT3IPHU.js +0 -676
- package/dist/customdata.inputui-5MHQQHJL.js +0 -285
- package/dist/customdata.inputui-5MHQQHJL.js.map +0 -7
- package/dist/dataDownload-S4EBNHMW.js +0 -328
- package/dist/dataDownload.integration.spec-OVSIWI34.js +0 -191
- package/dist/databrowser.ui-EAJS3NXV.js +0 -419
- package/dist/dictionary-CQHSMVYF.js +0 -98
- package/dist/dictionary-CQHSMVYF.js.map +0 -7
- package/dist/dnaMethylation-G3F2INDH.js +0 -36
- package/dist/dnaMethylation.integration.spec-FWF4353K.js +0 -179
- package/dist/dnaMethylation.integration.spec-FWF4353K.js.map +0 -7
- package/dist/e2pca-SLXGPVHP.js +0 -348
- package/dist/ep-4HGUSDGJ.js +0 -1254
- package/dist/expclust.gdc.spec-JJ42ESKE.js +0 -305
- package/dist/facet-6WVTVKDV.js +0 -519
- package/dist/geneExpClustering-5LOZPD5X.js +0 -246
- package/dist/geneExpression-BJ46UGXW.js +0 -312
- package/dist/geneExpression-PTSZWKCM.js +0 -36
- package/dist/geneExpression.unit.spec-NW5HTO7F.js +0 -100
- package/dist/geneORA-H65EZ7QO.js +0 -276
- package/dist/geneVariant-T6GWOVZD.js +0 -39
- package/dist/geneVariant-WTDFZTXG.js +0 -37
- package/dist/geneVariant.integration.spec-OPSBRUM3.js +0 -196
- package/dist/genefusion.ui-RSBCC37C.js +0 -249
- package/dist/geneset-B67PAZVL.js +0 -194
- package/dist/genomeBrowser.spec-AUTULF4C.js +0 -279
- package/dist/grin2-CMBP7XVH.js +0 -1031
- package/dist/grin2-JVCNH3KW.js +0 -1554
- package/dist/gsea-H774WVPQ.js +0 -45
- package/dist/hierCluster-IQTXQUMI.js +0 -58
- package/dist/hierCluster-ZQJDXYBD.js +0 -62
- package/dist/hierCluster.config-ZHJTZK5L.js +0 -38
- package/dist/hierCluster.integration.spec-MSJ5GHHK.js +0 -374
- package/dist/hierCluster.interactivity-H2GNO6AA.js +0 -52
- package/dist/hierCluster.renderers-2TE6HMK2.js +0 -21
- package/dist/imagePlot-FMNMB7JZ.js +0 -139
- package/dist/importPlot-N66G43XX.js +0 -8
- package/dist/isoformExpression-B64WLO3H.js +0 -38
- package/dist/isoformExpression.unit.spec-D2R6CRKO.js +0 -126
- package/dist/isoformExpression.unit.spec-D2R6CRKO.js.map +0 -7
- package/dist/jspdf.es.min-DO4YWL2R.js +0 -40
- package/dist/launch.adhoc-MPRAJ3GN.js +0 -40
- package/dist/leftlabel.sample-4JCKYXED.js +0 -257
- package/dist/lollipop-25ADHT7O.js +0 -166
- package/dist/maf-POYTGXT4.js +0 -442
- package/dist/maf-POYTGXT4.js.map +0 -7
- package/dist/maftimeline-FOQF6O3X.js +0 -591
- package/dist/matrix-LHLAYDTQ.js +0 -57
- package/dist/matrix-ZKF7NRAD.js +0 -62
- package/dist/matrix.cells-H4TS74FJ.js +0 -28
- package/dist/matrix.config-HE7QUDER.js +0 -39
- package/dist/matrix.controls-VILCLNSC.js +0 -37
- package/dist/matrix.data-2OUWYD35.js +0 -25
- package/dist/matrix.dom-IZFFS4RQ.js +0 -11
- package/dist/matrix.groups-5BGJIOOJ.js +0 -26
- package/dist/matrix.integration.spec-DSXZHAEY.js +0 -3070
- package/dist/matrix.interactivity-VK3NWX5M.js +0 -40
- package/dist/matrix.layout-PUNMMNCC.js +0 -42
- package/dist/matrix.legend-QMERGVYU.js +0 -22
- package/dist/matrix.renderers-2KQ2NXSQ.js +0 -36
- package/dist/matrix.serieses-24G3XPJD.js +0 -21
- package/dist/matrix.sort-HTVT4K7C.js +0 -27
- package/dist/matrix.sort.unit.spec-EUVL76NB.js +0 -470
- package/dist/matrix.sorterUi-PJPFXWOJ.js +0 -18
- package/dist/matrix.sorterUi.unit.spec-QWL5Y4DQ.js +0 -340
- package/dist/mavb-UGM5SHEF.js +0 -730
- package/dist/mds.fimo-64US7RTE.js +0 -516
- package/dist/mds.samplescatterplot-JMXLXVIE.js +0 -1548
- package/dist/mds.survivalplot-RJ5UD3IU.js +0 -481
- package/dist/oncomatrix-ZFT3DRAP.js +0 -293
- package/dist/oncomatrix-ZFT3DRAP.js.map +0 -7
- package/dist/oncomatrix.spec-4YLKDGFE.js +0 -446
- package/dist/plot.2dvaf-DYSU6BBN.js +0 -375
- package/dist/plot.app-NFBVLAXZ.js +0 -39
- package/dist/plot.barplot-DBGTDK7J.js +0 -100
- package/dist/plot.boxplot-MCKZUROP.js +0 -150
- package/dist/plot.brainImaging-BBAVUEB4.js +0 -51
- package/dist/plot.disco-VGOEQYRL.js +0 -101
- package/dist/plot.disco-VGOEQYRL.js.map +0 -7
- package/dist/plot.dzi-YQIFOTZQ.js +0 -33
- package/dist/plot.ssgq-MU3BRTMC.js +0 -137
- package/dist/plot.vaf2cov-KDHZ7JXJ.js +0 -257
- package/dist/plot.wsi-G2TUGQF7.js +0 -36
- package/dist/polar-RCCZXZIU.js +0 -184
- package/dist/polar2-COQ3WIGW.js +0 -226
- package/dist/profile.spec-A4ZASR2T.js +0 -78
- package/dist/profileBarchart-GB4RK5DF.js +0 -265
- package/dist/profileForms-O5KBHRF6.js +0 -438
- package/dist/profilePlot-COCLCP5B.js +0 -52
- package/dist/profileRadar-4EE3YDOH.js +0 -261
- package/dist/profileRadarFacility-JYTSGA5H.js +0 -261
- package/dist/profileRadarFacility-JYTSGA5H.js.map +0 -7
- package/dist/proteomeAbundance-JBVXUSD6.js +0 -19
- package/dist/proteomeAbundance-NQVU4DOW.js +0 -63
- package/dist/qualitative-QROOPDSI.js +0 -41
- package/dist/regression-7FQZ22OO.js +0 -54
- package/dist/regression.inputs-F62CES3A.js +0 -46
- package/dist/regression.inputs.term-BCGP7PX4.js +0 -46
- package/dist/regression.inputs.values.table-D3ZXZSH7.js +0 -43
- package/dist/regression.integration.spec-P2BBTT2O.js +0 -784
- package/dist/regression.integration.spec-P2BBTT2O.js.map +0 -7
- package/dist/regression.results-JX6RJQQP.js +0 -38
- package/dist/regression.spec-ROME7T33.js +0 -706
- package/dist/report-B6MM4T6B.js +0 -220
- package/dist/sampleScatter.spec-EPCMC3SR.js +0 -200
- package/dist/sampleView-77EAJ75T.js +0 -46
- package/dist/samplelst-CX4NQWA7.js +0 -109
- package/dist/samplematrix-PYQFAH64.js +0 -2196
- package/dist/sc-X6SI5VVI.js +0 -84
- package/dist/scatter-ZFFHAI4F.js +0 -800
- package/dist/scatter.integration.spec-NN43OXRN.js +0 -1194
- package/dist/scatter.integration.spec-NN43OXRN.js.map +0 -7
- package/dist/selectGenomeWithTklst-CZMVTBMD.js +0 -132
- package/dist/singleCellCellType-GOBX7JKV.js +0 -36
- package/dist/singleCellCellType.unit.spec-F344QMTQ.js +0 -177
- package/dist/singleCellCellType.unit.spec-F344QMTQ.js.map +0 -7
- package/dist/singleCellGeneExpression-BLMNMEAI.js +0 -36
- package/dist/singleCellGeneExpression.unit.spec-6ZEPUFWC.js +0 -163
- package/dist/singleCellGeneExpression.unit.spec-6ZEPUFWC.js.map +0 -7
- package/dist/singleCellPlot-HLD7PLQH.js +0 -51
- package/dist/singlecell-HL4GLGIA.js +0 -1570
- package/dist/singlecell-JQFPINRS.js +0 -84
- package/dist/snp-EAUNFDAV.js +0 -36
- package/dist/snp.unit.spec-AVLPMAWI.js +0 -174
- package/dist/snplocus-2J7OA6OL.js +0 -206
- package/dist/spliceevent.a53ss.diagram-4DU2U7NW.js +0 -149
- package/dist/spliceevent.exonskip.diagram-GG5FGXOK.js +0 -275
- package/dist/spliceevent.noeventdiagram-T6RNIMCM.js +0 -458
- package/dist/ssGSEA-XJWLRVFQ.js +0 -36
- package/dist/ssGSEA.unit.spec-MQ23ODYO.js +0 -86
- package/dist/summarizeCnvGeneexp-CJPC76RM.js +0 -158
- package/dist/summarizeCnvGeneexp-CJPC76RM.js.map +0 -7
- package/dist/summarizeGeneexpSurvival-FGCFZTVG.js +0 -105
- package/dist/summarizeGeneexpSurvival-FGCFZTVG.js.map +0 -7
- package/dist/summarizeMutationCnv-4E7R2NHQ.js +0 -159
- package/dist/summarizeMutationCnv-4E7R2NHQ.js.map +0 -7
- package/dist/summarizeMutationDiagnosis-ZVX7AZK7.js +0 -38
- package/dist/summarizeMutationSurvival-EWXD7TCT.js +0 -97
- package/dist/summary-VUYBKQOC.js +0 -47
- package/dist/summary.integration.spec-EPBV5XCT.js +0 -412
- package/dist/summaryInput-YX5IRGWM.js +0 -218
- package/dist/sunburst-HPDML45I.js +0 -282
- package/dist/sunburst-HPDML45I.js.map +0 -7
- package/dist/survival-E6SRRXBB.js +0 -44
- package/dist/survival-XOXDPXZR.js +0 -56
- package/dist/survival.integration.spec-SJBPJZGJ.js +0 -787
- package/dist/svg2pdf.es.min-EZ4UYRSH.js +0 -3157
- package/dist/svgraph-D23WG3UE.js +0 -1385
- package/dist/svmr-UFC4TKWV.js +0 -3840
- package/dist/table-US2K6IYZ.js +0 -198
- package/dist/termCollection-E7S57CIN.js +0 -177
- package/dist/termCollection-ZMP3VE2G.js +0 -36
- package/dist/termCollection.unit.spec-MDWK6XH3.js +0 -206
- package/dist/tk-TLQJK6R4.js +0 -44
- package/dist/tp.ui-NQEAKWUH.js +0 -1457
- package/dist/tvs.dt-U2MINIBH.js +0 -37
- package/dist/tvs.dtcnv.categorical-2OOAZJKC.js +0 -38
- package/dist/tvs.dtcnv.continuous-5ETKBJ52.js +0 -70
- package/dist/tvs.dtfusion-EB4PPR3Y.js +0 -38
- package/dist/tvs.dtsnvindel-IRQPTKQF.js +0 -38
- package/dist/tvs.dtsv-TOVXZJCR.js +0 -38
- package/dist/tvs.samplelst-4SCH543Y.js +0 -102
- package/dist/tvs.termCollection-GGN5F6HC.js +0 -151
- package/dist/violin-7D7DN74I.js +0 -44
- package/dist/violin.integration.spec-KE76AL54.js +0 -1417
- package/dist/violin.integration.spec-KE76AL54.js.map +0 -7
- package/dist/violin.interactivity-YPJ2H6SQ.js +0 -36
- package/dist/violin.renderer-UK7WSA2Z.js +0 -38
- package/dist/vocabulary-KLWZ6LRP.js +0 -39
- /package/dist/{2dmaf-PFPBHIUI.js.map → 2dmaf-6ZTETSC5.js.map} +0 -0
- /package/dist/{AppHeader-FCWML6WH.js.map → AppHeader-U7SJPIBS.js.map} +0 -0
- /package/dist/{CorrelationVolcano-ZJ7Q6JBC.js.map → CorrelationVolcano-7SE4CTBW.js.map} +0 -0
- /package/dist/{DifferentialAnalysis-PWCFCWFY.js.map → DifferentialAnalysis-L6BOEYVO.js.map} +0 -0
- /package/dist/{Disco.UI-SR7LSJE3.js.map → Disco.UI-HKOUAD4P.js.map} +0 -0
- /package/dist/{DmrPlot-UDY7GOSY.js.map → DmrPlot-3R24PTXP.js.map} +0 -0
- /package/dist/{GB-GNTOP5C6.js.map → GB-SZVYZASR.js.map} +0 -0
- /package/dist/{HicApp-FZTJL3OA.js.map → HicApp-SEEJETVE.js.map} +0 -0
- /package/dist/{NumBinaryEditor.unit.spec-BMVRI24W.js.map → NumBinaryEditor.unit.spec-76ZZXTYC.js.map} +0 -0
- /package/dist/{NumContEditor-6JT5D6IW.js.map → NumContEditor-G75O4YZE.js.map} +0 -0
- /package/dist/{NumContEditor.unit.spec-XBQF2SW6.js.map → NumContEditor.unit.spec-BFUZRBPL.js.map} +0 -0
- /package/dist/{NumCustomBinEditor-MEKEFOQI.js.map → NumCustomBinEditor-ILTPHCEF.js.map} +0 -0
- /package/dist/{NumCustomBinEditor.unit.spec-LEMQJHDT.js.map → NumCustomBinEditor.unit.spec-GFIYV55V.js.map} +0 -0
- /package/dist/{NumDiscreteEditor.unit.spec-WQM4DLKO.js.map → NumDiscreteEditor.unit.spec-NZ4KWPFK.js.map} +0 -0
- /package/dist/{NumRegularBinEditor-HQR5Y6P7.js.map → NumRegularBinEditor-7ZJ2MEMY.js.map} +0 -0
- /package/dist/{NumRegularBinEditor.unit.spec-FL4IFT7L.js.map → NumRegularBinEditor.unit.spec-QGVJET65.js.map} +0 -0
- /package/dist/{NumSplineEditor.unit.spec-HYOXO45B.js.map → NumSplineEditor.unit.spec-YQOOZA7S.js.map} +0 -0
- /package/dist/{NumericDensity-GJZ4BBJS.js.map → NumericDensity-RL42P4QC.js.map} +0 -0
- /package/dist/{NumericDensity.unit.spec-6LXWAXW7.js.map → NumericDensity.unit.spec-Y6RMTYC7.js.map} +0 -0
- /package/dist/{NumericHandler-LZIMPOHS.js.map → NumericHandler-4QIX324I.js.map} +0 -0
- /package/dist/{NumericHandler.unit.spec-ZSU35AMD.js.map → NumericHandler.unit.spec-T6F5QYP6.js.map} +0 -0
- /package/dist/{WsiSamplesPlot-BL47MDHQ.js.map → WsiSamplesPlot-CXGWPCDL.js.map} +0 -0
- /package/dist/{adSandbox-V3NTKVBC.js.map → adSandbox-DE4VRO4Z.js.map} +0 -0
- /package/dist/{alphaGenome-IQVFCSWQ.js.map → alphaGenome-FSIGC5ZT.js.map} +0 -0
- /package/dist/{app-GJLZ2G2U.js.map → app-KZGKWQMU.js.map} +0 -0
- /package/dist/{app-YSD2U64Q.js.map → app-MQRJ7FVL.js.map} +0 -0
- /package/dist/{barchart-GLLUYTAJ.js.map → barchart-4Q6LVJY4.js.map} +0 -0
- /package/dist/{barchart.data-FRYRGKH3.js.map → barchart.data-EXENRVMU.js.map} +0 -0
- /package/dist/{barchart.events-WODVSHRN.js.map → barchart.events-XRGND6I7.js.map} +0 -0
- /package/dist/{barchart.integration.spec-6POS3V3T.js.map → barchart.integration.spec-VQITP4YH.js.map} +0 -0
- /package/dist/{bars.renderer-T5R3UIBW.js.map → bars.renderer-S7A7I6BQ.js.map} +0 -0
- /package/dist/{block.init-7HDLKQVX.js.map → block.init-NCNSE3HD.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-UIB25S6E.js.map → block.mds.expressionrank-JYZARS7T.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-4PQYO3MR.js.map → block.mds.geneboxplot-FD2MCIHV.js.map} +0 -0
- /package/dist/{block.mds.junction-DWFYZEC2.js.map → block.mds.junction-LOHVQBIU.js.map} +0 -0
- /package/dist/{block.mds.svcnv-N3KJJ4GQ.js.map → block.mds.svcnv-Z7SAYPQL.js.map} +0 -0
- /package/dist/{block.svg-2HBDI7BT.js.map → block.svg-LNJOKQNN.js.map} +0 -0
- /package/dist/{block.tk.aicheck-2M4522IQ.js.map → block.tk.aicheck-IXCMMAGV.js.map} +0 -0
- /package/dist/{block.tk.ase-URIKF6JD.js.map → block.tk.ase-WYRYFP6N.js.map} +0 -0
- /package/dist/{block.tk.bam-HTDMASHX.js.map → block.tk.bam-EIVBNGAL.js.map} +0 -0
- /package/dist/{block.tk.bedgraphdot-RVKMSFCQ.js.map → block.tk.bedgraphdot-3FHLNCU7.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-7JPEOIKM.js.map → block.tk.bigwig.ui-YDQU5PC4.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-72J7UJ2J.js.map → block.tk.hicstraw-S3ROL3CV.js.map} +0 -0
- /package/dist/{block.tk.junction-GGFMBCV5.js.map → block.tk.junction-DL7RNWX3.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-44SAYYWE.js.map → block.tk.junction.textmatrixui-Z6I7IEDY.js.map} +0 -0
- /package/dist/{block.tk.ld-XDKJFEOL.js.map → block.tk.ld-XHVU6L56.js.map} +0 -0
- /package/dist/{block.tk.menu-46FOTM7H.js.map → block.tk.menu-FPLAEEFY.js.map} +0 -0
- /package/dist/{block.tk.pgv-ZVONRT4B.js.map → block.tk.pgv-6ZZ2QGNO.js.map} +0 -0
- /package/dist/{brainImaging-CSLO7ODJ.js.map → brainImaging-VSOOMITW.js.map} +0 -0
- /package/dist/{chat-GMD22F3K.js.map → chat-LW23PIG5.js.map} +0 -0
- /package/dist/{chunk-WCTH7CB3.js.map → chunk-2LULD7RN.js.map} +0 -0
- /package/dist/{chunk-HLRNIO5K.js.map → chunk-3AGB6HL4.js.map} +0 -0
- /package/dist/{chunk-PZ3L3KM6.js.map → chunk-3AVDNIDN.js.map} +0 -0
- /package/dist/{chunk-JDX4E7ZO.js.map → chunk-3DCABJHB.js.map} +0 -0
- /package/dist/{chunk-DWWAB4YQ.js.map → chunk-3JMB3OSC.js.map} +0 -0
- /package/dist/{chunk-PF6MKI4X.js.map → chunk-5RFB7TYT.js.map} +0 -0
- /package/dist/{chunk-4FO7KZY2.js.map → chunk-5UMPBVA6.js.map} +0 -0
- /package/dist/{chunk-UBS5UVIY.js.map → chunk-6LAE5AVA.js.map} +0 -0
- /package/dist/{chunk-6UU7VPDO.js.map → chunk-7VV43ICF.js.map} +0 -0
- /package/dist/{chunk-M464GTNI.js.map → chunk-A742TQD2.js.map} +0 -0
- /package/dist/{chunk-74QJDBIP.js.map → chunk-AFLFPYJI.js.map} +0 -0
- /package/dist/{chunk-WYZ4COTF.js.map → chunk-BAY47D5E.js.map} +0 -0
- /package/dist/{chunk-DV444SFD.js.map → chunk-CFHKYLDY.js.map} +0 -0
- /package/dist/{chunk-AHLUW2BN.js.map → chunk-CTAKX5CT.js.map} +0 -0
- /package/dist/{chunk-FP5VKE3Z.js.map → chunk-D4QFQQWJ.js.map} +0 -0
- /package/dist/{chunk-KLFROH3F.js.map → chunk-DGMK7SXX.js.map} +0 -0
- /package/dist/{chunk-U3UR3U3F.js.map → chunk-DNCSPTOQ.js.map} +0 -0
- /package/dist/{chunk-QXCVG66S.js.map → chunk-DTDQKGIQ.js.map} +0 -0
- /package/dist/{chunk-SEIANPCX.js.map → chunk-E4NVHKWD.js.map} +0 -0
- /package/dist/{chunk-L2ED35QZ.js.map → chunk-I4IKRKYJ.js.map} +0 -0
- /package/dist/{chunk-VIYGTRUZ.js.map → chunk-IEQSUAIO.js.map} +0 -0
- /package/dist/{chunk-BBIPZ2UF.js.map → chunk-JMPSZMDD.js.map} +0 -0
- /package/dist/{chunk-NTVM4ZPG.js.map → chunk-JXOL73PT.js.map} +0 -0
- /package/dist/{chunk-OM326NV3.js.map → chunk-K62XUHA4.js.map} +0 -0
- /package/dist/{chunk-2TIYJ3PH.js.map → chunk-KQMEJUWI.js.map} +0 -0
- /package/dist/{chunk-6YLQN7FF.js.map → chunk-MV6O4I2B.js.map} +0 -0
- /package/dist/{chunk-SK7YVOQN.js.map → chunk-MXNSW55L.js.map} +0 -0
- /package/dist/{chunk-A2Y3GEUH.js.map → chunk-NB7NLFGZ.js.map} +0 -0
- /package/dist/{chunk-ITYEOGLB.js.map → chunk-NGGWK6HX.js.map} +0 -0
- /package/dist/{chunk-T5KFRIP4.js.map → chunk-OGGFS66K.js.map} +0 -0
- /package/dist/{chunk-J6XKDYNZ.js.map → chunk-OSM7YS23.js.map} +0 -0
- /package/dist/{chunk-UFYU7AKL.js.map → chunk-Q7PYFSNU.js.map} +0 -0
- /package/dist/{chunk-P4ENJUBN.js.map → chunk-QMI222IJ.js.map} +0 -0
- /package/dist/{chunk-O64UTRAC.js.map → chunk-QRIRWDIW.js.map} +0 -0
- /package/dist/{chunk-ZZSDYKD5.js.map → chunk-R6L6NVEC.js.map} +0 -0
- /package/dist/{chunk-7FXPMQRW.js.map → chunk-RLTLYKHO.js.map} +0 -0
- /package/dist/{chunk-NI7VSKJI.js.map → chunk-S5ZI6N2I.js.map} +0 -0
- /package/dist/{chunk-PJTQP6RL.js.map → chunk-TEZLFSOV.js.map} +0 -0
- /package/dist/{chunk-PEKVBCIH.js.map → chunk-UEMTP6ZC.js.map} +0 -0
- /package/dist/{chunk-RIGZHHCP.js.map → chunk-UJU3Q7QJ.js.map} +0 -0
- /package/dist/{chunk-WZRXJ5LL.js.map → chunk-V245THQC.js.map} +0 -0
- /package/dist/{chunk-I7X6K4OL.js.map → chunk-VIPMLSZP.js.map} +0 -0
- /package/dist/{chunk-YJ2HC4CP.js.map → chunk-VUUZJANK.js.map} +0 -0
- /package/dist/{chunk-G2MAZI6I.js.map → chunk-WGHO2NCP.js.map} +0 -0
- /package/dist/{chunk-AAEXTQT3.js.map → chunk-WGL6FIUE.js.map} +0 -0
- /package/dist/{chunk-NBMJ2UMA.js.map → chunk-WPHOEG56.js.map} +0 -0
- /package/dist/{chunk-BHVDOW3W.js.map → chunk-WS5XVKPJ.js.map} +0 -0
- /package/dist/{chunk-JWX7GYHP.js.map → chunk-YY4CKQJ6.js.map} +0 -0
- /package/dist/{chunk-C5QOWZK6.js.map → chunk-Z3KV6SC2.js.map} +0 -0
- /package/dist/{condition-S52W57ZO.js.map → condition-JKQIRMMW.js.map} +0 -0
- /package/dist/{controls-B4MTTPWO.js.map → controls-324AGOZG.js.map} +0 -0
- /package/dist/{controls.config-6KBCTIPN.js.map → controls.config-TA4NNARU.js.map} +0 -0
- /package/dist/{correlation-VSBCBFFP.js.map → correlation-3Z36TKC2.js.map} +0 -0
- /package/dist/{cuminc-T5ZPAGVB.js.map → cuminc-4DY2CSZF.js.map} +0 -0
- /package/dist/{cuminc.integration.spec-2QT3IPHU.js.map → cuminc.integration.spec-SFQPLMSF.js.map} +0 -0
- /package/dist/{dataDownload-S4EBNHMW.js.map → dataDownload-3AE2N7KI.js.map} +0 -0
- /package/dist/{dataDownload.integration.spec-OVSIWI34.js.map → dataDownload.integration.spec-DKOT6BJP.js.map} +0 -0
- /package/dist/{databrowser.ui-EAJS3NXV.js.map → databrowser.ui-ATODRS5P.js.map} +0 -0
- /package/dist/{dnaMethylation-G3F2INDH.js.map → dnaMethylation-TVA5YMOR.js.map} +0 -0
- /package/dist/{e2pca-SLXGPVHP.js.map → e2pca-KHVDNFEZ.js.map} +0 -0
- /package/dist/{ep-4HGUSDGJ.js.map → ep-B5GAAMNM.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-JJ42ESKE.js.map → expclust.gdc.spec-EDPX7V6K.js.map} +0 -0
- /package/dist/{facet-6WVTVKDV.js.map → facet-ZCSXKXIO.js.map} +0 -0
- /package/dist/{geneExpClustering-5LOZPD5X.js.map → geneExpClustering-ERNCMAED.js.map} +0 -0
- /package/dist/{geneExpression-PTSZWKCM.js.map → geneExpression-HUOXWETT.js.map} +0 -0
- /package/dist/{geneExpression-BJ46UGXW.js.map → geneExpression-X2KXJPND.js.map} +0 -0
- /package/dist/{geneExpression.unit.spec-NW5HTO7F.js.map → geneExpression.unit.spec-5QQB4ISW.js.map} +0 -0
- /package/dist/{geneORA-H65EZ7QO.js.map → geneORA-B5UK77KL.js.map} +0 -0
- /package/dist/{geneVariant-T6GWOVZD.js.map → geneVariant-7MGUAIZ6.js.map} +0 -0
- /package/dist/{geneVariant-WTDFZTXG.js.map → geneVariant-FK3KZJ2K.js.map} +0 -0
- /package/dist/{geneVariant.integration.spec-OPSBRUM3.js.map → geneVariant.integration.spec-C6TYWKIC.js.map} +0 -0
- /package/dist/{genefusion.ui-RSBCC37C.js.map → genefusion.ui-VKAINMY7.js.map} +0 -0
- /package/dist/{geneset-B67PAZVL.js.map → geneset-673KAZVX.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-AUTULF4C.js.map → genomeBrowser.spec-T6TQCJ3O.js.map} +0 -0
- /package/dist/{grin2-JVCNH3KW.js.map → grin2-376BD4XY.js.map} +0 -0
- /package/dist/{grin2-CMBP7XVH.js.map → grin2-OALS75LC.js.map} +0 -0
- /package/dist/{gsea-H774WVPQ.js.map → gsea-25LD2LGP.js.map} +0 -0
- /package/dist/{hierCluster-IQTXQUMI.js.map → hierCluster-7KU3K52V.js.map} +0 -0
- /package/dist/{hierCluster-ZQJDXYBD.js.map → hierCluster-M5VVWKQK.js.map} +0 -0
- /package/dist/{hierCluster.config-ZHJTZK5L.js.map → hierCluster.config-EDO3SH2P.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-MSJ5GHHK.js.map → hierCluster.integration.spec-UOX7J2XD.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-H2GNO6AA.js.map → hierCluster.interactivity-FEFZDXML.js.map} +0 -0
- /package/dist/{hierCluster.renderers-2TE6HMK2.js.map → hierCluster.renderers-A6MEGO2B.js.map} +0 -0
- /package/dist/{imagePlot-FMNMB7JZ.js.map → imagePlot-FPXZ2H5Z.js.map} +0 -0
- /package/dist/{importPlot-N66G43XX.js.map → importPlot-VKWPSFEK.js.map} +0 -0
- /package/dist/{isoformExpression-B64WLO3H.js.map → isoformExpression-2R2TOB6P.js.map} +0 -0
- /package/dist/{jspdf.es.min-DO4YWL2R.js.map → jspdf.es.min-FC3BCETM.js.map} +0 -0
- /package/dist/{launch.adhoc-MPRAJ3GN.js.map → launch.adhoc-242RS6DW.js.map} +0 -0
- /package/dist/{leftlabel.sample-4JCKYXED.js.map → leftlabel.sample-OJW3AE64.js.map} +0 -0
- /package/dist/{lollipop-25ADHT7O.js.map → lollipop-TRQ3LK7Y.js.map} +0 -0
- /package/dist/{maftimeline-FOQF6O3X.js.map → maftimeline-GVX7NJP7.js.map} +0 -0
- /package/dist/{matrix-LHLAYDTQ.js.map → matrix-73KRNXLM.js.map} +0 -0
- /package/dist/{matrix-ZKF7NRAD.js.map → matrix-US3OXYRY.js.map} +0 -0
- /package/dist/{matrix.cells-H4TS74FJ.js.map → matrix.cells-U7AQNEBP.js.map} +0 -0
- /package/dist/{matrix.config-HE7QUDER.js.map → matrix.config-Q57D7C3F.js.map} +0 -0
- /package/dist/{matrix.controls-VILCLNSC.js.map → matrix.controls-AWXDRSWP.js.map} +0 -0
- /package/dist/{matrix.data-2OUWYD35.js.map → matrix.data-EEIY6AO4.js.map} +0 -0
- /package/dist/{matrix.dom-IZFFS4RQ.js.map → matrix.dom-6QL3AJMW.js.map} +0 -0
- /package/dist/{matrix.groups-5BGJIOOJ.js.map → matrix.groups-CUB6UWC5.js.map} +0 -0
- /package/dist/{matrix.integration.spec-DSXZHAEY.js.map → matrix.integration.spec-PQH67KRM.js.map} +0 -0
- /package/dist/{matrix.interactivity-VK3NWX5M.js.map → matrix.interactivity-JW4AXAWO.js.map} +0 -0
- /package/dist/{matrix.layout-PUNMMNCC.js.map → matrix.layout-I56KRVCO.js.map} +0 -0
- /package/dist/{matrix.legend-QMERGVYU.js.map → matrix.legend-42LQGAGX.js.map} +0 -0
- /package/dist/{matrix.renderers-2KQ2NXSQ.js.map → matrix.renderers-IX3FCNBK.js.map} +0 -0
- /package/dist/{matrix.serieses-24G3XPJD.js.map → matrix.serieses-4B2WB526.js.map} +0 -0
- /package/dist/{matrix.sort-HTVT4K7C.js.map → matrix.sort-BJACNR7G.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-EUVL76NB.js.map → matrix.sort.unit.spec-3KKDKIPY.js.map} +0 -0
- /package/dist/{matrix.sorterUi-PJPFXWOJ.js.map → matrix.sorterUi-W6XFYZY2.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-QWL5Y4DQ.js.map → matrix.sorterUi.unit.spec-CMJ7EBIW.js.map} +0 -0
- /package/dist/{mavb-UGM5SHEF.js.map → mavb-ROAE6WYA.js.map} +0 -0
- /package/dist/{mds.fimo-64US7RTE.js.map → mds.fimo-UGK5OWCF.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-JMXLXVIE.js.map → mds.samplescatterplot-5KFUAYSB.js.map} +0 -0
- /package/dist/{mds.survivalplot-RJ5UD3IU.js.map → mds.survivalplot-2EVNZUX5.js.map} +0 -0
- /package/dist/{oncomatrix.spec-4YLKDGFE.js.map → oncomatrix.spec-FEP7BR7L.js.map} +0 -0
- /package/dist/{plot.2dvaf-DYSU6BBN.js.map → plot.2dvaf-WXGLWCOC.js.map} +0 -0
- /package/dist/{plot.app-NFBVLAXZ.js.map → plot.app-IZAFRTBU.js.map} +0 -0
- /package/dist/{plot.barplot-DBGTDK7J.js.map → plot.barplot-Z4VWOPFJ.js.map} +0 -0
- /package/dist/{plot.boxplot-MCKZUROP.js.map → plot.boxplot-QU2KZSB7.js.map} +0 -0
- /package/dist/{plot.brainImaging-BBAVUEB4.js.map → plot.brainImaging-U643YIK7.js.map} +0 -0
- /package/dist/{plot.dzi-YQIFOTZQ.js.map → plot.dzi-DWXPOOQE.js.map} +0 -0
- /package/dist/{plot.ssgq-MU3BRTMC.js.map → plot.ssgq-GXB2GZO3.js.map} +0 -0
- /package/dist/{plot.vaf2cov-KDHZ7JXJ.js.map → plot.vaf2cov-EKRIADPB.js.map} +0 -0
- /package/dist/{plot.wsi-G2TUGQF7.js.map → plot.wsi-E2LLE6HI.js.map} +0 -0
- /package/dist/{polar-RCCZXZIU.js.map → polar-MZLIUXHO.js.map} +0 -0
- /package/dist/{polar2-COQ3WIGW.js.map → polar2-IUVHNQM4.js.map} +0 -0
- /package/dist/{profile.spec-A4ZASR2T.js.map → profile.spec-JRW6KYUI.js.map} +0 -0
- /package/dist/{profileBarchart-GB4RK5DF.js.map → profileBarchart-N7HJMYZ5.js.map} +0 -0
- /package/dist/{profileForms-O5KBHRF6.js.map → profileForms-Q5TPGPQP.js.map} +0 -0
- /package/dist/{profilePlot-COCLCP5B.js.map → profilePlot-TXTUYDVE.js.map} +0 -0
- /package/dist/{profileRadar-4EE3YDOH.js.map → profileRadar-ICEASI7W.js.map} +0 -0
- /package/dist/{proteomeAbundance-JBVXUSD6.js.map → proteomeAbundance-DE4NVBCN.js.map} +0 -0
- /package/dist/{proteomeAbundance-NQVU4DOW.js.map → proteomeAbundance-LTB3QR3G.js.map} +0 -0
- /package/dist/{qualitative-QROOPDSI.js.map → qualitative-DFGWQURY.js.map} +0 -0
- /package/dist/{regression-7FQZ22OO.js.map → regression-TTQTAEGD.js.map} +0 -0
- /package/dist/{regression.inputs-F62CES3A.js.map → regression.inputs-2LU2XRGC.js.map} +0 -0
- /package/dist/{regression.inputs.term-BCGP7PX4.js.map → regression.inputs.term-G57GL57T.js.map} +0 -0
- /package/dist/{regression.inputs.values.table-D3ZXZSH7.js.map → regression.inputs.values.table-JSEM3PXL.js.map} +0 -0
- /package/dist/{regression.results-JX6RJQQP.js.map → regression.results-3YNM6LLQ.js.map} +0 -0
- /package/dist/{regression.spec-ROME7T33.js.map → regression.spec-S6WFCPSW.js.map} +0 -0
- /package/dist/{report-B6MM4T6B.js.map → report-YRAV4MY4.js.map} +0 -0
- /package/dist/{sampleScatter.spec-EPCMC3SR.js.map → sampleScatter.spec-MBJ4XNTX.js.map} +0 -0
- /package/dist/{sampleView-77EAJ75T.js.map → sampleView-IUR3ZEN7.js.map} +0 -0
- /package/dist/{samplelst-CX4NQWA7.js.map → samplelst-C2NBFGH6.js.map} +0 -0
- /package/dist/{samplematrix-PYQFAH64.js.map → samplematrix-AOK2HHSB.js.map} +0 -0
- /package/dist/{sc-X6SI5VVI.js.map → sc-XT3Z5XJI.js.map} +0 -0
- /package/dist/{scatter-ZFFHAI4F.js.map → scatter-SAHKZRFL.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-CZMVTBMD.js.map → selectGenomeWithTklst-2YVZ4JWV.js.map} +0 -0
- /package/dist/{singleCellCellType-GOBX7JKV.js.map → singleCellCellType-NFN5GQJM.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-BLMNMEAI.js.map → singleCellGeneExpression-7AQGLXTR.js.map} +0 -0
- /package/dist/{singleCellPlot-HLD7PLQH.js.map → singleCellPlot-IWFEG44C.js.map} +0 -0
- /package/dist/{singlecell-HL4GLGIA.js.map → singlecell-3QNV4OMZ.js.map} +0 -0
- /package/dist/{singlecell-JQFPINRS.js.map → singlecell-EATPLH66.js.map} +0 -0
- /package/dist/{snp-EAUNFDAV.js.map → snp-UP7WL7WG.js.map} +0 -0
- /package/dist/{snp.unit.spec-AVLPMAWI.js.map → snp.unit.spec-Y5NWQ442.js.map} +0 -0
- /package/dist/{snplocus-2J7OA6OL.js.map → snplocus-WAQK2AZG.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-4DU2U7NW.js.map → spliceevent.a53ss.diagram-FFK27UIB.js.map} +0 -0
- /package/dist/{spliceevent.exonskip.diagram-GG5FGXOK.js.map → spliceevent.exonskip.diagram-KWEF2OZJ.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-T6RNIMCM.js.map → spliceevent.noeventdiagram-PU4TI7OM.js.map} +0 -0
- /package/dist/{ssGSEA-XJWLRVFQ.js.map → ssGSEA-N6QOAVLW.js.map} +0 -0
- /package/dist/{ssGSEA.unit.spec-MQ23ODYO.js.map → ssGSEA.unit.spec-KQBNZNNP.js.map} +0 -0
- /package/dist/{summarizeMutationDiagnosis-ZVX7AZK7.js.map → summarizeMutationDiagnosis-5RHSG7L6.js.map} +0 -0
- /package/dist/{summarizeMutationSurvival-EWXD7TCT.js.map → summarizeMutationSurvival-22YYXGS5.js.map} +0 -0
- /package/dist/{summary-VUYBKQOC.js.map → summary-P3WIKJS7.js.map} +0 -0
- /package/dist/{summary.integration.spec-EPBV5XCT.js.map → summary.integration.spec-ULGRPICW.js.map} +0 -0
- /package/dist/{summaryInput-YX5IRGWM.js.map → summaryInput-IH4EVNF5.js.map} +0 -0
- /package/dist/{survival-E6SRRXBB.js.map → survival-2ZE3N62A.js.map} +0 -0
- /package/dist/{survival-XOXDPXZR.js.map → survival-ASCLKIII.js.map} +0 -0
- /package/dist/{survival.integration.spec-SJBPJZGJ.js.map → survival.integration.spec-C5YXOY77.js.map} +0 -0
- /package/dist/{svg2pdf.es.min-EZ4UYRSH.js.map → svg2pdf.es.min-CYTPRWNB.js.map} +0 -0
- /package/dist/{svgraph-D23WG3UE.js.map → svgraph-AYR2UPNK.js.map} +0 -0
- /package/dist/{svmr-UFC4TKWV.js.map → svmr-MOMW5DNY.js.map} +0 -0
- /package/dist/{table-US2K6IYZ.js.map → table-PQB6KCEY.js.map} +0 -0
- /package/dist/{termCollection-ZMP3VE2G.js.map → termCollection-5AY2AWT4.js.map} +0 -0
- /package/dist/{termCollection-E7S57CIN.js.map → termCollection-OQMUUTW6.js.map} +0 -0
- /package/dist/{termCollection.unit.spec-MDWK6XH3.js.map → termCollection.unit.spec-BUAXYIJK.js.map} +0 -0
- /package/dist/{tk-TLQJK6R4.js.map → tk-EJLFFA5H.js.map} +0 -0
- /package/dist/{tp.ui-NQEAKWUH.js.map → tp.ui-WUW6A7KP.js.map} +0 -0
- /package/dist/{tvs.dt-U2MINIBH.js.map → tvs.dt-MVJXQMNU.js.map} +0 -0
- /package/dist/{tvs.dtcnv.categorical-2OOAZJKC.js.map → tvs.dtcnv.categorical-FIIDWVK7.js.map} +0 -0
- /package/dist/{tvs.dtcnv.continuous-5ETKBJ52.js.map → tvs.dtcnv.continuous-JPQU3JA2.js.map} +0 -0
- /package/dist/{tvs.dtfusion-EB4PPR3Y.js.map → tvs.dtfusion-BW35GOQM.js.map} +0 -0
- /package/dist/{tvs.dtsnvindel-IRQPTKQF.js.map → tvs.dtsnvindel-AEMFZ4EH.js.map} +0 -0
- /package/dist/{tvs.dtsv-TOVXZJCR.js.map → tvs.dtsv-JHTU7UFD.js.map} +0 -0
- /package/dist/{tvs.samplelst-4SCH543Y.js.map → tvs.samplelst-VD2NFFFS.js.map} +0 -0
- /package/dist/{tvs.termCollection-GGN5F6HC.js.map → tvs.termCollection-IKE5Q74D.js.map} +0 -0
- /package/dist/{violin-7D7DN74I.js.map → violin-DPMJLHQG.js.map} +0 -0
- /package/dist/{violin.interactivity-YPJ2H6SQ.js.map → violin.interactivity-TS4DYUE5.js.map} +0 -0
- /package/dist/{violin.renderer-UK7WSA2Z.js.map → violin.renderer-53L4PXUT.js.map} +0 -0
- /package/dist/{vocabulary-KLWZ6LRP.js.map → vocabulary-4MPFHKYC.js.map} +0 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import {
|
|
2
|
+
hierCluster_renderers_exports
|
|
3
|
+
} from "./chunk-W345H42C.js";
|
|
4
|
+
import {
|
|
5
|
+
hierCluster_interactivity_exports
|
|
6
|
+
} from "./chunk-AFLFPYJI.js";
|
|
7
|
+
import {
|
|
8
|
+
Matrix
|
|
9
|
+
} from "./chunk-APOHXHKH.js";
|
|
10
|
+
import {
|
|
11
|
+
filterJoin,
|
|
12
|
+
getNormalRoot
|
|
13
|
+
} from "./chunk-OXJ2TWDO.js";
|
|
14
|
+
import {
|
|
15
|
+
clusterMethodLst,
|
|
16
|
+
distanceMethodLst,
|
|
17
|
+
dofetch3
|
|
18
|
+
} from "./chunk-7RN3L2BX.js";
|
|
19
|
+
import {
|
|
20
|
+
deepEqual,
|
|
21
|
+
getCompInit
|
|
22
|
+
} from "./chunk-MVTCBVSX.js";
|
|
23
|
+
import {
|
|
24
|
+
TermTypes2Dt
|
|
25
|
+
} from "./chunk-6ITDJ5UR.js";
|
|
26
|
+
import {
|
|
27
|
+
colorScaleMap
|
|
28
|
+
} from "./chunk-XYFDBYOY.js";
|
|
29
|
+
import {
|
|
30
|
+
extent,
|
|
31
|
+
linear
|
|
32
|
+
} from "./chunk-OAWQ6LOO.js";
|
|
33
|
+
|
|
34
|
+
// plots/matrix/hierCluster.js
|
|
35
|
+
var HierCluster = class _HierCluster extends Matrix {
|
|
36
|
+
static type = "hierCluster";
|
|
37
|
+
constructor(opts) {
|
|
38
|
+
super(opts);
|
|
39
|
+
this.type = _HierCluster.type;
|
|
40
|
+
this.chartType = _HierCluster.type;
|
|
41
|
+
}
|
|
42
|
+
async init(appState) {
|
|
43
|
+
await super.init(appState);
|
|
44
|
+
this.maySetSandboxHeader(appState);
|
|
45
|
+
this.hcClipId = this.seriesClipId + "-hc";
|
|
46
|
+
this.dom.hcClipRect = this.dom.svg.select("defs").append("clipPath").attr("id", this.hcClipId).attr("clipPathUnits", "userSpaceOnUse").append("rect").attr("display", "block");
|
|
47
|
+
this.dom.topDendrogram = this.dom.svg.insert("g", "g").attr("clip-path", `url(#${this.hcClipId})`).append("g").attr("class", "sjpp-matrix-dendrogram").attr("data-testid", "hierCluster_top_dendrogram").on("click", (event) => {
|
|
48
|
+
const clickedClusterId = this.getClusterFromTopDendrogram(event);
|
|
49
|
+
if (clickedClusterId) {
|
|
50
|
+
this.clickedClusterIds = this.getAllChildrenClusterIds(clickedClusterId);
|
|
51
|
+
this.clickedClusterIds.push(clickedClusterId);
|
|
52
|
+
const clickedCluster = this.hierClusterData.clustering.col.mergedClusters.get(clickedClusterId);
|
|
53
|
+
const clickedClusterSampleNames = clickedCluster.children.map((c) => c.name);
|
|
54
|
+
this.addSelectedSamplesOptions(clickedClusterSampleNames, event);
|
|
55
|
+
} else {
|
|
56
|
+
delete this.clickedClusterIds;
|
|
57
|
+
}
|
|
58
|
+
if (this.clickedLeftClusterIds) {
|
|
59
|
+
delete this.clickedLeftClusterIds;
|
|
60
|
+
this.plotDendrogramHclust();
|
|
61
|
+
} else this.plotDendrogramHclust("top");
|
|
62
|
+
});
|
|
63
|
+
this.dom.leftDendrogram = this.dom.svg.insert("g", "g").attr("class", "sjpp-matrix-dendrogram").attr("data-testid", "hierCluster_left_dendrogram").on("click", (event) => {
|
|
64
|
+
const clickedLeftClusterId = this.getClusterFromLeftDendrogram(event);
|
|
65
|
+
if (clickedLeftClusterId) {
|
|
66
|
+
this.clickedLeftClusterIds = this.getAllChildrenClusterIds(clickedLeftClusterId, true);
|
|
67
|
+
this.clickedLeftClusterIds.push(clickedLeftClusterId);
|
|
68
|
+
const clickedLeftCluster = this.hierClusterData.clustering.row.mergedClusters.get(clickedLeftClusterId);
|
|
69
|
+
const clickedLeftClusterRowsNames = clickedLeftCluster.children.map((c) => c.name);
|
|
70
|
+
this.addSelectedRowsOptions(clickedLeftClusterRowsNames, event);
|
|
71
|
+
} else {
|
|
72
|
+
delete this.clickedLeftClusterIds;
|
|
73
|
+
}
|
|
74
|
+
if (this.clickedClusterIds) {
|
|
75
|
+
delete this.clickedClusterIds;
|
|
76
|
+
this.plotDendrogramHclust();
|
|
77
|
+
} else this.plotDendrogramHclust("left");
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
async setHierClusterData(_data = {}) {
|
|
81
|
+
this.prevServerData = this.currServerData;
|
|
82
|
+
const [d, twlst] = await this.requestData({});
|
|
83
|
+
if (d.error) throw d.error;
|
|
84
|
+
this.currServerData = structuredClone(d);
|
|
85
|
+
if (!deepEqual(this.prevServerData, this.currServerData)) {
|
|
86
|
+
delete this.clickedClusterIds;
|
|
87
|
+
delete this.clickedLeftClusterIds;
|
|
88
|
+
}
|
|
89
|
+
const s = this.settings.hierCluster;
|
|
90
|
+
if (!d.clustering) {
|
|
91
|
+
if (d.gene) {
|
|
92
|
+
throw `Cannot do clustering: data is only available for 1 gene (${d.gene}). Try again by adding more genes.`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
this.hierClusterData = d;
|
|
96
|
+
const c = this.hierClusterData.clustering;
|
|
97
|
+
this.setHierColorScale(c);
|
|
98
|
+
const samples = {};
|
|
99
|
+
for (const [i, column] of c.col.order.entries()) {
|
|
100
|
+
samples[column.name] = { sample: column.name };
|
|
101
|
+
for (const [j, row] of c.row.order.entries()) {
|
|
102
|
+
const tw = twlst.find((tw2) => tw2.$id === row.name || tw2.id === row.name);
|
|
103
|
+
const value = c.matrix[j][i];
|
|
104
|
+
samples[column.name][tw.$id] = {
|
|
105
|
+
key: tw.term.name,
|
|
106
|
+
values: [
|
|
107
|
+
{
|
|
108
|
+
sample: column.name,
|
|
109
|
+
dt: TermTypes2Dt[this.state.config.dataType],
|
|
110
|
+
label: s.termGroupName,
|
|
111
|
+
// gene: tw.term.name,
|
|
112
|
+
// chr: tw.term.chr,
|
|
113
|
+
// pos: `${tw.term.start}-${tw.term.stop}`,
|
|
114
|
+
value
|
|
115
|
+
// the color will be computed in matrix.cells, so that
|
|
116
|
+
// it can get updated even when there are no nonsetting state diff
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
this.hcTermNameOrder = this.settings.hierCluster.sortClusterRows == "asListed" ? twlst.map((t) => t.term.name) : this.settings.hierCluster.sortClusterRows == "byName" ? twlst.map((t) => t.term.name).sort() : c.row.order.map((row) => twlst.find((t) => t.$id == row.name)?.term.name);
|
|
123
|
+
if (this.hcTermNameOrder.includes(void 0)) throw `unable to map row.name to term.name`;
|
|
124
|
+
this.hcTermSorter = (a, b) => {
|
|
125
|
+
const i = this.hcTermNameOrder.indexOf(a.tw.term.name);
|
|
126
|
+
const j = this.hcTermNameOrder.indexOf(b.tw.term.name);
|
|
127
|
+
if (i == -1 && j == -1) return 0;
|
|
128
|
+
if (i == -1) return 1;
|
|
129
|
+
if (j == -1) return -1;
|
|
130
|
+
return i - j;
|
|
131
|
+
};
|
|
132
|
+
this.hcSampleNameOrder = c.col.order.map((col) => col.name);
|
|
133
|
+
this.hcSampleSorter = (a, b) => {
|
|
134
|
+
const i = this.hcSampleNameOrder.indexOf(a.sample);
|
|
135
|
+
const j = this.hcSampleNameOrder.indexOf(b.sample);
|
|
136
|
+
if (i == -1 && j == -1) return 0;
|
|
137
|
+
if (i == -1) return 1;
|
|
138
|
+
if (j == -1) return -1;
|
|
139
|
+
return i - j;
|
|
140
|
+
};
|
|
141
|
+
const byTermId = {};
|
|
142
|
+
for (const tw of twlst) {
|
|
143
|
+
if (d.byTermId?.[tw.term.name]) byTermId[tw.$id] = d.byTermId[tw.term.name];
|
|
144
|
+
}
|
|
145
|
+
this.hierClusterSamples = {
|
|
146
|
+
refs: { byTermId, bySampleId: d.bySampleId },
|
|
147
|
+
lst: c.col.order.map((c2) => samples[c2.name]),
|
|
148
|
+
samples,
|
|
149
|
+
removedHierClusterTerms: d.removedHierClusterTerms
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
async requestData() {
|
|
153
|
+
const body = this.currRequestOpts?.hierCluster || this.getHCRequestBody(this.state);
|
|
154
|
+
const twlst = this.hcTermGroup.lst;
|
|
155
|
+
const data = await dofetch3("termdb/cluster", { body, signal: this.api.getAbortSignal?.() });
|
|
156
|
+
return [data, twlst];
|
|
157
|
+
}
|
|
158
|
+
getHCRequestBody(state) {
|
|
159
|
+
this.hcTermGroup = this.config.termgroups.find((grp) => grp.type == "hierCluster") || this.termOrder?.find((t) => t.grp.type == "hierCluster")?.grp;
|
|
160
|
+
const s = state.config.settings.hierCluster;
|
|
161
|
+
const dictionaryLegendFilter = {
|
|
162
|
+
type: "tvslst",
|
|
163
|
+
in: true,
|
|
164
|
+
join: "and",
|
|
165
|
+
lst: state.config.legendValueFilter.lst.filter((f) => !f.tvs.legendFilterType)
|
|
166
|
+
};
|
|
167
|
+
const terms = this.getClusterRowTermsAsParameter();
|
|
168
|
+
if (!terms.length) throw "no data";
|
|
169
|
+
if (!clusterMethodLst.find((i) => i.value == s.clusterMethod)) throw "Invalid cluster method";
|
|
170
|
+
if (!distanceMethodLst.find((i) => i.value == s.distanceMethod)) throw "Invalid distance method";
|
|
171
|
+
const body = {
|
|
172
|
+
genome: state.vocab.genome,
|
|
173
|
+
dslabel: state.vocab.dslabel,
|
|
174
|
+
dataType: state.config.dataType,
|
|
175
|
+
clusterMethod: s.clusterMethod,
|
|
176
|
+
distanceMethod: s.distanceMethod,
|
|
177
|
+
zScoreTransformation: s.zScoreTransformation,
|
|
178
|
+
terms,
|
|
179
|
+
filter: getNormalRoot(filterJoin([state.filter, dictionaryLegendFilter])),
|
|
180
|
+
filter0: state.filter0
|
|
181
|
+
};
|
|
182
|
+
if (state.config.dataType == "proteomeAbundance") {
|
|
183
|
+
body.proteomeDetails = {
|
|
184
|
+
assay: state.config.proteomeDetails?.assay,
|
|
185
|
+
cohort: state.config.proteomeDetails?.cohort
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return body;
|
|
189
|
+
}
|
|
190
|
+
combineData() {
|
|
191
|
+
if (!this.hierClusterSamples) return;
|
|
192
|
+
const d = this.data;
|
|
193
|
+
const removedHierClusterTerms = this.hierClusterSamples.removedHierClusterTerms;
|
|
194
|
+
const samples = {};
|
|
195
|
+
const lst = [];
|
|
196
|
+
for (const sampleId in this.hierClusterSamples.samples) {
|
|
197
|
+
const s = this.hierClusterSamples.samples[sampleId];
|
|
198
|
+
samples[sampleId] = s;
|
|
199
|
+
lst.push(s);
|
|
200
|
+
if (sampleId in d.samples) Object.assign(s, d.samples[sampleId]);
|
|
201
|
+
const _ref_ = this.hierClusterSamples.refs.bySampleId[sampleId] || {};
|
|
202
|
+
if (!s._ref_) s._ref_ = _ref_;
|
|
203
|
+
else Object.assign(s._ref_, _ref_);
|
|
204
|
+
}
|
|
205
|
+
const t = this.hierClusterSamples.refs.byTermId;
|
|
206
|
+
for (const $id of Object.keys(t)) {
|
|
207
|
+
d.refs.byTermId[$id] = Object.assign({}, d.refs.byTermId[$id] || {}, t[$id]);
|
|
208
|
+
}
|
|
209
|
+
this.data = { samples, lst, refs: d.refs, removedHierClusterTerms };
|
|
210
|
+
}
|
|
211
|
+
setHierColorScale(c) {
|
|
212
|
+
const hc = this.settings.hierCluster;
|
|
213
|
+
const scale = linear(colorScaleMap[hc.colorScale].domain, colorScaleMap[hc.colorScale].range).clamp(true);
|
|
214
|
+
const globalMinMaxes = [];
|
|
215
|
+
for (const row of c.matrix) {
|
|
216
|
+
globalMinMaxes.push(...extent(row));
|
|
217
|
+
}
|
|
218
|
+
const absMax = Math.min(hc.zScoreCap, Math.max(...extent(globalMinMaxes).map(Math.abs)));
|
|
219
|
+
const [min, max] = hc.zScoreTransformation ? [-absMax, absMax] : [Math.min(...globalMinMaxes), Math.max(...globalMinMaxes)];
|
|
220
|
+
this.hierClusterValues = { scale, min, max };
|
|
221
|
+
}
|
|
222
|
+
getValueColor(value) {
|
|
223
|
+
const hc = this.settings.hierCluster;
|
|
224
|
+
if (hc.zScoreTransformation) {
|
|
225
|
+
const zScoreCap = this.settings.hierCluster.zScoreCap;
|
|
226
|
+
return this.hierClusterValues.scale((value - -zScoreCap) / (zScoreCap * 2));
|
|
227
|
+
} else {
|
|
228
|
+
return this.hierClusterValues.scale(value / this.hierClusterValues.max);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/* returns list of gene terms as request parameter, e.g. {gene,chr,start,stop}
|
|
232
|
+
request parameter only need term but not tw, as it will simply fetch continuous sample values on terms without transform
|
|
233
|
+
|
|
234
|
+
use of this function is unfortunate because:
|
|
235
|
+
the incomplete migration of {name} to {gene} for gene-based term
|
|
236
|
+
geneset edit ui is hardcoded to return {name}
|
|
237
|
+
existing plot states contain {name}
|
|
238
|
+
|
|
239
|
+
!!! migration instruction !!!
|
|
240
|
+
- term.name is for display only, if a term is gene-based, it has term.gene=str
|
|
241
|
+
- a geneVariant term can be based on a genomic range (and not a gene), in that case it won't have term.gene and cannot be used where gene is expected, e.g. gene-based clustering analysis
|
|
242
|
+
|
|
243
|
+
*/
|
|
244
|
+
getClusterRowTermsAsParameter() {
|
|
245
|
+
const lst = this.hcTermGroup.lst.map(this.opts.app.vocabApi.getTwMinCopy);
|
|
246
|
+
lst.sort((a, b) => a.term.name < b.term.name ? -1 : 1);
|
|
247
|
+
return lst;
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
for (const methods of [hierCluster_renderers_exports, hierCluster_interactivity_exports]) {
|
|
251
|
+
for (const methodName in methods) HierCluster.prototype[methodName] = methods[methodName];
|
|
252
|
+
}
|
|
253
|
+
var hierClusterInit = getCompInit(HierCluster);
|
|
254
|
+
var componentInit = hierClusterInit;
|
|
255
|
+
|
|
256
|
+
export {
|
|
257
|
+
HierCluster,
|
|
258
|
+
hierClusterInit,
|
|
259
|
+
componentInit
|
|
260
|
+
};
|
|
261
|
+
//# sourceMappingURL=chunk-EY2KBPHJ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../plots/matrix/hierCluster.js"],
|
|
4
|
+
"sourcesContent": ["import { Matrix } from './matrix'\nimport { getCompInit, deepEqual } from '#rx'\nimport * as renderers from './hierCluster.renderers'\nimport * as interactivity from './hierCluster.interactivity'\nimport { dofetch3 } from '#common/dofetch'\nimport { extent } from 'd3-array'\nimport { scaleLinear } from 'd3-scale'\nimport { filterJoin, getNormalRoot } from '#filter'\nimport { clusterMethodLst, distanceMethodLst } from '#shared/clustering.js'\nimport { TermTypes2Dt } from '#shared/terms.js'\nimport { colorScaleMap } from '#shared/common.js'\n\nexport class HierCluster extends Matrix {\n\tstatic type = 'hierCluster'\n\n\tconstructor(opts) {\n\t\tsuper(opts)\n\t\tthis.type = HierCluster.type\n\t\tthis.chartType = HierCluster.type\n\t}\n\n\tasync init(appState) {\n\t\tawait super.init(appState)\n\n\t\tthis.maySetSandboxHeader(appState)\n\n\t\tthis.hcClipId = this.seriesClipId + '-hc'\n\t\tthis.dom.hcClipRect = this.dom.svg\n\t\t\t.select('defs')\n\t\t\t.append('clipPath')\n\t\t\t.attr('id', this.hcClipId)\n\t\t\t//.attr('clipPathUnits', 'objectBoundingBox')\n\t\t\t.attr('clipPathUnits', 'userSpaceOnUse')\n\t\t\t.append('rect')\n\t\t\t.attr('display', 'block')\n\n\t\tthis.dom.topDendrogram = this.dom.svg\n\t\t\t.insert('g', 'g')\n\t\t\t.attr('clip-path', `url(#${this.hcClipId})`)\n\t\t\t.append('g')\n\t\t\t.attr('class', 'sjpp-matrix-dendrogram')\n\t\t\t.attr('data-testid', 'hierCluster_top_dendrogram')\n\t\t\t.on('click', event => {\n\t\t\t\tconst clickedClusterId = this.getClusterFromTopDendrogram(event)\n\t\t\t\tif (clickedClusterId) {\n\t\t\t\t\tthis.clickedClusterIds = this.getAllChildrenClusterIds(clickedClusterId)\n\t\t\t\t\tthis.clickedClusterIds.push(clickedClusterId)\n\n\t\t\t\t\tconst clickedCluster = this.hierClusterData.clustering.col.mergedClusters.get(clickedClusterId)\n\t\t\t\t\tconst clickedClusterSampleNames = clickedCluster.children.map(c => c.name)\n\t\t\t\t\tthis.addSelectedSamplesOptions(clickedClusterSampleNames, event)\n\t\t\t\t} else {\n\t\t\t\t\t// if not clicking on a cluster, change highlighted cluster color from red back to black\n\t\t\t\t\tdelete this.clickedClusterIds\n\t\t\t\t}\n\n\t\t\t\t// rerender the row Dendrogram\n\t\t\t\tif (this.clickedLeftClusterIds) {\n\t\t\t\t\t// when left dendrogram has highlight, clicking top dendro should cancel it\n\t\t\t\t\tdelete this.clickedLeftClusterIds\n\t\t\t\t\tthis.plotDendrogramHclust()\n\t\t\t\t} else this.plotDendrogramHclust('top')\n\t\t\t})\n\n\t\tthis.dom.leftDendrogram = this.dom.svg\n\t\t\t.insert('g', 'g')\n\t\t\t.attr('class', 'sjpp-matrix-dendrogram')\n\t\t\t.attr('data-testid', 'hierCluster_left_dendrogram')\n\t\t\t.on('click', event => {\n\t\t\t\tconst clickedLeftClusterId = this.getClusterFromLeftDendrogram(event)\n\t\t\t\tif (clickedLeftClusterId) {\n\t\t\t\t\tthis.clickedLeftClusterIds = this.getAllChildrenClusterIds(clickedLeftClusterId, true)\n\t\t\t\t\tthis.clickedLeftClusterIds.push(clickedLeftClusterId)\n\n\t\t\t\t\tconst clickedLeftCluster = this.hierClusterData.clustering.row.mergedClusters.get(clickedLeftClusterId)\n\n\t\t\t\t\tconst clickedLeftClusterRowsNames = clickedLeftCluster.children.map(c => c.name)\n\n\t\t\t\t\tthis.addSelectedRowsOptions(clickedLeftClusterRowsNames, event)\n\t\t\t\t} else {\n\t\t\t\t\t// if not clicking on a cluster, change highlighted cluster color from red back to black\n\t\t\t\t\tdelete this.clickedLeftClusterIds\n\t\t\t\t}\n\n\t\t\t\t// rerender the row Dendrogram\n\t\t\t\tif (this.clickedClusterIds) {\n\t\t\t\t\t// when top dendrogram has highlight, clicking left dendro should cancel it\n\t\t\t\t\tdelete this.clickedClusterIds\n\t\t\t\t\tthis.plotDendrogramHclust()\n\t\t\t\t} else this.plotDendrogramHclust('left')\n\t\t\t})\n\t\t//.attr('clip-path', `url(#${this.seriesClipId})`)\n\t}\n\n\tasync setHierClusterData(_data = {}) {\n\t\tthis.prevServerData = this.currServerData\n\t\tconst [d, twlst] = await this.requestData({})\n\t\tif (d.error) throw d.error\n\t\tthis.currServerData = structuredClone(d)\n\t\tif (!deepEqual(this.prevServerData, this.currServerData)) {\n\t\t\t// do not persist highlighted top/left dendrogram branch selection\n\t\t\t// when the cohort, clustering method, or other config changes the server data\n\t\t\tdelete this.clickedClusterIds\n\t\t\tdelete this.clickedLeftClusterIds\n\t\t}\n\t\tconst s = this.settings.hierCluster\n\n\t\tif (!d.clustering) {\n\t\t\t// stop-gap data validation, lacks essential data part\n\t\t\tif (d.gene) {\n\t\t\t\t// for now backend returns {gene:str, data:{}} if there's only 1 eligible gene\n\t\t\t\tthrow `Cannot do clustering: data is only available for 1 gene (${d.gene}). Try again by adding more genes.`\n\t\t\t}\n\t\t\t//throw 'Cannot do clustering: invalid server response (lacks .clustering{})'\n\t\t}\n\t\tthis.hierClusterData = d\n\n\t\tconst c = this.hierClusterData.clustering\n\t\tthis.setHierColorScale(c)\n\n\t\tconst samples = {}\n\n\t\t/* see comments inside plotDendrogramHclust() on structure of d.clustering.row{} and col{}\n\t\tassumes c.col is samples and c.row is non-sample things (genes for now); later may flip to c.row be samples instead!!\n\t\t*/\n\t\tfor (const [i, column] of c.col.order.entries()) {\n\t\t\tsamples[column.name] = { sample: column.name }\n\t\t\tfor (const [j, row] of c.row.order.entries()) {\n\t\t\t\tconst tw = twlst.find(tw => tw.$id === row.name || tw.id === row.name)\n\t\t\t\t// if (!tw) {\n\t\t\t\t// \tconsole.warn(`no matching tw for row.name='${row.name}'`)\n\t\t\t\t// \tcontinue\n\t\t\t\t// }\n\t\t\t\tconst value = c.matrix[j][i]\n\t\t\t\tsamples[column.name][tw.$id] = {\n\t\t\t\t\tkey: tw.term.name,\n\t\t\t\t\tvalues: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsample: column.name,\n\t\t\t\t\t\t\tdt: TermTypes2Dt[this.state.config.dataType],\n\t\t\t\t\t\t\tlabel: s.termGroupName,\n\t\t\t\t\t\t\t// gene: tw.term.name,\n\t\t\t\t\t\t\t// chr: tw.term.chr,\n\t\t\t\t\t\t\t// pos: `${tw.term.start}-${tw.term.stop}`,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t// the color will be computed in matrix.cells, so that\n\t\t\t\t\t\t\t// it can get updated even when there are no nonsetting state diff\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.hcTermNameOrder =\n\t\t\tthis.settings.hierCluster.sortClusterRows == 'asListed'\n\t\t\t\t? twlst.map(t => t.term.name)\n\t\t\t\t: this.settings.hierCluster.sortClusterRows == 'byName'\n\t\t\t\t? twlst.map(t => t.term.name).sort()\n\t\t\t\t: c.row.order.map(row => twlst.find(t => t.$id == row.name)?.term.name)\n\n\t\tif (this.hcTermNameOrder.includes(undefined)) throw `unable to map row.name to term.name`\n\n\t\tthis.hcTermSorter = (a, b) => {\n\t\t\tconst i = this.hcTermNameOrder.indexOf(a.tw.term.name)\n\t\t\tconst j = this.hcTermNameOrder.indexOf(b.tw.term.name)\n\t\t\tif (i == -1 && j == -1) return 0\n\t\t\tif (i == -1) return 1\n\t\t\tif (j == -1) return -1\n\t\t\treturn i - j\n\t\t}\n\n\t\tthis.hcSampleNameOrder = c.col.order.map(col => col.name)\n\t\tthis.hcSampleSorter = (a, b) => {\n\t\t\tconst i = this.hcSampleNameOrder.indexOf(a.sample)\n\t\t\tconst j = this.hcSampleNameOrder.indexOf(b.sample)\n\t\t\tif (i == -1 && j == -1) return 0\n\t\t\tif (i == -1) return 1\n\t\t\tif (j == -1) return -1\n\t\t\treturn i - j\n\t\t}\n\n\t\t// from d.byTermId to byTermId: change byTermId keys from gene names to $ids\n\t\tconst byTermId = {}\n\t\tfor (const tw of twlst) {\n\t\t\tif (d.byTermId?.[tw.term.name]) byTermId[tw.$id] = d.byTermId[tw.term.name]\n\t\t}\n\t\tthis.hierClusterSamples = {\n\t\t\trefs: { byTermId, bySampleId: d.bySampleId },\n\t\t\tlst: c.col.order.map(c => samples[c.name]),\n\t\t\tsamples,\n\t\t\tremovedHierClusterTerms: d.removedHierClusterTerms\n\t\t}\n\t}\n\n\tasync requestData() {\n\t\t// may revert to using {signal} argument if detectStale() is used to wrap this function\n\t\tconst body = this.currRequestOpts?.hierCluster || this.getHCRequestBody(this.state)\n\t\tconst twlst = this.hcTermGroup.lst\n\t\tconst data = await dofetch3('termdb/cluster', { body, signal: this.api.getAbortSignal?.() })\n\t\t// return the twlst that was submitted in the data request, this data-to-twlst reference will not be affected by race condition\n\t\treturn [data, twlst]\n\t}\n\n\tgetHCRequestBody(state) {\n\t\tthis.hcTermGroup =\n\t\t\tthis.config.termgroups.find(grp => grp.type == 'hierCluster') ||\n\t\t\tthis.termOrder?.find(t => t.grp.type == 'hierCluster')?.grp\n\n\t\tconst s = state.config.settings.hierCluster\n\t\t// temporary fix to get rid of hard/soft filter and only keep dictionary legend filter,\n\t\t// soft filter shouldn't be used to filter out any samples for hierCluster\n\t\t// TODO: add hard filter back to filter out samples\n\t\tconst dictionaryLegendFilter = {\n\t\t\ttype: 'tvslst',\n\t\t\tin: true,\n\t\t\tjoin: 'and',\n\t\t\tlst: state.config.legendValueFilter.lst.filter(f => !f.tvs.legendFilterType)\n\t\t}\n\t\tconst terms = this.getClusterRowTermsAsParameter()\n\t\tif (!terms.length) throw 'no data'\n\t\t// !!! NOTE !!!\n\t\t// all parameters here must remove payload properties that are\n\t\t// not relevant to the data request, so that the dofetch and/or\n\t\t// browser caching would work\n\n\t\t// Checking if cluster and distance method for hierarchial clustering is valid\n\t\tif (!clusterMethodLst.find(i => i.value == s.clusterMethod)) throw 'Invalid cluster method'\n\t\tif (!distanceMethodLst.find(i => i.value == s.distanceMethod)) throw 'Invalid distance method'\n\t\tconst body = {\n\t\t\tgenome: state.vocab.genome,\n\t\t\tdslabel: state.vocab.dslabel,\n\t\t\tdataType: state.config.dataType,\n\t\t\tclusterMethod: s.clusterMethod,\n\t\t\tdistanceMethod: s.distanceMethod,\n\t\t\tzScoreTransformation: s.zScoreTransformation,\n\t\t\tterms,\n\t\t\tfilter: getNormalRoot(filterJoin([state.filter, dictionaryLegendFilter])),\n\t\t\tfilter0: state.filter0\n\t\t}\n\t\tif (state.config.dataType == 'proteomeAbundance') {\n\t\t\tbody.proteomeDetails = {\n\t\t\t\tassay: state.config.proteomeDetails?.assay,\n\t\t\t\tcohort: state.config.proteomeDetails?.cohort\n\t\t\t}\n\t\t}\n\t\treturn body\n\t}\n\n\tcombineData() {\n\t\tif (!this.hierClusterSamples) return\n\t\tconst d = this.data // matrix data\n\t\tconst removedHierClusterTerms = this.hierClusterSamples.removedHierClusterTerms\n\t\tconst samples = {}\n\t\tconst lst = []\n\t\t// the gene expression samples will be used as a filter for the matrix samples\n\t\tfor (const sampleId in this.hierClusterSamples.samples) {\n\t\t\tconst s = this.hierClusterSamples.samples[sampleId]\n\t\t\tsamples[sampleId] = s\n\t\t\tlst.push(s)\n\t\t\tif (sampleId in d.samples) Object.assign(s, d.samples[sampleId])\n\t\t\tconst _ref_ = this.hierClusterSamples.refs.bySampleId[sampleId] || {}\n\t\t\tif (!s._ref_) s._ref_ = _ref_\n\t\t\t// hierCluster refs.bySampleId will overwrite matrix reference properties with the same name\n\t\t\telse Object.assign(s._ref_, _ref_)\n\t\t}\n\n\t\t// combine this.hierClusterSamples.refs.byTermId into this.data.refs.byTermId\n\t\tconst t = this.hierClusterSamples.refs.byTermId\n\t\tfor (const $id of Object.keys(t)) {\n\t\t\td.refs.byTermId[$id] = Object.assign({}, d.refs.byTermId[$id] || {}, t[$id])\n\t\t}\n\t\tthis.data = { samples, lst, refs: d.refs, removedHierClusterTerms }\n\t}\n\n\tsetHierColorScale(c) {\n\t\tconst hc = this.settings.hierCluster\n\t\tconst scale = scaleLinear(colorScaleMap[hc.colorScale].domain, colorScaleMap[hc.colorScale].range).clamp(true)\n\t\tconst globalMinMaxes = []\n\t\tfor (const row of c.matrix) {\n\t\t\tglobalMinMaxes.push(...extent(row))\n\t\t}\n\t\tconst absMax = Math.min(hc.zScoreCap, Math.max(...extent(globalMinMaxes).map(Math.abs)))\n\t\t// if zScore transformation is not performed, should use min/max value from data\n\t\tconst [min, max] = hc.zScoreTransformation\n\t\t\t? [-absMax, absMax]\n\t\t\t: [Math.min(...globalMinMaxes), Math.max(...globalMinMaxes)]\n\t\t// what's purpose of assigning this.hierClusterValues{}, to signal something to matrix code?\n\t\tthis.hierClusterValues = { scale, min, max }\n\t}\n\n\tgetValueColor(value) {\n\t\tconst hc = this.settings.hierCluster\n\t\tif (hc.zScoreTransformation) {\n\t\t\tconst zScoreCap = this.settings.hierCluster.zScoreCap\n\t\t\treturn this.hierClusterValues.scale((value - -zScoreCap) / (zScoreCap * 2))\n\t\t} else {\n\t\t\treturn this.hierClusterValues.scale(value / this.hierClusterValues.max)\n\t\t}\n\t}\n\n\t/* returns list of gene terms as request parameter, e.g. {gene,chr,start,stop}\n\trequest parameter only need term but not tw, as it will simply fetch continuous sample values on terms without transform\n\n\tuse of this function is unfortunate because:\n\t\tthe incomplete migration of {name} to {gene} for gene-based term\n\t\tgeneset edit ui is hardcoded to return {name}\n\t\texisting plot states contain {name}\n\n\t!!! migration instruction !!!\n\t- term.name is for display only, if a term is gene-based, it has term.gene=str\n\t- a geneVariant term can be based on a genomic range (and not a gene), in that case it won't have term.gene and cannot be used where gene is expected, e.g. gene-based clustering analysis\n\n\t*/\n\tgetClusterRowTermsAsParameter() {\n\t\tconst lst = this.hcTermGroup.lst.map(this.opts.app.vocabApi.getTwMinCopy)\n\t\t// this helps caching by having a more consistent URL string\n\t\tlst.sort((a, b) => (a.term.name < b.term.name ? -1 : 1))\n\t\treturn lst\n\t}\n}\n\nfor (const methods of [renderers, interactivity]) {\n\tfor (const methodName in methods) HierCluster.prototype[methodName] = methods[methodName]\n}\n\nexport const hierClusterInit = getCompInit(HierCluster)\nexport const componentInit = hierClusterInit\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["tw", "c"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import {
|
|
2
|
+
keyupEnter
|
|
3
|
+
} from "./chunk-OXJ2TWDO.js";
|
|
4
|
+
import {
|
|
5
|
+
get_bin_label,
|
|
6
|
+
get_bin_range_equation
|
|
7
|
+
} from "./chunk-WGL6FIUE.js";
|
|
8
|
+
|
|
9
|
+
// termsetting/handlers/NumCustomBinEditor.ts
|
|
10
|
+
var NumCustomBinEditor = class {
|
|
11
|
+
constructor(editHandler) {
|
|
12
|
+
this.dom = {};
|
|
13
|
+
this.editHandler = editHandler;
|
|
14
|
+
this.opts = editHandler.opts;
|
|
15
|
+
this.tw = editHandler.tw;
|
|
16
|
+
this.termsetting = editHandler.termsetting;
|
|
17
|
+
}
|
|
18
|
+
async render(div) {
|
|
19
|
+
if (this.q?.type != "custom-bin") this.q = this.getDefaultQ();
|
|
20
|
+
await this.editHandler.handler.density.setBinLines(this.getBoundaryOpts());
|
|
21
|
+
if (this.dom.inputsDiv) {
|
|
22
|
+
if (this.editHandler.dom.binsDiv?.node().contains(this.dom.inputsDiv.node())) return;
|
|
23
|
+
else {
|
|
24
|
+
this.dom.inputsDiv.remove();
|
|
25
|
+
delete this.dom.inputsDiv;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
this.dom.inputsDiv = div.append("div").style("display", "flex").style("width", "100%");
|
|
29
|
+
this.renderCustomBinInputs();
|
|
30
|
+
}
|
|
31
|
+
getBoundaryOpts() {
|
|
32
|
+
return {
|
|
33
|
+
values: this.q.lst.slice(1).map((bin) => ({ x: bin.startunbounded ? bin.stop : bin.start, isDraggable: true })),
|
|
34
|
+
callback: (d, value) => {
|
|
35
|
+
const boundaryValues = this.q.lst.slice(1).map((d2) => "start" in d2 ? d2.start : "");
|
|
36
|
+
boundaryValues[d.index] = value;
|
|
37
|
+
this.dom.customBinBoundaryInput.text(boundaryValues.join(",\n"));
|
|
38
|
+
this.handleInputChange("drag");
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
getDefaultQ() {
|
|
44
|
+
if (this.tw.q.mode == "discrete" && this.tw.q.type == "custom-bin") {
|
|
45
|
+
const copy = JSON.parse(JSON.stringify(this.tw.q));
|
|
46
|
+
copy.lst.forEach((bin) => {
|
|
47
|
+
if (!bin.label) bin.label = get_bin_label(bin, this.tw.q, this.tw.term.valueConversion);
|
|
48
|
+
bin.range = get_bin_range_equation(bin, this.tw.q);
|
|
49
|
+
});
|
|
50
|
+
return copy;
|
|
51
|
+
}
|
|
52
|
+
const { min, max } = this.editHandler.handler.density_data;
|
|
53
|
+
const defaultCustomBoundary = (
|
|
54
|
+
/* when no sample is annotated by this term,
|
|
55
|
+
minvalue and maxvalue are both null
|
|
56
|
+
setting defaultCustomBoundary to arbitrary "0" will allow existing UI to work
|
|
57
|
+
but remains to be evaluated if is really okay to use 0
|
|
58
|
+
*/
|
|
59
|
+
!Number.isFinite(min) || !Number.isFinite(max) ? 0 : (
|
|
60
|
+
// minvalue and maxvalue is valid number
|
|
61
|
+
max != min ? min + (max - min) / 2 : max
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
const firstBin = {
|
|
65
|
+
startunbounded: true,
|
|
66
|
+
startinclusive: false,
|
|
67
|
+
stopinclusive: false,
|
|
68
|
+
stop: +defaultCustomBoundary.toFixed(this.tw.term.type == "integer" ? 0 : 2)
|
|
69
|
+
};
|
|
70
|
+
const lastBin = {
|
|
71
|
+
stopunbounded: true,
|
|
72
|
+
startinclusive: true,
|
|
73
|
+
stopinclusive: false,
|
|
74
|
+
start: +defaultCustomBoundary.toFixed(this.tw.term.type == "integer" ? 0 : 2)
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
mode: "discrete",
|
|
78
|
+
type: "custom-bin",
|
|
79
|
+
lst: [
|
|
80
|
+
// Type '{ label: any; range: any; startunbounded: boolean; startinclusive: boolean; stopinclusive: boolean; stop: number; }' is not assignable to type 'StartUnboundedBin | FullyBoundedBin'.
|
|
81
|
+
// Property 'start' is missing in type '{ label: any; range: any; startunbounded: boolean; startinclusive: boolean; stopinclusive: boolean; stop: number; }' but required in type 'FullyBoundedBin'.
|
|
82
|
+
{
|
|
83
|
+
...firstBin,
|
|
84
|
+
label: get_bin_label(firstBin, this.tw.q, this.tw.term.valueConversion),
|
|
85
|
+
range: get_bin_range_equation(firstBin, this.tw.q)
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
...lastBin,
|
|
89
|
+
label: get_bin_label(lastBin, this.tw.q, this.tw.term.valueConversion),
|
|
90
|
+
range: get_bin_range_equation(lastBin, this.tw.q)
|
|
91
|
+
}
|
|
92
|
+
//satisfies StopUnboundedBin
|
|
93
|
+
]
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/******************* Functions for Numerical Custom size bins *******************/
|
|
97
|
+
renderCustomBinInputs() {
|
|
98
|
+
const q = this.q;
|
|
99
|
+
const boundaryDiv = this.dom.inputsDiv.append("div").style("margin-right", "20px");
|
|
100
|
+
this.dom.rangeAndLabelDiv = this.dom.inputsDiv.append("div");
|
|
101
|
+
boundaryDiv.append("div").style("margin-bottom", "5px").style("color", "rgb(136, 136, 136)").text("Bin boundaries");
|
|
102
|
+
this.dom.customBinBoundaryInput = boundaryDiv.append("textarea").style("width", "100px").style("height", "70px").text(
|
|
103
|
+
q.lst.slice(1).map((d) => "start" in d ? d.start : "").join("\n")
|
|
104
|
+
).on("change", () => this.handleInputChange()).on("keyup", async (event) => {
|
|
105
|
+
if (!keyupEnter(event) && event.key != 8 && event.key != "Enter") return;
|
|
106
|
+
if (!this.dom.inputsDiv.selectAll("input").node().value) return;
|
|
107
|
+
this.handleInputChange();
|
|
108
|
+
});
|
|
109
|
+
boundaryDiv.append("div").style("font-size", ".6em").style("margin-left", "1px").style("color", "#858585").html("Enter numeric values </br>seperated by ENTER");
|
|
110
|
+
this.renderBoundaryInputDivs();
|
|
111
|
+
}
|
|
112
|
+
renderBoundaryInputDivs() {
|
|
113
|
+
const data = this.q.lst;
|
|
114
|
+
const holder = this.dom.rangeAndLabelDiv;
|
|
115
|
+
holder.selectAll("*").remove();
|
|
116
|
+
const grid = holder.append("div").style("display", "grid").style("grid-template-columns", "auto auto").style("column-gap", "20px").style("align-items", "center");
|
|
117
|
+
grid.append("div").style("margin-bottom", "3px").style("color", "rgb(136, 136, 136)").text("Range");
|
|
118
|
+
grid.append("div").style("margin-bottom", "3px").style("color", "rgb(136, 136, 136)").text("Bin label");
|
|
119
|
+
for (const d of data) {
|
|
120
|
+
grid.append("div").attr("name", "range").html(d.range);
|
|
121
|
+
grid.append("div").append("input").attr("type", "text").style("margin", "2px 0px").property("value", d.label).on("change", function() {
|
|
122
|
+
d.label = this.value;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
this.dom.customBinRanges = this.dom.inputsDiv.selectAll('div[name="range"]').data(data);
|
|
126
|
+
this.dom.customBinLabelInput = this.dom.inputsDiv.selectAll("input").data(data);
|
|
127
|
+
}
|
|
128
|
+
handleInputChange(eventType = "") {
|
|
129
|
+
const self = this.tw;
|
|
130
|
+
const inputs = this.dom.inputsDiv.selectAll("input");
|
|
131
|
+
inputs.property("value", "");
|
|
132
|
+
const data = this.processCustomBinInputs();
|
|
133
|
+
if (data == void 0) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (self.q.hiddenValues) this.tw.q.hiddenValues = self.q.hiddenValues;
|
|
137
|
+
if (this.binsChanged(data, this.q.lst)) {
|
|
138
|
+
this.q.lst = data;
|
|
139
|
+
}
|
|
140
|
+
this.renderBoundaryInputDivs();
|
|
141
|
+
if (eventType != "drag") this.editHandler.handler.density.setBinLines(this.getBoundaryOpts());
|
|
142
|
+
}
|
|
143
|
+
binsChanged(data, qlst) {
|
|
144
|
+
if (data.length != qlst.length) return true;
|
|
145
|
+
if (Object.keys(data[0]).length !== Object.keys(qlst[0]).length) return true;
|
|
146
|
+
for (const [i, bin] of qlst.entries()) {
|
|
147
|
+
for (const k of Object.keys(bin)) {
|
|
148
|
+
if (bin[k] && bin[k] !== data[i][k]) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
processCustomBinInputs() {
|
|
156
|
+
const self = this.termsetting;
|
|
157
|
+
const startinclusive = this.editHandler.boundaryInclusion == "startinclusive";
|
|
158
|
+
const stopinclusive = this.editHandler.boundaryInclusion == "stopinclusive";
|
|
159
|
+
const inputs = this.dom.inputsDiv.node().querySelectorAll("input");
|
|
160
|
+
const inputData = this.dom.customBinBoundaryInput.property("value").split("\n").filter((d) => d != "" && !isNaN(d));
|
|
161
|
+
const trackBins = new Set(inputData);
|
|
162
|
+
if (!trackBins.size) return this.tw.q.lst;
|
|
163
|
+
const sortedBins = Array.from(trackBins).map(Number).sort((a, b) => a - b);
|
|
164
|
+
const data = [
|
|
165
|
+
// first bin: StartUnbounded type
|
|
166
|
+
{
|
|
167
|
+
startunbounded: true,
|
|
168
|
+
stop: sortedBins[0],
|
|
169
|
+
startinclusive: false,
|
|
170
|
+
stopinclusive,
|
|
171
|
+
label: inputs[0].value
|
|
172
|
+
}
|
|
173
|
+
];
|
|
174
|
+
if (!data[0].label) data[0].label = get_bin_label(data[0], self.q, self.term.valueConversion);
|
|
175
|
+
if (!data[0].range) data[0].range = get_bin_range_equation(data[0], self.q);
|
|
176
|
+
for (const [i, d] of sortedBins.entries()) {
|
|
177
|
+
let bin;
|
|
178
|
+
const label = inputs[i + 1]?.value || "";
|
|
179
|
+
if (i !== trackBins.size - 1) {
|
|
180
|
+
bin = {
|
|
181
|
+
start: +d,
|
|
182
|
+
startinclusive,
|
|
183
|
+
stopinclusive,
|
|
184
|
+
stop: sortedBins[i + 1],
|
|
185
|
+
label
|
|
186
|
+
//range: ''
|
|
187
|
+
};
|
|
188
|
+
} else {
|
|
189
|
+
bin = {
|
|
190
|
+
start: +d,
|
|
191
|
+
startinclusive,
|
|
192
|
+
stopinclusive: false,
|
|
193
|
+
stopunbounded: true,
|
|
194
|
+
label
|
|
195
|
+
//range: ''
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
if (bin.label === "" || bin.label === void 0) bin.label = get_bin_label(bin, self.q, self.term.valueConversion);
|
|
199
|
+
if (bin.range === "" || bin.range === void 0) bin.range = get_bin_range_equation(bin, self.q);
|
|
200
|
+
data.push(bin);
|
|
201
|
+
}
|
|
202
|
+
return data;
|
|
203
|
+
}
|
|
204
|
+
getEditedQ(destroyDom = true) {
|
|
205
|
+
const lst = this.processCustomBinInputs();
|
|
206
|
+
if (destroyDom) {
|
|
207
|
+
for (const name of Object.keys(this.dom)) {
|
|
208
|
+
this.dom[name].remove();
|
|
209
|
+
delete this.dom[name];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
mode: "discrete",
|
|
214
|
+
type: "custom-bin",
|
|
215
|
+
lst
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
undoEdits() {
|
|
219
|
+
this.q = this.getDefaultQ();
|
|
220
|
+
this.dom.inputsDiv.selectAll("*").remove();
|
|
221
|
+
this.renderCustomBinInputs();
|
|
222
|
+
this.editHandler.handler.density.setBinLines(this.getBoundaryOpts());
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export {
|
|
227
|
+
NumCustomBinEditor
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=chunk-FRBYOOWT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../termsetting/handlers/NumCustomBinEditor.ts"],
|
|
4
|
+
"sourcesContent": ["import { keyupEnter } from '#src/client'\nimport type { NumCustomBins } from '#tw'\nimport type { NumDiscreteEditor } from './NumDiscreteEditor.ts'\nimport type { BoundaryOpts, LineData } from './NumericDensity.ts'\nimport type { TermSetting } from '../TermSetting.ts'\nimport type { CustomNumericBinConfig, CustomNumericBinConfigLst, StartUnboundedBin, StopUnboundedBin } from '#types'\nimport { get_bin_label, get_bin_range_equation } from '#shared/termdb.bins.js'\n\n// This is a bin editor for NumDiscreteEditor\n// NumericHandler (handler) -> NumDiscreteEditor (editor) -> NumCustomBinEditor (bin editor)\nexport class NumCustomBinEditor {\n\ttw: NumCustomBins\n\tq!: CustomNumericBinConfig\n\teditHandler: NumDiscreteEditor\n\ttermsetting: TermSetting\n\topts: any\n\tdom: {\n\t\t[elemName: string]: any\n\t} = {}\n\n\tconstructor(editHandler) {\n\t\tthis.editHandler = editHandler\n\t\tthis.opts = editHandler.opts\n\t\tthis.tw = editHandler.tw\n\t\tthis.termsetting = editHandler.termsetting\n\t}\n\n\tasync render(div) {\n\t\tif (this.q?.type != 'custom-bin') this.q = this.getDefaultQ()\n\t\tawait this.editHandler.handler.density.setBinLines(this.getBoundaryOpts())\n\t\tif (this.dom.inputsDiv) {\n\t\t\tif (this.editHandler.dom.binsDiv?.node().contains(this.dom.inputsDiv.node())) return\n\t\t\telse {\n\t\t\t\tthis.dom.inputsDiv.remove()\n\t\t\t\tdelete this.dom.inputsDiv\n\t\t\t}\n\t\t}\n\t\tthis.dom.inputsDiv = div.append('div').style('display', 'flex').style('width', '100%')\n\t\tthis.renderCustomBinInputs()\n\t}\n\n\tgetBoundaryOpts(): BoundaryOpts {\n\t\treturn {\n\t\t\tvalues: this.q.lst.slice(1).map(bin => ({ x: bin.startunbounded ? bin.stop : bin.start, isDraggable: true })),\n\t\t\tcallback: (d: LineData, value) => {\n\t\t\t\tconst boundaryValues = this.q.lst.slice(1).map(d => ('start' in d ? d.start : ''))\n\t\t\t\tboundaryValues[d.index] = value\n\t\t\t\tthis.dom.customBinBoundaryInput.text(boundaryValues.join(',\\n'))\n\t\t\t\tthis.handleInputChange('drag')\n\t\t\t\treturn 0\n\t\t\t}\n\t\t}\n\t}\n\n\tgetDefaultQ(): CustomNumericBinConfig {\n\t\tif (this.tw.q.mode == 'discrete' && this.tw.q.type == 'custom-bin') {\n\t\t\tconst copy = JSON.parse(JSON.stringify(this.tw.q))\n\t\t\tcopy.lst.forEach(bin => {\n\t\t\t\tif (!bin.label) bin.label = get_bin_label(bin, this.tw.q, this.tw.term.valueConversion)\n\t\t\t\tbin.range = get_bin_range_equation(bin, this.tw.q)\n\t\t\t})\n\t\t\treturn copy\n\t\t}\n\t\tconst { min, max } = this.editHandler.handler.density_data\n\t\tconst defaultCustomBoundary =\n\t\t\t/* when no sample is annotated by this term,\n\t\t\tminvalue and maxvalue are both null\n\t\t\tsetting defaultCustomBoundary to arbitrary \"0\" will allow existing UI to work\n\t\t\tbut remains to be evaluated if is really okay to use 0\n\t\t\t*/\n\t\t\t!Number.isFinite(min) || !Number.isFinite(max)\n\t\t\t\t? 0\n\t\t\t\t: // minvalue and maxvalue is valid number\n\t\t\t\tmax != min\n\t\t\t\t? min + (max - min) / 2\n\t\t\t\t: max\n\n\t\tconst firstBin = {\n\t\t\tstartunbounded: true,\n\t\t\tstartinclusive: false,\n\t\t\tstopinclusive: false,\n\t\t\tstop: +defaultCustomBoundary.toFixed(this.tw.term.type == 'integer' ? 0 : 2)\n\t\t} satisfies StartUnboundedBin\n\n\t\tconst lastBin = {\n\t\t\tstopunbounded: true,\n\t\t\tstartinclusive: true,\n\t\t\tstopinclusive: false,\n\t\t\tstart: +defaultCustomBoundary.toFixed(this.tw.term.type == 'integer' ? 0 : 2)\n\t\t} satisfies StopUnboundedBin\n\n\t\treturn {\n\t\t\tmode: 'discrete',\n\t\t\ttype: 'custom-bin',\n\t\t\tlst: [\n\t\t\t\t// Type '{ label: any; range: any; startunbounded: boolean; startinclusive: boolean; stopinclusive: boolean; stop: number; }' is not assignable to type 'StartUnboundedBin | FullyBoundedBin'.\n\t\t\t\t// Property 'start' is missing in type '{ label: any; range: any; startunbounded: boolean; startinclusive: boolean; stopinclusive: boolean; stop: number; }' but required in type 'FullyBoundedBin'.\n\t\t\t\t{\n\t\t\t\t\t...firstBin,\n\t\t\t\t\tlabel: get_bin_label(firstBin, this.tw.q, this.tw.term.valueConversion),\n\t\t\t\t\trange: get_bin_range_equation(firstBin, this.tw.q)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t...lastBin,\n\t\t\t\t\tlabel: get_bin_label(lastBin, this.tw.q, this.tw.term.valueConversion),\n\t\t\t\t\trange: get_bin_range_equation(lastBin, this.tw.q)\n\t\t\t\t} //satisfies StopUnboundedBin\n\t\t\t]\n\t\t}\n\t}\n\n\t/******************* Functions for Numerical Custom size bins *******************/\n\trenderCustomBinInputs() {\n\t\tconst q = this.q\n\t\t// boundaryDiv for entering bin boundaries\n\t\t// rangeAndLabelDiv for rendering ranges and labels\n\t\tconst boundaryDiv = this.dom.inputsDiv.append('div').style('margin-right', '20px')\n\t\tthis.dom.rangeAndLabelDiv = this.dom.inputsDiv.append('div')\n\n\t\tboundaryDiv.append('div').style('margin-bottom', '5px').style('color', 'rgb(136, 136, 136)').text('Bin boundaries')\n\n\t\tthis.dom.customBinBoundaryInput = boundaryDiv\n\t\t\t.append('textarea')\n\t\t\t.style('width', '100px')\n\t\t\t.style('height', '70px')\n\t\t\t.text(\n\t\t\t\tq.lst\n\t\t\t\t\t.slice(1)\n\t\t\t\t\t.map(d => ('start' in d ? d.start : ''))\n\t\t\t\t\t.join('\\n')\n\t\t\t)\n\t\t\t.on('change', () => this.handleInputChange())\n\t\t\t.on('keyup', async (event: any) => {\n\t\t\t\t// enter or backspace/delete\n\t\t\t\t// i don't think backspace works\n\t\t\t\tif (!keyupEnter(event) && event.key != 8 && event.key != 'Enter') return\n\t\t\t\tif (!this.dom.inputsDiv.selectAll('input').node().value) return\n\t\t\t\t// Fix for if user hits enter with no values. Reverts to default cutoff.\n\t\t\t\tthis.handleInputChange()\n\t\t\t})\n\n\t\t// help note\n\t\tboundaryDiv\n\t\t\t.append('div')\n\t\t\t.style('font-size', '.6em')\n\t\t\t.style('margin-left', '1px')\n\t\t\t.style('color', '#858585')\n\t\t\t.html('Enter numeric values </br>seperated by ENTER')\n\n\t\tthis.renderBoundaryInputDivs()\n\n\t\t// add help message for custom bin labels\n\t}\n\n\trenderBoundaryInputDivs() {\n\t\tconst data = this.q.lst\n\t\tconst holder = this.dom.rangeAndLabelDiv\n\t\tholder.selectAll('*').remove()\n\n\t\tconst grid = holder\n\t\t\t.append('div')\n\t\t\t.style('display', 'grid')\n\t\t\t.style('grid-template-columns', 'auto auto')\n\t\t\t.style('column-gap', '20px')\n\t\t\t.style('align-items', 'center')\n\n\t\tgrid.append('div').style('margin-bottom', '3px').style('color', 'rgb(136, 136, 136)').text('Range')\n\n\t\tgrid.append('div').style('margin-bottom', '3px').style('color', 'rgb(136, 136, 136)').text('Bin label')\n\n\t\tfor (const d of data) {\n\t\t\tgrid.append('div').attr('name', 'range').html(d.range)\n\n\t\t\tgrid\n\t\t\t\t.append('div')\n\t\t\t\t.append('input')\n\t\t\t\t.attr('type', 'text')\n\t\t\t\t.style('margin', '2px 0px')\n\t\t\t\t.property('value', d.label)\n\t\t\t\t.on('change', function (this: any) {\n\t\t\t\t\td.label = this.value\n\t\t\t\t})\n\t\t}\n\n\t\tthis.dom.customBinRanges = this.dom.inputsDiv.selectAll('div[name=\"range\"]').data(data)\n\t\tthis.dom.customBinLabelInput = this.dom.inputsDiv.selectAll('input').data(data)\n\t}\n\n\thandleInputChange(eventType = '') {\n\t\tconst self = this.tw\n\t\tconst inputs = this.dom.inputsDiv.selectAll('input')\n\t\tinputs.property('value', '')\n\t\tconst data = this.processCustomBinInputs()\n\t\tif (data == undefined) {\n\t\t\t// alert('Enter custom bin value(s)')\n\t\t\treturn\n\t\t}\n\t\t// update self.q.lst and render bin lines only if bin boundry changed\n\t\t//const q = self.numqByTermIdModeType[self.term.id].discrete[self.q.type!]\n\t\tif (self.q.hiddenValues) this.tw.q.hiddenValues = self.q.hiddenValues\n\t\tif (this.binsChanged(data, this.q.lst)) {\n\t\t\tthis.q.lst = data\n\t\t}\n\t\tthis.renderBoundaryInputDivs()\n\t\tif (eventType != 'drag') this.editHandler.handler.density.setBinLines(this.getBoundaryOpts())\n\t\t//self.q.lst = q.lst //store the new ranges in self.q, the mode is initialized when selecting the tab\n\t}\n\n\tbinsChanged(data, qlst) {\n\t\tif (data.length != qlst.length) return true\n\t\tif (Object.keys(data[0]).length !== Object.keys(qlst[0]).length) return true\n\t\tfor (const [i, bin] of qlst.entries()) {\n\t\t\tfor (const k of Object.keys(bin)) {\n\t\t\t\tif (bin[k] && bin[k] !== data[i][k]) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\tprocessCustomBinInputs() {\n\t\tconst self = this.termsetting\n\t\tconst startinclusive = this.editHandler.boundaryInclusion == 'startinclusive'\n\t\tconst stopinclusive = this.editHandler.boundaryInclusion == 'stopinclusive'\n\t\tconst inputs = this.dom.inputsDiv.node().querySelectorAll('input')\n\n\t\tconst inputData = this.dom.customBinBoundaryInput\n\t\t\t.property('value')\n\t\t\t.split('\\n')\n\t\t\t.filter((d: any) => d != '' && !isNaN(d))\n\n\t\t// Fix for when user enters in the same number more than once.\n\t\t// UI will ignore duplicate entries completely.\n\t\tconst trackBins = new Set(inputData)\n\t\tif (!trackBins.size) return this.tw.q.lst\n\n\t\tconst sortedBins = Array.from(trackBins)\n\t\t\t.map(Number)\n\t\t\t.sort((a, b) => a - b)\n\n\t\tconst data: CustomNumericBinConfigLst = [\n\t\t\t// first bin: StartUnbounded type\n\t\t\t{\n\t\t\t\tstartunbounded: true,\n\t\t\t\tstop: sortedBins[0],\n\t\t\t\tstartinclusive: false,\n\t\t\t\tstopinclusive,\n\t\t\t\tlabel: inputs[0].value\n\t\t\t}\n\t\t]\n\t\t// first bin\n\t\tif (!data[0].label) data[0].label = get_bin_label(data[0], self.q, self.term.valueConversion)\n\t\tif (!data[0].range) data[0].range = get_bin_range_equation(data[0], self.q)\n\t\tfor (const [i, d] of sortedBins.entries()) {\n\t\t\tlet bin\n\t\t\tconst label = inputs[i + 1]?.value || ''\n\t\t\tif (i !== trackBins.size - 1) {\n\t\t\t\t// intermediate bin: FullyBounded type\n\t\t\t\tbin = {\n\t\t\t\t\tstart: +d,\n\t\t\t\t\tstartinclusive,\n\t\t\t\t\tstopinclusive,\n\t\t\t\t\tstop: sortedBins[i + 1],\n\t\t\t\t\tlabel\n\t\t\t\t\t//range: ''\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// last bin: StopUnbounded type\n\t\t\t\tbin = {\n\t\t\t\t\tstart: +d,\n\t\t\t\t\tstartinclusive,\n\t\t\t\t\tstopinclusive: false,\n\t\t\t\t\tstopunbounded: true,\n\t\t\t\t\tlabel\n\t\t\t\t\t//range: ''\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (bin.label === '' || bin.label === undefined) bin.label = get_bin_label(bin, self.q, self.term.valueConversion)\n\t\t\tif (bin.range === '' || bin.range === undefined) bin.range = get_bin_range_equation(bin, self.q)\n\t\t\tdata.push(bin)\n\t\t}\n\t\treturn data\n\t}\n\n\tgetEditedQ(destroyDom = true): CustomNumericBinConfig {\n\t\tconst lst = this.processCustomBinInputs()\n\t\tif (destroyDom) {\n\t\t\tfor (const name of Object.keys(this.dom)) {\n\t\t\t\tthis.dom[name].remove()\n\t\t\t\tdelete this.dom[name]\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tmode: 'discrete',\n\t\t\ttype: 'custom-bin',\n\t\t\tlst\n\t\t}\n\t}\n\n\tundoEdits() {\n\t\tthis.q = this.getDefaultQ()\n\t\tthis.dom.inputsDiv.selectAll('*').remove()\n\t\tthis.renderCustomBinInputs()\n\t\tthis.editHandler.handler.density.setBinLines(this.getBoundaryOpts())\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["d"]
|
|
7
|
+
}
|