@sjcrh/proteinpaint-client 2.187.0 → 2.188.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.
Files changed (963) hide show
  1. package/dist/2dmaf-6YIEXAIG.js +1372 -0
  2. package/dist/AIProjectAdmin-5K5NIQNT.js +828 -0
  3. package/dist/AppHeader-4SN5M6SZ.js +834 -0
  4. package/dist/BoxPlot-DBJA6TQF.js +1218 -0
  5. package/dist/CorrelationVolcano-MDMTMTT5.js +618 -0
  6. package/dist/DE-S5AFNI4I.js +94 -0
  7. package/dist/DEinput-XVBBA74N.js +300 -0
  8. package/dist/DifferentialAnalysis-TUBGPAB2.js +244 -0
  9. package/dist/DifferentialAnalysis-TUBGPAB2.js.map +7 -0
  10. package/dist/Disco-VV7FQ7WW.js +3236 -0
  11. package/dist/Disco.UI-JDJFJFEY.js +244 -0
  12. package/dist/DmrPlot-XOG67W74.js +641 -0
  13. package/dist/GB-K3AWZQFF.js +1129 -0
  14. package/dist/GeneExpInput-Y7MDS2CA.js +365 -0
  15. package/dist/HicApp-53OTZ3YU.js +2249 -0
  16. package/dist/NumBinaryEditor-SB4YR3JM.js +269 -0
  17. package/dist/NumBinaryEditor.unit.spec-V2W2OZYP.js +285 -0
  18. package/dist/NumContEditor-RZZBM7PR.js +106 -0
  19. package/dist/NumContEditor.unit.spec-GAAW3ZZN.js +168 -0
  20. package/dist/NumCustomBinEditor-GFCGPRPI.js +37 -0
  21. package/dist/NumCustomBinEditor.unit.spec-24MXSO3L.js +283 -0
  22. package/dist/NumDiscreteEditor-HAHIOFNC.js +178 -0
  23. package/dist/NumDiscreteEditor.unit.spec-JYN2CWSI.js +201 -0
  24. package/dist/NumRegularBinEditor-7DOE64RB.js +37 -0
  25. package/dist/NumRegularBinEditor.unit.spec-2WU4GGNT.js +226 -0
  26. package/dist/NumSplineEditor-JLRD5TVX.js +191 -0
  27. package/dist/NumSplineEditor.unit.spec-LOG7CECJ.js +198 -0
  28. package/dist/NumericDensity-IDOP7I34.js +37 -0
  29. package/dist/NumericDensity.unit.spec-HTJQRPVH.js +220 -0
  30. package/dist/NumericHandler-DWVVGLLB.js +38 -0
  31. package/dist/NumericHandler.unit.spec-BDDFTHOF.js +218 -0
  32. package/dist/ProteomeInput-PK4ZM3SZ.js +395 -0
  33. package/dist/ProteomeInput-PK4ZM3SZ.js.map +7 -0
  34. package/dist/RunChart2-PBJ56YX3.js +757 -0
  35. package/dist/SC-UC3HP2MY.js +830 -0
  36. package/dist/SC-UC3HP2MY.js.map +7 -0
  37. package/dist/Volcano-BZJCA53R.js +1314 -0
  38. package/dist/Volcano-BZJCA53R.js.map +7 -0
  39. package/dist/WSIViewer-OHOP2DZT.js +48475 -0
  40. package/dist/WSIViewer-OHOP2DZT.js.map +7 -0
  41. package/dist/WsiSamplesPlot-FOMPMEXK.js +164 -0
  42. package/dist/adSandbox-SRPPCYYR.js +37 -0
  43. package/dist/alphaGenome-IS2WAJCK.js +174 -0
  44. package/dist/app-GTHYSGWI.js +36 -0
  45. package/dist/app-XEKETNLG.js +48 -0
  46. package/dist/app.js +20 -20
  47. package/dist/bam-GQBFL6A7.js +859 -0
  48. package/dist/barchart-AESC4JSX.js +46 -0
  49. package/dist/barchart.data-RE34IC4G.js +22 -0
  50. package/dist/barchart.events-KM4J5ISO.js +46 -0
  51. package/dist/barchart.integration.spec-DFVSBGO3.js +1676 -0
  52. package/dist/barchart2-NNTL4RQZ.js +310 -0
  53. package/dist/block-EHZM3FUX.js +6201 -0
  54. package/dist/block.init-EAEFNNF6.js +37 -0
  55. package/dist/block.mds.expressionrank-ZBHA2CFE.js +358 -0
  56. package/dist/block.mds.geneboxplot-4ZU3QUAK.js +827 -0
  57. package/dist/block.mds.junction-PDH55JXO.js +1544 -0
  58. package/dist/block.mds.svcnv-QWBU54XQ.js +6800 -0
  59. package/dist/block.svg-HUGBYWXU.js +163 -0
  60. package/dist/block.tk.aicheck-SDCWXQZF.js +282 -0
  61. package/dist/block.tk.ase-HMUTHCJS.js +364 -0
  62. package/dist/block.tk.bam-Q7B2YQLI.js +1905 -0
  63. package/dist/block.tk.bedgraphdot-QBGBSVHN.js +383 -0
  64. package/dist/block.tk.bigwig.ui-767A3MUH.js +211 -0
  65. package/dist/block.tk.hicstraw-LEZUZHLF.js +822 -0
  66. package/dist/block.tk.junction-GQHCZOYR.js +2363 -0
  67. package/dist/block.tk.junction.textmatrixui-D5QUO7KQ.js +198 -0
  68. package/dist/block.tk.ld-E3MHZOG5.js +98 -0
  69. package/dist/block.tk.menu-XE7PFYGR.js +1028 -0
  70. package/dist/block.tk.pgv-MPPMPDED.js +943 -0
  71. package/dist/brainImaging-YQ443NOL.js +422 -0
  72. package/dist/chunk-26WXJBSR.js +228 -0
  73. package/dist/chunk-2P6Z7JFC.js +119 -0
  74. package/dist/chunk-2QQO4RRD.js +2681 -0
  75. package/dist/chunk-2T7VYQLY.js +281 -0
  76. package/dist/chunk-2T7VYQLY.js.map +7 -0
  77. package/dist/chunk-2XPDA6NL.js +20652 -0
  78. package/dist/chunk-2XPDA6NL.js.map +7 -0
  79. package/dist/chunk-37ARSZOI.js +2815 -0
  80. package/dist/chunk-42Q53PXE.js +381 -0
  81. package/dist/chunk-46ASPS5Y.js +386 -0
  82. package/dist/chunk-4KPI7PB5.js +142 -0
  83. package/dist/chunk-4MDNMCGZ.js +102 -0
  84. package/dist/chunk-5IG3E4DT.js +272 -0
  85. package/dist/chunk-5MIR7IHI.js +52 -0
  86. package/dist/chunk-5MZVXJVA.js +55 -0
  87. package/dist/chunk-66D5GRS5.js +263 -0
  88. package/dist/chunk-6ATE2TRC.js +534 -0
  89. package/dist/chunk-6BFR6MK3.js +158 -0
  90. package/dist/chunk-6NJMCO4X.js +335 -0
  91. package/dist/chunk-6ON5KAMO.js +54 -0
  92. package/dist/chunk-76GPYMHZ.js +102 -0
  93. package/dist/chunk-7AAFBFOH.js +147 -0
  94. package/dist/chunk-7OOZHEUC.js +302 -0
  95. package/dist/chunk-A4VLWLYF.js +226 -0
  96. package/dist/chunk-A6EFWGWD.js +444 -0
  97. package/dist/chunk-ALW5XXVW.js +170 -0
  98. package/dist/chunk-ANCT2BGO.js +34 -0
  99. package/dist/chunk-AROMXWCY.js +291 -0
  100. package/dist/chunk-AY4UBGLC.js +815 -0
  101. package/dist/chunk-B43MTEYB.js +84 -0
  102. package/dist/chunk-B43MTEYB.js.map +7 -0
  103. package/dist/chunk-BMVLR3TM.js +1210 -0
  104. package/dist/chunk-BR7JA2EO.js +621 -0
  105. package/dist/chunk-C3SYSMNE.js +42 -0
  106. package/dist/chunk-C3SYSMNE.js.map +7 -0
  107. package/dist/chunk-D3HJXMTH.js +17 -0
  108. package/dist/chunk-DKUEZ4XD.js +205 -0
  109. package/dist/chunk-DT3MMC5U.js +31 -0
  110. package/dist/chunk-DYVKN7EE.js +5000 -0
  111. package/dist/chunk-EF37UZY6.js +37 -0
  112. package/dist/chunk-ESXMS7FW.js +229 -0
  113. package/dist/chunk-FDK4UJMN.js +263 -0
  114. package/dist/chunk-FDK4UJMN.js.map +7 -0
  115. package/dist/chunk-FUSVXQ6C.js +368 -0
  116. package/dist/chunk-G7JRRTS5.js +170 -0
  117. package/dist/chunk-G7JRRTS5.js.map +7 -0
  118. package/dist/chunk-GHWHLSUX.js +192 -0
  119. package/dist/chunk-GHWHLSUX.js.map +7 -0
  120. package/dist/chunk-GXKVAPGP.js +2786 -0
  121. package/dist/chunk-H4JIENLQ.js +39 -0
  122. package/dist/chunk-H7YJG4YM.js +470 -0
  123. package/dist/chunk-I24KPIDD.js +148 -0
  124. package/dist/chunk-IENFDUWD.js +203 -0
  125. package/dist/chunk-IKHIY6IZ.js +2327 -0
  126. package/dist/chunk-IKHIY6IZ.js.map +7 -0
  127. package/dist/chunk-J7BISJTL.js +50 -0
  128. package/dist/chunk-J7KYOSEK.js +824 -0
  129. package/dist/chunk-JGPZ5254.js +371 -0
  130. package/dist/chunk-JUIPCWAM.js +194 -0
  131. package/dist/chunk-LO4NMQ7W.js +293 -0
  132. package/dist/chunk-LSSLS5HV.js +95 -0
  133. package/dist/chunk-MDLRB3MR.js +407 -0
  134. package/dist/chunk-MJLKGZ27.js +129 -0
  135. package/dist/chunk-MYWJQRTD.js +1849 -0
  136. package/dist/chunk-MYWJQRTD.js.map +7 -0
  137. package/dist/chunk-NL5T3SBK.js +4209 -0
  138. package/dist/chunk-NMBIT4IK.js +46 -0
  139. package/dist/chunk-NMBIT4IK.js.map +7 -0
  140. package/dist/chunk-ONAYJVN2.js +217 -0
  141. package/dist/chunk-PP7K4R2E.js +141 -0
  142. package/dist/chunk-PP7K4R2E.js.map +7 -0
  143. package/dist/chunk-PSMFOARZ.js +14 -0
  144. package/dist/chunk-QX3GF2IA.js +514 -0
  145. package/dist/chunk-QZ2U4BOS.js +1159 -0
  146. package/dist/chunk-RBZBBNLL.js +1087 -0
  147. package/dist/chunk-RQ2ZJ66W.js +276 -0
  148. package/dist/chunk-RQ2ZJ66W.js.map +7 -0
  149. package/dist/chunk-RZTFQXWV.js +117 -0
  150. package/dist/chunk-SJC2C77V.js +177 -0
  151. package/dist/chunk-THUXB7EE.js +698 -0
  152. package/dist/chunk-THUXB7EE.js.map +7 -0
  153. package/dist/chunk-TVXVP4M6.js +215 -0
  154. package/dist/chunk-UTDPKDIY.js +482 -0
  155. package/dist/chunk-UVIUB7QI.js +280 -0
  156. package/dist/chunk-VAUSRBL5.js +6364 -0
  157. package/dist/chunk-VP3IZVQA.js +54 -0
  158. package/dist/chunk-VP3IZVQA.js.map +7 -0
  159. package/dist/chunk-WP22GYZ2.js +446 -0
  160. package/dist/chunk-WUNX3VST.js +1271 -0
  161. package/dist/chunk-X7GDCYND.js +1561 -0
  162. package/dist/chunk-X7GDCYND.js.map +7 -0
  163. package/dist/chunk-XB3V6S2X.js +1230 -0
  164. package/dist/chunk-XB3V6S2X.js.map +7 -0
  165. package/dist/chunk-XD4TBJK2.js +455 -0
  166. package/dist/chunk-Y6DSXMPB.js +121 -0
  167. package/dist/chunk-YBIZRASR.js +252 -0
  168. package/dist/chunk-YI2YH7ZK.js +158 -0
  169. package/dist/chunk-YLDE3PVC.js +1943 -0
  170. package/dist/chunk-Z736NYXL.js +26 -0
  171. package/dist/chunk-ZEJB7CPC.js +95 -0
  172. package/dist/chunk-ZGWEBKZ4.js +100 -0
  173. package/dist/condition-FSF6ROJV.js +331 -0
  174. package/dist/controls-OPSBFDFZ.js +40 -0
  175. package/dist/controls.config-3QRV5363.js +38 -0
  176. package/dist/correlation-WLOI7Z35.js +97 -0
  177. package/dist/cuminc-G2UGJUUA.js +1148 -0
  178. package/dist/cuminc.integration.spec-X5NEZ6S5.js +677 -0
  179. package/dist/customdata.inputui-RNW3AO3Z.js +288 -0
  180. package/dist/dataDownload-4U3TGDMH.js +329 -0
  181. package/dist/dataDownload.integration.spec-6FUI2SJ4.js +192 -0
  182. package/dist/databrowser.ui-4GVJVJWG.js +432 -0
  183. package/dist/dictionary-NSDS7Z4K.js +110 -0
  184. package/dist/dnaMethylation-OYQB75LD.js +37 -0
  185. package/dist/dnaMethylation.integration.spec-6TTLV34N.js +202 -0
  186. package/dist/dofetch-4TO3QMT6.js +50 -0
  187. package/dist/e2pca-NYBVR6PL.js +349 -0
  188. package/dist/ep-RTDVEA4D.js +1255 -0
  189. package/dist/expclust.gdc.spec-JVIRESTP.js +306 -0
  190. package/dist/facet-OVBF2QMO.js +520 -0
  191. package/dist/forms2-HTLS54CX.js +533 -0
  192. package/dist/gb-Y3546HMZ.js +87 -0
  193. package/dist/geneExpClustering-PH3PWH3K.js +248 -0
  194. package/dist/geneExpression-2Z2EV3XM.js +37 -0
  195. package/dist/geneExpression-6CFXOCGW.js +312 -0
  196. package/dist/geneExpression.unit.spec-WKUTHRHC.js +101 -0
  197. package/dist/geneORA-SHLZESLB.js +277 -0
  198. package/dist/geneVariant-FHZUIFPM.js +38 -0
  199. package/dist/geneVariant-Y7ZUBEOX.js +40 -0
  200. package/dist/geneVariant.integration.spec-N7TZUOY3.js +197 -0
  201. package/dist/genefusion.ui-7PDVZPZ2.js +308 -0
  202. package/dist/geneset-HLVOGYUI.js +202 -0
  203. package/dist/genomeBrowser.spec-7IVIMUR5.js +280 -0
  204. package/dist/grin2-2GNWIYFU.js +845 -0
  205. package/dist/grin2-2GNWIYFU.js.map +7 -0
  206. package/dist/grin2-Z5O7254R.js +1555 -0
  207. package/dist/gsea-TFC3MBRW.js +46 -0
  208. package/dist/hierCluster-ERSE5I4I.js +62 -0
  209. package/dist/hierCluster-QQZQU5ZG.js +58 -0
  210. package/dist/hierCluster.config-WPINWW37.js +39 -0
  211. package/dist/hierCluster.integration.spec-Y6OHSKPW.js +394 -0
  212. package/dist/hierCluster.interactivity-HS3G5QC5.js +53 -0
  213. package/dist/hierCluster.renderers-W63ZKZTT.js +21 -0
  214. package/dist/imagePlot-QFVN25PM.js +162 -0
  215. package/dist/importPlot-MIDM5APH.js +8 -0
  216. package/dist/isoformExpression-L4TRNT4A.js +39 -0
  217. package/dist/isoformExpression.unit.spec-QQG323LA.js +207 -0
  218. package/dist/launch.adhoc-4NQ6GGGL.js +41 -0
  219. package/dist/leftlabel.sample-JU7AIPZL.js +259 -0
  220. package/dist/legacyDataset-TT4CHF23.js +119 -0
  221. package/dist/lollipop-JG74M6PJ.js +170 -0
  222. package/dist/maf-PDL2EGHI.js +451 -0
  223. package/dist/maftimeline-V43NQEEE.js +592 -0
  224. package/dist/matrix-EB2EFP4S.js +57 -0
  225. package/dist/matrix-Q57FU5FE.js +62 -0
  226. package/dist/matrix.cells-NJIMPD32.js +28 -0
  227. package/dist/matrix.config-GLDEQD3H.js +40 -0
  228. package/dist/matrix.data-6SHAKOQU.js +25 -0
  229. package/dist/matrix.groups-MTDEANQA.js +26 -0
  230. package/dist/matrix.integration.spec-JCZ5VQJU.js +3071 -0
  231. package/dist/matrix.interactivity-SVRNWL6V.js +41 -0
  232. package/dist/matrix.layout-2HREO42N.js +43 -0
  233. package/dist/matrix.legend-QHVKT3MP.js +22 -0
  234. package/dist/matrix.renderers-IYR3ZY6V.js +37 -0
  235. package/dist/matrix.serieses-2VMTQXL2.js +21 -0
  236. package/dist/matrix.sort-PWA2RQQR.js +27 -0
  237. package/dist/matrix.sort.unit.spec-3OYIPTFY.js +471 -0
  238. package/dist/matrix.sorterUi-Y5QLO75X.js +18 -0
  239. package/dist/matrix.sorterUi.unit.spec-BNEXQHLP.js +341 -0
  240. package/dist/mavb-IZDDU4KK.js +731 -0
  241. package/dist/mds.fimo-FWBL7JE6.js +517 -0
  242. package/dist/mds.samplescatterplot-T47C7DJB.js +1549 -0
  243. package/dist/mds.survivalplot-MFZJCGS6.js +482 -0
  244. package/dist/numericDictTermCluster-I2W67RGA.js +72 -0
  245. package/dist/oncomatrix-6W7IBAED.js +294 -0
  246. package/dist/oncomatrix.spec-CEFH5IGH.js +447 -0
  247. package/dist/plot.2dvaf-BN6CFLNU.js +376 -0
  248. package/dist/plot.app-7EYWUCZV.js +40 -0
  249. package/dist/plot.barplot-MDIARSQD.js +101 -0
  250. package/dist/plot.boxplot-RUHGXC54.js +151 -0
  251. package/dist/plot.brainImaging-JEE32ZBV.js +51 -0
  252. package/dist/plot.disco-2RPNPX6E.js +101 -0
  253. package/dist/plot.dzi-7VTYYGGW.js +33 -0
  254. package/dist/plot.ssgq-FHE5KU5C.js +138 -0
  255. package/dist/plot.vaf2cov-WDJJM5Q4.js +258 -0
  256. package/dist/plot.wsi-FQZWHNSF.js +36 -0
  257. package/dist/polar-M7EGINN4.js +185 -0
  258. package/dist/polar2-JFYY43K2.js +227 -0
  259. package/dist/profile.spec-SIOHASOX.js +79 -0
  260. package/dist/profileBarchart-6JLEKVJV.js +266 -0
  261. package/dist/profileForms-G6CH73RV.js +440 -0
  262. package/dist/profilePlot-NQYJOBVV.js +53 -0
  263. package/dist/profileRadar-4TNWIXDB.js +262 -0
  264. package/dist/profileRadarFacility-XPH3LCBQ.js +262 -0
  265. package/dist/proteinView-OZLHO45J.js +1222 -0
  266. package/dist/proteinView-OZLHO45J.js.map +7 -0
  267. package/dist/proteomeAbundance-NQ4635NL.js +12 -0
  268. package/dist/proteomeAbundance-OV24UTZN.js +59 -0
  269. package/dist/proteomeAbundance-OV24UTZN.js.map +7 -0
  270. package/dist/qualitative-DL4WJG3O.js +42 -0
  271. package/dist/radar2-YNOQWHBT.js +315 -0
  272. package/dist/radarFacility2-24UPSI7S.js +324 -0
  273. package/dist/regression-URAUTLTD.js +55 -0
  274. package/dist/regression.inputs-UDVOU7FB.js +47 -0
  275. package/dist/regression.inputs.term-BWW6W34R.js +47 -0
  276. package/dist/regression.inputs.values.table-UKGIZTXG.js +44 -0
  277. package/dist/regression.integration.spec-EBHQTNA3.js +783 -0
  278. package/dist/regression.results-XTOSWIP6.js +39 -0
  279. package/dist/regression.spec-KG2I53VR.js +707 -0
  280. package/dist/report-KH7SNPVF.js +221 -0
  281. package/dist/sampleScatter.spec-PIXGS3LG.js +201 -0
  282. package/dist/sampleView-TWS6VT55.js +47 -0
  283. package/dist/samplelst-6AB5Y4WR.js +110 -0
  284. package/dist/samplematrix-AJAF555E.js +2197 -0
  285. package/dist/sc-PMNYZKXA.js +85 -0
  286. package/dist/scatter-Q2GH3ZJD.js +801 -0
  287. package/dist/scatter.integration.spec-SMMYKWH3.js +1195 -0
  288. package/dist/selectGenomeWithTklst-VE4SDYY7.js +133 -0
  289. package/dist/singleCellCellType-S324GCKW.js +37 -0
  290. package/dist/singleCellCellType.unit.spec-NXC2GELH.js +159 -0
  291. package/dist/singleCellGeneExpression-6H4HRKIA.js +37 -0
  292. package/dist/singleCellGeneExpression.unit.spec-HIJXVUWJ.js +152 -0
  293. package/dist/singleCellPlot-H7PCZ2DP.js +52 -0
  294. package/dist/singlecell-4LH3MQVL.js +85 -0
  295. package/dist/singlecell-MOSYT3RI.js +1571 -0
  296. package/dist/snp-IKLGTD4Q.js +37 -0
  297. package/dist/snp.unit.spec-GC74MUVM.js +175 -0
  298. package/dist/snplocus-RIABFSBQ.js +207 -0
  299. package/dist/spliceevent.a53ss.diagram-4E2IYYHL.js +150 -0
  300. package/dist/spliceevent.exonskip.diagram-C56R6XLQ.js +276 -0
  301. package/dist/spliceevent.noeventdiagram-SIPMAKXI.js +459 -0
  302. package/dist/ssGSEA-5QNHLSOI.js +37 -0
  303. package/dist/ssGSEA.unit.spec-KVPN553B.js +87 -0
  304. package/dist/summarizeCnvGeneexp-K4VGJSW6.js +162 -0
  305. package/dist/summarizeGeneexpSurvival-HGHX65FN.js +107 -0
  306. package/dist/summarizeMutationCnv-3K4Z6R2X.js +163 -0
  307. package/dist/summarizeMutationDiagnosis-M2MHUPRT.js +39 -0
  308. package/dist/summarizeMutationSurvival-WVBUP3GA.js +98 -0
  309. package/dist/summary-RZHZXCU5.js +48 -0
  310. package/dist/summary.integration.spec-FGZP7DY7.js +413 -0
  311. package/dist/summaryInput-UGM7MMCR.js +234 -0
  312. package/dist/sunburst-L27U7LV7.js +283 -0
  313. package/dist/survival-5ZMEBV6O.js +57 -0
  314. package/dist/survival-JWRRGTJT.js +45 -0
  315. package/dist/survival.integration.spec-Z5542I4V.js +801 -0
  316. package/dist/svgraph-O6ZVLNNN.js +1386 -0
  317. package/dist/svmr-ULFV7OSH.js +3841 -0
  318. package/dist/table-CHRQH2GH.js +199 -0
  319. package/dist/termCollection-FAO6ZA6F.js +178 -0
  320. package/dist/termCollection-GBXS3GOY.js +37 -0
  321. package/dist/termCollection.unit.spec-4WRTOV6E.js +207 -0
  322. package/dist/tk-KNUBWRNK.js +45 -0
  323. package/dist/tp.ui-2PPYOQYL.js +1458 -0
  324. package/dist/tvs.density-BZ5SKDQS.js +18 -0
  325. package/dist/tvs.dt-TDNSTGQR.js +38 -0
  326. package/dist/tvs.dtcnv.categorical-P2IGIE4I.js +39 -0
  327. package/dist/tvs.dtcnv.continuous-2XUCRBDR.js +71 -0
  328. package/dist/tvs.dtfusion-PRHZVMOG.js +39 -0
  329. package/dist/tvs.dtsnvindel-KGKBW5JS.js +39 -0
  330. package/dist/tvs.dtsv-M3CY5TZF.js +39 -0
  331. package/dist/tvs.numeric-W74JCC5P.js +21 -0
  332. package/dist/tvs.samplelst-BTWFBBAN.js +103 -0
  333. package/dist/tvs.termCollection-Y64QIKOA.js +158 -0
  334. package/dist/violin-3LLHHV3L.js +45 -0
  335. package/dist/violin.integration.spec-6NF5FDLQ.js +1424 -0
  336. package/dist/violin.interactivity-W2AKZ24D.js +37 -0
  337. package/dist/violin.renderer-CRFYYZRI.js +39 -0
  338. package/dist/vocabulary-AUJOAVYS.js +40 -0
  339. package/package.json +4 -3
  340. package/dist/2dmaf-DTWWXOZC.js +0 -1372
  341. package/dist/AIProjectAdmin-BCYIWOXD.js +0 -828
  342. package/dist/AppHeader-H3L2MRWP.js +0 -834
  343. package/dist/BoxPlot-INZ6IN3V.js +0 -1218
  344. package/dist/CorrelationVolcano-AK3XW4ZH.js +0 -618
  345. package/dist/DE-IBSFUKNG.js +0 -94
  346. package/dist/DEinput-H4GMQWDY.js +0 -300
  347. package/dist/DifferentialAnalysis-3DSL5LQC.js +0 -243
  348. package/dist/DifferentialAnalysis-3DSL5LQC.js.map +0 -7
  349. package/dist/Disco-5PXXMGGQ.js +0 -3236
  350. package/dist/Disco.UI-23LOT2U6.js +0 -244
  351. package/dist/DmrPlot-PBCU2XNF.js +0 -641
  352. package/dist/GB-HIEPWNPV.js +0 -1129
  353. package/dist/GeneExpInput-A4JNX7PU.js +0 -365
  354. package/dist/HicApp-IDH2A4BC.js +0 -2249
  355. package/dist/NumBinaryEditor-CZ54X7J3.js +0 -269
  356. package/dist/NumBinaryEditor.unit.spec-QLBRM7MJ.js +0 -285
  357. package/dist/NumContEditor-Z5MGLQ2I.js +0 -106
  358. package/dist/NumContEditor.unit.spec-TR7D7ULV.js +0 -168
  359. package/dist/NumCustomBinEditor-B7JID42Y.js +0 -37
  360. package/dist/NumCustomBinEditor.unit.spec-GZJIVY4K.js +0 -283
  361. package/dist/NumDiscreteEditor-LWHZ36T6.js +0 -178
  362. package/dist/NumDiscreteEditor.unit.spec-QCQCMEWO.js +0 -201
  363. package/dist/NumRegularBinEditor-IATRIUKD.js +0 -37
  364. package/dist/NumRegularBinEditor.unit.spec-J6UTQO76.js +0 -226
  365. package/dist/NumSplineEditor-2KMU6SRO.js +0 -191
  366. package/dist/NumSplineEditor.unit.spec-MX7Y4MTD.js +0 -198
  367. package/dist/NumericDensity-JCH7F5FV.js +0 -37
  368. package/dist/NumericDensity.unit.spec-4TKKRKHF.js +0 -220
  369. package/dist/NumericHandler-7FB3RJM7.js +0 -38
  370. package/dist/NumericHandler.unit.spec-U6DCADZY.js +0 -218
  371. package/dist/RunChart2-VQTIVMKM.js +0 -757
  372. package/dist/SC-XW272KAP.js +0 -827
  373. package/dist/SC-XW272KAP.js.map +0 -7
  374. package/dist/Volcano-Y4U3L6D2.js +0 -1352
  375. package/dist/Volcano-Y4U3L6D2.js.map +0 -7
  376. package/dist/WSIViewer-UFB7TI2D.js +0 -47972
  377. package/dist/WSIViewer-UFB7TI2D.js.map +0 -7
  378. package/dist/WsiSamplesPlot-2OAR57YB.js +0 -164
  379. package/dist/adSandbox-IKKFYRF7.js +0 -37
  380. package/dist/alphaGenome-WJNFQGGK.js +0 -174
  381. package/dist/app-UHGTFH6D.js +0 -48
  382. package/dist/app-YETYAR45.js +0 -36
  383. package/dist/bam-S6U7VNJP.js +0 -859
  384. package/dist/barchart-3NJDGHXU.js +0 -46
  385. package/dist/barchart.data-MVVKPDLE.js +0 -22
  386. package/dist/barchart.events-WQGA4CGB.js +0 -46
  387. package/dist/barchart.integration.spec-E6CJTWRN.js +0 -1676
  388. package/dist/barchart2-UNHFOYKB.js +0 -310
  389. package/dist/block-2XHZLY26.js +0 -6201
  390. package/dist/block.init-CMG4V6RB.js +0 -37
  391. package/dist/block.mds.expressionrank-QX2JOEMV.js +0 -358
  392. package/dist/block.mds.geneboxplot-USVQSDBT.js +0 -827
  393. package/dist/block.mds.junction-R6GJO75N.js +0 -1544
  394. package/dist/block.mds.svcnv-MRISSDAX.js +0 -6800
  395. package/dist/block.svg-Z5KKZTDB.js +0 -163
  396. package/dist/block.tk.aicheck-SOFJYYZX.js +0 -282
  397. package/dist/block.tk.ase-EHX5FV2Y.js +0 -364
  398. package/dist/block.tk.bam-DJS6LODM.js +0 -1905
  399. package/dist/block.tk.bedgraphdot-R2YHPXZA.js +0 -383
  400. package/dist/block.tk.bigwig.ui-VPEEQJLS.js +0 -211
  401. package/dist/block.tk.hicstraw-BDYN573B.js +0 -822
  402. package/dist/block.tk.junction-BONB4BXU.js +0 -2363
  403. package/dist/block.tk.junction.textmatrixui-Y5R6KY4N.js +0 -198
  404. package/dist/block.tk.ld-EGVVSXCB.js +0 -98
  405. package/dist/block.tk.menu-4YBMB5JT.js +0 -1028
  406. package/dist/block.tk.pgv-SBHGL6UH.js +0 -943
  407. package/dist/brainImaging-G3WZDYG6.js +0 -422
  408. package/dist/chunk-2K5DSRBJ.js +0 -84
  409. package/dist/chunk-2K5DSRBJ.js.map +0 -7
  410. package/dist/chunk-2O6JF76T.js +0 -121
  411. package/dist/chunk-2QULGYVE.js +0 -368
  412. package/dist/chunk-2VLGHVOL.js +0 -215
  413. package/dist/chunk-32TTOWY6.js +0 -1210
  414. package/dist/chunk-43PMSEMV.js +0 -50
  415. package/dist/chunk-4KSU6NBP.js +0 -194
  416. package/dist/chunk-4SFX42S7.js +0 -1271
  417. package/dist/chunk-4Y444IRJ.js +0 -272
  418. package/dist/chunk-56AN5PPQ.js +0 -679
  419. package/dist/chunk-56AN5PPQ.js.map +0 -7
  420. package/dist/chunk-5FO3NKA4.js +0 -155
  421. package/dist/chunk-5FO3NKA4.js.map +0 -7
  422. package/dist/chunk-5HOR6JQ2.js +0 -100
  423. package/dist/chunk-5LZKQFLO.js +0 -180
  424. package/dist/chunk-5LZKQFLO.js.map +0 -7
  425. package/dist/chunk-5RE3J6HK.js +0 -293
  426. package/dist/chunk-5SMOOFRW.js +0 -386
  427. package/dist/chunk-64Z22QAH.js +0 -14
  428. package/dist/chunk-6NMH6WPB.js +0 -446
  429. package/dist/chunk-7FKIAQ4K.js +0 -17
  430. package/dist/chunk-7NOKTEHK.js +0 -407
  431. package/dist/chunk-7UHUOC6F.js +0 -119
  432. package/dist/chunk-AMYSEKPF.js +0 -1658
  433. package/dist/chunk-AMYSEKPF.js.map +0 -7
  434. package/dist/chunk-ANGDY7VC.js +0 -170
  435. package/dist/chunk-AQ4OP4GR.js +0 -39
  436. package/dist/chunk-AQVOYTLS.js +0 -177
  437. package/dist/chunk-ARINZFQG.js +0 -276
  438. package/dist/chunk-ARINZFQG.js.map +0 -7
  439. package/dist/chunk-BQJVLXEL.js +0 -55
  440. package/dist/chunk-BRMASRRS.js +0 -455
  441. package/dist/chunk-BT4OOYPT.js +0 -280
  442. package/dist/chunk-BTJFVY3R.js +0 -190
  443. package/dist/chunk-BTJFVY3R.js.map +0 -7
  444. package/dist/chunk-C62CSWMV.js +0 -335
  445. package/dist/chunk-CAWDQURD.js +0 -6364
  446. package/dist/chunk-DMAHNBGN.js +0 -1230
  447. package/dist/chunk-DMAHNBGN.js.map +0 -7
  448. package/dist/chunk-EGWVYY7K.js +0 -264
  449. package/dist/chunk-EGWVYY7K.js.map +0 -7
  450. package/dist/chunk-ENWVV6EU.js +0 -2681
  451. package/dist/chunk-EPOELG75.js +0 -56
  452. package/dist/chunk-EPOELG75.js.map +0 -7
  453. package/dist/chunk-FA44G3GZ.js +0 -470
  454. package/dist/chunk-GD7FKXOA.js +0 -148
  455. package/dist/chunk-GF4OSOYW.js +0 -2815
  456. package/dist/chunk-GQOBT2W7.js +0 -203
  457. package/dist/chunk-GTBL7UHX.js +0 -2786
  458. package/dist/chunk-HE7CD7BD.js +0 -482
  459. package/dist/chunk-I7JDV4ZC.js +0 -226
  460. package/dist/chunk-IABWKPRK.js +0 -534
  461. package/dist/chunk-IPDH4FHY.js +0 -54
  462. package/dist/chunk-JNOOLCYB.js +0 -1159
  463. package/dist/chunk-JPKYHLNI.js +0 -158
  464. package/dist/chunk-KMQ6GQ3I.js +0 -1943
  465. package/dist/chunk-KTCW3JA6.js +0 -4209
  466. package/dist/chunk-L4QG7XZE.js +0 -46
  467. package/dist/chunk-L4QG7XZE.js.map +0 -7
  468. package/dist/chunk-LGUE54VX.js +0 -302
  469. package/dist/chunk-LJ4AUJXC.js +0 -95
  470. package/dist/chunk-LN3QYBGI.js +0 -20495
  471. package/dist/chunk-LN3QYBGI.js.map +0 -7
  472. package/dist/chunk-LQQSRNR5.js +0 -228
  473. package/dist/chunk-LSV4Z473.js +0 -31
  474. package/dist/chunk-LTSR7SLO.js +0 -514
  475. package/dist/chunk-LY7GD74F.js +0 -381
  476. package/dist/chunk-MHCTLVGE.js +0 -26
  477. package/dist/chunk-MSAMGAQF.js +0 -2370
  478. package/dist/chunk-MSAMGAQF.js.map +0 -7
  479. package/dist/chunk-NYX4B5CO.js +0 -291
  480. package/dist/chunk-OPPNZXYG.js +0 -129
  481. package/dist/chunk-P6TPXUMP.js +0 -117
  482. package/dist/chunk-PL2CM7RY.js +0 -621
  483. package/dist/chunk-PSGQWZN4.js +0 -147
  484. package/dist/chunk-PZLYNNST.js +0 -371
  485. package/dist/chunk-RA4RQYXQ.js +0 -142
  486. package/dist/chunk-RAJZYWFN.js +0 -95
  487. package/dist/chunk-ROLVOPVR.js +0 -252
  488. package/dist/chunk-RQZJIBIH.js +0 -34
  489. package/dist/chunk-RSE2FOKW.js +0 -217
  490. package/dist/chunk-SDLRTORS.js +0 -263
  491. package/dist/chunk-TF4EDNQO.js +0 -158
  492. package/dist/chunk-TV74I3Y5.js +0 -43
  493. package/dist/chunk-TV74I3Y5.js.map +0 -7
  494. package/dist/chunk-UPPBAFUK.js +0 -5000
  495. package/dist/chunk-UVPAZM3G.js +0 -52
  496. package/dist/chunk-UWYCEYML.js +0 -815
  497. package/dist/chunk-VB3SRNBK.js +0 -37
  498. package/dist/chunk-W6XQR5UL.js +0 -444
  499. package/dist/chunk-XBBUQW52.js +0 -824
  500. package/dist/chunk-XSA3VIEQ.js +0 -205
  501. package/dist/chunk-XZ6MGJQ3.js +0 -102
  502. package/dist/chunk-YC6ZJ7RP.js +0 -1842
  503. package/dist/chunk-YC6ZJ7RP.js.map +0 -7
  504. package/dist/chunk-YEMIL6QU.js +0 -1087
  505. package/dist/chunk-ZD47FENE.js +0 -229
  506. package/dist/chunk-ZYBM24FU.js +0 -102
  507. package/dist/chunk-ZYY54HBU.js +0 -330
  508. package/dist/chunk-ZYY54HBU.js.map +0 -7
  509. package/dist/condition-ARCN26MF.js +0 -331
  510. package/dist/controls-PKWN2JGN.js +0 -40
  511. package/dist/controls.config-NFRPXFUJ.js +0 -38
  512. package/dist/correlation-DPT6XL2U.js +0 -97
  513. package/dist/cuminc-M4U7LQD5.js +0 -1148
  514. package/dist/cuminc.integration.spec-MH4OFYDJ.js +0 -677
  515. package/dist/customdata.inputui-6TAHAMSV.js +0 -288
  516. package/dist/dataDownload-7GZEYSUT.js +0 -329
  517. package/dist/dataDownload.integration.spec-NAIJRFTV.js +0 -192
  518. package/dist/databrowser.ui-LLXHZ5O6.js +0 -432
  519. package/dist/dictionary-MUAURMYE.js +0 -110
  520. package/dist/dnaMethylation-AU5D3U3E.js +0 -37
  521. package/dist/dnaMethylation.integration.spec-JIDBRA6P.js +0 -202
  522. package/dist/dofetch-WSYK5OTB.js +0 -50
  523. package/dist/e2pca-ICG35YR5.js +0 -349
  524. package/dist/ep-CSSSQOUP.js +0 -1255
  525. package/dist/expclust.gdc.spec-4WPQUXH4.js +0 -306
  526. package/dist/facet-JAGILNY6.js +0 -520
  527. package/dist/forms2-IMVDB6AT.js +0 -533
  528. package/dist/gb-36LTYICV.js +0 -87
  529. package/dist/geneExpClustering-CGMENTHI.js +0 -248
  530. package/dist/geneExpression-AD2L46J4.js +0 -37
  531. package/dist/geneExpression-G2FHBDUQ.js +0 -312
  532. package/dist/geneExpression.unit.spec-XWCB7K5L.js +0 -101
  533. package/dist/geneORA-GVHQF7DF.js +0 -277
  534. package/dist/geneVariant-HE22CH76.js +0 -40
  535. package/dist/geneVariant-SQD5QUFH.js +0 -38
  536. package/dist/geneVariant.integration.spec-66XFLDNN.js +0 -197
  537. package/dist/genefusion.ui-TD32NWD4.js +0 -308
  538. package/dist/geneset-NSYPDXS3.js +0 -202
  539. package/dist/genomeBrowser.spec-CYFONLNQ.js +0 -280
  540. package/dist/grin2-3QB57OPH.js +0 -1555
  541. package/dist/grin2-FLQNWPMZ.js +0 -851
  542. package/dist/grin2-FLQNWPMZ.js.map +0 -7
  543. package/dist/gsea-RMTU5I3U.js +0 -46
  544. package/dist/hierCluster-LSQL6PGC.js +0 -58
  545. package/dist/hierCluster-XTEBDEVO.js +0 -62
  546. package/dist/hierCluster.config-SHXFSPOH.js +0 -39
  547. package/dist/hierCluster.integration.spec-KNMIYWV3.js +0 -394
  548. package/dist/hierCluster.interactivity-6NAKTUR5.js +0 -53
  549. package/dist/hierCluster.renderers-FWOV4Q47.js +0 -21
  550. package/dist/imagePlot-3IVG4SFN.js +0 -162
  551. package/dist/importPlot-HEMDRIVF.js +0 -8
  552. package/dist/isoformExpression-FJ3GEU6D.js +0 -39
  553. package/dist/isoformExpression.unit.spec-L7D22UDB.js +0 -207
  554. package/dist/launch.adhoc-PDGQF2UP.js +0 -41
  555. package/dist/leftlabel.sample-ZBI4NHCV.js +0 -259
  556. package/dist/legacyDataset-PBCPC5I7.js +0 -119
  557. package/dist/lollipop-K7S6ASFE.js +0 -170
  558. package/dist/maf-JEW6PPJB.js +0 -451
  559. package/dist/maftimeline-7URL27MC.js +0 -592
  560. package/dist/matrix-6EK5WGIG.js +0 -57
  561. package/dist/matrix-DKBD5RIL.js +0 -62
  562. package/dist/matrix.cells-KEIOXJQ7.js +0 -28
  563. package/dist/matrix.config-FGJB4VVM.js +0 -40
  564. package/dist/matrix.data-QGCGFLD7.js +0 -25
  565. package/dist/matrix.groups-HBPLZ2QX.js +0 -26
  566. package/dist/matrix.integration.spec-R4PF67KF.js +0 -3071
  567. package/dist/matrix.interactivity-M3SY33ET.js +0 -41
  568. package/dist/matrix.layout-H6WQ3ZMW.js +0 -43
  569. package/dist/matrix.legend-UCL7HM26.js +0 -22
  570. package/dist/matrix.renderers-3PPFSS7Z.js +0 -37
  571. package/dist/matrix.serieses-S2TJ3E6P.js +0 -21
  572. package/dist/matrix.sort-CFA4UWBJ.js +0 -27
  573. package/dist/matrix.sort.unit.spec-562VIWDS.js +0 -471
  574. package/dist/matrix.sorterUi-FT7K5664.js +0 -18
  575. package/dist/matrix.sorterUi.unit.spec-GAHHUN3K.js +0 -341
  576. package/dist/mavb-HPW5X55U.js +0 -731
  577. package/dist/mds.fimo-HSBKLIOX.js +0 -517
  578. package/dist/mds.samplescatterplot-DE27OMJE.js +0 -1549
  579. package/dist/mds.survivalplot-IW22UGCE.js +0 -482
  580. package/dist/numericDictTermCluster-DOD66G3A.js +0 -72
  581. package/dist/oncomatrix-BZCVCPR4.js +0 -294
  582. package/dist/oncomatrix.spec-IHYCIAP4.js +0 -447
  583. package/dist/plot.2dvaf-QLOZ54VC.js +0 -376
  584. package/dist/plot.app-XDVDR23J.js +0 -40
  585. package/dist/plot.barplot-XOESF7OQ.js +0 -101
  586. package/dist/plot.boxplot-VNOC2CHT.js +0 -151
  587. package/dist/plot.brainImaging-7ZEOY4UR.js +0 -51
  588. package/dist/plot.disco-6GVDYK7A.js +0 -101
  589. package/dist/plot.dzi-TEFPPPL6.js +0 -33
  590. package/dist/plot.ssgq-OG4TODLO.js +0 -138
  591. package/dist/plot.vaf2cov-VMZRJULA.js +0 -258
  592. package/dist/plot.wsi-2CHZZ7AC.js +0 -36
  593. package/dist/polar-QUYQRQOQ.js +0 -185
  594. package/dist/polar2-OXXLAXJC.js +0 -227
  595. package/dist/profile.spec-TI6PRHNJ.js +0 -79
  596. package/dist/profileBarchart-GEK77XEB.js +0 -266
  597. package/dist/profileForms-NR3VNHKM.js +0 -440
  598. package/dist/profilePlot-GGKO3IW5.js +0 -53
  599. package/dist/profileRadar-MN3LX5ER.js +0 -262
  600. package/dist/profileRadarFacility-3G2HWB2L.js +0 -262
  601. package/dist/proteinView-TZ5BGOTA.js +0 -1188
  602. package/dist/proteinView-TZ5BGOTA.js.map +0 -7
  603. package/dist/proteomeAbundance-JXNECXF7.js +0 -68
  604. package/dist/proteomeAbundance-JXNECXF7.js.map +0 -7
  605. package/dist/proteomeAbundance-O4BB55O3.js +0 -21
  606. package/dist/qualitative-Q3TT73O7.js +0 -42
  607. package/dist/radar2-LSD3VPZT.js +0 -315
  608. package/dist/radarFacility2-LZGIXY7A.js +0 -324
  609. package/dist/regression-J3XDAPAZ.js +0 -55
  610. package/dist/regression.inputs-BBZYI5OI.js +0 -47
  611. package/dist/regression.inputs.term-7BW6XGLG.js +0 -47
  612. package/dist/regression.inputs.values.table-DYX2YU4H.js +0 -44
  613. package/dist/regression.integration.spec-WLXZYKWW.js +0 -783
  614. package/dist/regression.results-K5Q2N2KW.js +0 -39
  615. package/dist/regression.spec-VT7T6KBY.js +0 -707
  616. package/dist/report-3D3L573D.js +0 -221
  617. package/dist/sampleScatter.spec-6IPJQLM2.js +0 -201
  618. package/dist/sampleView-5JMFI4HF.js +0 -47
  619. package/dist/samplelst-SUCB5WOZ.js +0 -110
  620. package/dist/samplematrix-A5SZBKO6.js +0 -2197
  621. package/dist/sc-NAA6ESO6.js +0 -85
  622. package/dist/scatter-EQCN2HYE.js +0 -801
  623. package/dist/scatter.integration.spec-7NXIYS67.js +0 -1195
  624. package/dist/selectGenomeWithTklst-KXODNCY6.js +0 -133
  625. package/dist/singleCellCellType-HMIW76YB.js +0 -37
  626. package/dist/singleCellCellType.unit.spec-ZCZET56X.js +0 -159
  627. package/dist/singleCellGeneExpression-IUCUHF6R.js +0 -37
  628. package/dist/singleCellGeneExpression.unit.spec-J4D6F2N3.js +0 -152
  629. package/dist/singleCellPlot-L6W3MDGG.js +0 -52
  630. package/dist/singlecell-A6ECAAPI.js +0 -85
  631. package/dist/singlecell-KBABNXC5.js +0 -1571
  632. package/dist/snp-RO7ATG6E.js +0 -37
  633. package/dist/snp.unit.spec-ZJLRGJD4.js +0 -175
  634. package/dist/snplocus-N3CU6NRP.js +0 -207
  635. package/dist/spliceevent.a53ss.diagram-7PHT4COB.js +0 -150
  636. package/dist/spliceevent.exonskip.diagram-3CZTY6QD.js +0 -276
  637. package/dist/spliceevent.noeventdiagram-GQE256DT.js +0 -459
  638. package/dist/ssGSEA-4I3L5MX2.js +0 -37
  639. package/dist/ssGSEA.unit.spec-PZCC5YU7.js +0 -87
  640. package/dist/summarizeCnvGeneexp-ASXUQW56.js +0 -162
  641. package/dist/summarizeGeneexpSurvival-ULGUOW5V.js +0 -107
  642. package/dist/summarizeMutationCnv-VDUCIUGM.js +0 -163
  643. package/dist/summarizeMutationDiagnosis-FMAAMCZC.js +0 -39
  644. package/dist/summarizeMutationSurvival-GZ4NGDJT.js +0 -98
  645. package/dist/summary-2WNZ6JSB.js +0 -48
  646. package/dist/summary.integration.spec-XPMYB6GM.js +0 -413
  647. package/dist/summaryInput-2UGXEA5C.js +0 -234
  648. package/dist/sunburst-76WCQLTT.js +0 -283
  649. package/dist/survival-23IZM4ML.js +0 -45
  650. package/dist/survival-3EAMPHSX.js +0 -57
  651. package/dist/survival.integration.spec-YNVAKBV3.js +0 -801
  652. package/dist/svgraph-G2M5LXEP.js +0 -1386
  653. package/dist/svmr-BUDBVU34.js +0 -3841
  654. package/dist/table-QJSZ6YFK.js +0 -199
  655. package/dist/termCollection-2YAY3RLZ.js +0 -178
  656. package/dist/termCollection-MAMDMEDD.js +0 -37
  657. package/dist/termCollection.unit.spec-UY7G2BHG.js +0 -207
  658. package/dist/tk-GFGP3F76.js +0 -45
  659. package/dist/tp.ui-OQ757UIE.js +0 -1458
  660. package/dist/tvs.density-BJK23JYJ.js +0 -18
  661. package/dist/tvs.dt-TOYEFKNT.js +0 -38
  662. package/dist/tvs.dtcnv.categorical-EO2VLFL2.js +0 -39
  663. package/dist/tvs.dtcnv.continuous-ZAHTKZ4Y.js +0 -71
  664. package/dist/tvs.dtfusion-BY3AHBL3.js +0 -39
  665. package/dist/tvs.dtsnvindel-UM5LQ4FR.js +0 -39
  666. package/dist/tvs.dtsv-H7ZVHLS5.js +0 -39
  667. package/dist/tvs.numeric-66FP6RRH.js +0 -21
  668. package/dist/tvs.samplelst-Q5ECTZOY.js +0 -103
  669. package/dist/tvs.termCollection-FYNMKZTR.js +0 -158
  670. package/dist/violin-EGWLAJVM.js +0 -45
  671. package/dist/violin.integration.spec-3P4TYHBR.js +0 -1424
  672. package/dist/violin.interactivity-VWDR4LYB.js +0 -37
  673. package/dist/violin.renderer-WWTU6J7X.js +0 -39
  674. package/dist/vocabulary-JG4ZITOH.js +0 -40
  675. /package/dist/{2dmaf-DTWWXOZC.js.map → 2dmaf-6YIEXAIG.js.map} +0 -0
  676. /package/dist/{AIProjectAdmin-BCYIWOXD.js.map → AIProjectAdmin-5K5NIQNT.js.map} +0 -0
  677. /package/dist/{AppHeader-H3L2MRWP.js.map → AppHeader-4SN5M6SZ.js.map} +0 -0
  678. /package/dist/{BoxPlot-INZ6IN3V.js.map → BoxPlot-DBJA6TQF.js.map} +0 -0
  679. /package/dist/{CorrelationVolcano-AK3XW4ZH.js.map → CorrelationVolcano-MDMTMTT5.js.map} +0 -0
  680. /package/dist/{DE-IBSFUKNG.js.map → DE-S5AFNI4I.js.map} +0 -0
  681. /package/dist/{DEinput-H4GMQWDY.js.map → DEinput-XVBBA74N.js.map} +0 -0
  682. /package/dist/{Disco-5PXXMGGQ.js.map → Disco-VV7FQ7WW.js.map} +0 -0
  683. /package/dist/{Disco.UI-23LOT2U6.js.map → Disco.UI-JDJFJFEY.js.map} +0 -0
  684. /package/dist/{DmrPlot-PBCU2XNF.js.map → DmrPlot-XOG67W74.js.map} +0 -0
  685. /package/dist/{GB-HIEPWNPV.js.map → GB-K3AWZQFF.js.map} +0 -0
  686. /package/dist/{GeneExpInput-A4JNX7PU.js.map → GeneExpInput-Y7MDS2CA.js.map} +0 -0
  687. /package/dist/{HicApp-IDH2A4BC.js.map → HicApp-53OTZ3YU.js.map} +0 -0
  688. /package/dist/{NumBinaryEditor-CZ54X7J3.js.map → NumBinaryEditor-SB4YR3JM.js.map} +0 -0
  689. /package/dist/{NumBinaryEditor.unit.spec-QLBRM7MJ.js.map → NumBinaryEditor.unit.spec-V2W2OZYP.js.map} +0 -0
  690. /package/dist/{NumContEditor-Z5MGLQ2I.js.map → NumContEditor-RZZBM7PR.js.map} +0 -0
  691. /package/dist/{NumContEditor.unit.spec-TR7D7ULV.js.map → NumContEditor.unit.spec-GAAW3ZZN.js.map} +0 -0
  692. /package/dist/{NumCustomBinEditor-B7JID42Y.js.map → NumCustomBinEditor-GFCGPRPI.js.map} +0 -0
  693. /package/dist/{NumCustomBinEditor.unit.spec-GZJIVY4K.js.map → NumCustomBinEditor.unit.spec-24MXSO3L.js.map} +0 -0
  694. /package/dist/{NumDiscreteEditor-LWHZ36T6.js.map → NumDiscreteEditor-HAHIOFNC.js.map} +0 -0
  695. /package/dist/{NumDiscreteEditor.unit.spec-QCQCMEWO.js.map → NumDiscreteEditor.unit.spec-JYN2CWSI.js.map} +0 -0
  696. /package/dist/{NumRegularBinEditor-IATRIUKD.js.map → NumRegularBinEditor-7DOE64RB.js.map} +0 -0
  697. /package/dist/{NumRegularBinEditor.unit.spec-J6UTQO76.js.map → NumRegularBinEditor.unit.spec-2WU4GGNT.js.map} +0 -0
  698. /package/dist/{NumSplineEditor-2KMU6SRO.js.map → NumSplineEditor-JLRD5TVX.js.map} +0 -0
  699. /package/dist/{NumSplineEditor.unit.spec-MX7Y4MTD.js.map → NumSplineEditor.unit.spec-LOG7CECJ.js.map} +0 -0
  700. /package/dist/{NumericDensity-JCH7F5FV.js.map → NumericDensity-IDOP7I34.js.map} +0 -0
  701. /package/dist/{NumericDensity.unit.spec-4TKKRKHF.js.map → NumericDensity.unit.spec-HTJQRPVH.js.map} +0 -0
  702. /package/dist/{NumericHandler-7FB3RJM7.js.map → NumericHandler-DWVVGLLB.js.map} +0 -0
  703. /package/dist/{NumericHandler.unit.spec-U6DCADZY.js.map → NumericHandler.unit.spec-BDDFTHOF.js.map} +0 -0
  704. /package/dist/{RunChart2-VQTIVMKM.js.map → RunChart2-PBJ56YX3.js.map} +0 -0
  705. /package/dist/{WsiSamplesPlot-2OAR57YB.js.map → WsiSamplesPlot-FOMPMEXK.js.map} +0 -0
  706. /package/dist/{adSandbox-IKKFYRF7.js.map → adSandbox-SRPPCYYR.js.map} +0 -0
  707. /package/dist/{alphaGenome-WJNFQGGK.js.map → alphaGenome-IS2WAJCK.js.map} +0 -0
  708. /package/dist/{app-UHGTFH6D.js.map → app-GTHYSGWI.js.map} +0 -0
  709. /package/dist/{app-YETYAR45.js.map → app-XEKETNLG.js.map} +0 -0
  710. /package/dist/{bam-S6U7VNJP.js.map → bam-GQBFL6A7.js.map} +0 -0
  711. /package/dist/{barchart-3NJDGHXU.js.map → barchart-AESC4JSX.js.map} +0 -0
  712. /package/dist/{barchart.data-MVVKPDLE.js.map → barchart.data-RE34IC4G.js.map} +0 -0
  713. /package/dist/{barchart.events-WQGA4CGB.js.map → barchart.events-KM4J5ISO.js.map} +0 -0
  714. /package/dist/{barchart.integration.spec-E6CJTWRN.js.map → barchart.integration.spec-DFVSBGO3.js.map} +0 -0
  715. /package/dist/{barchart2-UNHFOYKB.js.map → barchart2-NNTL4RQZ.js.map} +0 -0
  716. /package/dist/{block-2XHZLY26.js.map → block-EHZM3FUX.js.map} +0 -0
  717. /package/dist/{block.init-CMG4V6RB.js.map → block.init-EAEFNNF6.js.map} +0 -0
  718. /package/dist/{block.mds.expressionrank-QX2JOEMV.js.map → block.mds.expressionrank-ZBHA2CFE.js.map} +0 -0
  719. /package/dist/{block.mds.geneboxplot-USVQSDBT.js.map → block.mds.geneboxplot-4ZU3QUAK.js.map} +0 -0
  720. /package/dist/{block.mds.junction-R6GJO75N.js.map → block.mds.junction-PDH55JXO.js.map} +0 -0
  721. /package/dist/{block.mds.svcnv-MRISSDAX.js.map → block.mds.svcnv-QWBU54XQ.js.map} +0 -0
  722. /package/dist/{block.svg-Z5KKZTDB.js.map → block.svg-HUGBYWXU.js.map} +0 -0
  723. /package/dist/{block.tk.aicheck-SOFJYYZX.js.map → block.tk.aicheck-SDCWXQZF.js.map} +0 -0
  724. /package/dist/{block.tk.ase-EHX5FV2Y.js.map → block.tk.ase-HMUTHCJS.js.map} +0 -0
  725. /package/dist/{block.tk.bam-DJS6LODM.js.map → block.tk.bam-Q7B2YQLI.js.map} +0 -0
  726. /package/dist/{block.tk.bedgraphdot-R2YHPXZA.js.map → block.tk.bedgraphdot-QBGBSVHN.js.map} +0 -0
  727. /package/dist/{block.tk.bigwig.ui-VPEEQJLS.js.map → block.tk.bigwig.ui-767A3MUH.js.map} +0 -0
  728. /package/dist/{block.tk.hicstraw-BDYN573B.js.map → block.tk.hicstraw-LEZUZHLF.js.map} +0 -0
  729. /package/dist/{block.tk.junction-BONB4BXU.js.map → block.tk.junction-GQHCZOYR.js.map} +0 -0
  730. /package/dist/{block.tk.junction.textmatrixui-Y5R6KY4N.js.map → block.tk.junction.textmatrixui-D5QUO7KQ.js.map} +0 -0
  731. /package/dist/{block.tk.ld-EGVVSXCB.js.map → block.tk.ld-E3MHZOG5.js.map} +0 -0
  732. /package/dist/{block.tk.menu-4YBMB5JT.js.map → block.tk.menu-XE7PFYGR.js.map} +0 -0
  733. /package/dist/{block.tk.pgv-SBHGL6UH.js.map → block.tk.pgv-MPPMPDED.js.map} +0 -0
  734. /package/dist/{brainImaging-G3WZDYG6.js.map → brainImaging-YQ443NOL.js.map} +0 -0
  735. /package/dist/{chunk-LQQSRNR5.js.map → chunk-26WXJBSR.js.map} +0 -0
  736. /package/dist/{chunk-7UHUOC6F.js.map → chunk-2P6Z7JFC.js.map} +0 -0
  737. /package/dist/{chunk-ENWVV6EU.js.map → chunk-2QQO4RRD.js.map} +0 -0
  738. /package/dist/{chunk-GF4OSOYW.js.map → chunk-37ARSZOI.js.map} +0 -0
  739. /package/dist/{chunk-LY7GD74F.js.map → chunk-42Q53PXE.js.map} +0 -0
  740. /package/dist/{chunk-5SMOOFRW.js.map → chunk-46ASPS5Y.js.map} +0 -0
  741. /package/dist/{chunk-RA4RQYXQ.js.map → chunk-4KPI7PB5.js.map} +0 -0
  742. /package/dist/{chunk-XZ6MGJQ3.js.map → chunk-4MDNMCGZ.js.map} +0 -0
  743. /package/dist/{chunk-4Y444IRJ.js.map → chunk-5IG3E4DT.js.map} +0 -0
  744. /package/dist/{chunk-UVPAZM3G.js.map → chunk-5MIR7IHI.js.map} +0 -0
  745. /package/dist/{chunk-BQJVLXEL.js.map → chunk-5MZVXJVA.js.map} +0 -0
  746. /package/dist/{chunk-SDLRTORS.js.map → chunk-66D5GRS5.js.map} +0 -0
  747. /package/dist/{chunk-IABWKPRK.js.map → chunk-6ATE2TRC.js.map} +0 -0
  748. /package/dist/{chunk-JPKYHLNI.js.map → chunk-6BFR6MK3.js.map} +0 -0
  749. /package/dist/{chunk-C62CSWMV.js.map → chunk-6NJMCO4X.js.map} +0 -0
  750. /package/dist/{chunk-IPDH4FHY.js.map → chunk-6ON5KAMO.js.map} +0 -0
  751. /package/dist/{chunk-ZYBM24FU.js.map → chunk-76GPYMHZ.js.map} +0 -0
  752. /package/dist/{chunk-PSGQWZN4.js.map → chunk-7AAFBFOH.js.map} +0 -0
  753. /package/dist/{chunk-LGUE54VX.js.map → chunk-7OOZHEUC.js.map} +0 -0
  754. /package/dist/{chunk-I7JDV4ZC.js.map → chunk-A4VLWLYF.js.map} +0 -0
  755. /package/dist/{chunk-W6XQR5UL.js.map → chunk-A6EFWGWD.js.map} +0 -0
  756. /package/dist/{chunk-ANGDY7VC.js.map → chunk-ALW5XXVW.js.map} +0 -0
  757. /package/dist/{chunk-RQZJIBIH.js.map → chunk-ANCT2BGO.js.map} +0 -0
  758. /package/dist/{chunk-NYX4B5CO.js.map → chunk-AROMXWCY.js.map} +0 -0
  759. /package/dist/{chunk-UWYCEYML.js.map → chunk-AY4UBGLC.js.map} +0 -0
  760. /package/dist/{chunk-32TTOWY6.js.map → chunk-BMVLR3TM.js.map} +0 -0
  761. /package/dist/{chunk-PL2CM7RY.js.map → chunk-BR7JA2EO.js.map} +0 -0
  762. /package/dist/{chunk-7FKIAQ4K.js.map → chunk-D3HJXMTH.js.map} +0 -0
  763. /package/dist/{chunk-XSA3VIEQ.js.map → chunk-DKUEZ4XD.js.map} +0 -0
  764. /package/dist/{chunk-LSV4Z473.js.map → chunk-DT3MMC5U.js.map} +0 -0
  765. /package/dist/{chunk-UPPBAFUK.js.map → chunk-DYVKN7EE.js.map} +0 -0
  766. /package/dist/{chunk-VB3SRNBK.js.map → chunk-EF37UZY6.js.map} +0 -0
  767. /package/dist/{chunk-ZD47FENE.js.map → chunk-ESXMS7FW.js.map} +0 -0
  768. /package/dist/{chunk-2QULGYVE.js.map → chunk-FUSVXQ6C.js.map} +0 -0
  769. /package/dist/{chunk-GTBL7UHX.js.map → chunk-GXKVAPGP.js.map} +0 -0
  770. /package/dist/{chunk-AQ4OP4GR.js.map → chunk-H4JIENLQ.js.map} +0 -0
  771. /package/dist/{chunk-FA44G3GZ.js.map → chunk-H7YJG4YM.js.map} +0 -0
  772. /package/dist/{chunk-GD7FKXOA.js.map → chunk-I24KPIDD.js.map} +0 -0
  773. /package/dist/{chunk-GQOBT2W7.js.map → chunk-IENFDUWD.js.map} +0 -0
  774. /package/dist/{chunk-43PMSEMV.js.map → chunk-J7BISJTL.js.map} +0 -0
  775. /package/dist/{chunk-XBBUQW52.js.map → chunk-J7KYOSEK.js.map} +0 -0
  776. /package/dist/{chunk-PZLYNNST.js.map → chunk-JGPZ5254.js.map} +0 -0
  777. /package/dist/{chunk-4KSU6NBP.js.map → chunk-JUIPCWAM.js.map} +0 -0
  778. /package/dist/{chunk-5RE3J6HK.js.map → chunk-LO4NMQ7W.js.map} +0 -0
  779. /package/dist/{chunk-RAJZYWFN.js.map → chunk-LSSLS5HV.js.map} +0 -0
  780. /package/dist/{chunk-7NOKTEHK.js.map → chunk-MDLRB3MR.js.map} +0 -0
  781. /package/dist/{chunk-OPPNZXYG.js.map → chunk-MJLKGZ27.js.map} +0 -0
  782. /package/dist/{chunk-KTCW3JA6.js.map → chunk-NL5T3SBK.js.map} +0 -0
  783. /package/dist/{chunk-RSE2FOKW.js.map → chunk-ONAYJVN2.js.map} +0 -0
  784. /package/dist/{chunk-64Z22QAH.js.map → chunk-PSMFOARZ.js.map} +0 -0
  785. /package/dist/{chunk-LTSR7SLO.js.map → chunk-QX3GF2IA.js.map} +0 -0
  786. /package/dist/{chunk-JNOOLCYB.js.map → chunk-QZ2U4BOS.js.map} +0 -0
  787. /package/dist/{chunk-YEMIL6QU.js.map → chunk-RBZBBNLL.js.map} +0 -0
  788. /package/dist/{chunk-P6TPXUMP.js.map → chunk-RZTFQXWV.js.map} +0 -0
  789. /package/dist/{chunk-AQVOYTLS.js.map → chunk-SJC2C77V.js.map} +0 -0
  790. /package/dist/{chunk-2VLGHVOL.js.map → chunk-TVXVP4M6.js.map} +0 -0
  791. /package/dist/{chunk-HE7CD7BD.js.map → chunk-UTDPKDIY.js.map} +0 -0
  792. /package/dist/{chunk-BT4OOYPT.js.map → chunk-UVIUB7QI.js.map} +0 -0
  793. /package/dist/{chunk-CAWDQURD.js.map → chunk-VAUSRBL5.js.map} +0 -0
  794. /package/dist/{chunk-6NMH6WPB.js.map → chunk-WP22GYZ2.js.map} +0 -0
  795. /package/dist/{chunk-4SFX42S7.js.map → chunk-WUNX3VST.js.map} +0 -0
  796. /package/dist/{chunk-BRMASRRS.js.map → chunk-XD4TBJK2.js.map} +0 -0
  797. /package/dist/{chunk-2O6JF76T.js.map → chunk-Y6DSXMPB.js.map} +0 -0
  798. /package/dist/{chunk-ROLVOPVR.js.map → chunk-YBIZRASR.js.map} +0 -0
  799. /package/dist/{chunk-TF4EDNQO.js.map → chunk-YI2YH7ZK.js.map} +0 -0
  800. /package/dist/{chunk-KMQ6GQ3I.js.map → chunk-YLDE3PVC.js.map} +0 -0
  801. /package/dist/{chunk-MHCTLVGE.js.map → chunk-Z736NYXL.js.map} +0 -0
  802. /package/dist/{chunk-LJ4AUJXC.js.map → chunk-ZEJB7CPC.js.map} +0 -0
  803. /package/dist/{chunk-5HOR6JQ2.js.map → chunk-ZGWEBKZ4.js.map} +0 -0
  804. /package/dist/{condition-ARCN26MF.js.map → condition-FSF6ROJV.js.map} +0 -0
  805. /package/dist/{controls-PKWN2JGN.js.map → controls-OPSBFDFZ.js.map} +0 -0
  806. /package/dist/{controls.config-NFRPXFUJ.js.map → controls.config-3QRV5363.js.map} +0 -0
  807. /package/dist/{correlation-DPT6XL2U.js.map → correlation-WLOI7Z35.js.map} +0 -0
  808. /package/dist/{cuminc-M4U7LQD5.js.map → cuminc-G2UGJUUA.js.map} +0 -0
  809. /package/dist/{cuminc.integration.spec-MH4OFYDJ.js.map → cuminc.integration.spec-X5NEZ6S5.js.map} +0 -0
  810. /package/dist/{customdata.inputui-6TAHAMSV.js.map → customdata.inputui-RNW3AO3Z.js.map} +0 -0
  811. /package/dist/{dataDownload-7GZEYSUT.js.map → dataDownload-4U3TGDMH.js.map} +0 -0
  812. /package/dist/{dataDownload.integration.spec-NAIJRFTV.js.map → dataDownload.integration.spec-6FUI2SJ4.js.map} +0 -0
  813. /package/dist/{databrowser.ui-LLXHZ5O6.js.map → databrowser.ui-4GVJVJWG.js.map} +0 -0
  814. /package/dist/{dictionary-MUAURMYE.js.map → dictionary-NSDS7Z4K.js.map} +0 -0
  815. /package/dist/{dnaMethylation-AU5D3U3E.js.map → dnaMethylation-OYQB75LD.js.map} +0 -0
  816. /package/dist/{dnaMethylation.integration.spec-JIDBRA6P.js.map → dnaMethylation.integration.spec-6TTLV34N.js.map} +0 -0
  817. /package/dist/{dofetch-WSYK5OTB.js.map → dofetch-4TO3QMT6.js.map} +0 -0
  818. /package/dist/{e2pca-ICG35YR5.js.map → e2pca-NYBVR6PL.js.map} +0 -0
  819. /package/dist/{ep-CSSSQOUP.js.map → ep-RTDVEA4D.js.map} +0 -0
  820. /package/dist/{expclust.gdc.spec-4WPQUXH4.js.map → expclust.gdc.spec-JVIRESTP.js.map} +0 -0
  821. /package/dist/{facet-JAGILNY6.js.map → facet-OVBF2QMO.js.map} +0 -0
  822. /package/dist/{forms2-IMVDB6AT.js.map → forms2-HTLS54CX.js.map} +0 -0
  823. /package/dist/{gb-36LTYICV.js.map → gb-Y3546HMZ.js.map} +0 -0
  824. /package/dist/{geneExpClustering-CGMENTHI.js.map → geneExpClustering-PH3PWH3K.js.map} +0 -0
  825. /package/dist/{geneExpression-AD2L46J4.js.map → geneExpression-2Z2EV3XM.js.map} +0 -0
  826. /package/dist/{geneExpression-G2FHBDUQ.js.map → geneExpression-6CFXOCGW.js.map} +0 -0
  827. /package/dist/{geneExpression.unit.spec-XWCB7K5L.js.map → geneExpression.unit.spec-WKUTHRHC.js.map} +0 -0
  828. /package/dist/{geneORA-GVHQF7DF.js.map → geneORA-SHLZESLB.js.map} +0 -0
  829. /package/dist/{geneVariant-HE22CH76.js.map → geneVariant-FHZUIFPM.js.map} +0 -0
  830. /package/dist/{geneVariant-SQD5QUFH.js.map → geneVariant-Y7ZUBEOX.js.map} +0 -0
  831. /package/dist/{geneVariant.integration.spec-66XFLDNN.js.map → geneVariant.integration.spec-N7TZUOY3.js.map} +0 -0
  832. /package/dist/{genefusion.ui-TD32NWD4.js.map → genefusion.ui-7PDVZPZ2.js.map} +0 -0
  833. /package/dist/{geneset-NSYPDXS3.js.map → geneset-HLVOGYUI.js.map} +0 -0
  834. /package/dist/{genomeBrowser.spec-CYFONLNQ.js.map → genomeBrowser.spec-7IVIMUR5.js.map} +0 -0
  835. /package/dist/{grin2-3QB57OPH.js.map → grin2-Z5O7254R.js.map} +0 -0
  836. /package/dist/{gsea-RMTU5I3U.js.map → gsea-TFC3MBRW.js.map} +0 -0
  837. /package/dist/{hierCluster-LSQL6PGC.js.map → hierCluster-ERSE5I4I.js.map} +0 -0
  838. /package/dist/{hierCluster-XTEBDEVO.js.map → hierCluster-QQZQU5ZG.js.map} +0 -0
  839. /package/dist/{hierCluster.config-SHXFSPOH.js.map → hierCluster.config-WPINWW37.js.map} +0 -0
  840. /package/dist/{hierCluster.integration.spec-KNMIYWV3.js.map → hierCluster.integration.spec-Y6OHSKPW.js.map} +0 -0
  841. /package/dist/{hierCluster.interactivity-6NAKTUR5.js.map → hierCluster.interactivity-HS3G5QC5.js.map} +0 -0
  842. /package/dist/{hierCluster.renderers-FWOV4Q47.js.map → hierCluster.renderers-W63ZKZTT.js.map} +0 -0
  843. /package/dist/{imagePlot-3IVG4SFN.js.map → imagePlot-QFVN25PM.js.map} +0 -0
  844. /package/dist/{importPlot-HEMDRIVF.js.map → importPlot-MIDM5APH.js.map} +0 -0
  845. /package/dist/{isoformExpression-FJ3GEU6D.js.map → isoformExpression-L4TRNT4A.js.map} +0 -0
  846. /package/dist/{isoformExpression.unit.spec-L7D22UDB.js.map → isoformExpression.unit.spec-QQG323LA.js.map} +0 -0
  847. /package/dist/{launch.adhoc-PDGQF2UP.js.map → launch.adhoc-4NQ6GGGL.js.map} +0 -0
  848. /package/dist/{leftlabel.sample-ZBI4NHCV.js.map → leftlabel.sample-JU7AIPZL.js.map} +0 -0
  849. /package/dist/{legacyDataset-PBCPC5I7.js.map → legacyDataset-TT4CHF23.js.map} +0 -0
  850. /package/dist/{lollipop-K7S6ASFE.js.map → lollipop-JG74M6PJ.js.map} +0 -0
  851. /package/dist/{maf-JEW6PPJB.js.map → maf-PDL2EGHI.js.map} +0 -0
  852. /package/dist/{maftimeline-7URL27MC.js.map → maftimeline-V43NQEEE.js.map} +0 -0
  853. /package/dist/{matrix-6EK5WGIG.js.map → matrix-EB2EFP4S.js.map} +0 -0
  854. /package/dist/{matrix-DKBD5RIL.js.map → matrix-Q57FU5FE.js.map} +0 -0
  855. /package/dist/{matrix.cells-KEIOXJQ7.js.map → matrix.cells-NJIMPD32.js.map} +0 -0
  856. /package/dist/{matrix.config-FGJB4VVM.js.map → matrix.config-GLDEQD3H.js.map} +0 -0
  857. /package/dist/{matrix.data-QGCGFLD7.js.map → matrix.data-6SHAKOQU.js.map} +0 -0
  858. /package/dist/{matrix.groups-HBPLZ2QX.js.map → matrix.groups-MTDEANQA.js.map} +0 -0
  859. /package/dist/{matrix.integration.spec-R4PF67KF.js.map → matrix.integration.spec-JCZ5VQJU.js.map} +0 -0
  860. /package/dist/{matrix.interactivity-M3SY33ET.js.map → matrix.interactivity-SVRNWL6V.js.map} +0 -0
  861. /package/dist/{matrix.layout-H6WQ3ZMW.js.map → matrix.layout-2HREO42N.js.map} +0 -0
  862. /package/dist/{matrix.legend-UCL7HM26.js.map → matrix.legend-QHVKT3MP.js.map} +0 -0
  863. /package/dist/{matrix.renderers-3PPFSS7Z.js.map → matrix.renderers-IYR3ZY6V.js.map} +0 -0
  864. /package/dist/{matrix.serieses-S2TJ3E6P.js.map → matrix.serieses-2VMTQXL2.js.map} +0 -0
  865. /package/dist/{matrix.sort-CFA4UWBJ.js.map → matrix.sort-PWA2RQQR.js.map} +0 -0
  866. /package/dist/{matrix.sort.unit.spec-562VIWDS.js.map → matrix.sort.unit.spec-3OYIPTFY.js.map} +0 -0
  867. /package/dist/{matrix.sorterUi-FT7K5664.js.map → matrix.sorterUi-Y5QLO75X.js.map} +0 -0
  868. /package/dist/{matrix.sorterUi.unit.spec-GAHHUN3K.js.map → matrix.sorterUi.unit.spec-BNEXQHLP.js.map} +0 -0
  869. /package/dist/{mavb-HPW5X55U.js.map → mavb-IZDDU4KK.js.map} +0 -0
  870. /package/dist/{mds.fimo-HSBKLIOX.js.map → mds.fimo-FWBL7JE6.js.map} +0 -0
  871. /package/dist/{mds.samplescatterplot-DE27OMJE.js.map → mds.samplescatterplot-T47C7DJB.js.map} +0 -0
  872. /package/dist/{mds.survivalplot-IW22UGCE.js.map → mds.survivalplot-MFZJCGS6.js.map} +0 -0
  873. /package/dist/{numericDictTermCluster-DOD66G3A.js.map → numericDictTermCluster-I2W67RGA.js.map} +0 -0
  874. /package/dist/{oncomatrix-BZCVCPR4.js.map → oncomatrix-6W7IBAED.js.map} +0 -0
  875. /package/dist/{oncomatrix.spec-IHYCIAP4.js.map → oncomatrix.spec-CEFH5IGH.js.map} +0 -0
  876. /package/dist/{plot.2dvaf-QLOZ54VC.js.map → plot.2dvaf-BN6CFLNU.js.map} +0 -0
  877. /package/dist/{plot.app-XDVDR23J.js.map → plot.app-7EYWUCZV.js.map} +0 -0
  878. /package/dist/{plot.barplot-XOESF7OQ.js.map → plot.barplot-MDIARSQD.js.map} +0 -0
  879. /package/dist/{plot.boxplot-VNOC2CHT.js.map → plot.boxplot-RUHGXC54.js.map} +0 -0
  880. /package/dist/{plot.brainImaging-7ZEOY4UR.js.map → plot.brainImaging-JEE32ZBV.js.map} +0 -0
  881. /package/dist/{plot.disco-6GVDYK7A.js.map → plot.disco-2RPNPX6E.js.map} +0 -0
  882. /package/dist/{plot.dzi-TEFPPPL6.js.map → plot.dzi-7VTYYGGW.js.map} +0 -0
  883. /package/dist/{plot.ssgq-OG4TODLO.js.map → plot.ssgq-FHE5KU5C.js.map} +0 -0
  884. /package/dist/{plot.vaf2cov-VMZRJULA.js.map → plot.vaf2cov-WDJJM5Q4.js.map} +0 -0
  885. /package/dist/{plot.wsi-2CHZZ7AC.js.map → plot.wsi-FQZWHNSF.js.map} +0 -0
  886. /package/dist/{polar-QUYQRQOQ.js.map → polar-M7EGINN4.js.map} +0 -0
  887. /package/dist/{polar2-OXXLAXJC.js.map → polar2-JFYY43K2.js.map} +0 -0
  888. /package/dist/{profile.spec-TI6PRHNJ.js.map → profile.spec-SIOHASOX.js.map} +0 -0
  889. /package/dist/{profileBarchart-GEK77XEB.js.map → profileBarchart-6JLEKVJV.js.map} +0 -0
  890. /package/dist/{profileForms-NR3VNHKM.js.map → profileForms-G6CH73RV.js.map} +0 -0
  891. /package/dist/{profilePlot-GGKO3IW5.js.map → profilePlot-NQYJOBVV.js.map} +0 -0
  892. /package/dist/{profileRadar-MN3LX5ER.js.map → profileRadar-4TNWIXDB.js.map} +0 -0
  893. /package/dist/{profileRadarFacility-3G2HWB2L.js.map → profileRadarFacility-XPH3LCBQ.js.map} +0 -0
  894. /package/dist/{proteomeAbundance-O4BB55O3.js.map → proteomeAbundance-NQ4635NL.js.map} +0 -0
  895. /package/dist/{qualitative-Q3TT73O7.js.map → qualitative-DL4WJG3O.js.map} +0 -0
  896. /package/dist/{radar2-LSD3VPZT.js.map → radar2-YNOQWHBT.js.map} +0 -0
  897. /package/dist/{radarFacility2-LZGIXY7A.js.map → radarFacility2-24UPSI7S.js.map} +0 -0
  898. /package/dist/{regression-J3XDAPAZ.js.map → regression-URAUTLTD.js.map} +0 -0
  899. /package/dist/{regression.inputs-BBZYI5OI.js.map → regression.inputs-UDVOU7FB.js.map} +0 -0
  900. /package/dist/{regression.inputs.term-7BW6XGLG.js.map → regression.inputs.term-BWW6W34R.js.map} +0 -0
  901. /package/dist/{regression.inputs.values.table-DYX2YU4H.js.map → regression.inputs.values.table-UKGIZTXG.js.map} +0 -0
  902. /package/dist/{regression.integration.spec-WLXZYKWW.js.map → regression.integration.spec-EBHQTNA3.js.map} +0 -0
  903. /package/dist/{regression.results-K5Q2N2KW.js.map → regression.results-XTOSWIP6.js.map} +0 -0
  904. /package/dist/{regression.spec-VT7T6KBY.js.map → regression.spec-KG2I53VR.js.map} +0 -0
  905. /package/dist/{report-3D3L573D.js.map → report-KH7SNPVF.js.map} +0 -0
  906. /package/dist/{sampleScatter.spec-6IPJQLM2.js.map → sampleScatter.spec-PIXGS3LG.js.map} +0 -0
  907. /package/dist/{sampleView-5JMFI4HF.js.map → sampleView-TWS6VT55.js.map} +0 -0
  908. /package/dist/{samplelst-SUCB5WOZ.js.map → samplelst-6AB5Y4WR.js.map} +0 -0
  909. /package/dist/{samplematrix-A5SZBKO6.js.map → samplematrix-AJAF555E.js.map} +0 -0
  910. /package/dist/{sc-NAA6ESO6.js.map → sc-PMNYZKXA.js.map} +0 -0
  911. /package/dist/{scatter-EQCN2HYE.js.map → scatter-Q2GH3ZJD.js.map} +0 -0
  912. /package/dist/{scatter.integration.spec-7NXIYS67.js.map → scatter.integration.spec-SMMYKWH3.js.map} +0 -0
  913. /package/dist/{selectGenomeWithTklst-KXODNCY6.js.map → selectGenomeWithTklst-VE4SDYY7.js.map} +0 -0
  914. /package/dist/{singleCellCellType-HMIW76YB.js.map → singleCellCellType-S324GCKW.js.map} +0 -0
  915. /package/dist/{singleCellCellType.unit.spec-ZCZET56X.js.map → singleCellCellType.unit.spec-NXC2GELH.js.map} +0 -0
  916. /package/dist/{singleCellGeneExpression-IUCUHF6R.js.map → singleCellGeneExpression-6H4HRKIA.js.map} +0 -0
  917. /package/dist/{singleCellGeneExpression.unit.spec-J4D6F2N3.js.map → singleCellGeneExpression.unit.spec-HIJXVUWJ.js.map} +0 -0
  918. /package/dist/{singleCellPlot-L6W3MDGG.js.map → singleCellPlot-H7PCZ2DP.js.map} +0 -0
  919. /package/dist/{singlecell-A6ECAAPI.js.map → singlecell-4LH3MQVL.js.map} +0 -0
  920. /package/dist/{singlecell-KBABNXC5.js.map → singlecell-MOSYT3RI.js.map} +0 -0
  921. /package/dist/{snp-RO7ATG6E.js.map → snp-IKLGTD4Q.js.map} +0 -0
  922. /package/dist/{snp.unit.spec-ZJLRGJD4.js.map → snp.unit.spec-GC74MUVM.js.map} +0 -0
  923. /package/dist/{snplocus-N3CU6NRP.js.map → snplocus-RIABFSBQ.js.map} +0 -0
  924. /package/dist/{spliceevent.a53ss.diagram-7PHT4COB.js.map → spliceevent.a53ss.diagram-4E2IYYHL.js.map} +0 -0
  925. /package/dist/{spliceevent.exonskip.diagram-3CZTY6QD.js.map → spliceevent.exonskip.diagram-C56R6XLQ.js.map} +0 -0
  926. /package/dist/{spliceevent.noeventdiagram-GQE256DT.js.map → spliceevent.noeventdiagram-SIPMAKXI.js.map} +0 -0
  927. /package/dist/{ssGSEA-4I3L5MX2.js.map → ssGSEA-5QNHLSOI.js.map} +0 -0
  928. /package/dist/{ssGSEA.unit.spec-PZCC5YU7.js.map → ssGSEA.unit.spec-KVPN553B.js.map} +0 -0
  929. /package/dist/{summarizeCnvGeneexp-ASXUQW56.js.map → summarizeCnvGeneexp-K4VGJSW6.js.map} +0 -0
  930. /package/dist/{summarizeGeneexpSurvival-ULGUOW5V.js.map → summarizeGeneexpSurvival-HGHX65FN.js.map} +0 -0
  931. /package/dist/{summarizeMutationCnv-VDUCIUGM.js.map → summarizeMutationCnv-3K4Z6R2X.js.map} +0 -0
  932. /package/dist/{summarizeMutationDiagnosis-FMAAMCZC.js.map → summarizeMutationDiagnosis-M2MHUPRT.js.map} +0 -0
  933. /package/dist/{summarizeMutationSurvival-GZ4NGDJT.js.map → summarizeMutationSurvival-WVBUP3GA.js.map} +0 -0
  934. /package/dist/{summary-2WNZ6JSB.js.map → summary-RZHZXCU5.js.map} +0 -0
  935. /package/dist/{summary.integration.spec-XPMYB6GM.js.map → summary.integration.spec-FGZP7DY7.js.map} +0 -0
  936. /package/dist/{summaryInput-2UGXEA5C.js.map → summaryInput-UGM7MMCR.js.map} +0 -0
  937. /package/dist/{sunburst-76WCQLTT.js.map → sunburst-L27U7LV7.js.map} +0 -0
  938. /package/dist/{survival-3EAMPHSX.js.map → survival-5ZMEBV6O.js.map} +0 -0
  939. /package/dist/{survival-23IZM4ML.js.map → survival-JWRRGTJT.js.map} +0 -0
  940. /package/dist/{survival.integration.spec-YNVAKBV3.js.map → survival.integration.spec-Z5542I4V.js.map} +0 -0
  941. /package/dist/{svgraph-G2M5LXEP.js.map → svgraph-O6ZVLNNN.js.map} +0 -0
  942. /package/dist/{svmr-BUDBVU34.js.map → svmr-ULFV7OSH.js.map} +0 -0
  943. /package/dist/{table-QJSZ6YFK.js.map → table-CHRQH2GH.js.map} +0 -0
  944. /package/dist/{termCollection-2YAY3RLZ.js.map → termCollection-FAO6ZA6F.js.map} +0 -0
  945. /package/dist/{termCollection-MAMDMEDD.js.map → termCollection-GBXS3GOY.js.map} +0 -0
  946. /package/dist/{termCollection.unit.spec-UY7G2BHG.js.map → termCollection.unit.spec-4WRTOV6E.js.map} +0 -0
  947. /package/dist/{tk-GFGP3F76.js.map → tk-KNUBWRNK.js.map} +0 -0
  948. /package/dist/{tp.ui-OQ757UIE.js.map → tp.ui-2PPYOQYL.js.map} +0 -0
  949. /package/dist/{tvs.density-BJK23JYJ.js.map → tvs.density-BZ5SKDQS.js.map} +0 -0
  950. /package/dist/{tvs.dt-TOYEFKNT.js.map → tvs.dt-TDNSTGQR.js.map} +0 -0
  951. /package/dist/{tvs.dtcnv.categorical-EO2VLFL2.js.map → tvs.dtcnv.categorical-P2IGIE4I.js.map} +0 -0
  952. /package/dist/{tvs.dtcnv.continuous-ZAHTKZ4Y.js.map → tvs.dtcnv.continuous-2XUCRBDR.js.map} +0 -0
  953. /package/dist/{tvs.dtfusion-BY3AHBL3.js.map → tvs.dtfusion-PRHZVMOG.js.map} +0 -0
  954. /package/dist/{tvs.dtsnvindel-UM5LQ4FR.js.map → tvs.dtsnvindel-KGKBW5JS.js.map} +0 -0
  955. /package/dist/{tvs.dtsv-H7ZVHLS5.js.map → tvs.dtsv-M3CY5TZF.js.map} +0 -0
  956. /package/dist/{tvs.numeric-66FP6RRH.js.map → tvs.numeric-W74JCC5P.js.map} +0 -0
  957. /package/dist/{tvs.samplelst-Q5ECTZOY.js.map → tvs.samplelst-BTWFBBAN.js.map} +0 -0
  958. /package/dist/{tvs.termCollection-FYNMKZTR.js.map → tvs.termCollection-Y64QIKOA.js.map} +0 -0
  959. /package/dist/{violin-EGWLAJVM.js.map → violin-3LLHHV3L.js.map} +0 -0
  960. /package/dist/{violin.integration.spec-3P4TYHBR.js.map → violin.integration.spec-6NF5FDLQ.js.map} +0 -0
  961. /package/dist/{violin.interactivity-VWDR4LYB.js.map → violin.interactivity-W2AKZ24D.js.map} +0 -0
  962. /package/dist/{violin.renderer-WWTU6J7X.js.map → violin.renderer-CRFYYZRI.js.map} +0 -0
  963. /package/dist/{vocabulary-JG4ZITOH.js.map → vocabulary-AUJOAVYS.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../plots/gsea.js"],
4
- "sourcesContent": ["import * as d3axis from 'd3-axis'\nimport { Menu, renderTable, table2col, axisstyle, sayerror } from '#dom'\nimport { dofetch3 } from '#common/dofetch'\nimport { controlsInit } from './controls'\nimport { getCompInit, copyMerge } from '#rx'\nimport { scaleLinear } from 'd3-scale'\nimport { roundValueAuto } from '#shared/roundValue.js'\nimport { VolcanoModel } from '#plots/volcano/model/VolcanoModel.ts'\nimport { getDefaultVolcanoSettings } from '#plots/volcano/settings/defaults.ts'\nimport { PlotBase } from '#plots/PlotBase.js'\nimport { getCombinedTermFilter } from '#filter'\n\nconst tip = new Menu()\n\nclass gsea extends PlotBase {\n\tstatic type = 'gsea'\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\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\t}\n\n\tasync setControls() {\n\t\tthis.dom.controlsDiv.selectAll('*').remove()\n\t\tconst inputs = [\n\t\t\t{\n\t\t\t\tlabel: 'Minimum Gene Set Size Filter Cutoff',\n\t\t\t\ttype: 'number',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'min_gene_set_size_cutoff',\n\t\t\t\ttitle: 'Minimum Gene set size cutoff. Helps in filtering out small gene sets',\n\t\t\t\tmin: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Maximum Gene Set Size Filter Cutoff',\n\t\t\t\ttype: 'number',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'max_gene_set_size_cutoff',\n\t\t\t\ttitle: 'Maximum Gene set size cutoff. Helps in filtering out large gene sets',\n\t\t\t\tmax: 25000\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Filter Non-coding Genes',\n\t\t\t\ttype: 'checkbox',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'filter_non_coding_genes',\n\t\t\t\ttitle: 'Filter non-coding genes',\n\t\t\t\tboxLabel: ''\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'FDR or Top Gene Sets',\n\t\t\t\ttype: 'radio',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'fdr_or_top',\n\t\t\t\ttitle: 'Toggle between FDR cutoff and top gene sets in ascending order of FDR',\n\t\t\t\toptions: [\n\t\t\t\t\t{ label: 'FDR', value: 'fdr' },\n\t\t\t\t\t{ label: 'Top Gene Sets', value: 'top' }\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\n\t\tif (JSON.parse(sessionStorage.getItem('optionalFeatures')).gsea_test) {\n\t\t\tinputs.push({\n\t\t\t\tlabel: 'GSEA method',\n\t\t\t\ttype: 'radio',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'gsea_method',\n\t\t\t\ttitle: 'Toggle between blitzgsea and CERNO method',\n\t\t\t\toptions: [\n\t\t\t\t\t{ label: 'blitzgsea', value: 'blitzgsea' },\n\t\t\t\t\t{ label: 'CERNO', value: 'cerno' }\n\t\t\t\t]\n\t\t\t})\n\t\t}\n\t\tif (this.settings.gsea_method == 'blitzgsea') {\n\t\t\tinputs.push({\n\t\t\t\tlabel: 'Number of Permutations',\n\t\t\t\ttype: 'number',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'num_permutations',\n\t\t\t\ttitle: 'Number of permutations to be used for GSEA. Higher number increases accuracy but also compute time.',\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 40000 // Setting it to pretty lenient limit for testing\n\t\t\t})\n\t\t}\n\t\tif (this.settings.fdr_or_top == 'fdr') {\n\t\t\tinputs.push({\n\t\t\t\tlabel: 'FDR Filter Cutoff (Linear Scale)',\n\t\t\t\ttype: 'number',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'fdr_cutoff',\n\t\t\t\ttitle: 'P-value significance',\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1\n\t\t\t})\n\t\t} else if (this.settings.fdr_or_top == 'top') {\n\t\t\tinputs.push({\n\t\t\t\tlabel: 'Number of top Gene Sets by FDR',\n\t\t\t\ttype: 'number',\n\t\t\t\tchartType: 'gsea',\n\t\t\t\tsettingsKey: 'top_genesets',\n\t\t\t\ttitle: 'Number of top gene sets to be displayed in ascending order of FDR',\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5000\n\t\t\t})\n\t\t} else {\n\t\t\tthrow 'unknown FDR/top option'\n\t\t}\n\n\t\tthis.components.controls = await controlsInit({\n\t\t\tapp: this.app,\n\t\t\tid: this.id,\n\t\t\tholder: this.dom.controlsDiv,\n\t\t\tinputs: inputs\n\t\t})\n\n\t\tthis.components.controls.on('downloadClick.gsea', () => {\n\t\t\tif (!this.imageUrl) return alert('No image to download')\n\t\t\tconst dataUrl = this.imageUrl\n\t\t\tconst downloadImgName = `${this.state.config.gsea_params.geneset_name || ''}_GSEA_IMG`\n\t\t\tconst a = document.createElement('a')\n\t\t\tdocument.body.appendChild(a)\n\n\t\t\ta.addEventListener(\n\t\t\t\t'click',\n\t\t\t\t() => {\n\t\t\t\t\t// Download the image\n\t\t\t\t\ta.download = downloadImgName + '.png'\n\t\t\t\t\ta.href = dataUrl\n\t\t\t\t\tdocument.body.removeChild(a)\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t)\n\t\t\ta.click()\n\t\t})\n\t}\n\n\tgetState(appState) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config) throw `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}\n\t}\n\n\t/** This allows the gsea to run independently. If the DE data\n\t * was already requested (e.g. in the DA from the volcano plot),\n\t * the cached response returns rather than running the DE\n\t * route again.\n\t *\n\t * Also allows loading the gsea from a mass session file without\n\t * error. */\n\tasync init(appState) {\n\t\tconst config = appState.plots.find(p => p.id === this.id)\n\t\tif (!config.gsea_params) {\n\t\t\ttry {\n\t\t\t\tconst volcanoSettings =\n\t\t\t\t\tconfig.settings?.volcano || getDefaultVolcanoSettings({}, { termType: 'geneExpression' })\n\t\t\t\tconst model = new VolcanoModel(this.app, config.termType)\n\t\t\t\tconst response = await model.getData(config, volcanoSettings)\n\t\t\t\tif (!response?.data?.cacheId || response.error) {\n\t\t\t\t\tthrow response.error || 'No DE cacheId returned from volcano model'\n\t\t\t\t}\n\t\t\t\tawait this.app.save({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: this.id,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tgsea_params: {\n\t\t\t\t\t\t\tcacheId: response.data.cacheId,\n\t\t\t\t\t\t\t// Snapshot of the DE request so the server can regenerate\n\t\t\t\t\t\t\t// the cache if this GSEA request lands on a peer node or\n\t\t\t\t\t\t\t// arrives after the cache TTL has expired.\n\t\t\t\t\t\t\tdaRequest: response.daRequest,\n\t\t\t\t\t\t\tgenes_length: response.data.totalRows,\n\t\t\t\t\t\t\tgenome: this.app.vocabApi.opts.state.vocab.genome,\n\t\t\t\t\t\t\t// Sending dslabel at the top level makes the global\n\t\t\t\t\t\t\t// auth middleware populate clientAuthResult on this\n\t\t\t\t\t\t\t// request the same way it did for the volcano\n\t\t\t\t\t\t\t// request, so the server can re-apply the same\n\t\t\t\t\t\t\t// auth-filter injection to daRequest before hashing.\n\t\t\t\t\t\t\tdslabel: this.app.vocabApi.vocab.dslabel\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof Error) console.error(e.message || e)\n\t\t\t\telse if (e.stack) console.log(e.stack)\n\t\t\t\tthrow e\n\t\t\t}\n\t\t}\n\t}\n\n\treactsTo(action) {\n\t\tif (action.type.startsWith('plot_')) {\n\t\t\treturn (\n\t\t\t\t(action.id === this.id || action.id == this.parentId) &&\n\t\t\t\t(!action.config?.childType || action.config?.childType == this.type)\n\t\t\t)\n\t\t}\n\t}\n\n\tasync main() {\n\t\t//Not not use structuredClone(this.state.config)\n\t\t//Does not include the plot config changes in init()\n\t\tconst config = this.app.getState().plots.find(p => p.id === this.id)\n\t\tthis.config = structuredClone(config)\n\t\tif (this.config.chartType != this.type && this.config.childType != this.type) return\n\t\tthis.settings = this.config.settings.gsea\n\n\t\tthis.imageUrl = null // Reset the image URL\n\t\tawait this.setControls()\n\t\tif (this.dom.header) {\n\t\t\tconst geneCount = this.config.gsea_params.genes_length ?? this.config.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\trender_gsea(this)\n\t}\n}\n\nasync function renderPathwayDropdown(self) {\n\tconst settings = structuredClone(self.settings)\n\tconst pathwayOpts = structuredClone(self.app.opts.genome.termdbs.msigdb.analysisGenesetGroups) // duplicate to avoid repeated insertion on each app launch\n\n\tif (JSON.parse(sessionStorage.getItem('optionalFeatures')).gsea_test && self.settings.gsea_method == 'blitzgsea') {\n\t\t// This contains geneset groups that are specific to blitzgsea itself\n\t\t// TEMPORARY FIX to test this library that will trigger auto download support files in python\n\t\t// NEVER ENABLE ON PROD especially gdc prod, where container has firewall and it crashes..\n\t\t// delete this if library is replaced\n\t\tpathwayOpts.push(\n\t\t\t{ label: 'REACTOME (blitzgsea)', value: 'REACTOME--blitzgsea' },\n\t\t\t{ label: 'KEGG (blitzgsea)', value: 'KEGG--blitzgsea' },\n\t\t\t{ label: 'WikiPathways (blitzgsea)', value: 'WikiPathways--blitzgsea' }\n\t\t)\n\t}\n\n\tif (settings.pathway) {\n\t\tpathwayOpts.shift()\n\t\tpathwayOpts.find(opt => opt.value == settings.pathway).selected = true\n\t}\n\n\tself.dom.actionsDiv\n\t\t.append('span')\n\t\t.attr('data-testid', 'sjpp-gsea-pathway')\n\t\t.style('margin-right', '10px')\n\t\t.text('Select a gene set group:')\n\n\tconst dropdown = self.dom.actionsDiv.append('select').on('change', event => {\n\t\tif (!settings.pathway) {\n\t\t\t//Remove placeholder from dropdown on first change\n\t\t\tconst placeholder = dropdown.select('option[value=\"-\"]')\n\t\t\tplaceholder.remove()\n\t\t\tpathwayOpts.shift()\n\t\t}\n\n\t\tconst idx = event.target.selectedIndex\n\t\tsettings.pathway = pathwayOpts[idx].value\n\t\tself.app.dispatch({\n\t\t\ttype: 'plot_edit',\n\t\t\tid: self.id,\n\t\t\tconfig: {\n\t\t\t\t//Need to clear the gsea_params completely\n\t\t\t\tgsea_params: {\n\t\t\t\t\tgeneset_name: null,\n\t\t\t\t\tpathway: pathwayOpts[idx].value\n\t\t\t\t},\n\t\t\t\thighlightGenes: [],\n\t\t\t\tsettings: {\n\t\t\t\t\tgsea: settings\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t})\n\tfor (const opt of pathwayOpts) {\n\t\tdropdown\n\t\t\t.append('option')\n\t\t\t.text(opt.label)\n\t\t\t.attr('value', opt.value)\n\t\t\t.attr('selected', opt.selected ? true : null)\n\t}\n}\n\nasync function render_gsea(self) {\n\t/*\nm {}\n- gene\n- logfoldchange\n- averagevalue\n- pvalue\n\nadd:\n- vo_circle\n\t*/\n\n\t//Render the dropdown if launched from state\n\t//Otherwise will persist on load\n\tself.dom.actionsDiv.selectAll('*').remove()\n\trenderPathwayDropdown(self)\n\tif (self.settings.pathway == '-' || self.settings.pathway == undefined) return\n\tself.dom.detailsDiv.selectAll('*').remove()\n\tself.dom.holder.selectAll('*').remove()\n\tself.dom.tableDiv.selectAll('*').remove()\n\tself.config.gsea_params.geneSetGroup = self.settings.pathway\n\tself.config.gsea_params.filter_non_coding_genes = self.settings.filter_non_coding_genes\n\tself.config.gsea_params.num_permutations = self.settings.num_permutations\n\n\tlet output\n\ttry {\n\t\tconst p = self.config.gsea_params\n\t\tconst body = {\n\t\t\tgenome: p.genome,\n\t\t\tgeneSetGroup: self.settings.pathway,\n\t\t\tfilter_non_coding_genes: self.settings.filter_non_coding_genes,\n\t\t\tmethod: self.settings.gsea_method\n\t\t}\n\t\tif (p.cacheId) {\n\t\t\tbody.cacheId = p.cacheId\n\t\t\t// Sending the DE request snapshot lets the server regenerate the\n\t\t\t// cache on miss (farm node without the file, TTL-expired).\n\t\t\tif (p.daRequest) body.daRequest = p.daRequest\n\t\t\t// Top-level dslabel makes the global auth middleware populate\n\t\t\t// clientAuthResult so the server can re-apply the same\n\t\t\t// auth-filter injection to daRequest before hashing.\n\t\t\tif (p.dslabel) body.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 (self.settings.gsea_method == 'blitzgsea') {\n\t\t\tbody.num_permutations = self.settings.num_permutations\n\t\t}\n\t\toutput = await rungsea(body, self.dom)\n\t\tif (output.error) {\n\t\t\tthrow output.error\n\t\t}\n\t} catch (e) {\n\t\t// Inline error block instead of alert(). Mirror the detail-plot\n\t\t// branch below so the GSEA pane shows the failure in-context (e.g.\n\t\t// blitzgsea calibration failures on small/degenerate signatures\n\t\t// from gsea.py's _safe_blitz_gsea, or daCacheMissing on a\n\t\t// stale-session cache regen).\n\t\tself.dom.holder.selectAll('*').remove()\n\t\tconst msg = String(e?.message || e)\n\t\tconst userMsg = /daCacheMissing|ENOENT|no such file/i.test(msg)\n\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: msg\n\t\tsayerror(self.dom.holder, userMsg)\n\t\treturn\n\t}\n\n\t//Ensure the image renders when toggling between tabs\n\tif (self.config.gsea_params.geneset_name != null) {\n\t\ttry {\n\t\t\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\t\t\tself.config.gsea_params.method = self.settings.gsea_method\n\t\t\t\tconst image = await rungsea(self.config.gsea_params, self.dom)\n\t\t\t\t// //render_gsea_plot(self, plot_data)\n\t\t\t\tif (image.error) throw image.error\n\t\t\t\tself.imageUrl = URL.createObjectURL(image)\n\t\t\t\tconst png_width = 600\n\t\t\t\tconst png_height = 400\n\t\t\t\tself.dom.holder.append('img').attr('width', png_width).attr('height', png_height).attr('src', self.imageUrl)\n\t\t\t} else if (self.settings.gsea_method == 'cerno') {\n\t\t\t\tif (!self.rankedDE && self.config.gsea_params.cacheId) {\n\t\t\t\t\tconst deResp = await dofetch3('genesetEnrichment', {\n\t\t\t\t\t\tbody: {\n\t\t\t\t\t\t\tgenome: self.config.gsea_params.genome,\n\t\t\t\t\t\t\tcacheId: self.config.gsea_params.cacheId,\n\t\t\t\t\t\t\t// Also send daRequest so the server can recompute\n\t\t\t\t\t\t\t// the cache on miss (same farm-safety reason as\n\t\t\t\t\t\t\t// the primary enrichment call).\n\t\t\t\t\t\t\tdaRequest: self.config.gsea_params.daRequest,\n\t\t\t\t\t\t\t// Top-level dslabel so the auth middleware populates\n\t\t\t\t\t\t\t// clientAuthResult for the server's auth-filter\n\t\t\t\t\t\t\t// adjustment of daRequest.\n\t\t\t\t\t\t\tdslabel: self.config.gsea_params.dslabel,\n\t\t\t\t\t\t\tfetchDE: true,\n\t\t\t\t\t\t\tgeneSetGroup: '-',\n\t\t\t\t\t\t\tfilter_non_coding_genes: false,\n\t\t\t\t\t\t\tmethod: 'cerno'\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tif (deResp.error) throw deResp.error\n\t\t\t\t\tself.rankedDE = deResp.data\n\t\t\t\t}\n\t\t\t\trender_cerno_plot(self, output)\n\t\t\t} else {\n\t\t\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tself.dom.holder.selectAll('*').remove()\n\t\t\tconst msg = String(e?.message || e)\n\t\t\tconst userMsg = /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\tsayerror(self.dom.holder, userMsg)\n\t\t\treturn\n\t\t}\n\t}\n\n\tconst table_stats = table2col({ holder: self.dom.detailsDiv.attr('data-testid', 'sjpp-gsea-stats') })\n\tconst [t1, t2] = table_stats.addRow()\n\tt2.style('text-align', 'center').style('font-size', '0.8em').style('opacity', '0.8').text('COUNT')\n\tlet addStats\n\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\taddStats = [\n\t\t\t{\n\t\t\t\tlabel: 'Gene sets analyzed',\n\t\t\t\tvalues: Object.keys(output.data).length\n\t\t\t}\n\t\t]\n\t} else if (self.settings.gsea_method == 'cerno') {\n\t\taddStats = [\n\t\t\t{\n\t\t\t\tlabel: 'Gene sets analyzed',\n\t\t\t\tvalues: Object.keys(output).length\n\t\t\t}\n\t\t]\n\t} else {\n\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t}\n\n\tfor (const dataRow of addStats) {\n\t\tconst [td1, td2] = table_stats.addRow()\n\t\ttd1.text(dataRow.label)\n\t\ttd2.style('text-align', 'end').text(dataRow.values)\n\t}\n\n\t// Generating the table\n\tself.gsea_table_rows = []\n\tlet output_keys\n\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\toutput_keys = Object.entries(output.data).map(([key, value]) => {\n\t\t\treturn { key, value } // Convert to an array of objects\n\t\t})\n\t} else if (self.settings.gsea_method == 'cerno') {\n\t\toutput_keys = Object.entries(output).map(([key, value]) => {\n\t\t\treturn { key, value } // Convert to an array of objects\n\t\t})\n\t} else {\n\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t}\n\n\tif (self.settings.fdr_or_top == 'top') {\n\t\t// Sorting the top (top_genesets) genesets in decreasing order\n\t\toutput_keys.sort((i, j) => Number(i.value.fdr) - Number(j.value.fdr))\n\t\tconst top_genesets = Math.min(self.settings.top_genesets, output_keys.length) // If the length of the table is less than the top cutoff, only iterate till the end of the table\n\t\tfor (let iter = 0; iter < top_genesets; iter++) {\n\t\t\tif (\n\t\t\t\tself.settings.max_gene_set_size_cutoff >= output_keys[iter].value.geneset_size &&\n\t\t\t\tself.settings.min_gene_set_size_cutoff <= output_keys[iter].value.geneset_size\n\t\t\t) {\n\t\t\t\tsetResultsRows(output_keys, iter, self)\n\t\t\t}\n\t\t}\n\t} else if (self.settings.fdr_or_top == 'fdr') {\n\t\tfor (let iter = 0; iter < output_keys.length; iter++) {\n\t\t\tif (\n\t\t\t\tself.settings.fdr_cutoff >= output_keys[iter].value.fdr &&\n\t\t\t\tself.settings.max_gene_set_size_cutoff >= output_keys[iter].value.geneset_size &&\n\t\t\t\tself.settings.min_gene_set_size_cutoff <= output_keys[iter].value.geneset_size\n\t\t\t) {\n\t\t\t\tsetResultsRows(output_keys, iter, self)\n\t\t\t}\n\t\t}\n\t}\n\n\tself.dom.tableDiv.selectAll('*').remove()\n\tconst d_gsea = self.dom.tableDiv.append('div')\n\t// table columns showing analysis results for each gene set\n\tself.gsea_table_cols = []\n\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\tself.gsea_table_cols = [\n\t\t\t{ label: 'Gene Set', sortable: true },\n\t\t\t//{ label: 'Enrichment Score' },\n\t\t\t{ label: 'Normalized Enrichment Score', barplot: { axisWidth: 200 }, sortable: true },\n\t\t\t{ label: 'Gene Set Size', sortable: true },\n\t\t\t{ label: 'P value', sortable: true },\n\t\t\t//{ label: 'Sidak' },\n\t\t\t{ label: 'FDR', sortable: true },\n\t\t\t{ label: 'Leading Edge' }\n\t\t]\n\t} else if (self.settings.gsea_method == 'cerno') {\n\t\tself.gsea_table_cols = [\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} else {\n\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t}\n\tlet download = {}\n\n\tif (self.config.chartType == 'differentialAnalysis') {\n\t\t//Highlight genes button\n\t\tself.dom.detailsDiv\n\t\t\t.append('button')\n\t\t\t.style('margin-left', '10px')\n\t\t\t.style(\n\t\t\t\t'display',\n\t\t\t\tself.config.chartType == 'differentialAnalysis' && self.config.gsea_params.geneset_name == null\n\t\t\t\t\t? 'none'\n\t\t\t\t\t: 'block'\n\t\t\t)\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\tself.app.dispatch({\n\t\t\t\t\ttype: 'plot_edit',\n\t\t\t\t\tid: self.id,\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tchildType: 'volcano',\n\t\t\t\t\t\thighlightedData: self.config.highlightGenes\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\tif (self.state.config.downloadFilename) download.fileName = self.state.config.downloadFilename\n\n\t//Table rerenders when main is called\n\t//Fix to show which gene set is selected after rerender\n\tconst geneSetIdx = self.gsea_table_rows.findIndex(row => row[0].value == self.config.gsea_params.geneset_name)\n\tconst selectedRows = geneSetIdx > -1 ? [geneSetIdx] : []\n\n\trenderTable({\n\t\tdownload,\n\t\tcolumns: self.gsea_table_cols,\n\t\trows: self.gsea_table_rows,\n\t\tdiv: d_gsea,\n\t\tshowLines: true,\n\t\tmaxHeight: '30vh',\n\t\tsingleMode: true,\n\t\tresize: true,\n\t\theader: { allowSort: true },\n\t\tselectedRows: selectedRows,\n\t\tnoButtonCallback: async index => {\n\t\t\tconst config = {\n\t\t\t\tgsea_params: {\n\t\t\t\t\tgeneset_name: self.gsea_table_rows[index][0].value\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (self.config.chartType == 'differentialAnalysis') {\n\t\t\t\t//Saves the data to highlight in the volcano plot\n\t\t\t\tlet genes\n\t\t\t\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\t\t\t\tgenes = [...self.gsea_table_rows[index][5].value.split(',')]\n\t\t\t\t} else if (self.settings.gsea_method == 'cerno') {\n\t\t\t\t\tgenes = [...self.gsea_table_rows[index][6].value.split(',')]\n\t\t\t\t} else {\n\t\t\t\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t\t\t\t}\n\t\t\t\tif (genes) config.highlightGenes = genes\n\t\t\t}\n\t\t\tawait self.app.dispatch({\n\t\t\t\ttype: 'plot_edit',\n\t\t\t\tid: self.id,\n\t\t\t\tconfig\n\t\t\t})\n\t\t}\n\t})\n}\n\nfunction setResultsRows(output_keys, iter, self) {\n\tconst pathway_name = output_keys[iter].key\n\tconst pval = output_keys[iter].value.pval\n\t\t? roundValueAuto(output_keys[iter].value.pval)\n\t\t: output_keys[iter].value.pval\n\tconst fdr = output_keys[iter].value.fdr ? roundValueAuto(output_keys[iter].value.fdr) : output_keys[iter].value.fdr\n\tif (self.settings.gsea_method == 'blitzgsea') {\n\t\tconst nes = output_keys[iter].value.nes ? roundValueAuto(output_keys[iter].value.nes) : output_keys[iter].value.nes\n\t\t// const sidak = output_keys[iter].value.sidak\n\t\t// \t? roundValueAuto(output_keys[iter].value.sidak)\n\t\t// \t: output_keys[iter].value.sidak\n\t\tself.gsea_table_rows.push([\n\t\t\t{ value: pathway_name },\n\t\t\t{ value: nes },\n\t\t\t{ value: output_keys[iter].value.geneset_size },\n\t\t\t{ value: pval },\n\t\t\t//{ value: sidak },\n\t\t\t{ value: fdr },\n\t\t\t{ value: output_keys[iter].value.leading_edge }\n\t\t])\n\t} else if (self.settings.gsea_method == 'cerno') {\n\t\tconst auc = output_keys[iter].value.auc ? roundValueAuto(output_keys[iter].value.auc) : output_keys[iter].value.auc\n\t\tconst es = output_keys[iter].value.es ? roundValueAuto(output_keys[iter].value.es) : output_keys[iter].value.es\n\t\tself.gsea_table_rows.push([\n\t\t\t{ value: pathway_name },\n\t\t\t{ value: auc },\n\t\t\t{ value: es },\n\t\t\t{ value: output_keys[iter].value.geneset_size },\n\t\t\t{ value: pval },\n\t\t\t{ value: fdr },\n\t\t\t{ value: output_keys[iter].value.leading_edge }\n\t\t])\n\t} else {\n\t\tthrow 'Unknown method:' + self.settings.gsea_method\n\t}\n}\n\nfunction render_cerno_plot(self, cerno_output) {\n\tconst holder = self.dom.holder\n\tholder.selectAll('*').remove()\n\tconst svg_width = 400\n\tconst svg_height = 400\n\tconst svg = holder.append('svg').attr('width', svg_width).attr('height', svg_height)\n\tconst toppad = 20\n\tconst rightpad = 5\n\tconst yaxisw = 50 //Math.max(50, svg_width / 8)\n\tconst xaxish = 50 //Math.max(50, svg_height / 8)\n\tconst yaxisg = svg.append('g')\n\tconst xaxisg = svg.append('g')\n\tconst xpad = 50\n\tconst ypad = 100\n\n\tconst rankedDE = self.rankedDE || self.config.gsea_params\n\tconst DE_output = []\n\tfor (let i = 0; i < rankedDE.genes.length; i++) {\n\t\tconst item = { gene: rankedDE.genes[i], fold_change: rankedDE.fold_change[i] }\n\t\tDE_output.push(item)\n\t}\n\tDE_output.sort((i, j) => j.fold_change - i.fold_change) // Sorting genes in descending order of fold change\n\n\tconst xscale = scaleLinear()\n\t\t.domain([0, DE_output.length])\n\t\t.range([xpad, svg_width - rightpad])\n\tconst yscale = scaleLinear()\n\t\t.domain([100, 0])\n\t\t.range([toppad, svg_height - ypad])\n\n\tyaxisg.attr('transform', 'translate(' + xpad + ',' + 0 + ')')\n\txaxisg.attr('transform', 'translate(' + 0 + ',' + (svg_height - ypad) + ')')\n\tconst xlab = svg\n\t\t.append('text')\n\t\t.text('Gene list')\n\t\t.attr('fill', 'black')\n\t\t.attr('text-anchor', 'start')\n\t\t.attr('transform', 'translate(' + xscale(DE_output.length / 3) + ',' + (svg_height - ypad + 2 * toppad) + ')')\n\tconst ylab = svg\n\t\t.append('text')\n\t\t.text('Percentage of gene set')\n\t\t.attr('fill', 'black')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('y', xpad / 2)\n\t\t.attr('x', -svg_width / 2.5)\n\t\t.attr('transform', 'rotate(-90)')\n\tlet fontSize = 30\n\tconst title = svg\n\t\t.append('text')\n\t\t.text(self.config.gsea_params.geneset_name)\n\t\t.attr('fill', 'black')\n\t\t.attr('text-anchor', 'start')\n\t\t.attr('font-size', fontSize + 'px')\n\t\t.attr('transform', 'translate(' + xpad + ',' + toppad / 2 + ')')\n\n\t// Check to see if the text fits into the svg width and toppad dimensions. If not, decrease the font size until the text fits into these dimensions\n\tlet title_bbox = title.node().getBBox()\n\twhile (title_bbox.width > svg_width - xpad || title_bbox.height > (toppad * 3.5) / 5) {\n\t\tfontSize -= 1 // Decrease font size\n\t\ttitle.node().setAttribute('font-size', fontSize + 'px')\n\t\ttitle_bbox = title.node().getBBox() // Measure again\n\t}\n\n\tconst auc = cerno_output[self.config.gsea_params.geneset_name].auc\n\tif (typeof auc === 'number') {\n\t\tlet auc_pos\n\t\tif (auc >= 0.5) {\n\t\t\t// The position of the text changes depending upon the value of auc so as to avoid the auc curve overlapping with the text\n\t\t\tauc_pos = xscale((DE_output.length * 3) / 3.5) + ',' + (svg_height - ypad * 1.5)\n\t\t} else {\n\t\t\tauc_pos = xscale((DE_output.length * 0.8) / 4.5) + ',' + (svg_height - ypad * 3)\n\t\t}\n\t\tconst auc_text = svg\n\t\t\t.append('text')\n\t\t\t.text('AUC=' + roundValueAuto(auc))\n\t\t\t.attr('fill', 'black')\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.attr('transform', 'translate(' + auc_pos + ')')\n\t} else {\n\t\t// Should not happen\n\t\tthrow 'AUC not a number:' + auc\n\t}\n\n\taxisstyle({\n\t\taxis: yaxisg.call(d3axis.axisLeft().scale(yscale)),\n\t\tcolor: 'black',\n\t\tshowline: true,\n\t\tfontsize: '10'\n\t})\n\taxisstyle({\n\t\taxis: xaxisg.call(d3axis.axisBottom().scale(xscale)),\n\t\tcolor: 'black',\n\t\tshowline: true,\n\t\tfontsize: '10'\n\t})\n\n\t// Find genes that were found from cerno output\n\tif (Object.keys(cerno_output).includes(self.config.gsea_params.geneset_name)) {\n\t\tconst hit_genes = cerno_output[self.config.gsea_params.geneset_name].leading_edge.split(',')\n\t\tconst y_increment = 100 / hit_genes.length\n\t\tconst lines = svg.append('g')\n\n\t\tlet y_iter = 100\n\t\tfor (let i = 0; i < DE_output.length; i++) {\n\t\t\tconst y_old = y_iter\n\t\t\t// Increment y only when gene is found in geneset\n\t\t\tif (hit_genes.includes(DE_output[i].gene)) {\n\t\t\t\ty_iter = y_iter - y_increment\n\t\t\t\tlines\n\t\t\t\t\t.append('line') // attach a line\n\t\t\t\t\t.style('stroke', 'red') // colour the line\n\t\t\t\t\t.attr('x1', xscale(i)) // x position of the first end of the line\n\t\t\t\t\t.attr('y1', svg_height) // y position of the first end of the line\n\t\t\t\t\t.attr('x2', xscale(i)) // x position of the second end of the line\n\t\t\t\t\t.attr('y2', svg_height - ypad + 2.5 * toppad) // y position of the second end of the line\n\t\t\t}\n\t\t\tlines\n\t\t\t\t.append('line') // attach a line\n\t\t\t\t.style('stroke', 'red') // colour the line\n\t\t\t\t.attr('x1', xscale(i)) // x position of the first end of the line\n\t\t\t\t.attr('y1', yscale(100 - y_old)) // y position of the first end of the line\n\t\t\t\t.attr('x2', xscale(i + 1)) // x position of the second end of the line\n\t\t\t\t.attr('y2', yscale(100 - y_iter)) // y position of the second end of the line\n\t\t}\n\t} else {\n\t\t// Should not happen\n\t\tthrow '${self.config.gsea_params.geneset_name} not found'\n\t}\n\n\t//console.log('cerno_output:', cerno_output)\n\n\t// Find the genes that were found in the clicked geneset\n\t//const genes_found\n}\n\n// function render_gsea_plot(self, plot_data) {\n// \t// This function is for client side rendering of the gsea plot. This is not currently used. May be used later if client side rendering is later desired.\n// \tconsole.log('self.dom.holder:', self.dom.holder)\n// \tconst holder = self.dom.holder\n// \tconsole.log('plot_data:', plot_data)\n// \tholder.selectAll('*').remove()\n// \tconst running_sum = plot_data.running_sum.split(',').map(x => parseFloat(x))\n// \tconst es = parseFloat(plot_data.es)\n// \tconsole.log('running_sum:', running_sum)\n// \tconst svg_width = 400\n// \tconst svg_height = 400\n// \tconst svg = holder.append('svg').attr('width', svg_width).attr('height', svg_height)\n// \tconst toppad = 50\n// \tconst rightpad = 50\n// \tconst yaxisw = Math.max(50, svg_width / 8)\n// \tconst xaxish = Math.max(50, svg_height / 8)\n// \tconst yaxisg = svg.append('g')\n// \tconst xaxisg = svg.append('g')\n// \tconst xpad = svg_width / 50\n// \tconst ypad = svg_height / 50\n// \tyaxisg.attr('transform', 'translate(' + (yaxisw + xpad) + ',' + (toppad - ypad) + ')')\n// \txaxisg.attr('transform', 'translate(' + (yaxisw + xpad) + ',' + (svg_height - ypad) + ')')\n// \tconst xlab = xaxisg.append('text').text('Rank').attr('fill', 'black').attr('text-anchor', 'middle') //.attr('transform', 'translate(' + 200 + ',' + 200 + ')')\n// \tconst ylab = yaxisg\n// \t\t.append('text')\n// \t\t.text('ES')\n// \t\t.attr('fill', 'black')\n// \t\t.attr('text-anchor', 'middle')\n// \t\t.attr('transform', 'rotate(-90)')\n// \tconst xscale = scaleLinear().domain(running_sum).range([0, svg_width])\n// \tconst yscale = scaleLinear().domain([0, 100]).range([0, svg_height])\n// \t//const xscale = scaleLinear().domain([Math.min(running_sum), Math.max(running_sum)]).range([0, 100])\n// \taxisstyle({\n// \t\taxis: yaxisg.call(d3axis.axisLeft().scale(yscale)),\n// \t\tcolor: 'black',\n// \t\tshowline: true,\n// \t\tfontsize: '10'\n// \t})\n// \taxisstyle({\n// \t\taxis: xaxisg.call(d3axis.axisBottom().scale(xscale)),\n// \t\tcolor: 'black',\n// \t\tshowline: true,\n// \t\tfontsize: '10'\n// \t})\n// \t//xscale.range([0, svg_width])\n// \t//yscale.range([svg_height, 0])\n// \tconst lines = svg.append('g')\n// \t//svg.selectAll(\".axis text\").style(\"font-size\", \"100px\")\n// \tlet gene_number = 0\n// \tlet y1 = 0\n// \tfor (const rs of running_sum) {\n// \t\tlines\n// \t\t\t.append('line') // attach a line\n// \t\t\t.style('stroke', 'green') // colour the line\n// \t\t\t.attr('x1', xscale(gene_number)) // x position of the first end of the line\n// \t\t\t.attr('y1', yscale(y1)) // y position of the first end of the line\n// \t\t\t.attr('x2', xscale(gene_number)) // x position of the second end of the line\n// \t\t\t.attr('y2', yscale(Math.abs(rs))) // y position of the second end of the line\n// \t\tgene_number += 1\n// \t\ty1 = Math.abs(rs)\n// \t}\n// }\n\nexport function getDefaultGseaSettings(overrides = {}) {\n\tconst defaults = {\n\t\tfdr_cutoff: 0.05,\n\t\tnum_permutations: 1000,\n\t\ttop_genesets: 40,\n\t\tpathway: undefined,\n\t\tgeneset_name: null,\n\t\tmin_gene_set_size_cutoff: 0,\n\t\tmax_gene_set_size_cutoff: 20000,\n\t\tfilter_non_coding_genes: true,\n\t\tfdr_or_top: 'top',\n\t\tgsea_method: 'blitzgsea'\n\t}\n\tif (JSON.parse(sessionStorage.getItem('optionalFeatures')).gsea_test) {\n\t\t// set default method to CERNO when serverconfig flag gsea_test is defined\n\t\tdefaults.gsea_method = 'cerno'\n\t}\n\treturn Object.assign(defaults, overrides)\n}\n\nexport async function getPlotConfig(opts, app) {\n\t// if (!opts.gsea_params) throw 'No gsea_params provided [gsea getPlotConfig()]'\n\ttry {\n\t\tconst config = {\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)\n\t\t\t}\n\t\t}\n\t\treturn copyMerge(config, opts)\n\t} catch (e) {\n\t\tthrow `${e} [gsea getPlotConfig()]`\n\t}\n}\n\nexport const gseaInit = getCompInit(gsea)\n// this alias will allow abstracted dynamic imports\nexport const componentInit = gseaInit\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\nasync function rungsea(body, dom) {\n\t//Only show the loading div as the gsea is running\n\tdom.actionsDiv.style('display', 'none')\n\tdom.loadingDiv.style('display', 'block')\n\tconst data = await dofetch3('genesetEnrichment', { body })\n\tdom.loadingDiv.style('display', 'none')\n\tdom.actionsDiv.style('display', 'block')\n\treturn data\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,155 +0,0 @@
1
- import {
2
- dofetch3
3
- } from "./chunk-YC6ZJ7RP.js";
4
- import {
5
- DNA_METHYLATION,
6
- GENE_EXPRESSION,
7
- SINGLECELL_CELLTYPE
8
- } from "./chunk-EGWVYY7K.js";
9
- import {
10
- rgb
11
- } from "./chunk-OMR2DT66.js";
12
-
13
- // plots/volcano/colors.ts
14
- function getGroupColors(config) {
15
- const groups = config?.samplelst?.groups;
16
- const termValues = config?.tw?.term?.values;
17
- const rawDown = termValues?.[groups?.[0]?.name]?.color || "red";
18
- const rawUp = termValues?.[groups?.[1]?.name]?.color || "blue";
19
- return {
20
- controlColor: toHex(rawDown, "red"),
21
- caseColor: toHex(rawUp, "blue")
22
- };
23
- }
24
- function toHex(color, fallback) {
25
- const c = rgb(color || fallback);
26
- return c.displayable() ? c.formatHex() : rgb(fallback).formatHex();
27
- }
28
-
29
- // plots/volcano/model/VolcanoModel.ts
30
- var VolcanoModel = class {
31
- constructor(app, termType) {
32
- this.app = app;
33
- this.termType = termType;
34
- }
35
- /** May use mapper instead as more termTypes are added */
36
- async getData(config, settings) {
37
- this.config = config;
38
- this.settings = settings;
39
- if (this.termType === GENE_EXPRESSION) {
40
- const body = await this.getGERequestBody();
41
- const response = await dofetch3("termdb/DE", { body });
42
- if (response && !response.error) response.daRequest = body;
43
- return response;
44
- }
45
- if (this.termType === DNA_METHYLATION) {
46
- const body = await this.getDMRequestBody();
47
- const response = await dofetch3("termdb/diffMeth", { body });
48
- if (response && !response.error) response.daRequest = body;
49
- return response;
50
- }
51
- if (this.termType === SINGLECELL_CELLTYPE) {
52
- const body = await this.getSCCTRequestBody();
53
- return await dofetch3("termdb/singlecellDEgenes", { body });
54
- } else {
55
- throw new Error(`Volcano plot does not support route for termType='${this.termType}'`);
56
- }
57
- }
58
- //Gene expression
59
- async getGERequestBody() {
60
- await this.getOtherSamples(this.config.samplelst);
61
- const state = this.app.getState();
62
- const body = {
63
- genome: this.app.vocabApi.vocab.genome,
64
- dslabel: this.app.vocabApi.vocab.dslabel,
65
- method: this.settings.method,
66
- min_count: this.settings.minCount,
67
- min_total_count: this.settings.minTotalCount,
68
- samplelst: this.config.samplelst,
69
- filter: state.termfilter.filter,
70
- filter0: state.termfilter.filter0,
71
- cpm_cutoff: this.settings.cpmCutoff,
72
- volcanoRender: this.getVolcanoRender()
73
- };
74
- this.addConfounderTw(body);
75
- return body;
76
- }
77
- //DNA methylation
78
- async getDMRequestBody() {
79
- await this.getOtherSamples(this.config.samplelst);
80
- const state = this.app.getState();
81
- const body = {
82
- genome: this.app.vocabApi.vocab.genome,
83
- dslabel: this.app.vocabApi.vocab.dslabel,
84
- samplelst: this.config.samplelst,
85
- filter: state.termfilter.filter,
86
- filter0: state.termfilter.filter0,
87
- min_samples_per_group: this.settings.minSamplesPerGroup,
88
- volcanoRender: this.getVolcanoRender()
89
- };
90
- this.addConfounderTw(body);
91
- return body;
92
- }
93
- /** Parameters telling the server to run the `volcano` Rust renderer and return a
94
- * volcano PNG + top-significant rows instead of the full dot list. */
95
- getVolcanoRender() {
96
- const dotRadius = Math.max(this.settings.width, this.settings.height) / 80;
97
- const { caseColor, controlColor } = getGroupColors(this.config);
98
- return {
99
- significanceThresholds: {
100
- pValueCutoff: this.settings.pValue,
101
- pValueType: this.settings.pValueType,
102
- foldChangeCutoff: this.settings.foldChangeCutoff
103
- },
104
- pixelWidth: this.settings.width,
105
- pixelHeight: this.settings.height,
106
- colorSignificant: toHex(this.settings.defaultSignColor, "red"),
107
- colorSignificantUp: caseColor,
108
- colorSignificantDown: controlColor,
109
- colorNonsignificant: toHex(this.settings.defaultNonSignColor, "black"),
110
- dotRadius,
111
- maxInteractiveDots: this.settings.maxInteractiveDots
112
- };
113
- }
114
- //This is a workaround until the server can accept an arr of confounder tws
115
- addConfounderTw(body) {
116
- const confounders = this.config?.confounderTws;
117
- if (confounders?.length) {
118
- body.tw = this.config.confounderTws[0];
119
- if (confounders.length > 1) body.tw2 = this.config.confounderTws[1];
120
- }
121
- }
122
- //Single cell cell type
123
- getSCCTRequestBody() {
124
- const body = {
125
- genome: this.app.vocabApi.vocab.genome,
126
- dslabel: this.app.vocabApi.vocab.dslabel,
127
- sample: this.config.sample,
128
- termId: this.config.termId,
129
- categoryName: this.config.categoryName,
130
- volcanoRender: this.getVolcanoRender()
131
- };
132
- return body;
133
- }
134
- /** retrieve the sampleId/sampleName for samples in
135
- * the "others" group instead of using {in: false} */
136
- async getOtherSamples(samplelst) {
137
- const othersSamplesGroup = samplelst.groups.find((g) => !g.in);
138
- if (!othersSamplesGroup) return;
139
- const state = this.app.getState();
140
- const samplesGroup = samplelst.groups.find((g) => g.in);
141
- othersSamplesGroup.values = [];
142
- for (const s of await this.app.vocabApi.getFilteredSampleList(state.termfilter.filter)) {
143
- if (samplesGroup.values.indexOf((i) => i.sampleId == s.id) == -1) {
144
- othersSamplesGroup.values.push({ sampleId: s.id, sample: s.name });
145
- }
146
- }
147
- othersSamplesGroup.in = true;
148
- }
149
- };
150
-
151
- export {
152
- getGroupColors,
153
- VolcanoModel
154
- };
155
- //# sourceMappingURL=chunk-5FO3NKA4.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../plots/volcano/colors.ts", "../plots/volcano/model/VolcanoModel.ts"],
4
- "sourcesContent": ["import { rgb } from 'd3-color'\n\n/** Resolve the case/control dot colors for a volcano plot in one place so the\n * interactive SVG overlay (VolcanoViewModel) and the server-rendered PNG\n * (VolcanoModel \u2192 Rust) paint each dot the same color.\n *\n * `caseColor` maps to points with `fold_change > 0` (group 2 in samplelst),\n * `controlColor` to `fold_change < 0` (group 1). Every returned color is a\n * `#rrggbb` hex string \u2014 CSS names like `'red'` are normalized via d3-color\n * so the Rust renderer's hex-only parser doesn't fall back to a muted tuple.\n */\nexport function getGroupColors(config: any): { caseColor: string; controlColor: string } {\n\tconst groups = config?.samplelst?.groups\n\tconst termValues = config?.tw?.term?.values\n\tconst rawDown = termValues?.[groups?.[0]?.name]?.color || 'red'\n\tconst rawUp = termValues?.[groups?.[1]?.name]?.color || 'blue'\n\treturn {\n\t\tcontrolColor: toHex(rawDown, 'red'),\n\t\tcaseColor: toHex(rawUp, 'blue')\n\t}\n}\n\n/** Normalize any CSS-accepted color string into `#rrggbb`. */\nexport function toHex(color: string | undefined, fallback: string): string {\n\tconst c = rgb(color || fallback)\n\treturn c.displayable() ? c.formatHex() : rgb(fallback).formatHex()\n}\n", "import type { MassAppApi } from '#mass/types/mass'\nimport { dofetch3 } from '#common/dofetch'\nimport type { DERequest, DiffMethRequest, TermdbSingleCellDEgenesRequest, VolcanoRenderRequest } from '#types'\nimport { DNA_METHYLATION, GENE_EXPRESSION, SINGLECELL_CELLTYPE } from '#shared/terms.js'\nimport { getGroupColors, toHex } from '../colors'\n\nexport class VolcanoModel {\n\tapp: MassAppApi\n\tconfig!: any\n\tsettings!: any\n\ttermType: string\n\n\tconstructor(app: MassAppApi, termType: string) {\n\t\tthis.app = app\n\t\tthis.termType = termType\n\t}\n\n\t/** May use mapper instead as more termTypes are added */\n\tasync getData(config: any, settings: any) {\n\t\tthis.config = config\n\t\tthis.settings = settings\n\n\t\tif (this.termType === GENE_EXPRESSION) {\n\t\t\tconst body = await this.getGERequestBody()\n\t\t\tconst response = await dofetch3('termdb/DE', { body })\n\t\t\t// Surface the DE request so downstream plots (GSEA) can snapshot\n\t\t\t// it and later ask the server to recompute the DA cache if the\n\t\t\t// file is missing on a peer node or after TTL eviction.\n\t\t\tif (response && !response.error) response.daRequest = body\n\t\t\treturn response\n\t\t}\n\t\tif (this.termType === DNA_METHYLATION) {\n\t\t\tconst body = await this.getDMRequestBody()\n\t\t\tconst response = await dofetch3('termdb/diffMeth', { body })\n\t\t\t// Surface the DM request the same way the GE branch above does so\n\t\t\t// the GSEA tab can snapshot it and the server can recompute the DM\n\t\t\t// cache if the file is missing on a peer node or after TTL.\n\t\t\tif (response && !response.error) response.daRequest = body\n\t\t\treturn response\n\t\t}\n\t\tif (this.termType === SINGLECELL_CELLTYPE) {\n\t\t\tconst body = await this.getSCCTRequestBody()\n\t\t\treturn await dofetch3('termdb/singlecellDEgenes', { body })\n\t\t} else {\n\t\t\tthrow new Error(`Volcano plot does not support route for termType='${this.termType}'`)\n\t\t}\n\t}\n\n\t//Gene expression\n\tasync getGERequestBody() {\n\t\tawait this.getOtherSamples(this.config.samplelst)\n\t\tconst state = this.app.getState()\n\t\tconst body = {\n\t\t\tgenome: this.app.vocabApi.vocab.genome,\n\t\t\tdslabel: this.app.vocabApi.vocab.dslabel,\n\t\t\tmethod: this.settings.method,\n\t\t\tmin_count: this.settings.minCount,\n\t\t\tmin_total_count: this.settings.minTotalCount,\n\t\t\tsamplelst: this.config.samplelst,\n\t\t\tfilter: state.termfilter.filter,\n\t\t\tfilter0: state.termfilter.filter0,\n\t\t\tcpm_cutoff: this.settings.cpmCutoff,\n\t\t\tvolcanoRender: this.getVolcanoRender()\n\t\t} as Partial<DERequest> //remove Partial when storage_type is removed from DERequest\n\n\t\tthis.addConfounderTw(body)\n\n\t\treturn body\n\t}\n\n\t//DNA methylation\n\tasync getDMRequestBody() {\n\t\tawait this.getOtherSamples(this.config.samplelst)\n\t\tconst state = this.app.getState()\n\t\tconst body = {\n\t\t\tgenome: this.app.vocabApi.vocab.genome,\n\t\t\tdslabel: this.app.vocabApi.vocab.dslabel,\n\t\t\tsamplelst: this.config.samplelst,\n\t\t\tfilter: state.termfilter.filter,\n\t\t\tfilter0: state.termfilter.filter0,\n\t\t\tmin_samples_per_group: this.settings.minSamplesPerGroup,\n\t\t\tvolcanoRender: this.getVolcanoRender()\n\t\t} as Partial<DiffMethRequest>\n\n\t\tthis.addConfounderTw(body)\n\n\t\treturn body\n\t}\n\n\t/** Parameters telling the server to run the `volcano` Rust renderer and return a\n\t * volcano PNG + top-significant rows instead of the full dot list. */\n\tgetVolcanoRender(): VolcanoRenderRequest {\n\t\t// Match the client overlay's radius (see VolcanoViewModel.setPointData)\n\t\t// so the PNG rings and the interactive overlay rings line up; otherwise\n\t\t// a smaller PNG ring sits inside the larger overlay ring and looks like\n\t\t// a stray dot at the center.\n\t\tconst dotRadius = Math.max(this.settings.width, this.settings.height) / 80\n\t\t// Resolve case/control colors via the shared helper (see colors.ts) so the\n\t\t// PNG and the SVG overlay paint each side with the exact same hex string.\n\t\tconst { caseColor, controlColor } = getGroupColors(this.config)\n\t\treturn {\n\t\t\tsignificanceThresholds: {\n\t\t\t\tpValueCutoff: this.settings.pValue,\n\t\t\t\tpValueType: this.settings.pValueType,\n\t\t\t\tfoldChangeCutoff: this.settings.foldChangeCutoff\n\t\t\t},\n\t\t\tpixelWidth: this.settings.width,\n\t\t\tpixelHeight: this.settings.height,\n\t\t\tcolorSignificant: toHex(this.settings.defaultSignColor, 'red'),\n\t\t\tcolorSignificantUp: caseColor,\n\t\t\tcolorSignificantDown: controlColor,\n\t\t\tcolorNonsignificant: toHex(this.settings.defaultNonSignColor, 'black'),\n\t\t\tdotRadius,\n\t\t\tmaxInteractiveDots: this.settings.maxInteractiveDots\n\t\t}\n\t}\n\n\t//This is a workaround until the server can accept an arr of confounder tws\n\taddConfounderTw(body) {\n\t\tconst confounders = this.config?.confounderTws\n\t\tif (confounders?.length) {\n\t\t\tbody.tw = this.config.confounderTws[0]\n\t\t\tif (confounders.length > 1) body.tw2 = this.config.confounderTws[1]\n\t\t}\n\t}\n\n\t//Single cell cell type\n\tgetSCCTRequestBody(): TermdbSingleCellDEgenesRequest {\n\t\tconst body = {\n\t\t\tgenome: this.app.vocabApi.vocab.genome,\n\t\t\tdslabel: this.app.vocabApi.vocab.dslabel,\n\t\t\tsample: this.config.sample,\n\t\t\ttermId: this.config.termId,\n\t\t\tcategoryName: this.config.categoryName,\n\t\t\tvolcanoRender: this.getVolcanoRender()\n\t\t}\n\t\treturn body\n\t}\n\n\t/** retrieve the sampleId/sampleName for samples in\n\t * the \"others\" group instead of using {in: false} */\n\tasync getOtherSamples(samplelst) {\n\t\tconst othersSamplesGroup = samplelst.groups.find(g => !g.in)\n\t\tif (!othersSamplesGroup) return\n\n\t\tconst state = this.app.getState()\n\t\tconst samplesGroup = samplelst.groups.find(g => g.in)\n\t\tothersSamplesGroup.values = []\n\t\t// retrieve full list of samples based on current filter. put samples not in samplesGroup in \"others\" group\n\t\tfor (const s of await this.app.vocabApi.getFilteredSampleList(state.termfilter.filter)) {\n\t\t\t// s={id,name}, samplelst.groups[].values[]={sampleId,sample}\n\t\t\tif (samplesGroup.values.indexOf(i => i.sampleId == s.id) == -1) {\n\t\t\t\tothersSamplesGroup.values.push({ sampleId: s.id, sample: s.name })\n\t\t\t}\n\t\t}\n\t\tothersSamplesGroup.in = true\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,100 +0,0 @@
1
- import {
2
- SearchHandler,
3
- fillTermWrapper,
4
- table2col,
5
- termsettingInit
6
- } from "./chunk-LN3QYBGI.js";
7
-
8
- // plots/summarizeMutationDiagnosis.ts
9
- async function makeChartBtnMenu(holder, chartsInstance) {
10
- let dictTw;
11
- {
12
- const t = chartsInstance.app.vocabApi.termdbConfig.defaultTw4correlationPlot?.disease;
13
- if (!t) throw "defaultTw4correlationPlot missing";
14
- dictTw = structuredClone(t);
15
- await fillTermWrapper(dictTw, chartsInstance.app.vocabApi);
16
- }
17
- const table = table2col({
18
- holder: holder.append("div"),
19
- margin: "0px 10px 10px 10px",
20
- cellPadding: "10px"
21
- });
22
- {
23
- const [td1, td2] = table.addRow();
24
- td1.text("Mutation Variable");
25
- const searchDiv = td2.append("div");
26
- const geneSearchInst = new SearchHandler();
27
- geneSearchInst.init({
28
- holder: searchDiv,
29
- app: chartsInstance.app,
30
- // required to supply "opts.app.vocabApi" for the search ui
31
- genomeObj: chartsInstance.app.opts.genome,
32
- msg: "Hit ENTER to launch plot.",
33
- callback: async (geneTw) => {
34
- await fillTermWrapper(geneTw, chartsInstance.app.vocabApi);
35
- launchPlot({
36
- tw1: dictTw,
37
- tw2: geneTw,
38
- chartsInstance,
39
- holder
40
- });
41
- }
42
- });
43
- searchDiv.style("padding", "0px 0px 5px 0px");
44
- }
45
- {
46
- const [td1, td2] = table.addRow();
47
- td1.text("Compare Mutations Against");
48
- const pillDiv = td2.append("div"), waitDiv = td2.append("div").style("font-size", ".7em").text("LOADING ...");
49
- const pill = await termsettingInit({
50
- menuOptions: "{edit,replace}",
51
- /** presumably this usecase let it restrict to dictionary term ui, and hide genomic queries
52
- target="filter" works for gdc since in gdc ds it is overriding filter to dict
53
- but is not a general fix for non-gdc ds, which Replace menu will launch genomic+dict options
54
- maybe this is okay for non-gdc ds as the default dictTw is meaningful
55
- */
56
- usecase: { target: "filter" },
57
- vocabApi: chartsInstance.app.vocabApi,
58
- holder: pillDiv,
59
- callback: async (tw) => {
60
- waitDiv.text("LOADING ...");
61
- try {
62
- await pill.main(tw);
63
- dictTw = tw;
64
- waitDiv.text("Click to edit/replace the variable before searching gene.");
65
- } catch (e) {
66
- waitDiv.text("Error: " + (e.message || e));
67
- }
68
- }
69
- });
70
- try {
71
- await fillTermWrapper(dictTw, chartsInstance.app.vocabApi);
72
- await pill.main(dictTw);
73
- waitDiv.text("Click to edit/replace the variable before searching gene.");
74
- } catch (e) {
75
- waitDiv.text("Error: " + (e.message || e));
76
- }
77
- }
78
- }
79
- function launchPlot({ tw1, tw2, chartsInstance, holder }) {
80
- const chart = {
81
- config: {
82
- chartType: tw1?.term?.type == "survival" ? "survival" : "summary",
83
- // TODO define sandbox header with gene+term name
84
- term: tw1,
85
- term2: tw2
86
- }
87
- };
88
- chartsInstance.plotCreate(chart);
89
- holder.selectAll("*").remove();
90
- holder.append("div").style("margin", "20px").text("LOADING CHART ...");
91
- setTimeout(() => {
92
- holder.style("display", "none");
93
- }, 1e3);
94
- }
95
-
96
- export {
97
- makeChartBtnMenu,
98
- launchPlot
99
- };
100
- //# sourceMappingURL=chunk-5HOR6JQ2.js.map
@@ -1,180 +0,0 @@
1
- import {
2
- NumericModes
3
- } from "./chunk-EGWVYY7K.js";
4
-
5
- // plots/proteomeAbundance.ts
6
- function renderAssayAndCohortRadios({
7
- holder,
8
- organisms,
9
- selectedProteomeDetails,
10
- onChange,
11
- organismTitle = "Organism",
12
- assayTitle = "Assay Type",
13
- cohortTitle = "Sample Set"
14
- }) {
15
- const organismEntries = Object.entries(organisms || {});
16
- if (!organismEntries.length) {
17
- holder.append("div").attr("class", "sja_sharp_border").style("padding", "8px").text("No proteome organisms available.");
18
- return {
19
- getSelected: () => ({ organism: void 0, assay: void 0, cohort: void 0 })
20
- };
21
- }
22
- const initialProteomeDetails = selectedProteomeDetails || {};
23
- const organismRadioName = `sjpp-proteome-organism-${Math.random().toString().slice(-6)}`;
24
- const assayRadioName = `sjpp-proteome-assay-${Math.random().toString().slice(-6)}`;
25
- const cohortRadioName = `sjpp-proteome-cohort-${Math.random().toString().slice(-6)}`;
26
- let selectedOrganism = organisms[initialProteomeDetails.organism || ""] ? initialProteomeDetails.organism : organismEntries[0][0];
27
- let selectedAssay = initialProteomeDetails.assay;
28
- let selectedCohort = initialProteomeDetails.cohort;
29
- holder.append("div").style("margin", "3px 5px").style("padding", "3px 5px").style("font-weight", 600).text(organismTitle);
30
- const organismListDiv = holder.append("div").style("margin-bottom", "10px");
31
- holder.append("div").style("margin", "3px 5px").style("padding", "3px 5px").style("font-weight", 600).text(assayTitle);
32
- const assayListDiv = holder.append("div").style("margin-bottom", "10px");
33
- holder.append("div").style("margin", "3px 5px").style("padding", "3px 5px").style("font-weight", 600).text(cohortTitle);
34
- const cohortListDiv = holder.append("div").style("max-height", "300px").style("overflow-y", "auto").style("border", "1px solid #ddd").style("border-radius", "4px").style("padding", "5px");
35
- for (const [organismKey] of organismEntries) {
36
- const organismLabel = organismListDiv.append("label").attr("class", "sja_sharp_border").style("display", "block").style("cursor", "pointer").style("padding", "6px 8px").style("border-radius", "4px");
37
- organismLabel.append("input").attr("type", "radio").attr("name", organismRadioName).attr("value", organismKey).property("checked", organismKey === selectedOrganism).style("margin-right", "6px").on("change", () => {
38
- selectedOrganism = organismKey;
39
- selectedAssay = void 0;
40
- selectedCohort = void 0;
41
- renderAssayOptions();
42
- renderCohortOptions();
43
- onChange?.({ organism: selectedOrganism, assay: selectedAssay, cohort: selectedCohort });
44
- });
45
- organismLabel.append("span").text(organismKey);
46
- }
47
- renderAssayOptions();
48
- renderCohortOptions();
49
- onChange?.({ organism: selectedOrganism, assay: selectedAssay, cohort: selectedCohort });
50
- return {
51
- getSelected: () => ({ organism: selectedOrganism, assay: selectedAssay, cohort: selectedCohort })
52
- };
53
- function renderAssayOptions() {
54
- assayListDiv.selectAll("*").remove();
55
- const assays = organisms[selectedOrganism || ""]?.assays || {};
56
- const assayEntries = Object.entries(assays);
57
- if (!assayEntries.length) {
58
- selectedAssay = void 0;
59
- selectedCohort = void 0;
60
- assayListDiv.append("div").attr("class", "sja_sharp_border").style("padding", "8px").text("No assays available.");
61
- return;
62
- }
63
- if (!selectedAssay || !assays[selectedAssay]) {
64
- selectedAssay = assayEntries.some(([k]) => k === initialProteomeDetails.assay) ? initialProteomeDetails.assay : assayEntries[0][0];
65
- }
66
- for (const [assayKey] of assayEntries) {
67
- const assayLabel = assayListDiv.append("label").attr("class", "sja_sharp_border").style("display", "block").style("cursor", "pointer").style("padding", "6px 8px").style("border-radius", "4px");
68
- assayLabel.append("input").attr("type", "radio").attr("name", assayRadioName).attr("value", assayKey).property("checked", assayKey === selectedAssay).style("margin-right", "6px").on("change", () => {
69
- selectedAssay = assayKey;
70
- selectedCohort = void 0;
71
- renderCohortOptions();
72
- onChange?.({ organism: selectedOrganism, assay: selectedAssay, cohort: selectedCohort });
73
- });
74
- assayLabel.append("span").text(assayKey);
75
- }
76
- }
77
- function renderCohortOptions() {
78
- cohortListDiv.selectAll("*").remove();
79
- const cohorts = Object.keys(organisms[selectedOrganism || ""]?.assays?.[selectedAssay || ""]?.cohorts || {});
80
- if (!cohorts.length) {
81
- selectedCohort = void 0;
82
- cohortListDiv.append("div").attr("class", "sja_sharp_border").style("padding", "8px").text("No cohorts available.");
83
- return;
84
- }
85
- if (!selectedCohort || !organisms[selectedOrganism || ""]?.assays?.[selectedAssay || ""]?.cohorts?.[selectedCohort]) {
86
- selectedCohort = cohorts.includes(initialProteomeDetails.cohort || "") ? initialProteomeDetails.cohort : cohorts[0];
87
- }
88
- for (const cohortKey of cohorts) {
89
- const cohortLabel = cohortListDiv.append("label").attr("class", "sja_sharp_border").style("display", "block").style("cursor", "pointer").style("padding", "6px 8px").style("border-radius", "4px");
90
- cohortLabel.append("input").attr("type", "radio").attr("name", cohortRadioName).attr("value", cohortKey).property("checked", cohortKey === selectedCohort).style("margin-right", "6px").on("change", () => {
91
- selectedCohort = cohortKey;
92
- onChange?.({ organism: selectedOrganism, assay: selectedAssay, cohort: selectedCohort });
93
- });
94
- cohortLabel.append("span").text(cohortKey);
95
- }
96
- }
97
- }
98
- function makeChartBtnMenu(holder, chartsInstance) {
99
- chartsInstance.dom.tip.clear();
100
- const organisms = chartsInstance.state.termdbConfig?.queries?.proteome?.organisms || {};
101
- const menuDiv = holder.append("div");
102
- let selectedProteomeDetails;
103
- const launchOption = menuDiv.append("button").attr("class", "sjpp_apply_btn sja_filter_tag_btn sja_sharp_border").style("display", "block").style("margin", "10px auto 10px").text("Select Protein").on("click", () => {
104
- const current = selectedProteomeDetails;
105
- if (!current?.organism || !current.assay || !current.cohort) return;
106
- const { organism, assay, cohort } = current;
107
- const assayCohortTitle = `${organism} ${assay}: ${cohort}`;
108
- const chart = {
109
- label: "Protein Abundance",
110
- chartType: "proteomeAbundance",
111
- usecase: {
112
- target: "proteomeAbundance",
113
- detail: "term",
114
- proteomeDetails: { organism, assay, cohort },
115
- label: `Organism: ${organism}; Assay: ${assay}; Sample set: ${cohort}`
116
- },
117
- processSelection: (termlst) => termlst,
118
- updateActionBySelectedTerms: (action, termlst) => {
119
- action.config.assayCohortTitle = assayCohortTitle;
120
- const currentDetails = selectedProteomeDetails;
121
- if (!currentDetails?.organism || !currentDetails.assay || !currentDetails.cohort) return;
122
- const { organism: organism2, assay: assay2, cohort: cohort2 } = currentDetails;
123
- action.config.proteomeDetails = { organism: organism2, assay: assay2, cohort: cohort2 };
124
- const twlst = termlst.map((term) => {
125
- const t = structuredClone(term);
126
- t.proteomeDetails = { organism: organism2, assay: assay2, cohort: cohort2 };
127
- return { term: t, q: { mode: NumericModes.continuous } };
128
- });
129
- if (twlst.length == 1) {
130
- action.config.chartType = "summary";
131
- action.config.term = twlst[0];
132
- const proteomeOverlayTerm = chartsInstance.state.termdbConfig?.queries?.proteome?.organisms?.[organism2]?.overlayTerm;
133
- if (proteomeOverlayTerm) action.config.term2 = { term: structuredClone(proteomeOverlayTerm), q: {} };
134
- return;
135
- }
136
- if (twlst.length == 2) {
137
- action.config.chartType = "summary";
138
- action.config.term = twlst[0];
139
- action.config.term2 = twlst[1];
140
- return;
141
- }
142
- action.config.chartType = "hierCluster";
143
- action.config.dataType = "proteomeAbundance";
144
- action.config.termgroups = [{ name: "Protein Abundance Cluster", lst: twlst, type: "hierCluster" }];
145
- }
146
- };
147
- chartsInstance.dom.tip.clear();
148
- chartsInstance.showTree_selectlst(chart);
149
- });
150
- const syncLaunchButtonState = () => {
151
- if (!launchOption) return;
152
- if (selectedProteomeDetails?.cohort) launchOption.style("opacity", 1).style("pointer-events", "auto");
153
- else launchOption.style("opacity", 0.5).style("pointer-events", "none");
154
- };
155
- renderAssayAndCohortRadios({
156
- holder: menuDiv,
157
- organisms,
158
- onChange: (proteomeDetails) => {
159
- selectedProteomeDetails = proteomeDetails;
160
- syncLaunchButtonState();
161
- }
162
- });
163
- syncLaunchButtonState();
164
- }
165
- function toTvslstFilter(filterConfig) {
166
- if (filterConfig && Array.isArray(filterConfig) && filterConfig.length)
167
- return {
168
- type: "tvslst",
169
- in: true,
170
- join: filterConfig.length > 1 ? "and" : "",
171
- lst: filterConfig.map((tvs) => ({ type: "tvs", tvs }))
172
- };
173
- }
174
-
175
- export {
176
- renderAssayAndCohortRadios,
177
- makeChartBtnMenu,
178
- toTvslstFilter
179
- };
180
- //# sourceMappingURL=chunk-5LZKQFLO.js.map