@sjcrh/proteinpaint-client 2.217.0 → 2.218.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 (977) hide show
  1. package/dist/2dmaf-BZWQ4YZF.js +1362 -0
  2. package/dist/AggMatrixInput-OXUENYYF.js +402 -0
  3. package/dist/AggregateMatrix-7PYLWY3X.js +37 -0
  4. package/dist/AppHeader-QOLLABH4.js +826 -0
  5. package/dist/BoxPlot-PDRYKWXF.js +1233 -0
  6. package/dist/CorrelationVolcano-Z3ABRHL6.js +613 -0
  7. package/dist/Cuminc-ATQT3KDO.js +1217 -0
  8. package/dist/DE-5LMMF5QB.js +85 -0
  9. package/dist/DEinput-Y2VXYH54.js +497 -0
  10. package/dist/DM-ACIWRZS2.js +86 -0
  11. package/dist/DifferentialAnalysis-23WQKT6I.js +235 -0
  12. package/dist/Disco-5UBCTVTY.js +3384 -0
  13. package/dist/Disco.UI-6YCIW3QK.js +239 -0
  14. package/dist/DmrPlot-R7UOGAVY.js +361 -0
  15. package/dist/DmrPlot-R7UOGAVY.js.map +7 -0
  16. package/dist/GB-QZZG4DHJ.js +1388 -0
  17. package/dist/GSEA-3WW4GEXE.js +870 -0
  18. package/dist/GeneExpInput-PW6HP5LO.js +38 -0
  19. package/dist/Geomap-YDUXJ65P.js +80 -0
  20. package/dist/HicApp-CXHLK5UM.js +2240 -0
  21. package/dist/IDCViewer-ID46XKWW.js +10808 -0
  22. package/dist/NumBinaryEditor-7HEQD3UO.js +274 -0
  23. package/dist/NumBinaryEditor.unit.spec-CE5FZMLZ.js +308 -0
  24. package/dist/NumContEditor-7J4IODVT.js +100 -0
  25. package/dist/NumContEditor.unit.spec-H3DEDHGO.js +160 -0
  26. package/dist/NumCustomBinEditor-URE4NOZI.js +29 -0
  27. package/dist/NumCustomBinEditor.unit.spec-XE5AUM45.js +393 -0
  28. package/dist/NumDiscreteEditor-PBV2QXRU.js +165 -0
  29. package/dist/NumDiscreteEditor.unit.spec-2TWQ7DAZ.js +229 -0
  30. package/dist/NumRegularBinEditor-MG27BRWO.js +29 -0
  31. package/dist/NumRegularBinEditor.unit.spec-6NJLP3BX.js +274 -0
  32. package/dist/NumSplineEditor-ZZKMWU2V.js +205 -0
  33. package/dist/NumSplineEditor.unit.spec-T3C2YPU5.js +220 -0
  34. package/dist/NumericDensity-BUEAEQZD.js +29 -0
  35. package/dist/NumericDensity.unit.spec-XZ77VRO7.js +414 -0
  36. package/dist/NumericHandler-RW2NAEBZ.js +30 -0
  37. package/dist/NumericHandler.unit.spec-BQGTQBV6.js +210 -0
  38. package/dist/ProteomeInput-RL6IDTOA.js +610 -0
  39. package/dist/Regression-EVGHTLUT.js +1412 -0
  40. package/dist/RunChart2-NK2KWOZ7.js +744 -0
  41. package/dist/SC-QWJ72SI3.js +1290 -0
  42. package/dist/SC-QWJ72SI3.js.map +7 -0
  43. package/dist/Violin-2HIRC6A2.js +1095 -0
  44. package/dist/Volcano-H55O7GBI.js +2453 -0
  45. package/dist/Volcano-H55O7GBI.js.map +7 -0
  46. package/dist/Wsi-M2XRJBGL.js +636 -0
  47. package/dist/Wsi-M2XRJBGL.js.map +7 -0
  48. package/dist/adSandbox-T2HORPLC.js +29 -0
  49. package/dist/animatedBubbleChart-PS7KMVSY.js +542 -0
  50. package/dist/app-FKPGNJDN.js +38 -0
  51. package/dist/app-NPGVS6X4.js +28 -0
  52. package/dist/app.js +14 -14
  53. package/dist/bam-QQ54FE3A.js +872 -0
  54. package/dist/barchart-4DLCN7NL.js +38 -0
  55. package/dist/barchart2-H65GFNNQ.js +305 -0
  56. package/dist/block-RAYA73ZN.js +6232 -0
  57. package/dist/block.init-VE3TQWH4.js +29 -0
  58. package/dist/block.mds.expressionrank-YLFQQHZJ.js +350 -0
  59. package/dist/block.mds.geneboxplot-6V44H7EC.js +819 -0
  60. package/dist/block.mds.junction-DEIUZOQK.js +1534 -0
  61. package/dist/block.mds.svcnv-PTP7JYS2.js +6408 -0
  62. package/dist/block.svg-RGDXDKV6.js +155 -0
  63. package/dist/block.tk.aicheck-MFXHYAIN.js +274 -0
  64. package/dist/block.tk.bam-ICTVSRQ6.js +1897 -0
  65. package/dist/block.tk.bedgraphdot-X5AYHRUJ.js +375 -0
  66. package/dist/block.tk.bigwig.ui-FS3DA5JQ.js +202 -0
  67. package/dist/block.tk.hicstraw-MBBA3H4E.js +814 -0
  68. package/dist/block.tk.junction-L3YVWWOR.js +2353 -0
  69. package/dist/block.tk.junction.textmatrixui-PU3C7W6B.js +190 -0
  70. package/dist/block.tk.ld-SNKUZDPW.js +90 -0
  71. package/dist/block.tk.menu-NARHQW7Y.js +1050 -0
  72. package/dist/block.tk.pgv-NVNFNJZ6.js +934 -0
  73. package/dist/brainImaging-KHFLAPHC.js +550 -0
  74. package/dist/brainRegions-MQL2KZOQ.js +213 -0
  75. package/dist/bubbleHeatmap-U3GAF5AV.js +374 -0
  76. package/dist/cellTypeBubbleHeatmap-5ENEMDCZ.js +274 -0
  77. package/dist/chunk-25Q4AX4L.js +102 -0
  78. package/dist/chunk-2GQSPQ3U.js +1273 -0
  79. package/dist/chunk-2GQSPQ3U.js.map +7 -0
  80. package/dist/chunk-2RILGMXS.js +22873 -0
  81. package/dist/chunk-2RILGMXS.js.map +7 -0
  82. package/dist/chunk-2WWCHIXZ.js +194 -0
  83. package/dist/chunk-3AO7OZLF.js +294 -0
  84. package/dist/chunk-3DZJ64RQ.js +56 -0
  85. package/dist/chunk-3QZHRQ55.js +26 -0
  86. package/dist/chunk-3ZM5PZXA.js +240 -0
  87. package/dist/chunk-43FVCJXV.js +2685 -0
  88. package/dist/chunk-43WVK5KI.js +96 -0
  89. package/dist/chunk-4ZOKEHK4.js +516 -0
  90. package/dist/chunk-5M4U6S3E.js +103 -0
  91. package/dist/chunk-5O4GAKJT.js +49 -0
  92. package/dist/chunk-5Q6TANNH.js +274 -0
  93. package/dist/chunk-5WBIVXMG.js +134 -0
  94. package/dist/chunk-65FN7LIA.js +255 -0
  95. package/dist/chunk-6HVJJT3Y.js +6360 -0
  96. package/dist/chunk-6HVJJT3Y.js.map +7 -0
  97. package/dist/chunk-7HTMIFVR.js +170 -0
  98. package/dist/chunk-AOKINHUU.js +2799 -0
  99. package/dist/chunk-APXULA6M.js +182 -0
  100. package/dist/chunk-C7O67FZJ.js +1844 -0
  101. package/dist/chunk-CCNV3WJO.js +281 -0
  102. package/dist/chunk-DAKRDL76.js +156 -0
  103. package/dist/chunk-EGQVMN6S.js +397 -0
  104. package/dist/chunk-ERCLZ433.js +217 -0
  105. package/dist/chunk-ESLXHJ7W.js +31 -0
  106. package/dist/chunk-ET2KFCXK.js +424 -0
  107. package/dist/chunk-EYIZTX33.js +263 -0
  108. package/dist/chunk-F2PHTKCI.js +243 -0
  109. package/dist/chunk-FJXUMOVQ.js +176 -0
  110. package/dist/chunk-HJCI33L4.js +140 -0
  111. package/dist/chunk-HKXBGMUT.js +80 -0
  112. package/dist/chunk-HNMKK33Y.js +38 -0
  113. package/dist/chunk-IKZAWD7P.js +480 -0
  114. package/dist/chunk-ILPJAASI.js +203 -0
  115. package/dist/chunk-JFZECJY2.js +562 -0
  116. package/dist/chunk-K6CZAEBF.js +119 -0
  117. package/dist/chunk-KXDK6ZOJ.js +13624 -0
  118. package/dist/chunk-L7LRBRUN.js +2960 -0
  119. package/dist/chunk-LMG7Y5IN.js +5799 -0
  120. package/dist/chunk-LMG7Y5IN.js.map +7 -0
  121. package/dist/chunk-LO624OGK.js +102 -0
  122. package/dist/chunk-LPDQ26OP.js +550 -0
  123. package/dist/chunk-M2XWAAIZ.js +340 -0
  124. package/dist/chunk-M37J6Z5U.js +1988 -0
  125. package/dist/chunk-M5SJ42E2.js +468 -0
  126. package/dist/chunk-MJREV2KW.js +692 -0
  127. package/dist/chunk-MRR5GPPP.js +466 -0
  128. package/dist/chunk-NSCNNQOY.js +56 -0
  129. package/dist/chunk-OAQLBII5.js +54 -0
  130. package/dist/chunk-OKHU7EJW.js +194 -0
  131. package/dist/chunk-OXVB4OZC.js +4373 -0
  132. package/dist/chunk-PDZED3RR.js +382 -0
  133. package/dist/chunk-PITPUAWX.js +182 -0
  134. package/dist/chunk-PVXG2BRT.js +59 -0
  135. package/dist/chunk-PX6MHRAN.js +141 -0
  136. package/dist/chunk-REIPTX7J.js +626 -0
  137. package/dist/chunk-RFE2VG6T.js +55 -0
  138. package/dist/chunk-RPFQOIYX.js +418 -0
  139. package/dist/chunk-S2NAGL4V.js +839 -0
  140. package/dist/chunk-T24YYODE.js +217 -0
  141. package/dist/chunk-TDP4PX2S.js +123 -0
  142. package/dist/chunk-TUPJEZSL.js +299 -0
  143. package/dist/chunk-UNXVW5OT.js +379 -0
  144. package/dist/chunk-UOWUMUAX.js +444 -0
  145. package/dist/chunk-V6EIPPMT.js +1339 -0
  146. package/dist/chunk-VGUO2BQ7.js +276 -0
  147. package/dist/chunk-VKWZPC73.js +37 -0
  148. package/dist/chunk-VQ5PDCAJ.js +5213 -0
  149. package/dist/chunk-VQK3UKNA.js +54 -0
  150. package/dist/chunk-WB5MHFHB.js +237 -0
  151. package/dist/chunk-WK6CPMXR.js +302 -0
  152. package/dist/chunk-WNUCR3UF.js +2334 -0
  153. package/dist/chunk-WNUCR3UF.js.map +7 -0
  154. package/dist/chunk-WRYNE3Q4.js +1219 -0
  155. package/dist/chunk-XA6LI63Y.js +54 -0
  156. package/dist/chunk-XJYVMXMZ.js +2279 -0
  157. package/dist/chunk-XJYVMXMZ.js.map +7 -0
  158. package/dist/chunk-Y7Y6X6E5.js +70 -0
  159. package/dist/chunk-YG57X4VD.js +257 -0
  160. package/dist/chunk-YPOIMSJR.js +34 -0
  161. package/dist/chunk-YS7Y257H.js +26152 -0
  162. package/dist/chunk-YS7Y257H.js.map +7 -0
  163. package/dist/chunk-ZRLON6PP.js +14 -0
  164. package/dist/chunk-ZSNZPH6G.js +339 -0
  165. package/dist/cohort-TPMJZ4OH.js +66 -0
  166. package/dist/cohortSunburst-SL5F36RM.js +684 -0
  167. package/dist/cohortSunburst-SL5F36RM.js.map +7 -0
  168. package/dist/condition-QROUALBG.js +323 -0
  169. package/dist/controls-GH37YWOP.js +30 -0
  170. package/dist/controls.config-ZYCDICYF.js +30 -0
  171. package/dist/correlation-JESMUFS6.js +91 -0
  172. package/dist/customdata.inputui-T2DLAZYJ.js +280 -0
  173. package/dist/dataDownload-Z7A6ZEH7.js +325 -0
  174. package/dist/databrowser.ui-ZVMGFYJ2.js +421 -0
  175. package/dist/dictionary-KXFUR3NL.js +109 -0
  176. package/dist/dnaMethylation-2YU2HDD4.js +29 -0
  177. package/dist/dnaMethylation.integration.spec-75Y5RSDO.js +194 -0
  178. package/dist/dofetch-G5ULIRMG.js +47 -0
  179. package/dist/e2pca-75VDPO7P.js +340 -0
  180. package/dist/ep-F2Z7TNAG.js +1247 -0
  181. package/dist/ep-F2Z7TNAG.js.map +7 -0
  182. package/dist/expclust.gdc.spec-PB66FFWD.js +298 -0
  183. package/dist/facet-2RY37EFR.js +515 -0
  184. package/dist/gb-WQQFYFGF.js +77 -0
  185. package/dist/geneExpClustering-ARVZDF6G.js +240 -0
  186. package/dist/geneExpression-FR33PKJW.js +309 -0
  187. package/dist/geneExpression-O7DR5SMR.js +29 -0
  188. package/dist/geneExpression.unit.spec-HGNDSTAI.js +124 -0
  189. package/dist/geneORA-RXXQT44V.js +269 -0
  190. package/dist/geneRanking-WDQZ7TI3.js +544 -0
  191. package/dist/geneVariant-6JYBWFEJ.js +32 -0
  192. package/dist/geneVariant-TKRG5VQN.js +285 -0
  193. package/dist/geneVariant.integration.spec-L2Q2DY67.js +499 -0
  194. package/dist/genefusion.ui-DBLMBU2D.js +299 -0
  195. package/dist/geneset-2ZQF7FET.js +199 -0
  196. package/dist/genomeBrowser.spec-E5RJD53Z.js +272 -0
  197. package/dist/grin2-MJ4SYAFO.js +66 -0
  198. package/dist/grin2-VXRMV7VA.js +945 -0
  199. package/dist/hierCluster-44FPBMNL.js +55 -0
  200. package/dist/hierCluster-SU4BDK6I.js +51 -0
  201. package/dist/hierCluster.config-4OZ65GKH.js +32 -0
  202. package/dist/hierCluster.integration.spec-CHNSKZD4.js +479 -0
  203. package/dist/hierCluster.interactivity-M72CEGCW.js +45 -0
  204. package/dist/hierCluster.renderers-RM43G7ZR.js +18 -0
  205. package/dist/imagePlot-UYMWFNI4.js +152 -0
  206. package/dist/importPlot-W3HPE4LZ.js +8 -0
  207. package/dist/isoformExpression-JEMJE5WY.js +31 -0
  208. package/dist/isoformExpression.unit.spec-GOK5LFME.js +233 -0
  209. package/dist/jspdf.es.min-KB3HW45U.js +40 -0
  210. package/dist/junction-2X4AS47T.js +32 -0
  211. package/dist/junction.customTerm-MVSIUY66.js +15 -0
  212. package/dist/junction.unit.spec-HA74XQYV.js +178 -0
  213. package/dist/launch.adhoc-PZAJ6J2S.js +33 -0
  214. package/dist/leftlabel.sample-7BZKFB3I.js +253 -0
  215. package/dist/lollipop-URSFH4ZE.js +162 -0
  216. package/dist/maf-CM3ETF4N.js +451 -0
  217. package/dist/maftimeline-CRQEUTRY.js +583 -0
  218. package/dist/matrix-IBWB4A3Z.js +50 -0
  219. package/dist/matrix-SOBGWBTY.js +55 -0
  220. package/dist/matrix.cells-GSKC6FXI.js +25 -0
  221. package/dist/matrix.config-4KU5X3LQ.js +33 -0
  222. package/dist/matrix.data-XC2OTBTR.js +22 -0
  223. package/dist/matrix.groups-THXKRQSD.js +25 -0
  224. package/dist/matrix.integration.spec-GKHH4RSR.js +3156 -0
  225. package/dist/matrix.interactivity-ITXMM2ZP.js +33 -0
  226. package/dist/matrix.layout-D6SRLAXS.js +35 -0
  227. package/dist/matrix.legend-OWQAMHI2.js +19 -0
  228. package/dist/matrix.renderers-J66OAQUZ.js +30 -0
  229. package/dist/matrix.serieses-P5I4E2NB.js +18 -0
  230. package/dist/matrix.sort-CXBXF75N.js +25 -0
  231. package/dist/matrix.sort.unit.spec-RSXBKXC5.js +464 -0
  232. package/dist/matrix.sorterUi-WEZRKU63.js +15 -0
  233. package/dist/matrix.sorterUi.unit.spec-6EULDV43.js +334 -0
  234. package/dist/matrix.unit.spec-D4ZLDVDT.js +146 -0
  235. package/dist/mavb-5JAD6CPN.js +726 -0
  236. package/dist/mavb-5JAD6CPN.js.map +7 -0
  237. package/dist/mds.fimo-CQFREH3A.js +509 -0
  238. package/dist/mds.samplescatterplot-XLJITURG.js +1545 -0
  239. package/dist/mds.survivalplot-MLRD27QP.js +472 -0
  240. package/dist/multivalue-KJQCYBHA.js +79 -0
  241. package/dist/numericDictTermCluster-ZOU6R4XP.js +62 -0
  242. package/dist/oncomatrix-4RHDDJDC.js +286 -0
  243. package/dist/oncomatrix.spec-JA6DT4PP.js +439 -0
  244. package/dist/plot.2dvaf-VJWPWCOY.js +368 -0
  245. package/dist/plot.app-JNEOGNVW.js +32 -0
  246. package/dist/plot.barplot-YELRBXUB.js +93 -0
  247. package/dist/plot.boxplot-HNFOB3TV.js +142 -0
  248. package/dist/plot.brainImaging-AZYEGF3U.js +51 -0
  249. package/dist/plot.disco-L6PGGZJI.js +98 -0
  250. package/dist/plot.ssgq-UM64SSXW.js +130 -0
  251. package/dist/plot.vaf2cov-DKUKJRUP.js +249 -0
  252. package/dist/polar2-4YHPENAV.js +228 -0
  253. package/dist/profileForms-KMECFO3K.js +937 -0
  254. package/dist/profilePlot-3AXSIXCK.js +45 -0
  255. package/dist/proteinView-QWHOTL35.js +1346 -0
  256. package/dist/proteomeCohortCompare-DL2QLFL3.js +866 -0
  257. package/dist/pseudbulk.unit.spec-IWR7EZ7O.js +82 -0
  258. package/dist/pseudobulk-IC525IZ2.js +31 -0
  259. package/dist/purify.es-34NJ2D5A.js +1986 -0
  260. package/dist/purify.es-34NJ2D5A.js.map +7 -0
  261. package/dist/qualitative-LK2QEYHU.js +34 -0
  262. package/dist/qualitative-YY4NQGO5.js +241 -0
  263. package/dist/radar2-TJUPENQF.js +323 -0
  264. package/dist/radarFacility2-Q7LBWLCV.js +331 -0
  265. package/dist/rememberedGvQ.unit.spec-2GBLM5AO.js +210 -0
  266. package/dist/render-AHR6SCQX.js +29 -0
  267. package/dist/report-BPHJTRTO.js +213 -0
  268. package/dist/sampleView-CS2FB3K3.js +39 -0
  269. package/dist/samplelst-A3DHKP6U.js +102 -0
  270. package/dist/samplematrix-5X7MFT3G.js +2188 -0
  271. package/dist/sc-RCYXZMN6.js +77 -0
  272. package/dist/scatter-2ITGMX5N.js +921 -0
  273. package/dist/scatter-OAL4YOCA.js +84 -0
  274. package/dist/selectGenomeWithTklst-PB5KDW2N.js +125 -0
  275. package/dist/singleCellCellType-FEFNOHOP.js +29 -0
  276. package/dist/singleCellCellType.unit.spec-V2I32V23.js +150 -0
  277. package/dist/singleCellGeneExpression-RUQQMKDE.js +29 -0
  278. package/dist/singleCellGeneExpression.unit.spec-VCMJRMT7.js +144 -0
  279. package/dist/singleCellNumericValue-JLXZQWNT.js +29 -0
  280. package/dist/singleCellNumericValue.unit.spec-XVCZEN5K.js +412 -0
  281. package/dist/singleCellPlot-4EBYWOJ2.js +44 -0
  282. package/dist/singlecell-UKZJAYVH.js +1562 -0
  283. package/dist/singlecell-VNRWPXGV.js +77 -0
  284. package/dist/snp-2RJDJQZC.js +29 -0
  285. package/dist/snp.unit.spec-Z4DNBFAH.js +167 -0
  286. package/dist/snplocus-OZLIZ7R7.js +200 -0
  287. package/dist/snplst-EVRJ4OCL.js +36 -0
  288. package/dist/spliceevent.a53ss.diagram-N5UXX4OX.js +142 -0
  289. package/dist/spliceevent.exonskip.diagram-WBNFLW4V.js +274 -0
  290. package/dist/spliceevent.noeventdiagram-EI72A6L3.js +451 -0
  291. package/dist/ssGSEA-NONMMNF7.js +29 -0
  292. package/dist/ssGSEA.unit.spec-7JDPNLZA.js +79 -0
  293. package/dist/stattable-NNUHKPF4.js +112 -0
  294. package/dist/studyCatalog-KMLE7Q55.js +457 -0
  295. package/dist/summarizeCnvGeneexp-AHCGPQLE.js +154 -0
  296. package/dist/summarizeGeneexpSurvival-NCST7HDQ.js +101 -0
  297. package/dist/summarizeMutationCnv-VUTQYXO6.js +155 -0
  298. package/dist/summarizeMutationDiagnosis-TFU2HUHQ.js +31 -0
  299. package/dist/summarizeMutationSurvival-F4CJILS3.js +95 -0
  300. package/dist/summary-QQZW7BEE.js +40 -0
  301. package/dist/summary.integration.spec-FILIPD3W.js +405 -0
  302. package/dist/summaryInput-RMY226Y3.js +238 -0
  303. package/dist/sunburst-Y4LNCKMR.js +274 -0
  304. package/dist/survival-4FYQHQHX.js +49 -0
  305. package/dist/survival-6GC267GY.js +1246 -0
  306. package/dist/survival.integration.spec-5ERXR6MG.js +609 -0
  307. package/dist/svg2pdf.es.min-KKHWPFWG.js +3157 -0
  308. package/dist/svgraph-XIQIA7OJ.js +1377 -0
  309. package/dist/svmr-45YJKRQP.js +3834 -0
  310. package/dist/svmr-45YJKRQP.js.map +7 -0
  311. package/dist/swimmer-643B5Q6F.js +741 -0
  312. package/dist/table-JQIBRXTJ.js +192 -0
  313. package/dist/termCollection-LU5NW6KT.js +247 -0
  314. package/dist/termCollection-XZCPBXRV.js +29 -0
  315. package/dist/termCollection.unit.spec-H5LBV3N4.js +295 -0
  316. package/dist/termCollectionFractionSelection-3YHOFXEL.js +38 -0
  317. package/dist/termCollectionFractionSelection.unit.spec-G5X3Y5YI.js +184 -0
  318. package/dist/tk-NPWNBXLB.js +37 -0
  319. package/dist/tk-YSW5NPW2.js +1116 -0
  320. package/dist/tp.ui-W6RG7V2A.js +1453 -0
  321. package/dist/tp.ui-W6RG7V2A.js.map +7 -0
  322. package/dist/tvs.categorical-TUX6KRZI.js +28 -0
  323. package/dist/tvs.condition-2CH25PLO.js +160 -0
  324. package/dist/tvs.dt-YKP3F75O.js +30 -0
  325. package/dist/tvs.dtcnv.categorical-QBJWJNHZ.js +31 -0
  326. package/dist/tvs.dtcnv.continuous-MV25OLBD.js +63 -0
  327. package/dist/tvs.dtfusion-SJ64HNKE.js +31 -0
  328. package/dist/tvs.dtitd-WQLHZK2P.js +31 -0
  329. package/dist/tvs.dtsnvindel-WMFJ7W7U.js +31 -0
  330. package/dist/tvs.dtsv-GKEC5OGA.js +31 -0
  331. package/dist/tvs.multivalue-LFWMQETN.js +84 -0
  332. package/dist/tvs.numeric-63NVZG7U.js +32 -0
  333. package/dist/tvs.samplelst-DEMMYRKK.js +95 -0
  334. package/dist/tvs.survival-M4QUVP5L.js +110 -0
  335. package/dist/tvs.termCollection-J367GZY3.js +118 -0
  336. package/dist/vocabulary-RAVWS5IS.js +32 -0
  337. package/dist/wsi.direct-UY3SIIAD.js +11514 -0
  338. package/dist/wsi.direct-UY3SIIAD.js.map +7 -0
  339. package/package.json +3 -3
  340. package/dist/2dmaf-RRHATFHO.js +0 -1362
  341. package/dist/AggMatrixInput-4UHBCXYH.js +0 -402
  342. package/dist/AggregateMatrix-IJE5CM5Y.js +0 -37
  343. package/dist/AppHeader-UXGLRW6C.js +0 -826
  344. package/dist/BoxPlot-GQYC22KY.js +0 -1233
  345. package/dist/CorrelationVolcano-5CWRWZTI.js +0 -613
  346. package/dist/Cuminc-TYHKAPRK.js +0 -1217
  347. package/dist/DE-UUFQGSOI.js +0 -85
  348. package/dist/DEinput-DU7MF4YY.js +0 -497
  349. package/dist/DM-SSI5KUBC.js +0 -86
  350. package/dist/DifferentialAnalysis-G6FE2MXY.js +0 -235
  351. package/dist/Disco-B3KGNEAW.js +0 -3384
  352. package/dist/Disco.UI-UNPUBQCN.js +0 -239
  353. package/dist/DmrPlot-27NGDMT4.js +0 -358
  354. package/dist/DmrPlot-27NGDMT4.js.map +0 -7
  355. package/dist/GB-SXACUA4V.js +0 -1388
  356. package/dist/GSEA-EHMBA3TF.js +0 -870
  357. package/dist/GeneExpInput-NDXISF2U.js +0 -38
  358. package/dist/Geomap-3CNT227W.js +0 -80
  359. package/dist/HicApp-VQBUB6EZ.js +0 -2240
  360. package/dist/IDCViewer-DTOE7KDX.js +0 -10808
  361. package/dist/NumBinaryEditor-IVZ4MMQT.js +0 -274
  362. package/dist/NumBinaryEditor.unit.spec-3BSQ6FM4.js +0 -308
  363. package/dist/NumContEditor-CUZHU3IO.js +0 -100
  364. package/dist/NumContEditor.unit.spec-SCQFD2Y7.js +0 -160
  365. package/dist/NumCustomBinEditor-UEEYZ4ZO.js +0 -29
  366. package/dist/NumCustomBinEditor.unit.spec-GYS35OQV.js +0 -393
  367. package/dist/NumDiscreteEditor-IT7NIXTV.js +0 -165
  368. package/dist/NumDiscreteEditor.unit.spec-LB6VLAWO.js +0 -229
  369. package/dist/NumRegularBinEditor-FF6UXZWN.js +0 -29
  370. package/dist/NumRegularBinEditor.unit.spec-Z4S5LH2C.js +0 -274
  371. package/dist/NumSplineEditor-IW5WEN3P.js +0 -205
  372. package/dist/NumSplineEditor.unit.spec-PAEN3SAD.js +0 -220
  373. package/dist/NumericDensity-CPJIQLYT.js +0 -29
  374. package/dist/NumericDensity.unit.spec-4KHECHVU.js +0 -414
  375. package/dist/NumericHandler-SEFTQJDM.js +0 -30
  376. package/dist/NumericHandler.unit.spec-UGDR3476.js +0 -210
  377. package/dist/ProteomeInput-NYPUYVN5.js +0 -610
  378. package/dist/Regression-WDSISHYL.js +0 -1412
  379. package/dist/RunChart2-2NPADXUR.js +0 -744
  380. package/dist/SC-EWDBPHEL.js +0 -1344
  381. package/dist/SC-EWDBPHEL.js.map +0 -7
  382. package/dist/Violin-POGGPCZY.js +0 -1095
  383. package/dist/Volcano-U2B4KEUL.js +0 -2452
  384. package/dist/Volcano-U2B4KEUL.js.map +0 -7
  385. package/dist/Wsi-G7OCAJ3R.js +0 -625
  386. package/dist/Wsi-G7OCAJ3R.js.map +0 -7
  387. package/dist/adSandbox-SUCX6DAQ.js +0 -29
  388. package/dist/animatedBubbleChart-SDBWJELZ.js +0 -542
  389. package/dist/app-ATQM5PKI.js +0 -28
  390. package/dist/app-BCKEWJCY.js +0 -38
  391. package/dist/bam-QK2ZLZDI.js +0 -872
  392. package/dist/barchart-RHDKI3NZ.js +0 -38
  393. package/dist/barchart2-CS3E6FOY.js +0 -305
  394. package/dist/block-RQ3HTJVP.js +0 -6232
  395. package/dist/block.init-T33F47DO.js +0 -29
  396. package/dist/block.mds.expressionrank-LQD6MN6Z.js +0 -350
  397. package/dist/block.mds.geneboxplot-N5XHHVR7.js +0 -819
  398. package/dist/block.mds.junction-JD4WQUSH.js +0 -1534
  399. package/dist/block.mds.svcnv-LCTYWXL2.js +0 -6408
  400. package/dist/block.svg-2F3RGTI3.js +0 -155
  401. package/dist/block.tk.aicheck-BOF6WZ5E.js +0 -274
  402. package/dist/block.tk.bam-5GBYEQBM.js +0 -1897
  403. package/dist/block.tk.bedgraphdot-LVQEP4RS.js +0 -375
  404. package/dist/block.tk.bigwig.ui-HHBO4JAC.js +0 -202
  405. package/dist/block.tk.hicstraw-JBO4UEOA.js +0 -814
  406. package/dist/block.tk.junction-S5S2N7FK.js +0 -2353
  407. package/dist/block.tk.junction.textmatrixui-DNQL7WB5.js +0 -190
  408. package/dist/block.tk.ld-JHQNR67E.js +0 -90
  409. package/dist/block.tk.menu-7JBJOY2O.js +0 -1050
  410. package/dist/block.tk.pgv-FQPREV6P.js +0 -934
  411. package/dist/brainImaging-HEWGZZNY.js +0 -550
  412. package/dist/brainRegions-QUGB7YUW.js +0 -213
  413. package/dist/bubbleHeatmap-OZRONGAX.js +0 -374
  414. package/dist/cellTypeBubbleHeatmap-N7NDE325.js +0 -274
  415. package/dist/chunk-2FWSNJEN.js +0 -54
  416. package/dist/chunk-2JIKMCJR.js +0 -34
  417. package/dist/chunk-3SPEW6R6.js +0 -102
  418. package/dist/chunk-5G6O5RYM.js +0 -123
  419. package/dist/chunk-65DO5IKM.js +0 -299
  420. package/dist/chunk-6D4HOTG7.js +0 -1844
  421. package/dist/chunk-6Q5SOSSU.js +0 -2685
  422. package/dist/chunk-7JHIUS54.js +0 -626
  423. package/dist/chunk-7X347XMF.js +0 -397
  424. package/dist/chunk-ABLG7GUS.js +0 -55
  425. package/dist/chunk-AFEFZ74T.js +0 -276
  426. package/dist/chunk-AIC43DTG.js +0 -243
  427. package/dist/chunk-AJXP4AV7.js +0 -182
  428. package/dist/chunk-AMW5LCUB.js +0 -424
  429. package/dist/chunk-AV2IH5K2.js +0 -156
  430. package/dist/chunk-B3WLXXGY.js +0 -263
  431. package/dist/chunk-BG6GAROI.js +0 -302
  432. package/dist/chunk-BIJOXCLN.js +0 -2277
  433. package/dist/chunk-BIJOXCLN.js.map +0 -7
  434. package/dist/chunk-BU6PAOGA.js +0 -103
  435. package/dist/chunk-BZV2BJDU.js +0 -13624
  436. package/dist/chunk-C2TII2FF.js +0 -96
  437. package/dist/chunk-CTFHEDG2.js +0 -550
  438. package/dist/chunk-CXEECHP5.js +0 -37
  439. package/dist/chunk-CZK4EV3Y.js +0 -1339
  440. package/dist/chunk-D35GNF3Y.js +0 -2325
  441. package/dist/chunk-D35GNF3Y.js.map +0 -7
  442. package/dist/chunk-DFZWE3TR.js +0 -170
  443. package/dist/chunk-DX23HAW7.js +0 -1219
  444. package/dist/chunk-E7XHA4YL.js +0 -1988
  445. package/dist/chunk-EDFBRXX2.js +0 -54
  446. package/dist/chunk-F23EQSGU.js +0 -26
  447. package/dist/chunk-F2EEQ7KG.js +0 -379
  448. package/dist/chunk-F5FFI7Z7.js +0 -468
  449. package/dist/chunk-FK5NL2DF.js +0 -141
  450. package/dist/chunk-FVZTRWAO.js +0 -692
  451. package/dist/chunk-GDHQVEIO.js +0 -217
  452. package/dist/chunk-GSVB4XNS.js +0 -2799
  453. package/dist/chunk-GVAV4VRI.js +0 -418
  454. package/dist/chunk-H2FELGYK.js +0 -140
  455. package/dist/chunk-HFKZGMVV.js +0 -839
  456. package/dist/chunk-HJARHSDC.js +0 -274
  457. package/dist/chunk-HWNQOADC.js +0 -182
  458. package/dist/chunk-HXRG7XYB.js +0 -54
  459. package/dist/chunk-J5KCTRJC.js +0 -80
  460. package/dist/chunk-JMFVXWDX.js +0 -59
  461. package/dist/chunk-KGX2OIR4.js +0 -203
  462. package/dist/chunk-L2NPLA43.js +0 -257
  463. package/dist/chunk-L2WOLNZK.js +0 -339
  464. package/dist/chunk-LQKMDIRB.js +0 -466
  465. package/dist/chunk-LSQ5AQ6Q.js +0 -562
  466. package/dist/chunk-MBQIHLGI.js +0 -1269
  467. package/dist/chunk-MBQIHLGI.js.map +0 -7
  468. package/dist/chunk-MFR4WWDM.js +0 -14
  469. package/dist/chunk-MU4Z2MX2.js +0 -340
  470. package/dist/chunk-NHMIMTJA.js +0 -281
  471. package/dist/chunk-NNDKYTUV.js +0 -25353
  472. package/dist/chunk-NNDKYTUV.js.map +0 -7
  473. package/dist/chunk-NPBN3PPZ.js +0 -6358
  474. package/dist/chunk-NPBN3PPZ.js.map +0 -7
  475. package/dist/chunk-NULQJF73.js +0 -56
  476. package/dist/chunk-NYO7YANQ.js +0 -294
  477. package/dist/chunk-OBNHXAYG.js +0 -194
  478. package/dist/chunk-PETYR7LC.js +0 -134
  479. package/dist/chunk-PLFPXOGX.js +0 -119
  480. package/dist/chunk-PQVHRM4L.js +0 -5213
  481. package/dist/chunk-QLUTQPZE.js +0 -240
  482. package/dist/chunk-QNQ2ZYT7.js +0 -38
  483. package/dist/chunk-QYCPIVCX.js +0 -255
  484. package/dist/chunk-RZ2THVK4.js +0 -516
  485. package/dist/chunk-S4IZ4VM7.js +0 -31
  486. package/dist/chunk-SFUDTUXF.js +0 -382
  487. package/dist/chunk-SUT75MRI.js +0 -102
  488. package/dist/chunk-SYLYLOHK.js +0 -56
  489. package/dist/chunk-TEFWF3SK.js +0 -176
  490. package/dist/chunk-TPSVPMAN.js +0 -70
  491. package/dist/chunk-V4ZKHM6D.js +0 -2960
  492. package/dist/chunk-V7DNHPZD.js +0 -4373
  493. package/dist/chunk-VPMQDTYR.js +0 -194
  494. package/dist/chunk-VV6JIG4D.js +0 -444
  495. package/dist/chunk-WTAPOH2W.js +0 -22699
  496. package/dist/chunk-WTAPOH2W.js.map +0 -7
  497. package/dist/chunk-WU3YXPRE.js +0 -217
  498. package/dist/chunk-X2HWRISK.js +0 -480
  499. package/dist/chunk-X77QVINS.js +0 -49
  500. package/dist/chunk-XXFLJWTQ.js +0 -237
  501. package/dist/chunk-ZPWBYHNE.js +0 -5799
  502. package/dist/chunk-ZPWBYHNE.js.map +0 -7
  503. package/dist/cohort-ATIZW34H.js +0 -66
  504. package/dist/cohortSunburst-WQK2UV25.js +0 -686
  505. package/dist/cohortSunburst-WQK2UV25.js.map +0 -7
  506. package/dist/condition-SGJIDZNB.js +0 -323
  507. package/dist/controls-JQCMGPXP.js +0 -30
  508. package/dist/controls.config-WQHVQAIJ.js +0 -30
  509. package/dist/correlation-S3MN3L5Q.js +0 -91
  510. package/dist/customdata.inputui-LGTGMJBZ.js +0 -280
  511. package/dist/dataDownload-FAWN2WKE.js +0 -325
  512. package/dist/databrowser.ui-KF3LWQXG.js +0 -421
  513. package/dist/dictionary-EVLEOT72.js +0 -109
  514. package/dist/dnaMethylation-J3SPEM4S.js +0 -29
  515. package/dist/dnaMethylation.integration.spec-CTA53YCT.js +0 -194
  516. package/dist/dofetch-3C3MI5NR.js +0 -47
  517. package/dist/e2pca-PTWPY5WP.js +0 -340
  518. package/dist/ep-MS4LQQDR.js +0 -1245
  519. package/dist/ep-MS4LQQDR.js.map +0 -7
  520. package/dist/expclust.gdc.spec-S5FE4MMD.js +0 -298
  521. package/dist/facet-FSOIZJCA.js +0 -515
  522. package/dist/gb-YDEOK7NW.js +0 -77
  523. package/dist/geneExpClustering-37JKKFW3.js +0 -240
  524. package/dist/geneExpression-G6ODP3VY.js +0 -29
  525. package/dist/geneExpression-VQPRFNKE.js +0 -309
  526. package/dist/geneExpression.unit.spec-ZHXCUG6Q.js +0 -124
  527. package/dist/geneORA-E3PSS3CI.js +0 -269
  528. package/dist/geneRanking-MK3YYINC.js +0 -544
  529. package/dist/geneVariant-LEMAVFOY.js +0 -32
  530. package/dist/geneVariant-NNSB7JLS.js +0 -285
  531. package/dist/geneVariant.integration.spec-6CC5UAOP.js +0 -499
  532. package/dist/genefusion.ui-5NCQIQPN.js +0 -299
  533. package/dist/geneset-ZX4V3CFB.js +0 -199
  534. package/dist/genomeBrowser.spec-J7ISXY6H.js +0 -272
  535. package/dist/grin2-GN3DQNON.js +0 -945
  536. package/dist/grin2-LBGBBB4L.js +0 -66
  537. package/dist/hierCluster-5JURTKAZ.js +0 -55
  538. package/dist/hierCluster-BJ5VBPXR.js +0 -51
  539. package/dist/hierCluster.config-4EERP4KK.js +0 -32
  540. package/dist/hierCluster.integration.spec-VR4GULRV.js +0 -479
  541. package/dist/hierCluster.interactivity-SMTQOKUY.js +0 -45
  542. package/dist/hierCluster.renderers-PAME7BWU.js +0 -18
  543. package/dist/imagePlot-4LMIKBVE.js +0 -152
  544. package/dist/importPlot-3CG6ASNH.js +0 -8
  545. package/dist/isoformExpression-VCDNKTZ6.js +0 -31
  546. package/dist/isoformExpression.unit.spec-ZXYY37TA.js +0 -233
  547. package/dist/jspdf.es.min-V7ONHJJV.js +0 -40
  548. package/dist/junction-5DXJO4PS.js +0 -32
  549. package/dist/junction.customTerm-UOPUSEOE.js +0 -15
  550. package/dist/junction.unit.spec-F35E3GJW.js +0 -178
  551. package/dist/launch.adhoc-V2HTCQGD.js +0 -33
  552. package/dist/leftlabel.sample-V7O2EC36.js +0 -253
  553. package/dist/lollipop-RNRZLG64.js +0 -162
  554. package/dist/maf-W6SF6BJS.js +0 -451
  555. package/dist/maftimeline-NABCAMHG.js +0 -583
  556. package/dist/matrix-JC6AJT2N.js +0 -55
  557. package/dist/matrix-UCHESWVK.js +0 -50
  558. package/dist/matrix.cells-B4L42TBM.js +0 -25
  559. package/dist/matrix.config-6US3AAH7.js +0 -33
  560. package/dist/matrix.data-FYFXYDA3.js +0 -22
  561. package/dist/matrix.groups-Y7DEG3GS.js +0 -25
  562. package/dist/matrix.integration.spec-KXX7SFX5.js +0 -3156
  563. package/dist/matrix.interactivity-NHWG4WCC.js +0 -33
  564. package/dist/matrix.layout-5DQNT7DD.js +0 -35
  565. package/dist/matrix.legend-OY7IF6AS.js +0 -19
  566. package/dist/matrix.renderers-GYOXGHPU.js +0 -30
  567. package/dist/matrix.serieses-657TLDAV.js +0 -18
  568. package/dist/matrix.sort-IMA2ES3T.js +0 -25
  569. package/dist/matrix.sort.unit.spec-S6BAFYPR.js +0 -464
  570. package/dist/matrix.sorterUi-77F36Q5H.js +0 -15
  571. package/dist/matrix.sorterUi.unit.spec-V5NVQGD5.js +0 -334
  572. package/dist/matrix.unit.spec-R4NMTZYQ.js +0 -146
  573. package/dist/mavb-MRCVMBPD.js +0 -723
  574. package/dist/mavb-MRCVMBPD.js.map +0 -7
  575. package/dist/mds.fimo-5DCH5BEM.js +0 -509
  576. package/dist/mds.samplescatterplot-VIBCS5M6.js +0 -1545
  577. package/dist/mds.survivalplot-AZ7LJDZZ.js +0 -472
  578. package/dist/multivalue-4QKGYYW2.js +0 -79
  579. package/dist/numericDictTermCluster-GLLG6IK2.js +0 -62
  580. package/dist/oncomatrix-R32ZPMX7.js +0 -286
  581. package/dist/oncomatrix.spec-BMK6LMBS.js +0 -439
  582. package/dist/plot.2dvaf-46FT53MF.js +0 -368
  583. package/dist/plot.app-7EE4YCV4.js +0 -32
  584. package/dist/plot.barplot-FK4J2G7K.js +0 -93
  585. package/dist/plot.boxplot-ATY4LK3X.js +0 -142
  586. package/dist/plot.brainImaging-S7B547V4.js +0 -51
  587. package/dist/plot.disco-K5MMC2GD.js +0 -98
  588. package/dist/plot.ssgq-B3OVMZFD.js +0 -130
  589. package/dist/plot.vaf2cov-RBHDQULW.js +0 -249
  590. package/dist/polar2-GECELCTG.js +0 -228
  591. package/dist/profileForms-2USYOA34.js +0 -937
  592. package/dist/profilePlot-YGD2CF6P.js +0 -45
  593. package/dist/proteinView-FCPWJLGU.js +0 -1346
  594. package/dist/proteomeCohortCompare-TYYUF5A5.js +0 -866
  595. package/dist/pseudbulk.unit.spec-UVVRP6NR.js +0 -82
  596. package/dist/pseudobulk-ZIN5VJGB.js +0 -31
  597. package/dist/purify.es-3S3RVH5Y.js +0 -1594
  598. package/dist/purify.es-3S3RVH5Y.js.map +0 -7
  599. package/dist/qualitative-27BZGASV.js +0 -34
  600. package/dist/qualitative-N4F6NITI.js +0 -241
  601. package/dist/radar2-X465RPJX.js +0 -323
  602. package/dist/radarFacility2-AE7BA62N.js +0 -331
  603. package/dist/rememberedGvQ.unit.spec-4PDIU5RY.js +0 -210
  604. package/dist/render-TD2QWOHT.js +0 -29
  605. package/dist/report-3Y2OWDF7.js +0 -213
  606. package/dist/sampleView-BUMMYRHJ.js +0 -39
  607. package/dist/samplelst-BWK53BLI.js +0 -102
  608. package/dist/samplematrix-RQU43UYR.js +0 -2188
  609. package/dist/sc-LCBFWCZZ.js +0 -77
  610. package/dist/scatter-6S5I7OW3.js +0 -921
  611. package/dist/scatter-MJELX75N.js +0 -84
  612. package/dist/selectGenomeWithTklst-WAVXHXR5.js +0 -125
  613. package/dist/singleCellCellType-WMCAJ7JF.js +0 -29
  614. package/dist/singleCellCellType.unit.spec-4Z46ZT5Q.js +0 -150
  615. package/dist/singleCellGeneExpression-7Q5ZJT4R.js +0 -29
  616. package/dist/singleCellGeneExpression.unit.spec-6C7PDGRH.js +0 -144
  617. package/dist/singleCellNumericValue-QGYITZRC.js +0 -29
  618. package/dist/singleCellNumericValue.unit.spec-MQUKPEZJ.js +0 -412
  619. package/dist/singleCellPlot-JJMFJ2KQ.js +0 -44
  620. package/dist/singlecell-J23S3JR2.js +0 -1562
  621. package/dist/singlecell-Y4OGUWEC.js +0 -77
  622. package/dist/snp-IO6TKWGD.js +0 -29
  623. package/dist/snp.unit.spec-X7ILEEPO.js +0 -167
  624. package/dist/snplocus-Z2NGIKMO.js +0 -200
  625. package/dist/snplst-XCS2FCQV.js +0 -36
  626. package/dist/spliceevent.a53ss.diagram-F3S4BRVG.js +0 -142
  627. package/dist/spliceevent.exonskip.diagram-AXCDJKH4.js +0 -274
  628. package/dist/spliceevent.noeventdiagram-UK3X667E.js +0 -451
  629. package/dist/ssGSEA-ZRPNQKJ5.js +0 -29
  630. package/dist/ssGSEA.unit.spec-DG5ZHLC7.js +0 -79
  631. package/dist/stattable-XYSC3CYU.js +0 -112
  632. package/dist/studyCatalog-Y75LMI62.js +0 -457
  633. package/dist/summarizeCnvGeneexp-H2NP7VLU.js +0 -154
  634. package/dist/summarizeGeneexpSurvival-HTCD3VQQ.js +0 -101
  635. package/dist/summarizeMutationCnv-UEGXWK2P.js +0 -155
  636. package/dist/summarizeMutationDiagnosis-MJGWP7IT.js +0 -31
  637. package/dist/summarizeMutationSurvival-55JW5LA6.js +0 -95
  638. package/dist/summary-HJO23RGB.js +0 -40
  639. package/dist/summary.integration.spec-OWI2C2N5.js +0 -405
  640. package/dist/summaryInput-RL2JXRDE.js +0 -238
  641. package/dist/sunburst-JFY6V5E2.js +0 -274
  642. package/dist/survival-6FLR4YCJ.js +0 -1246
  643. package/dist/survival-PBBU6PA5.js +0 -49
  644. package/dist/survival.integration.spec-WAKTGYGP.js +0 -609
  645. package/dist/svg2pdf.es.min-NIFE2BIE.js +0 -3157
  646. package/dist/svgraph-WD3DUZV7.js +0 -1377
  647. package/dist/svmr-AP6ZFO7S.js +0 -3832
  648. package/dist/svmr-AP6ZFO7S.js.map +0 -7
  649. package/dist/swimmer-VPKSBV6V.js +0 -741
  650. package/dist/table-GX3VJLPZ.js +0 -192
  651. package/dist/termCollection-QE7U5QBD.js +0 -29
  652. package/dist/termCollection-YQ332WKB.js +0 -247
  653. package/dist/termCollection.unit.spec-ELLN7VRA.js +0 -295
  654. package/dist/termCollectionFractionSelection-V3RP5KAT.js +0 -38
  655. package/dist/termCollectionFractionSelection.unit.spec-JR7Q7TJI.js +0 -184
  656. package/dist/tk-GD2KJM5W.js +0 -1116
  657. package/dist/tk-J5VPFEX6.js +0 -37
  658. package/dist/tp.ui-5K3AAXDW.js +0 -1449
  659. package/dist/tp.ui-5K3AAXDW.js.map +0 -7
  660. package/dist/tvs.categorical-RPACB4VU.js +0 -28
  661. package/dist/tvs.condition-O6JBUM6D.js +0 -160
  662. package/dist/tvs.dt-5EVBSRX3.js +0 -30
  663. package/dist/tvs.dtcnv.categorical-Y5YHBZNC.js +0 -31
  664. package/dist/tvs.dtcnv.continuous-WP322QUP.js +0 -63
  665. package/dist/tvs.dtfusion-CCMUFDMQ.js +0 -31
  666. package/dist/tvs.dtitd-P3ED3MWA.js +0 -31
  667. package/dist/tvs.dtsnvindel-X2MXPLC6.js +0 -31
  668. package/dist/tvs.dtsv-4FOWFNVV.js +0 -31
  669. package/dist/tvs.multivalue-IRF467ZK.js +0 -84
  670. package/dist/tvs.numeric-C7FDCGCS.js +0 -32
  671. package/dist/tvs.samplelst-CBU6ATI5.js +0 -95
  672. package/dist/tvs.survival-3K5ASAXV.js +0 -110
  673. package/dist/tvs.termCollection-MXEWO6KJ.js +0 -118
  674. package/dist/vocabulary-GQBHDP3K.js +0 -32
  675. package/dist/wsi.direct-25JUHWEF.js +0 -8339
  676. package/dist/wsi.direct-25JUHWEF.js.map +0 -7
  677. /package/dist/{2dmaf-RRHATFHO.js.map → 2dmaf-BZWQ4YZF.js.map} +0 -0
  678. /package/dist/{AggMatrixInput-4UHBCXYH.js.map → AggMatrixInput-OXUENYYF.js.map} +0 -0
  679. /package/dist/{AggregateMatrix-IJE5CM5Y.js.map → AggregateMatrix-7PYLWY3X.js.map} +0 -0
  680. /package/dist/{AppHeader-UXGLRW6C.js.map → AppHeader-QOLLABH4.js.map} +0 -0
  681. /package/dist/{BoxPlot-GQYC22KY.js.map → BoxPlot-PDRYKWXF.js.map} +0 -0
  682. /package/dist/{CorrelationVolcano-5CWRWZTI.js.map → CorrelationVolcano-Z3ABRHL6.js.map} +0 -0
  683. /package/dist/{Cuminc-TYHKAPRK.js.map → Cuminc-ATQT3KDO.js.map} +0 -0
  684. /package/dist/{DE-UUFQGSOI.js.map → DE-5LMMF5QB.js.map} +0 -0
  685. /package/dist/{DEinput-DU7MF4YY.js.map → DEinput-Y2VXYH54.js.map} +0 -0
  686. /package/dist/{DM-SSI5KUBC.js.map → DM-ACIWRZS2.js.map} +0 -0
  687. /package/dist/{DifferentialAnalysis-G6FE2MXY.js.map → DifferentialAnalysis-23WQKT6I.js.map} +0 -0
  688. /package/dist/{Disco-B3KGNEAW.js.map → Disco-5UBCTVTY.js.map} +0 -0
  689. /package/dist/{Disco.UI-UNPUBQCN.js.map → Disco.UI-6YCIW3QK.js.map} +0 -0
  690. /package/dist/{GB-SXACUA4V.js.map → GB-QZZG4DHJ.js.map} +0 -0
  691. /package/dist/{GSEA-EHMBA3TF.js.map → GSEA-3WW4GEXE.js.map} +0 -0
  692. /package/dist/{GeneExpInput-NDXISF2U.js.map → GeneExpInput-PW6HP5LO.js.map} +0 -0
  693. /package/dist/{Geomap-3CNT227W.js.map → Geomap-YDUXJ65P.js.map} +0 -0
  694. /package/dist/{HicApp-VQBUB6EZ.js.map → HicApp-CXHLK5UM.js.map} +0 -0
  695. /package/dist/{IDCViewer-DTOE7KDX.js.map → IDCViewer-ID46XKWW.js.map} +0 -0
  696. /package/dist/{NumBinaryEditor-IVZ4MMQT.js.map → NumBinaryEditor-7HEQD3UO.js.map} +0 -0
  697. /package/dist/{NumBinaryEditor.unit.spec-3BSQ6FM4.js.map → NumBinaryEditor.unit.spec-CE5FZMLZ.js.map} +0 -0
  698. /package/dist/{NumContEditor-CUZHU3IO.js.map → NumContEditor-7J4IODVT.js.map} +0 -0
  699. /package/dist/{NumContEditor.unit.spec-SCQFD2Y7.js.map → NumContEditor.unit.spec-H3DEDHGO.js.map} +0 -0
  700. /package/dist/{NumCustomBinEditor-UEEYZ4ZO.js.map → NumCustomBinEditor-URE4NOZI.js.map} +0 -0
  701. /package/dist/{NumCustomBinEditor.unit.spec-GYS35OQV.js.map → NumCustomBinEditor.unit.spec-XE5AUM45.js.map} +0 -0
  702. /package/dist/{NumDiscreteEditor-IT7NIXTV.js.map → NumDiscreteEditor-PBV2QXRU.js.map} +0 -0
  703. /package/dist/{NumDiscreteEditor.unit.spec-LB6VLAWO.js.map → NumDiscreteEditor.unit.spec-2TWQ7DAZ.js.map} +0 -0
  704. /package/dist/{NumRegularBinEditor-FF6UXZWN.js.map → NumRegularBinEditor-MG27BRWO.js.map} +0 -0
  705. /package/dist/{NumRegularBinEditor.unit.spec-Z4S5LH2C.js.map → NumRegularBinEditor.unit.spec-6NJLP3BX.js.map} +0 -0
  706. /package/dist/{NumSplineEditor-IW5WEN3P.js.map → NumSplineEditor-ZZKMWU2V.js.map} +0 -0
  707. /package/dist/{NumSplineEditor.unit.spec-PAEN3SAD.js.map → NumSplineEditor.unit.spec-T3C2YPU5.js.map} +0 -0
  708. /package/dist/{NumericDensity-CPJIQLYT.js.map → NumericDensity-BUEAEQZD.js.map} +0 -0
  709. /package/dist/{NumericDensity.unit.spec-4KHECHVU.js.map → NumericDensity.unit.spec-XZ77VRO7.js.map} +0 -0
  710. /package/dist/{NumericHandler-SEFTQJDM.js.map → NumericHandler-RW2NAEBZ.js.map} +0 -0
  711. /package/dist/{NumericHandler.unit.spec-UGDR3476.js.map → NumericHandler.unit.spec-BQGTQBV6.js.map} +0 -0
  712. /package/dist/{ProteomeInput-NYPUYVN5.js.map → ProteomeInput-RL6IDTOA.js.map} +0 -0
  713. /package/dist/{Regression-WDSISHYL.js.map → Regression-EVGHTLUT.js.map} +0 -0
  714. /package/dist/{RunChart2-2NPADXUR.js.map → RunChart2-NK2KWOZ7.js.map} +0 -0
  715. /package/dist/{Violin-POGGPCZY.js.map → Violin-2HIRC6A2.js.map} +0 -0
  716. /package/dist/{adSandbox-SUCX6DAQ.js.map → adSandbox-T2HORPLC.js.map} +0 -0
  717. /package/dist/{animatedBubbleChart-SDBWJELZ.js.map → animatedBubbleChart-PS7KMVSY.js.map} +0 -0
  718. /package/dist/{app-ATQM5PKI.js.map → app-FKPGNJDN.js.map} +0 -0
  719. /package/dist/{app-BCKEWJCY.js.map → app-NPGVS6X4.js.map} +0 -0
  720. /package/dist/{bam-QK2ZLZDI.js.map → bam-QQ54FE3A.js.map} +0 -0
  721. /package/dist/{barchart-RHDKI3NZ.js.map → barchart-4DLCN7NL.js.map} +0 -0
  722. /package/dist/{barchart2-CS3E6FOY.js.map → barchart2-H65GFNNQ.js.map} +0 -0
  723. /package/dist/{block-RQ3HTJVP.js.map → block-RAYA73ZN.js.map} +0 -0
  724. /package/dist/{block.init-T33F47DO.js.map → block.init-VE3TQWH4.js.map} +0 -0
  725. /package/dist/{block.mds.expressionrank-LQD6MN6Z.js.map → block.mds.expressionrank-YLFQQHZJ.js.map} +0 -0
  726. /package/dist/{block.mds.geneboxplot-N5XHHVR7.js.map → block.mds.geneboxplot-6V44H7EC.js.map} +0 -0
  727. /package/dist/{block.mds.junction-JD4WQUSH.js.map → block.mds.junction-DEIUZOQK.js.map} +0 -0
  728. /package/dist/{block.mds.svcnv-LCTYWXL2.js.map → block.mds.svcnv-PTP7JYS2.js.map} +0 -0
  729. /package/dist/{block.svg-2F3RGTI3.js.map → block.svg-RGDXDKV6.js.map} +0 -0
  730. /package/dist/{block.tk.aicheck-BOF6WZ5E.js.map → block.tk.aicheck-MFXHYAIN.js.map} +0 -0
  731. /package/dist/{block.tk.bam-5GBYEQBM.js.map → block.tk.bam-ICTVSRQ6.js.map} +0 -0
  732. /package/dist/{block.tk.bedgraphdot-LVQEP4RS.js.map → block.tk.bedgraphdot-X5AYHRUJ.js.map} +0 -0
  733. /package/dist/{block.tk.bigwig.ui-HHBO4JAC.js.map → block.tk.bigwig.ui-FS3DA5JQ.js.map} +0 -0
  734. /package/dist/{block.tk.hicstraw-JBO4UEOA.js.map → block.tk.hicstraw-MBBA3H4E.js.map} +0 -0
  735. /package/dist/{block.tk.junction-S5S2N7FK.js.map → block.tk.junction-L3YVWWOR.js.map} +0 -0
  736. /package/dist/{block.tk.junction.textmatrixui-DNQL7WB5.js.map → block.tk.junction.textmatrixui-PU3C7W6B.js.map} +0 -0
  737. /package/dist/{block.tk.ld-JHQNR67E.js.map → block.tk.ld-SNKUZDPW.js.map} +0 -0
  738. /package/dist/{block.tk.menu-7JBJOY2O.js.map → block.tk.menu-NARHQW7Y.js.map} +0 -0
  739. /package/dist/{block.tk.pgv-FQPREV6P.js.map → block.tk.pgv-NVNFNJZ6.js.map} +0 -0
  740. /package/dist/{brainImaging-HEWGZZNY.js.map → brainImaging-KHFLAPHC.js.map} +0 -0
  741. /package/dist/{brainRegions-QUGB7YUW.js.map → brainRegions-MQL2KZOQ.js.map} +0 -0
  742. /package/dist/{bubbleHeatmap-OZRONGAX.js.map → bubbleHeatmap-U3GAF5AV.js.map} +0 -0
  743. /package/dist/{cellTypeBubbleHeatmap-N7NDE325.js.map → cellTypeBubbleHeatmap-5ENEMDCZ.js.map} +0 -0
  744. /package/dist/{chunk-3SPEW6R6.js.map → chunk-25Q4AX4L.js.map} +0 -0
  745. /package/dist/{chunk-VPMQDTYR.js.map → chunk-2WWCHIXZ.js.map} +0 -0
  746. /package/dist/{chunk-NYO7YANQ.js.map → chunk-3AO7OZLF.js.map} +0 -0
  747. /package/dist/{chunk-NULQJF73.js.map → chunk-3DZJ64RQ.js.map} +0 -0
  748. /package/dist/{chunk-F23EQSGU.js.map → chunk-3QZHRQ55.js.map} +0 -0
  749. /package/dist/{chunk-QLUTQPZE.js.map → chunk-3ZM5PZXA.js.map} +0 -0
  750. /package/dist/{chunk-6Q5SOSSU.js.map → chunk-43FVCJXV.js.map} +0 -0
  751. /package/dist/{chunk-C2TII2FF.js.map → chunk-43WVK5KI.js.map} +0 -0
  752. /package/dist/{chunk-RZ2THVK4.js.map → chunk-4ZOKEHK4.js.map} +0 -0
  753. /package/dist/{chunk-BU6PAOGA.js.map → chunk-5M4U6S3E.js.map} +0 -0
  754. /package/dist/{chunk-X77QVINS.js.map → chunk-5O4GAKJT.js.map} +0 -0
  755. /package/dist/{chunk-HJARHSDC.js.map → chunk-5Q6TANNH.js.map} +0 -0
  756. /package/dist/{chunk-PETYR7LC.js.map → chunk-5WBIVXMG.js.map} +0 -0
  757. /package/dist/{chunk-QYCPIVCX.js.map → chunk-65FN7LIA.js.map} +0 -0
  758. /package/dist/{chunk-DFZWE3TR.js.map → chunk-7HTMIFVR.js.map} +0 -0
  759. /package/dist/{chunk-GSVB4XNS.js.map → chunk-AOKINHUU.js.map} +0 -0
  760. /package/dist/{chunk-AJXP4AV7.js.map → chunk-APXULA6M.js.map} +0 -0
  761. /package/dist/{chunk-6D4HOTG7.js.map → chunk-C7O67FZJ.js.map} +0 -0
  762. /package/dist/{chunk-NHMIMTJA.js.map → chunk-CCNV3WJO.js.map} +0 -0
  763. /package/dist/{chunk-AV2IH5K2.js.map → chunk-DAKRDL76.js.map} +0 -0
  764. /package/dist/{chunk-7X347XMF.js.map → chunk-EGQVMN6S.js.map} +0 -0
  765. /package/dist/{chunk-WU3YXPRE.js.map → chunk-ERCLZ433.js.map} +0 -0
  766. /package/dist/{chunk-S4IZ4VM7.js.map → chunk-ESLXHJ7W.js.map} +0 -0
  767. /package/dist/{chunk-AMW5LCUB.js.map → chunk-ET2KFCXK.js.map} +0 -0
  768. /package/dist/{chunk-B3WLXXGY.js.map → chunk-EYIZTX33.js.map} +0 -0
  769. /package/dist/{chunk-AIC43DTG.js.map → chunk-F2PHTKCI.js.map} +0 -0
  770. /package/dist/{chunk-TEFWF3SK.js.map → chunk-FJXUMOVQ.js.map} +0 -0
  771. /package/dist/{chunk-H2FELGYK.js.map → chunk-HJCI33L4.js.map} +0 -0
  772. /package/dist/{chunk-J5KCTRJC.js.map → chunk-HKXBGMUT.js.map} +0 -0
  773. /package/dist/{chunk-QNQ2ZYT7.js.map → chunk-HNMKK33Y.js.map} +0 -0
  774. /package/dist/{chunk-X2HWRISK.js.map → chunk-IKZAWD7P.js.map} +0 -0
  775. /package/dist/{chunk-KGX2OIR4.js.map → chunk-ILPJAASI.js.map} +0 -0
  776. /package/dist/{chunk-LSQ5AQ6Q.js.map → chunk-JFZECJY2.js.map} +0 -0
  777. /package/dist/{chunk-PLFPXOGX.js.map → chunk-K6CZAEBF.js.map} +0 -0
  778. /package/dist/{chunk-BZV2BJDU.js.map → chunk-KXDK6ZOJ.js.map} +0 -0
  779. /package/dist/{chunk-V4ZKHM6D.js.map → chunk-L7LRBRUN.js.map} +0 -0
  780. /package/dist/{chunk-SUT75MRI.js.map → chunk-LO624OGK.js.map} +0 -0
  781. /package/dist/{chunk-CTFHEDG2.js.map → chunk-LPDQ26OP.js.map} +0 -0
  782. /package/dist/{chunk-MU4Z2MX2.js.map → chunk-M2XWAAIZ.js.map} +0 -0
  783. /package/dist/{chunk-E7XHA4YL.js.map → chunk-M37J6Z5U.js.map} +0 -0
  784. /package/dist/{chunk-F5FFI7Z7.js.map → chunk-M5SJ42E2.js.map} +0 -0
  785. /package/dist/{chunk-FVZTRWAO.js.map → chunk-MJREV2KW.js.map} +0 -0
  786. /package/dist/{chunk-LQKMDIRB.js.map → chunk-MRR5GPPP.js.map} +0 -0
  787. /package/dist/{chunk-SYLYLOHK.js.map → chunk-NSCNNQOY.js.map} +0 -0
  788. /package/dist/{chunk-EDFBRXX2.js.map → chunk-OAQLBII5.js.map} +0 -0
  789. /package/dist/{chunk-OBNHXAYG.js.map → chunk-OKHU7EJW.js.map} +0 -0
  790. /package/dist/{chunk-V7DNHPZD.js.map → chunk-OXVB4OZC.js.map} +0 -0
  791. /package/dist/{chunk-SFUDTUXF.js.map → chunk-PDZED3RR.js.map} +0 -0
  792. /package/dist/{chunk-HWNQOADC.js.map → chunk-PITPUAWX.js.map} +0 -0
  793. /package/dist/{chunk-JMFVXWDX.js.map → chunk-PVXG2BRT.js.map} +0 -0
  794. /package/dist/{chunk-FK5NL2DF.js.map → chunk-PX6MHRAN.js.map} +0 -0
  795. /package/dist/{chunk-7JHIUS54.js.map → chunk-REIPTX7J.js.map} +0 -0
  796. /package/dist/{chunk-ABLG7GUS.js.map → chunk-RFE2VG6T.js.map} +0 -0
  797. /package/dist/{chunk-GVAV4VRI.js.map → chunk-RPFQOIYX.js.map} +0 -0
  798. /package/dist/{chunk-HFKZGMVV.js.map → chunk-S2NAGL4V.js.map} +0 -0
  799. /package/dist/{chunk-GDHQVEIO.js.map → chunk-T24YYODE.js.map} +0 -0
  800. /package/dist/{chunk-5G6O5RYM.js.map → chunk-TDP4PX2S.js.map} +0 -0
  801. /package/dist/{chunk-65DO5IKM.js.map → chunk-TUPJEZSL.js.map} +0 -0
  802. /package/dist/{chunk-F2EEQ7KG.js.map → chunk-UNXVW5OT.js.map} +0 -0
  803. /package/dist/{chunk-VV6JIG4D.js.map → chunk-UOWUMUAX.js.map} +0 -0
  804. /package/dist/{chunk-CZK4EV3Y.js.map → chunk-V6EIPPMT.js.map} +0 -0
  805. /package/dist/{chunk-AFEFZ74T.js.map → chunk-VGUO2BQ7.js.map} +0 -0
  806. /package/dist/{chunk-CXEECHP5.js.map → chunk-VKWZPC73.js.map} +0 -0
  807. /package/dist/{chunk-PQVHRM4L.js.map → chunk-VQ5PDCAJ.js.map} +0 -0
  808. /package/dist/{chunk-HXRG7XYB.js.map → chunk-VQK3UKNA.js.map} +0 -0
  809. /package/dist/{chunk-XXFLJWTQ.js.map → chunk-WB5MHFHB.js.map} +0 -0
  810. /package/dist/{chunk-BG6GAROI.js.map → chunk-WK6CPMXR.js.map} +0 -0
  811. /package/dist/{chunk-DX23HAW7.js.map → chunk-WRYNE3Q4.js.map} +0 -0
  812. /package/dist/{chunk-2FWSNJEN.js.map → chunk-XA6LI63Y.js.map} +0 -0
  813. /package/dist/{chunk-TPSVPMAN.js.map → chunk-Y7Y6X6E5.js.map} +0 -0
  814. /package/dist/{chunk-L2NPLA43.js.map → chunk-YG57X4VD.js.map} +0 -0
  815. /package/dist/{chunk-2JIKMCJR.js.map → chunk-YPOIMSJR.js.map} +0 -0
  816. /package/dist/{chunk-MFR4WWDM.js.map → chunk-ZRLON6PP.js.map} +0 -0
  817. /package/dist/{chunk-L2WOLNZK.js.map → chunk-ZSNZPH6G.js.map} +0 -0
  818. /package/dist/{cohort-ATIZW34H.js.map → cohort-TPMJZ4OH.js.map} +0 -0
  819. /package/dist/{condition-SGJIDZNB.js.map → condition-QROUALBG.js.map} +0 -0
  820. /package/dist/{controls-JQCMGPXP.js.map → controls-GH37YWOP.js.map} +0 -0
  821. /package/dist/{controls.config-WQHVQAIJ.js.map → controls.config-ZYCDICYF.js.map} +0 -0
  822. /package/dist/{correlation-S3MN3L5Q.js.map → correlation-JESMUFS6.js.map} +0 -0
  823. /package/dist/{customdata.inputui-LGTGMJBZ.js.map → customdata.inputui-T2DLAZYJ.js.map} +0 -0
  824. /package/dist/{dataDownload-FAWN2WKE.js.map → dataDownload-Z7A6ZEH7.js.map} +0 -0
  825. /package/dist/{databrowser.ui-KF3LWQXG.js.map → databrowser.ui-ZVMGFYJ2.js.map} +0 -0
  826. /package/dist/{dictionary-EVLEOT72.js.map → dictionary-KXFUR3NL.js.map} +0 -0
  827. /package/dist/{dnaMethylation-J3SPEM4S.js.map → dnaMethylation-2YU2HDD4.js.map} +0 -0
  828. /package/dist/{dnaMethylation.integration.spec-CTA53YCT.js.map → dnaMethylation.integration.spec-75Y5RSDO.js.map} +0 -0
  829. /package/dist/{dofetch-3C3MI5NR.js.map → dofetch-G5ULIRMG.js.map} +0 -0
  830. /package/dist/{e2pca-PTWPY5WP.js.map → e2pca-75VDPO7P.js.map} +0 -0
  831. /package/dist/{expclust.gdc.spec-S5FE4MMD.js.map → expclust.gdc.spec-PB66FFWD.js.map} +0 -0
  832. /package/dist/{facet-FSOIZJCA.js.map → facet-2RY37EFR.js.map} +0 -0
  833. /package/dist/{gb-YDEOK7NW.js.map → gb-WQQFYFGF.js.map} +0 -0
  834. /package/dist/{geneExpClustering-37JKKFW3.js.map → geneExpClustering-ARVZDF6G.js.map} +0 -0
  835. /package/dist/{geneExpression-VQPRFNKE.js.map → geneExpression-FR33PKJW.js.map} +0 -0
  836. /package/dist/{geneExpression-G6ODP3VY.js.map → geneExpression-O7DR5SMR.js.map} +0 -0
  837. /package/dist/{geneExpression.unit.spec-ZHXCUG6Q.js.map → geneExpression.unit.spec-HGNDSTAI.js.map} +0 -0
  838. /package/dist/{geneORA-E3PSS3CI.js.map → geneORA-RXXQT44V.js.map} +0 -0
  839. /package/dist/{geneRanking-MK3YYINC.js.map → geneRanking-WDQZ7TI3.js.map} +0 -0
  840. /package/dist/{geneVariant-LEMAVFOY.js.map → geneVariant-6JYBWFEJ.js.map} +0 -0
  841. /package/dist/{geneVariant-NNSB7JLS.js.map → geneVariant-TKRG5VQN.js.map} +0 -0
  842. /package/dist/{geneVariant.integration.spec-6CC5UAOP.js.map → geneVariant.integration.spec-L2Q2DY67.js.map} +0 -0
  843. /package/dist/{genefusion.ui-5NCQIQPN.js.map → genefusion.ui-DBLMBU2D.js.map} +0 -0
  844. /package/dist/{geneset-ZX4V3CFB.js.map → geneset-2ZQF7FET.js.map} +0 -0
  845. /package/dist/{genomeBrowser.spec-J7ISXY6H.js.map → genomeBrowser.spec-E5RJD53Z.js.map} +0 -0
  846. /package/dist/{grin2-LBGBBB4L.js.map → grin2-MJ4SYAFO.js.map} +0 -0
  847. /package/dist/{grin2-GN3DQNON.js.map → grin2-VXRMV7VA.js.map} +0 -0
  848. /package/dist/{hierCluster-5JURTKAZ.js.map → hierCluster-44FPBMNL.js.map} +0 -0
  849. /package/dist/{hierCluster-BJ5VBPXR.js.map → hierCluster-SU4BDK6I.js.map} +0 -0
  850. /package/dist/{hierCluster.config-4EERP4KK.js.map → hierCluster.config-4OZ65GKH.js.map} +0 -0
  851. /package/dist/{hierCluster.integration.spec-VR4GULRV.js.map → hierCluster.integration.spec-CHNSKZD4.js.map} +0 -0
  852. /package/dist/{hierCluster.interactivity-SMTQOKUY.js.map → hierCluster.interactivity-M72CEGCW.js.map} +0 -0
  853. /package/dist/{hierCluster.renderers-PAME7BWU.js.map → hierCluster.renderers-RM43G7ZR.js.map} +0 -0
  854. /package/dist/{imagePlot-4LMIKBVE.js.map → imagePlot-UYMWFNI4.js.map} +0 -0
  855. /package/dist/{importPlot-3CG6ASNH.js.map → importPlot-W3HPE4LZ.js.map} +0 -0
  856. /package/dist/{isoformExpression-VCDNKTZ6.js.map → isoformExpression-JEMJE5WY.js.map} +0 -0
  857. /package/dist/{isoformExpression.unit.spec-ZXYY37TA.js.map → isoformExpression.unit.spec-GOK5LFME.js.map} +0 -0
  858. /package/dist/{jspdf.es.min-V7ONHJJV.js.map → jspdf.es.min-KB3HW45U.js.map} +0 -0
  859. /package/dist/{junction-5DXJO4PS.js.map → junction-2X4AS47T.js.map} +0 -0
  860. /package/dist/{junction.customTerm-UOPUSEOE.js.map → junction.customTerm-MVSIUY66.js.map} +0 -0
  861. /package/dist/{junction.unit.spec-F35E3GJW.js.map → junction.unit.spec-HA74XQYV.js.map} +0 -0
  862. /package/dist/{launch.adhoc-V2HTCQGD.js.map → launch.adhoc-PZAJ6J2S.js.map} +0 -0
  863. /package/dist/{leftlabel.sample-V7O2EC36.js.map → leftlabel.sample-7BZKFB3I.js.map} +0 -0
  864. /package/dist/{lollipop-RNRZLG64.js.map → lollipop-URSFH4ZE.js.map} +0 -0
  865. /package/dist/{maf-W6SF6BJS.js.map → maf-CM3ETF4N.js.map} +0 -0
  866. /package/dist/{maftimeline-NABCAMHG.js.map → maftimeline-CRQEUTRY.js.map} +0 -0
  867. /package/dist/{matrix-JC6AJT2N.js.map → matrix-IBWB4A3Z.js.map} +0 -0
  868. /package/dist/{matrix-UCHESWVK.js.map → matrix-SOBGWBTY.js.map} +0 -0
  869. /package/dist/{matrix.cells-B4L42TBM.js.map → matrix.cells-GSKC6FXI.js.map} +0 -0
  870. /package/dist/{matrix.config-6US3AAH7.js.map → matrix.config-4KU5X3LQ.js.map} +0 -0
  871. /package/dist/{matrix.data-FYFXYDA3.js.map → matrix.data-XC2OTBTR.js.map} +0 -0
  872. /package/dist/{matrix.groups-Y7DEG3GS.js.map → matrix.groups-THXKRQSD.js.map} +0 -0
  873. /package/dist/{matrix.integration.spec-KXX7SFX5.js.map → matrix.integration.spec-GKHH4RSR.js.map} +0 -0
  874. /package/dist/{matrix.interactivity-NHWG4WCC.js.map → matrix.interactivity-ITXMM2ZP.js.map} +0 -0
  875. /package/dist/{matrix.layout-5DQNT7DD.js.map → matrix.layout-D6SRLAXS.js.map} +0 -0
  876. /package/dist/{matrix.legend-OY7IF6AS.js.map → matrix.legend-OWQAMHI2.js.map} +0 -0
  877. /package/dist/{matrix.renderers-GYOXGHPU.js.map → matrix.renderers-J66OAQUZ.js.map} +0 -0
  878. /package/dist/{matrix.serieses-657TLDAV.js.map → matrix.serieses-P5I4E2NB.js.map} +0 -0
  879. /package/dist/{matrix.sort-IMA2ES3T.js.map → matrix.sort-CXBXF75N.js.map} +0 -0
  880. /package/dist/{matrix.sort.unit.spec-S6BAFYPR.js.map → matrix.sort.unit.spec-RSXBKXC5.js.map} +0 -0
  881. /package/dist/{matrix.sorterUi-77F36Q5H.js.map → matrix.sorterUi-WEZRKU63.js.map} +0 -0
  882. /package/dist/{matrix.sorterUi.unit.spec-V5NVQGD5.js.map → matrix.sorterUi.unit.spec-6EULDV43.js.map} +0 -0
  883. /package/dist/{matrix.unit.spec-R4NMTZYQ.js.map → matrix.unit.spec-D4ZLDVDT.js.map} +0 -0
  884. /package/dist/{mds.fimo-5DCH5BEM.js.map → mds.fimo-CQFREH3A.js.map} +0 -0
  885. /package/dist/{mds.samplescatterplot-VIBCS5M6.js.map → mds.samplescatterplot-XLJITURG.js.map} +0 -0
  886. /package/dist/{mds.survivalplot-AZ7LJDZZ.js.map → mds.survivalplot-MLRD27QP.js.map} +0 -0
  887. /package/dist/{multivalue-4QKGYYW2.js.map → multivalue-KJQCYBHA.js.map} +0 -0
  888. /package/dist/{numericDictTermCluster-GLLG6IK2.js.map → numericDictTermCluster-ZOU6R4XP.js.map} +0 -0
  889. /package/dist/{oncomatrix-R32ZPMX7.js.map → oncomatrix-4RHDDJDC.js.map} +0 -0
  890. /package/dist/{oncomatrix.spec-BMK6LMBS.js.map → oncomatrix.spec-JA6DT4PP.js.map} +0 -0
  891. /package/dist/{plot.2dvaf-46FT53MF.js.map → plot.2dvaf-VJWPWCOY.js.map} +0 -0
  892. /package/dist/{plot.app-7EE4YCV4.js.map → plot.app-JNEOGNVW.js.map} +0 -0
  893. /package/dist/{plot.barplot-FK4J2G7K.js.map → plot.barplot-YELRBXUB.js.map} +0 -0
  894. /package/dist/{plot.boxplot-ATY4LK3X.js.map → plot.boxplot-HNFOB3TV.js.map} +0 -0
  895. /package/dist/{plot.brainImaging-S7B547V4.js.map → plot.brainImaging-AZYEGF3U.js.map} +0 -0
  896. /package/dist/{plot.disco-K5MMC2GD.js.map → plot.disco-L6PGGZJI.js.map} +0 -0
  897. /package/dist/{plot.ssgq-B3OVMZFD.js.map → plot.ssgq-UM64SSXW.js.map} +0 -0
  898. /package/dist/{plot.vaf2cov-RBHDQULW.js.map → plot.vaf2cov-DKUKJRUP.js.map} +0 -0
  899. /package/dist/{polar2-GECELCTG.js.map → polar2-4YHPENAV.js.map} +0 -0
  900. /package/dist/{profileForms-2USYOA34.js.map → profileForms-KMECFO3K.js.map} +0 -0
  901. /package/dist/{profilePlot-YGD2CF6P.js.map → profilePlot-3AXSIXCK.js.map} +0 -0
  902. /package/dist/{proteinView-FCPWJLGU.js.map → proteinView-QWHOTL35.js.map} +0 -0
  903. /package/dist/{proteomeCohortCompare-TYYUF5A5.js.map → proteomeCohortCompare-DL2QLFL3.js.map} +0 -0
  904. /package/dist/{pseudbulk.unit.spec-UVVRP6NR.js.map → pseudbulk.unit.spec-IWR7EZ7O.js.map} +0 -0
  905. /package/dist/{pseudobulk-ZIN5VJGB.js.map → pseudobulk-IC525IZ2.js.map} +0 -0
  906. /package/dist/{qualitative-27BZGASV.js.map → qualitative-LK2QEYHU.js.map} +0 -0
  907. /package/dist/{qualitative-N4F6NITI.js.map → qualitative-YY4NQGO5.js.map} +0 -0
  908. /package/dist/{radar2-X465RPJX.js.map → radar2-TJUPENQF.js.map} +0 -0
  909. /package/dist/{radarFacility2-AE7BA62N.js.map → radarFacility2-Q7LBWLCV.js.map} +0 -0
  910. /package/dist/{rememberedGvQ.unit.spec-4PDIU5RY.js.map → rememberedGvQ.unit.spec-2GBLM5AO.js.map} +0 -0
  911. /package/dist/{render-TD2QWOHT.js.map → render-AHR6SCQX.js.map} +0 -0
  912. /package/dist/{report-3Y2OWDF7.js.map → report-BPHJTRTO.js.map} +0 -0
  913. /package/dist/{sampleView-BUMMYRHJ.js.map → sampleView-CS2FB3K3.js.map} +0 -0
  914. /package/dist/{samplelst-BWK53BLI.js.map → samplelst-A3DHKP6U.js.map} +0 -0
  915. /package/dist/{samplematrix-RQU43UYR.js.map → samplematrix-5X7MFT3G.js.map} +0 -0
  916. /package/dist/{sc-LCBFWCZZ.js.map → sc-RCYXZMN6.js.map} +0 -0
  917. /package/dist/{scatter-6S5I7OW3.js.map → scatter-2ITGMX5N.js.map} +0 -0
  918. /package/dist/{scatter-MJELX75N.js.map → scatter-OAL4YOCA.js.map} +0 -0
  919. /package/dist/{selectGenomeWithTklst-WAVXHXR5.js.map → selectGenomeWithTklst-PB5KDW2N.js.map} +0 -0
  920. /package/dist/{singleCellCellType-WMCAJ7JF.js.map → singleCellCellType-FEFNOHOP.js.map} +0 -0
  921. /package/dist/{singleCellCellType.unit.spec-4Z46ZT5Q.js.map → singleCellCellType.unit.spec-V2I32V23.js.map} +0 -0
  922. /package/dist/{singleCellGeneExpression-7Q5ZJT4R.js.map → singleCellGeneExpression-RUQQMKDE.js.map} +0 -0
  923. /package/dist/{singleCellGeneExpression.unit.spec-6C7PDGRH.js.map → singleCellGeneExpression.unit.spec-VCMJRMT7.js.map} +0 -0
  924. /package/dist/{singleCellNumericValue-QGYITZRC.js.map → singleCellNumericValue-JLXZQWNT.js.map} +0 -0
  925. /package/dist/{singleCellNumericValue.unit.spec-MQUKPEZJ.js.map → singleCellNumericValue.unit.spec-XVCZEN5K.js.map} +0 -0
  926. /package/dist/{singleCellPlot-JJMFJ2KQ.js.map → singleCellPlot-4EBYWOJ2.js.map} +0 -0
  927. /package/dist/{singlecell-J23S3JR2.js.map → singlecell-UKZJAYVH.js.map} +0 -0
  928. /package/dist/{singlecell-Y4OGUWEC.js.map → singlecell-VNRWPXGV.js.map} +0 -0
  929. /package/dist/{snp-IO6TKWGD.js.map → snp-2RJDJQZC.js.map} +0 -0
  930. /package/dist/{snp.unit.spec-X7ILEEPO.js.map → snp.unit.spec-Z4DNBFAH.js.map} +0 -0
  931. /package/dist/{snplocus-Z2NGIKMO.js.map → snplocus-OZLIZ7R7.js.map} +0 -0
  932. /package/dist/{snplst-XCS2FCQV.js.map → snplst-EVRJ4OCL.js.map} +0 -0
  933. /package/dist/{spliceevent.a53ss.diagram-F3S4BRVG.js.map → spliceevent.a53ss.diagram-N5UXX4OX.js.map} +0 -0
  934. /package/dist/{spliceevent.exonskip.diagram-AXCDJKH4.js.map → spliceevent.exonskip.diagram-WBNFLW4V.js.map} +0 -0
  935. /package/dist/{spliceevent.noeventdiagram-UK3X667E.js.map → spliceevent.noeventdiagram-EI72A6L3.js.map} +0 -0
  936. /package/dist/{ssGSEA-ZRPNQKJ5.js.map → ssGSEA-NONMMNF7.js.map} +0 -0
  937. /package/dist/{ssGSEA.unit.spec-DG5ZHLC7.js.map → ssGSEA.unit.spec-7JDPNLZA.js.map} +0 -0
  938. /package/dist/{stattable-XYSC3CYU.js.map → stattable-NNUHKPF4.js.map} +0 -0
  939. /package/dist/{studyCatalog-Y75LMI62.js.map → studyCatalog-KMLE7Q55.js.map} +0 -0
  940. /package/dist/{summarizeCnvGeneexp-H2NP7VLU.js.map → summarizeCnvGeneexp-AHCGPQLE.js.map} +0 -0
  941. /package/dist/{summarizeGeneexpSurvival-HTCD3VQQ.js.map → summarizeGeneexpSurvival-NCST7HDQ.js.map} +0 -0
  942. /package/dist/{summarizeMutationCnv-UEGXWK2P.js.map → summarizeMutationCnv-VUTQYXO6.js.map} +0 -0
  943. /package/dist/{summarizeMutationDiagnosis-MJGWP7IT.js.map → summarizeMutationDiagnosis-TFU2HUHQ.js.map} +0 -0
  944. /package/dist/{summarizeMutationSurvival-55JW5LA6.js.map → summarizeMutationSurvival-F4CJILS3.js.map} +0 -0
  945. /package/dist/{summary-HJO23RGB.js.map → summary-QQZW7BEE.js.map} +0 -0
  946. /package/dist/{summary.integration.spec-OWI2C2N5.js.map → summary.integration.spec-FILIPD3W.js.map} +0 -0
  947. /package/dist/{summaryInput-RL2JXRDE.js.map → summaryInput-RMY226Y3.js.map} +0 -0
  948. /package/dist/{sunburst-JFY6V5E2.js.map → sunburst-Y4LNCKMR.js.map} +0 -0
  949. /package/dist/{survival-PBBU6PA5.js.map → survival-4FYQHQHX.js.map} +0 -0
  950. /package/dist/{survival-6FLR4YCJ.js.map → survival-6GC267GY.js.map} +0 -0
  951. /package/dist/{survival.integration.spec-WAKTGYGP.js.map → survival.integration.spec-5ERXR6MG.js.map} +0 -0
  952. /package/dist/{svg2pdf.es.min-NIFE2BIE.js.map → svg2pdf.es.min-KKHWPFWG.js.map} +0 -0
  953. /package/dist/{svgraph-WD3DUZV7.js.map → svgraph-XIQIA7OJ.js.map} +0 -0
  954. /package/dist/{swimmer-VPKSBV6V.js.map → swimmer-643B5Q6F.js.map} +0 -0
  955. /package/dist/{table-GX3VJLPZ.js.map → table-JQIBRXTJ.js.map} +0 -0
  956. /package/dist/{termCollection-YQ332WKB.js.map → termCollection-LU5NW6KT.js.map} +0 -0
  957. /package/dist/{termCollection-QE7U5QBD.js.map → termCollection-XZCPBXRV.js.map} +0 -0
  958. /package/dist/{termCollection.unit.spec-ELLN7VRA.js.map → termCollection.unit.spec-H5LBV3N4.js.map} +0 -0
  959. /package/dist/{termCollectionFractionSelection-V3RP5KAT.js.map → termCollectionFractionSelection-3YHOFXEL.js.map} +0 -0
  960. /package/dist/{termCollectionFractionSelection.unit.spec-JR7Q7TJI.js.map → termCollectionFractionSelection.unit.spec-G5X3Y5YI.js.map} +0 -0
  961. /package/dist/{tk-J5VPFEX6.js.map → tk-NPWNBXLB.js.map} +0 -0
  962. /package/dist/{tk-GD2KJM5W.js.map → tk-YSW5NPW2.js.map} +0 -0
  963. /package/dist/{tvs.categorical-RPACB4VU.js.map → tvs.categorical-TUX6KRZI.js.map} +0 -0
  964. /package/dist/{tvs.condition-O6JBUM6D.js.map → tvs.condition-2CH25PLO.js.map} +0 -0
  965. /package/dist/{tvs.dt-5EVBSRX3.js.map → tvs.dt-YKP3F75O.js.map} +0 -0
  966. /package/dist/{tvs.dtcnv.categorical-Y5YHBZNC.js.map → tvs.dtcnv.categorical-QBJWJNHZ.js.map} +0 -0
  967. /package/dist/{tvs.dtcnv.continuous-WP322QUP.js.map → tvs.dtcnv.continuous-MV25OLBD.js.map} +0 -0
  968. /package/dist/{tvs.dtfusion-CCMUFDMQ.js.map → tvs.dtfusion-SJ64HNKE.js.map} +0 -0
  969. /package/dist/{tvs.dtitd-P3ED3MWA.js.map → tvs.dtitd-WQLHZK2P.js.map} +0 -0
  970. /package/dist/{tvs.dtsnvindel-X2MXPLC6.js.map → tvs.dtsnvindel-WMFJ7W7U.js.map} +0 -0
  971. /package/dist/{tvs.dtsv-4FOWFNVV.js.map → tvs.dtsv-GKEC5OGA.js.map} +0 -0
  972. /package/dist/{tvs.multivalue-IRF467ZK.js.map → tvs.multivalue-LFWMQETN.js.map} +0 -0
  973. /package/dist/{tvs.numeric-C7FDCGCS.js.map → tvs.numeric-63NVZG7U.js.map} +0 -0
  974. /package/dist/{tvs.samplelst-CBU6ATI5.js.map → tvs.samplelst-DEMMYRKK.js.map} +0 -0
  975. /package/dist/{tvs.survival-3K5ASAXV.js.map → tvs.survival-M4QUVP5L.js.map} +0 -0
  976. /package/dist/{tvs.termCollection-MXEWO6KJ.js.map → tvs.termCollection-J367GZY3.js.map} +0 -0
  977. /package/dist/{vocabulary-GQBHDP3K.js.map → vocabulary-RAVWS5IS.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/ep.sun.js", "../src/ep.boxplot.js", "../src/ep.js"],
4
- "sourcesContent": ["import { arc as d3arc } from 'd3-shape'\nimport { scaleLinear } from 'd3-scale'\nimport { stratify, partition } from 'd3-hierarchy'\nimport { select as d3select } from 'd3-selection'\nimport { rgb as d3rgb } from 'd3-color'\nimport { stratinput } from '#shared/tree.js'\nimport { font as fontfamily } from './client'\n\nexport function burst(ep, val1, val2) {\n\tif (!ep.p.cohort) {\n\t\treturn\n\t}\n\n\tep.grab.min = Math.min(val1, val2)\n\tep.grab.max = Math.max(val1, val2)\n\n\t// samples within range\n\tlet elst = ep.data.filter(i => i.value >= ep.grab.min && i.value <= ep.grab.max)\n\tif (elst.length == 0) {\n\t\tif (ep.grab.sun) {\n\t\t\tep.grab.sun.g.remove()\n\t\t}\n\t\treturn\n\t}\n\n\tif (ep.p.cohort.annotation) {\n\t\t/*\n\tfor .p.cohort.annotation\n\tannotation data loaded from a source (e.g. files) and are not directly stored with ep.data[]\n\tmust find annotation for samples\n\tmake a new elst[]\n\t*/\n\t\tconst lst = []\n\t\tfor (const s of elst) {\n\t\t\tconst s2 = {}\n\t\t\tfor (const k in s) {\n\t\t\t\tif (k != 'circle') {\n\t\t\t\t\ts2[k] = s[k]\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst sanno = ep.p.cohort.annotation[s[ep.p.sampletype]]\n\t\t\tif (sanno) {\n\t\t\t\tfor (const k in sanno) {\n\t\t\t\t\ts2[k] = sanno[k]\n\t\t\t\t}\n\t\t\t}\n\t\t\tlst.push(s2)\n\t\t}\n\t\telst = lst\n\t}\n\n\tconst grab = ep.grab\n\tif (grab.sun) {\n\t\tgrab.sun.g.remove()\n\t} else {\n\t\tgrab.sun = {\n\t\t\tx: 0,\n\t\t\ty: 0\n\t\t}\n\t}\n\n\tconst sun = grab.sun\n\tsun.g = grab.holder\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + sun.x + ',' + sun.y + ')')\n\t\t.on('mouseover', () => {\n\t\t\tep.dottip.hide()\n\t\t})\n\n\t/*\ncheck if any samples have valid anno for first level\nif none, quit!\nquick fix to avoid error!\n*/\n\tlet numsamplewithlevel1 = 0\n\tfor (const s of elst) {\n\t\tif (s[ep.p.cohort.levels[0].k] != undefined) {\n\t\t\tnumsamplewithlevel1++\n\t\t}\n\t}\n\tif (numsamplewithlevel1 == 0) {\n\t\tsun.g\n\t\t\t.append('text')\n\t\t\t.text('0/' + elst.length)\n\t\t\t.attr('font-size', 40)\n\t\t\t.attr('font-family', fontfamily)\n\t\t\t.attr('stroke', 'white')\n\t\t\t.attr('stroke-width', 3)\n\t\t\t.attr('text-anchor', 'middle')\n\t\tsun.g\n\t\t\t.append('text')\n\t\t\t.text('0/' + elst.length)\n\t\t\t.attr('font-size', 40)\n\t\t\t.attr('font-family', fontfamily)\n\t\t\t.attr('fill', ep.p.hlcolor)\n\t\t\t.attr('text-anchor', 'middle')\n\t\t\t.attr('fill-opacity', 0.8)\n\t\t\t.on('click', () => {\n\t\t\t\tremovesun(sun, grab, ep)\n\t\t\t})\n\t\treturn\n\t}\n\n\tif (ep.samplecart) {\n\t\tgrab.selectedsamples = elst.map(d => (d.sample_name ? d.sample_name : d.sample))\n\n\t\tep.samplecart.setBtns({\n\t\t\tsamplelst: grab.selectedsamples,\n\t\t\tbasket: 'Gene Expression',\n\t\t\tid: ep.genename + (!ep.grab || !elst.length ? '' : ' FPKM:' + ep.grab.min + '-' + ep.grab.max),\n\t\t\tcontainer: ep.samplecartWrapper,\n\t\t\treselectable: true\n\t\t})\n\t}\n\n\tconst radius = Math.min(ep.width, ep.height) * 0.3\n\tconst bgpocket = sun.g.append('g')\n\tlet bgpocketrad\n\tlet emptyspace\n\tconst arcfunc = d3arc()\n\t\t.startAngle(d => d.x0)\n\t\t.endAngle(d => d.x1)\n\t\t.innerRadius(d => {\n\t\t\tif (!d.parent) {\n\t\t\t\temptyspace = Math.sqrt(d.y1) - radius / 15\n\t\t\t\treturn emptyspace\n\t\t\t}\n\t\t\treturn Math.sqrt(d.y0)\n\t\t})\n\t\t.outerRadius(d => {\n\t\t\td.outradius = Math.sqrt(d.y1)\n\t\t\tif (d.parent && !d.parent.parent) {\n\t\t\t\tbgpocketrad = d.outradius\n\t\t\t}\n\t\t\treturn d.outradius\n\t\t})\n\n\tconst nodes = stratinput(elst, ep.p.cohort.levels)\n\tconst root = stratify()(nodes)\n\troot.sum(d => d.value)\n\troot.sort((a, b) => b.value - a.value)\n\tpartition().size([Math.PI * 2, radius * radius])(root)\n\tsun.ring = sun.g\n\t\t.selectAll()\n\t\t.data(root.descendants())\n\t\t.enter()\n\t\t.append('path')\n\t\t.attr('d', arcfunc)\n\t\t.attr('stroke', 'white')\n\t\t.attr('fill-opacity', 1)\n\t\t.attr('fill-rule', 'evenodd')\n\t\t.attr('fill', d => {\n\t\t\tif (!d.parent) return 'white'\n\t\t\tlet name\n\t\t\tif (d.children) {\n\t\t\t\tname = d.id\n\t\t\t} else {\n\t\t\t\t// this is children, try to apply same color as parent\n\t\t\t\tif (!d.parent.parent) {\n\t\t\t\t\t// the parent is root, use its own name\n\t\t\t\t\tname = d.id\n\t\t\t\t} else {\n\t\t\t\t\tname = d.parent.id\n\t\t\t\t}\n\t\t\t}\n\t\t\td._color = ep.p.cohort.suncolor(name)\n\t\t\treturn d._color\n\t\t})\n\t\t.on('mouseover', (event, d) => {\n\t\t\tif (!d.parent) return\n\t\t\t//let thissize\n\t\t\tsetnamesays.text(d.data.name)\n\t\t\t/*\n\t\t\t.attr('font-size',1)\n\t\t\t.each(function(){ thissize=Math.min(setnamefontsize,(2*Math.sqrt(d.y))/this.getBBox().width)})\n\t\t\t.attr('font-size',thissize)\n\t\t\t*/\n\t\t\tsetnamesaysbg.text(d.data.name)\n\t\t\t//.attr('font-size',thissize)\n\t\t\tnumsays.text(d.value)\n\t\t\tdatatypesays.text(d.data.full || '')\n\t\t\tevent.target.setAttribute('fill', d3rgb(d._color).darker(0.5).toString())\n\t\t})\n\t\t.on('mouseout', (event, d) => {\n\t\t\tsetnamesays.text(grab.min + ' - ' + grab.max).attr('font-size', setnamefontsize)\n\t\t\tsetnamesaysbg.text(grab.min + ' - ' + grab.max).attr('font-size', setnamefontsize)\n\t\t\tnumsays.text(numsamplewithlevel1 == elst.length ? elst.length : numsamplewithlevel1 + '/' + elst.length)\n\t\t\tdatatypesays.text(ep.p.datatype)\n\t\t\t//sampletypesays.text(ep.p.sampletype.toUpperCase())\n\t\t\tevent.target.setAttribute('fill', d._color)\n\t\t})\n\t\t.on('click', (event, d) => {\n\t\t\t// clicking a slice\n\t\t\tif (!ep.samplecart) {\n\t\t\t\t// no callback, do not handle\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst lst = []\n\t\t\tfor (const s of d.data.lst) {\n\t\t\t\t// FIXME hardcoded sample attribute\n\t\t\t\tlst.push(s.sample_name ? s.sample_name : s.sample)\n\t\t\t}\n\t\t\tep.samplecart.setBtns({\n\t\t\t\tsamplelst: lst,\n\t\t\t\tbasket: 'Gene Expression',\n\t\t\t\tnote:\n\t\t\t\t\td.data.name +\n\t\t\t\t\t' samples with ' +\n\t\t\t\t\tep.genename +\n\t\t\t\t\t' ' +\n\t\t\t\t\tep.p.datatype +\n\t\t\t\t\t' between ' +\n\t\t\t\t\tep.grab.min +\n\t\t\t\t\t' and ' +\n\t\t\t\t\tep.grab.max,\n\t\t\t\tid:\n\t\t\t\t\tep.genename +\n\t\t\t\t\t(!ep.grab || !d.data.lst.length || !d.data.lst[0] ? '' : ' FPKM:' + ep.grab.min + '-' + ep.grab.max) +\n\t\t\t\t\t' ' +\n\t\t\t\t\td.data.lst[0].ancestor_dx,\n\t\t\t\tcontainer: ep.samplecartWrapper,\n\t\t\t\treselectable: true\n\t\t\t})\n\t\t})\n\n\tbgpocket.append('circle').attr('r', bgpocketrad).attr('fill', 'white').attr('fill-opacity', 0.7)\n\n\t/*\nparent of leaf nodes\nitems must be sorted in proper order to work with following label y placement method!\n*/\n\tconst a = [], // by angle\n\t\tb = [],\n\t\tc = [],\n\t\td = []\n\tfor (const i of root.leaves()) {\n\t\tconst r = (i.x0 + i.x1) / 2\n\t\tif (r <= Math.PI / 2) a.push(i)\n\t\telse if (r <= Math.PI) b.push(i)\n\t\telse if (r <= Math.PI * 1.5) c.push(i)\n\t\telse d.push(i)\n\t}\n\ta.sort((a, b) => b.x0 - a.x0)\n\tb.sort((a, b) => a.x0 - b.x0)\n\tc.sort((a, b) => b.x0 - a.x0)\n\td.sort((a, b) => a.x0 - b.x0)\n\tconst palst = [...a, ...b, ...c, ...d]\n\t// arc labels for palst\n\tconst lefth = []\n\tconst righth = [] // stack of occupied vertical space\n\tconst fontsize = Math.max(13, ep.dotsize * 0.7)\n\tsun.g\n\t\t.selectAll()\n\t\t.data(palst)\n\t\t.enter()\n\t\t.append('text')\n\t\t.text(\n\t\t\td => (d.parent.data.name ? (d.parent.data.name == 'root' ? '' : d.parent.data.name + ', ') : '') + d.data.name\n\t\t)\n\t\t.attr('font-size', fontsize)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('stroke', 'white')\n\t\t.attr('stroke-width', 3)\n\t\t.attr('fill', 'none')\n\t\t.each(function (d) {\n\t\t\tconst texth = this.getBBox().height // cannot use fontsize as height\n\t\t\tconst a = (d.x0 + d.x1) / 2\n\t\t\tlet rr = radius + 5\n\t\t\tlet y0 = -rr * Math.cos(a)\n\t\t\tif (a <= Math.PI) {\n\t\t\t\t// on right\n\t\t\t\tlet nf = true\n\t\t\t\tfor (const h of righth) {\n\t\t\t\t\tif (y0 >= h[0] && y0 <= h[1]) {\n\t\t\t\t\t\t// hit\n\t\t\t\t\t\tnf = false\n\t\t\t\t\t\tif (a <= Math.PI / 2) {\n\t\t\t\t\t\t\ty0 = h[0] - 2\n\t\t\t\t\t\t\t// lengthen radius\n\t\t\t\t\t\t\trr = -y0 / Math.cos(a)\n\t\t\t\t\t\t\th[0] = y0 - texth\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ty0 = 2 + h[1]\n\t\t\t\t\t\t\trr = -y0 / Math.cos(a)\n\t\t\t\t\t\t\th[1] = y0 + texth\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (nf) {\n\t\t\t\t\tif (a <= Math.PI / 2) {\n\t\t\t\t\t\trighth.push([y0 - texth, y0])\n\t\t\t\t\t} else {\n\t\t\t\t\t\trighth.push([y0, y0 + texth])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// on left\n\t\t\t\tlet nf = true\n\t\t\t\tfor (const h of lefth) {\n\t\t\t\t\tif (y0 >= h[0] && y0 <= h[1]) {\n\t\t\t\t\t\tnf = false\n\t\t\t\t\t\tif (a <= Math.PI * 1.5) {\n\t\t\t\t\t\t\ty0 = 2 + h[1]\n\t\t\t\t\t\t\trr = -y0 / Math.cos(a)\n\t\t\t\t\t\t\th[1] = y0 + texth\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ty0 = h[0] - 2\n\t\t\t\t\t\t\trr = -y0 / Math.cos(a)\n\t\t\t\t\t\t\th[0] = y0 - texth\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (nf) {\n\t\t\t\t\tif (a <= Math.PI * 1.5) {\n\t\t\t\t\t\tlefth.push([y0, y0 + texth])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlefth.push([y0 - texth, y0])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\td.labely = y0\n\t\t\td.labelx = rr * Math.sin(a)\n\t\t})\n\t\t.attr('x', d => d.labelx)\n\t\t.attr('y', d => d.labely)\n\t\t.attr('text-anchor', d => ((d.x0 + d.x1) / 2 <= Math.PI ? 'start' : 'end'))\n\t\t.attr('dominant-baseline', d => {\n\t\t\tvar a = (d.x0 + d.x1) / 2\n\t\t\tif (a <= Math.PI / 2 || a >= Math.PI * 1.5) return ''\n\t\t\treturn 'hanging'\n\t\t})\n\tsun.g\n\t\t.selectAll()\n\t\t.data(palst)\n\t\t.enter()\n\t\t.append('text')\n\t\t.text(d => (d.parent.parent ? d.parent.data.name + ', ' : '') + d.data.name)\n\t\t.attr('font-size', fontsize)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('fill', '#858585')\n\t\t.attr('x', d => d.labelx)\n\t\t.attr('y', d => d.labely)\n\t\t.attr('text-anchor', d => ((d.x0 + d.x1) / 2 <= Math.PI ? 'start' : 'end'))\n\t\t.attr('dominant-baseline', d => {\n\t\t\tvar a = (d.x0 + d.x1) / 2\n\t\t\tif (a <= Math.PI / 2 || a >= Math.PI * 1.5) return ''\n\t\t\treturn 'hanging'\n\t\t})\n\t// linking line for arc label\n\tsun.g\n\t\t.selectAll()\n\t\t.data(palst)\n\t\t.enter()\n\t\t.append('line')\n\t\t.attr('x1', d => d.outradius * Math.sin((d.x0 + d.x1) / 2))\n\t\t.attr('y1', d => -d.outradius * Math.cos((d.x0 + d.x1) / 2))\n\t\t.attr('x2', d => d.labelx)\n\t\t.attr('y2', d => d.labely)\n\t\t.attr('stroke', '#858585')\n\t// center labels\n\tconst bigfont = Math.max(18, emptyspace * 0.6)\n\tconst smallfont = Math.max(14, emptyspace * 0.2) // small font height for title\n\tlet y = -3\n\tlet setnamefontsize\n\tlet w\n\tconst sampletypesays = sun.g\n\t\t.append('text')\n\t\t.text(ep.p.sampletype.toUpperCase())\n\t\t.attr('font-size', smallfont)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('y', -bigfont)\n\t\t.attr('fill', ep.p.hlcolor)\n\t\t.attr('text-anchor', 'middle')\n\tconst numsays = sun.g\n\t\t.append('text')\n\t\t.text(numsamplewithlevel1 == elst.length ? elst.length : numsamplewithlevel1 + '/' + elst.length)\n\t\t.attr('font-size', bigfont)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('y', y)\n\t\t.attr('fill', ep.p.hlcolor)\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('fill-opacity', 0.8)\n\ty = 5\n\tconst datatypesays = sun.g\n\t\t.append('text')\n\t\t.text(ep.p.datatype)\n\t\t.attr('font-size', smallfont)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'hanging')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('fill', '#b5b5b5')\n\tconst text = grab.min + ' - ' + grab.max\n\tconst sf = scaleLinear()\n\t\t.domain([5, 15])\n\t\t.range([emptyspace, emptyspace * 2])\n\tconst setnamesaysbg = sun.g\n\t\t.append('text')\n\t\t.text(text)\n\t\t.attr('font-size', 1)\n\t\t.each(function () {\n\t\t\tvar b = this.getBBox()\n\t\t\tsetnamefontsize = Math.min(sf(text.length) / b.width, (emptyspace * 0.4) / b.height)\n\t\t})\n\t\t.attr('font-size', setnamefontsize)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('y', y + smallfont)\n\t\t.attr('dominant-baseline', 'hanging')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('stroke', 'white')\n\t\t.attr('stroke-width', 3)\n\t\t.attr('fill', 'none')\n\tconst setnamesays = sun.g\n\t\t.append('text')\n\t\t.text(text)\n\t\t.attr('font-size', setnamefontsize)\n\t\t.attr('font-family', fontfamily)\n\t\t.attr('y', y + smallfont)\n\t\t.attr('dominant-baseline', 'hanging')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('fill', '#858585')\n\t// unseen clickable foreground for self remove\n\tsun.g\n\t\t.append('circle')\n\t\t.attr('r', emptyspace + radius / 15)\n\t\t.attr('fill', 'white')\n\t\t.attr('fill-opacity', 0)\n\t\t.on('click', () => {\n\t\t\tif (sun.busy) return\n\t\t\tremovesun(sun, grab, ep)\n\t\t})\n\t\t.on('mousedown', event => {\n\t\t\tconst x0 = sun.x,\n\t\t\t\ty0 = sun.y,\n\t\t\t\tmx = event.clientX,\n\t\t\t\tmy = event.clientY,\n\t\t\t\tbody = d3select(document.body)\n\t\t\tbody\n\t\t\t\t.on('mousemove', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tsun.busy = true\n\t\t\t\t\tsun.x = x0 + event.clientX - mx\n\t\t\t\t\tsun.y = y0 + event.clientY - my\n\t\t\t\t\tsun.g.attr('transform', 'translate(' + sun.x + ',' + sun.y + ')')\n\t\t\t\t})\n\t\t\t\t.on('mouseup', () => {\n\t\t\t\t\tbody.on('mousemove', null).on('mouseup', null)\n\t\t\t\t\tsetTimeout(() => (sun.busy = false), 10)\n\t\t\t\t})\n\t\t})\n}\n\nfunction removesun(sun, grab, ep) {\n\tif (sun.ring) {\n\t\tsun.ring.transition().attr('fill-opacity', 0)\n\t}\n\tsun.g\n\t\t.transition()\n\t\t.attr('transform', 'scale(.5,.5)')\n\t\t.on('end', () => {\n\t\t\tsun.g.remove()\n\t\t\t// hide shade\n\t\t\tgrab.shade.attr('transform', 'translate(0,1000)')\n\t\t})\n\tgrab.shadebox.transition().duration(500).attr('stroke-opacity', 0).attr('fill-opacity', 0)\n\tgrab.shadehandle1.transition().duration(500).attr('fill-opacity', 0)\n\tgrab.shadehandle2.transition().duration(500).attr('fill-opacity', 0)\n\tdelete grab.x\n\tif (ep.selectsample_button) {\n\t\tep.selectsample_button.style('display', 'none').text('')\n\t}\n}\n", "import { select as d3select } from 'd3-selection'\nimport * as client from './client'\n\nexport function newboxplot(ep, data, label, id, handle) {\n\tfor (const bp of ep.boxplots) {\n\t\tif (bp.id == id) return\n\t}\n\thandle.style('border-color', ep.boxcolor)\n\tfor (const bp of ep.boxplots) {\n\t\tbp.highlight = false\n\t\tbp.label.attr('fill', ep.boxcolor)\n\t\tbp.label2.attr('fill', ep.boxcolor)\n\t}\n\t// find free space intervals\n\tlet free = [[0, ep.height]]\n\tfor (const bp of ep.boxplots) {\n\t\tconst y = bp.yoff\n\t\tconst h = bp.height\n\t\tfor (const i of free) {\n\t\t\tif (Math.max(y, i[0]) < Math.min(y + h, i[1])) {\n\t\t\t\tif (y + h < i[1]) {\n\t\t\t\t\tfree.push([y + h + 1, i[1]])\n\t\t\t\t}\n\t\t\t\t// shrink i\n\t\t\t\ti[1] = y - 1\n\t\t\t}\n\t\t}\n\t}\n\tconst labelfontsize = ep.sf_boxlabelfontsize(Math.log(data.length))\n\tconst boxheight = ep.sf_boxheight(data.length)\n\tlet y = 0\n\tfor (const s of free) {\n\t\tif (s[1] - s[0] > Math.max(boxheight, labelfontsize)) {\n\t\t\ty = s[0] + 3\n\t\t\tbreak\n\t\t}\n\t}\n\t// y is anchor in free land\n\tconst holder = ep.boxbag.append('g').attr('transform', 'translate(0,' + y + ')')\n\tconst box = {\n\t\tlabeltext: label,\n\t\tlst: data,\n\t\tholder: holder,\n\t\tyoff: y,\n\t\thighlight: false,\n\t\tid: id,\n\t\thandle: handle,\n\t\theight: Math.max(boxheight, labelfontsize),\n\t\tlookuphash: {}\n\t}\n\tfor (const d of data) {\n\t\tbox.lookuphash[d[ep.p.sampletype]] = 1\n\t}\n\tep.boxplots.push(box)\n\tconst p9 = data[Math.floor((data.length - 1) * 0.91)].value,\n\t\tp25 = data[Math.floor((data.length - 1) * 0.75)].value,\n\t\tp50 = data[Math.floor((data.length - 1) * 0.5)].value,\n\t\tp75 = data[Math.floor((data.length - 1) * 0.25)].value,\n\t\tp91 = data[Math.floor((data.length - 1) * 0.09)].value\n\tbox.percentile = {\n\t\t9: p9 == 0 ? 0.0001 : p9,\n\t\t25: p25 == 0 ? 0.0001 : p25,\n\t\t50: p50 == 0 ? 0.0001 : p50,\n\t\t75: p75 == 0 ? 0.0001 : p75,\n\t\t91: p91 == 0 ? 0.0001 : p91\n\t}\n\t// horizontal through line\n\tbox.hline = holder\n\t\t.append('line')\n\t\t.attr('y1', boxheight / 2)\n\t\t.attr('y2', boxheight / 2)\n\t\t.attr('stroke', ep.boxcolor)\n\t\t.attr('stroke-dasharray', '5,3')\n\t\t.attr('shape-rendering', 'crispEdges')\n\tbox.hline\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x1', Math.max(0, ep.x_scale(p9)))\n\t\t.attr('x2', Math.max(0, ep.x_scale(p91)))\n\t// label, also need to get label width to draw connect line between p91 and label\n\tbox.label = holder\n\t\t.append('text')\n\t\t.attr('y', boxheight / 2)\n\t\t.attr('font-size', labelfontsize)\n\t\t.attr('font-family', client.font)\n\t\t.attr('text-anchor', 'end')\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.attr('fill', box.highlight ? ep.p.hlcolor : ep.boxcolor)\n\t\t.style('cursor', 'default')\n\t\t.text(label)\n\t\t.on('mousedown', event => boxplot_md(ep, box, event))\n\t\t.on('click', () => boxplot_clicklabel(ep, box))\n\t\t.each(function() {\n\t\t\tbox.labelwidth = this.getBBox().width\n\t\t})\n\t\t.attr('x', ep.width + ep.width2 + box.labelwidth)\n\tbox.label\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x', ep.width + ep.width2 - ep.width2_ - 3)\n\t// label2\n\tbox.label2 = holder\n\t\t.append('text')\n\t\t.attr('x', ep.width + ep.width2 + box.labelwidth)\n\t\t.attr('y', boxheight / 2)\n\t\t.attr('font-size', labelfontsize)\n\t\t.attr('font-family', client.font)\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.attr('fill', box.highlight ? ep.p.hlcolor : ep.boxcolor)\n\t\t.style('cursor', 'default')\n\t\t.text(data.length)\n\t\t.on('mousedown', () => boxplot_md(ep, box))\n\t\t.on('click', () => boxplot_clicklabel(ep, box))\n\tbox.label2\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x', ep.width + ep.width2 - ep.width2_ + 3)\n\tbox.connline = holder\n\t\t.append('line')\n\t\t.attr('y1', boxheight / 2)\n\t\t.attr('y2', boxheight / 2)\n\t\t.attr('stroke', ep.boxcolor)\n\t\t.attr('stroke-dasharray', '1,3')\n\t\t.attr('shape-rendering', 'crispEdges')\n\tbox.connline\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x1', Math.max(0, ep.x_scale(box.percentile[91])))\n\t\t.attr('x2', Math.max(0, ep.width + ep.width2 - box.labelwidth - ep.width2_ - 3))\n\tbox.box = holder\n\t\t.append('rect')\n\t\t.attr('height', boxheight)\n\t\t.attr('shape-rendering', 'crispEdges')\n\t\t.attr('fill', 'white')\n\t\t.attr('stroke', ep.boxcolor)\n\t\t.on('click', () => boxplotremove(ep, box))\n\t\t.on('mousedown', event => {\n\t\t\tconst t = event.target\n\t\t\tt.setAttribute('fill', '#FFeeee')\n\t\t\tt.setAttribute('stroke', '#D10000')\n\t\t})\n\t\t.on('mouseover', event => {\n\t\t\tep.dottip.show(event.clientX, event.clientY).clear()\n\t\t\tconst lst = [\n\t\t\t\t{ k: 'Group', v: box.labeltext || 'All samples' },\n\t\t\t\t{ k: '1st quartile', v: box.percentile[25] },\n\t\t\t\t{ k: 'Median', v: box.percentile[50] },\n\t\t\t\t{ k: '3rd quartile', v: box.percentile[75] }\n\t\t\t]\n\t\t\tclient.make_table_2col(ep.dottip.d.append('div'), lst)\n\t\t})\n\t\t.on('mouseout', () => {\n\t\t\tep.dottip.hide()\n\t\t})\n\tbox.box\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x', Math.max(0, ep.x_scale(box.percentile[25])))\n\t\t.attr('width', Math.max(0, ep.x_scale(box.percentile[75])) - Math.max(0, ep.x_scale(box.percentile[25])))\n\tbox.vlines = holder\n\t\t.selectAll()\n\t\t.data([box.percentile[9], box.percentile[25], box.percentile[50], box.percentile[75], box.percentile[91]])\n\t\t.enter()\n\t\t.append('line')\n\t\t.attr('x1', 0)\n\t\t.attr('x2', 0)\n\t\t.attr('y1', 0)\n\t\t.attr('y2', boxheight)\n\t\t.attr('stroke', ep.boxcolor)\n\t\t.attr('shape-rendering', 'crispEdges')\n\tbox.vlines\n\t\t.transition()\n\t\t.duration(ep.dur)\n\t\t.attr('x1', d => Math.max(0, ep.x_scale(d)))\n\t\t.attr('x2', d => Math.max(0, ep.x_scale(d)))\n\tif (label != '') {\n\t\t// this is not the bigbox for all so highlight\n\t\tboxplot_clicklabel(ep, box)\n\t}\n}\n\nexport function boxplotremove(ep, arg) {\n\tlet box = null\n\tif (typeof arg == 'object') {\n\t\tbox = arg\n\t} else {\n\t\tfor (const b of ep.boxplots) {\n\t\t\tif (b.id == arg) box = b\n\t\t}\n\t}\n\tif (!box) {\n\t\tconsole.log('cannot remove boxplot')\n\t\treturn\n\t}\n\tbox.handle.style('border-color', 'transparent')\n\tif (box.label.attr('fill') == ep.p.hlcolor) {\n\t\tboxplot_clicklabel(ep, box)\n\t}\n\tbox.holder\n\t\t.transition()\n\t\t.attr('transform', 'translate(' + (ep.width + 20) + ',' + box.yoff + ')')\n\t\t.each(() => box.holder.remove())\n\tfor (let i = 0; i < ep.boxplots.length; i++) {\n\t\tif (ep.boxplots[i].id == box.id) {\n\t\t\tep.boxplots.splice(i, 1)\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunction boxplot_clicklabel(ep, box) {\n\tif (ep.busy) return\n\tfor (const b of ep.boxplots) {\n\t\tif (b.id != box.id) b.highlight = false\n\t}\n\t// this highlight doesnot involve text label\n\tbox.highlight = !box.highlight\n\tep.epdot\n\t\t.transition()\n\t\t.duration(1000)\n\t\t.attr('r', d => {\n\t\t\tif (d[ep.p.sampletype] in box.lookuphash) return box.highlight ? ep.dotsize * 0.7 : ep.dotsize / 2\n\t\t\treturn box.highlight ? ep.dotsize * 0.2 : ep.dotsize / 2\n\t\t})\n\t\t.attr('stroke', d => {\n\t\t\tif (d[ep.p.sampletype] in box.lookuphash) return box.highlight ? ep.p.hlcolor : 'black'\n\t\t\treturn 'black'\n\t\t})\n\t\t.attr('stroke-opacity', d => {\n\t\t\tif (d[ep.p.sampletype] in box.lookuphash) return box.highlight ? 0.4 : 0.2\n\t\t\treturn box.highlight ? 0.1 : 0.2\n\t\t})\n\tfor (const b of ep.boxplots) {\n\t\tb.label.attr('fill', b.highlight ? ep.p.hlcolor : ep.boxcolor)\n\t\tb.label2.attr('fill', b.highlight ? ep.p.hlcolor : ep.boxcolor)\n\t}\n}\n\nfunction boxplot_md(ep, box, event) {\n\tevent.preventDefault()\n\tconst y = event.clientY,\n\t\toldboxy = box.yoff\n\tconst b = d3select(document.body)\n\tb.on('mousemove', event => {\n\t\tep.busy = true\n\t\tbox.yoff = oldboxy + event.clientY - y\n\t\tbox.holder.attr('transform', 'translate(0,' + box.yoff + ')')\n\t}).on('mouseup', () => {\n\t\tb.on('mousemove', null).on('mouseup', null)\n\t\tsetTimeout(() => (ep.busy = false), 100)\n\t})\n}\n", "import { scaleLinear, scaleLog, scaleOrdinal } from 'd3-scale'\nimport { schemeCategory20 } from '#common/legacy-d3-polyfill'\nimport { axisTop } from 'd3-axis'\nimport { select as d3select, pointer as d3pointer } from 'd3-selection'\nimport { hierarchy, stratify } from 'd3-hierarchy'\nimport * as client from './client'\nimport { burst } from './ep.sun'\nimport { newboxplot, boxplotremove } from './ep.boxplot'\nimport { stratinput } from '#shared/tree.js'\n\n/*\nlaunch epaint\n\nreplace-by-mds\n\ndotplot: serverside rendering\nboxplot: server computed\nhistogram: server computed\n\n*/\n\nconst minwidth = 300,\n\tmaxwidth = 500,\n\tminheight = 400,\n\tmaxheight = 700\n\n// circle stroke opacity\nconst hl_strokeopacity = 0.6\nconst normal_strokeopacity = 0.2\n\nexport default class EPaint {\n\tconstructor(arg) {\n\t\t/*\narg\n.data[{}]\n.expp{}\n\t.cohort\n\t\toptional\n.genename\n.presize\n\t.x\n\t.y\n\t.width\n\t.height\n.block\n\toptional\n\n.dsname str\n.genome str\n\toptional\n\tif both provided, will enable gene search box\n\n.hostURL\n.samplecart\n*/\n\n\t\tthis.p = arg.expp\n\n\t\tif (this.p.cohort) {\n\t\t\tif (!this.p.cohort.suncolor) {\n\t\t\t\tthis.p.cohort.suncolor = scaleOrdinal(schemeCategory20)\n\t\t\t}\n\t\t}\n\t\tthis.boxcolor = '#006600'\n\t\tthis.boxplots = []\n\t\tthis.const_all = 'All ' + this.p.sampletype + 's'\n\t\tthis.uselog = false\n\t\tthis.dotmoved = false\n\t\tthis.genename = arg.genename\n\t\tthis.presize = arg.presize\n\n\t\tthis.dsname = arg.dsname // both optional, if provided, will enable gene search\n\t\tthis.genome = arg.genome\n\n\t\tthis.hostURL = arg.block ? arg.block.hostURL : arg.hostURL\n\t\tthis.samplecart = arg.samplecart\n\t\tif (arg.block) {\n\t\t\t// ep opened along with dstk has .block\n\t\t\t// subsequently opened ones hasn't\n\t\t\tconst p = arg.block.holder.node().getBoundingClientRect()\n\t\t\tthis.presize = {\n\t\t\t\tx: p.left + arg.block.leftheadw + arg.block.width + 20,\n\t\t\t\ty: p.top,\n\t\t\t\twidth: Math.min(maxwidth, Math.max(minwidth, document.body.scrollWidth - p.left - p.width - 100)),\n\t\t\t\theight: Math.min(maxheight, Math.max(minheight, document.body.clientHeight - 270))\n\t\t\t}\n\t\t}\n\t\tthis.source = arg.source\n\t\tthis.data = arg.data\n\t\tthis.data.sort((a, b) => b.value - a.value)\n\t\tthis.minvalue = 0\n\t\tthis.maxvalue = 0\n\t\tif (this.data.length > 0) {\n\t\t\tthis.minvalue = this.maxvalue = this.data[0].value\n\t\t}\n\t\t// data sorted by value, get median\n\t\tthis.sampletype2value = {}\n\t\t// key: sample name, val: numeric value, for highlight effect when mouse over skewer-disc\n\t\tfor (const d of this.data) {\n\t\t\tconst v = d.value\n\t\t\tthis.minvalue = Math.min(this.minvalue, v)\n\t\t\tthis.maxvalue = Math.max(this.maxvalue, v)\n\t\t\tthis.sampletype2value[d[this.p.sampletype]] = v\n\t\t}\n\t\tif (this.p.scaleminvalue != undefined) {\n\t\t\tthis.minvalue = this.p.scaleminvalue\n\t\t}\n\n\t\tthis.pane = client.newpane({\n\t\t\tx: this.presize.x,\n\t\t\ty: this.presize.y\n\t\t})\n\n\t\t/*\n\tadd a new class for identifying such panes\n\tso that next time user search for a gene (click callback on search box), the first instance of such pane will be removed\n\t*/\n\t\tthis.pane.pane.classed('sja_ep_pane', true)\n\n\t\t// tooltip must be created after .pane\n\t\tthis.dottip = new client.Menu({ padding: '10px' })\n\n\t\tif (arg.block) {\n\t\t\tconst closebut = d3select(this.pane.header.node().previousSibling)\n\t\t\t// by closing, will fold to handle of ds\n\t\t\tclosebut.on('click', () => {\n\t\t\t\tthis.epaintfold(arg.block)\n\t\t\t})\n\t\t}\n\n\t\tthis.pane.body.style('padding', '10px')\n\n\t\tconst error = m => {\n\t\t\tthis.pane.body.append('p').text(m)\n\t\t}\n\n\t\tif (this.data.length == 0) {\n\t\t\tthis.pane.header.text(this.p.name)\n\t\t\terror('No expression data for ' + this.genename)\n\t\t\treturn\n\t\t}\n\n\t\t// header\n\t\tthis.pane.header.text(this.genename + ' ' + this.p.name + (this.dsname ? ' from ' + this.dsname : ''))\n\n\t\tmakeButtons(this)\n\n\t\t// underneath button row\n\t\tthis.treediv = this.pane.body\n\t\t\t.append('div')\n\t\t\t.style('display', 'none')\n\t\t\t.style('margin', '20px 0px 30px 0px')\n\t\t\t.style('padding', '10px')\n\t\t\t.style('background-color', '#FFFFE8')\n\t\tthis.treediv\n\t\t\t.append('div')\n\t\t\t.style('font-size', '.7em')\n\t\t\t.style('color', '#858585')\n\t\t\t.style('text-align', 'center')\n\t\t\t.text('Click on a row to show/hide boxplot')\n\n\t\tthis.svg = this.pane.body.append('svg')\n\n\t\t// may show select sample button\n\t\tif (this.samplecart) {\n\t\t\t// api effective\n\t\t\t// append the selection button which will be displayed when dragged on grabbar\n\t\t\tthis.samplecartWrapper = this.pane.body.append('div')\n\t\t\tthis.samplecart.setBtns({\n\t\t\t\tsamplelst: this.grab && this.grab.selectedsamples ? this.grab.selectedsamples : [],\n\t\t\t\tbasket: 'Gene Expression',\n\t\t\t\tid: this.genename + (!this.grab ? '' : ' FPKM:' + this.grab.min + '-' + this.grab.max),\n\t\t\t\tcontainer: this.samplecartWrapper,\n\t\t\t\treselectable: true,\n\t\t\t\treplaceable: false\n\t\t\t})\n\t\t}\n\n\t\t// resize button\n\t\tthis.pane.body\n\t\t\t.append('div')\n\t\t\t.style('text-align', 'right')\n\t\t\t.append('span')\n\t\t\t.text('drag to resize')\n\t\t\t.attr('font-size', '.8em')\n\t\t\t.attr('font-family', client.font)\n\t\t\t.attr('class', 'sja_clbtext')\n\t\t\t.on('mousedown', event => {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tconst x = event.clientX\n\t\t\t\tconst y = event.clientY\n\t\t\t\tconst width = this.width\n\t\t\t\tconst height = this.height\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tb.on('mousemove', e2 => {\n\t\t\t\t\tthis.render(width + e2.clientX - x, height + e2.clientY - y)\n\t\t\t\t})\n\t\t\t\tb.on('mouseup', () => {\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\n\t\tthis.sf_boxheight = scaleLinear().domain([0, this.data.length])\n\t\tthis.sf_boxlabelfontsize = scaleLinear()\n\t\tthis.boxplots = []\n\t\tif (this.svgg) {\n\t\t\tthis.svgg.remove()\n\t\t}\n\t\tthis.svgg = this.svg.append('g')\n\t\tthis.axisg = this.svgg.append('g')\n\t\tthis.grabbar = this.svgg\n\t\t\t.append('rect')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('y', 0)\n\t\t\t.attr('fill', 'white')\n\t\t\t.attr('fill-opacity', 0)\n\t\t\t.on('mousedown', event => {\n\t\t\t\tif (!this.p.cohort) {\n\t\t\t\t\tconsole.log('no .p.cohort')\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tthis.busy = true\n\t\t\t\tconst x = d3pointer(event, this.grabbar.node())[0]\n\t\t\t\tconst val1 = Number.parseFloat(this.x_scale.invert(x).toFixed(1))\n\t\t\t\tthis.grab.x = x\n\t\t\t\tthis.grab.width = 1\n\t\t\t\tthis.grab.shade.attr('transform', 'translate(' + x + ',' + this.grab.y + ')')\n\t\t\t\tthis.grab.shadebox\n\t\t\t\t\t.attr('width', 2)\n\t\t\t\t\t.attr('height', this.grab.height)\n\t\t\t\t\t.attr('stroke-opacity', 0.7)\n\t\t\t\t\t.attr('fill-opacity', 0.1)\n\t\t\t\tthis.grab.shadehandle1.attr('fill-opacity', 0.5)\n\t\t\t\tthis.grab.shadehandle2.attr('x', 2).attr('fill-opacity', 0.5)\n\t\t\t\tburst(this, val1, Number.parseFloat(this.x_scale.invert(x + 1).toFixed(1)))\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tlet x2 = d3pointer(event, this.grabbar.node())[0]\n\t\t\t\t\tx2 = Math.max(-this.dotsize, x2)\n\t\t\t\t\tx2 = Math.min(this.width + this.dotsize, x2)\n\t\t\t\t\tthis.grab.width = Math.max(1, Math.abs(x2 - x))\n\t\t\t\t\tthis.grab.shadebox.attr('width', this.grab.width)\n\t\t\t\t\tthis.grab.shadehandle2.attr('x', this.grab.width)\n\t\t\t\t\tif (x2 < x) {\n\t\t\t\t\t\tthis.grab.x = x2\n\t\t\t\t\t\tthis.grab.shade.attr('transform', 'translate(' + this.grab.x + ',' + this.grab.y + ')')\n\t\t\t\t\t}\n\t\t\t\t\tburst(this, val1, Number.parseFloat(this.x_scale.invert(x2).toFixed(1)))\n\t\t\t\t})\n\t\t\t\tb.on('mouseup', () => {\n\t\t\t\t\tthis.busy = false\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\t\tthis.verticalline = this.svgg\n\t\t\t.append('line')\n\t\t\t.attr('stroke', this.boxcolor)\n\t\t\t.attr('stroke-opacity', 0.1)\n\t\t\t.attr('shape-rendering', 'crispEdges')\n\t\tthis.dur = 2000\n\t\t// bag of box at background\n\t\tthis.boxbag = this.svgg.append('g')\n\t\t// graph of dots in middle\n\t\tthis.graph = this.svgg.append('g')\n\t\t// sunburst at foreground\n\t\tthis.sung = this.svgg.append('g')\n\t\tthis.grab = {\n\t\t\tshade: this.sung.append('g'),\n\t\t\tholder: this.sung.append('g')\n\t\t}\n\n\t\tthis.grab.shadebox = this.grab.shade\n\t\t\t.append('rect')\n\t\t\t.attr('stroke', this.p.hlcolor)\n\t\t\t.attr('stroke-width', 1)\n\t\t\t.attr('fill', this.p.hlcolor)\n\t\t\t.style('cursor', 'move')\n\t\t\t.on('mousedown', event => {\n\t\t\t\tif (!this.p.cohort) {\n\t\t\t\t\t// no cohort, do not show sunburst\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.busy = true\n\t\t\t\tlet x = event.clientX\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tconst x2 = event.clientX\n\t\t\t\t\tthis.grab.x += x2 - x\n\t\t\t\t\tx = x2\n\t\t\t\t\tthis.grab.shade.attr('transform', 'translate(' + this.grab.x + ',' + this.grab.y + ')')\n\t\t\t\t\tburst(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x).toFixed(1)),\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x + this.grab.width).toFixed(1))\n\t\t\t\t\t)\n\t\t\t\t}).on('mouseup', () => {\n\t\t\t\t\tthis.busy = false\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\t\tthis.grab.shadehandle1 = this.grab.shade\n\t\t\t.append('rect')\n\t\t\t.attr('x', -5)\n\t\t\t.attr('width', 5)\n\t\t\t.attr('height', 40)\n\t\t\t.attr('fill', this.p.hlcolor)\n\t\t\t.attr('fill-opacity', 0)\n\t\t\t.style('cursor', 'ew-resize')\n\t\t\t.on('mousedown', event => {\n\t\t\t\tthis.busy = true\n\t\t\t\tlet x = event.clientX\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tconst x2 = event.clientX\n\t\t\t\t\tthis.grab.width += x - x2\n\t\t\t\t\tif (this.grab.width <= 0) {\n\t\t\t\t\t\tthis.grab.width -= x - x2\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tthis.grab.x += x2 - x\n\t\t\t\t\tx = x2\n\t\t\t\t\tthis.grab.shade.attr('transform', 'translate(' + this.grab.x + ',' + this.grab.y + ')')\n\t\t\t\t\tthis.grab.shadebox.attr('width', this.grab.width)\n\t\t\t\t\tthis.grab.shadehandle2.attr('x', this.grab.width)\n\t\t\t\t\tburst(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x).toFixed(1)),\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x + this.grab.width).toFixed(1))\n\t\t\t\t\t)\n\t\t\t\t}).on('mouseup', () => {\n\t\t\t\t\tthis.busy = false\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\t\tthis.grab.shadehandle2 = this.grab.shade\n\t\t\t.append('rect')\n\t\t\t.attr('x', 0)\n\t\t\t.attr('width', 5)\n\t\t\t.attr('height', 40)\n\t\t\t.attr('fill', this.p.hlcolor)\n\t\t\t.attr('fill-opacity', 0)\n\t\t\t.style('cursor', 'ew-resize')\n\t\t\t.on('mousedown', event => {\n\t\t\t\tlet x = event.clientX\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tconst x2 = event.clientX\n\t\t\t\t\tthis.grab.width += x2 - x\n\t\t\t\t\tif (this.grab.width <= 0) {\n\t\t\t\t\t\tthis.grab.width -= x2 - x\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tx = x2\n\t\t\t\t\tthis.grab.shadebox.attr('width', this.grab.width)\n\t\t\t\t\tthis.grab.shadehandle2.attr('x', this.grab.width)\n\t\t\t\t\tburst(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x).toFixed(1)),\n\t\t\t\t\t\tNumber.parseFloat(this.x_scale.invert(this.grab.x + this.grab.width).toFixed(1))\n\t\t\t\t\t)\n\t\t\t\t}).on('mouseup', () => {\n\t\t\t\t\tthis.busy = false\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\t\t// dots\n\t\tthis.epdotg = this.graph.selectAll().data(this.data).enter().append('g')\n\t\tthis.epdot = this.epdotg\n\t\t\t.append('circle')\n\t\t\t.attr('fill', this.p.hlcolor)\n\t\t\t.attr('fill-opacity', 0)\n\t\t\t.attr('stroke', 'black')\n\t\t\t.attr('stroke-width', 2)\n\t\t\t.attr('stroke-opacity', normal_strokeopacity)\n\t\t\t.each(function (d) {\n\t\t\t\td.circle = this\n\t\t\t})\n\t\t\t.on('mouseover', (event, d) => {\n\t\t\t\tif (this.busy) return\n\t\t\t\td.circle.setAttribute('transform', 'scale(1.5)')\n\t\t\t\tthis.dottip.clear()\n\t\t\t\tconst lst = [\n\t\t\t\t\t{\n\t\t\t\t\t\tk: this.p.datatype,\n\t\t\t\t\t\tv: '<span style=\"font-size:150%\">' + d.value + '</span>'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t\tif (this.p.attrlst) {\n\t\t\t\t\tfor (const a of this.p.attrlst) {\n\t\t\t\t\t\tlst.push({\n\t\t\t\t\t\t\tk: a.label || a.k,\n\t\t\t\t\t\t\tv: d[a.k]\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst cangetmore = this.getsampleinfo(d, lst)\n\t\t\t\tclient.make_table_2col(this.dottip.d, lst).style('zoom', 0.7)\n\t\t\t\tthis.dottip.show(event.clientX, event.clientY)\n\n\t\t\t\tif (cangetmore) {\n\t\t\t\t\t// more info available from cohort.annotation\n\t\t\t\t\tthis.dottip.d\n\t\t\t\t\t\t.append('div')\n\t\t\t\t\t\t.text('Full details')\n\t\t\t\t\t\t.attr('class', 'sja_menuoption')\n\t\t\t\t\t\t.on('click', () => {\n\t\t\t\t\t\t\tsamplefulldetail(d, this.p.cohort, event.clientX - 100, event.clientY - 100)\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mouseout', (event, d) => {\n\t\t\t\td.circle.setAttribute('transform', 'scale(1)')\n\t\t\t})\n\t\t\t.on('mousedown', (event, d) => {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tconst y0 = event.clientY\n\t\t\t\tconst b = d3select(document.body)\n\t\t\t\tconst median = this.data[Math.floor(this.data.length / 2)].value\n\t\t\t\tif (d.value < median) {\n\t\t\t\t\t// shift\n\t\t\t\t\tconst inity = this.dotgraph_y\n\t\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\t\tthis.busy = true // must set it here so not busy for click\n\t\t\t\t\t\tthis.dotmoved = true\n\t\t\t\t\t\tthis.dotgraph_y = inity + event.clientY - y0\n\t\t\t\t\t\tthis.graph.attr('transform', 'translate(0,' + this.dotgraph_y + ')')\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// lengthen\n\t\t\t\t\tconst inith = this.heightmove\n\t\t\t\t\tb.on('mousemove', event => {\n\t\t\t\t\t\tthis.dotmoved = true\n\t\t\t\t\t\tthis.heightmove = inith + y0 - event.clientY\n\t\t\t\t\t\tconst rowheight = this.heightmove / this.data.length\n\t\t\t\t\t\tthis.epdotg.attr('transform', (d, i) => {\n\t\t\t\t\t\t\td._y = this.height - this.heightmove + i * rowheight\n\t\t\t\t\t\t\treturn 'translate(' + Math.max(0, this.x_scale(d.value)) + ',' + d._y + ')'\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tb.on('mouseup', () => {\n\t\t\t\t\tsetTimeout(() => (this.busy = false), 50)\n\t\t\t\t\tb.on('mousemove', null).on('mouseup', null)\n\t\t\t\t})\n\t\t\t})\n\t\t//.on('click',d=>{ })\n\n\t\tthis.render()\n\t\tconst allsamplerow = this.treediv\n\t\t\t.append('div')\n\t\t\t.style('margin', '10px')\n\t\t\t.style('padding', '2px')\n\t\t\t.style('border', 'solid 1px transparent')\n\t\t\t.html('All samples&nbsp;&nbsp;' + this.data.length)\n\t\t\t.attr('class', 'sja_clb')\n\t\t\t.on('click', () => {\n\t\t\t\tlet nf = true\n\t\t\t\tfor (const b of this.boxplots) {\n\t\t\t\t\tif (b.id == 'all') nf = false\n\t\t\t\t}\n\t\t\t\tif (nf) {\n\t\t\t\t\tnewboxplot(this, this.data, '', 'all', allsamplerow)\n\t\t\t\t} else {\n\t\t\t\t\tboxplotremove(this, 'all')\n\t\t\t\t}\n\t\t\t})\n\n\t\tif (this.p.cohort) {\n\t\t\tif (this.p.cohort && this.p.cohort.annotation && this.p.cohort.key4annotation) {\n\t\t\t\t// refit annotation\n\t\t\t\tfor (const m of this.data) {\n\t\t\t\t\tconst k4a = m[this.p.cohort.key4annotation]\n\t\t\t\t\tif (k4a) {\n\t\t\t\t\t\tconst sanno = this.p.cohort.annotation[k4a]\n\t\t\t\t\t\tif (sanno) {\n\t\t\t\t\t\t\tif (this.p.cohort.levels) {\n\t\t\t\t\t\t\t\tfor (const l of this.p.cohort.levels) {\n\t\t\t\t\t\t\t\t\tm[l.k] = sanno[l.k]\n\t\t\t\t\t\t\t\t\tif (l.full) {\n\t\t\t\t\t\t\t\t\t\tm[l.full] = sanno[l.full]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfor (const k in sanno) {\n\t\t\t\t\t\t\t\t\tm[k] = sanno[k]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst div = this.treediv\n\t\t\t\t.append('div')\n\t\t\t\t.style('margin', '10px')\n\t\t\t\t.style('height', '400px')\n\t\t\t\t.style('overflow-y', 'scroll')\n\t\t\t\t.style('resize', 'vertical')\n\t\t\tconst input = stratinput(this.data, this.p.cohort.levels)\n\t\t\tconst root = hierarchy(stratify()(input))\n\t\t\troot.sum(i => i.value)\n\t\t\troot.eachBefore(n => {\n\t\t\t\tif (!n.parent) return\n\t\t\t\tconst row = div\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.style('margin', '2px')\n\t\t\t\t\t.style('padding', '2px')\n\t\t\t\t\t.style('border', 'solid 1px transparent')\n\t\t\t\t\t.attr('class', 'sja_clb')\n\t\t\t\tfor (let i = 1; i < n.depth; i++) {\n\t\t\t\t\trow.append('span').style('color', '#ccc').style('padding', '0px 15px').text('|')\n\t\t\t\t}\n\t\t\t\tconst d = n.data.data\n\t\t\t\trow.append('span').html(d.name + '&nbsp;') // somehow no longer n.data.name\n\t\t\t\tif (d.full) {\n\t\t\t\t\trow\n\t\t\t\t\t\t.append('span')\n\t\t\t\t\t\t.html(d.full + '&nbsp;')\n\t\t\t\t\t\t.style('font-size', '.7em')\n\t\t\t\t\t\t.style('color', '#858585')\n\t\t\t\t}\n\t\t\t\tif (d.lst && d.lst.length) {\n\t\t\t\t\trow.append('span').text(d.lst.length)\n\t\t\t\t\trow.on('click', () => {\n\t\t\t\t\t\tlet nf = true\n\t\t\t\t\t\tfor (const b of this.boxplots) {\n\t\t\t\t\t\t\tif (b.id == d.id) nf = false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (nf) {\n\t\t\t\t\t\t\tnewboxplot(this, d.lst, d.name, d.id, row)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tboxplotremove(this, d.id)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t} else {\n\t\t\tthis.treediv.append('div').style('margin', '10px').text('Cannot stratify sample: no cohort information.')\n\t\t}\n\t\tnewboxplot(this, this.data, '', 'all', allsamplerow)\n\t\t// end of constructor\n\t}\n\n\tepaintfold(block) {\n\t\tif (!this.handle) {\n\t\t\t// no folded handle\n\t\t\tconst ds = this.genome.datasets[this.dsname]\n\t\t\tif (!ds) {\n\t\t\t\talert('invalid dataset name: ' + this.dsname)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.handle = block.ds2handle[this.dsname].handle\n\t\t\t\t.append('div')\n\t\t\t\t.classed('sja_opaque8', true)\n\t\t\t\t.style('background-color', '#999')\n\t\t\t\t.style('color', 'white')\n\t\t\t\t.style('padding', '2px 4px')\n\t\t\t\t.style('margin-left', '1px')\n\t\t\t\t.text('e')\n\t\t\tthis.handle.on('click', () => {\n\t\t\t\tthis.pane.pane.style('display', 'block')\n\t\t\t\tclient.flyindi(this.handle, this.pane.pane)\n\t\t\t\tthis.handle.style('display', 'none')\n\t\t\t})\n\t\t}\n\t\tthis.handle.style('display', 'inline-block')\n\t\tclient.flyindi(this.pane.pane, this.handle)\n\t\tthis.pane.pane.style('display', 'none')\n\t}\n\n\tmakescale_ep() {\n\t\tconst axish = this.axish - 2\n\t\tif (this.uselog) {\n\t\t\tthis.x_scale = scaleLog().domain([1, this.maxvalue]).range([0, this.width])\n\t\t} else {\n\t\t\tthis.x_scale = scaleLinear().domain([this.minvalue, this.maxvalue]).range([0, this.width])\n\t\t}\n\t\tconst scale = axisTop().scale(this.x_scale).tickSizeInner(this.tickh)\n\t\tif (this.uselog) {\n\t\t\tscale.ticks(6, ',.0f')\n\t\t} else {\n\t\t\t// not to show jumbled labels in case of very large values\n\t\t\tlet fontwidth\n\t\t\tthis.axisg\n\t\t\t\t.append('text')\n\t\t\t\t.text(Math.ceil(this.maxvalue))\n\t\t\t\t.attr('font-size', axish - this.tickh)\n\t\t\t\t.each(function () {\n\t\t\t\t\tfontwidth = this.getBBox().width\n\t\t\t\t})\n\t\t\t\t.remove()\n\t\t\tscale.ticks(Math.floor(this.width / (fontwidth + 20)))\n\t\t}\n\t\tif (this.axis) {\n\t\t\tthis.axis.remove()\n\t\t}\n\t\tthis.axis = this.axisg\n\t\t\t.append('g')\n\t\t\t.attr('transform', 'translate(0,' + axish + ')')\n\t\t\t.call(scale)\n\t\tclient.axisstyle({\n\t\t\taxis: this.axis,\n\t\t\tfontsize: axish - this.tickh,\n\t\t\tshowline: true\n\t\t})\n\t}\n\n\trender(width, height) {\n\t\tif (!width) {\n\t\t\twidth = this.presize.width\n\t\t\theight = this.presize.height\n\t\t}\n\t\tthis.width = width\n\t\tthis.width2 = width * 0.05\n\t\tthis.dotsize = Math.max(13, width / 30)\n\t\tthis.height = height\n\t\tthis.sf_boxheight.range([10, this.height / 8])\n\t\tconst groupmax = Math.min(this.data.length * 0.7, 300)\n\t\tthis.sf_boxlabelfontsize\n\t\t\t.domain([0, Math.log(groupmax), Math.log(this.data.length)])\n\t\t\t.range([8, this.sf_boxheight(groupmax) / 2, 1 + this.sf_boxheight(groupmax) / 2])\n\t\tthis.heightmove = this.height\n\t\tthis.rowheight_reset()\n\t\tthis.svgg.attr('transform', 'translate(' + this.dotsize + ',0)')\n\t\tthis.axish = Math.max(18, this.width * 0.04)\n\t\tthis.tickh = this.axish * 0.3\n\t\tthis.makescale_ep()\n\t\tthis.grabbar.attr('width', this.width)\n\t\tthis.grabbar.attr('height', this.axish)\n\t\t// only to get width2_\n\t\tconst tmp = this.svgg\n\t\t\t.append('text')\n\t\t\t.text(this.data.length)\n\t\t\t.attr('font-family', client.font)\n\t\t\t.attr('font-size', this.sf_boxlabelfontsize(Math.log(this.data.length)))\n\t\tthis.width2_ = tmp.node().getBBox().width + 3\n\t\ttmp.remove()\n\t\tconst tmp2 = this.svgg.append('text').text('COUNT').attr('font-size', 1).attr('font-family', client.font)\n\t\tconst size2 = Math.max(8, (this.width2_ - 3) / tmp2.node().getBBox().width)\n\t\ttmp2.remove()\n\t\tthis.axispad = 5 + size2 + this.dotsize / 2\n\t\tthis.verticalline\n\t\t\t.attr('x1', this.width + this.width2 - this.width2_)\n\t\t\t.attr('y1', this.axish + 5)\n\t\t\t.attr('x2', this.width + this.width2 - this.width2_)\n\t\t\t.attr('y2', this.axish + this.height + this.axispad)\n\t\tthis.dotgraph_y = this.axish + this.axispad\n\t\tthis.dotgraph_y_default = this.dotgraph_y\n\t\tthis.boxbag.attr('transform', 'translate(0,' + this.dotgraph_y + ')')\n\t\tthis.graph.attr('transform', 'translate(0,' + this.dotgraph_y + ')')\n\t\tthis.sung.attr('transform', 'translate(0,' + this.dotgraph_y + ')')\n\t\tthis.grab.y = -this.dotgraph_y - 10\n\t\tthis.grab.height = this.height + this.dotgraph_y + 30\n\t\tthis.grab.holder.attr('transform', 'translate(' + this.width / 2 + ',' + this.height / 2 + ')')\n\t\tthis.grab.shadehandle1.attr('y', 12 + this.axish)\n\t\tthis.grab.shadehandle2.attr('y', 12 + this.axish)\n\t\tthis.epdotg.attr('transform', (d, i) => {\n\t\t\td._y = i * this.rowheight\n\t\t\treturn 'translate(0,' + d._y + ')'\n\t\t})\n\t\tthis.epdot.attr('r', this.dotsize / 2)\n\t\tthis.epdotg.attr('transform', d => 'translate(' + Math.max(0, this.x_scale(d.value)) + ',' + d._y + ')')\n\t\t//this.resizebutt.attr('x',this.width+this.width2) .attr('y',this.axish+this.axispad+this.height)\n\t\tif (this.grab.x) {\n\t\t\tlet x1 = this.x_scale(this.grab.min),\n\t\t\t\tx2 = this.x_scale(this.grab.max)\n\t\t\tthis.grab.x = x1\n\t\t\tthis.grab.width = x2 - x1\n\t\t\tthis.grab.shade.attr('transform', 'translate(' + x1 + ',' + this.grab.y + ')')\n\t\t\tthis.grab.shadebox.attr('width', this.grab.width).attr('height', this.grab.height)\n\t\t\tthis.grab.shadehandle2.attr('x', this.grab.width)\n\t\t\tburst(this, this.grab.min, this.grab.max)\n\t\t}\n\t\tfor (const box of this.boxplots) {\n\t\t\tconst labelfontsize = this.sf_boxlabelfontsize(Math.log(box.lst.length))\n\t\t\tconst boxheight = this.sf_boxheight(box.lst.length)\n\t\t\tbox.holder.attr('transform', 'translate(0,' + box.yoff + ')')\n\t\t\tbox.hline\n\t\t\t\t.attr('y1', boxheight / 2)\n\t\t\t\t.attr('y2', boxheight / 2)\n\t\t\t\t.attr('x1', Math.max(0, this.x_scale(box.percentile[9])))\n\t\t\t\t.attr('x2', Math.max(0, this.x_scale(box.percentile[91])))\n\t\t\tbox.label\n\t\t\t\t.attr('x', this.width + this.width2 - this.width2_ - 3)\n\t\t\t\t.attr('y', boxheight / 2)\n\t\t\t\t.attr('font-size', labelfontsize)\n\t\t\tbox.label2\n\t\t\t\t.attr('x', this.width + this.width2 - this.width2_ + 3)\n\t\t\t\t.attr('y', boxheight / 2)\n\t\t\t\t.attr('font-size', labelfontsize)\n\t\t\tbox.connline\n\t\t\t\t.attr('y1', boxheight / 2)\n\t\t\t\t.attr('y2', boxheight / 2)\n\t\t\t\t.attr('x1', Math.max(0, this.x_scale(box.percentile[91])))\n\t\t\t\t.attr('x2', Math.max(0, this.width + this.width2 - box.labelwidth - this.width2_ - 3))\n\t\t\tbox.box\n\t\t\t\t.attr('height', boxheight)\n\t\t\t\t.attr('x', Math.max(0, this.x_scale(box.percentile[25])))\n\t\t\t\t.attr('width', Math.max(0, this.x_scale(box.percentile[75])) - Math.max(0, this.x_scale(box.percentile[25])))\n\t\t\tbox.vlines\n\t\t\t\t.attr('x1', d => Math.max(0, this.x_scale(d)))\n\t\t\t\t.attr('x2', d => Math.max(0, this.x_scale(d)))\n\t\t\t\t.attr('y1', 0)\n\t\t\t\t.attr('y2', boxheight)\n\t\t}\n\t\tthis.svg\n\t\t\t.attr('width', this.width + this.width2 + this.dotsize)\n\t\t\t.attr('height', this.height + this.axish + this.axispad + this.dotsize / 2)\n\t}\n\n\tgetsampleinfo(d, lst) {\n\t\t// FIXME old style official ds adopt cohort.annotation\n\n\t\tif (this.p.cohort) {\n\t\t\tif (this.p.cohort.annotation && this.p.cohort.key4annotation) {\n\t\t\t\tconst k4a = d[this.p.cohort.key4annotation]\n\t\t\t\tif (k4a) {\n\t\t\t\t\tlst.push({ k: this.p.cohort.key4annotation, v: k4a })\n\n\t\t\t\t\tconst sanno = this.p.cohort.annotation[k4a]\n\n\t\t\t\t\tif (sanno) {\n\t\t\t\t\t\tlet numberofkeys = 0\n\t\t\t\t\t\t// limit # of keys, do not show crazily long table\n\t\t\t\t\t\tfor (const k in sanno) numberofkeys++\n\n\t\t\t\t\t\tif (this.p.cohort.levels) {\n\t\t\t\t\t\t\tfor (const l of this.p.cohort.levels) {\n\t\t\t\t\t\t\t\tlst.push({\n\t\t\t\t\t\t\t\t\tk: l.label || l.k,\n\t\t\t\t\t\t\t\t\tv: sanno[l.k] == undefined ? '' : sanno[l.k]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn numberofkeys > this.p.cohort.levels.length\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet shownum = 0\n\t\t\t\t\t\tfor (const k in sanno) {\n\t\t\t\t\t\t\tlst.push({ k: k, v: sanno[k] })\n\t\t\t\t\t\t\tif (++shownum == numberofkeys) return true\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (this.p.cohort.levels) {\n\t\t\t\t// old official ds\n\t\t\t\tfor (const l of this.p.cohort.levels) {\n\t\t\t\t\tconst v = d[l.k]\n\t\t\t\t\tif (!v) continue\n\t\t\t\t\tlst.push({\n\t\t\t\t\t\tk: l.label || l.k,\n\t\t\t\t\t\tv:\n\t\t\t\t\t\t\td[l.k] +\n\t\t\t\t\t\t\t(l.full ? (d[l.full] ? ' <span style=\"font-size:.8em;color:#858585\">' + d[l.full] + '</span>' : '') : '')\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\t// none above works\n\t\tfor (const k in d) {\n\t\t\tif (k == 'circle' || k == '_y') continue\n\t\t\tif (typeof k == 'string') {\n\t\t\t\tconst v = d[k]\n\t\t\t\tif (v) {\n\t\t\t\t\tlst.push({ k: k, v: v })\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\trowheight_reset() {\n\t\tif (this.data) {\n\t\t\tthis.rowheight = this.height / this.data.length\n\t\t\treturn\n\t\t}\n\t\tthis.rowheight = 0\n\t}\n\n\tdot_appendtext(set, lookup) {\n\t\tconst used = []\n\t\tset\n\t\t\t.append('text')\n\t\t\t.text(d => lookup.get(d[this.p.sampletype]))\n\t\t\t.attr('font-family', client.font)\n\t\t\t.attr('font-size', this.dotsize)\n\t\t\t.each(function (d) {\n\t\t\t\td.bb = this.getBBox()\n\t\t\t})\n\t\t\t.each(d => {\n\t\t\t\tconst dotx = this.x_scale(d.value)\n\t\t\t\tconst onleft = dotx - this.dotsize > d.bb.width\n\t\t\t\tlet y1 = d._y - d.bb.height / 2,\n\t\t\t\t\ty2 = y1 + d.bb.height\n\t\t\t\tfor (const u of used) {\n\t\t\t\t\tif (u.onleft == onleft && Math.max(u.y1, y1) < Math.min(u.y2, y2)) {\n\t\t\t\t\t\t// overlap, shift down\n\t\t\t\t\t\ty1 = u.y2\n\t\t\t\t\t\ty2 = y1 + d.bb.height\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdelete d.bb\n\t\t\t\td.mafrect = { y1: y1, y2: y2, onleft: onleft }\n\t\t\t\tused.push(d.mafrect)\n\t\t\t})\n\t\t\t.attr('class', 'sja_svgtext')\n\t\t\t.attr('dominant-baseline', 'central')\n\t\t\t.attr('fill', this.p.hlcolor)\n\t\t\t.attr('text-anchor', d => (d.mafrect.onleft ? 'end' : 'start'))\n\t\t\t.attr('x', d => (d.mafrect.onleft ? -1 : 1) * this.dotsize)\n\t\t\t.attr('y', d => d.mafrect.y1 - d._y + this.dotsize / 2)\n\t\t\t.on('click', (event, d) => {\n\t\t\t\t// cancel highlight\n\t\t\t\td3select(d.circle)\n\t\t\t\t\t.attr('stroke-width', 1)\n\t\t\t\t\t.attr('stroke-opacity', normal_strokeopacity)\n\t\t\t\t\t.attr('stroke', 'black')\n\t\t\t\t\t.attr('r', this.dotsize / 2)\n\t\t\t\td.showtext = false\n\t\t\t\td3select(event.target).remove()\n\t\t\t})\n\t\t\t.attr('font-size', 1)\n\t\t\t.transition()\n\t\t\t.attr('font-size', this.dotsize)\n\t}\n\n\tmay_hl(mlst, hl) {\n\t\tif (!this.data) return\n\t\tconst samples = new Set()\n\t\tlet nohit = true\n\t\tfor (const m of mlst) {\n\t\t\tconst sn = m[this.p.sampletype]\n\t\t\tif (!sn) continue\n\t\t\tsamples.add(sn)\n\t\t\tif (this.sampletype2value[sn]) {\n\t\t\t\tnohit = false\n\t\t\t}\n\t\t}\n\t\tif (nohit) return\n\t\tthis.epdot\n\t\t\t.filter(d => samples.has(d[this.p.sampletype]))\n\t\t\t//.attr('fill-opacity', hl ? .7 : 0)\n\t\t\t.attr('r', hl ? this.dotsize * 0.8 : this.dotsize / 2)\n\t\t\t.attr('stroke', hl ? this.p.hlcolor : 'black')\n\t\t\t.attr('stroke-opacity', hl ? hl_strokeopacity : normal_strokeopacity)\n\n\t\tconst maf = this.p.maf\n\t\tif (!maf) return\n\t\t// show maf text\n\t\tconst lookup = new Map() // key: sample, val: mutation maf v\n\t\tfor (const m of mlst) {\n\t\t\tconst sn = m[this.p.sampletype]\n\t\t\tconst v = this.p.maf.get(m)\n\t\t\tif (!v) continue\n\t\t\tif (typeof v == 'string') {\n\t\t\t\t// fusion\n\t\t\t\t// FIXME better way of distinguishing it\n\t\t\t\tlookup.set(sn, v)\n\t\t\t} else {\n\t\t\t\tlookup.set(\n\t\t\t\t\tsn,\n\t\t\t\t\tv.v2 == 0\n\t\t\t\t\t\t? 'No ' + this.p.maf.label + ': site not covered'\n\t\t\t\t\t\t: this.p.maf.label + ': ' + (v.f * 100).toFixed(0) + '% (' + v.v1 + '/' + v.v2 + ')'\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tconst set = this.epdotg.filter(d => lookup.has(d[this.p.sampletype]) && !d.showtext)\n\t\tif (hl) {\n\t\t\tthis.dot_appendtext(set, lookup)\n\t\t} else {\n\t\t\tset.select('text').remove()\n\t\t}\n\t}\n\t// end of class\n}\n\nfunction showgene(ep, name) {\n\t// not in use\n\t// see if its dataset has custom expression db\n\tconst ds = ep.genome.datasets[ep.dsname]\n\tif (ds.dbexpression) {\n\t\t// has custom expression db\n\t\tconst par = {\n\t\t\tdb: ds.dbexpression.dbfile,\n\t\t\ttablename: ds.dbexpression.tablename,\n\t\t\tkeyname: ds.dbexpression.keyname,\n\t\t\tkey: name\n\t\t}\n\t\tfetch(\n\t\t\tnew Request(ep.hostURL + '/dbdata', {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(par)\n\t\t\t})\n\t\t)\n\t\t\t.then(data => {\n\t\t\t\treturn data.json()\n\t\t\t})\n\t\t\t.then(data => {\n\t\t\t\tif (data.error) throw { message: data.error }\n\t\t\t\tif (ds.dbexpression.tidy) {\n\t\t\t\t\tds.dbexpression.tidy(data.rows)\n\t\t\t\t}\n\t\t\t\tconst p = ep.pane.pane.node().getBoundingClientRect()\n\t\t\t\tnew EPaint({\n\t\t\t\t\thostURL: ep.hostURL,\n\t\t\t\t\tdata: data.rows,\n\t\t\t\t\texpp: ep.p,\n\t\t\t\t\tpresize: {\n\t\t\t\t\t\tx: p.left + 30,\n\t\t\t\t\t\ty: p.top + 50,\n\t\t\t\t\t\twidth: ep.width,\n\t\t\t\t\t\theight: ep.height\n\t\t\t\t\t},\n\t\t\t\t\tgenome: ep.genome,\n\t\t\t\t\tdsname: ep.dsname,\n\t\t\t\t\tgenename: name,\n\t\t\t\t\tsamplecart: ep.samplecart\n\t\t\t\t})\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\twindow.alert(err.message)\n\t\t\t\tif (err.stack) console.log(err.stack)\n\t\t\t})\n\t\treturn\n\t}\n\n\t// server-configed, no db info exposed\n\tfetch(\n\t\tnew Request(ep.hostURL + '/dsdata', {\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify({ genome: ep.genome.name, dsname: ep.dsname, expressiononly: 1, genename: name })\n\t\t})\n\t)\n\t\t.then(data => {\n\t\t\treturn data.json()\n\t\t})\n\t\t.then(data => {\n\t\t\tif (data.error) throw { message: data.error }\n\t\t\tconst p = ep.pane.pane.node().getBoundingClientRect()\n\t\t\tnew EPaint({\n\t\t\t\thostURL: ep.hostURL,\n\t\t\t\tdata: data.data[0].lst,\n\t\t\t\texpp: ep.p,\n\t\t\t\tpresize: {\n\t\t\t\t\tx: p.left + 30,\n\t\t\t\t\ty: p.top + 50,\n\t\t\t\t\twidth: ep.width,\n\t\t\t\t\theight: ep.height\n\t\t\t\t},\n\t\t\t\tgenome: ep.genome,\n\t\t\t\tdsname: ep.dsname,\n\t\t\t\tgenename: name,\n\t\t\t\tsamplecart: ep.samplecart\n\t\t\t})\n\t\t})\n\t\t.catch(err => {\n\t\t\twindow.alert(err.message)\n\t\t\tif (err.stack) console.log(err.stack)\n\t\t})\n}\n\nfunction samplefulldetail(d, cohort, x, y) {\n\tconst pane = client.newpane({ x: x, y: y })\n\tconst k4a = d[cohort.key4annotation]\n\tpane.header.text(k4a)\n\tconst lst = []\n\tconst anno = cohort.annotation[k4a]\n\tfor (const k in anno) {\n\t\tlst.push({ k: k, v: anno[k] })\n\t}\n\tclient.make_table_2col(pane.body, lst)\n}\n\nfunction makeButtons(ep) {\n\tconst butrow = ep.pane.body.append('div').style('margin-bottom', '10px')\n\n\tbutrow\n\t\t.append('button')\n\t\t.text('Cohort')\n\t\t.on('click', () => {\n\t\t\tif (ep.treediv.style('display') == 'none') {\n\t\t\t\tclient.appear(ep.treediv)\n\t\t\t} else {\n\t\t\t\tclient.disappear(ep.treediv)\n\t\t\t}\n\t\t})\n\n\tbutrow\n\t\t.append('button')\n\t\t.text('Log10')\n\t\t.on('click', () => {\n\t\t\tconst dur = 700\n\t\t\tep.uselog = !ep.uselog\n\t\t\tep.makescale_ep()\n\t\t\tep.epdotg\n\t\t\t\t.transition()\n\t\t\t\t.duration(dur)\n\t\t\t\t.attr(\n\t\t\t\t\t'transform',\n\t\t\t\t\t(d, i) => 'translate(' + (ep.uselog && d.value == 0 ? 0 : Math.max(0, ep.x_scale(d.value))) + ',' + d._y + ')'\n\t\t\t\t)\n\t\t\tfor (const bp of ep.boxplots) {\n\t\t\t\tbp.vlines\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(dur)\n\t\t\t\t\t.attr('x1', v => Math.max(0, ep.x_scale(v)))\n\t\t\t\t\t.attr('x2', v => Math.max(0, ep.x_scale(v)))\n\t\t\t\tbp.box\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(dur)\n\t\t\t\t\t.attr('x', Math.max(0, ep.x_scale(bp.percentile[25])))\n\t\t\t\t\t.attr('width', Math.max(0, ep.x_scale(bp.percentile[75])) - Math.max(0, ep.x_scale(bp.percentile[25])))\n\t\t\t\tbp.hline\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(dur)\n\t\t\t\t\t.attr('x1', Math.max(0, ep.x_scale(bp.percentile[9])))\n\t\t\t\t\t.attr('x2', Math.max(0, ep.x_scale(bp.percentile[91])))\n\t\t\t\tbp.connline\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(dur)\n\t\t\t\t\t.attr('x1', Math.max(0, ep.x_scale(bp.percentile[91])))\n\t\t\t\t\t.attr('x2', ep.width + ep.width2 - bp.labelwidth - ep.width2_ - 3)\n\t\t\t}\n\t\t\tif (ep.grab.x) {\n\t\t\t\tlet x1 = ep.x_scale(ep.grab.min),\n\t\t\t\t\tx2 = ep.x_scale(ep.grab.max)\n\t\t\t\tep.grab.x = x1\n\t\t\t\tep.grab.width = x2 - x1\n\t\t\t\tep.grab.shade\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(dur)\n\t\t\t\t\t.attr('transform', 'translate(' + x1 + ',' + ep.grab.y + ')')\n\t\t\t\tep.grab.shadebox.transition().duration(dur).attr('width', ep.grab.width)\n\t\t\t\tep.grab.shadehandle2.transition().duration(dur).attr('x', ep.grab.width)\n\t\t\t}\n\t\t})\n\n\tbutrow\n\t\t.append('button')\n\t\t.text('SVG')\n\t\t.on('click', () => {\n\t\t\tclient.to_svg(ep.svg.node(), ep.genename + '_expression')\n\t\t})\n\n\tbutrow\n\t\t.append('button')\n\t\t.text('Data')\n\t\t.on('click', () => {\n\t\t\tconst header = [ep.p.sampletype, ep.p.datatype]\n\t\t\tconst attrlst = []\n\t\t\tif (ep.p.attrlst) {\n\t\t\t\tfor (const a of ep.p.attrlst) {\n\t\t\t\t\theader.push(a.k)\n\t\t\t\t\tattrlst.push(a.k)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (ep.p.cohort) {\n\t\t\t\tfor (const a of ep.p.cohort.levels) {\n\t\t\t\t\theader.push(a.k)\n\t\t\t\t\tattrlst.push(a.k)\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst rows = []\n\t\t\tfor (const d of ep.data) {\n\t\t\t\tconst row = [d[ep.p.sampletype], d.value]\n\t\t\t\tfor (const k of attrlst) {\n\t\t\t\t\trow.push(d[k] || '')\n\t\t\t\t}\n\t\t\t\trows.push(row.join('\\t'))\n\t\t\t}\n\t\t\tclient.export_data(ep.genename + ' ' + ep.p.name + ' data', [\n\t\t\t\t{ text: header.join('\\t') + '\\n' + rows.join('\\n') }\n\t\t\t])\n\t\t})\n\n\tbutrow\n\t\t.append('input')\n\t\t.attr('placeholder', 'Sample')\n\t\t.style('width', '60px')\n\t\t.style('margin-left', '5px')\n\t\t.on('keyup', event => {\n\t\t\tconst str = event.target.value\n\t\t\tif (str == '') {\n\t\t\t\tep.epdot\n\t\t\t\t\t.attr('r', ep.dotsize / 2)\n\t\t\t\t\t.attr('stroke', 'black')\n\t\t\t\t\t.attr('stroke-opacity', normal_strokeopacity)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst lstr = str.toLowerCase()\n\t\t\tconst set = new Set()\n\t\t\tfor (const n in ep.sampletype2value) {\n\t\t\t\tif (n.toLowerCase().indexOf(lstr) != -1) {\n\t\t\t\t\tset.add(n)\n\t\t\t\t}\n\t\t\t}\n\t\t\tep.epdot\n\t\t\t\t.filter(i => set.has(i[ep.p.sampletype]))\n\t\t\t\t.attr('r', ep.dotsize)\n\t\t\t\t.attr('stroke', ep.p.hlcolor)\n\t\t\t\t.attr('stroke-opacity', hl_strokeopacity)\n\t\t\tep.epdot\n\t\t\t\t.filter(i => !set.has(i[ep.p.sampletype]))\n\t\t\t\t.attr('r', ep.dotsize / 2)\n\t\t\t\t.attr('stroke', 'black')\n\t\t\t\t.attr('stroke-opacity', normal_strokeopacity)\n\t\t})\n\n\tbutrow\n\t\t.append('input')\n\t\t.attr('placeholder', 'Gene')\n\t\t.style('width', '60px')\n\t\t.style('margin-left', '5px')\n\t\t.on('keyup', event => {\n\t\t\tconst str = event.target.value\n\t\t\tif (event.code == 'Enter') {\n\t\t\t\tshowgene(ep, str)\n\t\t\t\tevent.target.value = ''\n\t\t\t\treturn\n\t\t\t}\n\t\t})\n\n\tif (ep.p.gtexlink) {\n\t\tbutrow\n\t\t\t.append('span')\n\t\t\t.html('&nbsp;<a target=_blank href=https://www.gtexportal.org/home/gene/' + ep.genename + '>GTeX normal</a>')\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": ["d", "a", "b", "event", "y", "event", "event", "d"]
7
- }
@@ -1,298 +0,0 @@
1
- import {
2
- getRunPp
3
- } from "./chunk-X77QVINS.js";
4
- import {
5
- detectOne
6
- } from "./chunk-WA3C3A2M.js";
7
- import {
8
- require_tape
9
- } from "./chunk-PJYCTAMC.js";
10
- import {
11
- runproteinpaint
12
- } from "./chunk-V4ZKHM6D.js";
13
- import "./chunk-MBQIHLGI.js";
14
- import "./chunk-D35GNF3Y.js";
15
- import "./chunk-KGX2OIR4.js";
16
- import "./chunk-PRZWSBMA.js";
17
- import "./chunk-C2TII2FF.js";
18
- import "./chunk-MKAF2BHB.js";
19
- import "./chunk-65DO5IKM.js";
20
- import "./chunk-4FTH4L3A.js";
21
- import "./chunk-AFEFZ74T.js";
22
- import "./chunk-NNDKYTUV.js";
23
- import "./chunk-HJ6L54YS.js";
24
- import "./chunk-HWNQOADC.js";
25
- import "./chunk-CNFTQSNE.js";
26
- import "./chunk-PLFPXOGX.js";
27
- import "./chunk-EEB5VE2A.js";
28
- import "./chunk-3CIL7KH7.js";
29
- import "./chunk-T4XPCSLP.js";
30
- import "./chunk-BIJOXCLN.js";
31
- import "./chunk-W5J3LTYS.js";
32
- import "./chunk-L2WOLNZK.js";
33
- import "./chunk-AMW5LCUB.js";
34
- import "./chunk-ZPWBYHNE.js";
35
- import "./chunk-HBNB5TRH.js";
36
- import "./chunk-PF4DSFDR.js";
37
- import "./chunk-4OLM3KSB.js";
38
- import "./chunk-6XKAOSQE.js";
39
- import "./chunk-TLT4YIG3.js";
40
- import "./chunk-5R63Q5KH.js";
41
- import {
42
- select_default
43
- } from "./chunk-I6Y4O3RR.js";
44
- import "./chunk-Q5RDQNIT.js";
45
- import {
46
- __toESM
47
- } from "./chunk-HS5PO5ZQ.js";
48
-
49
- // plots/test/expclust.gdc.spec.js
50
- var import_tape = __toESM(require_tape(), 1);
51
- (0, import_tape.default)("\n", function(test) {
52
- test.comment("-***- plots/hierCluster.gdc -***-");
53
- test.end();
54
- });
55
- (0, import_tape.default)("TME genes and dictionary variables, survival", function(test) {
56
- test.timeoutAfter(6e4);
57
- runpp({
58
- state: {
59
- nav: { header_mode: "hidden" },
60
- // must set to hidden for gdc, since it lacks termdb method to get cohort size..
61
- plots: [
62
- {
63
- chartType: "hierCluster",
64
- dataType: "geneExpression",
65
- /* not needed, reenable to add other customizations
66
- settings: {
67
- hierCluster: {
68
- termGroupName: 'Gene Expression (CGC genes only)'
69
- }
70
- },
71
- */
72
- terms: TMEgenes,
73
- termgroups: [{ name: "Variables", lst: dictTerms }]
74
- }
75
- ]
76
- },
77
- hierCluster: {
78
- callbacks: {
79
- "postRender.test": runTests
80
- }
81
- }
82
- });
83
- async function runTests(hierCluster) {
84
- hierCluster.on("postRender.test", null);
85
- await testhierClusterrendering(hierCluster);
86
- await testLegendRendering(hierCluster);
87
- await testBtnRendering(hierCluster);
88
- await testZoom(hierCluster);
89
- await testCaseLabelCharLimit(hierCluster);
90
- await testClusteringMethod(hierCluster);
91
- await testRowColumnDendrograms(hierCluster);
92
- await testzScoreCap(hierCluster);
93
- if (test._ok) hierCluster.Inner.app.destroy();
94
- test.end();
95
- }
96
- async function testhierClusterrendering(hierCluster) {
97
- await detectOne({ elem: hierCluster.Inner.dom.seriesesG.node(), selector: "image" });
98
- test.equal(hierCluster.Inner.dom.seriesesG.selectAll("image").size(), 1, `should render 1 <image> element`);
99
- test.equal(
100
- hierCluster.Inner.dom.svg.selectAll(".sjpp-matrix-term-label-g").node().querySelectorAll("text").length,
101
- TMEgenes.length + dictTerms.length,
102
- `should render ${TMEgenes.length + dictTerms.length} <series> elements`
103
- );
104
- test.pass("hierCluster rendered");
105
- }
106
- async function testLegendRendering(hierCluster) {
107
- test.true(hierCluster.Inner.dom.legendG.nodes().length > 0, `should render legend`);
108
- test.true(hierCluster.Inner.dom.legendG.selectAll("rect").size() > 0, `should render legend rects`);
109
- test.true(hierCluster.Inner.dom.legendG.selectAll("text").size() > 0, `should render legend text`);
110
- }
111
- async function testBtnRendering(hierCluster) {
112
- test.equal(hierCluster.Inner.dom.controls.node().querySelectorAll("button").length, 9, `should render buttons`);
113
- }
114
- async function testZoom(hierCluster) {
115
- await hierCluster.Inner.app.dispatch({
116
- type: "plot_edit",
117
- id: hierCluster.Inner.id,
118
- config: {
119
- settings: {
120
- hierCluster: {
121
- zoomLevel: 10
122
- },
123
- //note zoom works via matrix settings, not hierCluster
124
- matrix: {
125
- zoomLevel: 10
126
- }
127
- }
128
- }
129
- });
130
- test.equal(
131
- hierCluster.Inner.config.settings.hierCluster.zoomLevel,
132
- 10,
133
- `config.settings.hiercluster.zoomlevel does not allow zoom in on the UI`
134
- );
135
- test.equal(
136
- hierCluster.Inner.config.settings.matrix.zoomLevel,
137
- 10,
138
- `config.settings.matrix.zoomlevel allows zoom in on the UI`
139
- );
140
- }
141
- async function testCaseLabelCharLimit(hierCluster) {
142
- await hierCluster.Inner.app.dispatch({
143
- type: "plot_edit",
144
- id: hierCluster.Inner.id,
145
- config: {
146
- settings: {
147
- matrix: {
148
- collabelmaxchars: 10
149
- }
150
- }
151
- }
152
- });
153
- test.equal(
154
- hierCluster.Inner.config.settings.matrix.collabelmaxchars,
155
- 10,
156
- `should limit case label characters to ${hierCluster.Inner.config.settings.matrix.collabelmaxchars}`
157
- );
158
- }
159
- async function testClusteringMethod(hierCluster) {
160
- await hierCluster.Inner.app.dispatch({
161
- type: "plot_edit",
162
- id: hierCluster.Inner.id,
163
- config: {
164
- settings: {
165
- hierCluster: {
166
- clusterMethod: "complete",
167
- distanceMethod: "euclidean"
168
- }
169
- }
170
- }
171
- });
172
- test.equal(
173
- hierCluster.Inner.config.settings.hierCluster.clusterMethod,
174
- "complete",
175
- `should change clustering method to ${hierCluster.Inner.config.settings.hierCluster.clusterMethod}`
176
- );
177
- test.equal(
178
- hierCluster.Inner.config.settings.hierCluster.distanceMethod,
179
- "euclidean",
180
- `should change clustering method to ${hierCluster.Inner.config.settings.hierCluster.distanceMethod}`
181
- );
182
- }
183
- async function testRowColumnDendrograms(hierCluster) {
184
- await hierCluster.Inner.app.dispatch({
185
- type: "plot_edit",
186
- id: hierCluster.Inner.id,
187
- config: {
188
- settings: {
189
- hierCluster: {
190
- colDendrogramHeight: 100,
191
- rowDendrogramWidth: 200
192
- }
193
- }
194
- }
195
- });
196
- test.equal(
197
- hierCluster.Inner.config.settings.hierCluster.colDendrogramHeight,
198
- 100,
199
- `should change column dendrogram height to ${hierCluster.Inner.config.settings.hierCluster.colDendrogramHeight}`
200
- );
201
- test.equal(
202
- hierCluster.Inner.config.settings.hierCluster.rowDendrogramWidth,
203
- 200,
204
- `should change row dendrogram width to ${hierCluster.Inner.config.settings.hierCluster.rowDendrogramWidth}`
205
- );
206
- }
207
- async function testzScoreCap(hierCluster) {
208
- await hierCluster.Inner.app.dispatch({
209
- type: "plot_edit",
210
- id: hierCluster.Inner.id,
211
- config: {
212
- settings: {
213
- hierCluster: {
214
- zScoreCap: 10
215
- }
216
- }
217
- }
218
- });
219
- test.equal(
220
- hierCluster.Inner.config.settings.hierCluster.zScoreCap,
221
- 10,
222
- `should cap zscore at ${hierCluster.Inner.config.settings.hierCluster.zScoreCap}`
223
- );
224
- }
225
- });
226
- (0, import_tape.default)("gdc laucher with top variably expressed genes, for gliomas", function(test) {
227
- const maxGeneCount = 5;
228
- runproteinpaint({
229
- debug: true,
230
- holder: select_default("body").append("div").node(),
231
- noheader: 1,
232
- launchGdcHierCluster: true,
233
- filter0: {
234
- op: "and",
235
- content: [{ op: "in", content: { field: "cases.disease_type", value: ["Gliomas"] } }]
236
- },
237
- settings: {
238
- hierCluster: {
239
- maxGenes: maxGeneCount
240
- }
241
- },
242
- termgroups: [
243
- {
244
- name: "Variables",
245
- lst: dictTerms
246
- }
247
- ],
248
- opts: {
249
- hierCluster: {
250
- callbacks: {
251
- "postRender.test": runTests
252
- }
253
- }
254
- }
255
- });
256
- async function runTests(hierCluster) {
257
- hierCluster.on("postRender.test", null);
258
- await detectOne({ elem: hierCluster.Inner.dom.seriesesG.node(), selector: "image" });
259
- test.equal(hierCluster.Inner.dom.seriesesG.selectAll("image").size(), 1, `should render 1 <image> element`);
260
- test.equal(
261
- hierCluster.Inner.dom.svg.selectAll(".sjpp-matrix-term-label-g").node().querySelectorAll("text").length,
262
- maxGeneCount + dictTerms.length,
263
- `should render ${maxGeneCount + dictTerms.length} <series> elements`
264
- );
265
- if (test._ok) hierCluster.Inner.app.destroy();
266
- test.end();
267
- }
268
- });
269
- var runpp = getRunPp("mass", {
270
- state: {
271
- dslabel: "GDC",
272
- genome: "hg38"
273
- },
274
- debug: 1
275
- });
276
- var TMEgenes = [
277
- { gene: "KIF11" },
278
- { gene: "BUB1B" },
279
- { gene: "BUB1" },
280
- { gene: "CDK1" },
281
- { gene: "CDC20" },
282
- { gene: "AURKB" },
283
- { gene: "TPX2" },
284
- { gene: "CCNB2" },
285
- { gene: "CCNA2" },
286
- { gene: "TOP2A" },
287
- { gene: "AURKA" },
288
- { gene: "KIF20A" },
289
- { gene: "KIF2C" },
290
- { gene: "CDCA8" }
291
- ];
292
- var dictTerms = [
293
- { id: "case.disease_type" },
294
- { id: "case.primary_site" },
295
- { id: "case.demographic.gender" },
296
- { id: "Overall Survival" }
297
- ];
298
- //# sourceMappingURL=expclust.gdc.spec-S5FE4MMD.js.map