@sjcrh/proteinpaint-client 2.196.0 → 2.198.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-R3PFZNRN.js +1373 -0
- package/dist/AIProjectAdmin-DM3KG6SR.js +958 -0
- package/dist/AppHeader-6DZQ6YZX.js +835 -0
- package/dist/BoxPlot-76NINVX4.js +1217 -0
- package/dist/CorrelationVolcano-U5UMJNH5.js +619 -0
- package/dist/DE-AXNYWIQK.js +95 -0
- package/dist/DEinput-JH6YY6LS.js +301 -0
- package/dist/DifferentialAnalysis-25P4CGIY.js +242 -0
- package/dist/DifferentialAnalysis-25P4CGIY.js.map +7 -0
- package/dist/Disco-NVMLF3BK.js +3392 -0
- package/dist/Disco-NVMLF3BK.js.map +7 -0
- package/dist/Disco.UI-C7CZINUQ.js +249 -0
- package/dist/DmrPlot-WROR4ENM.js +642 -0
- package/dist/GB-JUABODPH.js +1394 -0
- package/dist/GB-JUABODPH.js.map +7 -0
- package/dist/GSEA-Y5R2THIJ.js +846 -0
- package/dist/GSEA-Y5R2THIJ.js.map +7 -0
- package/dist/GeneExpInput-JDU6EI7K.js +367 -0
- package/dist/Geomap-J763OK2F.js +89 -0
- package/dist/Geomap-J763OK2F.js.map +7 -0
- package/dist/HicApp-UNIJLH4B.js +2250 -0
- package/dist/IDCViewer-KVPCIUDW.js +10803 -0
- package/dist/IDCViewer-KVPCIUDW.js.map +7 -0
- package/dist/NumBinaryEditor-WMN2GGO4.js +271 -0
- package/dist/NumBinaryEditor.unit.spec-TAMXV6SE.js +286 -0
- package/dist/NumContEditor-XYIOJY4E.js +109 -0
- package/dist/NumContEditor.unit.spec-WDZ75BHO.js +169 -0
- package/dist/NumCustomBinEditor-5SY3C4TY.js +38 -0
- package/dist/NumCustomBinEditor.unit.spec-XHTAIXR3.js +284 -0
- package/dist/NumDiscreteEditor-NRDRX4FD.js +179 -0
- package/dist/NumDiscreteEditor.unit.spec-2CJW7OAT.js +202 -0
- package/dist/NumRegularBinEditor-DUDVTNDC.js +38 -0
- package/dist/NumRegularBinEditor.unit.spec-H3GNQHMN.js +227 -0
- package/dist/NumSplineEditor-7Q4AC7KH.js +198 -0
- package/dist/NumSplineEditor.unit.spec-YRZK5PH5.js +199 -0
- package/dist/NumericDensity-NTNWUESG.js +38 -0
- package/dist/NumericDensity.unit.spec-5I5U6T6P.js +221 -0
- package/dist/NumericHandler-MEW2KMPX.js +39 -0
- package/dist/NumericHandler.unit.spec-JFX4BPRG.js +219 -0
- package/dist/ProteomeInput-K2ZHR2U6.js +395 -0
- package/dist/ProteomeInput-K2ZHR2U6.js.map +7 -0
- package/dist/RunChart2-BEBDU7RC.js +758 -0
- package/dist/SC-XCBFJVUJ.js +1120 -0
- package/dist/SC-XCBFJVUJ.js.map +7 -0
- package/dist/Volcano-4Y4TP3UX.js +1385 -0
- package/dist/Volcano-4Y4TP3UX.js.map +7 -0
- package/dist/WSIViewer-ZLQU62PD.js +48562 -0
- package/dist/WsiSamplesPlot-JMBSITOM.js +165 -0
- package/dist/adSandbox-664IRCRL.js +38 -0
- package/dist/animatedBubbleChart-TX7NW34K.js +555 -0
- package/dist/app-63WJ3BMP.js +37 -0
- package/dist/app-77FIZHCG.js +49 -0
- package/dist/app.js +19 -19
- package/dist/bam-IETNVAYD.js +860 -0
- package/dist/barchart-YUVXJNH4.js +47 -0
- package/dist/barchart.data-P4EIQXGE.js +22 -0
- package/dist/barchart.events-JPVCLTIG.js +47 -0
- package/dist/barchart.integration.spec-ZH7DEQI2.js +2196 -0
- package/dist/barchart2-XO2FG76J.js +314 -0
- package/dist/bars.renderer-AUIWUJDH.js +12 -0
- package/dist/block-NBTCOT3H.js +6255 -0
- package/dist/block-NBTCOT3H.js.map +7 -0
- package/dist/block.init-X7Y2EEVR.js +38 -0
- package/dist/block.mds.expressionrank-BIAOZIZ3.js +359 -0
- package/dist/block.mds.geneboxplot-CNICDVLK.js +828 -0
- package/dist/block.mds.junction-PQXCTSUI.js +1545 -0
- package/dist/block.mds.svcnv-32KMVTCT.js +6801 -0
- package/dist/block.svg-LRTOYQK2.js +164 -0
- package/dist/block.tk.aicheck-HDV7ZIUD.js +283 -0
- package/dist/block.tk.ase-JIDWKMYI.js +365 -0
- package/dist/block.tk.bam-5X3OS5HB.js +1906 -0
- package/dist/block.tk.bedgraphdot-T7JX7YQL.js +384 -0
- package/dist/block.tk.bigwig.ui-OSAYEBAE.js +212 -0
- package/dist/block.tk.hicstraw-DEY3VQFK.js +823 -0
- package/dist/block.tk.junction-7UAFEZSJ.js +2364 -0
- package/dist/block.tk.junction.textmatrixui-27LHS33U.js +199 -0
- package/dist/block.tk.ld-DF2PI7OO.js +99 -0
- package/dist/block.tk.menu-L2D5KBIV.js +1029 -0
- package/dist/block.tk.pgv-QO56SKBV.js +944 -0
- package/dist/brainImaging-NIPQWFWO.js +423 -0
- package/dist/brainRegions-ZNZ2WHSU.js +221 -0
- package/dist/bubbleHeatmap-ERWNEKZB.js +383 -0
- package/dist/chunk-2GYWFQML.js +299 -0
- package/dist/chunk-2HYJ4GDH.js +50 -0
- package/dist/chunk-2MG6XE6R.js +272 -0
- package/dist/chunk-2X6W4E3W.js +1507 -0
- package/dist/chunk-2X6W4E3W.js.map +7 -0
- package/dist/chunk-33K5PA52.js +54 -0
- package/dist/chunk-37XDBPOP.js +26 -0
- package/dist/chunk-3EWB3246.js +58 -0
- package/dist/chunk-3RSKOPIY.js +100 -0
- package/dist/chunk-3XVVN66M.js +4085 -0
- package/dist/chunk-3XVVN66M.js.map +7 -0
- package/dist/chunk-4DPVT4NE.js +1102 -0
- package/dist/chunk-4IH7DORZ.js +98 -0
- package/dist/chunk-4QNBFIIR.js +399 -0
- package/dist/chunk-4STKL6SR.js +217 -0
- package/dist/chunk-4TZIVSL5.js +34 -0
- package/dist/chunk-5ABGFJSP.js +467 -0
- package/dist/chunk-5AZNP47R.js +302 -0
- package/dist/chunk-5RL2OHXX.js +5070 -0
- package/dist/chunk-5RL2OHXX.js.map +7 -0
- package/dist/chunk-5VOPABBA.js +20941 -0
- package/dist/chunk-5VOPABBA.js.map +7 -0
- package/dist/chunk-6BB43SIB.js +102 -0
- package/dist/chunk-7OHRR2IE.js +276 -0
- package/dist/chunk-ARBHWDMY.js +226 -0
- package/dist/chunk-ARBHWDMY.js.map +7 -0
- package/dist/chunk-ASATD4T7.js +14 -0
- package/dist/chunk-AZ47Q7BX.js +1223 -0
- package/dist/chunk-AZ47Q7BX.js.map +7 -0
- package/dist/chunk-B5B3LZB3.js +236 -0
- package/dist/chunk-BHGISFCA.js +2681 -0
- package/dist/chunk-BMBOZ64T.js +2786 -0
- package/dist/chunk-BOZJHPJP.js +216 -0
- package/dist/chunk-CDD7LYJM.js +194 -0
- package/dist/chunk-CTQ3IUCA.js +2327 -0
- package/dist/chunk-D7TID3HR.js +158 -0
- package/dist/chunk-DBKNWR4J.js +1561 -0
- package/dist/chunk-DBKNWR4J.js.map +7 -0
- package/dist/chunk-E55LLYRX.js +55 -0
- package/dist/chunk-ESGXULRH.js +386 -0
- package/dist/chunk-EZ4LZ6ZT.js +117 -0
- package/dist/chunk-F3SJTVP5.js +4284 -0
- package/dist/chunk-F5IXNJO7.js +222 -0
- package/dist/chunk-FJYECRHW.js +448 -0
- package/dist/chunk-FPNRUQOU.js +833 -0
- package/dist/chunk-G5S4R77D.js +1942 -0
- package/dist/chunk-G5S4R77D.js.map +7 -0
- package/dist/chunk-G764NXQN.js +170 -0
- package/dist/chunk-GAPI4MML.js +148 -0
- package/dist/chunk-HLUZOZXJ.js +272 -0
- package/dist/chunk-HOKIK2FR.js +375 -0
- package/dist/chunk-I6WR4CG7.js +323 -0
- package/dist/chunk-I6WR4CG7.js.map +7 -0
- package/dist/chunk-KLGL6XZD.js +129 -0
- package/dist/chunk-KTKZSYIH.js +24 -0
- package/dist/chunk-KTKZSYIH.js.map +7 -0
- package/dist/chunk-L7IRWUKT.js +480 -0
- package/dist/chunk-LFCYMSVA.js +314 -0
- package/dist/chunk-LFCYMSVA.js.map +7 -0
- package/dist/chunk-LX6G7HJJ.js +617 -0
- package/dist/chunk-M2G5R4WB.js +142 -0
- package/dist/chunk-M4TTGGT4.js +102 -0
- package/dist/chunk-M6EF3WVV.js +1825 -0
- package/dist/chunk-M6KHT3MM.js +146 -0
- package/dist/chunk-MCZFHWIR.js +230 -0
- package/dist/chunk-MFQACKYU.js +448 -0
- package/dist/chunk-MVGAGTM3.js +343 -0
- package/dist/chunk-NELOT3NJ.js +119 -0
- package/dist/chunk-NRKMXULC.js +54 -0
- package/dist/chunk-NSTL4MY2.js +2110 -0
- package/dist/chunk-NSTL4MY2.js.map +7 -0
- package/dist/chunk-NYRZNRG5.js +177 -0
- package/dist/chunk-ONPKE6DC.js +368 -0
- package/dist/chunk-OXVLWQ6M.js +556 -0
- package/dist/chunk-OXVLWQ6M.js.map +7 -0
- package/dist/chunk-PFRWS4CR.js +203 -0
- package/dist/chunk-PJKQUXEN.js +1275 -0
- package/dist/chunk-Q2L44HK3.js +6364 -0
- package/dist/chunk-QNHT74XC.js +1245 -0
- package/dist/chunk-QNHT74XC.js.map +7 -0
- package/dist/chunk-RKO6BL5N.js +446 -0
- package/dist/chunk-T25QNZHB.js +254 -0
- package/dist/chunk-U7TBYVIQ.js +31 -0
- package/dist/chunk-UGRQXBL4.js +381 -0
- package/dist/chunk-USFSHSCJ.js +477 -0
- package/dist/chunk-VJ6UFVGC.js +2833 -0
- package/dist/chunk-W3WPPOXH.js +292 -0
- package/dist/chunk-WFCSOTBO.js +263 -0
- package/dist/chunk-WHP4AKDM.js +185 -0
- package/dist/chunk-WHP4AKDM.js.map +7 -0
- package/dist/chunk-WZ2L57MB.js +102 -0
- package/dist/chunk-XPY6AWXO.js +787 -0
- package/dist/chunk-XPY6AWXO.js.map +7 -0
- package/dist/chunk-Y4UAKFWC.js +37 -0
- package/dist/chunk-YQBS2ZCK.js +514 -0
- package/dist/chunk-Z5U6HOE4.js +190 -0
- package/dist/chunk-Z5U6HOE4.js.map +7 -0
- package/dist/chunk-ZNEJUKJW.js +140 -0
- package/dist/chunk-ZNEJUKJW.js.map +7 -0
- package/dist/chunk-ZTHM2TKP.js +176 -0
- package/dist/condition-2PASYSUC.js +332 -0
- package/dist/controls-5IMJ6K5L.js +41 -0
- package/dist/controls.config-P5PG2DHW.js +39 -0
- package/dist/correlation-U3EDLNHR.js +102 -0
- package/dist/cuminc-2HUFEROK.js +1149 -0
- package/dist/cuminc.integration.spec-WFWAPTDA.js +678 -0
- package/dist/cuminc.integration.spec-WFWAPTDA.js.map +7 -0
- package/dist/customdata.inputui-ZHWNEPFH.js +289 -0
- package/dist/dataDownload-VBSJBKMP.js +330 -0
- package/dist/dataDownload.integration.spec-LUFSETOP.js +193 -0
- package/dist/databrowser.ui-6H2KMSTJ.js +433 -0
- package/dist/dictionary-V37LXFIP.js +118 -0
- package/dist/dnaMethylation-OIZMHMLK.js +38 -0
- package/dist/dnaMethylation.integration.spec-CWPTJ74H.js +203 -0
- package/dist/dofetch-IWPZQB5N.js +51 -0
- package/dist/e2pca-7SLIAGYW.js +350 -0
- package/dist/ep-7L6KF6K4.js +1256 -0
- package/dist/expclust.gdc.spec-JT452Q3G.js +307 -0
- package/dist/facet-CXOUU5AS.js +521 -0
- package/dist/forms2-VPNCLQOY.js +539 -0
- package/dist/gb-P4VRXRED.js +88 -0
- package/dist/geneExpClustering-FQTCKRJJ.js +249 -0
- package/dist/geneExpression-BHO5326K.js +313 -0
- package/dist/geneExpression-ZMERB64E.js +38 -0
- package/dist/geneExpression.unit.spec-CNVHZWNG.js +102 -0
- package/dist/geneORA-FXVUCXGX.js +278 -0
- package/dist/geneRanking-SFK4UBKQ.js +553 -0
- package/dist/geneVariant-IYEHB4H7.js +41 -0
- package/dist/geneVariant-LIRRLUFR.js +39 -0
- package/dist/geneVariant.integration.spec-Y2NPNTYX.js +198 -0
- package/dist/genefusion.ui-L3HIJM3N.js +309 -0
- package/dist/geneset-A6VUFX63.js +208 -0
- package/dist/genomeBrowser.spec-CB4HHHBN.js +281 -0
- package/dist/grin2-FKBIMH5N.js +75 -0
- package/dist/grin2-V36KLEBU.js +1143 -0
- package/dist/grin2-V36KLEBU.js.map +7 -0
- package/dist/hierCluster-QFPRMHVA.js +63 -0
- package/dist/hierCluster-YWC3XYPV.js +59 -0
- package/dist/hierCluster.config-F7YYZNM3.js +40 -0
- package/dist/hierCluster.integration.spec-AF4L3YT6.js +488 -0
- package/dist/hierCluster.interactivity-RPY74PK6.js +54 -0
- package/dist/hierCluster.renderers-LOKHZ3V2.js +21 -0
- package/dist/imagePlot-BBEXA754.js +163 -0
- package/dist/importPlot-7QGANZGK.js +8 -0
- package/dist/isoformExpression-4SLLCVFD.js +40 -0
- package/dist/isoformExpression.unit.spec-GEL4JJ64.js +208 -0
- package/dist/launch.adhoc-LWLBQJS5.js +42 -0
- package/dist/leftlabel.sample-RTEZOIH2.js +264 -0
- package/dist/legacyDataset-VLD7ZYWI.js +119 -0
- package/dist/lollipop-XKQK5QZU.js +171 -0
- package/dist/maf-AZQPPWDO.js +459 -0
- package/dist/maftimeline-7MSVYKQU.js +593 -0
- package/dist/matrix-BGLWC25D.js +58 -0
- package/dist/matrix-IQR5SRMK.js +63 -0
- package/dist/matrix.cells-5C57NWOY.js +28 -0
- package/dist/matrix.config-2DQXAN2E.js +41 -0
- package/dist/matrix.data-ADCGF5H6.js +25 -0
- package/dist/matrix.groups-V4ITQ5F7.js +27 -0
- package/dist/matrix.integration.spec-IBNOO2WP.js +3072 -0
- package/dist/matrix.integration.spec-IBNOO2WP.js.map +7 -0
- package/dist/matrix.interactivity-JNELJFOV.js +42 -0
- package/dist/matrix.layout-WBVIV6GR.js +44 -0
- package/dist/matrix.legend-YHOWPK77.js +22 -0
- package/dist/matrix.renderers-5BGVRR3M.js +38 -0
- package/dist/matrix.serieses-2GZJOASZ.js +21 -0
- package/dist/matrix.sort-WKIWPJKP.js +27 -0
- package/dist/matrix.sort.unit.spec-L2E4D4AS.js +472 -0
- package/dist/matrix.sorterUi-TEJWWJ64.js +18 -0
- package/dist/matrix.sorterUi.unit.spec-SHP7C4P7.js +342 -0
- package/dist/mavb-4MXNYUEO.js +732 -0
- package/dist/mds.fimo-WHIJIBOI.js +518 -0
- package/dist/mds.samplescatterplot-BRJ6NG2D.js +1550 -0
- package/dist/mds.survivalplot-OPCMB5PB.js +483 -0
- package/dist/numericDictTermCluster-7MIFOP2K.js +65 -0
- package/dist/oncomatrix-BGG6BEUI.js +295 -0
- package/dist/oncomatrix.spec-LYQ4L4F3.js +448 -0
- package/dist/plot.2dvaf-6WVCP2ZI.js +377 -0
- package/dist/plot.app-MLBP6WFP.js +41 -0
- package/dist/plot.barplot-JEPRZSCU.js +102 -0
- package/dist/plot.boxplot-GNFW42VM.js +152 -0
- package/dist/plot.brainImaging-5ACNSD45.js +51 -0
- package/dist/plot.disco-Q2V2KKIH.js +102 -0
- package/dist/plot.dzi-KVT6S7K7.js +33 -0
- package/dist/plot.ssgq-4N3KFJQ2.js +139 -0
- package/dist/plot.vaf2cov-ITRG5U43.js +259 -0
- package/dist/plot.wsi-26YZNU4V.js +36 -0
- package/dist/polar2-J7GVUK4X.js +231 -0
- package/dist/profileForms-VXV2JLXU.js +446 -0
- package/dist/profilePlot-ZZYZK4SY.js +54 -0
- package/dist/proteinView-7KN532D3.js +1568 -0
- package/dist/qualitative-MLRVLIAU.js +43 -0
- package/dist/radar2-WM2ZBOH3.js +326 -0
- package/dist/radarFacility2-3SBR2JJ3.js +334 -0
- package/dist/regression-WMRPQJW2.js +56 -0
- package/dist/regression.inputs-VWZKSYNY.js +48 -0
- package/dist/regression.inputs.term-OWE6GWHM.js +48 -0
- package/dist/regression.inputs.values.table-4INNZQI2.js +45 -0
- package/dist/regression.integration.spec-XKQ2JOOT.js +784 -0
- package/dist/regression.results-VZBYMBYC.js +40 -0
- package/dist/regression.spec-DU3UTDCJ.js +708 -0
- package/dist/render-N5FOF247.js +38 -0
- package/dist/report-DW3OHB67.js +222 -0
- package/dist/sampleScatter.spec-REFSK2V4.js +202 -0
- package/dist/sampleView-ICOT2R6O.js +48 -0
- package/dist/samplelst-TJEVASYG.js +111 -0
- package/dist/samplematrix-6DAWCXQ3.js +2198 -0
- package/dist/sc-53LNOB7N.js +86 -0
- package/dist/scatter-DKYSS4DL.js +851 -0
- package/dist/selectGenomeWithTklst-WTX66TV3.js +134 -0
- package/dist/singleCellCellType-D2CN2BHQ.js +38 -0
- package/dist/singleCellCellType.unit.spec-LADUCI4R.js +160 -0
- package/dist/singleCellGeneExpression-YR2ZT34W.js +38 -0
- package/dist/singleCellGeneExpression.unit.spec-BM63M432.js +153 -0
- package/dist/singleCellPlot-3ICIOILE.js +54 -0
- package/dist/singlecell-6ZUFA3BQ.js +86 -0
- package/dist/singlecell-KX7W4U57.js +1572 -0
- package/dist/snp-VIURB7L3.js +38 -0
- package/dist/snp.unit.spec-ACZNZUNS.js +176 -0
- package/dist/snplocus-3LW4ZUZR.js +208 -0
- package/dist/spliceevent.a53ss.diagram-AKTZGWNM.js +151 -0
- package/dist/spliceevent.exonskip.diagram-XZHXB77R.js +283 -0
- package/dist/spliceevent.exonskip.diagram-XZHXB77R.js.map +7 -0
- package/dist/spliceevent.noeventdiagram-YTXWWNTJ.js +460 -0
- package/dist/ssGSEA-THW4WFMI.js +38 -0
- package/dist/ssGSEA.unit.spec-HTRGQI2K.js +88 -0
- package/dist/summarizeCnvGeneexp-RFYC3H2Z.js +163 -0
- package/dist/summarizeGeneexpSurvival-DQBZUTQ6.js +114 -0
- package/dist/summarizeMutationCnv-7AYEMHAI.js +164 -0
- package/dist/summarizeMutationDiagnosis-AKFJDSAF.js +40 -0
- package/dist/summarizeMutationSurvival-QJHZRQBZ.js +99 -0
- package/dist/summary-A5P7AYK4.js +49 -0
- package/dist/summary.integration.spec-HQISXGNL.js +414 -0
- package/dist/summaryInput-HP675QOQ.js +235 -0
- package/dist/sunburst-65LSYRXX.js +284 -0
- package/dist/survival-QNEI6YVK.js +46 -0
- package/dist/survival-UI74VXSM.js +58 -0
- package/dist/survival.integration.spec-X5N3JQXS.js +915 -0
- package/dist/survival.integration.spec-X5N3JQXS.js.map +7 -0
- package/dist/svgraph-PSX2NER3.js +1387 -0
- package/dist/svmr-QDQ33EFX.js +3842 -0
- package/dist/table-LWAI27UO.js +200 -0
- package/dist/termCollection-3JHR74FG.js +179 -0
- package/dist/termCollection-CDF5LYUG.js +38 -0
- package/dist/termCollection.unit.spec-HOJKYWHF.js +208 -0
- package/dist/tk-GL4QCL4K.js +1019 -0
- package/dist/tk-GL4QCL4K.js.map +7 -0
- package/dist/tk-OEQFO73V.js +46 -0
- package/dist/tp.ui-SHNERDGC.js +1459 -0
- package/dist/tvs.dt-CZDC4TSR.js +39 -0
- package/dist/tvs.dtcnv.categorical-OPBDHZGB.js +40 -0
- package/dist/tvs.dtcnv.continuous-AR6P4EP3.js +72 -0
- package/dist/tvs.dtfusion-2YQ7N6FQ.js +40 -0
- package/dist/tvs.dtitd-ATCHW735.js +40 -0
- package/dist/tvs.dtitd-ATCHW735.js.map +7 -0
- package/dist/tvs.dtsnvindel-WHHWAATJ.js +40 -0
- package/dist/tvs.dtsv-3UMCW65O.js +40 -0
- package/dist/tvs.numeric-TOEPASWN.js +21 -0
- package/dist/tvs.samplelst-M7XKXRTZ.js +104 -0
- package/dist/tvs.termCollection-WT4WZMYR.js +159 -0
- package/dist/violin-2YGXTBDS.js +46 -0
- package/dist/violin.integration.spec-YWNHVAGS.js +1425 -0
- package/dist/violin.interactivity-J6BE2UQL.js +38 -0
- package/dist/violin.renderer-3GRUWP2U.js +40 -0
- package/dist/vocabulary-2INCVPYJ.js +41 -0
- package/package.json +3 -3
- package/dist/2dmaf-SKNV7IHT.js +0 -1373
- package/dist/AIProjectAdmin-AOTVRBNH.js +0 -958
- package/dist/AppHeader-M2ZSS3M3.js +0 -835
- package/dist/BoxPlot-P3EECSQA.js +0 -1217
- package/dist/CorrelationVolcano-YCQ5S6MT.js +0 -619
- package/dist/DE-RBMOQZCR.js +0 -95
- package/dist/DEinput-PTW6RS6U.js +0 -301
- package/dist/DifferentialAnalysis-M6IDWPYX.js +0 -245
- package/dist/DifferentialAnalysis-M6IDWPYX.js.map +0 -7
- package/dist/Disco-GUKDAHUY.js +0 -3297
- package/dist/Disco-GUKDAHUY.js.map +0 -7
- package/dist/Disco.UI-YBIMV7RH.js +0 -249
- package/dist/DmrPlot-JQPLLU6P.js +0 -642
- package/dist/GB-UOTFNVJE.js +0 -1353
- package/dist/GB-UOTFNVJE.js.map +0 -7
- package/dist/GeneExpInput-3OPDDCXR.js +0 -367
- package/dist/HicApp-VFOWRP6G.js +0 -2250
- package/dist/IDCViewer-Y7EOIIBG.js +0 -10455
- package/dist/IDCViewer-Y7EOIIBG.js.map +0 -7
- package/dist/NumBinaryEditor-RL44SO3T.js +0 -271
- package/dist/NumBinaryEditor.unit.spec-P73PGAX5.js +0 -286
- package/dist/NumContEditor-MIC7M73G.js +0 -109
- package/dist/NumContEditor.unit.spec-5XZH7OCG.js +0 -169
- package/dist/NumCustomBinEditor-W357XTIR.js +0 -38
- package/dist/NumCustomBinEditor.unit.spec-CJMK4CYW.js +0 -284
- package/dist/NumDiscreteEditor-PRSUMS3I.js +0 -179
- package/dist/NumDiscreteEditor.unit.spec-A6R56P3Z.js +0 -202
- package/dist/NumRegularBinEditor-7OHUEUCC.js +0 -38
- package/dist/NumRegularBinEditor.unit.spec-NOAX42UZ.js +0 -227
- package/dist/NumSplineEditor-XI7AT5LM.js +0 -198
- package/dist/NumSplineEditor.unit.spec-ZH4M2N2C.js +0 -199
- package/dist/NumericDensity-X6IHQAW3.js +0 -38
- package/dist/NumericDensity.unit.spec-EKVD4AUG.js +0 -221
- package/dist/NumericHandler-5ONBWFJ5.js +0 -39
- package/dist/NumericHandler.unit.spec-SHI6E4VA.js +0 -219
- package/dist/ProteomeInput-HN46MIBP.js +0 -396
- package/dist/ProteomeInput-HN46MIBP.js.map +0 -7
- package/dist/RunChart2-Y6IY6MW2.js +0 -758
- package/dist/SC-JYF564FK.js +0 -1130
- package/dist/SC-JYF564FK.js.map +0 -7
- package/dist/Volcano-WZGAUYGY.js +0 -1380
- package/dist/Volcano-WZGAUYGY.js.map +0 -7
- package/dist/WSIViewer-RLLL7MAL.js +0 -48562
- package/dist/WsiSamplesPlot-FU3TCOTY.js +0 -165
- package/dist/adSandbox-ZINST5DE.js +0 -38
- package/dist/animatedBubbleChart-PIQWCVBJ.js +0 -555
- package/dist/app-N42SVGI2.js +0 -37
- package/dist/app-RWN4XLCP.js +0 -49
- package/dist/bam-QTSTXJ4N.js +0 -860
- package/dist/barchart-27BYTRVI.js +0 -47
- package/dist/barchart.data-OUNVH4JU.js +0 -22
- package/dist/barchart.events-PY4CEDSO.js +0 -47
- package/dist/barchart.integration.spec-H4WGHQ7R.js +0 -2196
- package/dist/barchart2-TIOTRAC2.js +0 -314
- package/dist/bars.renderer-57KSYAAT.js +0 -12
- package/dist/block-YPM767A4.js +0 -6226
- package/dist/block-YPM767A4.js.map +0 -7
- package/dist/block.init-LRZ3QAGC.js +0 -38
- package/dist/block.mds.expressionrank-IV7JLC52.js +0 -359
- package/dist/block.mds.geneboxplot-IBCE5XZU.js +0 -828
- package/dist/block.mds.junction-ISSCJHNF.js +0 -1545
- package/dist/block.mds.svcnv-ZEBVBTL7.js +0 -6801
- package/dist/block.svg-FYWA5VYH.js +0 -164
- package/dist/block.tk.aicheck-AD6DTKXR.js +0 -283
- package/dist/block.tk.ase-LO2J4KRE.js +0 -365
- package/dist/block.tk.bam-XGX22FCN.js +0 -1906
- package/dist/block.tk.bedgraphdot-SUIRFNFL.js +0 -384
- package/dist/block.tk.bigwig.ui-2Q7FAK3V.js +0 -212
- package/dist/block.tk.hicstraw-4MVP2PCL.js +0 -823
- package/dist/block.tk.junction-F54FTEPB.js +0 -2364
- package/dist/block.tk.junction.textmatrixui-ETROZJVK.js +0 -199
- package/dist/block.tk.ld-NJEDKSTU.js +0 -99
- package/dist/block.tk.menu-LZOY4FKT.js +0 -1029
- package/dist/block.tk.pgv-I3XHJ7VU.js +0 -944
- package/dist/brainImaging-BGP6VRFV.js +0 -423
- package/dist/brainRegions-AAN7LM2Y.js +0 -221
- package/dist/bubbleHeatmap-HNEU4CYA.js +0 -383
- package/dist/chunk-25XCVML7.js +0 -236
- package/dist/chunk-2XV6U42J.js +0 -100
- package/dist/chunk-36NAWXQ7.js +0 -5067
- package/dist/chunk-36NAWXQ7.js.map +0 -7
- package/dist/chunk-3LYZMOLO.js +0 -58
- package/dist/chunk-427UL37G.js +0 -222
- package/dist/chunk-4C3XRI6J.js +0 -54
- package/dist/chunk-4O6H4ZHL.js +0 -514
- package/dist/chunk-53JJ7SXN.js +0 -276
- package/dist/chunk-5CR24RTX.js +0 -381
- package/dist/chunk-5HMX4NUJ.js +0 -217
- package/dist/chunk-5QTJUPFS.js +0 -26
- package/dist/chunk-5V2BMEAS.js +0 -55
- package/dist/chunk-6MBTPVIM.js +0 -1275
- package/dist/chunk-6MQWYMPB.js +0 -183
- package/dist/chunk-6MQWYMPB.js.map +0 -7
- package/dist/chunk-7D3WX34I.js +0 -1230
- package/dist/chunk-7D3WX34I.js.map +0 -7
- package/dist/chunk-7FSIZZOX.js +0 -176
- package/dist/chunk-7KRS7L4U.js +0 -1443
- package/dist/chunk-7KRS7L4U.js.map +0 -7
- package/dist/chunk-A3URBFXN.js +0 -119
- package/dist/chunk-A45KH7LP.js +0 -254
- package/dist/chunk-B4GS7OLB.js +0 -4284
- package/dist/chunk-BKPDYW5T.js +0 -177
- package/dist/chunk-BWQV2OBL.js +0 -102
- package/dist/chunk-BXGQXLHP.js +0 -2786
- package/dist/chunk-CDJAHMAN.js +0 -299
- package/dist/chunk-CXHLROWX.js +0 -37
- package/dist/chunk-EKKQMKQI.js +0 -102
- package/dist/chunk-EPWIJEMK.js +0 -158
- package/dist/chunk-F7Y67LK7.js +0 -230
- package/dist/chunk-FDBVAL6K.js +0 -14
- package/dist/chunk-FISP5YN2.js +0 -292
- package/dist/chunk-G3FSS7GR.js +0 -477
- package/dist/chunk-GE4NJDV4.js +0 -98
- package/dist/chunk-GYGU4UT5.js +0 -34
- package/dist/chunk-I5IPJG2R.js +0 -148
- package/dist/chunk-I73KUUYG.js +0 -287
- package/dist/chunk-I73KUUYG.js.map +0 -7
- package/dist/chunk-IFK24IXL.js +0 -194
- package/dist/chunk-ILE6ML2D.js +0 -50
- package/dist/chunk-IRKP6IZ4.js +0 -216
- package/dist/chunk-J6ZOUCWN.js +0 -170
- package/dist/chunk-JFRSVFWO.js +0 -736
- package/dist/chunk-JFRSVFWO.js.map +0 -7
- package/dist/chunk-JNBJG57F.js +0 -448
- package/dist/chunk-K5UVG3FQ.js +0 -117
- package/dist/chunk-KE5B34CS.js +0 -102
- package/dist/chunk-L6A2BEXB.js +0 -2681
- package/dist/chunk-LQJMCE7G.js +0 -467
- package/dist/chunk-LSWU6EAQ.js +0 -31
- package/dist/chunk-LWEGSYDD.js +0 -226
- package/dist/chunk-LWEGSYDD.js.map +0 -7
- package/dist/chunk-LYVLF6HO.js +0 -1825
- package/dist/chunk-MBUQ34CF.js +0 -189
- package/dist/chunk-MBUQ34CF.js.map +0 -7
- package/dist/chunk-MN3KDNHC.js +0 -617
- package/dist/chunk-MNIBZTQE.js +0 -146
- package/dist/chunk-MTHEEXT2.js +0 -1450
- package/dist/chunk-MTHEEXT2.js.map +0 -7
- package/dist/chunk-MTZSN3H4.js +0 -302
- package/dist/chunk-N7O7NPUO.js +0 -534
- package/dist/chunk-N7O7NPUO.js.map +0 -7
- package/dist/chunk-NNFAUP2I.js +0 -315
- package/dist/chunk-NNFAUP2I.js.map +0 -7
- package/dist/chunk-OF5FE6GT.js +0 -142
- package/dist/chunk-OVSKJROY.js +0 -815
- package/dist/chunk-OVSKJROY.js.map +0 -7
- package/dist/chunk-PJ3FCJBZ.js +0 -480
- package/dist/chunk-PU2Q4SZR.js +0 -2327
- package/dist/chunk-PZPS56Z6.js +0 -343
- package/dist/chunk-QKR3ZD3S.js +0 -833
- package/dist/chunk-QMXCK4Y5.js +0 -203
- package/dist/chunk-ROJ3LJLE.js +0 -448
- package/dist/chunk-SLHWUFAW.js +0 -1943
- package/dist/chunk-SLHWUFAW.js.map +0 -7
- package/dist/chunk-SOTB4FRE.js +0 -2098
- package/dist/chunk-SOTB4FRE.js.map +0 -7
- package/dist/chunk-TJYRBEBK.js +0 -2878
- package/dist/chunk-TJYRBEBK.js.map +0 -7
- package/dist/chunk-U3G4JGKJ.js +0 -54
- package/dist/chunk-UN3O2MNB.js +0 -375
- package/dist/chunk-VDZ5QOF6.js +0 -446
- package/dist/chunk-VO5XZ2EG.js +0 -129
- package/dist/chunk-VRH7NP6R.js +0 -263
- package/dist/chunk-VTMJGRT5.js +0 -272
- package/dist/chunk-W5X6C7LY.js +0 -399
- package/dist/chunk-WJGUNGFK.js +0 -272
- package/dist/chunk-WKT46ZJ6.js +0 -368
- package/dist/chunk-WQCQWUUP.js +0 -2833
- package/dist/chunk-WY2PGUVX.js +0 -20898
- package/dist/chunk-WY2PGUVX.js.map +0 -7
- package/dist/chunk-WZ2U5QXJ.js +0 -6364
- package/dist/chunk-WZUWK5Q6.js +0 -1102
- package/dist/chunk-XPMTUVSS.js +0 -1220
- package/dist/chunk-XPMTUVSS.js.map +0 -7
- package/dist/chunk-YYFQPGIE.js +0 -386
- package/dist/condition-GVIEMQG7.js +0 -332
- package/dist/controls-73K3XBDR.js +0 -41
- package/dist/controls.config-FQKY2LRE.js +0 -39
- package/dist/correlation-AOAXIUFJ.js +0 -102
- package/dist/cuminc-OD2PPCEK.js +0 -1149
- package/dist/cuminc.integration.spec-TMIFW7EO.js +0 -678
- package/dist/cuminc.integration.spec-TMIFW7EO.js.map +0 -7
- package/dist/customdata.inputui-SWLGLATL.js +0 -289
- package/dist/dataDownload-456HL2OE.js +0 -330
- package/dist/dataDownload.integration.spec-5YS4MWK5.js +0 -193
- package/dist/databrowser.ui-7APC5MNM.js +0 -433
- package/dist/dictionary-A3HA5MVK.js +0 -118
- package/dist/dnaMethylation-6ONBKARD.js +0 -38
- package/dist/dnaMethylation.integration.spec-T3WEGVX3.js +0 -203
- package/dist/dofetch-RVPQUMVX.js +0 -51
- package/dist/e2pca-75WZ46XG.js +0 -350
- package/dist/ep-QG5CWPTW.js +0 -1256
- package/dist/expclust.gdc.spec-KBBQJR4M.js +0 -307
- package/dist/facet-QGB2Q7YV.js +0 -521
- package/dist/forms2-CJGDCWYH.js +0 -539
- package/dist/gb-NEFAHKQI.js +0 -88
- package/dist/geneExpClustering-ZVR44UZC.js +0 -249
- package/dist/geneExpression-25EX4DFK.js +0 -313
- package/dist/geneExpression-FALOA4GC.js +0 -38
- package/dist/geneExpression.unit.spec-BQLELQUS.js +0 -102
- package/dist/geneORA-K2B7JYWD.js +0 -278
- package/dist/geneRanking-6AXL5ZJS.js +0 -553
- package/dist/geneVariant-RZFDP5J5.js +0 -41
- package/dist/geneVariant-UIBZ5UIQ.js +0 -39
- package/dist/geneVariant.integration.spec-4EZQMPQB.js +0 -198
- package/dist/genefusion.ui-YK4TNS2P.js +0 -309
- package/dist/geneset-47J4D5ID.js +0 -208
- package/dist/genomeBrowser.spec-LFFWRIWG.js +0 -281
- package/dist/grin2-DQB2WW3C.js +0 -75
- package/dist/grin2-TZFU4JM3.js +0 -1078
- package/dist/grin2-TZFU4JM3.js.map +0 -7
- package/dist/gsea-KKLAMLMG.js +0 -47
- package/dist/hierCluster-3MZEJG6B.js +0 -59
- package/dist/hierCluster-YGBC4XCZ.js +0 -63
- package/dist/hierCluster.config-A4N54K3A.js +0 -40
- package/dist/hierCluster.integration.spec-GLKXFZDM.js +0 -488
- package/dist/hierCluster.interactivity-4TPWGIVC.js +0 -54
- package/dist/hierCluster.renderers-WUWSXXHU.js +0 -21
- package/dist/imagePlot-JRPYOV3Q.js +0 -163
- package/dist/importPlot-A3PFUP6K.js +0 -8
- package/dist/isoformExpression-5L4O3WKL.js +0 -40
- package/dist/isoformExpression.unit.spec-SLB6XIX4.js +0 -208
- package/dist/launch.adhoc-QI7TPYSC.js +0 -42
- package/dist/leftlabel.sample-OSIRTJFW.js +0 -264
- package/dist/legacyDataset-TNIIJABK.js +0 -119
- package/dist/lollipop-LAELXNQY.js +0 -171
- package/dist/maf-HZAYVZFO.js +0 -459
- package/dist/maftimeline-BLBNUGAL.js +0 -593
- package/dist/matrix-LVJSHXDM.js +0 -58
- package/dist/matrix-S5QQV4JU.js +0 -63
- package/dist/matrix.cells-JUTRYPG4.js +0 -28
- package/dist/matrix.config-ZTWWYNIZ.js +0 -41
- package/dist/matrix.data-BREYB54F.js +0 -25
- package/dist/matrix.groups-WMHTLOXC.js +0 -27
- package/dist/matrix.integration.spec-S6FIEE2X.js +0 -3072
- package/dist/matrix.integration.spec-S6FIEE2X.js.map +0 -7
- package/dist/matrix.interactivity-TMBVAM5M.js +0 -42
- package/dist/matrix.layout-POK5NOUV.js +0 -44
- package/dist/matrix.legend-6XVQ67AC.js +0 -22
- package/dist/matrix.renderers-G5FQZZ73.js +0 -38
- package/dist/matrix.serieses-XNLQSQS6.js +0 -21
- package/dist/matrix.sort-XNES23OQ.js +0 -27
- package/dist/matrix.sort.unit.spec-65BDBQUV.js +0 -472
- package/dist/matrix.sorterUi-WC2YX7S7.js +0 -18
- package/dist/matrix.sorterUi.unit.spec-GZQBW7F7.js +0 -342
- package/dist/mavb-T2UCRWWM.js +0 -732
- package/dist/mds.fimo-65UUK7ER.js +0 -518
- package/dist/mds.samplescatterplot-4NHGQBJF.js +0 -1550
- package/dist/mds.survivalplot-WVAHDM3Z.js +0 -483
- package/dist/numericDictTermCluster-CXASCSQ6.js +0 -65
- package/dist/oncomatrix-5WMOICWR.js +0 -295
- package/dist/oncomatrix.spec-POVBNFJR.js +0 -448
- package/dist/plot.2dvaf-63K5RSIU.js +0 -377
- package/dist/plot.app-V5IY25QS.js +0 -41
- package/dist/plot.barplot-IQTYHNFE.js +0 -102
- package/dist/plot.boxplot-2RMTO7AS.js +0 -152
- package/dist/plot.brainImaging-DLUHAHHG.js +0 -51
- package/dist/plot.disco-WK6GDLNF.js +0 -102
- package/dist/plot.dzi-3V3FWE7U.js +0 -33
- package/dist/plot.ssgq-TENK2RP4.js +0 -139
- package/dist/plot.vaf2cov-P2QOOZGZ.js +0 -259
- package/dist/plot.wsi-BVRGJF4E.js +0 -36
- package/dist/polar2-NNOZOQQJ.js +0 -231
- package/dist/profileForms-RS4GEZZV.js +0 -446
- package/dist/profilePlot-3DLME3NH.js +0 -54
- package/dist/proteinView-NPKJAQAI.js +0 -1568
- package/dist/qualitative-S45RXXRJ.js +0 -43
- package/dist/radar2-EX7YBNMT.js +0 -326
- package/dist/radarFacility2-WU5O6O77.js +0 -334
- package/dist/regression-7MCOYJVD.js +0 -56
- package/dist/regression.inputs-QHSWJ23R.js +0 -48
- package/dist/regression.inputs.term-EJ4Z5Q5O.js +0 -48
- package/dist/regression.inputs.values.table-YKMAWNXN.js +0 -45
- package/dist/regression.integration.spec-XOX7OXXA.js +0 -784
- package/dist/regression.results-YKPOTPCC.js +0 -40
- package/dist/regression.spec-YIIY2AZA.js +0 -708
- package/dist/report-JEJFCWUU.js +0 -222
- package/dist/sampleScatter.spec-LBAZBDYA.js +0 -202
- package/dist/sampleView-WKZT5ZFE.js +0 -48
- package/dist/samplelst-HXM3H6M4.js +0 -111
- package/dist/samplematrix-LCGHK2EK.js +0 -2198
- package/dist/sc-3OE2G4BU.js +0 -86
- package/dist/scatter-AGVUDTTU.js +0 -851
- package/dist/selectGenomeWithTklst-WF2XZ6GH.js +0 -134
- package/dist/singleCellCellType-2SRGROMS.js +0 -38
- package/dist/singleCellCellType.unit.spec-DCGHNRJI.js +0 -160
- package/dist/singleCellGeneExpression-RASZA4NO.js +0 -38
- package/dist/singleCellGeneExpression.unit.spec-5MRGH2OO.js +0 -153
- package/dist/singleCellPlot-TIYA3GNM.js +0 -54
- package/dist/singlecell-CFA43TTU.js +0 -1572
- package/dist/singlecell-JS5SIZHY.js +0 -86
- package/dist/snp-VXZXPMKS.js +0 -38
- package/dist/snp.unit.spec-TR5TCO7X.js +0 -176
- package/dist/snplocus-VLPH5Y65.js +0 -208
- package/dist/spliceevent.a53ss.diagram-PATK67SH.js +0 -151
- package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js +0 -277
- package/dist/spliceevent.exonskip.diagram-7B3SEOAJ.js.map +0 -7
- package/dist/spliceevent.noeventdiagram-4NPNZUEN.js +0 -460
- package/dist/ssGSEA-XMW5BLAU.js +0 -38
- package/dist/ssGSEA.unit.spec-ASUWKVUT.js +0 -88
- package/dist/summarizeCnvGeneexp-KWRFGX32.js +0 -163
- package/dist/summarizeGeneexpSurvival-FIPIMEJR.js +0 -114
- package/dist/summarizeMutationCnv-IUYRVLZG.js +0 -164
- package/dist/summarizeMutationDiagnosis-ZFJPCABL.js +0 -40
- package/dist/summarizeMutationSurvival-HFHYB7DT.js +0 -99
- package/dist/summary-AZUNEZ5I.js +0 -49
- package/dist/summary.integration.spec-WLBAJL44.js +0 -414
- package/dist/summaryInput-NJWVXDXW.js +0 -235
- package/dist/sunburst-PXGF4WM6.js +0 -284
- package/dist/survival-RAU4XCKG.js +0 -58
- package/dist/survival-ZZ4QLZHK.js +0 -46
- package/dist/survival.integration.spec-GBQ5X362.js +0 -915
- package/dist/survival.integration.spec-GBQ5X362.js.map +0 -7
- package/dist/svgraph-7UCFRL6A.js +0 -1387
- package/dist/svmr-DB3RY2ID.js +0 -3842
- package/dist/table-HJRWWXGM.js +0 -200
- package/dist/termCollection-AW7M6DTP.js +0 -38
- package/dist/termCollection-WPON7RG3.js +0 -179
- package/dist/termCollection.unit.spec-254ESHOE.js +0 -208
- package/dist/tk-SUAFM5YA.js +0 -46
- package/dist/tp.ui-ELEQGSK2.js +0 -1459
- package/dist/tvs.dt-DCXY66YY.js +0 -39
- package/dist/tvs.dtcnv.categorical-SFQZMYX7.js +0 -40
- package/dist/tvs.dtcnv.continuous-AUZNJMC3.js +0 -72
- package/dist/tvs.dtfusion-5F7MYFHZ.js +0 -40
- package/dist/tvs.dtsnvindel-JJSPL4PH.js +0 -40
- package/dist/tvs.dtsv-DARTSV5H.js +0 -40
- package/dist/tvs.numeric-KYAU5OV3.js +0 -21
- package/dist/tvs.samplelst-HHBIO26C.js +0 -104
- package/dist/tvs.termCollection-KCMALH6B.js +0 -159
- package/dist/violin-C26FW5WK.js +0 -46
- package/dist/violin.integration.spec-QQ43XWHQ.js +0 -1425
- package/dist/violin.interactivity-H2BHC6M4.js +0 -38
- package/dist/violin.renderer-GSG2I7AV.js +0 -40
- package/dist/vocabulary-3G525O5V.js +0 -41
- /package/dist/{2dmaf-SKNV7IHT.js.map → 2dmaf-R3PFZNRN.js.map} +0 -0
- /package/dist/{AIProjectAdmin-AOTVRBNH.js.map → AIProjectAdmin-DM3KG6SR.js.map} +0 -0
- /package/dist/{AppHeader-M2ZSS3M3.js.map → AppHeader-6DZQ6YZX.js.map} +0 -0
- /package/dist/{BoxPlot-P3EECSQA.js.map → BoxPlot-76NINVX4.js.map} +0 -0
- /package/dist/{CorrelationVolcano-YCQ5S6MT.js.map → CorrelationVolcano-U5UMJNH5.js.map} +0 -0
- /package/dist/{DE-RBMOQZCR.js.map → DE-AXNYWIQK.js.map} +0 -0
- /package/dist/{DEinput-PTW6RS6U.js.map → DEinput-JH6YY6LS.js.map} +0 -0
- /package/dist/{Disco.UI-YBIMV7RH.js.map → Disco.UI-C7CZINUQ.js.map} +0 -0
- /package/dist/{DmrPlot-JQPLLU6P.js.map → DmrPlot-WROR4ENM.js.map} +0 -0
- /package/dist/{GeneExpInput-3OPDDCXR.js.map → GeneExpInput-JDU6EI7K.js.map} +0 -0
- /package/dist/{HicApp-VFOWRP6G.js.map → HicApp-UNIJLH4B.js.map} +0 -0
- /package/dist/{NumBinaryEditor-RL44SO3T.js.map → NumBinaryEditor-WMN2GGO4.js.map} +0 -0
- /package/dist/{NumBinaryEditor.unit.spec-P73PGAX5.js.map → NumBinaryEditor.unit.spec-TAMXV6SE.js.map} +0 -0
- /package/dist/{NumContEditor-MIC7M73G.js.map → NumContEditor-XYIOJY4E.js.map} +0 -0
- /package/dist/{NumContEditor.unit.spec-5XZH7OCG.js.map → NumContEditor.unit.spec-WDZ75BHO.js.map} +0 -0
- /package/dist/{NumCustomBinEditor-W357XTIR.js.map → NumCustomBinEditor-5SY3C4TY.js.map} +0 -0
- /package/dist/{NumCustomBinEditor.unit.spec-CJMK4CYW.js.map → NumCustomBinEditor.unit.spec-XHTAIXR3.js.map} +0 -0
- /package/dist/{NumDiscreteEditor-PRSUMS3I.js.map → NumDiscreteEditor-NRDRX4FD.js.map} +0 -0
- /package/dist/{NumDiscreteEditor.unit.spec-A6R56P3Z.js.map → NumDiscreteEditor.unit.spec-2CJW7OAT.js.map} +0 -0
- /package/dist/{NumRegularBinEditor-7OHUEUCC.js.map → NumRegularBinEditor-DUDVTNDC.js.map} +0 -0
- /package/dist/{NumRegularBinEditor.unit.spec-NOAX42UZ.js.map → NumRegularBinEditor.unit.spec-H3GNQHMN.js.map} +0 -0
- /package/dist/{NumSplineEditor-XI7AT5LM.js.map → NumSplineEditor-7Q4AC7KH.js.map} +0 -0
- /package/dist/{NumSplineEditor.unit.spec-ZH4M2N2C.js.map → NumSplineEditor.unit.spec-YRZK5PH5.js.map} +0 -0
- /package/dist/{NumericDensity-X6IHQAW3.js.map → NumericDensity-NTNWUESG.js.map} +0 -0
- /package/dist/{NumericDensity.unit.spec-EKVD4AUG.js.map → NumericDensity.unit.spec-5I5U6T6P.js.map} +0 -0
- /package/dist/{NumericHandler-5ONBWFJ5.js.map → NumericHandler-MEW2KMPX.js.map} +0 -0
- /package/dist/{NumericHandler.unit.spec-SHI6E4VA.js.map → NumericHandler.unit.spec-JFX4BPRG.js.map} +0 -0
- /package/dist/{RunChart2-Y6IY6MW2.js.map → RunChart2-BEBDU7RC.js.map} +0 -0
- /package/dist/{WSIViewer-RLLL7MAL.js.map → WSIViewer-ZLQU62PD.js.map} +0 -0
- /package/dist/{WsiSamplesPlot-FU3TCOTY.js.map → WsiSamplesPlot-JMBSITOM.js.map} +0 -0
- /package/dist/{adSandbox-ZINST5DE.js.map → adSandbox-664IRCRL.js.map} +0 -0
- /package/dist/{animatedBubbleChart-PIQWCVBJ.js.map → animatedBubbleChart-TX7NW34K.js.map} +0 -0
- /package/dist/{app-N42SVGI2.js.map → app-63WJ3BMP.js.map} +0 -0
- /package/dist/{app-RWN4XLCP.js.map → app-77FIZHCG.js.map} +0 -0
- /package/dist/{bam-QTSTXJ4N.js.map → bam-IETNVAYD.js.map} +0 -0
- /package/dist/{barchart-27BYTRVI.js.map → barchart-YUVXJNH4.js.map} +0 -0
- /package/dist/{barchart.data-OUNVH4JU.js.map → barchart.data-P4EIQXGE.js.map} +0 -0
- /package/dist/{barchart.events-PY4CEDSO.js.map → barchart.events-JPVCLTIG.js.map} +0 -0
- /package/dist/{barchart.integration.spec-H4WGHQ7R.js.map → barchart.integration.spec-ZH7DEQI2.js.map} +0 -0
- /package/dist/{barchart2-TIOTRAC2.js.map → barchart2-XO2FG76J.js.map} +0 -0
- /package/dist/{bars.renderer-57KSYAAT.js.map → bars.renderer-AUIWUJDH.js.map} +0 -0
- /package/dist/{block.init-LRZ3QAGC.js.map → block.init-X7Y2EEVR.js.map} +0 -0
- /package/dist/{block.mds.expressionrank-IV7JLC52.js.map → block.mds.expressionrank-BIAOZIZ3.js.map} +0 -0
- /package/dist/{block.mds.geneboxplot-IBCE5XZU.js.map → block.mds.geneboxplot-CNICDVLK.js.map} +0 -0
- /package/dist/{block.mds.junction-ISSCJHNF.js.map → block.mds.junction-PQXCTSUI.js.map} +0 -0
- /package/dist/{block.mds.svcnv-ZEBVBTL7.js.map → block.mds.svcnv-32KMVTCT.js.map} +0 -0
- /package/dist/{block.svg-FYWA5VYH.js.map → block.svg-LRTOYQK2.js.map} +0 -0
- /package/dist/{block.tk.aicheck-AD6DTKXR.js.map → block.tk.aicheck-HDV7ZIUD.js.map} +0 -0
- /package/dist/{block.tk.ase-LO2J4KRE.js.map → block.tk.ase-JIDWKMYI.js.map} +0 -0
- /package/dist/{block.tk.bam-XGX22FCN.js.map → block.tk.bam-5X3OS5HB.js.map} +0 -0
- /package/dist/{block.tk.bedgraphdot-SUIRFNFL.js.map → block.tk.bedgraphdot-T7JX7YQL.js.map} +0 -0
- /package/dist/{block.tk.bigwig.ui-2Q7FAK3V.js.map → block.tk.bigwig.ui-OSAYEBAE.js.map} +0 -0
- /package/dist/{block.tk.hicstraw-4MVP2PCL.js.map → block.tk.hicstraw-DEY3VQFK.js.map} +0 -0
- /package/dist/{block.tk.junction-F54FTEPB.js.map → block.tk.junction-7UAFEZSJ.js.map} +0 -0
- /package/dist/{block.tk.junction.textmatrixui-ETROZJVK.js.map → block.tk.junction.textmatrixui-27LHS33U.js.map} +0 -0
- /package/dist/{block.tk.ld-NJEDKSTU.js.map → block.tk.ld-DF2PI7OO.js.map} +0 -0
- /package/dist/{block.tk.menu-LZOY4FKT.js.map → block.tk.menu-L2D5KBIV.js.map} +0 -0
- /package/dist/{block.tk.pgv-I3XHJ7VU.js.map → block.tk.pgv-QO56SKBV.js.map} +0 -0
- /package/dist/{brainImaging-BGP6VRFV.js.map → brainImaging-NIPQWFWO.js.map} +0 -0
- /package/dist/{brainRegions-AAN7LM2Y.js.map → brainRegions-ZNZ2WHSU.js.map} +0 -0
- /package/dist/{bubbleHeatmap-HNEU4CYA.js.map → bubbleHeatmap-ERWNEKZB.js.map} +0 -0
- /package/dist/{chunk-CDJAHMAN.js.map → chunk-2GYWFQML.js.map} +0 -0
- /package/dist/{chunk-ILE6ML2D.js.map → chunk-2HYJ4GDH.js.map} +0 -0
- /package/dist/{chunk-VTMJGRT5.js.map → chunk-2MG6XE6R.js.map} +0 -0
- /package/dist/{chunk-4C3XRI6J.js.map → chunk-33K5PA52.js.map} +0 -0
- /package/dist/{chunk-5QTJUPFS.js.map → chunk-37XDBPOP.js.map} +0 -0
- /package/dist/{chunk-3LYZMOLO.js.map → chunk-3EWB3246.js.map} +0 -0
- /package/dist/{chunk-2XV6U42J.js.map → chunk-3RSKOPIY.js.map} +0 -0
- /package/dist/{chunk-WZUWK5Q6.js.map → chunk-4DPVT4NE.js.map} +0 -0
- /package/dist/{chunk-GE4NJDV4.js.map → chunk-4IH7DORZ.js.map} +0 -0
- /package/dist/{chunk-W5X6C7LY.js.map → chunk-4QNBFIIR.js.map} +0 -0
- /package/dist/{chunk-5HMX4NUJ.js.map → chunk-4STKL6SR.js.map} +0 -0
- /package/dist/{chunk-GYGU4UT5.js.map → chunk-4TZIVSL5.js.map} +0 -0
- /package/dist/{chunk-LQJMCE7G.js.map → chunk-5ABGFJSP.js.map} +0 -0
- /package/dist/{chunk-MTZSN3H4.js.map → chunk-5AZNP47R.js.map} +0 -0
- /package/dist/{chunk-KE5B34CS.js.map → chunk-6BB43SIB.js.map} +0 -0
- /package/dist/{chunk-53JJ7SXN.js.map → chunk-7OHRR2IE.js.map} +0 -0
- /package/dist/{chunk-FDBVAL6K.js.map → chunk-ASATD4T7.js.map} +0 -0
- /package/dist/{chunk-25XCVML7.js.map → chunk-B5B3LZB3.js.map} +0 -0
- /package/dist/{chunk-L6A2BEXB.js.map → chunk-BHGISFCA.js.map} +0 -0
- /package/dist/{chunk-BXGQXLHP.js.map → chunk-BMBOZ64T.js.map} +0 -0
- /package/dist/{chunk-IRKP6IZ4.js.map → chunk-BOZJHPJP.js.map} +0 -0
- /package/dist/{chunk-IFK24IXL.js.map → chunk-CDD7LYJM.js.map} +0 -0
- /package/dist/{chunk-PU2Q4SZR.js.map → chunk-CTQ3IUCA.js.map} +0 -0
- /package/dist/{chunk-EPWIJEMK.js.map → chunk-D7TID3HR.js.map} +0 -0
- /package/dist/{chunk-5V2BMEAS.js.map → chunk-E55LLYRX.js.map} +0 -0
- /package/dist/{chunk-YYFQPGIE.js.map → chunk-ESGXULRH.js.map} +0 -0
- /package/dist/{chunk-K5UVG3FQ.js.map → chunk-EZ4LZ6ZT.js.map} +0 -0
- /package/dist/{chunk-B4GS7OLB.js.map → chunk-F3SJTVP5.js.map} +0 -0
- /package/dist/{chunk-427UL37G.js.map → chunk-F5IXNJO7.js.map} +0 -0
- /package/dist/{chunk-ROJ3LJLE.js.map → chunk-FJYECRHW.js.map} +0 -0
- /package/dist/{chunk-QKR3ZD3S.js.map → chunk-FPNRUQOU.js.map} +0 -0
- /package/dist/{chunk-J6ZOUCWN.js.map → chunk-G764NXQN.js.map} +0 -0
- /package/dist/{chunk-I5IPJG2R.js.map → chunk-GAPI4MML.js.map} +0 -0
- /package/dist/{chunk-WJGUNGFK.js.map → chunk-HLUZOZXJ.js.map} +0 -0
- /package/dist/{chunk-UN3O2MNB.js.map → chunk-HOKIK2FR.js.map} +0 -0
- /package/dist/{chunk-VO5XZ2EG.js.map → chunk-KLGL6XZD.js.map} +0 -0
- /package/dist/{chunk-PJ3FCJBZ.js.map → chunk-L7IRWUKT.js.map} +0 -0
- /package/dist/{chunk-MN3KDNHC.js.map → chunk-LX6G7HJJ.js.map} +0 -0
- /package/dist/{chunk-OF5FE6GT.js.map → chunk-M2G5R4WB.js.map} +0 -0
- /package/dist/{chunk-EKKQMKQI.js.map → chunk-M4TTGGT4.js.map} +0 -0
- /package/dist/{chunk-LYVLF6HO.js.map → chunk-M6EF3WVV.js.map} +0 -0
- /package/dist/{chunk-MNIBZTQE.js.map → chunk-M6KHT3MM.js.map} +0 -0
- /package/dist/{chunk-F7Y67LK7.js.map → chunk-MCZFHWIR.js.map} +0 -0
- /package/dist/{chunk-JNBJG57F.js.map → chunk-MFQACKYU.js.map} +0 -0
- /package/dist/{chunk-PZPS56Z6.js.map → chunk-MVGAGTM3.js.map} +0 -0
- /package/dist/{chunk-A3URBFXN.js.map → chunk-NELOT3NJ.js.map} +0 -0
- /package/dist/{chunk-U3G4JGKJ.js.map → chunk-NRKMXULC.js.map} +0 -0
- /package/dist/{chunk-BKPDYW5T.js.map → chunk-NYRZNRG5.js.map} +0 -0
- /package/dist/{chunk-WKT46ZJ6.js.map → chunk-ONPKE6DC.js.map} +0 -0
- /package/dist/{chunk-QMXCK4Y5.js.map → chunk-PFRWS4CR.js.map} +0 -0
- /package/dist/{chunk-6MBTPVIM.js.map → chunk-PJKQUXEN.js.map} +0 -0
- /package/dist/{chunk-WZ2U5QXJ.js.map → chunk-Q2L44HK3.js.map} +0 -0
- /package/dist/{chunk-VDZ5QOF6.js.map → chunk-RKO6BL5N.js.map} +0 -0
- /package/dist/{chunk-A45KH7LP.js.map → chunk-T25QNZHB.js.map} +0 -0
- /package/dist/{chunk-LSWU6EAQ.js.map → chunk-U7TBYVIQ.js.map} +0 -0
- /package/dist/{chunk-5CR24RTX.js.map → chunk-UGRQXBL4.js.map} +0 -0
- /package/dist/{chunk-G3FSS7GR.js.map → chunk-USFSHSCJ.js.map} +0 -0
- /package/dist/{chunk-WQCQWUUP.js.map → chunk-VJ6UFVGC.js.map} +0 -0
- /package/dist/{chunk-FISP5YN2.js.map → chunk-W3WPPOXH.js.map} +0 -0
- /package/dist/{chunk-VRH7NP6R.js.map → chunk-WFCSOTBO.js.map} +0 -0
- /package/dist/{chunk-BWQV2OBL.js.map → chunk-WZ2L57MB.js.map} +0 -0
- /package/dist/{chunk-CXHLROWX.js.map → chunk-Y4UAKFWC.js.map} +0 -0
- /package/dist/{chunk-4O6H4ZHL.js.map → chunk-YQBS2ZCK.js.map} +0 -0
- /package/dist/{chunk-7FSIZZOX.js.map → chunk-ZTHM2TKP.js.map} +0 -0
- /package/dist/{condition-GVIEMQG7.js.map → condition-2PASYSUC.js.map} +0 -0
- /package/dist/{controls-73K3XBDR.js.map → controls-5IMJ6K5L.js.map} +0 -0
- /package/dist/{controls.config-FQKY2LRE.js.map → controls.config-P5PG2DHW.js.map} +0 -0
- /package/dist/{correlation-AOAXIUFJ.js.map → correlation-U3EDLNHR.js.map} +0 -0
- /package/dist/{cuminc-OD2PPCEK.js.map → cuminc-2HUFEROK.js.map} +0 -0
- /package/dist/{customdata.inputui-SWLGLATL.js.map → customdata.inputui-ZHWNEPFH.js.map} +0 -0
- /package/dist/{dataDownload-456HL2OE.js.map → dataDownload-VBSJBKMP.js.map} +0 -0
- /package/dist/{dataDownload.integration.spec-5YS4MWK5.js.map → dataDownload.integration.spec-LUFSETOP.js.map} +0 -0
- /package/dist/{databrowser.ui-7APC5MNM.js.map → databrowser.ui-6H2KMSTJ.js.map} +0 -0
- /package/dist/{dictionary-A3HA5MVK.js.map → dictionary-V37LXFIP.js.map} +0 -0
- /package/dist/{dnaMethylation-6ONBKARD.js.map → dnaMethylation-OIZMHMLK.js.map} +0 -0
- /package/dist/{dnaMethylation.integration.spec-T3WEGVX3.js.map → dnaMethylation.integration.spec-CWPTJ74H.js.map} +0 -0
- /package/dist/{dofetch-RVPQUMVX.js.map → dofetch-IWPZQB5N.js.map} +0 -0
- /package/dist/{e2pca-75WZ46XG.js.map → e2pca-7SLIAGYW.js.map} +0 -0
- /package/dist/{ep-QG5CWPTW.js.map → ep-7L6KF6K4.js.map} +0 -0
- /package/dist/{expclust.gdc.spec-KBBQJR4M.js.map → expclust.gdc.spec-JT452Q3G.js.map} +0 -0
- /package/dist/{facet-QGB2Q7YV.js.map → facet-CXOUU5AS.js.map} +0 -0
- /package/dist/{forms2-CJGDCWYH.js.map → forms2-VPNCLQOY.js.map} +0 -0
- /package/dist/{gb-NEFAHKQI.js.map → gb-P4VRXRED.js.map} +0 -0
- /package/dist/{geneExpClustering-ZVR44UZC.js.map → geneExpClustering-FQTCKRJJ.js.map} +0 -0
- /package/dist/{geneExpression-25EX4DFK.js.map → geneExpression-BHO5326K.js.map} +0 -0
- /package/dist/{geneExpression-FALOA4GC.js.map → geneExpression-ZMERB64E.js.map} +0 -0
- /package/dist/{geneExpression.unit.spec-BQLELQUS.js.map → geneExpression.unit.spec-CNVHZWNG.js.map} +0 -0
- /package/dist/{geneORA-K2B7JYWD.js.map → geneORA-FXVUCXGX.js.map} +0 -0
- /package/dist/{geneRanking-6AXL5ZJS.js.map → geneRanking-SFK4UBKQ.js.map} +0 -0
- /package/dist/{geneVariant-RZFDP5J5.js.map → geneVariant-IYEHB4H7.js.map} +0 -0
- /package/dist/{geneVariant-UIBZ5UIQ.js.map → geneVariant-LIRRLUFR.js.map} +0 -0
- /package/dist/{geneVariant.integration.spec-4EZQMPQB.js.map → geneVariant.integration.spec-Y2NPNTYX.js.map} +0 -0
- /package/dist/{genefusion.ui-YK4TNS2P.js.map → genefusion.ui-L3HIJM3N.js.map} +0 -0
- /package/dist/{geneset-47J4D5ID.js.map → geneset-A6VUFX63.js.map} +0 -0
- /package/dist/{genomeBrowser.spec-LFFWRIWG.js.map → genomeBrowser.spec-CB4HHHBN.js.map} +0 -0
- /package/dist/{grin2-DQB2WW3C.js.map → grin2-FKBIMH5N.js.map} +0 -0
- /package/dist/{gsea-KKLAMLMG.js.map → hierCluster-QFPRMHVA.js.map} +0 -0
- /package/dist/{hierCluster-3MZEJG6B.js.map → hierCluster-YWC3XYPV.js.map} +0 -0
- /package/dist/{hierCluster-YGBC4XCZ.js.map → hierCluster.config-F7YYZNM3.js.map} +0 -0
- /package/dist/{hierCluster.integration.spec-GLKXFZDM.js.map → hierCluster.integration.spec-AF4L3YT6.js.map} +0 -0
- /package/dist/{hierCluster.config-A4N54K3A.js.map → hierCluster.interactivity-RPY74PK6.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-4TPWGIVC.js.map → hierCluster.renderers-LOKHZ3V2.js.map} +0 -0
- /package/dist/{imagePlot-JRPYOV3Q.js.map → imagePlot-BBEXA754.js.map} +0 -0
- /package/dist/{hierCluster.renderers-WUWSXXHU.js.map → importPlot-7QGANZGK.js.map} +0 -0
- /package/dist/{importPlot-A3PFUP6K.js.map → isoformExpression-4SLLCVFD.js.map} +0 -0
- /package/dist/{isoformExpression.unit.spec-SLB6XIX4.js.map → isoformExpression.unit.spec-GEL4JJ64.js.map} +0 -0
- /package/dist/{isoformExpression-5L4O3WKL.js.map → launch.adhoc-LWLBQJS5.js.map} +0 -0
- /package/dist/{leftlabel.sample-OSIRTJFW.js.map → leftlabel.sample-RTEZOIH2.js.map} +0 -0
- /package/dist/{legacyDataset-TNIIJABK.js.map → legacyDataset-VLD7ZYWI.js.map} +0 -0
- /package/dist/{lollipop-LAELXNQY.js.map → lollipop-XKQK5QZU.js.map} +0 -0
- /package/dist/{maf-HZAYVZFO.js.map → maf-AZQPPWDO.js.map} +0 -0
- /package/dist/{maftimeline-BLBNUGAL.js.map → maftimeline-7MSVYKQU.js.map} +0 -0
- /package/dist/{launch.adhoc-QI7TPYSC.js.map → matrix-BGLWC25D.js.map} +0 -0
- /package/dist/{matrix-LVJSHXDM.js.map → matrix-IQR5SRMK.js.map} +0 -0
- /package/dist/{matrix-S5QQV4JU.js.map → matrix.cells-5C57NWOY.js.map} +0 -0
- /package/dist/{matrix.cells-JUTRYPG4.js.map → matrix.config-2DQXAN2E.js.map} +0 -0
- /package/dist/{matrix.config-ZTWWYNIZ.js.map → matrix.data-ADCGF5H6.js.map} +0 -0
- /package/dist/{matrix.data-BREYB54F.js.map → matrix.groups-V4ITQ5F7.js.map} +0 -0
- /package/dist/{matrix.groups-WMHTLOXC.js.map → matrix.interactivity-JNELJFOV.js.map} +0 -0
- /package/dist/{matrix.interactivity-TMBVAM5M.js.map → matrix.layout-WBVIV6GR.js.map} +0 -0
- /package/dist/{matrix.layout-POK5NOUV.js.map → matrix.legend-YHOWPK77.js.map} +0 -0
- /package/dist/{matrix.legend-6XVQ67AC.js.map → matrix.renderers-5BGVRR3M.js.map} +0 -0
- /package/dist/{matrix.renderers-G5FQZZ73.js.map → matrix.serieses-2GZJOASZ.js.map} +0 -0
- /package/dist/{matrix.serieses-XNLQSQS6.js.map → matrix.sort-WKIWPJKP.js.map} +0 -0
- /package/dist/{matrix.sort.unit.spec-65BDBQUV.js.map → matrix.sort.unit.spec-L2E4D4AS.js.map} +0 -0
- /package/dist/{matrix.sort-XNES23OQ.js.map → matrix.sorterUi-TEJWWJ64.js.map} +0 -0
- /package/dist/{matrix.sorterUi.unit.spec-GZQBW7F7.js.map → matrix.sorterUi.unit.spec-SHP7C4P7.js.map} +0 -0
- /package/dist/{mavb-T2UCRWWM.js.map → mavb-4MXNYUEO.js.map} +0 -0
- /package/dist/{mds.fimo-65UUK7ER.js.map → mds.fimo-WHIJIBOI.js.map} +0 -0
- /package/dist/{mds.samplescatterplot-4NHGQBJF.js.map → mds.samplescatterplot-BRJ6NG2D.js.map} +0 -0
- /package/dist/{mds.survivalplot-WVAHDM3Z.js.map → mds.survivalplot-OPCMB5PB.js.map} +0 -0
- /package/dist/{numericDictTermCluster-CXASCSQ6.js.map → numericDictTermCluster-7MIFOP2K.js.map} +0 -0
- /package/dist/{oncomatrix-5WMOICWR.js.map → oncomatrix-BGG6BEUI.js.map} +0 -0
- /package/dist/{oncomatrix.spec-POVBNFJR.js.map → oncomatrix.spec-LYQ4L4F3.js.map} +0 -0
- /package/dist/{plot.2dvaf-63K5RSIU.js.map → plot.2dvaf-6WVCP2ZI.js.map} +0 -0
- /package/dist/{matrix.sorterUi-WC2YX7S7.js.map → plot.app-MLBP6WFP.js.map} +0 -0
- /package/dist/{plot.barplot-IQTYHNFE.js.map → plot.barplot-JEPRZSCU.js.map} +0 -0
- /package/dist/{plot.boxplot-2RMTO7AS.js.map → plot.boxplot-GNFW42VM.js.map} +0 -0
- /package/dist/{plot.brainImaging-DLUHAHHG.js.map → plot.brainImaging-5ACNSD45.js.map} +0 -0
- /package/dist/{plot.disco-WK6GDLNF.js.map → plot.disco-Q2V2KKIH.js.map} +0 -0
- /package/dist/{plot.dzi-3V3FWE7U.js.map → plot.dzi-KVT6S7K7.js.map} +0 -0
- /package/dist/{plot.ssgq-TENK2RP4.js.map → plot.ssgq-4N3KFJQ2.js.map} +0 -0
- /package/dist/{plot.vaf2cov-P2QOOZGZ.js.map → plot.vaf2cov-ITRG5U43.js.map} +0 -0
- /package/dist/{plot.wsi-BVRGJF4E.js.map → plot.wsi-26YZNU4V.js.map} +0 -0
- /package/dist/{polar2-NNOZOQQJ.js.map → polar2-J7GVUK4X.js.map} +0 -0
- /package/dist/{profileForms-RS4GEZZV.js.map → profileForms-VXV2JLXU.js.map} +0 -0
- /package/dist/{plot.app-V5IY25QS.js.map → profilePlot-ZZYZK4SY.js.map} +0 -0
- /package/dist/{proteinView-NPKJAQAI.js.map → proteinView-7KN532D3.js.map} +0 -0
- /package/dist/{profilePlot-3DLME3NH.js.map → qualitative-MLRVLIAU.js.map} +0 -0
- /package/dist/{radar2-EX7YBNMT.js.map → radar2-WM2ZBOH3.js.map} +0 -0
- /package/dist/{radarFacility2-WU5O6O77.js.map → radarFacility2-3SBR2JJ3.js.map} +0 -0
- /package/dist/{qualitative-S45RXXRJ.js.map → regression-WMRPQJW2.js.map} +0 -0
- /package/dist/{regression-7MCOYJVD.js.map → regression.inputs-VWZKSYNY.js.map} +0 -0
- /package/dist/{regression.inputs-QHSWJ23R.js.map → regression.inputs.term-OWE6GWHM.js.map} +0 -0
- /package/dist/{regression.inputs.term-EJ4Z5Q5O.js.map → regression.inputs.values.table-4INNZQI2.js.map} +0 -0
- /package/dist/{regression.integration.spec-XOX7OXXA.js.map → regression.integration.spec-XKQ2JOOT.js.map} +0 -0
- /package/dist/{regression.inputs.values.table-YKMAWNXN.js.map → regression.results-VZBYMBYC.js.map} +0 -0
- /package/dist/{regression.spec-YIIY2AZA.js.map → regression.spec-DU3UTDCJ.js.map} +0 -0
- /package/dist/{regression.results-YKPOTPCC.js.map → render-N5FOF247.js.map} +0 -0
- /package/dist/{report-JEJFCWUU.js.map → report-DW3OHB67.js.map} +0 -0
- /package/dist/{sampleScatter.spec-LBAZBDYA.js.map → sampleScatter.spec-REFSK2V4.js.map} +0 -0
- /package/dist/{sampleView-WKZT5ZFE.js.map → sampleView-ICOT2R6O.js.map} +0 -0
- /package/dist/{samplelst-HXM3H6M4.js.map → samplelst-TJEVASYG.js.map} +0 -0
- /package/dist/{samplematrix-LCGHK2EK.js.map → samplematrix-6DAWCXQ3.js.map} +0 -0
- /package/dist/{sc-3OE2G4BU.js.map → sc-53LNOB7N.js.map} +0 -0
- /package/dist/{scatter-AGVUDTTU.js.map → scatter-DKYSS4DL.js.map} +0 -0
- /package/dist/{selectGenomeWithTklst-WF2XZ6GH.js.map → selectGenomeWithTklst-WTX66TV3.js.map} +0 -0
- /package/dist/{singleCellCellType-2SRGROMS.js.map → singleCellCellType-D2CN2BHQ.js.map} +0 -0
- /package/dist/{singleCellCellType.unit.spec-DCGHNRJI.js.map → singleCellCellType.unit.spec-LADUCI4R.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-RASZA4NO.js.map → singleCellGeneExpression-YR2ZT34W.js.map} +0 -0
- /package/dist/{singleCellGeneExpression.unit.spec-5MRGH2OO.js.map → singleCellGeneExpression.unit.spec-BM63M432.js.map} +0 -0
- /package/dist/{singleCellPlot-TIYA3GNM.js.map → singleCellPlot-3ICIOILE.js.map} +0 -0
- /package/dist/{singlecell-JS5SIZHY.js.map → singlecell-6ZUFA3BQ.js.map} +0 -0
- /package/dist/{singlecell-CFA43TTU.js.map → singlecell-KX7W4U57.js.map} +0 -0
- /package/dist/{snp-VXZXPMKS.js.map → snp-VIURB7L3.js.map} +0 -0
- /package/dist/{snp.unit.spec-TR5TCO7X.js.map → snp.unit.spec-ACZNZUNS.js.map} +0 -0
- /package/dist/{snplocus-VLPH5Y65.js.map → snplocus-3LW4ZUZR.js.map} +0 -0
- /package/dist/{spliceevent.a53ss.diagram-PATK67SH.js.map → spliceevent.a53ss.diagram-AKTZGWNM.js.map} +0 -0
- /package/dist/{spliceevent.noeventdiagram-4NPNZUEN.js.map → spliceevent.noeventdiagram-YTXWWNTJ.js.map} +0 -0
- /package/dist/{ssGSEA-XMW5BLAU.js.map → ssGSEA-THW4WFMI.js.map} +0 -0
- /package/dist/{ssGSEA.unit.spec-ASUWKVUT.js.map → ssGSEA.unit.spec-HTRGQI2K.js.map} +0 -0
- /package/dist/{summarizeCnvGeneexp-KWRFGX32.js.map → summarizeCnvGeneexp-RFYC3H2Z.js.map} +0 -0
- /package/dist/{summarizeGeneexpSurvival-FIPIMEJR.js.map → summarizeGeneexpSurvival-DQBZUTQ6.js.map} +0 -0
- /package/dist/{summarizeMutationCnv-IUYRVLZG.js.map → summarizeMutationCnv-7AYEMHAI.js.map} +0 -0
- /package/dist/{summarizeMutationDiagnosis-ZFJPCABL.js.map → summarizeMutationDiagnosis-AKFJDSAF.js.map} +0 -0
- /package/dist/{summarizeMutationSurvival-HFHYB7DT.js.map → summarizeMutationSurvival-QJHZRQBZ.js.map} +0 -0
- /package/dist/{summary-AZUNEZ5I.js.map → summary-A5P7AYK4.js.map} +0 -0
- /package/dist/{summary.integration.spec-WLBAJL44.js.map → summary.integration.spec-HQISXGNL.js.map} +0 -0
- /package/dist/{summaryInput-NJWVXDXW.js.map → summaryInput-HP675QOQ.js.map} +0 -0
- /package/dist/{sunburst-PXGF4WM6.js.map → sunburst-65LSYRXX.js.map} +0 -0
- /package/dist/{survival-ZZ4QLZHK.js.map → survival-QNEI6YVK.js.map} +0 -0
- /package/dist/{survival-RAU4XCKG.js.map → survival-UI74VXSM.js.map} +0 -0
- /package/dist/{svgraph-7UCFRL6A.js.map → svgraph-PSX2NER3.js.map} +0 -0
- /package/dist/{svmr-DB3RY2ID.js.map → svmr-QDQ33EFX.js.map} +0 -0
- /package/dist/{table-HJRWWXGM.js.map → table-LWAI27UO.js.map} +0 -0
- /package/dist/{termCollection-WPON7RG3.js.map → termCollection-3JHR74FG.js.map} +0 -0
- /package/dist/{termCollection-AW7M6DTP.js.map → termCollection-CDF5LYUG.js.map} +0 -0
- /package/dist/{termCollection.unit.spec-254ESHOE.js.map → termCollection.unit.spec-HOJKYWHF.js.map} +0 -0
- /package/dist/{tk-SUAFM5YA.js.map → tk-OEQFO73V.js.map} +0 -0
- /package/dist/{tp.ui-ELEQGSK2.js.map → tp.ui-SHNERDGC.js.map} +0 -0
- /package/dist/{tvs.dt-DCXY66YY.js.map → tvs.dt-CZDC4TSR.js.map} +0 -0
- /package/dist/{tvs.dtcnv.categorical-SFQZMYX7.js.map → tvs.dtcnv.categorical-OPBDHZGB.js.map} +0 -0
- /package/dist/{tvs.dtcnv.continuous-AUZNJMC3.js.map → tvs.dtcnv.continuous-AR6P4EP3.js.map} +0 -0
- /package/dist/{tvs.dtfusion-5F7MYFHZ.js.map → tvs.dtfusion-2YQ7N6FQ.js.map} +0 -0
- /package/dist/{tvs.dtsnvindel-JJSPL4PH.js.map → tvs.dtsnvindel-WHHWAATJ.js.map} +0 -0
- /package/dist/{tvs.dtsv-DARTSV5H.js.map → tvs.dtsv-3UMCW65O.js.map} +0 -0
- /package/dist/{tvs.numeric-KYAU5OV3.js.map → tvs.numeric-TOEPASWN.js.map} +0 -0
- /package/dist/{tvs.samplelst-HHBIO26C.js.map → tvs.samplelst-M7XKXRTZ.js.map} +0 -0
- /package/dist/{tvs.termCollection-KCMALH6B.js.map → tvs.termCollection-WT4WZMYR.js.map} +0 -0
- /package/dist/{violin-C26FW5WK.js.map → violin-2YGXTBDS.js.map} +0 -0
- /package/dist/{violin.integration.spec-QQ43XWHQ.js.map → violin.integration.spec-YWNHVAGS.js.map} +0 -0
- /package/dist/{violin.interactivity-H2BHC6M4.js.map → violin.interactivity-J6BE2UQL.js.map} +0 -0
- /package/dist/{violin.renderer-GSG2I7AV.js.map → violin.renderer-3GRUWP2U.js.map} +0 -0
- /package/dist/{vocabulary-3G525O5V.js.map → vocabulary-2INCVPYJ.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../plots/gsea/model/GseaParams.ts", "../plots/gsea/model/GSEAModel.ts", "../plots/gsea/view/GSEAControls.ts", "../plots/gsea/viewModel/GSEAViewModel.ts", "../plots/gsea/view/GSEAView.ts", "../plots/gsea/GSEA.ts"],
|
|
4
|
+
"sourcesContent": ["type DefaultGseaParams = {\n\tgenome: string\n}\n\ntype DapParams = {\n\torganism: string\n\tassay: string\n\tcohort: string\n}\n\nexport type ProteomeDAPGseaParams = DefaultGseaParams & {\n\tdapParams: DapParams\n\tdslabel: string\n}\n\nexport type ScctGseaParams = DefaultGseaParams & {\n\tgenes: string[]\n\tfold_change: number[]\n\tgenes_length: number\n}\n\nexport type OtherTermTypesGseaParams = DefaultGseaParams & {\n\tcacheId: string\n\tdaRequest: any\n\tgenes_length: number\n\tdslabel: string\n}\n\nexport type GseaParams = ProteomeDAPGseaParams | ScctGseaParams | OtherTermTypesGseaParams\n\nexport function isValidGseaParams(value: any): value is GseaParams {\n\treturn isProteomeDAPGseaParams(value) || isScctGseaParams(value) || isOtherTermTypesGseaParams(value)\n}\n\nexport function isProteomeDAPGseaParams(value: unknown): value is ProteomeDAPGseaParams {\n\tif (!value || typeof value !== 'object') return false\n\tconst p = value as Record<string, unknown>\n \tconst d: any = p.dapParams as DapParams\n \treturn (\n \t\ttypeof p.genome === 'string' &&\n \t\ttypeof p.dslabel === 'string' &&\n \t\td &&\n \t\ttypeof d.organism === 'string' &&\n \t\ttypeof d.assay === 'string' &&\n \t\ttypeof d.cohort === 'string'\n \t)\n}\n\nexport function isScctGseaParams(value: unknown): value is ScctGseaParams {\n\tif (!value || typeof value !== 'object') return false\n\tconst p = value as Record<string, unknown>\n\treturn (\n\t\ttypeof p.genome === 'string' &&\n\t\tArray.isArray(p.genes) &&\n\t\tp.genes.every(g => typeof g === 'string') &&\n\t\tArray.isArray(p.fold_change) &&\n\t\tp.fold_change.every(fc => typeof fc === 'number') &&\n\t\ttypeof p.genes_length === 'number'\n\t)\n}\n\nexport function isOtherTermTypesGseaParams(value: unknown): value is OtherTermTypesGseaParams {\n\tif (!value || typeof value !== 'object') return false\n\tconst p = value as Record<string, unknown>\n\treturn (\n\t\ttypeof p.genome === 'string' &&\n\t\ttypeof p.cacheId === 'string' &&\n\t\t'daRequest' in p &&\n\t\ttypeof p.genes_length === 'number' &&\n\t\ttypeof p.dslabel === 'string'\n\t)\n}\n", "import type { GSEA } from '../GSEA'\nimport { type GseaParams, isProteomeDAPGseaParams, isScctGseaParams, isOtherTermTypesGseaParams } from './GseaParams'\nimport { PROTEOME_DAP, SINGLECELL_CELLTYPE } from '#types'\nimport type { AppApi } from '#rx'\nimport { dofetch3 } from '#common/dofetch'\nimport { VolcanoModel } from '#plots/volcano/model/VolcanoModel.ts'\nimport { getDefaultVolcanoSettings } from '#plots/volcano/settings/defaults.ts'\nimport type { GenesetEnrichmentRequest } from '#types'\n\nexport class GSEAModel {\n\tgsea: GSEA\n\tapp: AppApi\n\ttermType!: string\n\n\tconstructor(gsea: GSEA) {\n\t\tthis.gsea = gsea\n\t\tthis.app = gsea.app\n\t}\n\n\tasync getGseaParams(_params: any, state: any, config: any): Promise<GseaParams> {\n\t\tif (!this.termType) this.termType = config.termType\n\t\tconst params = structuredClone(_params)\n\t\tif (!params.genome) params.genome = state.genome\n\t\tif (!params.dslabel) params.dslabel = state.dslabel\n\n\t\tif (this.termType === PROTEOME_DAP) this.getProteomeDAPParams(params)\n\t\telse if (this.termType === SINGLECELL_CELLTYPE) await this.getScctParams(params, state, config)\n\t\telse await this.getOtherTermTypesParams(params, config)\n\t\treturn params\n\t}\n\n\tgetProteomeDAPParams(params: any): void {\n\t\tif (isProteomeDAPGseaParams(params)) return\n\t\tif (!params.dapParams) params.dapParams = this.gsea.state.config.proteomeDetails\n\t}\n\n\tasync getScctParams(params: any, state, config): Promise<void> {\n\t\tif (isScctGseaParams(params)) return\n\n\t\t// SCCT has no DA cache \u2014 fetch the full DE gene list for the\n\t\t// chosen cluster (omit volcanoRender so the route returns the\n\t\t// raw gene array, not the threshold-passing `dots` subset)\n\t\t// and pass genes + fold_change inline. `render_gsea` takes\n\t\t// this path when neither cacheId nor dapParams is set.\n\n\t\tlet response\n\t\ttry {\n\t\t\tresponse = await this.getDEGenes(state, config)\n\t\t\tif (response.error) throw new Error(response.error)\n\t\t\tif (!Array.isArray(response.data) || response.data.length === 0) {\n\t\t\t\tthrow new Error('No DE genes returned for this cluster')\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tif (e instanceof Error) console.error(e.message || e)\n\t\t\telse if (e.stack) console.log(e.stack)\n\t\t\tthrow new Error(e.message || e)\n\t\t}\n\n\t\t//Process returned response into params\n\t\tconst genes: string[] = []\n\t\tconst fold_change: number[] = []\n\t\tfor (const g of response.data) {\n\t\t\tgenes.push(g.gene_name)\n\t\t\tfold_change.push(g.fold_change)\n\t\t}\n\t\tparams.genes = genes\n\t\tparams.fold_change = fold_change\n\t\tparams.genes_length = genes.length\n\t}\n\n\tasync getDEGenes(state, config): Promise<any> {\n\t\tconst body = {\n\t\t\tgenome: state.genome,\n\t\t\tdslabel: state.dslabel,\n\t\t\tsample: config.sample,\n\t\t\ttermId: config.termId,\n\t\t\tcategoryName: config.categoryName\n\t\t}\n\t\treturn await dofetch3('termdb/singlecellDEgenes', { body })\n\t}\n\n\tasync getOtherTermTypesParams(params: any, config): Promise<void> {\n\t\tif (isOtherTermTypesGseaParams(params)) return\n\t\tlet response\n\t\ttry {\n\t\t\tresponse = await this.getCachedResponse(config)\n\t\t\tif (!response?.data?.cacheId || response.error) {\n\t\t\t\tthrow new Error(response.error || 'No DE cacheId returned from volcano model')\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tif (e instanceof Error) console.error(e.message || e)\n\t\t\telse if (e.stack) console.log(e.stack)\n\t\t\tthrow new Error(e.message || e)\n\t\t}\n\n\t\tparams.cacheId = response.data.cacheId\n\t\tparams.daRequest = response.daRequest\n\t\tparams.genes_length = response.data.totalRows\n\t}\n\n\tasync getCachedResponse(config): Promise<any> {\n\t\tconst volcanoSettings = config.settings?.volcano || getDefaultVolcanoSettings({}, { termType: config.termType })\n\t\tconst model = new VolcanoModel(this.gsea, config.termType)\n\t\treturn await model.getData(config, volcanoSettings)\n\t}\n\n\tasync runEnrichment(body: GenesetEnrichmentRequest): Promise<any> {\n\t\tthis.toggleLoading(true)\n\t\ttry {\n\t\t\treturn await dofetch3('genesetEnrichment', { body })\n\t\t} finally {\n\t\t\tthis.toggleLoading(false)\n\t\t}\n\t}\n\n\ttoggleLoading(isLoading: boolean): void {\n\t\tthis.gsea.dom.actionsDiv.style('display', isLoading ? 'none' : 'block')\n\t\tthis.gsea.dom.loadingDiv.style('display', isLoading ? 'block' : 'none')\n\t}\n}\n", "import type { GSEA } from '../GSEA'\nimport { controlsInit } from '#plots/controls.js'\n\nexport async function setControls(controlsDiv, gsea: GSEA) {\n\tconst inputs: any = [\n\t\t{\n\t\t\tlabel: 'Minimum Gene Set Size Filter Cutoff',\n\t\t\ttype: 'number',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'min_gene_set_size_cutoff',\n\t\t\ttitle: 'Minimum Gene set size cutoff. Helps in filtering out small gene sets',\n\t\t\tmin: 0\n\t\t},\n\t\t{\n\t\t\tlabel: 'Maximum Gene Set Size Filter Cutoff',\n\t\t\ttype: 'number',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'max_gene_set_size_cutoff',\n\t\t\ttitle: 'Maximum Gene set size cutoff. Helps in filtering out large gene sets',\n\t\t\tmax: 25000\n\t\t},\n\t\t{\n\t\t\tlabel: 'Filter Non-coding Genes',\n\t\t\ttype: 'checkbox',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'filter_non_coding_genes',\n\t\t\ttitle: 'Filter non-coding genes',\n\t\t\tboxLabel: ''\n\t\t},\n\t\t{\n\t\t\tlabel: 'FDR or Top Gene Sets',\n\t\t\ttype: 'radio',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'fdr_or_top',\n\t\t\ttitle: 'Toggle between FDR cutoff and top gene sets in ascending order of FDR',\n\t\t\toptions: [\n\t\t\t\t{ label: 'FDR', value: 'fdr' },\n\t\t\t\t{ label: 'Top Gene Sets', value: 'top' }\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tlabel: 'GSEA method',\n\t\t\ttype: 'radio',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'gsea_method',\n\t\t\ttitle: 'Toggle between blitzgsea and CERNO method',\n\t\t\toptions: [\n\t\t\t\t{ label: 'blitzgsea', value: 'blitzgsea' },\n\t\t\t\t{ label: 'CERNO', value: 'cerno' }\n\t\t\t],\n\t\t\tgetDisplayStyle: () => {\n\t\t\t\treturn gsea.testEnabled ? '' : 'none'\n\t\t\t}\n\t\t},\n\n\t\t{\n\t\t\tlabel: 'Number of Permutations',\n\t\t\ttype: 'number',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'num_permutations',\n\t\t\ttitle: 'Number of permutations to be used for GSEA. Higher number increases accuracy but also compute time.',\n\t\t\tmin: 0,\n\t\t\tmax: 40000, // Setting it to pretty lenient limit for testing\n\t\t\tgetDisplayStyle: plot => {\n\t\t\t\tconst settings = plot.settings.gsea\n\t\t\t\treturn settings.gsea_method === 'blitzgsea' ? '' : 'none'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tlabel: 'FDR Filter Cutoff (Linear Scale)',\n\t\t\ttype: 'number',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'fdr_cutoff',\n\t\t\ttitle: 'P-value significance',\n\t\t\tmin: 0,\n\t\t\tmax: 1,\n\t\t\tgetDisplayStyle: plot => {\n\t\t\t\tconst settings = plot.settings.gsea\n\t\t\t\treturn settings.fdr_or_top == 'fdr' ? '' : 'none'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tlabel: 'Number of top Gene Sets by FDR',\n\t\t\ttype: 'number',\n\t\t\tchartType: 'gsea',\n\t\t\tsettingsKey: 'top_genesets',\n\t\t\ttitle: 'Number of top gene sets to be displayed in ascending order of FDR',\n\t\t\tmin: 0,\n\t\t\tmax: 5000,\n\t\t\tgetDisplayStyle: plot => {\n\t\t\t\tconst settings = plot.settings.gsea\n\t\t\t\treturn settings.fdr_or_top == 'top' ? '' : 'none'\n\t\t\t}\n\t\t}\n\t]\n\n\tgsea.components.controls = await controlsInit({\n\t\tapp: gsea.app,\n\t\tid: gsea.id,\n\t\tholder: controlsDiv,\n\t\tinputs: inputs\n\t})\n\n\tgsea.components.controls.on('downloadClick.gsea', () => {\n\t\tif (!gsea.imageUrl) return alert('No image to download')\n\t\tconst dataUrl = gsea.imageUrl\n\t\tconst downloadImgName = `${gsea.state.config.gsea_params.geneset_name || ''}_GSEA_IMG`\n\t\tconst a = document.createElement('a')\n\t\tdocument.body.appendChild(a)\n\n\t\ta.addEventListener(\n\t\t\t'click',\n\t\t\t() => {\n\t\t\t\t// Download the image\n\t\t\t\ta.download = downloadImgName + '.png'\n\t\t\t\ta.href = dataUrl\n\t\t\t\tdocument.body.removeChild(a)\n\t\t\t},\n\t\t\tfalse\n\t\t)\n\t\ta.click()\n\t})\n}\n", "import type { GSEA } from '../GSEA'\nimport { roundValueAuto } from '#shared/roundValue.js'\n\ntype PathwayOpt = { label: string; value: string; selected?: boolean }\n\ntype GseaResultEntry = {\n\tgeneset_size: number\n\tleading_edge: string\n\tfdr?: number\n\tpvalue?: number\n\tnes?: number\n\tauc?: number\n\tes?: number\n}\n\ntype RankedDE = {\n\tgenes: string[]\n\tfold_change: number[]\n}\n\nexport class GSEAViewModel {\n\tgsea: GSEA\n\t//Initial pathway opts from ds. Do not mutate this directly\n\tinitPathwayOpts: PathwayOpt[]\n\trankedDE: RankedDE | null = null\n\trankedDEKey = ''\n\tviewData!: any\n\n\tconstructor(gsea: GSEA) {\n\t\tthis.gsea = gsea\n\t\tthis.initPathwayOpts = structuredClone(gsea.app.opts.genome.termdbs.msigdb.analysisGenesetGroups)\n\t}\n\n\tasync processData() {\n\t\tconst settings = this.gsea.state.config.settings.gsea\n\t\tconst viewData: any = {\n\t\t\tpathwayOpts: this.getPathwayOpts(settings)\n\t\t}\n\n\t\tif (!settings.pathway || settings.pathway == '-') {\n\t\t\tthis.viewData = viewData\n\t\t\treturn\n\t\t}\n\n\t\tlet outputMap: Record<string, GseaResultEntry>\n\t\ttry {\n\t\t\tconst output = await this.gsea.model.runEnrichment(this.getRequestBody(settings))\n\t\t\tif (output?.error) throw Object.assign(new Error(output.error), { code: output.code })\n\t\t\toutputMap = this.getOutputMap(output, settings.gsea_method)\n\t\t} catch (e: any) {\n\t\t\tconst msg = String(e?.message || e)\n\t\t\tif (e?.code === 'CACHE_BUSY') {\n\t\t\t\tif (window.confirm(msg)) {\n\t\t\t\t\tawait this.processData()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.viewData = viewData\n\t\t\t\treturn\n\t\t\t}\n\t\t\tviewData.error = /daCacheMissing|ENOENT|no such file/i.test(msg)\n\t\t\t\t? 'The differential-analysis cache for this GSEA is no longer available. Reopen the volcano plot to regenerate it.'\n\t\t\t\t: msg\n\t\t\tthis.viewData = viewData\n\t\t\treturn\n\t\t}\n\n\t\tviewData.statsData = this.getStatsData(outputMap)\n\t\tviewData.tableData = this.getTableData(outputMap, settings)\n\t\tviewData.selectedRows = this.getSelectedRows(viewData.tableData.rowItems)\n\t\tviewData.showHighlightButton =\n\t\t\tthis.gsea.state.config.chartType == 'differentialAnalysis' &&\n\t\t\tthis.gsea.state.config.gsea_params?.geneset_name != null\n\n\t\tconst selectedGeneset = this.gsea.state.config.gsea_params?.geneset_name\n\t\tif (selectedGeneset) {\n\t\t\tif (settings.gsea_method == 'blitzgsea') {\n\t\t\t\ttry {\n\t\t\t\t\tviewData.detailImage = await this.getDetailImage(settings, selectedGeneset)\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\tconst msg = String(e?.message || e)\n\t\t\t\t\tif (e?.code === 'CACHE_BUSY') {\n\t\t\t\t\t\tif (window.confirm(msg)) {\n\t\t\t\t\t\t\tawait this.processData()\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tviewData.detailError = /daCacheMissing|ENOENT|no such file/i.test(msg)\n\t\t\t\t\t\t\t? 'The differential-analysis cache for this GSEA is no longer available. Reopen the volcano plot to regenerate it.'\n\t\t\t\t\t\t\t: msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tviewData.cernoPlotData = await this.getCernoPlotData(outputMap, selectedGeneset)\n\t\t\t}\n\t\t}\n\n\t\tthis.viewData = viewData\n\t}\n\n\tgetPathwayOpts(settings) {\n\t\t//Do not mutate the initial array\n\t\tconst pathwayOpts = structuredClone(this.initPathwayOpts)\n\t\tif (this.gsea.testEnabled && settings.gsea_method == 'blitzgsea') {\n\t\t\tpathwayOpts.push(\n\t\t\t\t{ label: 'REACTOME (blitzgsea)', value: 'REACTOME--blitzgsea' },\n\t\t\t\t{ label: 'KEGG (blitzgsea)', value: 'KEGG--blitzgsea' },\n\t\t\t\t{ label: 'WikiPathways (blitzgsea)', value: 'WikiPathways--blitzgsea' }\n\t\t\t)\n\t\t}\n\t\tif (settings.pathway) {\n\t\t\t//Note: in the ds file, `{ label: '-', value: '-' }` is analysisGenesetGroups[0]\n\t\t\tpathwayOpts.shift()\n\t\t\tconst opt = pathwayOpts.find(opt => opt.value == settings.pathway)\n\t\t\tif (!opt) console.warn(`Selected pathway ${settings.pathway} not found in pathway options.`)\n\t\t\telse opt.selected = true\n\t\t}\n\t\treturn pathwayOpts\n\t}\n\n\tgetRequestBody(settings, geneset_name?: string) {\n\t\tconst p = this.gsea.gsea_params\n\t\tconst body: any = {\n\t\t\tgenome: p.genome,\n\t\t\tgeneSetGroup: settings.pathway,\n\t\t\tfilter_non_coding_genes: settings.filter_non_coding_genes,\n\t\t\tmethod: settings.gsea_method\n\t\t}\n\t\tif (p.cacheId) {\n\t\t\tbody.cacheId = p.cacheId\n\t\t\tif (p.daRequest) body.daRequest = p.daRequest\n\t\t\tif (p.dslabel) body.dslabel = p.dslabel\n\t\t} else if (p.dapParams) {\n\t\t\tbody.dapParams = p.dapParams\n\t\t\tbody.dslabel = p.dslabel\n\t\t} else {\n\t\t\tbody.genes = p.genes\n\t\t\tbody.fold_change = p.fold_change\n\t\t}\n\n\t\tif (settings.gsea_method == 'blitzgsea') {\n\t\t\tbody.num_permutations = settings.num_permutations\n\t\t}\n\t\tif (geneset_name) body.geneset_name = geneset_name\n\t\treturn body\n\t}\n\n\tgetOutputMap(output: any, method: string): Record<string, GseaResultEntry> {\n\t\tif (method == 'blitzgsea') {\n\t\t\tif (!output?.data || typeof output.data != 'object') throw new Error('Invalid blitzgsea response')\n\t\t\treturn output.data\n\t\t}\n\n\t\tif (output?.data && !Array.isArray(output.data) && !output.data.genes && !output.data.fold_change) {\n\t\t\treturn output.data\n\t\t}\n\t\tif (output && typeof output == 'object' && !Array.isArray(output)) return output\n\t\tthrow new Error('Invalid cerno response')\n\t}\n\n\tgetStatsData(outputMap: Record<string, GseaResultEntry>) {\n\t\treturn [{ label: 'Gene sets analyzed', value: Object.keys(outputMap).length }]\n\t}\n\n\tgetTableData(outputMap: Record<string, GseaResultEntry>, settings) {\n\t\tconst entries = Object.entries(outputMap).map(([genesetName, result]) => ({ genesetName, result }))\n\t\tconst rowItems: any[] = []\n\n\t\tif (settings.fdr_or_top == 'top') {\n\t\t\tentries.sort((a, b) => Number(a.result.fdr ?? Infinity) - Number(b.result.fdr ?? Infinity))\n\t\t\tfor (let index = 0; index < Math.min(settings.top_genesets, entries.length); index++) {\n\t\t\t\tconst item = entries[index]\n\t\t\t\tif (this.withinSizeCutoff(item.result, settings)) rowItems.push(this.makeRowItem(item, settings.gsea_method))\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const item of entries) {\n\t\t\t\tif (!this.withinSizeCutoff(item.result, settings)) continue\n\t\t\t\tif (Number(item.result.fdr ?? Infinity) > settings.fdr_cutoff) continue\n\t\t\t\trowItems.push(this.makeRowItem(item, settings.gsea_method))\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcolumns: this.getTableColumns(settings.gsea_method),\n\t\t\trows: rowItems.map(item => item.row),\n\t\t\trowItems\n\t\t}\n\t}\n\n\twithinSizeCutoff(result: GseaResultEntry, settings) {\n\t\treturn (\n\t\t\tsettings.max_gene_set_size_cutoff >= result.geneset_size &&\n\t\t\tsettings.min_gene_set_size_cutoff <= result.geneset_size\n\t\t)\n\t}\n\n\tmakeRowItem(item: { genesetName: string; result: GseaResultEntry }, method: string) {\n\t\tconst pvalue = item.result.pvalue != null ? roundValueAuto(item.result.pvalue) : item.result.pvalue\n\t\tconst fdr = item.result.fdr != null ? roundValueAuto(item.result.fdr) : item.result.fdr\n\t\tconst leadingEdge = item.result.leading_edge\n\t\tconst genes = leadingEdge ? leadingEdge.split(',').map(gene => gene.trim()).filter(Boolean) : []\n\n\t\tif (method == 'blitzgsea') {\n\t\t\tconst nes = item.result.nes != null ? roundValueAuto(item.result.nes) : item.result.nes\n\t\t\treturn {\n\t\t\t\tgenesetName: item.genesetName,\n\t\t\t\tgenes,\n\t\t\t\trow: [\n\t\t\t\t\t{ value: item.genesetName },\n\t\t\t\t\t{ value: nes },\n\t\t\t\t\t{ value: item.result.geneset_size },\n\t\t\t\t\t{ value: pvalue },\n\t\t\t\t\t{ value: fdr },\n\t\t\t\t\t{ value: leadingEdge }\n\t\t\t\t]\n\t\t\t}\n\t\t}\n\n\t\tconst auc = item.result.auc != null ? roundValueAuto(item.result.auc) : item.result.auc\n\t\tconst es = item.result.es != null ? roundValueAuto(item.result.es) : item.result.es\n\t\treturn {\n\t\t\tgenesetName: item.genesetName,\n\t\t\tgenes,\n\t\t\trow: [\n\t\t\t\t{ value: item.genesetName },\n\t\t\t\t{ value: auc },\n\t\t\t\t{ value: es },\n\t\t\t\t{ value: item.result.geneset_size },\n\t\t\t\t{ value: pvalue },\n\t\t\t\t{ value: fdr },\n\t\t\t\t{ value: leadingEdge }\n\t\t\t]\n\t\t}\n\t}\n\n\tgetTableColumns(method: string) {\n\t\tif (method == 'blitzgsea') {\n\t\t\treturn [\n\t\t\t\t{ label: 'Gene Set', sortable: true },\n\t\t\t\t{ label: 'Normalized Enrichment Score', barplot: { axisWidth: 200 }, sortable: true },\n\t\t\t\t{ label: 'Gene Set Size', sortable: true },\n\t\t\t\t{ label: 'P value', sortable: true },\n\t\t\t\t{ label: 'FDR', sortable: true },\n\t\t\t\t{ label: 'Leading Edge' }\n\t\t\t]\n\t\t}\n\n\t\treturn [\n\t\t\t{ label: 'Gene Set', sortable: true },\n\t\t\t{ label: 'Area Under Curve', barplot: { axisWidth: 200 }, sortable: true },\n\t\t\t{ label: 'Enrichment Score', barplot: { axisWidth: 200 }, sortable: true },\n\t\t\t{ label: 'Total Gene Set Size', sortable: true },\n\t\t\t{ label: 'P value', sortable: true },\n\t\t\t{ label: 'FDR', sortable: true },\n\t\t\t{ label: 'Gene Set Hits' }\n\t\t]\n\t}\n\n\tgetSelectedRows(rowItems: any[]) {\n\t\tconst selectedGeneset = this.gsea.state.config.gsea_params?.geneset_name\n\t\tconst selectedIndex = rowItems.findIndex(item => item.genesetName == selectedGeneset)\n\t\treturn selectedIndex > -1 ? [selectedIndex] : []\n\t}\n\n\tasync getDetailImage(settings, genesetName: string) {\n\t\tconst image = await this.gsea.model.runEnrichment(this.getRequestBody(settings, genesetName))\n\t\tif (image?.error) throw Object.assign(new Error(image.error), { code: image.code })\n\n\t\tif (this.gsea.imageUrl) URL.revokeObjectURL(this.gsea.imageUrl)\n\t\tthis.gsea.imageUrl = URL.createObjectURL(image)\n\t\treturn {\n\t\t\tsrc: this.gsea.imageUrl,\n\t\t\twidth: 600,\n\t\t\theight: 400\n\t\t}\n\t}\n\n\tasync getCernoPlotData(outputMap: Record<string, GseaResultEntry>, genesetName: string) {\n\t\tconst selected = outputMap[genesetName]\n\t\tif (!selected) throw new Error(`${genesetName} not found`)\n\n\t\tconst rankedDE = await this.getRankedDE()\n\t\tconst rankedGenes = rankedDE.genes.map((gene, index) => ({ gene, fold_change: rankedDE.fold_change[index] }))\n\t\trankedGenes.sort((a, b) => b.fold_change - a.fold_change)\n\n\t\treturn {\n\t\t\tauc: selected.auc,\n\t\t\tgenesetName,\n\t\t\tleadingEdgeGenes: selected.leading_edge.split(',').map(gene => gene.trim()).filter(Boolean),\n\t\t\trankedGenes\n\t\t}\n\t}\n\n\tasync getRankedDE(): Promise<RankedDE> {\n\t\tconst cacheKey = this.getRankedDECacheKey()\n\t\tif (this.rankedDE && this.rankedDEKey == cacheKey) return this.rankedDE\n\n\t\tif (!this.gsea.gsea_params.cacheId && !this.gsea.gsea_params.dapParams) {\n\t\t\tconst rankedDE = {\n\t\t\t\tgenes: this.gsea.gsea_params.genes,\n\t\t\t\tfold_change: this.gsea.gsea_params.fold_change\n\t\t\t}\n\t\t\tthis.rankedDE = rankedDE\n\t\t\tthis.rankedDEKey = cacheKey\n\t\t\treturn rankedDE\n\t\t}\n\n\t\tconst response = await this.gsea.model.runEnrichment({\n\t\t\tgenome: this.gsea.gsea_params.genome,\n\t\t\tdslabel: this.gsea.gsea_params.dslabel,\n\t\t\tfetchDE: true,\n\t\t\tgeneSetGroup: '-',\n\t\t\tfilter_non_coding_genes: false,\n\t\t\tmethod: 'cerno',\n\t\t\t...(this.gsea.gsea_params.cacheId\n\t\t\t\t? {\n\t\t\t\t\tcacheId: this.gsea.gsea_params.cacheId,\n\t\t\t\t\tdaRequest: this.gsea.gsea_params.daRequest\n\t\t\t\t}\n\t\t\t\t: { dapParams: this.gsea.gsea_params.dapParams })\n\t\t})\n\t\tif (response?.error) throw Object.assign(new Error(response.error), { code: response.code })\n\n\t\tconst rankedDE = response.data as RankedDE\n\t\tthis.rankedDE = rankedDE\n\t\tthis.rankedDEKey = cacheKey\n\t\treturn rankedDE\n\t}\n\n\tgetRankedDECacheKey() {\n\t\tif (this.gsea.gsea_params.cacheId) return `cache:${this.gsea.gsea_params.cacheId}`\n\t\tif (this.gsea.gsea_params.dapParams) return `dap:${JSON.stringify(this.gsea.gsea_params.dapParams)}`\n\t\tconst genes = this.gsea.gsea_params.genes || []\n\t\treturn `inline:${genes.length}:${genes[0] || ''}:${genes[genes.length - 1] || ''}`\n\t}\n}\n", "import type { GSEA } from '../GSEA'\nimport * as d3axis from 'd3-axis'\nimport { scaleLinear } from 'd3-scale'\nimport { renderTable, table2col, axisstyle, sayerror } from '#dom'\nimport { roundValueAuto } from '#shared/roundValue.js'\n\nexport class GSEAView {\n\tgsea: GSEA\n\tdom: any\n\tpathwayDropDown: any\n\n\tconstructor(gsea: GSEA) {\n\t\tthis.gsea = gsea\n\t\tthis.dom = gsea.dom\n\t}\n\n\tinitRender() {\n\t\tthis.renderActions()\n\t}\n\n\trenderActions() {\n\t\tthis.dom.actionsDiv\n\t\t\t.append('span')\n\t\t\t.attr('data-testid', 'sjpp-gsea-pathway')\n\t\t\t.style('margin-right', '10px')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.text('Select a gene set group:')\n\n\t\tthis.pathwayDropDown = this.dom.actionsDiv\n\t\t\t.append('select')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.on('change', async () => {\n\t\t\t\tconst value = this.pathwayDropDown.node().value\n\t\t\t\tconst settings = structuredClone(this.gsea.state.config.settings.gsea)\n\t\t\t\tsettings.pathway = value\n\t\t\t\tawait this.gsea.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: this.gsea.id,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\t//Need to clear the gsea_params completely\n\t\t\t\t\t\tgsea_params: {\n\t\t\t\t\t\t\tgeneset_name: null,\n\t\t\t\t\t\t\tpathway: value\n\t\t\t\t\t\t},\n\t\t\t\t\t\thighlightGenes: [],\n\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\tgsea: settings\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\tupdate() {\n\t\tconst viewData = this.gsea.viewModel.viewData\n\t\tthis.renderPathwayOptions(viewData.pathwayOpts)\n\n\t\tthis.dom.detailsDiv.selectAll('*').remove()\n\t\tthis.dom.holder.selectAll('*').remove()\n\t\tthis.dom.tableDiv.selectAll('*').remove()\n\n\t\tif (viewData.error) {\n\t\t\tsayerror(this.dom.holder, viewData.error)\n\t\t\treturn\n\t\t}\n\n\t\tif (!viewData.tableData) return\n\n\t\tthis.renderStats(viewData.statsData)\n\t\tif (viewData.detailImage) this.renderImage(viewData.detailImage)\n\t\tif (viewData.cernoPlotData) this.renderCernoPlot(viewData.cernoPlotData)\n\t\tif (viewData.detailError) sayerror(this.dom.holder, viewData.detailError)\n\t\tif (viewData.showHighlightButton) this.renderHighlightButton()\n\t\tthis.renderResultsTable(viewData)\n\t}\n\n\trenderPathwayOptions(pathwayOpts) {\n\t\tthis.pathwayDropDown.selectAll('option').remove()\n\t\tthis.pathwayDropDown\n\t\t\t.selectAll('option')\n\t\t\t.data(pathwayOpts)\n\t\t\t.enter()\n\t\t\t.append('option')\n\t\t\t.text(d => d.label)\n\t\t\t.property('value', d => d.value)\n\t\t\t.property('selected', d => d.selected)\n\t}\n\n\trenderStats(statsData) {\n\t\tconst tableStats = table2col({ holder: this.dom.detailsDiv.attr('data-testid', 'sjpp-gsea-stats') })\n\t\tconst [, countHeader] = tableStats.addRow()\n\t\tcountHeader.style('text-align', 'center').style('font-size', '0.8em').style('opacity', '0.8').text('COUNT')\n\n\t\tfor (const row of statsData) {\n\t\t\tconst [labelCell, valueCell] = tableStats.addRow()\n\t\t\tlabelCell.text(row.label)\n\t\t\tvalueCell.style('text-align', 'end').text(row.value)\n\t\t}\n\t}\n\n\trenderImage(detailImage) {\n\t\tthis.dom.holder.append('img').attr('width', detailImage.width).attr('height', detailImage.height).attr('src', detailImage.src)\n\t}\n\n\trenderHighlightButton() {\n\t\tthis.dom.detailsDiv\n\t\t\t.append('button')\n\t\t\t.style('margin-left', '10px')\n\t\t\t.style('display', 'block')\n\t\t\t.attr('aria-label', 'Highlight genes in the volcano plot')\n\t\t\t.text('Highlight genes')\n\t\t\t.on('click', () => {\n\t\t\t\tthis.gsea.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: this.gsea.id,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tchildType: 'volcano',\n\t\t\t\t\t\thighlightedData: this.gsea.state.config.highlightGenes\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\trenderResultsTable(viewData) {\n\t\tconst tableDiv = this.dom.tableDiv.append('div')\n\t\trenderTable({\n\t\t\tdownload: {\n\t\t\t\tfileName: this.gsea.state.config.downloadFilename || ''\n\t\t\t},\n\t\t\tcolumns: viewData.tableData.columns,\n\t\t\trows: viewData.tableData.rows,\n\t\t\tdiv: tableDiv,\n\t\t\tshowLines: true,\n\t\t\tmaxHeight: '30vh',\n\t\t\tsingleMode: true,\n\t\t\tresize: true,\n\t\t\theader: { allowSort: true },\n\t\t\tselectedRows: viewData.selectedRows,\n\t\t\tnoButtonCallback: async index => {\n\t\t\t\tconst rowItem = viewData.tableData.rowItems[index]\n\t\t\t\tconst config: any = {\n\t\t\t\t\tgsea_params: {\n\t\t\t\t\t\tgeneset_name: rowItem.genesetName\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.gsea.state.config.chartType == 'differentialAnalysis' && rowItem.genes.length) {\n\t\t\t\t\tconfig.highlightGenes = rowItem.genes\n\t\t\t\t}\n\t\t\t\tawait this.gsea.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: this.gsea.id,\n\t\t\t\t\tconfig\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n\n\trenderCernoPlot(cernoPlotData) {\n\t\tconst holder = this.dom.holder\n\t\tconst svgWidth = 400\n\t\tconst svgHeight = 400\n\t\tconst svg = holder.append('svg').attr('width', svgWidth).attr('height', svgHeight)\n\t\tconst topPad = 20\n\t\tconst rightPad = 5\n\t\tconst xPad = 50\n\t\tconst yPad = 100\n\t\tconst yAxis = svg.append('g')\n\t\tconst xAxis = svg.append('g')\n\n\t\tconst xScale = scaleLinear().domain([0, cernoPlotData.rankedGenes.length]).range([xPad, svgWidth - rightPad])\n\t\tconst yScale = scaleLinear().domain([100, 0]).range([topPad, svgHeight - yPad])\n\n\t\tyAxis.attr('transform', `translate(${xPad},0)`)\n\t\txAxis.attr('transform', `translate(0,${svgHeight - yPad})`)\n\n\t\tsvg\n\t\t\t.append('text')\n\t\t\t.text('Gene list')\n\t\t\t.attr('fill', 'black')\n\t\t\t.attr('text-anchor', 'start')\n\t\t\t.attr('transform', `translate(${xScale(cernoPlotData.rankedGenes.length / 3)},${svgHeight - yPad + 2 * topPad})`)\n\n\t\tsvg\n\t\t\t.append('text')\n\t\t\t.text('Percentage of gene set')\n\t\t\t.attr('fill', 'black')\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.attr('y', xPad / 2)\n\t\t\t.attr('x', -svgWidth / 2.5)\n\t\t\t.attr('transform', 'rotate(-90)')\n\n\t\tlet fontSize = 30\n\t\tconst title = svg\n\t\t\t.append('text')\n\t\t\t.text(cernoPlotData.genesetName)\n\t\t\t.attr('fill', 'black')\n\t\t\t.attr('text-anchor', 'start')\n\t\t\t.attr('font-size', `${fontSize}px`)\n\t\t\t.attr('transform', `translate(${xPad},${topPad / 2})`)\n\n\t\tlet titleBox = title.node().getBBox()\n\t\twhile (titleBox.width > svgWidth - xPad || titleBox.height > (topPad * 3.5) / 5) {\n\t\t\tfontSize -= 1\n\t\t\ttitle.node().setAttribute('font-size', `${fontSize}px`)\n\t\t\ttitleBox = title.node().getBBox()\n\t\t}\n\n\t\tif (typeof cernoPlotData.auc === 'number') {\n\t\t\tconst aucPos =\n\t\t\t\tcernoPlotData.auc >= 0.5\n\t\t\t\t\t? `${xScale((cernoPlotData.rankedGenes.length * 3) / 3.5)},${svgHeight - yPad * 1.5}`\n\t\t\t\t\t: `${xScale((cernoPlotData.rankedGenes.length * 0.8) / 4.5)},${svgHeight - yPad * 3}`\n\t\t\tsvg\n\t\t\t\t.append('text')\n\t\t\t\t.text(`AUC=${roundValueAuto(cernoPlotData.auc)}`)\n\t\t\t\t.attr('fill', 'black')\n\t\t\t\t.attr('text-anchor', 'middle')\n\t\t\t\t.attr('transform', `translate(${aucPos})`)\n\t\t}\n\n\t\taxisstyle({\n\t\t\taxis: yAxis.call(d3axis.axisLeft(yScale)),\n\t\t\tcolor: 'black',\n\t\t\tshowline: true,\n\t\t\tfontsize: '10'\n\t\t})\n\t\taxisstyle({\n\t\t\taxis: xAxis.call(d3axis.axisBottom(xScale)),\n\t\t\tcolor: 'black',\n\t\t\tshowline: true,\n\t\t\tfontsize: '10'\n\t\t})\n\n\t\tconst hitGenes = new Set(cernoPlotData.leadingEdgeGenes)\n\t\tconst yIncrement = 100 / Math.max(hitGenes.size, 1)\n\t\tconst lines = svg.append('g')\n\t\tlet yIter = 100\n\t\tfor (let index = 0; index < cernoPlotData.rankedGenes.length; index++) {\n\t\t\tconst rankedGene = cernoPlotData.rankedGenes[index]\n\t\t\tconst yOld = yIter\n\t\t\tif (hitGenes.has(rankedGene.gene)) {\n\t\t\t\tyIter -= yIncrement\n\t\t\t\tlines\n\t\t\t\t\t.append('line')\n\t\t\t\t\t.style('stroke', 'red')\n\t\t\t\t\t.attr('x1', xScale(index))\n\t\t\t\t\t.attr('y1', svgHeight)\n\t\t\t\t\t.attr('x2', xScale(index))\n\t\t\t\t\t.attr('y2', svgHeight - yPad + 2.5 * topPad)\n\t\t\t}\n\t\t\tlines\n\t\t\t\t.append('line')\n\t\t\t\t.style('stroke', 'red')\n\t\t\t\t.attr('x1', xScale(index))\n\t\t\t\t.attr('y1', yScale(100 - yOld))\n\t\t\t\t.attr('x2', xScale(index + 1))\n\t\t\t\t.attr('y2', yScale(100 - yIter))\n\t\t}\n\t}\n}\n", "import { getCompInit, copyMerge, type RxComponent } from '#rx'\nimport { PlotBase } from '#plots/PlotBase.js'\nimport { getCombinedTermFilter } from '#filter'\nimport { PROTEOME_DAP, SINGLECELL_CELLTYPE } from '#types'\nimport { getDefaultGseaSettings } from './settings/defaults'\nimport { GSEAModel } from './model/GSEAModel'\nimport { isValidGseaParams } from './model/GseaParams'\nimport { setControls } from './view/GSEAControls'\nimport { GSEAViewModel } from './viewModel/GSEAViewModel'\nimport { GSEAView } from './view/GSEAView'\n\nexport class GSEA extends PlotBase implements RxComponent {\n\tstatic type = 'gsea'\n\n\ttype: string\n\tsettings!: any\n\tcomponents!: { controls: any }\n\timageUrl: any\n\tconfig!: any\n\ttestEnabled: boolean\n\tgsea_params!: any\n\tmodel!: GSEAModel\n\tviewModel!: GSEAViewModel\n\tview!: GSEAView\n\n\tconstructor(opts) {\n\t\tsuper(opts)\n\t\tthis.type = GSEA.type\n\t\tthis.opts = opts\n\t\tthis.components = {\n\t\t\tcontrols: {}\n\t\t}\n\t\t//Either allow a node to be passed or create a new div\n\t\tconst controlsDiv =\n\t\t\ttypeof opts.controls == 'object' ? opts.controls : opts.holder.append('div').style('display', 'inline-block')\n\t\tconst main = opts.holder.append('div').style('display', 'inline-block')\n\t\tconst actionsDiv = main\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-gsea-actions')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('text-align', 'left')\n\n\t\t//TODO: implement toggleLoadingDiv from parent\n\t\tconst loadingDiv = main\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-gsea-loading')\n\t\t\t.style('text-align', 'center')\n\t\t\t.style('display', 'none')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('text-align', 'left')\n\t\t\t.text('Loading...')\n\t\tconst holder = main\n\t\t\t.append('div')\n\t\t\t.style('margin-left', '50px')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.attr('data-testid', 'sjpp-gsea-holder')\n\t\tconst detailsDiv = main\n\t\t\t.append('div')\n\t\t\t.attr('data-testid', 'sjpp-gsea-details')\n\t\t\t.style('display', 'inline-block')\n\t\t\t.style('vertical-align', 'top')\n\t\t\t.style('margin-top', '50px')\n\n\t\tconst tableDiv = main.append('div').style('margin', '10px').attr('data-testid', 'sjpp-gsea-results-table')\n\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\theader: opts.header,\n\t\t\tactionsDiv,\n\t\t\tloadingDiv,\n\t\t\tcontrolsDiv,\n\t\t\tdetailsDiv,\n\t\t\ttableDiv\n\t\t}\n\n\t\tthis.testEnabled = JSON.parse(sessionStorage.getItem('optionalFeatures') || '{}')?.gsea_test\n\t}\n\n\tgetState(appState) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config) throw new Error(`No plot with id='${this.id}' found`)\n\t\tconst parentConfig = appState.plots.find(p => p.id === this.parentId)\n\t\tconst termfilter = getCombinedTermFilter(appState, config.filter || parentConfig?.filter)\n\n\t\treturn {\n\t\t\tconfig,\n\t\t\ttermfilter,\n\t\t\tgenome: appState.vocab.genome,\n\t\t\tdslabel: appState.vocab.dslabel\n\t\t}\n\t}\n\n\tasync init(appState) {\n\t\tconst state = this.getState(appState)\n\t\tconst config = structuredClone(state.config)\n\n\t\tthis.model = new GSEAModel(this)\n\t\t/** Ensures plots init'ed from session are properly vetted and\n\t\t * mutated as necessary. */\n\t\tvalidateConfigByTermType(config)\n\n\t\tif (!isValidGseaParams(config.gsea_params)) {\n\t\t\tthis.gsea_params = await this.model.getGseaParams(config.gsea_params, state, config)\n\t\t} else {\n\t\t\tthis.gsea_params = config.gsea_params\n\t\t}\n\n\t\tawait setControls(this.dom.controlsDiv, this)\n\t\tthis.viewModel = new GSEAViewModel(this)\n\t\tthis.view = new GSEAView(this)\n\n\t\tthis.view.initRender()\n\t}\n\n\tasync main() {\n\t\tconst state = structuredClone(this.state)\n\t\t//TODO: Fix this to use parentId instead\n\t\tif (state.config.chartType != this.type && state.config.childType != this.type) return\n\n\t\tif (this.dom.header) {\n\t\t\tconst geneCount = this.gsea_params.genes_length ?? this.gsea_params.genes?.length ?? 0\n\t\t\tthis.dom.header.html(\n\t\t\t\tgeneCount + ' genes <span style=\"font-size:.8em;opacity:.7\">GENE SET ENRICHMENT ANALYSIS</span>'\n\t\t\t)\n\t\t}\n\t\tif (this.imageUrl) URL.revokeObjectURL(this.imageUrl)\n\t\tthis.imageUrl = null\n\n\t\tawait this.viewModel.processData()\n\t\tthis.view.update()\n\t\t// render_gsea(this)\n\t}\n}\n\nexport const gseaInit = getCompInit(GSEA)\n// this alias will allow abstracted dynamic imports\nexport const componentInit = gseaInit\n\n/************* \n * TODO: \n * The config object contains the same data over and over. \n * ex. samplelst:{groups} is the same thing as tw.q.groups. \n * ex. gsea_params contain duplicate information in settings.gsea \n * and in the state. \n * ex. the plot state is added to the config unnecessarily.\n * \n * This poorly constructed object increases the complexity of the code \n * and makes it harder to maintain.\n * Need to reduce the overall redundancy and simplify the structure.\n ************/\nexport async function getPlotConfig(opts, app) {\n\t// if (!opts.gsea_params) throw 'No gsea_params provided [gsea getPlotConfig()]'\n\tif (!opts.termType) throw new Error('No termType provided [gsea getPlotConfig()]')\n\ttry {\n\t\tconst config = {\n\t\t\tgsea_params: {\n\t\t\t\tgenome: app.opts.state.vocab.genome\n\t\t\t},\n\t\t\t//idea for fixing nav button\n\t\t\t//samplelst: { groups: app.opts.state.groups}\n\t\t\tsettings: {\n\t\t\t\tgsea: getDefaultGseaSettings(opts.overrides, opts)\n\t\t\t}\n\t\t}\n\n\t\tcopyMerge(config, opts)\n\t\tvalidateConfigByTermType(config)\n\t\treturn config\n\t} catch (e) {\n\t\tthrow `${e} [gsea getPlotConfig()]`\n\t}\n}\n\nfunction validateConfigByTermType(config) {\n\tif (!config.gsea_params) config.gsea_params = {}\n\tif (config.termType === PROTEOME_DAP) {\n\t\tif (!config.proteomeDetails) throw new Error('No proteomeDetails provided for DAP GSEA')\n\t\tconfig.gsea_params.dapParams = config.proteomeDetails\n\t} else if (config.termType === SINGLECELL_CELLTYPE) {\n\t\tif (!config.sample || !config.termId || !config.categoryName)\n\t\t\tthrow new Error('Missing sample, termId, or categoryName for single cell cluster GSEA')\n\t}\n}\n\nexport function makeChartBtnMenu(holder, chartsInstance) {\n\t/*\n\tholder: the holder in the tooltip\n\tchartsInstance: MassCharts instance\n\t\ttermdbConfig is accessible at chartsInstance.state.termdbConfig{}\n\t\tmass option is accessible at chartsInstance.app.opts{}\n\t*/\n\t// to fill in menu, create options in \"holder\"\n\t// to hide menu, call chartsInstance.dom.tip.hide()\n\t// upon clicking an option, generate plot:\n\tchartsInstance.prepPlot({\n\t\tconfig: {\n\t\t\tchartType: 'gsea'\n\t\t}\n\t})\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["opt", "rankedDE"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GeneSetEditUI,
|
|
3
|
+
PlotBase,
|
|
4
|
+
addGeneSearchbox,
|
|
5
|
+
getCurrentCohortChartTypes,
|
|
6
|
+
getGEunit,
|
|
7
|
+
getSCGEunit,
|
|
8
|
+
sayerror
|
|
9
|
+
} from "./chunk-5VOPABBA.js";
|
|
10
|
+
import "./chunk-HJ6L54YS.js";
|
|
11
|
+
import "./chunk-LSEFWW72.js";
|
|
12
|
+
import {
|
|
13
|
+
importPlot
|
|
14
|
+
} from "./chunk-Z5U6HOE4.js";
|
|
15
|
+
import {
|
|
16
|
+
Menu
|
|
17
|
+
} from "./chunk-HYOEWQ5P.js";
|
|
18
|
+
import {
|
|
19
|
+
Tabs
|
|
20
|
+
} from "./chunk-HBW42TDT.js";
|
|
21
|
+
import "./chunk-FN5XPUPH.js";
|
|
22
|
+
import "./chunk-5ABGFJSP.js";
|
|
23
|
+
import "./chunk-IIT367QZ.js";
|
|
24
|
+
import "./chunk-RZGEKL77.js";
|
|
25
|
+
import "./chunk-XPY6AWXO.js";
|
|
26
|
+
import "./chunk-NELOT3NJ.js";
|
|
27
|
+
import "./chunk-M6EF3WVV.js";
|
|
28
|
+
import "./chunk-7IYJZZQI.js";
|
|
29
|
+
import {
|
|
30
|
+
copyMerge,
|
|
31
|
+
getCompInit
|
|
32
|
+
} from "./chunk-M3J4MINX.js";
|
|
33
|
+
import "./chunk-PF4DSFDR.js";
|
|
34
|
+
import "./chunk-LFCYMSVA.js";
|
|
35
|
+
import {
|
|
36
|
+
GENE_EXPRESSION,
|
|
37
|
+
SINGLECELL_GENE_EXPRESSION,
|
|
38
|
+
SSGSEA,
|
|
39
|
+
typeGroup
|
|
40
|
+
} from "./chunk-I6WR4CG7.js";
|
|
41
|
+
import "./chunk-2X6W4E3W.js";
|
|
42
|
+
import "./chunk-NYRZNRG5.js";
|
|
43
|
+
import "./chunk-JNITUVXP.js";
|
|
44
|
+
import "./chunk-3XVVN66M.js";
|
|
45
|
+
import "./chunk-LOZEKOES.js";
|
|
46
|
+
import "./chunk-VQZ2Z5YU.js";
|
|
47
|
+
import "./chunk-NSTL4MY2.js";
|
|
48
|
+
import "./chunk-TLT4YIG3.js";
|
|
49
|
+
import "./chunk-KYBIQBXE.js";
|
|
50
|
+
import "./chunk-I6Y4O3RR.js";
|
|
51
|
+
import "./chunk-OMR2DT66.js";
|
|
52
|
+
import "./chunk-DQC5FFGV.js";
|
|
53
|
+
import "./chunk-HFNDKYVF.js";
|
|
54
|
+
|
|
55
|
+
// plots/GeneExpInput.ts
|
|
56
|
+
var GeneExpInput = class _GeneExpInput extends PlotBase {
|
|
57
|
+
static {
|
|
58
|
+
this.type = "GeneExpInput";
|
|
59
|
+
}
|
|
60
|
+
constructor(opts, api) {
|
|
61
|
+
super(opts, api);
|
|
62
|
+
this.type = _GeneExpInput.type;
|
|
63
|
+
this.opts = opts;
|
|
64
|
+
this.components = {
|
|
65
|
+
plots: {}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
makeTerm(_term) {
|
|
69
|
+
const termProperties = this.state.config?.termProperties || {};
|
|
70
|
+
const term = { ..._term, ...termProperties, type: this.termType, unit: this.unit };
|
|
71
|
+
return term;
|
|
72
|
+
}
|
|
73
|
+
makeConfig(_config) {
|
|
74
|
+
const spawnConfig = this.state.config?.spawnConfig || {};
|
|
75
|
+
const tmp = { ..._config, ...spawnConfig };
|
|
76
|
+
return tmp;
|
|
77
|
+
}
|
|
78
|
+
getState(appState) {
|
|
79
|
+
const config = appState.plots.find((p) => p.id === this.id);
|
|
80
|
+
if (!config) {
|
|
81
|
+
throw `No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`;
|
|
82
|
+
}
|
|
83
|
+
const subplots = appState.plots.filter((p) => p.parentId === this.id);
|
|
84
|
+
return {
|
|
85
|
+
config,
|
|
86
|
+
termdbConfig: appState.termdbConfig,
|
|
87
|
+
subplots
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async init(appState) {
|
|
91
|
+
const state = this.getState(appState);
|
|
92
|
+
this.genome = this.app.opts.genome;
|
|
93
|
+
this.termType = state.config.termType;
|
|
94
|
+
this.unit = this.getUnit();
|
|
95
|
+
this.dom = this.initDom();
|
|
96
|
+
const chartTypes = new Set(getCurrentCohortChartTypes(appState));
|
|
97
|
+
this.tabs = [
|
|
98
|
+
{
|
|
99
|
+
label: "One gene",
|
|
100
|
+
isVisible: () => true,
|
|
101
|
+
callback: (event, tab) => {
|
|
102
|
+
this.renderGeneSelect(tab);
|
|
103
|
+
delete tab.callback;
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
label: "Two genes",
|
|
108
|
+
isVisible: () => true,
|
|
109
|
+
callback: (event, tab) => {
|
|
110
|
+
this.renderTwoGeneSelect(tab);
|
|
111
|
+
delete tab.callback;
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
label: "Hierarchical clustering",
|
|
116
|
+
isVisible: () => chartTypes.has("matrix"),
|
|
117
|
+
callback: (event, tab) => {
|
|
118
|
+
this.renderGeneMultiSelect(tab);
|
|
119
|
+
delete tab.callback;
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
label: `Differential ${typeGroup[this.termType].toLowerCase()} analysis`,
|
|
124
|
+
//Only enabling for gene expression for now
|
|
125
|
+
chartType: "DEinput",
|
|
126
|
+
isVisible: () => chartTypes.has("DA") && this.termType === GENE_EXPRESSION,
|
|
127
|
+
callback: async (event, tab) => {
|
|
128
|
+
await this.app.dispatch({
|
|
129
|
+
type: "plot_create",
|
|
130
|
+
parentId: this.id,
|
|
131
|
+
config: {
|
|
132
|
+
chartType: "DEinput",
|
|
133
|
+
parentId: this.id,
|
|
134
|
+
/** ' ' overrides the default 'hide_search' mode in DEInput.
|
|
135
|
+
* 'hide_search' by default expands all terms. */
|
|
136
|
+
header_mode: " "
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
delete tab.callback;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
label: typeGroup[SSGSEA],
|
|
144
|
+
isVisible: () => {
|
|
145
|
+
return this.termType === GENE_EXPRESSION && state.termdbConfig?.allowedTermTypes?.includes(SSGSEA);
|
|
146
|
+
},
|
|
147
|
+
callback: async (event, tab) => {
|
|
148
|
+
await this.renderSSGSEA(tab);
|
|
149
|
+
delete tab.callback;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
];
|
|
153
|
+
const chartTabs = new Tabs({
|
|
154
|
+
holder: this.dom.tabs,
|
|
155
|
+
tabs: this.tabs,
|
|
156
|
+
tabsPosition: "vertical"
|
|
157
|
+
});
|
|
158
|
+
await chartTabs.main();
|
|
159
|
+
}
|
|
160
|
+
getUnit() {
|
|
161
|
+
return this.termType === GENE_EXPRESSION ? getGEunit(this.app.vocabApi) : getSCGEunit(this.app.vocabApi);
|
|
162
|
+
}
|
|
163
|
+
initDom() {
|
|
164
|
+
const headerText = this.opts.headerText ? `${this.opts.headerText} ` : "";
|
|
165
|
+
const dom = {
|
|
166
|
+
header: {
|
|
167
|
+
title: this.opts.header.append("span").style("padding-right", "5px").text(headerText).attr("data-testid", "sjpp-gene-exp-input-headerText"),
|
|
168
|
+
plot: this.opts.header.append("span").text(typeGroup[this.termType].toUpperCase()).style("font-size", "0.7em").style("opacity", "0.6").attr("data-testid", "sjpp-gene-exp-input-termType")
|
|
169
|
+
},
|
|
170
|
+
tabs: this.opts.holder.append("div").style("margin", "10px").attr("data-testid", "sjpp-gene-exp-input-tabs-wrapper")
|
|
171
|
+
};
|
|
172
|
+
return dom;
|
|
173
|
+
}
|
|
174
|
+
async main() {
|
|
175
|
+
const state = this.getState(this.app.getState());
|
|
176
|
+
for (const subplot of state.subplots || []) {
|
|
177
|
+
if (!this.components.plots[subplot.id]) await this.initSubplotInTab(subplot);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
renderGeneSelect(tab) {
|
|
181
|
+
const row = tab.contentHolder.style("padding", "15px");
|
|
182
|
+
row.append("span").style("padding", "5px").text("Select a gene:");
|
|
183
|
+
const geneSearch = addGeneSearchbox({
|
|
184
|
+
row,
|
|
185
|
+
genome: this.genome,
|
|
186
|
+
tip: new Menu({ padding: "0px" }),
|
|
187
|
+
searchOnly: "gene",
|
|
188
|
+
callback: async () => {
|
|
189
|
+
const tw = {
|
|
190
|
+
term: this.makeTerm({
|
|
191
|
+
gene: geneSearch.geneSymbol,
|
|
192
|
+
name: `${geneSearch.geneSymbol} ${this.unit}`
|
|
193
|
+
})
|
|
194
|
+
};
|
|
195
|
+
const config = this.makeConfig({
|
|
196
|
+
chartType: "summary",
|
|
197
|
+
term: tw
|
|
198
|
+
});
|
|
199
|
+
await this.dispatchEdits(config);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/** Guide the user to select the first gene then
|
|
204
|
+
* a second to launch the summary plot on submit.*/
|
|
205
|
+
renderTwoGeneSelect(tab) {
|
|
206
|
+
const term = {};
|
|
207
|
+
const term2 = {};
|
|
208
|
+
const holder = tab.contentHolder.style("padding", "10px");
|
|
209
|
+
const gene1row = holder.append("div").style("padding", "5px");
|
|
210
|
+
const gene2row = holder.append("div").style("padding", "5px").style("display", "none");
|
|
211
|
+
const submitButton = holder.append("button").attr("type", "button").attr("disabled", true);
|
|
212
|
+
gene1row.append("span").text("Select the first gene:");
|
|
213
|
+
const geneSearch1 = addGeneSearchbox({
|
|
214
|
+
row: gene1row,
|
|
215
|
+
genome: this.genome,
|
|
216
|
+
tip: new Menu({ padding: "0px" }),
|
|
217
|
+
searchOnly: "gene",
|
|
218
|
+
callback: async () => {
|
|
219
|
+
gene2row.style("display", "block");
|
|
220
|
+
if (!geneSearch1.geneSymbol) throw new Error("First gene result is required");
|
|
221
|
+
term.gene = geneSearch1.geneSymbol;
|
|
222
|
+
term.name = `${geneSearch1.geneSymbol} ${this.unit}`;
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
gene2row.append("span").text("Select the second gene:");
|
|
226
|
+
const geneSearch2 = addGeneSearchbox({
|
|
227
|
+
row: gene2row,
|
|
228
|
+
genome: this.genome,
|
|
229
|
+
tip: new Menu({ padding: "0px" }),
|
|
230
|
+
searchOnly: "gene",
|
|
231
|
+
callback: async () => {
|
|
232
|
+
if (!geneSearch2.geneSymbol) throw new Error("Second gene result is required");
|
|
233
|
+
term2.gene = geneSearch2.geneSymbol;
|
|
234
|
+
term2.name = `${geneSearch2.geneSymbol} ${this.unit}`;
|
|
235
|
+
submitButton.attr("disabled", null);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
submitButton.text("Submit").style("border", "none").style("border-radius", "20px").style("padding", "10px 15px").on("click", async () => {
|
|
239
|
+
if (!term.name || !term.gene) {
|
|
240
|
+
sayerror(holder, "Missing first gene. Please provide a valid gene.");
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (!term2.name || !term2.gene) {
|
|
244
|
+
sayerror(holder, "Missing second gene. Please provide a valid gene.");
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const config = this.makeConfig({
|
|
248
|
+
chartType: "summary",
|
|
249
|
+
term: { term: this.makeTerm(term) },
|
|
250
|
+
term2: { term: this.makeTerm(term2) }
|
|
251
|
+
});
|
|
252
|
+
await this.dispatchEdits(config);
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
// /** Render the GeneSetEdit UI for selection and then
|
|
256
|
+
// * launch the hierarchical clustering on submit.*/
|
|
257
|
+
renderGeneMultiSelect(tab) {
|
|
258
|
+
const holder = tab.contentHolder.style("padding", "10px");
|
|
259
|
+
const grpWrapper = holder.append("div").style("padding", "10px");
|
|
260
|
+
grpWrapper.append("span").style("font-weight", "bold").text("Group name:");
|
|
261
|
+
let customName = "New custom group";
|
|
262
|
+
const input = grpWrapper.append("input").style("margin", "2px 5px").style("width", "210px").attr("placeholder", "Group Name").on("input", () => {
|
|
263
|
+
customName = input.property("value");
|
|
264
|
+
});
|
|
265
|
+
new GeneSetEditUI({
|
|
266
|
+
holder: holder.append("div"),
|
|
267
|
+
/** running hier clustering and the editing group
|
|
268
|
+
* is the group used for clustering pass this mode
|
|
269
|
+
* value to inform ui to support the optional button
|
|
270
|
+
* "top variably exp gene" this is hardcoded for
|
|
271
|
+
* the purpose of gene expression and should be improved. */
|
|
272
|
+
genome: this.genome,
|
|
273
|
+
mode: "geneExpression",
|
|
274
|
+
vocabApi: this.app.vocabApi,
|
|
275
|
+
callback: async ({ geneList, name }) => {
|
|
276
|
+
if (geneList.length <= 2) {
|
|
277
|
+
return alert("At least three genes are required for hierarchical clustering. Please select more genes.");
|
|
278
|
+
}
|
|
279
|
+
const group = {
|
|
280
|
+
name: name || customName,
|
|
281
|
+
lst: [],
|
|
282
|
+
type: "hierCluster"
|
|
283
|
+
};
|
|
284
|
+
const tws = await Promise.all(
|
|
285
|
+
geneList.map((d) => {
|
|
286
|
+
const gene = d.symbol || d.gene;
|
|
287
|
+
const name2 = `${gene} ${this.unit}`;
|
|
288
|
+
const term = this.makeTerm({ gene, name: name2 });
|
|
289
|
+
return { term, q: {} };
|
|
290
|
+
})
|
|
291
|
+
);
|
|
292
|
+
group.lst = [...tws];
|
|
293
|
+
const config = this.makeConfig({
|
|
294
|
+
chartType: "hierCluster",
|
|
295
|
+
termgroups: [group],
|
|
296
|
+
//TODO: Need to allow singleCellGeneExpression as well
|
|
297
|
+
dataType: GENE_EXPRESSION
|
|
298
|
+
});
|
|
299
|
+
await this.dispatchEdits(config);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
async renderSSGSEA(tab) {
|
|
304
|
+
const holder = tab.contentHolder.style("padding", "10px");
|
|
305
|
+
const _ = await import("./ssGSEA-THW4WFMI.js");
|
|
306
|
+
const searchHandler = new _.SearchHandler();
|
|
307
|
+
await searchHandler.init({
|
|
308
|
+
holder,
|
|
309
|
+
app: this.app,
|
|
310
|
+
genomeObj: this.genome,
|
|
311
|
+
callback: async (term) => {
|
|
312
|
+
const config = this.makeConfig({
|
|
313
|
+
chartType: "summary",
|
|
314
|
+
term: { term }
|
|
315
|
+
});
|
|
316
|
+
await this.dispatchEdits(config);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
async initSubplotInTab(subplot) {
|
|
321
|
+
const holder = this.tabs.find((tab) => tab.chartType === subplot.chartType)?.contentHolder;
|
|
322
|
+
if (!holder) throw new Error(`No tab found for chart type ${subplot.chartType}`);
|
|
323
|
+
const opts = Object.assign({}, subplot, {
|
|
324
|
+
holder,
|
|
325
|
+
app: this.app,
|
|
326
|
+
parentId: this.id,
|
|
327
|
+
id: subplot.id
|
|
328
|
+
});
|
|
329
|
+
const { componentInit: componentInit2 } = await importPlot(opts.chartType);
|
|
330
|
+
this.components.plots[subplot.id] = await componentInit2(opts);
|
|
331
|
+
}
|
|
332
|
+
async dispatchEdits(config) {
|
|
333
|
+
await this.app.dispatch({
|
|
334
|
+
type: "app_refresh",
|
|
335
|
+
subactions: [
|
|
336
|
+
{
|
|
337
|
+
type: "plot_create",
|
|
338
|
+
config
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
type: "plot_delete",
|
|
342
|
+
id: this.id
|
|
343
|
+
}
|
|
344
|
+
]
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
var geneExpInputInit = getCompInit(GeneExpInput);
|
|
349
|
+
var componentInit = geneExpInputInit;
|
|
350
|
+
var enabledTermTypes = /* @__PURE__ */ new Set([GENE_EXPRESSION, SINGLECELL_GENE_EXPRESSION]);
|
|
351
|
+
function getPlotConfig(opts) {
|
|
352
|
+
if (!opts?.termType) throw new Error("termType is required in opts");
|
|
353
|
+
if (!enabledTermTypes.has(opts.termType)) throw new Error(`Invalid termType: ${opts.termType}`);
|
|
354
|
+
const config = {
|
|
355
|
+
chartType: "GeneExpInput",
|
|
356
|
+
termType: opts.termType,
|
|
357
|
+
hidePlotFilter: true
|
|
358
|
+
};
|
|
359
|
+
return copyMerge(config, opts);
|
|
360
|
+
}
|
|
361
|
+
export {
|
|
362
|
+
GeneExpInput,
|
|
363
|
+
componentInit,
|
|
364
|
+
geneExpInputInit,
|
|
365
|
+
getPlotConfig
|
|
366
|
+
};
|
|
367
|
+
//# sourceMappingURL=GeneExpInput-JDU6EI7K.js.map
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {
|
|
2
|
+
renderGeomap
|
|
3
|
+
} from "./chunk-ZNEJUKJW.js";
|
|
4
|
+
import {
|
|
5
|
+
PlotBase
|
|
6
|
+
} from "./chunk-5VOPABBA.js";
|
|
7
|
+
import "./chunk-HJ6L54YS.js";
|
|
8
|
+
import "./chunk-LSEFWW72.js";
|
|
9
|
+
import "./chunk-Z5U6HOE4.js";
|
|
10
|
+
import {
|
|
11
|
+
Menu
|
|
12
|
+
} from "./chunk-HYOEWQ5P.js";
|
|
13
|
+
import "./chunk-HBW42TDT.js";
|
|
14
|
+
import "./chunk-FN5XPUPH.js";
|
|
15
|
+
import "./chunk-5ABGFJSP.js";
|
|
16
|
+
import "./chunk-IIT367QZ.js";
|
|
17
|
+
import "./chunk-RZGEKL77.js";
|
|
18
|
+
import "./chunk-XPY6AWXO.js";
|
|
19
|
+
import "./chunk-NELOT3NJ.js";
|
|
20
|
+
import "./chunk-M6EF3WVV.js";
|
|
21
|
+
import "./chunk-7IYJZZQI.js";
|
|
22
|
+
import {
|
|
23
|
+
copyMerge,
|
|
24
|
+
getCompInit
|
|
25
|
+
} from "./chunk-M3J4MINX.js";
|
|
26
|
+
import "./chunk-PF4DSFDR.js";
|
|
27
|
+
import "./chunk-LFCYMSVA.js";
|
|
28
|
+
import "./chunk-I6WR4CG7.js";
|
|
29
|
+
import "./chunk-2X6W4E3W.js";
|
|
30
|
+
import "./chunk-NYRZNRG5.js";
|
|
31
|
+
import "./chunk-JNITUVXP.js";
|
|
32
|
+
import "./chunk-3XVVN66M.js";
|
|
33
|
+
import "./chunk-LOZEKOES.js";
|
|
34
|
+
import "./chunk-VQZ2Z5YU.js";
|
|
35
|
+
import "./chunk-NSTL4MY2.js";
|
|
36
|
+
import "./chunk-TLT4YIG3.js";
|
|
37
|
+
import "./chunk-KYBIQBXE.js";
|
|
38
|
+
import "./chunk-I6Y4O3RR.js";
|
|
39
|
+
import "./chunk-OMR2DT66.js";
|
|
40
|
+
import "./chunk-DQC5FFGV.js";
|
|
41
|
+
import "./chunk-HFNDKYVF.js";
|
|
42
|
+
|
|
43
|
+
// plots/geomap/Geomap.ts
|
|
44
|
+
var Geomap = class _Geomap extends PlotBase {
|
|
45
|
+
static {
|
|
46
|
+
this.type = "geomap";
|
|
47
|
+
}
|
|
48
|
+
constructor(opts, api) {
|
|
49
|
+
super(opts, api);
|
|
50
|
+
this.type = _Geomap.type;
|
|
51
|
+
const holder = opts.holder.append("div").style("padding", "10px");
|
|
52
|
+
this.dom = {
|
|
53
|
+
holder,
|
|
54
|
+
header: opts.header,
|
|
55
|
+
controls: opts.controls,
|
|
56
|
+
tip: new Menu({ padding: "9px 11px" })
|
|
57
|
+
};
|
|
58
|
+
if (this.dom.header) this.dom.header.html("Site Map");
|
|
59
|
+
}
|
|
60
|
+
getState(appState) {
|
|
61
|
+
const config = appState.plots.find((p) => p.id === this.id);
|
|
62
|
+
if (!config) throw `No plot with id='${this.id}' found`;
|
|
63
|
+
return { config };
|
|
64
|
+
}
|
|
65
|
+
reactsTo(action) {
|
|
66
|
+
if (action.type.startsWith("plot_")) return action.id === this.id;
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
async main() {
|
|
70
|
+
const geomap = this.state.config.geomap;
|
|
71
|
+
renderGeomap(this.dom.holder, geomap, this.dom.tip);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var componentInit = getCompInit(Geomap);
|
|
75
|
+
async function getPlotConfig(opts, app) {
|
|
76
|
+
const fromDs = app?.vocabApi?.termdbConfig?.geomap;
|
|
77
|
+
const config = {
|
|
78
|
+
chartType: "geomap",
|
|
79
|
+
// the map is not filtered by dictionary terms, so hide the per-plot filter UI
|
|
80
|
+
hidePlotFilter: true,
|
|
81
|
+
geomap: fromDs ? structuredClone(fromDs) : { sites: [] }
|
|
82
|
+
};
|
|
83
|
+
return copyMerge(config, opts);
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
componentInit,
|
|
87
|
+
getPlotConfig
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=Geomap-J763OK2F.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../plots/geomap/Geomap.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MassState, BasePlotConfig, MassAppApi } from '#mass/types/mass'\nimport type { GeomapConfig } from '#types'\nimport type { Elem, Div } from '../../types/d3.d'\nimport { getCompInit, copyMerge, type RxComponent, type ComponentApi } from '#rx'\nimport { PlotBase } from '../PlotBase'\nimport { Menu } from '#dom'\nimport { renderGeomap } from './render'\n\ntype GeomapDom = {\n\tholder: Div\n\theader?: Elem\n\tcontrols?: Elem\n\ttip: Menu\n}\n\nclass Geomap extends PlotBase implements RxComponent {\n\tstatic type = 'geomap'\n\ttype: string\n\tdom: GeomapDom\n\n\tconstructor(opts: { holder: Div; header?: Elem; controls?: Elem }, api: ComponentApi) {\n\t\tsuper(opts, api)\n\t\tthis.type = Geomap.type\n\t\tconst holder = opts.holder.append('div').style('padding', '10px')\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\theader: opts.header,\n\t\t\tcontrols: opts.controls,\n\t\t\ttip: new Menu({ padding: '9px 11px' })\n\t\t}\n\t\tif (this.dom.header) this.dom.header.html('Site Map')\n\t}\n\n\tgetState(appState: MassState) {\n\t\tconst config = appState.plots.find((p: BasePlotConfig) => p.id === this.id)\n\t\tif (!config) throw `No plot with id='${this.id}' found`\n\t\treturn { config }\n\t}\n\n\treactsTo(action: { type: string; id?: string }) {\n\t\tif (action.type.startsWith('plot_')) return action.id === this.id\n\t\treturn true\n\t}\n\n\tasync main() {\n\t\tconst geomap: GeomapConfig | undefined = this.state.config.geomap\n\t\trenderGeomap(this.dom.holder, geomap, this.dom.tip)\n\t}\n}\n\nexport const componentInit = getCompInit(Geomap)\n\nexport async function getPlotConfig(opts: { geomap?: GeomapConfig }, app: MassAppApi) {\n\t// seed locations from the dataset-provided termdbConfig.geomap when the launcher\n\t// (chart catalog) passes only { chartType:'geomap' }\n\tconst fromDs: GeomapConfig | undefined = app?.vocabApi?.termdbConfig?.geomap\n\tconst config = {\n\t\tchartType: 'geomap',\n\t\t// the map is not filtered by dictionary terms, so hide the per-plot filter UI\n\t\thidePlotFilter: true,\n\t\tgeomap: fromDs ? structuredClone(fromDs) : { sites: [] }\n\t}\n\treturn copyMerge(config, opts)\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,SAAN,MAAM,gBAAe,SAAgC;AAAA,EACpD;AAAA,SAAO,OAAO;AAAA;AAAA,EAId,YAAY,MAAuD,KAAmB;AACrF,UAAM,MAAM,GAAG;AACf,SAAK,OAAO,QAAO;AACnB,UAAM,SAAS,KAAK,OAAO,OAAO,KAAK,EAAE,MAAM,WAAW,MAAM;AAChE,SAAK,MAAM;AAAA,MACV;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,MACf,KAAK,IAAI,KAAK,EAAE,SAAS,WAAW,CAAC;AAAA,IACtC;AACA,QAAI,KAAK,IAAI,OAAQ,MAAK,IAAI,OAAO,KAAK,UAAU;AAAA,EACrD;AAAA,EAEA,SAAS,UAAqB;AAC7B,UAAM,SAAS,SAAS,MAAM,KAAK,CAAC,MAAsB,EAAE,OAAO,KAAK,EAAE;AAC1E,QAAI,CAAC,OAAQ,OAAM,oBAAoB,KAAK,EAAE;AAC9C,WAAO,EAAE,OAAO;AAAA,EACjB;AAAA,EAEA,SAAS,QAAuC;AAC/C,QAAI,OAAO,KAAK,WAAW,OAAO,EAAG,QAAO,OAAO,OAAO,KAAK;AAC/D,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAAO;AACZ,UAAM,SAAmC,KAAK,MAAM,OAAO;AAC3D,iBAAa,KAAK,IAAI,QAAQ,QAAQ,KAAK,IAAI,GAAG;AAAA,EACnD;AACD;AAEO,IAAM,gBAAgB,YAAY,MAAM;AAE/C,eAAsB,cAAc,MAAiC,KAAiB;AAGrF,QAAM,SAAmC,KAAK,UAAU,cAAc;AACtE,QAAM,SAAS;AAAA,IACd,WAAW;AAAA;AAAA,IAEX,gBAAgB;AAAA,IAChB,QAAQ,SAAS,gBAAgB,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE;AAAA,EACxD;AACA,SAAO,UAAU,QAAQ,IAAI;AAC9B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|