@sjcrh/proteinpaint-client 2.191.4 → 2.193.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-US2ZAJJJ.js +1373 -0
  2. package/dist/AIProjectAdmin-QQO2PNAJ.js +958 -0
  3. package/dist/AIProjectAdmin-QQO2PNAJ.js.map +7 -0
  4. package/dist/AppHeader-UKB344GC.js +835 -0
  5. package/dist/BoxPlot-JEBLRKBY.js +1217 -0
  6. package/dist/BoxPlot-JEBLRKBY.js.map +7 -0
  7. package/dist/CorrelationVolcano-J3IFVSZB.js +619 -0
  8. package/dist/DE-PAPJP6AH.js +95 -0
  9. package/dist/DEinput-YON466QQ.js +301 -0
  10. package/dist/DifferentialAnalysis-DEUODXGG.js +245 -0
  11. package/dist/Disco-OZM4S7HF.js +3297 -0
  12. package/dist/Disco-OZM4S7HF.js.map +7 -0
  13. package/dist/Disco.UI-VIHYJGYU.js +249 -0
  14. package/dist/Disco.UI-VIHYJGYU.js.map +7 -0
  15. package/dist/DmrPlot-DSELMC4E.js +642 -0
  16. package/dist/GB-MUPI6RL5.js +1151 -0
  17. package/dist/GB-MUPI6RL5.js.map +7 -0
  18. package/dist/GeneExpInput-3AQEPTFZ.js +367 -0
  19. package/dist/GeneExpInput-3AQEPTFZ.js.map +7 -0
  20. package/dist/HicApp-BP7PSXY2.js +2250 -0
  21. package/dist/NumBinaryEditor-CHWQT445.js +271 -0
  22. package/dist/NumBinaryEditor.unit.spec-MXRNK7XH.js +286 -0
  23. package/dist/NumContEditor-XS3RA7GY.js +109 -0
  24. package/dist/NumContEditor.unit.spec-662MHSP4.js +169 -0
  25. package/dist/NumCustomBinEditor-LUVIAXMZ.js +38 -0
  26. package/dist/NumCustomBinEditor.unit.spec-3D3GY3F4.js +284 -0
  27. package/dist/NumDiscreteEditor-24W2A5IN.js +179 -0
  28. package/dist/NumDiscreteEditor.unit.spec-B5T42Z5S.js +202 -0
  29. package/dist/NumRegularBinEditor-AING4HZ5.js +38 -0
  30. package/dist/NumRegularBinEditor.unit.spec-UKSVZH2S.js +227 -0
  31. package/dist/NumSplineEditor-54KNKHJX.js +198 -0
  32. package/dist/NumSplineEditor.unit.spec-5FTST3Y5.js +199 -0
  33. package/dist/NumericDensity-C7DQZ5Q5.js +38 -0
  34. package/dist/NumericDensity.unit.spec-HV6SD3ZS.js +221 -0
  35. package/dist/NumericHandler-FV3L23EC.js +39 -0
  36. package/dist/NumericHandler.unit.spec-E72DXVBB.js +219 -0
  37. package/dist/ProteomeInput-3XTK74SN.js +396 -0
  38. package/dist/RunChart2-X5FBZVRX.js +758 -0
  39. package/dist/SC-WE5DG2CQ.js +1127 -0
  40. package/dist/SC-WE5DG2CQ.js.map +7 -0
  41. package/dist/Volcano-2USCTLKO.js +1379 -0
  42. package/dist/WSIViewer-U6VSJUFF.js +48562 -0
  43. package/dist/WSIViewer-U6VSJUFF.js.map +7 -0
  44. package/dist/WsiSamplesPlot-VIKSG63U.js +165 -0
  45. package/dist/adSandbox-VXUJGPD3.js +38 -0
  46. package/dist/animatedBubbleChart-4P7XLKSB.js +555 -0
  47. package/dist/animatedBubbleChart-4P7XLKSB.js.map +7 -0
  48. package/dist/app-KHZT2BVF.js +49 -0
  49. package/dist/app-XLYH3YPL.js +37 -0
  50. package/dist/app.js +20 -20
  51. package/dist/bam-C23ZARYE.js +860 -0
  52. package/dist/barchart-KGXLYEIP.js +47 -0
  53. package/dist/barchart.data-7OI5GZZ6.js +22 -0
  54. package/dist/barchart.events-3KDNIFBG.js +47 -0
  55. package/dist/barchart.integration.spec-OQYY54AQ.js +2010 -0
  56. package/dist/barchart.integration.spec-OQYY54AQ.js.map +7 -0
  57. package/dist/barchart2-AT5FXOUY.js +314 -0
  58. package/dist/barchart2-AT5FXOUY.js.map +7 -0
  59. package/dist/bars.renderer-57KSYAAT.js +12 -0
  60. package/dist/block-TCWYUB4R.js +6226 -0
  61. package/dist/block-TCWYUB4R.js.map +7 -0
  62. package/dist/block.init-7FHXQJNE.js +38 -0
  63. package/dist/block.mds.expressionrank-UGZQK7Z3.js +359 -0
  64. package/dist/block.mds.geneboxplot-2CQLB4YN.js +828 -0
  65. package/dist/block.mds.junction-JHPHWVOS.js +1545 -0
  66. package/dist/block.mds.svcnv-E7P2SVKK.js +6801 -0
  67. package/dist/block.svg-MVRR3C6V.js +164 -0
  68. package/dist/block.tk.aicheck-KX46G4TR.js +283 -0
  69. package/dist/block.tk.ase-WMXI47BF.js +365 -0
  70. package/dist/block.tk.bam-KFEGVEQQ.js +1906 -0
  71. package/dist/block.tk.bedgraphdot-P4DBCWFK.js +384 -0
  72. package/dist/block.tk.bigwig.ui-WJPH2Z7F.js +212 -0
  73. package/dist/block.tk.hicstraw-RSD6I2NX.js +823 -0
  74. package/dist/block.tk.junction-VZS2DEDO.js +2364 -0
  75. package/dist/block.tk.junction.textmatrixui-UCWGHZDI.js +199 -0
  76. package/dist/block.tk.ld-ERSIIBM2.js +99 -0
  77. package/dist/block.tk.menu-2ZNXE7CE.js +1029 -0
  78. package/dist/block.tk.pgv-EJLACCFR.js +944 -0
  79. package/dist/brainImaging-BMZJY6OT.js +423 -0
  80. package/dist/brainRegions-RZEBXPAS.js +221 -0
  81. package/dist/brainRegions-RZEBXPAS.js.map +7 -0
  82. package/dist/bubbleHeatmap-ERJFMLPK.js +383 -0
  83. package/dist/bubbleHeatmap-ERJFMLPK.js.map +7 -0
  84. package/dist/chunk-27FPMFP2.js +54 -0
  85. package/dist/chunk-3LYZMOLO.js +58 -0
  86. package/dist/chunk-455XZIIA.js +222 -0
  87. package/dist/chunk-474DTKP7.js +263 -0
  88. package/dist/chunk-4AP3O3JW.js +226 -0
  89. package/dist/chunk-4JWN7E7Q.js +117 -0
  90. package/dist/chunk-55MOHL3P.js +158 -0
  91. package/dist/chunk-5CR24RTX.js +381 -0
  92. package/dist/chunk-5QTJUPFS.js +26 -0
  93. package/dist/chunk-5TJQ6633.js +291 -0
  94. package/dist/chunk-5X5LI5YM.js +254 -0
  95. package/dist/chunk-634MOGE3.js +314 -0
  96. package/dist/chunk-634MOGE3.js.map +7 -0
  97. package/dist/chunk-6G4YOMWW.js +1825 -0
  98. package/dist/chunk-6SCBPP4C.js +95 -0
  99. package/dist/chunk-6YVEYTNH.js +4269 -0
  100. package/dist/chunk-6YVEYTNH.js.map +7 -0
  101. package/dist/chunk-73R5BVCY.js +5067 -0
  102. package/dist/chunk-73R5BVCY.js.map +7 -0
  103. package/dist/chunk-74XVBQF7.js +55 -0
  104. package/dist/chunk-7I3LST7R.js +272 -0
  105. package/dist/chunk-7KRS7L4U.js +1443 -0
  106. package/dist/chunk-7KRS7L4U.js.map +7 -0
  107. package/dist/chunk-ATUYZWHV.js +1289 -0
  108. package/dist/chunk-ATUYZWHV.js.map +7 -0
  109. package/dist/chunk-B6U3EDAF.js +448 -0
  110. package/dist/chunk-B6U3EDAF.js.map +7 -0
  111. package/dist/chunk-BKPDYW5T.js +177 -0
  112. package/dist/chunk-BO47H3VP.js +477 -0
  113. package/dist/chunk-BOO4W7WD.js +482 -0
  114. package/dist/chunk-C6YT5EM2.js +217 -0
  115. package/dist/chunk-CDUNE45Q.js +534 -0
  116. package/dist/chunk-CLN7ANNL.js +216 -0
  117. package/dist/chunk-CLNSNNQU.js +302 -0
  118. package/dist/chunk-COYULNJF.js +119 -0
  119. package/dist/chunk-DBFKUPM6.js +1275 -0
  120. package/dist/chunk-DNVSEW6P.js +170 -0
  121. package/dist/chunk-E6XLLQCG.js +299 -0
  122. package/dist/chunk-E6XLLQCG.js.map +7 -0
  123. package/dist/chunk-EC3SKPQT.js +446 -0
  124. package/dist/chunk-EDXQKDVQ.js +368 -0
  125. package/dist/chunk-EY253UB7.js +448 -0
  126. package/dist/chunk-EY253UB7.js.map +7 -0
  127. package/dist/chunk-FABY3ISP.js +176 -0
  128. package/dist/chunk-FABY3ISP.js.map +7 -0
  129. package/dist/chunk-FOPHIWFD.js +100 -0
  130. package/dist/chunk-FVX76DZS.js +203 -0
  131. package/dist/chunk-FXGE233W.js +2681 -0
  132. package/dist/chunk-GBXX3AHJ.js +343 -0
  133. package/dist/chunk-GVCQGWN7.js +34 -0
  134. package/dist/chunk-HXNUQOGN.js +234 -0
  135. package/dist/chunk-HXNUQOGN.js.map +7 -0
  136. package/dist/chunk-HXZSSHEB.js +37 -0
  137. package/dist/chunk-I73KUUYG.js +287 -0
  138. package/dist/chunk-IKDWQJZE.js +736 -0
  139. package/dist/chunk-IVXCWCKS.js +317 -0
  140. package/dist/chunk-IVXCWCKS.js.map +7 -0
  141. package/dist/chunk-JEZUPG4J.js +617 -0
  142. package/dist/chunk-JEZUPG4J.js.map +7 -0
  143. package/dist/chunk-JWHFMFF2.js +142 -0
  144. package/dist/chunk-K3OJJZCQ.js +230 -0
  145. package/dist/chunk-KM4JBR26.js +815 -0
  146. package/dist/chunk-KNOFEVOJ.js +54 -0
  147. package/dist/chunk-L7VDSIM7.js +20881 -0
  148. package/dist/chunk-L7VDSIM7.js.map +7 -0
  149. package/dist/chunk-LLX3NKB4.js +148 -0
  150. package/dist/chunk-LQJMCE7G.js +467 -0
  151. package/dist/chunk-LSWU6EAQ.js +31 -0
  152. package/dist/chunk-MNIBZTQE.js +146 -0
  153. package/dist/chunk-MQJVDIQK.js +2786 -0
  154. package/dist/chunk-N25ENPO3.js +14 -0
  155. package/dist/chunk-N3JT3KCV.js +399 -0
  156. package/dist/chunk-N6QEVQZV.js +194 -0
  157. package/dist/chunk-NJDW6ZQP.js +102 -0
  158. package/dist/chunk-NLQQIVTC.js +276 -0
  159. package/dist/chunk-NU2W6B7I.js +833 -0
  160. package/dist/chunk-NU2W6B7I.js.map +7 -0
  161. package/dist/chunk-OR43PGBV.js +98 -0
  162. package/dist/chunk-PWUERAAF.js +182 -0
  163. package/dist/chunk-PXCFA4ZQ.js +2327 -0
  164. package/dist/chunk-QSEGY3U5.js +129 -0
  165. package/dist/chunk-SC6IPDJR.js +6364 -0
  166. package/dist/chunk-SDMOLIEU.js +1205 -0
  167. package/dist/chunk-SDMOLIEU.js.map +7 -0
  168. package/dist/chunk-SOTB4FRE.js +2098 -0
  169. package/dist/chunk-SOTB4FRE.js.map +7 -0
  170. package/dist/chunk-T46LHXJW.js +283 -0
  171. package/dist/chunk-TJYRBEBK.js +2878 -0
  172. package/dist/chunk-UDL2DEBB.js +50 -0
  173. package/dist/chunk-UN3O2MNB.js +375 -0
  174. package/dist/chunk-UN3O2MNB.js.map +7 -0
  175. package/dist/chunk-UXDVUCXU.js +190 -0
  176. package/dist/chunk-UXDVUCXU.js.map +7 -0
  177. package/dist/chunk-VDIVDU3T.js +386 -0
  178. package/dist/chunk-VQZ2Z5YU.js +587 -0
  179. package/dist/chunk-VQZ2Z5YU.js.map +7 -0
  180. package/dist/chunk-VRLC7DAU.js +2833 -0
  181. package/dist/chunk-VRLC7DAU.js.map +7 -0
  182. package/dist/chunk-XQSQQSGB.js +1102 -0
  183. package/dist/chunk-XVXAQ3FI.js +1943 -0
  184. package/dist/chunk-Y45JIQ5Y.js +1219 -0
  185. package/dist/chunk-Y45JIQ5Y.js.map +7 -0
  186. package/dist/chunk-YQMENK5H.js +102 -0
  187. package/dist/chunk-ZUC4XNWU.js +514 -0
  188. package/dist/condition-ZPFBPMEZ.js +332 -0
  189. package/dist/controls-LIVMV2GV.js +41 -0
  190. package/dist/controls.config-2EOMBN5E.js +39 -0
  191. package/dist/correlation-D6GAPOP5.js +102 -0
  192. package/dist/correlation-D6GAPOP5.js.map +7 -0
  193. package/dist/cuminc-GPFDRNUP.js +1149 -0
  194. package/dist/cuminc.integration.spec-V4JYKLA6.js +678 -0
  195. package/dist/customdata.inputui-DSEUS3CT.js +289 -0
  196. package/dist/dataDownload-KT6K3M7Q.js +330 -0
  197. package/dist/dataDownload.integration.spec-VEX2RTSA.js +193 -0
  198. package/dist/databrowser.ui-VJKNMIXA.js +433 -0
  199. package/dist/dictionary-B27BMR5H.js +118 -0
  200. package/dist/dictionary-B27BMR5H.js.map +7 -0
  201. package/dist/dnaMethylation-BWQGUXVR.js +38 -0
  202. package/dist/dnaMethylation.integration.spec-YMGT2HYZ.js +203 -0
  203. package/dist/dofetch-BMSZZAAQ.js +51 -0
  204. package/dist/e2pca-KSY4DP53.js +350 -0
  205. package/dist/ep-4PAYGMWK.js +1256 -0
  206. package/dist/expclust.gdc.spec-XXFP2HHE.js +307 -0
  207. package/dist/facet-VCJQ7QPE.js +521 -0
  208. package/dist/forms2-IUD2SNOQ.js +539 -0
  209. package/dist/forms2-IUD2SNOQ.js.map +7 -0
  210. package/dist/gb-JDH242LG.js +88 -0
  211. package/dist/geneExpClustering-L23JB7XA.js +249 -0
  212. package/dist/geneExpression-P2ERCRXO.js +313 -0
  213. package/dist/geneExpression-QGPVFAN4.js +38 -0
  214. package/dist/geneExpression.unit.spec-6BQBM6VL.js +102 -0
  215. package/dist/geneORA-XIMJP665.js +278 -0
  216. package/dist/geneRanking-AJH5G22J.js +551 -0
  217. package/dist/geneVariant-AUUZ7S2B.js +41 -0
  218. package/dist/geneVariant-H6BGRRON.js +39 -0
  219. package/dist/geneVariant.integration.spec-FRCH6VI4.js +198 -0
  220. package/dist/genefusion.ui-AAJ37VFA.js +309 -0
  221. package/dist/geneset-5ARBBUYH.js +208 -0
  222. package/dist/genomeBrowser.spec-RV7YBSMZ.js +281 -0
  223. package/dist/grin2-4MYLICII.js +75 -0
  224. package/dist/grin2-4MYLICII.js.map +7 -0
  225. package/dist/grin2-RBK4NI6W.js +967 -0
  226. package/dist/grin2-RBK4NI6W.js.map +7 -0
  227. package/dist/gsea-XUMCVLFK.js +47 -0
  228. package/dist/hierCluster-HXOTNMC5.js +63 -0
  229. package/dist/hierCluster-PEDY7OTZ.js +59 -0
  230. package/dist/hierCluster.config-RKYCGNWW.js +40 -0
  231. package/dist/hierCluster.integration.spec-YKMAT7UU.js +395 -0
  232. package/dist/hierCluster.interactivity-LPTHVWHR.js +54 -0
  233. package/dist/hierCluster.renderers-4XWKHCNW.js +21 -0
  234. package/dist/imagePlot-3DF7ZH3U.js +163 -0
  235. package/dist/importPlot-N74SV3TL.js +8 -0
  236. package/dist/isoformExpression-FU7Y4OGU.js +40 -0
  237. package/dist/isoformExpression.unit.spec-BLQDKV37.js +208 -0
  238. package/dist/launch.adhoc-Y35FZV6H.js +42 -0
  239. package/dist/leftlabel.sample-ERJGAYTF.js +264 -0
  240. package/dist/leftlabel.sample-ERJGAYTF.js.map +7 -0
  241. package/dist/legacyDataset-TNIIJABK.js +119 -0
  242. package/dist/lollipop-DU37Q5E2.js +171 -0
  243. package/dist/maf-NRLSNDOT.js +452 -0
  244. package/dist/maftimeline-GRXGOOSJ.js +593 -0
  245. package/dist/matrix-G3BULZ7Y.js +58 -0
  246. package/dist/matrix-TCTX26A4.js +63 -0
  247. package/dist/matrix.cells-ED6RS5EC.js +28 -0
  248. package/dist/matrix.config-QHO2YNOT.js +41 -0
  249. package/dist/matrix.data-KQFMXWRX.js +25 -0
  250. package/dist/matrix.groups-RE74EFLY.js +27 -0
  251. package/dist/matrix.integration.spec-Y4FCZ2Q2.js +3072 -0
  252. package/dist/matrix.interactivity-3DW5WAM3.js +42 -0
  253. package/dist/matrix.layout-W57D765I.js +44 -0
  254. package/dist/matrix.legend-ZST44PIB.js +22 -0
  255. package/dist/matrix.renderers-NFRKXO7Y.js +38 -0
  256. package/dist/matrix.serieses-6ZKTFVWY.js +21 -0
  257. package/dist/matrix.sort-2UE47IOC.js +27 -0
  258. package/dist/matrix.sort.unit.spec-5CMWEXPE.js +472 -0
  259. package/dist/matrix.sorterUi-WC2YX7S7.js +18 -0
  260. package/dist/matrix.sorterUi.unit.spec-Y2HXWHJN.js +342 -0
  261. package/dist/mavb-BI4XKI5P.js +732 -0
  262. package/dist/mds.fimo-UJYESPNC.js +518 -0
  263. package/dist/mds.samplescatterplot-JKU5B4QR.js +1550 -0
  264. package/dist/mds.survivalplot-OP7Y4D3L.js +483 -0
  265. package/dist/numericDictTermCluster-DRIEJJSP.js +72 -0
  266. package/dist/oncomatrix-A3IE47HV.js +295 -0
  267. package/dist/oncomatrix.spec-TDWB2ROF.js +448 -0
  268. package/dist/plot.2dvaf-XY34TDSM.js +377 -0
  269. package/dist/plot.app-WRCBLYGO.js +41 -0
  270. package/dist/plot.barplot-RXGOUNHM.js +102 -0
  271. package/dist/plot.boxplot-GBZGSS3D.js +152 -0
  272. package/dist/plot.brainImaging-DYPKMNHL.js +51 -0
  273. package/dist/plot.disco-5K2SCKJ4.js +102 -0
  274. package/dist/plot.dzi-THJIFHIS.js +33 -0
  275. package/dist/plot.ssgq-FSIUIV3A.js +139 -0
  276. package/dist/plot.vaf2cov-HP6KEBVJ.js +259 -0
  277. package/dist/plot.wsi-MR6JMOXW.js +36 -0
  278. package/dist/polar2-IT3OF5DX.js +231 -0
  279. package/dist/polar2-IT3OF5DX.js.map +7 -0
  280. package/dist/profileForms-XXGJVF2T.js +446 -0
  281. package/dist/profileForms-XXGJVF2T.js.map +7 -0
  282. package/dist/profilePlot-J2C35OEY.js +54 -0
  283. package/dist/proteinView-7FDCILPH.js +1556 -0
  284. package/dist/proteinView-7FDCILPH.js.map +7 -0
  285. package/dist/qualitative-N7S2JHZM.js +43 -0
  286. package/dist/radar2-CDDOQGQX.js +326 -0
  287. package/dist/radar2-CDDOQGQX.js.map +7 -0
  288. package/dist/radarFacility2-ZQTHO2ON.js +334 -0
  289. package/dist/radarFacility2-ZQTHO2ON.js.map +7 -0
  290. package/dist/regression-PBGAMZAV.js +56 -0
  291. package/dist/regression.inputs-54E5YKI4.js +48 -0
  292. package/dist/regression.inputs.term-52MBTMVM.js +48 -0
  293. package/dist/regression.inputs.values.table-F3FOAYFV.js +45 -0
  294. package/dist/regression.integration.spec-M4RPJUE4.js +784 -0
  295. package/dist/regression.results-JOK6I2ZD.js +40 -0
  296. package/dist/regression.spec-O4HZB2HQ.js +708 -0
  297. package/dist/report-BDDTM7SV.js +222 -0
  298. package/dist/sampleScatter.spec-272GLYEK.js +202 -0
  299. package/dist/sampleView-E6OHEEP4.js +48 -0
  300. package/dist/samplelst-3LNF3DBG.js +111 -0
  301. package/dist/samplematrix-HL445X7I.js +2198 -0
  302. package/dist/sc-4LELHVIS.js +86 -0
  303. package/dist/scatter-IZIZURQD.js +851 -0
  304. package/dist/scatter-IZIZURQD.js.map +7 -0
  305. package/dist/scatter.integration.spec-BBEWMA7M.js +1206 -0
  306. package/dist/scatter.integration.spec-BBEWMA7M.js.map +7 -0
  307. package/dist/selectGenomeWithTklst-5LQGT4Z7.js +134 -0
  308. package/dist/singleCellCellType-T3ZT64EK.js +38 -0
  309. package/dist/singleCellCellType.unit.spec-AE4IAHOF.js +160 -0
  310. package/dist/singleCellGeneExpression-SRJXSDEB.js +38 -0
  311. package/dist/singleCellGeneExpression.unit.spec-EPL73UUO.js +153 -0
  312. package/dist/singleCellPlot-P2BHFTYZ.js +54 -0
  313. package/dist/singlecell-32SSD7VN.js +1572 -0
  314. package/dist/singlecell-7KRD5DP7.js +86 -0
  315. package/dist/snp-LE5R377N.js +38 -0
  316. package/dist/snp.unit.spec-UY6KQ5NJ.js +176 -0
  317. package/dist/snplocus-CP34ABUJ.js +208 -0
  318. package/dist/spliceevent.a53ss.diagram-JWLWQDNJ.js +151 -0
  319. package/dist/spliceevent.exonskip.diagram-C5526P7P.js +277 -0
  320. package/dist/spliceevent.noeventdiagram-352M63YB.js +460 -0
  321. package/dist/ssGSEA-BFTCECV3.js +38 -0
  322. package/dist/ssGSEA.unit.spec-4OUCKRDQ.js +88 -0
  323. package/dist/summarizeCnvGeneexp-Y3AWFIZA.js +163 -0
  324. package/dist/summarizeGeneexpSurvival-U5JSPG22.js +108 -0
  325. package/dist/summarizeMutationCnv-KCOVQEBC.js +164 -0
  326. package/dist/summarizeMutationDiagnosis-EQXEQABW.js +40 -0
  327. package/dist/summarizeMutationSurvival-4VGLG4SC.js +99 -0
  328. package/dist/summary-DXYCBNI4.js +49 -0
  329. package/dist/summary.integration.spec-MZTJISLP.js +414 -0
  330. package/dist/summaryInput-5Z3XVIL6.js +235 -0
  331. package/dist/sunburst-WVSQJYP2.js +284 -0
  332. package/dist/survival-3R3J2JBE.js +46 -0
  333. package/dist/survival-XQWFVGCJ.js +58 -0
  334. package/dist/survival.integration.spec-EBDPIBYM.js +821 -0
  335. package/dist/svgraph-SY2HVMYL.js +1387 -0
  336. package/dist/svmr-TIIMFKG7.js +3842 -0
  337. package/dist/table-5RFTXIQL.js +200 -0
  338. package/dist/termCollection-23QXTZDN.js +38 -0
  339. package/dist/termCollection-7KXABWVW.js +179 -0
  340. package/dist/termCollection.unit.spec-4AN2Z4PQ.js +208 -0
  341. package/dist/tk-WW6PJGPQ.js +46 -0
  342. package/dist/tp.ui-S5PO3MPH.js +1459 -0
  343. package/dist/tvs.dt-O7LUM5TK.js +39 -0
  344. package/dist/tvs.dtcnv.categorical-2OUFOD3W.js +40 -0
  345. package/dist/tvs.dtcnv.continuous-NOOUY5SZ.js +72 -0
  346. package/dist/tvs.dtfusion-KXQMP3UF.js +40 -0
  347. package/dist/tvs.dtsnvindel-PWHFTWZU.js +40 -0
  348. package/dist/tvs.dtsv-25FLS572.js +40 -0
  349. package/dist/tvs.numeric-KYAU5OV3.js +21 -0
  350. package/dist/tvs.samplelst-FLXNJFIV.js +104 -0
  351. package/dist/tvs.termCollection-PSVOMJE4.js +159 -0
  352. package/dist/violin-SWMEFWRA.js +46 -0
  353. package/dist/violin.integration.spec-6EQ6GC2N.js +1425 -0
  354. package/dist/violin.interactivity-WBIWPLSM.js +38 -0
  355. package/dist/violin.renderer-3WARZUOH.js +40 -0
  356. package/dist/vocabulary-WLHYHDX7.js +41 -0
  357. package/package.json +3 -3
  358. package/dist/2dmaf-Z3D2M3FB.js +0 -1373
  359. package/dist/AIProjectAdmin-2OQOQXH4.js +0 -956
  360. package/dist/AIProjectAdmin-2OQOQXH4.js.map +0 -7
  361. package/dist/AppHeader-PXLGVCVS.js +0 -835
  362. package/dist/BoxPlot-PUZKHACO.js +0 -1211
  363. package/dist/BoxPlot-PUZKHACO.js.map +0 -7
  364. package/dist/CorrelationVolcano-RO6CFLZA.js +0 -619
  365. package/dist/DE-CCA5SBJG.js +0 -95
  366. package/dist/DEinput-MRUQW6X6.js +0 -301
  367. package/dist/DifferentialAnalysis-5YQQLJKR.js +0 -245
  368. package/dist/Disco-4FTOJBLG.js +0 -3237
  369. package/dist/Disco-4FTOJBLG.js.map +0 -7
  370. package/dist/Disco.UI-IWVSK3RN.js +0 -245
  371. package/dist/Disco.UI-IWVSK3RN.js.map +0 -7
  372. package/dist/DmrPlot-FPJJHTM5.js +0 -642
  373. package/dist/GB-H6JETPRC.js +0 -1130
  374. package/dist/GB-H6JETPRC.js.map +0 -7
  375. package/dist/GeneExpInput-Q42COANS.js +0 -366
  376. package/dist/GeneExpInput-Q42COANS.js.map +0 -7
  377. package/dist/HicApp-BBD2YOMT.js +0 -2250
  378. package/dist/NumBinaryEditor-WMSF7HIO.js +0 -271
  379. package/dist/NumBinaryEditor.unit.spec-QQATLHF7.js +0 -286
  380. package/dist/NumContEditor-4CSTHVRX.js +0 -109
  381. package/dist/NumContEditor.unit.spec-2YF3OS3A.js +0 -169
  382. package/dist/NumCustomBinEditor-KFAYUWYV.js +0 -38
  383. package/dist/NumCustomBinEditor.unit.spec-YHAUSGPN.js +0 -284
  384. package/dist/NumDiscreteEditor-F46H5CME.js +0 -179
  385. package/dist/NumDiscreteEditor.unit.spec-5BIAWAVN.js +0 -202
  386. package/dist/NumRegularBinEditor-G7KOA7NR.js +0 -38
  387. package/dist/NumRegularBinEditor.unit.spec-Y6CBCWLN.js +0 -227
  388. package/dist/NumSplineEditor-JP2V2L4Y.js +0 -198
  389. package/dist/NumSplineEditor.unit.spec-N34QBZN3.js +0 -199
  390. package/dist/NumericDensity-JOPHLURB.js +0 -38
  391. package/dist/NumericDensity.unit.spec-N45PCLOT.js +0 -221
  392. package/dist/NumericHandler-SIM4E2Z5.js +0 -39
  393. package/dist/NumericHandler.unit.spec-NKLYDVTG.js +0 -219
  394. package/dist/ProteomeInput-5KMNE3PZ.js +0 -396
  395. package/dist/RunChart2-N7AZVQXJ.js +0 -758
  396. package/dist/SC-M6RGALZM.js +0 -936
  397. package/dist/SC-M6RGALZM.js.map +0 -7
  398. package/dist/Volcano-YH4RJTT5.js +0 -1379
  399. package/dist/WSIViewer-7LOVM3AU.js +0 -48508
  400. package/dist/WSIViewer-7LOVM3AU.js.map +0 -7
  401. package/dist/WsiSamplesPlot-QPPB7OOD.js +0 -165
  402. package/dist/adSandbox-R2QP74P7.js +0 -38
  403. package/dist/app-AIIN4WDE.js +0 -37
  404. package/dist/app-FJT5VXMF.js +0 -49
  405. package/dist/bam-QBO22VQB.js +0 -860
  406. package/dist/barchart-VDOP6FQU.js +0 -47
  407. package/dist/barchart.data-Z2E72EET.js +0 -22
  408. package/dist/barchart.events-NUYQBI5S.js +0 -47
  409. package/dist/barchart.integration.spec-COVZPXMH.js +0 -1980
  410. package/dist/barchart.integration.spec-COVZPXMH.js.map +0 -7
  411. package/dist/barchart2-KMSU4ROO.js +0 -311
  412. package/dist/barchart2-KMSU4ROO.js.map +0 -7
  413. package/dist/bars.renderer-JHCZDSM6.js +0 -12
  414. package/dist/block-TTN2IQAH.js +0 -6202
  415. package/dist/block-TTN2IQAH.js.map +0 -7
  416. package/dist/block.init-RRHHCNSR.js +0 -38
  417. package/dist/block.mds.expressionrank-7NWBRUII.js +0 -359
  418. package/dist/block.mds.geneboxplot-4BAJJWCC.js +0 -828
  419. package/dist/block.mds.junction-XRUIHAF5.js +0 -1545
  420. package/dist/block.mds.svcnv-YZ7PL733.js +0 -6801
  421. package/dist/block.svg-FUMP2J7A.js +0 -164
  422. package/dist/block.tk.aicheck-AIZEND45.js +0 -283
  423. package/dist/block.tk.ase-H26PKO5U.js +0 -365
  424. package/dist/block.tk.bam-XNZFHSDQ.js +0 -1906
  425. package/dist/block.tk.bedgraphdot-QTDBLBO2.js +0 -384
  426. package/dist/block.tk.bigwig.ui-OSRCPTQC.js +0 -212
  427. package/dist/block.tk.hicstraw-7GH6LVIH.js +0 -823
  428. package/dist/block.tk.junction-AJYML4AW.js +0 -2364
  429. package/dist/block.tk.junction.textmatrixui-4RIH3EZI.js +0 -199
  430. package/dist/block.tk.ld-AJYQ4C6T.js +0 -99
  431. package/dist/block.tk.menu-57OP5UW5.js +0 -1029
  432. package/dist/block.tk.pgv-XO7HP5MM.js +0 -944
  433. package/dist/brainImaging-65QDNR4D.js +0 -423
  434. package/dist/chunk-2XCUERHJ.js +0 -102
  435. package/dist/chunk-322QC6R4.js +0 -222
  436. package/dist/chunk-35SCELN4.js +0 -217
  437. package/dist/chunk-36EHIPV4.js +0 -514
  438. package/dist/chunk-3SZ6GKLB.js +0 -14
  439. package/dist/chunk-3ZLJDFJU.js +0 -368
  440. package/dist/chunk-4DXZGZOB.js +0 -54
  441. package/dist/chunk-4UWS5Y3N.js +0 -1438
  442. package/dist/chunk-4UWS5Y3N.js.map +0 -7
  443. package/dist/chunk-54EMVNPW.js +0 -102
  444. package/dist/chunk-57RBC6IZ.js +0 -302
  445. package/dist/chunk-5OUTR67M.js +0 -37
  446. package/dist/chunk-67DBIM6H.js +0 -293
  447. package/dist/chunk-67DBIM6H.js.map +0 -7
  448. package/dist/chunk-6A3IPDE2.js +0 -1943
  449. package/dist/chunk-6GN7X6LU.js +0 -2681
  450. package/dist/chunk-72X7LSBN.js +0 -54
  451. package/dist/chunk-74ZU4BT6.js +0 -2824
  452. package/dist/chunk-74ZU4BT6.js.map +0 -7
  453. package/dist/chunk-7EMWHCVW.js +0 -1825
  454. package/dist/chunk-7FACFCZK.js +0 -226
  455. package/dist/chunk-7XFGYYRV.js +0 -371
  456. package/dist/chunk-7XFGYYRV.js.map +0 -7
  457. package/dist/chunk-B6CSYKZJ.js +0 -1275
  458. package/dist/chunk-BDIKFVWZ.js +0 -443
  459. package/dist/chunk-BDIKFVWZ.js.map +0 -7
  460. package/dist/chunk-BWGU5NJS.js +0 -291
  461. package/dist/chunk-C5ZMAQXQ.js +0 -1173
  462. package/dist/chunk-C5ZMAQXQ.js.map +0 -7
  463. package/dist/chunk-CC3GFVV6.js +0 -117
  464. package/dist/chunk-CXQ6KS3Z.js +0 -1348
  465. package/dist/chunk-CXQ6KS3Z.js.map +0 -7
  466. package/dist/chunk-DCH54HC5.js +0 -824
  467. package/dist/chunk-DCH54HC5.js.map +0 -7
  468. package/dist/chunk-DD4R5P6W.js +0 -177
  469. package/dist/chunk-DKVUOBIE.js +0 -203
  470. package/dist/chunk-DR6H3QAA.js +0 -399
  471. package/dist/chunk-EH4NQ7C4.js +0 -170
  472. package/dist/chunk-EVN6KWPN.js +0 -50
  473. package/dist/chunk-FFEIP5CT.js +0 -458
  474. package/dist/chunk-FFEIP5CT.js.map +0 -7
  475. package/dist/chunk-FJP77STI.js +0 -158
  476. package/dist/chunk-FJP77STI.js.map +0 -7
  477. package/dist/chunk-G6O3URDN.js +0 -467
  478. package/dist/chunk-GNIK4JYM.js +0 -534
  479. package/dist/chunk-HKSNADSX.js +0 -477
  480. package/dist/chunk-I5RAQKKJ.js +0 -129
  481. package/dist/chunk-IW57W7EQ.js +0 -1210
  482. package/dist/chunk-IW57W7EQ.js.map +0 -7
  483. package/dist/chunk-J4SOF2ZH.js +0 -263
  484. package/dist/chunk-KPJZBCVI.js +0 -272
  485. package/dist/chunk-KSGA62R2.js +0 -2878
  486. package/dist/chunk-LTOBEUM2.js +0 -98
  487. package/dist/chunk-MYF2BWKC.js +0 -205
  488. package/dist/chunk-MYF2BWKC.js.map +0 -7
  489. package/dist/chunk-N2SKTCDK.js +0 -148
  490. package/dist/chunk-NGM3ZLIP.js +0 -230
  491. package/dist/chunk-NOEAT6CX.js +0 -317
  492. package/dist/chunk-NOEAT6CX.js.map +0 -7
  493. package/dist/chunk-NSXZPWRP.js +0 -482
  494. package/dist/chunk-O3JB4PIX.js +0 -31
  495. package/dist/chunk-OAWQ6LOO.js +0 -2063
  496. package/dist/chunk-OAWQ6LOO.js.map +0 -7
  497. package/dist/chunk-ODG6RD7P.js +0 -254
  498. package/dist/chunk-OEDZHPBJ.js +0 -58
  499. package/dist/chunk-ORL44TIK.js +0 -386
  500. package/dist/chunk-P3IENRWJ.js +0 -613
  501. package/dist/chunk-P3IENRWJ.js.map +0 -7
  502. package/dist/chunk-PCZNTK74.js +0 -26
  503. package/dist/chunk-QH6W3NVF.js +0 -287
  504. package/dist/chunk-QNETLNPB.js +0 -343
  505. package/dist/chunk-QQZ3SBF3.js +0 -216
  506. package/dist/chunk-R2MMURGK.js +0 -2786
  507. package/dist/chunk-SA7APTJR.js +0 -20792
  508. package/dist/chunk-SA7APTJR.js.map +0 -7
  509. package/dist/chunk-SHWLROJG.js +0 -283
  510. package/dist/chunk-SKREEF3H.js +0 -184
  511. package/dist/chunk-SKREEF3H.js.map +0 -7
  512. package/dist/chunk-TOU7EVFQ.js +0 -396
  513. package/dist/chunk-TOU7EVFQ.js.map +0 -7
  514. package/dist/chunk-UGVNZMLU.js +0 -4274
  515. package/dist/chunk-UGVNZMLU.js.map +0 -7
  516. package/dist/chunk-UI7OCM2A.js +0 -815
  517. package/dist/chunk-UJKW42DI.js +0 -6364
  518. package/dist/chunk-ULPMYS5B.js +0 -100
  519. package/dist/chunk-UOVALHAJ.js +0 -182
  520. package/dist/chunk-VGJSASRT.js +0 -446
  521. package/dist/chunk-VGYTAYFK.js +0 -276
  522. package/dist/chunk-VHOEJBFP.js +0 -736
  523. package/dist/chunk-VOUMS6IP.js +0 -1102
  524. package/dist/chunk-VV36JRUF.js +0 -381
  525. package/dist/chunk-W55XSG6K.js +0 -142
  526. package/dist/chunk-W6ME65LV.js +0 -34
  527. package/dist/chunk-WHI6466S.js +0 -146
  528. package/dist/chunk-WSDUD52Y.js +0 -55
  529. package/dist/chunk-XAVNZNXQ.js +0 -95
  530. package/dist/chunk-XMLURPEP.js +0 -194
  531. package/dist/chunk-YKXUK7HJ.js +0 -5041
  532. package/dist/chunk-YKXUK7HJ.js.map +0 -7
  533. package/dist/chunk-YZK37YCC.js +0 -119
  534. package/dist/chunk-ZTYNN6G5.js +0 -2327
  535. package/dist/chunk-ZXTHADSC.js +0 -158
  536. package/dist/condition-HDVYPJJD.js +0 -332
  537. package/dist/controls-YEEW46C6.js +0 -41
  538. package/dist/controls.config-C535H5DL.js +0 -39
  539. package/dist/correlation-AOSSSSL3.js +0 -99
  540. package/dist/correlation-AOSSSSL3.js.map +0 -7
  541. package/dist/cuminc-II7NFIFP.js +0 -1149
  542. package/dist/cuminc.integration.spec-B4N6OMBJ.js +0 -678
  543. package/dist/customdata.inputui-AI4ZBIEP.js +0 -289
  544. package/dist/dataDownload-ZQYLXN6D.js +0 -330
  545. package/dist/dataDownload.integration.spec-2PKYZ2AY.js +0 -193
  546. package/dist/databrowser.ui-WGD7D3XV.js +0 -433
  547. package/dist/dictionary-RYM4WP2W.js +0 -111
  548. package/dist/dictionary-RYM4WP2W.js.map +0 -7
  549. package/dist/dnaMethylation-WGJMJL5B.js +0 -38
  550. package/dist/dnaMethylation.integration.spec-DO3PV4MO.js +0 -203
  551. package/dist/dofetch-RADX3AFU.js +0 -51
  552. package/dist/e2pca-KOAAU2JX.js +0 -350
  553. package/dist/ep-CXCATXYH.js +0 -1256
  554. package/dist/expclust.gdc.spec-UJO2R3CW.js +0 -307
  555. package/dist/facet-2FBUAD7P.js +0 -521
  556. package/dist/forms2-ZBT5BZW3.js +0 -534
  557. package/dist/forms2-ZBT5BZW3.js.map +0 -7
  558. package/dist/gb-VCJFV63W.js +0 -88
  559. package/dist/geneExpClustering-FUNS6D2P.js +0 -249
  560. package/dist/geneExpression-2BWWGYL4.js +0 -38
  561. package/dist/geneExpression-2OPFWV2K.js +0 -313
  562. package/dist/geneExpression.unit.spec-G7BSHJQT.js +0 -102
  563. package/dist/geneORA-S3KQMBYL.js +0 -278
  564. package/dist/geneRanking-UZ36XAL7.js +0 -551
  565. package/dist/geneVariant-OOZ2SBXO.js +0 -41
  566. package/dist/geneVariant-ZHNVEKQ6.js +0 -39
  567. package/dist/geneVariant.integration.spec-2C7EWKEV.js +0 -198
  568. package/dist/genefusion.ui-ASICJNII.js +0 -309
  569. package/dist/geneset-SNM4M6UM.js +0 -208
  570. package/dist/genomeBrowser.spec-DJIRW2X7.js +0 -281
  571. package/dist/grin2-7AOJP5QJ.js +0 -1560
  572. package/dist/grin2-7AOJP5QJ.js.map +0 -7
  573. package/dist/grin2-RKJXYWJ5.js +0 -821
  574. package/dist/grin2-RKJXYWJ5.js.map +0 -7
  575. package/dist/gsea-SPTQJW67.js +0 -47
  576. package/dist/hierCluster-KDE5SMYP.js +0 -63
  577. package/dist/hierCluster-XG4YLVL3.js +0 -59
  578. package/dist/hierCluster.config-VNEEJCKJ.js +0 -40
  579. package/dist/hierCluster.integration.spec-SSDN7LSH.js +0 -395
  580. package/dist/hierCluster.interactivity-DKBSJ644.js +0 -54
  581. package/dist/hierCluster.renderers-OG6LZAT7.js +0 -21
  582. package/dist/imagePlot-M5JSHEY4.js +0 -163
  583. package/dist/importPlot-YH7ZY6RJ.js +0 -8
  584. package/dist/isoformExpression-EV27MKYZ.js +0 -40
  585. package/dist/isoformExpression.unit.spec-7T2GOHH3.js +0 -208
  586. package/dist/launch.adhoc-NOISOX5E.js +0 -42
  587. package/dist/leftlabel.sample-42AX4KTV.js +0 -260
  588. package/dist/leftlabel.sample-42AX4KTV.js.map +0 -7
  589. package/dist/legacyDataset-SWJCAWIR.js +0 -119
  590. package/dist/lollipop-LQCQBTSX.js +0 -171
  591. package/dist/maf-U237OWZ3.js +0 -452
  592. package/dist/maftimeline-NLZLMHT2.js +0 -593
  593. package/dist/matrix-DZJXYRYN.js +0 -63
  594. package/dist/matrix-Y5345QQG.js +0 -58
  595. package/dist/matrix.cells-PT7S74QP.js +0 -28
  596. package/dist/matrix.config-2ORCUWKX.js +0 -41
  597. package/dist/matrix.data-C6VPQJJ4.js +0 -25
  598. package/dist/matrix.groups-CEOCG2CT.js +0 -27
  599. package/dist/matrix.integration.spec-U4B3JB6N.js +0 -3072
  600. package/dist/matrix.interactivity-GFLIFIER.js +0 -42
  601. package/dist/matrix.layout-DOVDHTDX.js +0 -44
  602. package/dist/matrix.legend-JE4ZSLP7.js +0 -22
  603. package/dist/matrix.renderers-GPUJQ7KF.js +0 -38
  604. package/dist/matrix.serieses-REE4DCSR.js +0 -21
  605. package/dist/matrix.sort-VD5URUWY.js +0 -27
  606. package/dist/matrix.sort.unit.spec-4IOFVHJN.js +0 -472
  607. package/dist/matrix.sorterUi-VQYY6KBK.js +0 -18
  608. package/dist/matrix.sorterUi.unit.spec-V5O2EJBX.js +0 -342
  609. package/dist/mavb-SQDA3B2B.js +0 -732
  610. package/dist/mds.fimo-ZJSEPLD7.js +0 -518
  611. package/dist/mds.samplescatterplot-Y5V73GOY.js +0 -1550
  612. package/dist/mds.survivalplot-CZBRMHYN.js +0 -483
  613. package/dist/numericDictTermCluster-TFXBBUVI.js +0 -72
  614. package/dist/oncomatrix-ZILACPPI.js +0 -295
  615. package/dist/oncomatrix.spec-RLIVVVD6.js +0 -448
  616. package/dist/plot.2dvaf-BNRZPIKU.js +0 -377
  617. package/dist/plot.app-NRUARQCN.js +0 -41
  618. package/dist/plot.barplot-342AYQC7.js +0 -102
  619. package/dist/plot.boxplot-OHEJDPTW.js +0 -152
  620. package/dist/plot.brainImaging-KV72PAON.js +0 -51
  621. package/dist/plot.disco-OUE4RFHL.js +0 -102
  622. package/dist/plot.dzi-T3GPUH36.js +0 -33
  623. package/dist/plot.ssgq-WJHGMXW5.js +0 -139
  624. package/dist/plot.vaf2cov-NGD5PCV4.js +0 -259
  625. package/dist/plot.wsi-2MU5BDG3.js +0 -36
  626. package/dist/polar2-YCWPBPFU.js +0 -226
  627. package/dist/polar2-YCWPBPFU.js.map +0 -7
  628. package/dist/profileForms-OV3I6RK7.js +0 -441
  629. package/dist/profileForms-OV3I6RK7.js.map +0 -7
  630. package/dist/profilePlot-OMVO3K4H.js +0 -54
  631. package/dist/proteinView-OAR2RC6U.js +0 -1320
  632. package/dist/proteinView-OAR2RC6U.js.map +0 -7
  633. package/dist/qualitative-MEYBRUC6.js +0 -43
  634. package/dist/radar2-KREAMGVV.js +0 -321
  635. package/dist/radar2-KREAMGVV.js.map +0 -7
  636. package/dist/radarFacility2-DBPEV7VC.js +0 -329
  637. package/dist/radarFacility2-DBPEV7VC.js.map +0 -7
  638. package/dist/regression-ZPDPLI6G.js +0 -56
  639. package/dist/regression.inputs-QOSBAGL6.js +0 -48
  640. package/dist/regression.inputs.term-HMUMPY7X.js +0 -48
  641. package/dist/regression.inputs.values.table-VMCTZHLG.js +0 -45
  642. package/dist/regression.integration.spec-RP74JTAA.js +0 -784
  643. package/dist/regression.results-5XC6M67C.js +0 -40
  644. package/dist/regression.spec-EZYM24J7.js +0 -708
  645. package/dist/report-ZOVQCOGQ.js +0 -222
  646. package/dist/sampleScatter.spec-CD52FEOC.js +0 -202
  647. package/dist/sampleView-SVTLSWRG.js +0 -48
  648. package/dist/samplelst-HXF5POJD.js +0 -111
  649. package/dist/samplematrix-NYDAH74I.js +0 -2198
  650. package/dist/sc-JIDT4W4K.js +0 -86
  651. package/dist/scatter-WNRTPSEE.js +0 -849
  652. package/dist/scatter-WNRTPSEE.js.map +0 -7
  653. package/dist/scatter.integration.spec-3EYTPY5B.js +0 -1197
  654. package/dist/scatter.integration.spec-3EYTPY5B.js.map +0 -7
  655. package/dist/selectGenomeWithTklst-OSB7B6L3.js +0 -134
  656. package/dist/singleCellCellType-3BH7LWQ6.js +0 -38
  657. package/dist/singleCellCellType.unit.spec-RU4RJXFF.js +0 -160
  658. package/dist/singleCellGeneExpression-3UA4YER7.js +0 -38
  659. package/dist/singleCellGeneExpression.unit.spec-4ZTBG37H.js +0 -153
  660. package/dist/singleCellPlot-ZUAWK5RE.js +0 -54
  661. package/dist/singlecell-BGJZB7MF.js +0 -86
  662. package/dist/singlecell-RO3BL5OO.js +0 -1572
  663. package/dist/snp-HD7VQKBR.js +0 -38
  664. package/dist/snp.unit.spec-ISXCLMWW.js +0 -176
  665. package/dist/snplocus-IL5Z4XWV.js +0 -208
  666. package/dist/spliceevent.a53ss.diagram-LLJSPV7M.js +0 -151
  667. package/dist/spliceevent.exonskip.diagram-LAOIOIST.js +0 -277
  668. package/dist/spliceevent.noeventdiagram-MVA7Q3HT.js +0 -460
  669. package/dist/ssGSEA-7T6S3DSE.js +0 -38
  670. package/dist/ssGSEA.unit.spec-XJ3W4NWX.js +0 -88
  671. package/dist/summarizeCnvGeneexp-RRP6JUV6.js +0 -163
  672. package/dist/summarizeGeneexpSurvival-AFLHDD6Q.js +0 -108
  673. package/dist/summarizeMutationCnv-NABUYHMX.js +0 -164
  674. package/dist/summarizeMutationDiagnosis-2LQ7JU3K.js +0 -40
  675. package/dist/summarizeMutationSurvival-3WBT5TXG.js +0 -99
  676. package/dist/summary-FRDKOFXW.js +0 -49
  677. package/dist/summary.integration.spec-ZLRIA7G2.js +0 -414
  678. package/dist/summaryInput-4JO6MHP4.js +0 -235
  679. package/dist/sunburst-DRCVSC2X.js +0 -284
  680. package/dist/survival-AK75COPY.js +0 -58
  681. package/dist/survival-IF5NI3A6.js +0 -46
  682. package/dist/survival.integration.spec-7IWBTPJG.js +0 -821
  683. package/dist/svgraph-QBDF2SLB.js +0 -1387
  684. package/dist/svmr-O4GJJUT2.js +0 -3842
  685. package/dist/table-FQAIXKLE.js +0 -200
  686. package/dist/termCollection-GMDDL3L7.js +0 -179
  687. package/dist/termCollection-ZO5PZ7E3.js +0 -38
  688. package/dist/termCollection.unit.spec-5JBCTXHX.js +0 -208
  689. package/dist/tk-GJX23IV7.js +0 -46
  690. package/dist/tp.ui-T7FVMTGQ.js +0 -1459
  691. package/dist/tvs.dt-X7L7NSU6.js +0 -39
  692. package/dist/tvs.dtcnv.categorical-73G2V6CH.js +0 -40
  693. package/dist/tvs.dtcnv.continuous-DWFJL3X7.js +0 -72
  694. package/dist/tvs.dtfusion-HQADHCSV.js +0 -40
  695. package/dist/tvs.dtsnvindel-PY5OBMGW.js +0 -40
  696. package/dist/tvs.dtsv-OTBEEWSW.js +0 -40
  697. package/dist/tvs.numeric-WGDHEBJV.js +0 -21
  698. package/dist/tvs.samplelst-LCXSU5MG.js +0 -104
  699. package/dist/tvs.termCollection-L527XN4X.js +0 -159
  700. package/dist/violin-6VKRUQV3.js +0 -46
  701. package/dist/violin.integration.spec-RJATDLQH.js +0 -1425
  702. package/dist/violin.interactivity-SKF5H7MN.js +0 -38
  703. package/dist/violin.renderer-GB4TPX3B.js +0 -40
  704. package/dist/vocabulary-D3W44IWE.js +0 -41
  705. /package/dist/{2dmaf-Z3D2M3FB.js.map → 2dmaf-US2ZAJJJ.js.map} +0 -0
  706. /package/dist/{AppHeader-PXLGVCVS.js.map → AppHeader-UKB344GC.js.map} +0 -0
  707. /package/dist/{CorrelationVolcano-RO6CFLZA.js.map → CorrelationVolcano-J3IFVSZB.js.map} +0 -0
  708. /package/dist/{DE-CCA5SBJG.js.map → DE-PAPJP6AH.js.map} +0 -0
  709. /package/dist/{DEinput-MRUQW6X6.js.map → DEinput-YON466QQ.js.map} +0 -0
  710. /package/dist/{DifferentialAnalysis-5YQQLJKR.js.map → DifferentialAnalysis-DEUODXGG.js.map} +0 -0
  711. /package/dist/{DmrPlot-FPJJHTM5.js.map → DmrPlot-DSELMC4E.js.map} +0 -0
  712. /package/dist/{HicApp-BBD2YOMT.js.map → HicApp-BP7PSXY2.js.map} +0 -0
  713. /package/dist/{NumBinaryEditor-WMSF7HIO.js.map → NumBinaryEditor-CHWQT445.js.map} +0 -0
  714. /package/dist/{NumBinaryEditor.unit.spec-QQATLHF7.js.map → NumBinaryEditor.unit.spec-MXRNK7XH.js.map} +0 -0
  715. /package/dist/{NumContEditor-4CSTHVRX.js.map → NumContEditor-XS3RA7GY.js.map} +0 -0
  716. /package/dist/{NumContEditor.unit.spec-2YF3OS3A.js.map → NumContEditor.unit.spec-662MHSP4.js.map} +0 -0
  717. /package/dist/{NumCustomBinEditor-KFAYUWYV.js.map → NumCustomBinEditor-LUVIAXMZ.js.map} +0 -0
  718. /package/dist/{NumCustomBinEditor.unit.spec-YHAUSGPN.js.map → NumCustomBinEditor.unit.spec-3D3GY3F4.js.map} +0 -0
  719. /package/dist/{NumDiscreteEditor-F46H5CME.js.map → NumDiscreteEditor-24W2A5IN.js.map} +0 -0
  720. /package/dist/{NumDiscreteEditor.unit.spec-5BIAWAVN.js.map → NumDiscreteEditor.unit.spec-B5T42Z5S.js.map} +0 -0
  721. /package/dist/{NumRegularBinEditor-G7KOA7NR.js.map → NumRegularBinEditor-AING4HZ5.js.map} +0 -0
  722. /package/dist/{NumRegularBinEditor.unit.spec-Y6CBCWLN.js.map → NumRegularBinEditor.unit.spec-UKSVZH2S.js.map} +0 -0
  723. /package/dist/{NumSplineEditor-JP2V2L4Y.js.map → NumSplineEditor-54KNKHJX.js.map} +0 -0
  724. /package/dist/{NumSplineEditor.unit.spec-N34QBZN3.js.map → NumSplineEditor.unit.spec-5FTST3Y5.js.map} +0 -0
  725. /package/dist/{NumericDensity-JOPHLURB.js.map → NumericDensity-C7DQZ5Q5.js.map} +0 -0
  726. /package/dist/{NumericDensity.unit.spec-N45PCLOT.js.map → NumericDensity.unit.spec-HV6SD3ZS.js.map} +0 -0
  727. /package/dist/{NumericHandler-SIM4E2Z5.js.map → NumericHandler-FV3L23EC.js.map} +0 -0
  728. /package/dist/{NumericHandler.unit.spec-NKLYDVTG.js.map → NumericHandler.unit.spec-E72DXVBB.js.map} +0 -0
  729. /package/dist/{ProteomeInput-5KMNE3PZ.js.map → ProteomeInput-3XTK74SN.js.map} +0 -0
  730. /package/dist/{RunChart2-N7AZVQXJ.js.map → RunChart2-X5FBZVRX.js.map} +0 -0
  731. /package/dist/{Volcano-YH4RJTT5.js.map → Volcano-2USCTLKO.js.map} +0 -0
  732. /package/dist/{WsiSamplesPlot-QPPB7OOD.js.map → WsiSamplesPlot-VIKSG63U.js.map} +0 -0
  733. /package/dist/{adSandbox-R2QP74P7.js.map → adSandbox-VXUJGPD3.js.map} +0 -0
  734. /package/dist/{app-AIIN4WDE.js.map → app-KHZT2BVF.js.map} +0 -0
  735. /package/dist/{app-FJT5VXMF.js.map → app-XLYH3YPL.js.map} +0 -0
  736. /package/dist/{bam-QBO22VQB.js.map → bam-C23ZARYE.js.map} +0 -0
  737. /package/dist/{barchart-VDOP6FQU.js.map → barchart-KGXLYEIP.js.map} +0 -0
  738. /package/dist/{barchart.data-Z2E72EET.js.map → barchart.data-7OI5GZZ6.js.map} +0 -0
  739. /package/dist/{barchart.events-NUYQBI5S.js.map → barchart.events-3KDNIFBG.js.map} +0 -0
  740. /package/dist/{bars.renderer-JHCZDSM6.js.map → bars.renderer-57KSYAAT.js.map} +0 -0
  741. /package/dist/{block.init-RRHHCNSR.js.map → block.init-7FHXQJNE.js.map} +0 -0
  742. /package/dist/{block.mds.expressionrank-7NWBRUII.js.map → block.mds.expressionrank-UGZQK7Z3.js.map} +0 -0
  743. /package/dist/{block.mds.geneboxplot-4BAJJWCC.js.map → block.mds.geneboxplot-2CQLB4YN.js.map} +0 -0
  744. /package/dist/{block.mds.junction-XRUIHAF5.js.map → block.mds.junction-JHPHWVOS.js.map} +0 -0
  745. /package/dist/{block.mds.svcnv-YZ7PL733.js.map → block.mds.svcnv-E7P2SVKK.js.map} +0 -0
  746. /package/dist/{block.svg-FUMP2J7A.js.map → block.svg-MVRR3C6V.js.map} +0 -0
  747. /package/dist/{block.tk.aicheck-AIZEND45.js.map → block.tk.aicheck-KX46G4TR.js.map} +0 -0
  748. /package/dist/{block.tk.ase-H26PKO5U.js.map → block.tk.ase-WMXI47BF.js.map} +0 -0
  749. /package/dist/{block.tk.bam-XNZFHSDQ.js.map → block.tk.bam-KFEGVEQQ.js.map} +0 -0
  750. /package/dist/{block.tk.bedgraphdot-QTDBLBO2.js.map → block.tk.bedgraphdot-P4DBCWFK.js.map} +0 -0
  751. /package/dist/{block.tk.bigwig.ui-OSRCPTQC.js.map → block.tk.bigwig.ui-WJPH2Z7F.js.map} +0 -0
  752. /package/dist/{block.tk.hicstraw-7GH6LVIH.js.map → block.tk.hicstraw-RSD6I2NX.js.map} +0 -0
  753. /package/dist/{block.tk.junction-AJYML4AW.js.map → block.tk.junction-VZS2DEDO.js.map} +0 -0
  754. /package/dist/{block.tk.junction.textmatrixui-4RIH3EZI.js.map → block.tk.junction.textmatrixui-UCWGHZDI.js.map} +0 -0
  755. /package/dist/{block.tk.ld-AJYQ4C6T.js.map → block.tk.ld-ERSIIBM2.js.map} +0 -0
  756. /package/dist/{block.tk.menu-57OP5UW5.js.map → block.tk.menu-2ZNXE7CE.js.map} +0 -0
  757. /package/dist/{block.tk.pgv-XO7HP5MM.js.map → block.tk.pgv-EJLACCFR.js.map} +0 -0
  758. /package/dist/{brainImaging-65QDNR4D.js.map → brainImaging-BMZJY6OT.js.map} +0 -0
  759. /package/dist/{chunk-72X7LSBN.js.map → chunk-27FPMFP2.js.map} +0 -0
  760. /package/dist/{chunk-OEDZHPBJ.js.map → chunk-3LYZMOLO.js.map} +0 -0
  761. /package/dist/{chunk-322QC6R4.js.map → chunk-455XZIIA.js.map} +0 -0
  762. /package/dist/{chunk-J4SOF2ZH.js.map → chunk-474DTKP7.js.map} +0 -0
  763. /package/dist/{chunk-7FACFCZK.js.map → chunk-4AP3O3JW.js.map} +0 -0
  764. /package/dist/{chunk-CC3GFVV6.js.map → chunk-4JWN7E7Q.js.map} +0 -0
  765. /package/dist/{chunk-ZXTHADSC.js.map → chunk-55MOHL3P.js.map} +0 -0
  766. /package/dist/{chunk-VV36JRUF.js.map → chunk-5CR24RTX.js.map} +0 -0
  767. /package/dist/{chunk-PCZNTK74.js.map → chunk-5QTJUPFS.js.map} +0 -0
  768. /package/dist/{chunk-BWGU5NJS.js.map → chunk-5TJQ6633.js.map} +0 -0
  769. /package/dist/{chunk-ODG6RD7P.js.map → chunk-5X5LI5YM.js.map} +0 -0
  770. /package/dist/{chunk-7EMWHCVW.js.map → chunk-6G4YOMWW.js.map} +0 -0
  771. /package/dist/{chunk-XAVNZNXQ.js.map → chunk-6SCBPP4C.js.map} +0 -0
  772. /package/dist/{chunk-WSDUD52Y.js.map → chunk-74XVBQF7.js.map} +0 -0
  773. /package/dist/{chunk-KPJZBCVI.js.map → chunk-7I3LST7R.js.map} +0 -0
  774. /package/dist/{chunk-DD4R5P6W.js.map → chunk-BKPDYW5T.js.map} +0 -0
  775. /package/dist/{chunk-HKSNADSX.js.map → chunk-BO47H3VP.js.map} +0 -0
  776. /package/dist/{chunk-NSXZPWRP.js.map → chunk-BOO4W7WD.js.map} +0 -0
  777. /package/dist/{chunk-35SCELN4.js.map → chunk-C6YT5EM2.js.map} +0 -0
  778. /package/dist/{chunk-GNIK4JYM.js.map → chunk-CDUNE45Q.js.map} +0 -0
  779. /package/dist/{chunk-QQZ3SBF3.js.map → chunk-CLN7ANNL.js.map} +0 -0
  780. /package/dist/{chunk-57RBC6IZ.js.map → chunk-CLNSNNQU.js.map} +0 -0
  781. /package/dist/{chunk-YZK37YCC.js.map → chunk-COYULNJF.js.map} +0 -0
  782. /package/dist/{chunk-B6CSYKZJ.js.map → chunk-DBFKUPM6.js.map} +0 -0
  783. /package/dist/{chunk-EH4NQ7C4.js.map → chunk-DNVSEW6P.js.map} +0 -0
  784. /package/dist/{chunk-VGJSASRT.js.map → chunk-EC3SKPQT.js.map} +0 -0
  785. /package/dist/{chunk-3ZLJDFJU.js.map → chunk-EDXQKDVQ.js.map} +0 -0
  786. /package/dist/{chunk-ULPMYS5B.js.map → chunk-FOPHIWFD.js.map} +0 -0
  787. /package/dist/{chunk-DKVUOBIE.js.map → chunk-FVX76DZS.js.map} +0 -0
  788. /package/dist/{chunk-6GN7X6LU.js.map → chunk-FXGE233W.js.map} +0 -0
  789. /package/dist/{chunk-QNETLNPB.js.map → chunk-GBXX3AHJ.js.map} +0 -0
  790. /package/dist/{chunk-W6ME65LV.js.map → chunk-GVCQGWN7.js.map} +0 -0
  791. /package/dist/{chunk-5OUTR67M.js.map → chunk-HXZSSHEB.js.map} +0 -0
  792. /package/dist/{chunk-QH6W3NVF.js.map → chunk-I73KUUYG.js.map} +0 -0
  793. /package/dist/{chunk-VHOEJBFP.js.map → chunk-IKDWQJZE.js.map} +0 -0
  794. /package/dist/{chunk-W55XSG6K.js.map → chunk-JWHFMFF2.js.map} +0 -0
  795. /package/dist/{chunk-NGM3ZLIP.js.map → chunk-K3OJJZCQ.js.map} +0 -0
  796. /package/dist/{chunk-UI7OCM2A.js.map → chunk-KM4JBR26.js.map} +0 -0
  797. /package/dist/{chunk-4DXZGZOB.js.map → chunk-KNOFEVOJ.js.map} +0 -0
  798. /package/dist/{chunk-N2SKTCDK.js.map → chunk-LLX3NKB4.js.map} +0 -0
  799. /package/dist/{chunk-G6O3URDN.js.map → chunk-LQJMCE7G.js.map} +0 -0
  800. /package/dist/{chunk-O3JB4PIX.js.map → chunk-LSWU6EAQ.js.map} +0 -0
  801. /package/dist/{chunk-WHI6466S.js.map → chunk-MNIBZTQE.js.map} +0 -0
  802. /package/dist/{chunk-R2MMURGK.js.map → chunk-MQJVDIQK.js.map} +0 -0
  803. /package/dist/{chunk-3SZ6GKLB.js.map → chunk-N25ENPO3.js.map} +0 -0
  804. /package/dist/{chunk-DR6H3QAA.js.map → chunk-N3JT3KCV.js.map} +0 -0
  805. /package/dist/{chunk-XMLURPEP.js.map → chunk-N6QEVQZV.js.map} +0 -0
  806. /package/dist/{chunk-54EMVNPW.js.map → chunk-NJDW6ZQP.js.map} +0 -0
  807. /package/dist/{chunk-VGYTAYFK.js.map → chunk-NLQQIVTC.js.map} +0 -0
  808. /package/dist/{chunk-LTOBEUM2.js.map → chunk-OR43PGBV.js.map} +0 -0
  809. /package/dist/{chunk-UOVALHAJ.js.map → chunk-PWUERAAF.js.map} +0 -0
  810. /package/dist/{chunk-ZTYNN6G5.js.map → chunk-PXCFA4ZQ.js.map} +0 -0
  811. /package/dist/{chunk-I5RAQKKJ.js.map → chunk-QSEGY3U5.js.map} +0 -0
  812. /package/dist/{chunk-UJKW42DI.js.map → chunk-SC6IPDJR.js.map} +0 -0
  813. /package/dist/{chunk-SHWLROJG.js.map → chunk-T46LHXJW.js.map} +0 -0
  814. /package/dist/{chunk-KSGA62R2.js.map → chunk-TJYRBEBK.js.map} +0 -0
  815. /package/dist/{chunk-EVN6KWPN.js.map → chunk-UDL2DEBB.js.map} +0 -0
  816. /package/dist/{chunk-ORL44TIK.js.map → chunk-VDIVDU3T.js.map} +0 -0
  817. /package/dist/{chunk-VOUMS6IP.js.map → chunk-XQSQQSGB.js.map} +0 -0
  818. /package/dist/{chunk-6A3IPDE2.js.map → chunk-XVXAQ3FI.js.map} +0 -0
  819. /package/dist/{chunk-2XCUERHJ.js.map → chunk-YQMENK5H.js.map} +0 -0
  820. /package/dist/{chunk-36EHIPV4.js.map → chunk-ZUC4XNWU.js.map} +0 -0
  821. /package/dist/{condition-HDVYPJJD.js.map → condition-ZPFBPMEZ.js.map} +0 -0
  822. /package/dist/{controls-YEEW46C6.js.map → controls-LIVMV2GV.js.map} +0 -0
  823. /package/dist/{controls.config-C535H5DL.js.map → controls.config-2EOMBN5E.js.map} +0 -0
  824. /package/dist/{cuminc-II7NFIFP.js.map → cuminc-GPFDRNUP.js.map} +0 -0
  825. /package/dist/{cuminc.integration.spec-B4N6OMBJ.js.map → cuminc.integration.spec-V4JYKLA6.js.map} +0 -0
  826. /package/dist/{customdata.inputui-AI4ZBIEP.js.map → customdata.inputui-DSEUS3CT.js.map} +0 -0
  827. /package/dist/{dataDownload-ZQYLXN6D.js.map → dataDownload-KT6K3M7Q.js.map} +0 -0
  828. /package/dist/{dataDownload.integration.spec-2PKYZ2AY.js.map → dataDownload.integration.spec-VEX2RTSA.js.map} +0 -0
  829. /package/dist/{databrowser.ui-WGD7D3XV.js.map → databrowser.ui-VJKNMIXA.js.map} +0 -0
  830. /package/dist/{dnaMethylation-WGJMJL5B.js.map → dnaMethylation-BWQGUXVR.js.map} +0 -0
  831. /package/dist/{dnaMethylation.integration.spec-DO3PV4MO.js.map → dnaMethylation.integration.spec-YMGT2HYZ.js.map} +0 -0
  832. /package/dist/{dofetch-RADX3AFU.js.map → dofetch-BMSZZAAQ.js.map} +0 -0
  833. /package/dist/{e2pca-KOAAU2JX.js.map → e2pca-KSY4DP53.js.map} +0 -0
  834. /package/dist/{ep-CXCATXYH.js.map → ep-4PAYGMWK.js.map} +0 -0
  835. /package/dist/{expclust.gdc.spec-UJO2R3CW.js.map → expclust.gdc.spec-XXFP2HHE.js.map} +0 -0
  836. /package/dist/{facet-2FBUAD7P.js.map → facet-VCJQ7QPE.js.map} +0 -0
  837. /package/dist/{gb-VCJFV63W.js.map → gb-JDH242LG.js.map} +0 -0
  838. /package/dist/{geneExpClustering-FUNS6D2P.js.map → geneExpClustering-L23JB7XA.js.map} +0 -0
  839. /package/dist/{geneExpression-2OPFWV2K.js.map → geneExpression-P2ERCRXO.js.map} +0 -0
  840. /package/dist/{geneExpression-2BWWGYL4.js.map → geneExpression-QGPVFAN4.js.map} +0 -0
  841. /package/dist/{geneExpression.unit.spec-G7BSHJQT.js.map → geneExpression.unit.spec-6BQBM6VL.js.map} +0 -0
  842. /package/dist/{geneORA-S3KQMBYL.js.map → geneORA-XIMJP665.js.map} +0 -0
  843. /package/dist/{geneRanking-UZ36XAL7.js.map → geneRanking-AJH5G22J.js.map} +0 -0
  844. /package/dist/{geneVariant-OOZ2SBXO.js.map → geneVariant-AUUZ7S2B.js.map} +0 -0
  845. /package/dist/{geneVariant-ZHNVEKQ6.js.map → geneVariant-H6BGRRON.js.map} +0 -0
  846. /package/dist/{geneVariant.integration.spec-2C7EWKEV.js.map → geneVariant.integration.spec-FRCH6VI4.js.map} +0 -0
  847. /package/dist/{genefusion.ui-ASICJNII.js.map → genefusion.ui-AAJ37VFA.js.map} +0 -0
  848. /package/dist/{geneset-SNM4M6UM.js.map → geneset-5ARBBUYH.js.map} +0 -0
  849. /package/dist/{genomeBrowser.spec-DJIRW2X7.js.map → genomeBrowser.spec-RV7YBSMZ.js.map} +0 -0
  850. /package/dist/{gsea-SPTQJW67.js.map → gsea-XUMCVLFK.js.map} +0 -0
  851. /package/dist/{hierCluster-KDE5SMYP.js.map → hierCluster-HXOTNMC5.js.map} +0 -0
  852. /package/dist/{hierCluster-XG4YLVL3.js.map → hierCluster-PEDY7OTZ.js.map} +0 -0
  853. /package/dist/{hierCluster.config-VNEEJCKJ.js.map → hierCluster.config-RKYCGNWW.js.map} +0 -0
  854. /package/dist/{hierCluster.integration.spec-SSDN7LSH.js.map → hierCluster.integration.spec-YKMAT7UU.js.map} +0 -0
  855. /package/dist/{hierCluster.interactivity-DKBSJ644.js.map → hierCluster.interactivity-LPTHVWHR.js.map} +0 -0
  856. /package/dist/{hierCluster.renderers-OG6LZAT7.js.map → hierCluster.renderers-4XWKHCNW.js.map} +0 -0
  857. /package/dist/{imagePlot-M5JSHEY4.js.map → imagePlot-3DF7ZH3U.js.map} +0 -0
  858. /package/dist/{importPlot-YH7ZY6RJ.js.map → importPlot-N74SV3TL.js.map} +0 -0
  859. /package/dist/{isoformExpression-EV27MKYZ.js.map → isoformExpression-FU7Y4OGU.js.map} +0 -0
  860. /package/dist/{isoformExpression.unit.spec-7T2GOHH3.js.map → isoformExpression.unit.spec-BLQDKV37.js.map} +0 -0
  861. /package/dist/{launch.adhoc-NOISOX5E.js.map → launch.adhoc-Y35FZV6H.js.map} +0 -0
  862. /package/dist/{legacyDataset-SWJCAWIR.js.map → legacyDataset-TNIIJABK.js.map} +0 -0
  863. /package/dist/{lollipop-LQCQBTSX.js.map → lollipop-DU37Q5E2.js.map} +0 -0
  864. /package/dist/{maf-U237OWZ3.js.map → maf-NRLSNDOT.js.map} +0 -0
  865. /package/dist/{maftimeline-NLZLMHT2.js.map → maftimeline-GRXGOOSJ.js.map} +0 -0
  866. /package/dist/{matrix-DZJXYRYN.js.map → matrix-G3BULZ7Y.js.map} +0 -0
  867. /package/dist/{matrix-Y5345QQG.js.map → matrix-TCTX26A4.js.map} +0 -0
  868. /package/dist/{matrix.cells-PT7S74QP.js.map → matrix.cells-ED6RS5EC.js.map} +0 -0
  869. /package/dist/{matrix.config-2ORCUWKX.js.map → matrix.config-QHO2YNOT.js.map} +0 -0
  870. /package/dist/{matrix.data-C6VPQJJ4.js.map → matrix.data-KQFMXWRX.js.map} +0 -0
  871. /package/dist/{matrix.groups-CEOCG2CT.js.map → matrix.groups-RE74EFLY.js.map} +0 -0
  872. /package/dist/{matrix.integration.spec-U4B3JB6N.js.map → matrix.integration.spec-Y4FCZ2Q2.js.map} +0 -0
  873. /package/dist/{matrix.interactivity-GFLIFIER.js.map → matrix.interactivity-3DW5WAM3.js.map} +0 -0
  874. /package/dist/{matrix.layout-DOVDHTDX.js.map → matrix.layout-W57D765I.js.map} +0 -0
  875. /package/dist/{matrix.legend-JE4ZSLP7.js.map → matrix.legend-ZST44PIB.js.map} +0 -0
  876. /package/dist/{matrix.renderers-GPUJQ7KF.js.map → matrix.renderers-NFRKXO7Y.js.map} +0 -0
  877. /package/dist/{matrix.serieses-REE4DCSR.js.map → matrix.serieses-6ZKTFVWY.js.map} +0 -0
  878. /package/dist/{matrix.sort-VD5URUWY.js.map → matrix.sort-2UE47IOC.js.map} +0 -0
  879. /package/dist/{matrix.sort.unit.spec-4IOFVHJN.js.map → matrix.sort.unit.spec-5CMWEXPE.js.map} +0 -0
  880. /package/dist/{matrix.sorterUi-VQYY6KBK.js.map → matrix.sorterUi-WC2YX7S7.js.map} +0 -0
  881. /package/dist/{matrix.sorterUi.unit.spec-V5O2EJBX.js.map → matrix.sorterUi.unit.spec-Y2HXWHJN.js.map} +0 -0
  882. /package/dist/{mavb-SQDA3B2B.js.map → mavb-BI4XKI5P.js.map} +0 -0
  883. /package/dist/{mds.fimo-ZJSEPLD7.js.map → mds.fimo-UJYESPNC.js.map} +0 -0
  884. /package/dist/{mds.samplescatterplot-Y5V73GOY.js.map → mds.samplescatterplot-JKU5B4QR.js.map} +0 -0
  885. /package/dist/{mds.survivalplot-CZBRMHYN.js.map → mds.survivalplot-OP7Y4D3L.js.map} +0 -0
  886. /package/dist/{numericDictTermCluster-TFXBBUVI.js.map → numericDictTermCluster-DRIEJJSP.js.map} +0 -0
  887. /package/dist/{oncomatrix-ZILACPPI.js.map → oncomatrix-A3IE47HV.js.map} +0 -0
  888. /package/dist/{oncomatrix.spec-RLIVVVD6.js.map → oncomatrix.spec-TDWB2ROF.js.map} +0 -0
  889. /package/dist/{plot.2dvaf-BNRZPIKU.js.map → plot.2dvaf-XY34TDSM.js.map} +0 -0
  890. /package/dist/{plot.app-NRUARQCN.js.map → plot.app-WRCBLYGO.js.map} +0 -0
  891. /package/dist/{plot.barplot-342AYQC7.js.map → plot.barplot-RXGOUNHM.js.map} +0 -0
  892. /package/dist/{plot.boxplot-OHEJDPTW.js.map → plot.boxplot-GBZGSS3D.js.map} +0 -0
  893. /package/dist/{plot.brainImaging-KV72PAON.js.map → plot.brainImaging-DYPKMNHL.js.map} +0 -0
  894. /package/dist/{plot.disco-OUE4RFHL.js.map → plot.disco-5K2SCKJ4.js.map} +0 -0
  895. /package/dist/{plot.dzi-T3GPUH36.js.map → plot.dzi-THJIFHIS.js.map} +0 -0
  896. /package/dist/{plot.ssgq-WJHGMXW5.js.map → plot.ssgq-FSIUIV3A.js.map} +0 -0
  897. /package/dist/{plot.vaf2cov-NGD5PCV4.js.map → plot.vaf2cov-HP6KEBVJ.js.map} +0 -0
  898. /package/dist/{plot.wsi-2MU5BDG3.js.map → plot.wsi-MR6JMOXW.js.map} +0 -0
  899. /package/dist/{profilePlot-OMVO3K4H.js.map → profilePlot-J2C35OEY.js.map} +0 -0
  900. /package/dist/{qualitative-MEYBRUC6.js.map → qualitative-N7S2JHZM.js.map} +0 -0
  901. /package/dist/{regression-ZPDPLI6G.js.map → regression-PBGAMZAV.js.map} +0 -0
  902. /package/dist/{regression.inputs-QOSBAGL6.js.map → regression.inputs-54E5YKI4.js.map} +0 -0
  903. /package/dist/{regression.inputs.term-HMUMPY7X.js.map → regression.inputs.term-52MBTMVM.js.map} +0 -0
  904. /package/dist/{regression.inputs.values.table-VMCTZHLG.js.map → regression.inputs.values.table-F3FOAYFV.js.map} +0 -0
  905. /package/dist/{regression.integration.spec-RP74JTAA.js.map → regression.integration.spec-M4RPJUE4.js.map} +0 -0
  906. /package/dist/{regression.results-5XC6M67C.js.map → regression.results-JOK6I2ZD.js.map} +0 -0
  907. /package/dist/{regression.spec-EZYM24J7.js.map → regression.spec-O4HZB2HQ.js.map} +0 -0
  908. /package/dist/{report-ZOVQCOGQ.js.map → report-BDDTM7SV.js.map} +0 -0
  909. /package/dist/{sampleScatter.spec-CD52FEOC.js.map → sampleScatter.spec-272GLYEK.js.map} +0 -0
  910. /package/dist/{sampleView-SVTLSWRG.js.map → sampleView-E6OHEEP4.js.map} +0 -0
  911. /package/dist/{samplelst-HXF5POJD.js.map → samplelst-3LNF3DBG.js.map} +0 -0
  912. /package/dist/{samplematrix-NYDAH74I.js.map → samplematrix-HL445X7I.js.map} +0 -0
  913. /package/dist/{sc-JIDT4W4K.js.map → sc-4LELHVIS.js.map} +0 -0
  914. /package/dist/{selectGenomeWithTklst-OSB7B6L3.js.map → selectGenomeWithTklst-5LQGT4Z7.js.map} +0 -0
  915. /package/dist/{singleCellCellType-3BH7LWQ6.js.map → singleCellCellType-T3ZT64EK.js.map} +0 -0
  916. /package/dist/{singleCellCellType.unit.spec-RU4RJXFF.js.map → singleCellCellType.unit.spec-AE4IAHOF.js.map} +0 -0
  917. /package/dist/{singleCellGeneExpression-3UA4YER7.js.map → singleCellGeneExpression-SRJXSDEB.js.map} +0 -0
  918. /package/dist/{singleCellGeneExpression.unit.spec-4ZTBG37H.js.map → singleCellGeneExpression.unit.spec-EPL73UUO.js.map} +0 -0
  919. /package/dist/{singleCellPlot-ZUAWK5RE.js.map → singleCellPlot-P2BHFTYZ.js.map} +0 -0
  920. /package/dist/{singlecell-RO3BL5OO.js.map → singlecell-32SSD7VN.js.map} +0 -0
  921. /package/dist/{singlecell-BGJZB7MF.js.map → singlecell-7KRD5DP7.js.map} +0 -0
  922. /package/dist/{snp-HD7VQKBR.js.map → snp-LE5R377N.js.map} +0 -0
  923. /package/dist/{snp.unit.spec-ISXCLMWW.js.map → snp.unit.spec-UY6KQ5NJ.js.map} +0 -0
  924. /package/dist/{snplocus-IL5Z4XWV.js.map → snplocus-CP34ABUJ.js.map} +0 -0
  925. /package/dist/{spliceevent.a53ss.diagram-LLJSPV7M.js.map → spliceevent.a53ss.diagram-JWLWQDNJ.js.map} +0 -0
  926. /package/dist/{spliceevent.exonskip.diagram-LAOIOIST.js.map → spliceevent.exonskip.diagram-C5526P7P.js.map} +0 -0
  927. /package/dist/{spliceevent.noeventdiagram-MVA7Q3HT.js.map → spliceevent.noeventdiagram-352M63YB.js.map} +0 -0
  928. /package/dist/{ssGSEA-7T6S3DSE.js.map → ssGSEA-BFTCECV3.js.map} +0 -0
  929. /package/dist/{ssGSEA.unit.spec-XJ3W4NWX.js.map → ssGSEA.unit.spec-4OUCKRDQ.js.map} +0 -0
  930. /package/dist/{summarizeCnvGeneexp-RRP6JUV6.js.map → summarizeCnvGeneexp-Y3AWFIZA.js.map} +0 -0
  931. /package/dist/{summarizeGeneexpSurvival-AFLHDD6Q.js.map → summarizeGeneexpSurvival-U5JSPG22.js.map} +0 -0
  932. /package/dist/{summarizeMutationCnv-NABUYHMX.js.map → summarizeMutationCnv-KCOVQEBC.js.map} +0 -0
  933. /package/dist/{summarizeMutationDiagnosis-2LQ7JU3K.js.map → summarizeMutationDiagnosis-EQXEQABW.js.map} +0 -0
  934. /package/dist/{summarizeMutationSurvival-3WBT5TXG.js.map → summarizeMutationSurvival-4VGLG4SC.js.map} +0 -0
  935. /package/dist/{summary-FRDKOFXW.js.map → summary-DXYCBNI4.js.map} +0 -0
  936. /package/dist/{summary.integration.spec-ZLRIA7G2.js.map → summary.integration.spec-MZTJISLP.js.map} +0 -0
  937. /package/dist/{summaryInput-4JO6MHP4.js.map → summaryInput-5Z3XVIL6.js.map} +0 -0
  938. /package/dist/{sunburst-DRCVSC2X.js.map → sunburst-WVSQJYP2.js.map} +0 -0
  939. /package/dist/{survival-IF5NI3A6.js.map → survival-3R3J2JBE.js.map} +0 -0
  940. /package/dist/{survival-AK75COPY.js.map → survival-XQWFVGCJ.js.map} +0 -0
  941. /package/dist/{survival.integration.spec-7IWBTPJG.js.map → survival.integration.spec-EBDPIBYM.js.map} +0 -0
  942. /package/dist/{svgraph-QBDF2SLB.js.map → svgraph-SY2HVMYL.js.map} +0 -0
  943. /package/dist/{svmr-O4GJJUT2.js.map → svmr-TIIMFKG7.js.map} +0 -0
  944. /package/dist/{table-FQAIXKLE.js.map → table-5RFTXIQL.js.map} +0 -0
  945. /package/dist/{termCollection-ZO5PZ7E3.js.map → termCollection-23QXTZDN.js.map} +0 -0
  946. /package/dist/{termCollection-GMDDL3L7.js.map → termCollection-7KXABWVW.js.map} +0 -0
  947. /package/dist/{termCollection.unit.spec-5JBCTXHX.js.map → termCollection.unit.spec-4AN2Z4PQ.js.map} +0 -0
  948. /package/dist/{tk-GJX23IV7.js.map → tk-WW6PJGPQ.js.map} +0 -0
  949. /package/dist/{tp.ui-T7FVMTGQ.js.map → tp.ui-S5PO3MPH.js.map} +0 -0
  950. /package/dist/{tvs.dt-X7L7NSU6.js.map → tvs.dt-O7LUM5TK.js.map} +0 -0
  951. /package/dist/{tvs.dtcnv.categorical-73G2V6CH.js.map → tvs.dtcnv.categorical-2OUFOD3W.js.map} +0 -0
  952. /package/dist/{tvs.dtcnv.continuous-DWFJL3X7.js.map → tvs.dtcnv.continuous-NOOUY5SZ.js.map} +0 -0
  953. /package/dist/{tvs.dtfusion-HQADHCSV.js.map → tvs.dtfusion-KXQMP3UF.js.map} +0 -0
  954. /package/dist/{tvs.dtsnvindel-PY5OBMGW.js.map → tvs.dtsnvindel-PWHFTWZU.js.map} +0 -0
  955. /package/dist/{tvs.dtsv-OTBEEWSW.js.map → tvs.dtsv-25FLS572.js.map} +0 -0
  956. /package/dist/{tvs.numeric-WGDHEBJV.js.map → tvs.numeric-KYAU5OV3.js.map} +0 -0
  957. /package/dist/{tvs.samplelst-LCXSU5MG.js.map → tvs.samplelst-FLXNJFIV.js.map} +0 -0
  958. /package/dist/{tvs.termCollection-L527XN4X.js.map → tvs.termCollection-PSVOMJE4.js.map} +0 -0
  959. /package/dist/{violin-6VKRUQV3.js.map → violin-SWMEFWRA.js.map} +0 -0
  960. /package/dist/{violin.integration.spec-RJATDLQH.js.map → violin.integration.spec-6EQ6GC2N.js.map} +0 -0
  961. /package/dist/{violin.interactivity-SKF5H7MN.js.map → violin.interactivity-WBIWPLSM.js.map} +0 -0
  962. /package/dist/{violin.renderer-GB4TPX3B.js.map → violin.renderer-3WARZUOH.js.map} +0 -0
  963. /package/dist/{vocabulary-D3W44IWE.js.map → vocabulary-WLHYHDX7.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/brainRegions.ts"],
4
+ "sourcesContent": ["import type { MassState, BasePlotConfig } from '#mass/types/mass'\nimport { getCompInit, copyMerge, type RxComponent } from '#rx'\nimport { PlotBase } from './PlotBase'\nimport { Menu, addGeneSearchbox } from '#dom'\nimport { dofetch3 } from '#common/dofetch'\nimport { scaleLinear } from 'd3'\nimport { loadBrainAssets, renderBrainSvg, type BrainAssets } from './brainRegions.svg'\n\nconst defaultConfig = {\n\tchartType: 'brainRegions'\n}\n\nconst P_VALUE_THRESHOLD = 0.05\nconst NONSIG_COLOR = '#ccc'\n\nconst BRAIN_RENDER_W = 520\n\n// Monotonic counter for unique <linearGradient> ids (Date.now() can collide when\n// two legends render within the same millisecond).\nlet gradientSeq = 0\n\nclass BrainRegions extends PlotBase implements RxComponent {\n\tstatic type = 'brainRegions'\n\ttype: string\n\tdom!: {\n\t\tholder: any\n\t\tbody: any\n\t\ttip: Menu\n\t\theader?: any\n\t}\n\n\tconstructor(opts: any, api) {\n\t\tsuper(opts, api)\n\t\tthis.type = BrainRegions.type\n\t}\n\n\tasync init() {\n\t\tconst holder = this.opts.holder.append('div').style('padding', '10px')\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\tbody: holder.append('div'),\n\t\t\ttip: new Menu({ padding: '' }),\n\t\t\theader: this.opts.header\n\t\t}\n\t\tif (this.dom.header) this.dom.header.html('Brain Regional Proteome')\n\t}\n\n\tgetState(appState: MassState) {\n\t\tconst config: any = appState.plots.find((p: BasePlotConfig) => p.id === this.id)\n\t\tif (!config) throw `No plot with id='${this.id}' found`\n\t\treturn { config }\n\t}\n\n\tasync main() {\n\t\tconst gene = this.state.config?.gene\n\t\tif (!gene) throw new Error('brainRegions: gene is missing')\n\n\t\tif (this.dom.header) this.dom.header.text(`Brain Regional Proteome: ${gene}`)\n\n\t\tconst body = {\n\t\t\tgenome: this.app.opts.state.vocab.genome,\n\t\t\tdslabel: this.app.opts.state.vocab.dslabel,\n\t\t\tgene\n\t\t}\n\n\t\tconst data = await dofetch3('termdb/brainRegions', { body })\n\t\tif (data.error) throw data.error\n\n\t\tthis.dom.body.selectAll('*').remove()\n\n\t\t// Intro paragraph (config-driven), styled like the gene-ranking description note.\n\t\tconst description = this.app.vocabApi.termdbConfig?.queries?.proteome?.brainRegions?.description\n\t\tif (description) {\n\t\t\tthis.dom.body\n\t\t\t\t.append('div')\n\t\t\t\t.style('font-size', '0.85em')\n\t\t\t\t.style('color', '#555')\n\t\t\t\t.style('margin-bottom', '10px')\n\t\t\t\t.style('line-height', '1.4')\n\t\t\t\t.style('max-width', '600px')\n\t\t\t\t.style('white-space', 'normal')\n\t\t\t\t.style('overflow-wrap', 'break-word')\n\t\t\t\t.text(description)\n\t\t}\n\n\t\tconst isoformIds = Object.keys(data.isoforms)\n\t\tif (isoformIds.length === 0) {\n\t\t\tthis.dom.body\n\t\t\t\t.append('div')\n\t\t\t\t.style('padding', '20px')\n\t\t\t\t.style('color', '#666')\n\t\t\t\t.text(`No brain-region data found for gene \"${gene}\".`)\n\t\t\treturn\n\t\t}\n\n\t\tconst brainAssets = await loadBrainAssets(data.svgUrl, Object.keys(data.regions))\n\n\t\tconst controlRow = this.dom.body.append('div').style('margin-bottom', '15px')\n\t\tcontrolRow.append('span').style('font-weight', 'bold').text('Isoform: ')\n\n\t\tconst selectedIsoform = isoformIds[0]\n\t\tif (isoformIds.length > 1) {\n\t\t\tconst sel = controlRow\n\t\t\t\t.append('select')\n\t\t\t\t.style('margin-left', '5px')\n\t\t\t\t.style('padding', '3px 6px')\n\t\t\t\t.on('change', () => {\n\t\t\t\t\tthis.renderBrains(data, sel.node().value, brainAssets)\n\t\t\t\t})\n\n\t\t\tsel\n\t\t\t\t.selectAll('option')\n\t\t\t\t.data(isoformIds)\n\t\t\t\t.enter()\n\t\t\t\t.append('option')\n\t\t\t\t.attr('value', (d: string) => d)\n\t\t\t\t.text((d: string) => `${data.isoforms[d].gene_name} \u2014 ${d}`)\n\t\t} else {\n\t\t\tcontrolRow\n\t\t\t\t.append('span')\n\t\t\t\t.style('margin-left', '5px')\n\t\t\t\t.text(`${data.isoforms[selectedIsoform].gene_name} \u2014 ${selectedIsoform}`)\n\t\t}\n\n\t\tthis.renderBrains(data, selectedIsoform, brainAssets)\n\t}\n\n\trenderBrains(data: any, selectedIsoform: string, brainAssets: BrainAssets) {\n\t\tconst existing = this.dom.body.select('.sjpp-brain-regions-container')\n\t\tif (!existing.empty()) existing.remove()\n\n\t\tconst container = this.dom.body\n\t\t\t.append('div')\n\t\t\t.attr('class', 'sjpp-brain-regions-container')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('gap', '40px')\n\t\t\t.style('flex-wrap', 'wrap')\n\n\t\tconst isoformData = data.isoforms[selectedIsoform]\n\t\tif (!isoformData) return\n\n\t\tconst allFCs: number[] = []\n\t\tfor (const disease of data.diseases) {\n\t\t\tconst regionData = isoformData.data[disease] || {}\n\t\t\tfor (const entry of Object.values(regionData) as any[]) {\n\t\t\t\tif (entry.p_value < P_VALUE_THRESHOLD) {\n\t\t\t\t\tallFCs.push(entry.fold_change)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst maxAbsFC = allFCs.length > 0 ? Math.max(...allFCs.map(v => Math.abs(v))) : 1\n\t\tconst colorScale = scaleLinear<string>()\n\t\t\t.domain([-maxAbsFC, 0, maxAbsFC])\n\t\t\t.range(['#2166ac', '#f7f7f7', '#b2182b'])\n\t\t\t.clamp(true)\n\n\t\tfor (const disease of data.diseases) {\n\t\t\tconst regionData = isoformData.data[disease] || {}\n\t\t\trenderBrainSvg({\n\t\t\t\tholder: container,\n\t\t\t\twidth: BRAIN_RENDER_W,\n\t\t\t\ttemplateUrl: data.templateUrl,\n\t\t\t\tassets: brainAssets,\n\t\t\t\tregions: data.regions,\n\t\t\t\ttitle: disease,\n\t\t\t\ttip: this.dom.tip,\n\t\t\t\tfillByRegion: (code: string) => {\n\t\t\t\t\tconst entry = regionData[code]\n\t\t\t\t\tif (entry && entry.p_value < P_VALUE_THRESHOLD) return colorScale(entry.fold_change) as string\n\t\t\t\t\treturn NONSIG_COLOR\n\t\t\t\t},\n\t\t\t\ttooltipByRegion: (code: string, label: string) => {\n\t\t\t\t\tconst entry = regionData[code]\n\t\t\t\t\tif (!entry) return `${label} (${code})\\nNo data`\n\t\t\t\t\tconst fc = entry.fold_change.toFixed(4)\n\t\t\t\t\tconst p = entry.p_value >= 0.0001 ? entry.p_value.toFixed(4) : entry.p_value.toExponential(3)\n\t\t\t\t\treturn `${label} (${code})\\nlog\u2082 fold change: ${fc}\\np-value: ${p}`\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tthis.renderLegend(container, colorScale, maxAbsFC)\n\t}\n\n\trenderLegend(container: any, colorScale: any, maxAbsFC: number) {\n\t\tconst legendDiv = container\n\t\t\t.append('div')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('flex-direction', 'column')\n\t\t\t.style('justify-content', 'center')\n\t\t\t.style('padding', '10px')\n\n\t\tlegendDiv\n\t\t\t.append('div')\n\t\t\t.style('font-weight', 'bold')\n\t\t\t.style('font-size', '13px')\n\t\t\t.style('margin-bottom', '8px')\n\t\t\t.text('Fold Change (log\u2082)')\n\n\t\tconst legendWidth = 20\n\t\tconst legendHeight = 200\n\t\tconst svg = legendDiv\n\t\t\t.append('svg')\n\t\t\t.attr('width', legendWidth + 60)\n\t\t\t.attr('height', legendHeight + 30)\n\n\t\tconst defs = svg.append('defs')\n\t\tconst gradientId = `brain-fc-gradient-${gradientSeq++}`\n\t\tconst gradient = defs\n\t\t\t.append('linearGradient')\n\t\t\t.attr('id', gradientId)\n\t\t\t.attr('x1', '0')\n\t\t\t.attr('y1', '0')\n\t\t\t.attr('x2', '0')\n\t\t\t.attr('y2', '1')\n\n\t\tconst steps = 10\n\t\tfor (let i = 0; i <= steps; i++) {\n\t\t\tconst t = i / steps\n\t\t\tconst val = maxAbsFC * (1 - 2 * t)\n\t\t\tgradient\n\t\t\t\t.append('stop')\n\t\t\t\t.attr('offset', `${t * 100}%`)\n\t\t\t\t.attr('stop-color', colorScale(val))\n\t\t}\n\n\t\tsvg\n\t\t\t.append('rect')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('y', 10)\n\t\t\t.attr('width', legendWidth)\n\t\t\t.attr('height', legendHeight)\n\t\t\t.style('fill', `url(#${gradientId})`)\n\t\t\t.attr('stroke', '#999')\n\n\t\tconst legendScale = scaleLinear()\n\t\t\t.domain([maxAbsFC, -maxAbsFC])\n\t\t\t.range([10, legendHeight + 10])\n\n\t\tconst ticks = [-maxAbsFC, -maxAbsFC / 2, 0, maxAbsFC / 2, maxAbsFC]\n\t\tfor (const tick of ticks) {\n\t\t\tconst y = legendScale(tick)\n\t\t\tsvg\n\t\t\t\t.append('line')\n\t\t\t\t.attr('x1', legendWidth)\n\t\t\t\t.attr('y1', y)\n\t\t\t\t.attr('x2', legendWidth + 5)\n\t\t\t\t.attr('y2', y)\n\t\t\t\t.attr('stroke', '#666')\n\t\t\tsvg\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', legendWidth + 8)\n\t\t\t\t.attr('y', y)\n\t\t\t\t.attr('dominant-baseline', 'central')\n\t\t\t\t.attr('font-size', '10px')\n\t\t\t\t.text(tick.toFixed(2))\n\t\t}\n\n\t\tlegendDiv\n\t\t\t.append('div')\n\t\t\t.style('margin-top', '10px')\n\t\t\t.style('font-size', '12px')\n\t\t\t.style('color', '#666')\n\t\t\t.html(\n\t\t\t\t`<span style=\"display:inline-block;width:14px;height:14px;background:${NONSIG_COLOR};border:1px solid #999;vertical-align:middle;margin-right:4px\"></span> Not significant (p \u2265 0.05)`\n\t\t\t)\n\t}\n}\n\nexport const componentInit = getCompInit(BrainRegions)\n\nexport async function getPlotConfig(opts: any) {\n\tconst config = structuredClone(defaultConfig)\n\tif (!opts.gene) throw new Error('brainRegions requires opts.gene')\n\treturn copyMerge(config, opts)\n}\n\nexport function makeChartBtnMenu(holder: any, chartsInstance: any) {\n\tconst row = holder.append('div').style('padding', '5px')\n\trow.append('span').style('font-weight', 'bold').text('Enter a gene name:')\n\n\tconst geneSearch = addGeneSearchbox({\n\t\trow,\n\t\tgenome: chartsInstance.app.opts.genome,\n\t\ttip: new Menu({ padding: '0px' }),\n\t\tsearchOnly: 'gene',\n\t\tcallback: async () => {\n\t\t\tif (!geneSearch.geneSymbol) throw new Error('A valid gene selection is required')\n\t\t\tchartsInstance.dom.tip.hide()\n\t\t\tchartsInstance.app.dispatch({\n\t\t\t\ttype: 'plot_create',\n\t\t\t\tconfig: {\n\t\t\t\t\tchartType: 'brainRegions',\n\t\t\t\t\tgene: geneSearch.geneSymbol\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t})\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,383 @@
1
+ import {
2
+ LegendCircleReference,
3
+ PlotBase,
4
+ addGeneSearchbox
5
+ } from "./chunk-L7VDSIM7.js";
6
+ import "./chunk-HJ6L54YS.js";
7
+ import "./chunk-LSEFWW72.js";
8
+ import "./chunk-UXDVUCXU.js";
9
+ import {
10
+ Menu
11
+ } from "./chunk-HYOEWQ5P.js";
12
+ import "./chunk-HBW42TDT.js";
13
+ import "./chunk-LQJMCE7G.js";
14
+ import "./chunk-FN5XPUPH.js";
15
+ import "./chunk-IIT367QZ.js";
16
+ import "./chunk-RZGEKL77.js";
17
+ import "./chunk-KM4JBR26.js";
18
+ import "./chunk-COYULNJF.js";
19
+ import {
20
+ dofetch3
21
+ } from "./chunk-6G4YOMWW.js";
22
+ import "./chunk-7IYJZZQI.js";
23
+ import {
24
+ copyMerge,
25
+ getCompInit
26
+ } from "./chunk-M3J4MINX.js";
27
+ import "./chunk-PF4DSFDR.js";
28
+ import "./chunk-I73KUUYG.js";
29
+ import "./chunk-IVXCWCKS.js";
30
+ import "./chunk-7KRS7L4U.js";
31
+ import "./chunk-BKPDYW5T.js";
32
+ import "./chunk-JNITUVXP.js";
33
+ import "./chunk-TJYRBEBK.js";
34
+ import "./chunk-LOZEKOES.js";
35
+ import "./chunk-VQZ2Z5YU.js";
36
+ import {
37
+ linear,
38
+ sqrt
39
+ } from "./chunk-SOTB4FRE.js";
40
+ import "./chunk-TLT4YIG3.js";
41
+ import "./chunk-KYBIQBXE.js";
42
+ import "./chunk-I6Y4O3RR.js";
43
+ import "./chunk-OMR2DT66.js";
44
+ import "./chunk-DQC5FFGV.js";
45
+ import "./chunk-HFNDKYVF.js";
46
+
47
+ // plots/bubbleHeatmap.ts
48
+ var defaultConfig = { chartType: "bubbleHeatmap" };
49
+ var CELL_W = 92;
50
+ var CELL_H = 64;
51
+ var ROW_LABEL_W = 170;
52
+ var COL_LABEL_H = 92;
53
+ var SITE_DOT_R = 5;
54
+ var SITE_DOT_SP = 13;
55
+ var CELL_PAD = 8;
56
+ var MIN_DOT_R = 8;
57
+ var MAX_DOT_R = 20;
58
+ var NEG_LOG_P_CAP = 10;
59
+ var BubbleHeatmap = class _BubbleHeatmap extends PlotBase {
60
+ constructor(opts, api) {
61
+ super(opts, api);
62
+ this.currentIsoform = "";
63
+ this.useAdjusted = false;
64
+ this.type = _BubbleHeatmap.type;
65
+ this.components = {};
66
+ }
67
+ static {
68
+ this.type = "bubbleHeatmap";
69
+ }
70
+ async init() {
71
+ const holder = this.opts.holder.append("div").style("padding", "10px");
72
+ this.dom = {
73
+ holder,
74
+ body: holder.append("div"),
75
+ tip: new Menu({ padding: "" }),
76
+ header: this.opts.header
77
+ };
78
+ if (this.dom.header) this.dom.header.html("Bubble Heatmap");
79
+ }
80
+ getState(appState) {
81
+ const config = appState.plots.find((p) => p.id === this.id);
82
+ if (!config) throw `No plot with id='${this.id}' found`;
83
+ return { config };
84
+ }
85
+ async main() {
86
+ const gene = this.state.config?.gene;
87
+ if (!gene) throw new Error("bubbleHeatmap: gene is missing");
88
+ if (this.dom.header) this.dom.header.text(`Bubble Heatmap: ${gene}`);
89
+ const body = {
90
+ genome: this.app.opts.state.vocab.genome,
91
+ dslabel: this.app.opts.state.vocab.dslabel,
92
+ gene
93
+ };
94
+ const data = await dofetch3("termdb/bubbleHeatmap", { body });
95
+ if (data.error) throw data.error;
96
+ this.data = data;
97
+ this.dom.body.selectAll("*").remove();
98
+ const isoformIds = Object.keys(data.isoforms);
99
+ if (isoformIds.length === 0) {
100
+ this.dom.body.append("div").style("padding", "20px").style("color", "#666").text(`No data found for gene "${gene}" in any (assay, cohort) DAPfile.`);
101
+ return;
102
+ }
103
+ this.useAdjusted = !!data.proteinReferenceAssay;
104
+ this.currentIsoform = isoformIds[0];
105
+ const isoBlock = this.dom.body.append("div").style("margin-bottom", "12px");
106
+ isoBlock.append("span").style("font-weight", "bold").text("Isoform: ");
107
+ if (isoformIds.length > 1) {
108
+ const sel = isoBlock.append("select").style("margin-left", "5px").style("padding", "3px 6px").on("change", () => {
109
+ this.currentIsoform = sel.node().value;
110
+ this.renderGrid();
111
+ });
112
+ sel.selectAll("option").data(isoformIds).enter().append("option").attr("value", (d) => d).text((d) => `${data.isoforms[d].gene_name} \u2014 ${d}`);
113
+ } else {
114
+ isoBlock.append("span").style("margin-left", "5px").text(`${data.isoforms[this.currentIsoform].gene_name} \u2014 ${this.currentIsoform}`);
115
+ }
116
+ this.gridHolder = this.dom.body.append("div");
117
+ this.renderGrid();
118
+ }
119
+ renderGrid() {
120
+ const data = this.data;
121
+ const selectedIsoform = this.currentIsoform;
122
+ const useAdjusted = this.useAdjusted;
123
+ const refAssay = data.proteinReferenceAssay;
124
+ const threshold = data.pValueThreshold;
125
+ this.gridHolder.selectAll("*").remove();
126
+ const container = this.gridHolder.append("div").style("display", "flex").style("gap", "24px").style("align-items", "flex-start").style("flex-wrap", "wrap");
127
+ const isoformData = data.isoforms[selectedIsoform];
128
+ if (!isoformData) return;
129
+ const assays = data.assays;
130
+ const cohorts = data.cohorts;
131
+ const nRows = assays.length;
132
+ const nCols = cohorts.length;
133
+ const ptmAssays = new Set(data.ptmAssays || []);
134
+ const isPTMassay = (assay) => ptmAssays.has(assay);
135
+ const valueOf = (s) => this.valueFor(s, useAdjusted);
136
+ const negLogP = (p) => p > 0 ? Math.min(-Math.log10(p), NEG_LOG_P_CAP) : NEG_LOG_P_CAP;
137
+ const slotIndex = /* @__PURE__ */ new Map();
138
+ const assaySlotCount = /* @__PURE__ */ new Map();
139
+ let maxAbs = 0;
140
+ const thresholdNegLog = negLogP(threshold);
141
+ let maxNegLog = thresholdNegLog;
142
+ for (const assay of assays) {
143
+ const ptm = isPTMassay(assay);
144
+ const rawSum = /* @__PURE__ */ new Map();
145
+ const rawN = /* @__PURE__ */ new Map();
146
+ const significantSomewhere = /* @__PURE__ */ new Set();
147
+ for (const cohort of cohorts) {
148
+ const cell = isoformData.data[assay]?.[cohort];
149
+ if (!cell) continue;
150
+ if (ptm) {
151
+ for (const s of cell.sites) {
152
+ if (s.significant) {
153
+ const v = Math.abs(valueOf(s));
154
+ if (v > maxAbs) maxAbs = v;
155
+ }
156
+ rawSum.set(s.id, (rawSum.get(s.id) ?? 0) + s.log2FC);
157
+ rawN.set(s.id, (rawN.get(s.id) ?? 0) + 1);
158
+ if (s.significant) significantSomewhere.add(s.id);
159
+ }
160
+ } else {
161
+ const s = cell.sites[0];
162
+ if (!s) continue;
163
+ const v = Math.abs(valueOf(s));
164
+ if (v > maxAbs) maxAbs = v;
165
+ const nl = negLogP(s.p_value);
166
+ if (nl > maxNegLog) maxNegLog = nl;
167
+ }
168
+ }
169
+ if (ptm) {
170
+ const meanRaw = (id) => rawSum.get(id) / rawN.get(id);
171
+ const ordered = [...significantSomewhere].sort((a, b) => meanRaw(b) - meanRaw(a));
172
+ ordered.forEach((id, i) => slotIndex.set(`${assay}|${id}`, i));
173
+ assaySlotCount.set(assay, ordered.length);
174
+ } else {
175
+ assaySlotCount.set(assay, 1);
176
+ }
177
+ }
178
+ if (maxAbs === 0) maxAbs = 1;
179
+ if (maxNegLog <= thresholdNegLog) maxNegLog = thresholdNegLog + 1;
180
+ const colorScale = linear().domain([-maxAbs, 0, maxAbs]).range(["#2166ac", "#f7f7f7", "#b2182b"]).clamp(true);
181
+ const sizeScale = sqrt().domain([thresholdNegLog, maxNegLog]).range([MIN_DOT_R, MAX_DOT_R]).clamp(true);
182
+ const layout = assays.map((assay) => {
183
+ const m = assaySlotCount.get(assay);
184
+ const subCols = Math.max(1, Math.min(m, Math.floor((CELL_W - 2 * CELL_PAD) / SITE_DOT_SP)));
185
+ const rows = Math.ceil(m / subCols);
186
+ return { subCols, rows, height: Math.max(CELL_H, rows * SITE_DOT_SP + 2 * CELL_PAD) };
187
+ });
188
+ const rowY = [];
189
+ let yAcc = COL_LABEL_H;
190
+ for (let r = 0; r < nRows; r++) {
191
+ rowY[r] = yAcc;
192
+ yAcc += layout[r].height;
193
+ }
194
+ const gridW = ROW_LABEL_W + nCols * CELL_W + 20;
195
+ const gridH = yAcc + 20;
196
+ const svg = container.append("svg").attr("width", gridW).attr("height", gridH).style("flex", "0 0 auto");
197
+ const grid = svg.append("g");
198
+ for (let c = 0; c < nCols; c++) {
199
+ const cx = ROW_LABEL_W + c * CELL_W + CELL_W / 2;
200
+ grid.append("text").attr("x", cx).attr("y", COL_LABEL_H - 10).attr("text-anchor", "start").attr("font-size", "12px").attr("font-weight", "bold").attr("transform", `rotate(-35 ${cx} ${COL_LABEL_H - 10})`).text(cohorts[c]);
201
+ }
202
+ for (let r = 0; r < nRows; r++) {
203
+ const cy = rowY[r] + layout[r].height / 2;
204
+ const m = assaySlotCount.get(assays[r]);
205
+ const lbl = grid.append("text").attr("x", ROW_LABEL_W - 10).attr("y", cy).attr("text-anchor", "end").attr("dominant-baseline", "central").attr("font-size", "12px").attr("font-weight", "bold");
206
+ lbl.append("tspan").text(assays[r]);
207
+ lbl.append("tspan").attr("x", ROW_LABEL_W - 10).attr("dy", "1.3em").attr("font-weight", "normal").attr("font-size", "10px").attr("fill", "#888").text(m > 1 ? `${m} sites` : "");
208
+ }
209
+ for (let r = 0; r < nRows; r++) {
210
+ const assay = assays[r];
211
+ const ptm = isPTMassay(assay);
212
+ const { subCols, height } = layout[r];
213
+ for (let c = 0; c < nCols; c++) {
214
+ const x0 = ROW_LABEL_W + c * CELL_W;
215
+ const y0 = rowY[r];
216
+ grid.append("rect").attr("x", x0).attr("y", y0).attr("width", CELL_W).attr("height", height).attr("fill", "none").attr("stroke", "#eee").attr("stroke-width", 1);
217
+ const cell = isoformData.data[assay]?.[cohorts[c]];
218
+ if (!cell || !cell.sites.length) continue;
219
+ const addDot = (s, cx, cy, radius) => {
220
+ return grid.append("circle").attr("cx", cx).attr("cy", cy).attr("r", radius).attr("fill", colorScale(valueOf(s))).attr("stroke", "#888").attr("stroke-width", 0.8).style("opacity", s.significant ? 1 : 0.35).on(
221
+ "mouseover",
222
+ (event) => this.showSiteTip(
223
+ event,
224
+ isoformData.gene_name,
225
+ selectedIsoform,
226
+ assay,
227
+ cohorts[c],
228
+ s,
229
+ useAdjusted,
230
+ refAssay
231
+ )
232
+ ).on("mouseout", () => this.dom.tip.hide());
233
+ };
234
+ if (!ptm) {
235
+ const s = cell.sites[0];
236
+ const cx = x0 + CELL_W / 2;
237
+ const cy = y0 + height / 2;
238
+ addDot(s, cx, cy, sizeScale(negLogP(s.p_value)));
239
+ continue;
240
+ }
241
+ const blockW = subCols * SITE_DOT_SP;
242
+ const blockH = layout[r].rows * SITE_DOT_SP;
243
+ const startX = x0 + (CELL_W - blockW) / 2 + SITE_DOT_SP / 2;
244
+ const startY = y0 + (height - blockH) / 2 + SITE_DOT_SP / 2;
245
+ for (const s of cell.sites) {
246
+ if (!s.significant) continue;
247
+ const slot = slotIndex.get(`${assay}|${s.id}`);
248
+ const cx = startX + slot % subCols * SITE_DOT_SP;
249
+ const cy = startY + Math.floor(slot / subCols) * SITE_DOT_SP;
250
+ addDot(s, cx, cy, SITE_DOT_R);
251
+ }
252
+ }
253
+ }
254
+ this.renderLegend(container, colorScale, maxAbs, threshold, useAdjusted, refAssay, maxNegLog);
255
+ }
256
+ fmtP(v) {
257
+ return v >= 1e-4 ? v.toFixed(4) : v.toExponential(2);
258
+ }
259
+ /** true when the protein-adjusted value should be shown instead of raw log2FC */
260
+ showsAdjusted(s, useAdjusted) {
261
+ return !!(useAdjusted && s.adjustedAvailable && s.adjustedLog2FC != null);
262
+ }
263
+ /** value encoded by color: protein-adjusted when requested & available, else raw */
264
+ valueFor(s, useAdjusted) {
265
+ return this.showsAdjusted(s, useAdjusted) ? s.adjustedLog2FC : s.log2FC;
266
+ }
267
+ showSiteTip(event, geneName, isoform, assay, cohort, s, useAdjusted, refAssay) {
268
+ this.dom.tip.clear().show(event.clientX, event.clientY);
269
+ const t = this.dom.tip.d.append("div").style("padding", "8px").style("font-size", "13px");
270
+ t.append("div").style("font-weight", "bold").style("margin-bottom", "4px").text(`${geneName} \u2014 ${isoform}`);
271
+ t.append("div").text(`Assay: ${assay}`);
272
+ t.append("div").text(`Sample set: ${cohort}`);
273
+ const isPTM = (this.data.ptmAssays || []).includes(assay);
274
+ t.append("div").text(`${isPTM ? "Site" : "Protein"}: ${s.id}`);
275
+ t.append("div").text(`raw log\u2082FC: ${s.log2FC.toFixed(3)}`);
276
+ if (s.adjustedAvailable) {
277
+ t.append("div").text(`protein log\u2082FC: ${s.proteinLog2FC.toFixed(3)}`);
278
+ t.append("div").text(`adjusted log\u2082FC: ${s.adjustedLog2FC.toFixed(3)}`);
279
+ } else if (refAssay && assay !== refAssay) {
280
+ t.append("div").style("color", "#999").text("adjusted: n/a (protein not measured)");
281
+ }
282
+ t.append("div").text(`p-value: ${this.fmtP(s.p_value)}`);
283
+ const shown = this.showsAdjusted(s, useAdjusted) ? "adjusted" : "raw";
284
+ t.append("div").style("color", "#666").style("margin-top", "4px").text(`Color = ${shown} log\u2082FC.`);
285
+ }
286
+ renderLegend(container, colorScale, maxAbs, threshold, useAdjusted, refAssay, maxNegLog) {
287
+ const legend = container.append("div").style("display", "flex").style("flex-direction", "column").style("gap", "16px").style("padding", "8px 0").style("min-width", "180px").style("max-width", "260px");
288
+ const colorBlock = legend.append("div");
289
+ colorBlock.append("div").style("font-weight", "bold").style("font-size", "13px").style("margin-bottom", "6px").text(useAdjusted && refAssay ? "log\u2082FC (protein-adjusted)" : "log\u2082FC");
290
+ const cW = 22;
291
+ const cH = 130;
292
+ const cSvg = colorBlock.append("svg").attr("width", cW + 60).attr("height", cH + 16);
293
+ const gid = `bh-grad-${this.id}`;
294
+ const grad = cSvg.append("defs").append("linearGradient").attr("id", gid).attr("x1", "0").attr("y1", "0").attr("x2", "0").attr("y2", "1");
295
+ const steps = 10;
296
+ for (let i = 0; i <= steps; i++) {
297
+ const t = i / steps;
298
+ grad.append("stop").attr("offset", `${t * 100}%`).attr("stop-color", colorScale(maxAbs * (1 - 2 * t)));
299
+ }
300
+ cSvg.append("rect").attr("x", 0).attr("y", 8).attr("width", cW).attr("height", cH).style("fill", `url(#${gid})`).attr("stroke", "#999");
301
+ const cScale = linear().domain([maxAbs, -maxAbs]).range([8, cH + 8]);
302
+ for (const tick of [maxAbs, maxAbs / 2, 0, -maxAbs / 2, -maxAbs]) {
303
+ const y = cScale(tick);
304
+ cSvg.append("line").attr("x1", cW).attr("y1", y).attr("x2", cW + 5).attr("y2", y).attr("stroke", "#666");
305
+ cSvg.append("text").attr("x", cW + 8).attr("y", y).attr("dominant-baseline", "central").attr("font-size", "10px").text(tick.toFixed(2));
306
+ }
307
+ const sizeBlock = legend.append("div");
308
+ sizeBlock.append("div").style("font-weight", "bold").style("font-size", "13px").style("margin-bottom", "6px").text("Non-PTM dot size: significance (\u2212log\u2081\u2080 p)");
309
+ const sSvg = sizeBlock.append("svg");
310
+ const sG = sSvg.append("g");
311
+ new LegendCircleReference({
312
+ g: sG,
313
+ inputMin: 0,
314
+ inputMax: MAX_DOT_R * 2,
315
+ minRadius: MIN_DOT_R,
316
+ maxRadius: MAX_DOT_R,
317
+ // capped to match the size scale's domain min (thresholdNegLog in renderGrid)
318
+ minLabel: Number(Math.min(-Math.log10(threshold), NEG_LOG_P_CAP).toFixed(1)),
319
+ maxLabel: Number(maxNegLog.toFixed(1))
320
+ });
321
+ const sPad = 4;
322
+ const sBox = sG.node().getBBox();
323
+ sG.attr("transform", `translate(${sPad - sBox.x}, ${sPad - sBox.y})`);
324
+ sSvg.attr("width", Math.ceil(sBox.width + 2 * sPad)).attr("height", Math.ceil(sBox.height + 2 * sPad));
325
+ if (refAssay) {
326
+ const adjLabel = legend.append("div").append("label").style("display", "flex").style("align-items", "center").style("gap", "6px").style("cursor", "pointer").style("font-size", "13px").style("font-weight", "bold").attr(
327
+ "title",
328
+ `When checked, the PTM and insoluble assays have the ${refAssay} log\u2082FC subtracted; ${refAssay} itself is shown unchanged.`
329
+ );
330
+ const adjCb = adjLabel.append("input").attr("type", "checkbox").property("checked", this.useAdjusted).on("change", () => {
331
+ this.useAdjusted = adjCb.property("checked");
332
+ this.renderGrid();
333
+ });
334
+ adjLabel.append("span").style("font-weight", "normal").text("Adjust insoluble and PTM for total protein abundance");
335
+ }
336
+ const notes = legend.append("div").style("font-size", "11px").style("color", "#666").style("line-height", "1.5").style("max-width", "240px").style("overflow-wrap", "break-word");
337
+ notes.append("div").text(
338
+ `Color = log\u2082FC. Dot size = significance, \u2212log\u2081\u2080 p (non-PTM rows); the smallest size marks the p < ${threshold} cutoff. Non-significant dots are faded.`
339
+ );
340
+ notes.append("div").style("margin-top", "4px").text(
341
+ "PTM rows: one fixed-size dot per site significant in that cohort, positions stable across cohorts; non-significant sites are not shown."
342
+ );
343
+ notes.append("div").style("margin-top", "4px").text(
344
+ "A slot stays empty where the site is not significant in that cohort, the assay was not performed, or the protein was not detected."
345
+ );
346
+ if (refAssay) {
347
+ notes.append("div").style("margin-top", "4px").text(`Adjusted log\u2082FC = this assay's log\u2082FC \u2212 ${refAssay} log\u2082FC.`);
348
+ }
349
+ }
350
+ };
351
+ var componentInit = getCompInit(BubbleHeatmap);
352
+ async function getPlotConfig(opts) {
353
+ const config = structuredClone(defaultConfig);
354
+ if (!opts.gene) throw new Error("bubbleHeatmap requires opts.gene");
355
+ return copyMerge(config, opts);
356
+ }
357
+ function makeChartBtnMenu(holder, chartsInstance) {
358
+ const row = holder.append("div").style("padding", "5px");
359
+ row.append("span").style("font-weight", "bold").text("Enter a gene name:");
360
+ const geneSearch = addGeneSearchbox({
361
+ row,
362
+ genome: chartsInstance.app.opts.genome,
363
+ tip: new Menu({ padding: "0px" }),
364
+ searchOnly: "gene",
365
+ callback: async () => {
366
+ if (!geneSearch.geneSymbol) throw new Error("A valid gene selection is required");
367
+ chartsInstance.dom.tip.hide();
368
+ chartsInstance.app.dispatch({
369
+ type: "plot_create",
370
+ config: {
371
+ chartType: "bubbleHeatmap",
372
+ gene: geneSearch.geneSymbol
373
+ }
374
+ });
375
+ }
376
+ });
377
+ }
378
+ export {
379
+ componentInit,
380
+ getPlotConfig,
381
+ makeChartBtnMenu
382
+ };
383
+ //# sourceMappingURL=bubbleHeatmap-ERJFMLPK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../plots/bubbleHeatmap.ts"],
4
+ "sourcesContent": ["import type { MassState, BasePlotConfig } from '#mass/types/mass'\nimport { getCompInit, copyMerge, type RxComponent } from '#rx'\nimport { PlotBase } from './PlotBase'\nimport { Menu, addGeneSearchbox, LegendCircleReference } from '#dom'\nimport { dofetch3 } from '#common/dofetch'\nimport { scaleLinear, scaleSqrt } from 'd3'\n\nconst defaultConfig = { chartType: 'bubbleHeatmap' }\n\nconst CELL_W = 92\nconst CELL_H = 64 // minimum row height\nconst ROW_LABEL_W = 170\nconst COL_LABEL_H = 92\nconst SITE_DOT_R = 5 // per-site dot radius (PTM)\nconst SITE_DOT_SP = 13 // center-to-center spacing when packing site dots\nconst CELL_PAD = 8\nconst MIN_DOT_R = 8 // protein-level (non-PTM) big dot, min radius\nconst MAX_DOT_R = 20 // protein-level (non-PTM) big dot, max radius\n// cap on \u2212log10(p) used for dot size, so one ultra-significant (or p=0) dot can't\n// dwarf the rest; p \u2264 10^\u2212CAP all render at the max size\nconst NEG_LOG_P_CAP = 10\n\nclass BubbleHeatmap extends PlotBase implements RxComponent {\n\tstatic type = 'bubbleHeatmap'\n\ttype: string\n\tdom!: { holder: any; body: any; tip: Menu; header?: any }\n\tcomponents: any\n\tdata: any\n\tcurrentIsoform = ''\n\tuseAdjusted = false\n\tgridHolder: any\n\n\tconstructor(opts: any, api) {\n\t\tsuper(opts, api)\n\t\tthis.type = BubbleHeatmap.type\n\t\tthis.components = {}\n\t}\n\n\tasync init() {\n\t\tconst holder = this.opts.holder.append('div').style('padding', '10px')\n\t\tthis.dom = {\n\t\t\tholder,\n\t\t\tbody: holder.append('div'),\n\t\t\ttip: new Menu({ padding: '' }),\n\t\t\theader: this.opts.header\n\t\t}\n\t\tif (this.dom.header) this.dom.header.html('Bubble Heatmap')\n\t}\n\n\tgetState(appState: MassState) {\n\t\tconst config: any = appState.plots.find((p: BasePlotConfig) => p.id === this.id)\n\t\tif (!config) throw `No plot with id='${this.id}' found`\n\t\treturn { config }\n\t}\n\n\tasync main() {\n\t\tconst gene = this.state.config?.gene\n\t\tif (!gene) throw new Error('bubbleHeatmap: gene is missing')\n\n\t\tif (this.dom.header) this.dom.header.text(`Bubble Heatmap: ${gene}`)\n\n\t\tconst body = {\n\t\t\tgenome: this.app.opts.state.vocab.genome,\n\t\t\tdslabel: this.app.opts.state.vocab.dslabel,\n\t\t\tgene\n\t\t}\n\n\t\tconst data = await dofetch3('termdb/bubbleHeatmap', { body })\n\t\tif (data.error) throw data.error\n\t\tthis.data = data\n\n\t\tthis.dom.body.selectAll('*').remove()\n\n\t\tconst isoformIds = Object.keys(data.isoforms)\n\t\tif (isoformIds.length === 0) {\n\t\t\tthis.dom.body\n\t\t\t\t.append('div')\n\t\t\t\t.style('padding', '20px')\n\t\t\t\t.style('color', '#666')\n\t\t\t\t.text(`No data found for gene \"${gene}\" in any (assay, cohort) DAPfile.`)\n\t\t\treturn\n\t\t}\n\n\t\t// default to protein-abundance-adjusted values when a reference assay exists\n\t\tthis.useAdjusted = !!data.proteinReferenceAssay\n\t\tthis.currentIsoform = isoformIds[0]\n\n\t\t// isoform selector (the adjusted/raw toggle lives in the legend, by renderLegend)\n\t\tconst isoBlock = this.dom.body.append('div').style('margin-bottom', '12px')\n\t\tisoBlock.append('span').style('font-weight', 'bold').text('Isoform: ')\n\t\tif (isoformIds.length > 1) {\n\t\t\tconst sel = isoBlock\n\t\t\t\t.append('select')\n\t\t\t\t.style('margin-left', '5px')\n\t\t\t\t.style('padding', '3px 6px')\n\t\t\t\t.on('change', () => {\n\t\t\t\t\tthis.currentIsoform = sel.node().value\n\t\t\t\t\tthis.renderGrid()\n\t\t\t\t})\n\t\t\tsel\n\t\t\t\t.selectAll('option')\n\t\t\t\t.data(isoformIds)\n\t\t\t\t.enter()\n\t\t\t\t.append('option')\n\t\t\t\t.attr('value', (d: string) => d)\n\t\t\t\t.text((d: string) => `${data.isoforms[d].gene_name} \u2014 ${d}`)\n\t\t} else {\n\t\t\tisoBlock\n\t\t\t\t.append('span')\n\t\t\t\t.style('margin-left', '5px')\n\t\t\t\t.text(`${data.isoforms[this.currentIsoform].gene_name} \u2014 ${this.currentIsoform}`)\n\t\t}\n\n\t\tthis.gridHolder = this.dom.body.append('div')\n\t\tthis.renderGrid()\n\t}\n\n\trenderGrid() {\n\t\tconst data = this.data\n\t\tconst selectedIsoform = this.currentIsoform\n\t\tconst useAdjusted = this.useAdjusted\n\t\tconst refAssay: string | null = data.proteinReferenceAssay\n\t\tconst threshold: number = data.pValueThreshold\n\n\t\tthis.gridHolder.selectAll('*').remove()\n\t\tconst container = this.gridHolder\n\t\t\t.append('div')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('gap', '24px')\n\t\t\t.style('align-items', 'flex-start')\n\t\t\t.style('flex-wrap', 'wrap')\n\n\t\tconst isoformData = data.isoforms[selectedIsoform]\n\t\tif (!isoformData) return\n\n\t\tconst assays: string[] = data.assays\n\t\tconst cohorts: string[] = data.cohorts\n\t\tconst nRows = assays.length\n\t\tconst nCols = cohorts.length\n\n\t\tconst ptmAssays = new Set<string>(data.ptmAssays || [])\n\t\tconst isPTMassay = (assay: string) => ptmAssays.has(assay)\n\n\t\t// value the dot's color encodes: adjusted when requested & available, else raw\n\t\tconst valueOf = (s: any): number => this.valueFor(s, useAdjusted)\n\t\t// significance as \u2212log10(p), capped (guards p<=0 and keeps the size range sane).\n\t\tconst negLogP = (p: number): number => (p > 0 ? Math.min(-Math.log10(p), NEG_LOG_P_CAP) : NEG_LOG_P_CAP)\n\n\t\t// PTM assays show one small dot per site; build an ordered list of distinct site\n\t\t// ids (stable across cohort columns) so a site keeps the same slot in every column.\n\t\t// A site earns a slot if it is significant in at least one cohort; within a cohort\n\t\t// only the sites significant THERE are drawn, so a slot can render in one column and\n\t\t// stay empty in another. Sites never significant in any cohort are not rendered.\n\t\t// non-PTM assays show a single big dot.\n\t\tconst slotIndex = new Map<string, number>() // `${assay}|${id}` \u2192 slot\n\t\tconst assaySlotCount = new Map<string, number>()\n\t\tlet maxAbs = 0\n\t\t// \u2212log10(p) at the significance cutoff (~1.30 for p<0.05): the smallest sized\n\t\t// protein dot. maxNegLog grows to the most-significant protein dot shown.\n\t\tconst thresholdNegLog = negLogP(threshold)\n\t\tlet maxNegLog = thresholdNegLog\n\t\tfor (const assay of assays) {\n\t\t\tconst ptm = isPTMassay(assay)\n\t\t\t// per-site maps (PTM only) feed the stable slot order; raw log2FC so the order\n\t\t\t// doesn't shift with the adjusted/raw toggle\n\t\t\tconst rawSum = new Map<string, number>()\n\t\t\tconst rawN = new Map<string, number>()\n\t\t\tconst significantSomewhere = new Set<string>()\n\t\t\tfor (const cohort of cohorts) {\n\t\t\t\tconst cell = isoformData.data[assay]?.[cohort]\n\t\t\t\tif (!cell) continue\n\t\t\t\tif (ptm) {\n\t\t\t\t\t// PTM draws one dot per site significant in this cohort; the color\n\t\t\t\t\t// domain reflects only those drawn sites.\n\t\t\t\t\tfor (const s of cell.sites) {\n\t\t\t\t\t\tif (s.significant) {\n\t\t\t\t\t\t\tconst v = Math.abs(valueOf(s))\n\t\t\t\t\t\t\tif (v > maxAbs) maxAbs = v\n\t\t\t\t\t\t}\n\t\t\t\t\t\trawSum.set(s.id, (rawSum.get(s.id) ?? 0) + s.log2FC)\n\t\t\t\t\t\trawN.set(s.id, (rawN.get(s.id) ?? 0) + 1)\n\t\t\t\t\t\tif (s.significant) significantSomewhere.add(s.id)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// non-PTM draws only the single best row (cell.sites[0]); size = -log10(p)\n\t\t\t\t\tconst s = cell.sites[0]\n\t\t\t\t\tif (!s) continue\n\t\t\t\t\tconst v = Math.abs(valueOf(s))\n\t\t\t\t\tif (v > maxAbs) maxAbs = v\n\t\t\t\t\tconst nl = negLogP(s.p_value)\n\t\t\t\t\tif (nl > maxNegLog) maxNegLog = nl\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ptm) {\n\t\t\t\t// direction then magnitude: most up-regulated first \u2192 most down-regulated,\n\t\t\t\t// ranked by mean raw log2FC (descending) so up/down sites group as a gradient.\n\t\t\t\t// only sites significant in some cohort earn a slot.\n\t\t\t\tconst meanRaw = (id: string) => rawSum.get(id)! / rawN.get(id)!\n\t\t\t\tconst ordered = [...significantSomewhere].sort((a, b) => meanRaw(b) - meanRaw(a))\n\t\t\t\tordered.forEach((id, i) => slotIndex.set(`${assay}|${id}`, i))\n\t\t\t\tassaySlotCount.set(assay, ordered.length)\n\t\t\t} else {\n\t\t\t\tassaySlotCount.set(assay, 1) // single big dot per cell\n\t\t\t}\n\t\t}\n\t\tif (maxAbs === 0) maxAbs = 1\n\t\t// guarantee a non-degenerate size domain when no protein dot is more significant\n\t\t// than the cutoff (e.g. only the best, still non-significant, row is shown)\n\t\tif (maxNegLog <= thresholdNegLog) maxNegLog = thresholdNegLog + 1\n\n\t\tconst colorScale = scaleLinear<string>()\n\t\t\t.domain([-maxAbs, 0, maxAbs])\n\t\t\t.range(['#2166ac', '#f7f7f7', '#b2182b'])\n\t\t\t.clamp(true)\n\t\t// non-PTM big-dot size encodes significance as \u2212log10(p): bigger = more\n\t\t// significant. domain runs from the p<threshold cutoff to the most-significant\n\t\t// protein dot; non-significant dots clamp to the smallest size. color carries\n\t\t// log2FC, so size and color encode two independent variables.\n\t\tconst sizeScale = scaleSqrt().domain([thresholdNegLog, maxNegLog]).range([MIN_DOT_R, MAX_DOT_R]).clamp(true)\n\n\t\t// per-row layout: sub-columns and row height grow with the site count\n\t\tconst layout = assays.map(assay => {\n\t\t\tconst m = assaySlotCount.get(assay)!\n\t\t\tconst subCols = Math.max(1, Math.min(m, Math.floor((CELL_W - 2 * CELL_PAD) / SITE_DOT_SP)))\n\t\t\tconst rows = Math.ceil(m / subCols)\n\t\t\treturn { subCols, rows, height: Math.max(CELL_H, rows * SITE_DOT_SP + 2 * CELL_PAD) }\n\t\t})\n\t\tconst rowY: number[] = []\n\t\tlet yAcc = COL_LABEL_H\n\t\tfor (let r = 0; r < nRows; r++) {\n\t\t\trowY[r] = yAcc\n\t\t\tyAcc += layout[r].height\n\t\t}\n\t\tconst gridW = ROW_LABEL_W + nCols * CELL_W + 20\n\t\tconst gridH = yAcc + 20\n\n\t\tconst svg = container.append('svg').attr('width', gridW).attr('height', gridH).style('flex', '0 0 auto')\n\t\tconst grid = svg.append('g')\n\n\t\t// column labels (cohorts), rotated\n\t\tfor (let c = 0; c < nCols; c++) {\n\t\t\tconst cx = ROW_LABEL_W + c * CELL_W + CELL_W / 2\n\t\t\tgrid\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', cx)\n\t\t\t\t.attr('y', COL_LABEL_H - 10)\n\t\t\t\t.attr('text-anchor', 'start')\n\t\t\t\t.attr('font-size', '12px')\n\t\t\t\t.attr('font-weight', 'bold')\n\t\t\t\t.attr('transform', `rotate(-35 ${cx} ${COL_LABEL_H - 10})`)\n\t\t\t\t.text(cohorts[c])\n\t\t}\n\n\t\t// row labels (assays) with site counts\n\t\tfor (let r = 0; r < nRows; r++) {\n\t\t\tconst cy = rowY[r] + layout[r].height / 2\n\t\t\tconst m = assaySlotCount.get(assays[r])!\n\t\t\tconst lbl = grid\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', ROW_LABEL_W - 10)\n\t\t\t\t.attr('y', cy)\n\t\t\t\t.attr('text-anchor', 'end')\n\t\t\t\t.attr('dominant-baseline', 'central')\n\t\t\t\t.attr('font-size', '12px')\n\t\t\t\t.attr('font-weight', 'bold')\n\t\t\tlbl.append('tspan').text(assays[r])\n\t\t\tlbl\n\t\t\t\t.append('tspan')\n\t\t\t\t.attr('x', ROW_LABEL_W - 10)\n\t\t\t\t.attr('dy', '1.3em')\n\t\t\t\t.attr('font-weight', 'normal')\n\t\t\t\t.attr('font-size', '10px')\n\t\t\t\t.attr('fill', '#888')\n\t\t\t\t.text(m > 1 ? `${m} sites` : '')\n\t\t}\n\n\t\t// cells: guideline + dots (small per-site for PTM, one big dot for non-PTM)\n\t\tfor (let r = 0; r < nRows; r++) {\n\t\t\tconst assay = assays[r]\n\t\t\tconst ptm = isPTMassay(assay)\n\t\t\tconst { subCols, height } = layout[r]\n\n\t\t\tfor (let c = 0; c < nCols; c++) {\n\t\t\t\tconst x0 = ROW_LABEL_W + c * CELL_W\n\t\t\t\tconst y0 = rowY[r]\n\n\t\t\t\tgrid\n\t\t\t\t\t.append('rect')\n\t\t\t\t\t.attr('x', x0)\n\t\t\t\t\t.attr('y', y0)\n\t\t\t\t\t.attr('width', CELL_W)\n\t\t\t\t\t.attr('height', height)\n\t\t\t\t\t.attr('fill', 'none')\n\t\t\t\t\t.attr('stroke', '#eee')\n\t\t\t\t\t.attr('stroke-width', 1)\n\n\t\t\t\tconst cell = isoformData.data[assay]?.[cohorts[c]]\n\t\t\t\tif (!cell || !cell.sites.length) continue\n\n\t\t\t\tconst addDot = (s: any, cx: number, cy: number, radius: number) => {\n\t\t\t\t\t// color = log2FC; protein-level size = significance. non-significant dots are\n\t\t\t\t\t// also faded via element opacity (fades fill + outline together, so a\n\t\t\t\t\t// small dot reads as \"weak\"). the constant thin outline keeps near-white\n\t\t\t\t\t// (~0 log2FC) dots legible, not a significance cue.\n\t\t\t\t\treturn grid\n\t\t\t\t\t\t.append('circle')\n\t\t\t\t\t\t.attr('cx', cx)\n\t\t\t\t\t\t.attr('cy', cy)\n\t\t\t\t\t\t.attr('r', radius)\n\t\t\t\t\t\t.attr('fill', colorScale(valueOf(s)))\n\t\t\t\t\t\t.attr('stroke', '#888')\n\t\t\t\t\t\t.attr('stroke-width', 0.8)\n\t\t\t\t\t\t.style('opacity', s.significant ? 1 : 0.35)\n\t\t\t\t\t\t.on('mouseover', (event: MouseEvent) =>\n\t\t\t\t\t\t\tthis.showSiteTip(\n\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\tisoformData.gene_name,\n\t\t\t\t\t\t\t\tselectedIsoform,\n\t\t\t\t\t\t\t\tassay,\n\t\t\t\t\t\t\t\tcohorts[c],\n\t\t\t\t\t\t\t\ts,\n\t\t\t\t\t\t\t\tuseAdjusted,\n\t\t\t\t\t\t\t\trefAssay\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.on('mouseout', () => this.dom.tip.hide())\n\t\t\t\t}\n\n\t\t\t\tif (!ptm) {\n\t\t\t\t\t// single big dot (protein level): color = log2FC, size = \u2212log10(p) so\n\t\t\t\t\t// the dot shows effect and significance as two independent channels.\n\t\t\t\t\tconst s = cell.sites[0]\n\t\t\t\t\tconst cx = x0 + CELL_W / 2\n\t\t\t\t\tconst cy = y0 + height / 2\n\t\t\t\t\taddDot(s, cx, cy, sizeScale(negLogP(s.p_value)))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// PTM: small fixed-radius dot per site, packed at stable slots.\n\t\t\t\t// only sites significant in THIS cohort render; a site keeps its slot\n\t\t\t\t// (reserved from being significant in some cohort) so positions stay stable.\n\t\t\t\tconst blockW = subCols * SITE_DOT_SP\n\t\t\t\tconst blockH = layout[r].rows * SITE_DOT_SP\n\t\t\t\tconst startX = x0 + (CELL_W - blockW) / 2 + SITE_DOT_SP / 2\n\t\t\t\tconst startY = y0 + (height - blockH) / 2 + SITE_DOT_SP / 2\n\t\t\t\tfor (const s of cell.sites) {\n\t\t\t\t\tif (!s.significant) continue // hide PTM sites not significant in this cohort\n\t\t\t\t\t// significant \u27F9 significant-somewhere \u27F9 always has a slot\n\t\t\t\t\tconst slot = slotIndex.get(`${assay}|${s.id}`)!\n\t\t\t\t\tconst cx = startX + (slot % subCols) * SITE_DOT_SP\n\t\t\t\t\tconst cy = startY + Math.floor(slot / subCols) * SITE_DOT_SP\n\t\t\t\t\taddDot(s, cx, cy, SITE_DOT_R)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.renderLegend(container, colorScale, maxAbs, threshold, useAdjusted, refAssay, maxNegLog)\n\t}\n\n\tprivate fmtP(v: number): string {\n\t\treturn v >= 0.0001 ? v.toFixed(4) : v.toExponential(2)\n\t}\n\n\t/** true when the protein-adjusted value should be shown instead of raw log2FC */\n\tprivate showsAdjusted(s: any, useAdjusted: boolean): boolean {\n\t\treturn !!(useAdjusted && s.adjustedAvailable && s.adjustedLog2FC != null)\n\t}\n\n\t/** value encoded by color: protein-adjusted when requested & available, else raw */\n\tprivate valueFor(s: any, useAdjusted: boolean): number {\n\t\treturn this.showsAdjusted(s, useAdjusted) ? s.adjustedLog2FC : s.log2FC\n\t}\n\n\tprivate showSiteTip(\n\t\tevent: MouseEvent,\n\t\tgeneName: string,\n\t\tisoform: string,\n\t\tassay: string,\n\t\tcohort: string,\n\t\ts: any,\n\t\tuseAdjusted: boolean,\n\t\trefAssay: string | null\n\t) {\n\t\tthis.dom.tip.clear().show(event.clientX, event.clientY)\n\t\tconst t = this.dom.tip.d.append('div').style('padding', '8px').style('font-size', '13px')\n\t\tt.append('div').style('font-weight', 'bold').style('margin-bottom', '4px').text(`${geneName} \u2014 ${isoform}`)\n\t\tt.append('div').text(`Assay: ${assay}`)\n\t\tt.append('div').text(`Sample set: ${cohort}`)\n\t\tconst isPTM = (this.data.ptmAssays || []).includes(assay)\n\t\tt.append('div').text(`${isPTM ? 'Site' : 'Protein'}: ${s.id}`)\n\t\tt.append('div').text(`raw log\u2082FC: ${s.log2FC.toFixed(3)}`)\n\t\tif (s.adjustedAvailable) {\n\t\t\tt.append('div').text(`protein log\u2082FC: ${s.proteinLog2FC.toFixed(3)}`)\n\t\t\tt.append('div').text(`adjusted log\u2082FC: ${s.adjustedLog2FC.toFixed(3)}`)\n\t\t} else if (refAssay && assay !== refAssay) {\n\t\t\tt.append('div').style('color', '#999').text('adjusted: n/a (protein not measured)')\n\t\t}\n\t\tt.append('div').text(`p-value: ${this.fmtP(s.p_value)}`)\n\t\tconst shown = this.showsAdjusted(s, useAdjusted) ? 'adjusted' : 'raw'\n\t\tt.append('div').style('color', '#666').style('margin-top', '4px').text(`Color = ${shown} log\u2082FC.`)\n\t}\n\n\tprivate renderLegend(\n\t\tcontainer: any,\n\t\tcolorScale: any,\n\t\tmaxAbs: number,\n\t\tthreshold: number,\n\t\tuseAdjusted: boolean,\n\t\trefAssay: string | null,\n\t\tmaxNegLog: number\n\t) {\n\t\tconst legend = container\n\t\t\t.append('div')\n\t\t\t.style('display', 'flex')\n\t\t\t.style('flex-direction', 'column')\n\t\t\t.style('gap', '16px')\n\t\t\t.style('padding', '8px 0')\n\t\t\t.style('min-width', '180px')\n\t\t\t.style('max-width', '260px')\n\n\t\t// color scale\n\t\tconst colorBlock = legend.append('div')\n\t\tcolorBlock\n\t\t\t.append('div')\n\t\t\t.style('font-weight', 'bold')\n\t\t\t.style('font-size', '13px')\n\t\t\t.style('margin-bottom', '6px')\n\t\t\t.text(useAdjusted && refAssay ? 'log\u2082FC (protein-adjusted)' : 'log\u2082FC')\n\t\tconst cW = 22\n\t\tconst cH = 130\n\t\tconst cSvg = colorBlock\n\t\t\t.append('svg')\n\t\t\t.attr('width', cW + 60)\n\t\t\t.attr('height', cH + 16)\n\t\tconst gid = `bh-grad-${this.id}`\n\t\tconst grad = cSvg\n\t\t\t.append('defs')\n\t\t\t.append('linearGradient')\n\t\t\t.attr('id', gid)\n\t\t\t.attr('x1', '0')\n\t\t\t.attr('y1', '0')\n\t\t\t.attr('x2', '0')\n\t\t\t.attr('y2', '1')\n\t\tconst steps = 10\n\t\tfor (let i = 0; i <= steps; i++) {\n\t\t\tconst t = i / steps\n\t\t\tgrad\n\t\t\t\t.append('stop')\n\t\t\t\t.attr('offset', `${t * 100}%`)\n\t\t\t\t.attr('stop-color', colorScale(maxAbs * (1 - 2 * t)))\n\t\t}\n\t\tcSvg\n\t\t\t.append('rect')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('y', 8)\n\t\t\t.attr('width', cW)\n\t\t\t.attr('height', cH)\n\t\t\t.style('fill', `url(#${gid})`)\n\t\t\t.attr('stroke', '#999')\n\t\tconst cScale = scaleLinear()\n\t\t\t.domain([maxAbs, -maxAbs])\n\t\t\t.range([8, cH + 8])\n\t\tfor (const tick of [maxAbs, maxAbs / 2, 0, -maxAbs / 2, -maxAbs]) {\n\t\t\tconst y = cScale(tick)\n\t\t\tcSvg\n\t\t\t\t.append('line')\n\t\t\t\t.attr('x1', cW)\n\t\t\t\t.attr('y1', y)\n\t\t\t\t.attr('x2', cW + 5)\n\t\t\t\t.attr('y2', y)\n\t\t\t\t.attr('stroke', '#666')\n\t\t\tcSvg\n\t\t\t\t.append('text')\n\t\t\t\t.attr('x', cW + 8)\n\t\t\t\t.attr('y', y)\n\t\t\t\t.attr('dominant-baseline', 'central')\n\t\t\t\t.attr('font-size', '10px')\n\t\t\t\t.text(tick.toFixed(2))\n\t\t}\n\n\t\t// size key \u2014 protein-level (non-PTM) big dot, sized by significance (\u2212log10 p)\n\t\tconst sizeBlock = legend.append('div')\n\t\tsizeBlock\n\t\t\t.append('div')\n\t\t\t.style('font-weight', 'bold')\n\t\t\t.style('font-size', '13px')\n\t\t\t.style('margin-bottom', '6px')\n\t\t\t.text('Non-PTM dot size: significance (\u2212log\u2081\u2080 p)')\n\t\t// small circle = the p<threshold cutoff, large circle = the most-significant\n\t\t// protein shown.\n\t\tconst sSvg = sizeBlock.append('svg')\n\t\tconst sG = sSvg.append('g')\n\t\tnew LegendCircleReference({\n\t\t\tg: sG,\n\t\t\tinputMin: 0,\n\t\t\tinputMax: MAX_DOT_R * 2,\n\t\t\tminRadius: MIN_DOT_R,\n\t\t\tmaxRadius: MAX_DOT_R,\n\t\t\t// capped to match the size scale's domain min (thresholdNegLog in renderGrid)\n\t\t\tminLabel: Number(Math.min(-Math.log10(threshold), NEG_LOG_P_CAP).toFixed(1)),\n\t\t\tmaxLabel: Number(maxNegLog.toFixed(1))\n\t\t})\n\t\t// fit the SVG to the rendered legend (plus a small margin) so it doesn't reserve\n\t\t// excess space; shift the group so its content starts at the margin.\n\t\tconst sPad = 4\n\t\tconst sBox = sG.node().getBBox()\n\t\tsG.attr('transform', `translate(${sPad - sBox.x}, ${sPad - sBox.y})`)\n\t\tsSvg.attr('width', Math.ceil(sBox.width + 2 * sPad)).attr('height', Math.ceil(sBox.height + 2 * sPad))\n\n\t\t// values toggle \u2014 placed below the dot-size key, right above the note that\n\t\t// explains what \"adjusted\" means. The reference assay itself is never adjusted.\n\t\tif (refAssay) {\n\t\t\tconst adjLabel = legend\n\t\t\t\t.append('div')\n\t\t\t\t.append('label')\n\t\t\t\t.style('display', 'flex')\n\t\t\t\t.style('align-items', 'center')\n\t\t\t\t.style('gap', '6px')\n\t\t\t\t.style('cursor', 'pointer')\n\t\t\t\t.style('font-size', '13px')\n\t\t\t\t.style('font-weight', 'bold')\n\t\t\t\t.attr(\n\t\t\t\t\t'title',\n\t\t\t\t\t`When checked, the PTM and insoluble assays have the ${refAssay} log\u2082FC subtracted; ${refAssay} itself is shown unchanged.`\n\t\t\t\t)\n\t\t\tconst adjCb = adjLabel\n\t\t\t\t.append('input')\n\t\t\t\t.attr('type', 'checkbox')\n\t\t\t\t.property('checked', this.useAdjusted)\n\t\t\t\t.on('change', () => {\n\t\t\t\t\tthis.useAdjusted = adjCb.property('checked')\n\t\t\t\t\tthis.renderGrid()\n\t\t\t\t})\n\t\t\tadjLabel\n\t\t\t\t.append('span')\n\t\t\t\t.style('font-weight', 'normal')\n\t\t\t\t.text('Adjust insoluble and PTM for total protein abundance')\n\t\t}\n\n\t\tconst notes = legend\n\t\t\t.append('div')\n\t\t\t.style('font-size', '11px')\n\t\t\t.style('color', '#666')\n\t\t\t.style('line-height', '1.5')\n\t\t\t.style('max-width', '240px')\n\t\t\t.style('overflow-wrap', 'break-word')\n\t\tnotes\n\t\t\t.append('div')\n\t\t\t.text(\n\t\t\t\t`Color = log\u2082FC. Dot size = significance, \u2212log\u2081\u2080 p (non-PTM rows); the smallest size marks the p < ${threshold} cutoff. Non-significant dots are faded.`\n\t\t\t)\n\t\tnotes\n\t\t\t.append('div')\n\t\t\t.style('margin-top', '4px')\n\t\t\t.text(\n\t\t\t\t'PTM rows: one fixed-size dot per site significant in that cohort, positions stable across cohorts; non-significant sites are not shown.'\n\t\t\t)\n\t\tnotes\n\t\t\t.append('div')\n\t\t\t.style('margin-top', '4px')\n\t\t\t.text(\n\t\t\t\t'A slot stays empty where the site is not significant in that cohort, the assay was not performed, or the protein was not detected.'\n\t\t\t)\n\t\tif (refAssay) {\n\t\t\tnotes.append('div').style('margin-top', '4px').text(`Adjusted log\u2082FC = this assay's log\u2082FC \u2212 ${refAssay} log\u2082FC.`)\n\t\t}\n\t}\n}\n\nexport const componentInit = getCompInit(BubbleHeatmap)\n\nexport async function getPlotConfig(opts: any) {\n\tconst config = structuredClone(defaultConfig)\n\tif (!opts.gene) throw new Error('bubbleHeatmap requires opts.gene')\n\treturn copyMerge(config, opts)\n}\n\nexport function makeChartBtnMenu(holder: any, chartsInstance: any) {\n\tconst row = holder.append('div').style('padding', '5px')\n\trow.append('span').style('font-weight', 'bold').text('Enter a gene name:')\n\n\tconst geneSearch = addGeneSearchbox({\n\t\trow,\n\t\tgenome: chartsInstance.app.opts.genome,\n\t\ttip: new Menu({ padding: '0px' }),\n\t\tsearchOnly: 'gene',\n\t\tcallback: async () => {\n\t\t\tif (!geneSearch.geneSymbol) throw new Error('A valid gene selection is required')\n\t\t\tchartsInstance.dom.tip.hide()\n\t\t\tchartsInstance.app.dispatch({\n\t\t\t\ttype: 'plot_create',\n\t\t\t\tconfig: {\n\t\t\t\t\tchartType: 'bubbleHeatmap',\n\t\t\t\t\tgene: geneSearch.geneSymbol\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t})\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,54 @@
1
+ import {
2
+ sayerror
3
+ } from "./chunk-L7VDSIM7.js";
4
+ import {
5
+ TermTypeGroups
6
+ } from "./chunk-7KRS7L4U.js";
7
+
8
+ // termdb/handlers/singleCellCellType.ts
9
+ var SearchHandler = class {
10
+ async init(opts) {
11
+ this.validateOpts(opts);
12
+ this.callback = opts.callback;
13
+ this.app = opts.app;
14
+ const holder = opts.holder.append("div").style("padding", "10px 0px");
15
+ const scctTerms = opts.app.vocabApi.termdbConfig?.termType2terms?.[TermTypeGroups.SINGLECELL_CELLTYPE];
16
+ if (!scctTerms) {
17
+ sayerror(
18
+ holder,
19
+ `termType2terms[${TermTypeGroups.SINGLECELL_CELLTYPE}]:[] is required in termdbConfig for singleCellCellType handler`
20
+ );
21
+ return;
22
+ }
23
+ const usecaseConfig = opts.usecase?.specialCase?.config;
24
+ const plots = usecaseConfig?.sample?.plots;
25
+ const filtered = plots ? scctTerms.filter((t) => plots.includes(t.plot)) : usecaseConfig?.name ? scctTerms.filter((t) => t.plot === usecaseConfig.name) : scctTerms;
26
+ const filteredTerms = new Set(
27
+ plots || !usecaseConfig?.name ? filtered.map((t) => ({ ...t, label: `${t.name} (${t.plot})` })) : filtered
28
+ );
29
+ for (const t of Array.from(filteredTerms)) {
30
+ holder.append("div").classed("termdiv", true).style("padding", "0px 5px").append("div").classed("termlabel sja_filter_tag_btn sja_tree_click_term ts_pill", true).style("display", "inline-block").style("padding", "5px 8px").style("margin", "1px 0px").style("border-radius", "6px").text(t.label || t.name).on("click", () => {
31
+ const term = this.makeTerm(t, usecaseConfig);
32
+ this.callback(term);
33
+ });
34
+ }
35
+ }
36
+ makeTerm(_term, usecaseConfig) {
37
+ const term = { ..._term };
38
+ if (!term.sample && usecaseConfig?.sample) term.sample = usecaseConfig.sample;
39
+ return term;
40
+ }
41
+ validateOpts(opts) {
42
+ if (opts.callback == null) throw new Error("callback is required");
43
+ if (opts.app == null) throw new Error("app is required");
44
+ if (opts.holder == null) throw new Error("holder is required");
45
+ if (opts.usecase == null) throw new Error("usecase is required");
46
+ if (!opts.app.vocabApi.termdbConfig?.termType2terms)
47
+ throw new Error("termType2terms is required in termdbConfig for singleCellCellType handler");
48
+ }
49
+ };
50
+
51
+ export {
52
+ SearchHandler
53
+ };
54
+ //# sourceMappingURL=chunk-27FPMFP2.js.map
@@ -0,0 +1,58 @@
1
+ import {
2
+ plotColor
3
+ } from "./chunk-7KRS7L4U.js";
4
+
5
+ // plots/scatter/settings/defaults.ts
6
+ function getDefaultScatterSettings(opts = {}) {
7
+ const overrides = opts?.overrides || {};
8
+ const defaults = {
9
+ size: 0.8,
10
+ minShapeSize: 0.5,
11
+ maxShapeSize: 4,
12
+ scaleDotOrder: "Ascending",
13
+ refSize: 0.8,
14
+ svgw: 600,
15
+ svgh: 600,
16
+ svgd: 600,
17
+ axisTitleFontSize: 16,
18
+ showAxes: true,
19
+ showRef: true,
20
+ opacity: 0.6,
21
+ defaultColor: plotColor,
22
+ regression: "None",
23
+ fov: 50,
24
+ threeSize: 5e-3,
25
+ threeFOV: 70,
26
+ //ColorScale settings
27
+ colorScaleMode: "auto",
28
+ colorScalePercentile: 95,
29
+ colorScaleMinFixed: null,
30
+ colorScaleMaxFixed: null,
31
+ //3D Plot settings
32
+ showContour: false,
33
+ colorContours: false,
34
+ contourBandwidth: 30,
35
+ contourThresholds: 10,
36
+ duration: 500,
37
+ useGlobalMinMax: true,
38
+ saveZoomTransform: false,
39
+ // Axis scale settings
40
+ minXScale: null,
41
+ maxXScale: null,
42
+ minYScale: null,
43
+ maxYScale: null,
44
+ itemLabel: opts?.singleCellPlot ? "Cell" : "Sample"
45
+ };
46
+ return Object.assign(defaults, overrides);
47
+ }
48
+ var maxSvgSamplesCutoff = 2e4;
49
+ var noExpColor = "#F5F5F5";
50
+ var expColor = "#ff000d";
51
+
52
+ export {
53
+ getDefaultScatterSettings,
54
+ maxSvgSamplesCutoff,
55
+ noExpColor,
56
+ expColor
57
+ };
58
+ //# sourceMappingURL=chunk-3LYZMOLO.js.map