@sjcrh/proteinpaint-client 2.74.2 → 2.76.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 (307) hide show
  1. package/dist/{2dmaf-b2d78c57.js → 2dmaf-74b99126.js} +1 -1
  2. package/dist/AppHeader-cecb39c2.js +1 -0
  3. package/dist/{ColorScale-9c76aef3.js → ColorScale-21cab8d2.js} +1 -1
  4. package/dist/DEanalysis-95bad59a.js +1 -0
  5. package/dist/Disco-a6e921a0.js +1 -0
  6. package/dist/Disco.UI-9ad999ed.js +1 -0
  7. package/dist/{DragControls-586f72db.js → DragControls-e3b6a937.js} +1 -1
  8. package/dist/{DziViewer-6311327c.js → DziViewer-354a790d.js} +1 -1
  9. package/dist/FilterRxComp-701a1480.js +1 -0
  10. package/dist/{FilterStateless-046081c2.js → FilterStateless-54c0b763.js} +1 -1
  11. package/dist/{HicApp-40e44cba.js → HicApp-d5a946bf.js} +1 -1
  12. package/dist/{OrbitControls-0cda1772.js → OrbitControls-694652cd.js} +1 -1
  13. package/dist/WSIViewer-dc7f8eb0.js +1 -0
  14. package/dist/adSandbox-f438e388.js +1 -0
  15. package/dist/app-3320ab6f.js +1 -0
  16. package/dist/app-649f8357.js +1 -0
  17. package/dist/app-b369b169.js +1 -0
  18. package/dist/app.js +1 -1
  19. package/dist/bam-431875ef.js +1 -0
  20. package/dist/barchart-8277ed43.js +1 -0
  21. package/dist/barchart.events-da29c90d.js +1 -0
  22. package/dist/{bars.renderer-5f7a4174.js → bars.renderer-dcfdd59b.js} +1 -1
  23. package/dist/block-6aedd569.js +1 -0
  24. package/dist/block.lazyload-87b12654.js +1 -0
  25. package/dist/block.legend-d3f61ef7.js +1 -0
  26. package/dist/{block.mds-effc078d.js → block.mds-3ad17dfa.js} +1 -1
  27. package/dist/{block.mds.cnv-ec861a26.js → block.mds.cnv-857ba868.js} +1 -1
  28. package/dist/{block.mds.expressionrank-a2ad7c80.js → block.mds.expressionrank-7e3b208c.js} +1 -1
  29. package/dist/{block.mds.expressionstat-31dc5595.js → block.mds.expressionstat-f2d31c86.js} +1 -1
  30. package/dist/{block.mds.geneboxplot-3ca857ce.js → block.mds.geneboxplot-f0fbaf12.js} +1 -1
  31. package/dist/{block.mds.junction-debba938.js → block.mds.junction-7f87f48f.js} +1 -1
  32. package/dist/{block.mds.svcnv-8dc5abdf.js → block.mds.svcnv-ac035c12.js} +1 -1
  33. package/dist/{block.mds.svcnv.share-81e62600.js → block.mds.svcnv.share-886d9479.js} +1 -1
  34. package/dist/block.mds2-7852c1ee.js +1 -0
  35. package/dist/{block.svg-9121e8e7.js → block.svg-9b916fa6.js} +1 -1
  36. package/dist/{block.tk.aicheck-c1b478e9.js → block.tk.aicheck-6770e333.js} +1 -1
  37. package/dist/{block.tk.ase-0f6ded48.js → block.tk.ase-ee807e59.js} +1 -1
  38. package/dist/{block.tk.bam-7cd06aee.js → block.tk.bam-00fba6e8.js} +1 -1
  39. package/dist/{block.tk.bedgraphdot-3ef8b94e.js → block.tk.bedgraphdot-7fda78e9.js} +1 -1
  40. package/dist/{block.tk.bigwig.ui-d1248810.js → block.tk.bigwig.ui-cc1a42f3.js} +1 -1
  41. package/dist/{block.tk.hicstraw-ee731e55.js → block.tk.hicstraw-526470e3.js} +1 -1
  42. package/dist/{block.tk.junction-4d8cab4d.js → block.tk.junction-b43a4cda.js} +1 -1
  43. package/dist/{block.tk.junction.textmatrixui-a6430b27.js → block.tk.junction.textmatrixui-a60ed78a.js} +1 -1
  44. package/dist/{block.tk.ld-8429a18b.js → block.tk.ld-d15bde41.js} +1 -1
  45. package/dist/{block.tk.menu-3f31f958.js → block.tk.menu-3aeb93c6.js} +1 -1
  46. package/dist/{block.tk.pgv-07e46705.js → block.tk.pgv-9af2bd64.js} +1 -1
  47. package/dist/boxplot-e17a17b7.js +1 -0
  48. package/dist/brainImaging-bf2ceee9.js +1 -0
  49. package/dist/{brush-c386fe3d.js → brush-aa175142.js} +1 -1
  50. package/dist/categorical-a52014a1.js +1 -0
  51. package/dist/condition-c646e357.js +1 -0
  52. package/dist/controls-287e6efa.js +1 -0
  53. package/dist/{controls.btns-1cb2bfab.js → controls.btns-79b805dd.js} +1 -1
  54. package/dist/controls.config-28d6d6a8.js +1 -0
  55. package/dist/cuminc-9e275854.js +1 -0
  56. package/dist/{customdata.inputui-cbd712ea.js → customdata.inputui-dc49d94b.js} +1 -1
  57. package/dist/dataDownload-3a3d4f33.js +1 -0
  58. package/dist/databrowser.ui-d8d3f8fd.js +1 -0
  59. package/dist/{density-19266ebf.js → density-a82a8b1c.js} +1 -1
  60. package/dist/dictionary-c5a19d90.js +1 -0
  61. package/dist/{drag-0b968811.js → drag-7b30ba17.js} +1 -1
  62. package/dist/{e2pca-b8752945.js → e2pca-82765817.js} +1 -1
  63. package/dist/{ep-a86b185a.js → ep-d017ec2f.js} +1 -1
  64. package/dist/facet-a9b44ef3.js +1 -0
  65. package/dist/{fusion.parse-244b2b97.js → fusion.parse-d40d0b9d.js} +1 -1
  66. package/dist/geneExpClustering-34c3f518.js +1 -0
  67. package/dist/geneExpression-0d1b7244.js +1 -0
  68. package/dist/{geneExpression-e0430f2e.js → geneExpression-589f485b.js} +1 -1
  69. package/dist/{geneExpression-387205bf.js → geneExpression-7d14983f.js} +1 -1
  70. package/dist/geneORA-903a780f.js +1 -0
  71. package/dist/{geneVariant-7de021b6.js → geneVariant-89601b34.js} +1 -1
  72. package/dist/geneVariant-92c4e870.js +1 -0
  73. package/dist/{genefusion.ui-a331de19.js → genefusion.ui-7e22e811.js} +1 -1
  74. package/dist/{genesearch-ea59f5d4.js → genesearch-a4e19f0d.js} +1 -1
  75. package/dist/geneset-108a39d2.js +1 -0
  76. package/dist/genomeBrowser-12f86a36.js +1 -0
  77. package/dist/genomeBrowser.controls-d5067811.js +1 -0
  78. package/dist/{groupsetting-20ffef77.js → groupsetting-b4416a96.js} +1 -1
  79. package/dist/gsea-543dab25.js +1 -0
  80. package/dist/hierCluster-26e14090.js +1 -0
  81. package/dist/hierCluster.config-98e82dff.js +1 -0
  82. package/dist/{hierCluster.interactivity-9b433033.js → hierCluster.interactivity-e56f6542.js} +1 -1
  83. package/dist/hierCluster.renderers-74a64cf5.js +1 -0
  84. package/dist/{html.legend-abb5452e.js → html.legend-a3f4ebfe.js} +1 -1
  85. package/dist/imagePlot-b9eae4ae.js +1 -0
  86. package/dist/{lasso-55cf4057.js → lasso-f767f634.js} +1 -1
  87. package/dist/launch.adhoc-abca6af3.js +1 -0
  88. package/dist/leftlabel.sample-24c2388d.js +1 -0
  89. package/dist/legacyDataset-e0e201ab.js +1 -0
  90. package/dist/{log-cf45fcf2.js → log-99af3443.js} +1 -1
  91. package/dist/{lollipop-c5b6e615.js → lollipop-806f8fa4.js} +1 -1
  92. package/dist/{maf-7535f1f9.js → maf-b06579e4.js} +1 -1
  93. package/dist/{maftimeline-1292ab62.js → maftimeline-4840a380.js} +1 -1
  94. package/dist/matrix-00bb50ff.js +1 -0
  95. package/dist/matrix.cells-914dd0c6.js +1 -0
  96. package/dist/{matrix.cluster-168bc96b.js → matrix.cluster-783ceab0.js} +1 -1
  97. package/dist/matrix.config-6ce74dfe.js +1 -0
  98. package/dist/matrix.controls-7b2a6f95.js +1 -0
  99. package/dist/{matrix.data-b1d0febe.js → matrix.data-dac4f1b7.js} +1 -1
  100. package/dist/{matrix.dom-00defa30.js → matrix.dom-4e10bbe9.js} +1 -1
  101. package/dist/matrix.groups-b9fca14a.js +1 -0
  102. package/dist/matrix.interactivity-84169b43.js +1 -0
  103. package/dist/{matrix.layout-c2345231.js → matrix.layout-dd5a44fd.js} +1 -1
  104. package/dist/matrix.legend-ac6d45e6.js +1 -0
  105. package/dist/matrix.renderers-78010275.js +1 -0
  106. package/dist/matrix.serieses-9b4fd744.js +1 -0
  107. package/dist/matrix.sort-014d798d.js +1 -0
  108. package/dist/{matrix.sorterUi-a741ba2e.js → matrix.sorterUi-9bf7e6f9.js} +1 -1
  109. package/dist/{mavb-92136d17.js → mavb-c6be46fc.js} +1 -1
  110. package/dist/{mds.fimo-c03115b4.js → mds.fimo-bff6a1ed.js} +1 -1
  111. package/dist/mds.samplescatterplot-9a02b9fb.js +1 -0
  112. package/dist/{mds.survivalplot-366db380.js → mds.survivalplot-055549f4.js} +1 -1
  113. package/dist/{metaboliteIntensity-ddb6e480.js → metaboliteIntensity-fac92f8b.js} +1 -1
  114. package/dist/niceNumLabels-238aabce.js +1 -0
  115. package/dist/{nodrag-2c046d31.js → nodrag-16ad4b03.js} +1 -1
  116. package/dist/{notify-44ebc0df.js → notify-224cccbd.js} +1 -1
  117. package/dist/{numeric-918d4686.js → numeric-b0b17185.js} +1 -1
  118. package/dist/numeric.binary-1f9e93f2.js +1 -0
  119. package/dist/numeric.continuous-ebcd0567.js +1 -0
  120. package/dist/numeric.discrete-7b97044a.js +1 -0
  121. package/dist/numeric.spline-1be88f3d.js +1 -0
  122. package/dist/numeric.toggle-7fa2a770.js +1 -0
  123. package/dist/oncomatrix-351af2a0.js +1 -0
  124. package/dist/{parseData-e66308cd.js → parseData-21fe9822.js} +1 -1
  125. package/dist/partjson.esm-b3f1fc21.js +1 -0
  126. package/dist/{plot.2dvaf-73dbfbd1.js → plot.2dvaf-18a35e4b.js} +1 -1
  127. package/dist/plot.app-30c4b8e5.js +1 -0
  128. package/dist/plot.barplot-7c4865a2.js +1 -0
  129. package/dist/{plot.boxplot-641da058.js → plot.boxplot-fe3046c6.js} +1 -1
  130. package/dist/plot.brainImaging-2ceb6023.js +1 -0
  131. package/dist/plot.disco-6011f87f.js +1 -0
  132. package/dist/{plot.dzi-41ea26e5.js → plot.dzi-6728a7c8.js} +1 -1
  133. package/dist/plot.ssgq-5581dc56.js +1 -0
  134. package/dist/{plot.vaf2cov-80e58833.js → plot.vaf2cov-b2284c64.js} +1 -1
  135. package/dist/{plot.wsi-51cc48ef.js → plot.wsi-9a9d4034.js} +1 -1
  136. package/dist/profileBarchart-0476f1f8.js +1 -0
  137. package/dist/profileHome-32eb9b50.js +1 -0
  138. package/dist/profilePlot-c7e099e8.js +1 -0
  139. package/dist/profilePolar-6b981e63.js +1 -0
  140. package/dist/profileRadar-bca1cc03.js +1 -0
  141. package/dist/profileRadarFacility-bbb1ecd8.js +1 -0
  142. package/dist/profileSummary-b114204f.js +1 -0
  143. package/dist/recover-49e09de0.js +1 -0
  144. package/dist/regression.inputs-a761f40d.js +1 -0
  145. package/dist/regression.inputs.values.table-5929d25a.js +1 -0
  146. package/dist/regression.results-69bc42d0.js +1 -0
  147. package/dist/{renderPvalueTable-895a72c2.js → renderPvalueTable-dc5d15f2.js} +1 -1
  148. package/dist/sampleScatter-2d0ed680.js +1 -0
  149. package/dist/{sampleScatter.rendererThree-5e686004.js → sampleScatter.rendererThree-0b12ac61.js} +2 -2
  150. package/dist/sampleView-484ab133.js +1 -0
  151. package/dist/samplelst-689796e6.js +1 -0
  152. package/dist/{samplematrix-2a1d7d82.js → samplematrix-2b137a05.js} +1 -1
  153. package/dist/scatter-205e013f.js +1 -0
  154. package/dist/{select2Terms-b4fffc50.js → select2Terms-b21e184a.js} +1 -1
  155. package/dist/{selectGenomeWithTklst-acf7e568.js → selectGenomeWithTklst-466995b4.js} +1 -1
  156. package/dist/singleCellCellType-5db730bb.js +1 -0
  157. package/dist/{singleCellGeneExpression-6de17162.js → singleCellGeneExpression-7147a2d0.js} +1 -1
  158. package/dist/singleCellPlot-73b2738f.js +1 -0
  159. package/dist/{singlecell-f76c856a.js → singlecell-24409b72.js} +1 -1
  160. package/dist/singlecell-bca774ed.js +1 -0
  161. package/dist/{snp-9590a1b4.js → snp-37d06246.js} +1 -1
  162. package/dist/snp-a8388ce4.js +1 -0
  163. package/dist/snplocus-7a1ea8c9.js +1 -0
  164. package/dist/{snplst-007a1926.js → snplst-6865d7c7.js} +1 -1
  165. package/dist/{spliceevent.a53ss.diagram-63dfef69.js → spliceevent.a53ss.diagram-e2eab72b.js} +1 -1
  166. package/dist/{spliceevent.exonskip.diagram-76fa9af8.js → spliceevent.exonskip.diagram-4d5df3a1.js} +1 -1
  167. package/dist/spliceevent.exonskip.getdefault-a94aad6e.js +1 -0
  168. package/dist/{spliceevent.noeventdiagram-64a099e0.js → spliceevent.noeventdiagram-ea97b0fb.js} +1 -1
  169. package/dist/{spliceevent.phrase-770c8cac.js → spliceevent.phrase-c5832470.js} +1 -1
  170. package/dist/{stattable-f1189f0f.js → stattable-7c5ecc2f.js} +1 -1
  171. package/dist/{style.gdc-89cfdb0f.js → style.gdc-131f3c77.js} +1 -1
  172. package/dist/summary-5ec455d3.js +1 -0
  173. package/dist/{sunburst-d5379952.js → sunburst-533902a7.js} +1 -1
  174. package/dist/survival-92250664.js +1 -0
  175. package/dist/survival-e16e068f.js +1 -0
  176. package/dist/{svg.download-86850940.js → svg.download-35926549.js} +1 -1
  177. package/dist/{svg.legend-a94b0697.js → svg.legend-8d490df2.js} +1 -1
  178. package/dist/{svgraph-c57b9ae3.js → svgraph-6fac8cbc.js} +1 -1
  179. package/dist/{svmr-cf6f1b27.js → svmr-d07ff695.js} +1 -1
  180. package/dist/table-29d5a973.js +1 -0
  181. package/dist/table-ad744310.js +1 -0
  182. package/dist/termInfo-bf99a37e.js +1 -0
  183. package/dist/{termdb.bins-9faa5170.js → termdb.bins-8b656cc3.js} +1 -1
  184. package/dist/termsetting-33ea66f1.js +1 -0
  185. package/dist/tk-071a7550.js +1 -0
  186. package/dist/{toggleButtons-002aeda1.js → toggleButtons-dbdbad01.js} +1 -1
  187. package/dist/tp.ui-9c2e9fc5.js +1 -0
  188. package/dist/tslib.es6-c3c2d88f.js +1 -0
  189. package/dist/tvs.density-f6128793.js +1 -0
  190. package/dist/{tvs.geneVariant-3a65ad94.js → tvs.geneVariant-ca4bdbb1.js} +1 -1
  191. package/dist/tvs.numeric-0260a825.js +1 -0
  192. package/dist/{tvs.samplelst-1eeb586b.js → tvs.samplelst-cb71b3bf.js} +1 -1
  193. package/dist/{uiUtils-1336bad7.js → uiUtils-f1bd2bcc.js} +1 -1
  194. package/dist/{variantBrowser-f0c812c1.js → variantBrowser-7c540224.js} +1 -1
  195. package/dist/{vcf-c4a23924.js → vcf-5cc55588.js} +1 -1
  196. package/dist/violin-2ba509eb.js +1 -0
  197. package/dist/violin.interactivity-4da6d7a9.js +1 -0
  198. package/dist/{violin.renderer-dafd89fa.js → violin.renderer-ce024265.js} +1 -1
  199. package/dist/{violinRenderer-8215f40d.js → violinRenderer-f7c96a60.js} +1 -1
  200. package/dist/{viridis-ffd14c4d.js → viridis-01ab20c5.js} +1 -1
  201. package/dist/{y-dd197cc9.js → y-67939f83.js} +1 -1
  202. package/dist/{zoom-9c63e74c.js → zoom-25dce8b9.js} +1 -1
  203. package/package.json +6 -4
  204. package/dist/AppHeader-a2a7e518.js +0 -1
  205. package/dist/DEanalysis-a6b50e49.js +0 -1
  206. package/dist/Disco-1c71b7dd.js +0 -1
  207. package/dist/Disco.UI-4c16ee50.js +0 -1
  208. package/dist/FilterRxComp-242f4615.js +0 -1
  209. package/dist/WSIViewer-d90032d7.js +0 -1
  210. package/dist/adSandbox-3528c372.js +0 -1
  211. package/dist/app-07dee349.js +0 -1
  212. package/dist/app-a8c4854a.js +0 -1
  213. package/dist/app-ade9c62a.js +0 -1
  214. package/dist/bam-92483a98.js +0 -1
  215. package/dist/barchart-3e69d094.js +0 -1
  216. package/dist/barchart.events-9b11d97e.js +0 -1
  217. package/dist/block-dcb130fb.js +0 -1
  218. package/dist/block.lazyload-9f031cac.js +0 -1
  219. package/dist/block.legend-b2987cd9.js +0 -1
  220. package/dist/block.mds2-de6e0986.js +0 -1
  221. package/dist/boxplot-1178fffc.js +0 -1
  222. package/dist/brainImaging-98ed7aa2.js +0 -1
  223. package/dist/categorical-26528ce8.js +0 -1
  224. package/dist/condition-b0d74550.js +0 -1
  225. package/dist/controls-0bacec22.js +0 -1
  226. package/dist/controls.config-0ccc9d79.js +0 -1
  227. package/dist/controls.divide-a9fe9466.js +0 -1
  228. package/dist/controls.overlay-fe20d41d.js +0 -1
  229. package/dist/controls.term1-faa2efcf.js +0 -1
  230. package/dist/cuminc-7e2cac2d.js +0 -1
  231. package/dist/dataDownload-ade8d840.js +0 -1
  232. package/dist/databrowser.ui-716f0519.js +0 -1
  233. package/dist/dictionary-3f83ce63.js +0 -1
  234. package/dist/facet-6850cfed.js +0 -1
  235. package/dist/geneExpClustering-7fd3c87e.js +0 -1
  236. package/dist/geneExpression-6462537d.js +0 -1
  237. package/dist/geneORA-7eb818c4.js +0 -1
  238. package/dist/geneVariant-b58e924a.js +0 -1
  239. package/dist/geneset-9f69ad3f.js +0 -1
  240. package/dist/genomeBrowser-1b2b83f7.js +0 -1
  241. package/dist/genomeBrowser.controls-cd8ddeb1.js +0 -1
  242. package/dist/gsea-36376589.js +0 -1
  243. package/dist/hierCluster-f1e30c19.js +0 -1
  244. package/dist/hierCluster.config-da3510b1.js +0 -1
  245. package/dist/hierCluster.renderers-610d8860.js +0 -1
  246. package/dist/imagePlot-7089bdff.js +0 -1
  247. package/dist/launch.adhoc-d229fd55.js +0 -1
  248. package/dist/leftlabel.sample-a919168c.js +0 -1
  249. package/dist/legacyDataset-1cbcb67d.js +0 -1
  250. package/dist/matrix-0614794d.js +0 -1
  251. package/dist/matrix.cells-819d4991.js +0 -1
  252. package/dist/matrix.config-c54ca273.js +0 -1
  253. package/dist/matrix.controls-5eca7822.js +0 -1
  254. package/dist/matrix.groups-4660dd70.js +0 -1
  255. package/dist/matrix.interactivity-23d83183.js +0 -1
  256. package/dist/matrix.legend-2e647224.js +0 -1
  257. package/dist/matrix.renderers-43445f4f.js +0 -1
  258. package/dist/matrix.serieses-972fbe5d.js +0 -1
  259. package/dist/matrix.sort-80d9b788.js +0 -1
  260. package/dist/mds.samplescatterplot-1623e6d0.js +0 -1
  261. package/dist/niceNumLabels-6cfc1508.js +0 -1
  262. package/dist/numeric.binary-80467e8b.js +0 -1
  263. package/dist/numeric.continuous-69a62a15.js +0 -1
  264. package/dist/numeric.discrete-86181905.js +0 -1
  265. package/dist/numeric.spline-1b07fd13.js +0 -1
  266. package/dist/numeric.toggle-37c4bee8.js +0 -1
  267. package/dist/oncomatrix-475271da.js +0 -1
  268. package/dist/plot.app-aa916e0e.js +0 -1
  269. package/dist/plot.barplot-8b440a2b.js +0 -1
  270. package/dist/plot.brainImaging-2f796b0c.js +0 -1
  271. package/dist/plot.disco-43e18d2f.js +0 -1
  272. package/dist/plot.ssgq-e49cb70b.js +0 -1
  273. package/dist/profileBarchart-91463ab6.js +0 -1
  274. package/dist/profileHome-d37a6821.js +0 -1
  275. package/dist/profilePlot-9ca577cb.js +0 -1
  276. package/dist/profilePolar-19c7da5b.js +0 -1
  277. package/dist/profileRadar-8bf094e3.js +0 -1
  278. package/dist/profileRadarFacility-f9fd8971.js +0 -1
  279. package/dist/profileSummary-93999c14.js +0 -1
  280. package/dist/recover-36ada47f.js +0 -1
  281. package/dist/regression.inputs-cb57ece6.js +0 -1
  282. package/dist/regression.inputs.values.table-908bb37a.js +0 -1
  283. package/dist/regression.results-c186a8dc.js +0 -1
  284. package/dist/roundValue-b0d0517c.js +0 -1
  285. package/dist/sampleScatter-9d5b3630.js +0 -1
  286. package/dist/sampleView-2d895023.js +0 -1
  287. package/dist/samplelst-9f8343ff.js +0 -1
  288. package/dist/scatter-b4992f64.js +0 -1
  289. package/dist/singleCellCellType-84a0c2cf.js +0 -1
  290. package/dist/singleCellPlot-2f2b8619.js +0 -1
  291. package/dist/singlecell-90567dde.js +0 -1
  292. package/dist/snp-79ec95ba.js +0 -1
  293. package/dist/snplocus-cb629be1.js +0 -1
  294. package/dist/spliceevent.exonskip.getdefault-31d2950c.js +0 -1
  295. package/dist/summary-b77bef3c.js +0 -1
  296. package/dist/survival-61ab375a.js +0 -1
  297. package/dist/survival-80a0ade9.js +0 -1
  298. package/dist/table-79e3e776.js +0 -1
  299. package/dist/table-eee91e14.js +0 -1
  300. package/dist/termInfo-f851b415.js +0 -1
  301. package/dist/tk-75566002.js +0 -1
  302. package/dist/tp.ui-02911b56.js +0 -1
  303. package/dist/tslib.es6-1f85f553.js +0 -1
  304. package/dist/tvs.density-026fca97.js +0 -1
  305. package/dist/tvs.numeric-3f3d9919.js +0 -1
  306. package/dist/violin-1515c3e6.js +0 -1
  307. package/dist/violin.interactivity-8e2f480d.js +0 -1
@@ -1 +1 @@
1
- import{M as t,p as e,ac as a,U as n,I as s,ag as o,j as l,a7 as r,ah as i,Z as p,a9 as c}from"./app-a8c4854a.js";import{i as d,m as g,a as f,s as u}from"./block.mds.expressionstat-31dc5595.js";import{l as m}from"./log-cf45fcf2.js";import{c as x}from"./axis-747c801e.js";const y="CNV gain";const h="CNV loss";const b="SV";const v="Allele-specific expression";const w="Outlier expression";async function k(r){if(!r.genome)return alert("cannot initiate plot: genome missing");const i=r;i.tip=new t({padding:"0px"});if(i.file||i.url){i.gecfg={}}else{if(!i.dslabel)return alert("dslabel missing");if(!i.querykey)return alert("querykey missing");const t=i.genome.datasets[i.dslabel];if(!t)return alert("invalid dataset label: "+i.dslabel);i.gecfg=t.queries[i.querykey];if(!i.gecfg)return alert("invalid query key: "+i.querykey)}d(i.gecfg);if(r.block&&r.block.debugmode){window.plot=i}i.errdiv=i.holder.append("div").style("margin","10px");const p=i.holder.append("div").style("margin","10px");i.buttonrow=p;E(i);const c=i.holder.append("div").style("margin","10px").style("border","solid 1px #ededed").style("padding","10px").style("display","none");i.table_boxplotstats=i.holder.append("table").style("margin","10px").style("border-spacing","4px").style("border-collapse","separate");p.append("button").text("Log10").on("click",(t=>{i.uselog=!i.uselog;t.target.innerHTML=i.uselog?"Linear":"Log10";i.place()}));if(i.sample){i.sample.shown=true;p.append("button").text(i.sample.name+" toggle").on("click",(()=>{i.sample.shown=!i.sample.shown;i.sample.line.attr("stroke-opacity",i.sample.shown?1:0);i.sample.svgtext.attr("fill-opacity",i.sample.shown?1:0)}))}if(i.svcnv){p.append("button").text("SV/CNV options").on("click",(()=>{if(c.style("display")=="none")e(c);else a(c)}));i.svcnv.useloss=true;i.svcnv.usegain=true;i.cnvconfig={};i.svconfig={};{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",true).attr("id",e).on("change",(t=>{i.svcnv.usegain=t.target.checked;i.cnvconfig.div.style("display",i.svcnv.usegain||i.svcnv.useloss?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with copy number gain over "+i.gene).style("color",i.color.cnvgain)}{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",true).attr("id",e).on("change",(t=>{i.svcnv.useloss=t.target.checked;i.cnvconfig.div.style("display",i.svcnv.usegain||i.svcnv.useloss?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with copy number loss over "+i.gene).style("color",i.color.cnvloss)}{const t=c.append("div");i.cnvconfig.div=t;const e=t.append("div").style("display","inline-block").style("margin","5px 10px 10px 30px").style("border","solid 1px #ededed").style("padding","10px");{const t=e.append("div").style("margin-bottom","15px");t.append("span").html("CNV log2(ratio) cutoff&nbsp;");t.append("input").property("value",i.svcnv.valueCutoff||0).attr("type","number").style("width","50px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseFloat(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.valueCutoff){i.svcnv.valueCutoff=0;_(i)}return}if(i.svcnv.valueCutoff){if(i.svcnv.valueCutoff==e);else{i.svcnv.valueCutoff=e;_(i)}}else{i.svcnv.valueCutoff=e;_(i)}}));t.append("div").style("font-size",".7em").style("color","#858585").html("CNV with absolute log2(ratio) lower than cutoff will not be considered. Set to 0 to cancel.")}{const t=e.append("div");t.append("span").html("CNV segment size limit&nbsp;");t.append("input").property("value",i.svcnv.bplengthUpperLimit||0).attr("type","number").style("width","80px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseInt(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.bplengthUpperLimit){i.svcnv.bplengthUpperLimit=0;_(i)}return}if(i.svcnv.bplengthUpperLimit){if(i.svcnv.bplengthUpperLimit==e);else{i.svcnv.bplengthUpperLimit=e;_(i)}}else{i.svcnv.bplengthUpperLimit=e;_(i)}}));t.append("span").html("&nbsp;bp");t.append("div").style("font-size",".7em").style("color","#858585").html("CNV segment longer than cutoff will not be considered. Set to 0 to cancel.")}}{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",false).attr("id",e).on("change",(t=>{i.svcnv.usesv=t.target.checked;i.svconfig.div.style("display",i.svcnv.usesv?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with structural variation over "+i.gene).style("color",i.color.sv)}{const t=c.append("div").style("display","none");i.svconfig.div=t;const e=t.append("div").style("display","inline-block").style("margin","5px 10px 10px 30px").style("border","solid 1px #ededed").style("padding","10px");{const t=e.append("div");t.append("span").html("Include SV from flanking region of length:&nbsp;");t.append("input").property("value",0).attr("type","number").style("width","80px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseInt(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.svflank){i.svcnv.svflank=0;_(i)}return}if(i.svcnv.svflank){if(i.svcnv.svflank==e);else{i.svcnv.svflank=e;_(i)}}else{i.svcnv.svflank=e;_(i)}}));t.append("span").html("&nbsp;bp");t.append("div").style("font-size",".7em").style("color","#858585").html("Set to 0 to cancel.")}}}i.buttonholder_boxplot=p.append("span");i.buttonholder_sampleexpdata=p.append("span");p.append("button").text("SVG").on("click",(()=>{n(i.svg.node(),"Expression")}));i.svg=i.holder.append("svg");const g=i.svg.append("g");i.g0=i.svg.append("g");const f=50;const u=10;const y=500;const h=16;const b=10;const v=2;const w=30;const k=14;const z=2;i.place=()=>{i.axislabel.attr("x",y/2);let t=0;let e=0;const a=(i.uselog?m():s()).domain([i.data.min==0?.001:i.data.min,i.data.max]).range([0,y]);const n=t=>{if(i.uselog){if(t==0)return 0}return a(t)};o({axis:g.transition().call(x().scale(a)),showline:1});let l=b;if(i.data.lst){t=20;e=20;for(const t of i.data.lst){t.circle.transition().attr("cx",n(t.value)).attr("cy",l).attr("r",h/2);l+=z}}else{for(const a of i.data.groups){a.g.attr("transform","translate(0,"+l+")");const s=h*(a.boxplots.length>1?.8:1);let o=0;for(const t of a.boxplots){if(t.label){t.label.attr("font-size",s).attr("x",y+5).attr("y",o+s/2).each((function(){e=Math.max(e,this.getBBox().width)}))}if(t.hline){const e=n(t.w1);const a=n(t.w2);const l=n(t.p25);const r=n(t.p50);const i=n(t.p75);t.hline.transition().attr("x1",e).attr("x2",a).attr("y1",o+s/2).attr("y2",o+s/2);t.linew1.transition().attr("x1",e).attr("x2",e).attr("y1",o).attr("y2",o+s);t.linew2.transition().attr("x1",a).attr("x2",a).attr("y1",o).attr("y2",o+s);t.box.transition().attr("x",l).attr("y",o).attr("width",i-l).attr("height",s);t.linep50.transition().attr("x1",r).attr("x2",r).attr("y1",o).attr("y2",o+s)}for(const e of t.out){e.circle.transition().attr("cx",n(e.value)).attr("cy",o+s/2).attr("r",s/3)}o+=s+v}const r=(s+v)*a.boxplots.length-v;a.label.attr("x",-u).attr("y",r/2).attr("font-size",k).each((function(){t=Math.max(t,this.getBBox().width)}));if(a.bg)a.bg.attr("y",-b/2).attr("width",y).attr("height",r+b);l+=r+b}}i.g0.attr("transform","translate("+(t+u)+","+f+")");g.attr("transform","translate("+(t+u)+","+f+")");if(i.sample){i.sample.g.transition().attr("transform","translate("+n(i.sample.value)+","+l+")");i.sample.line.attr("y1",-l)}i.svg.attr("width",t+u+y+w+e).attr("height",f+l+30)};try{await _(i)}catch(t){l(i.errdiv,"Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}async function _(t){const e={genome:t.genome.name,gene:t.gene,chr:t.chr,start:t.start,stop:t.stop,svcnv:t.svcnv,index_boxplotgroupers:t.index_boxplotgroupers,sampleset:t.sampleset};if(t.dslabel){e.dslabel=t.dslabel;e.querykey=t.querykey}else{e.iscustom=1;e.file=t.file;e.url=t.url;e.indexURL=t.indexURL}t.g0.append("text").text("Loading ...").attr("font-size",20).attr("text-anchor","center").attr("dominant-baseline","central").attr("x",t.svg.attr("width")/2).attr("y",t.svg.attr("height")/2);const a=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(e)});if(a.error)throw a.error;t.g0.selectAll("*").remove();t.axislabel=t.g0.append("text").attr("font-size",14).attr("font-family",i).attr("text-anchor","middle").attr("y",-25).text(t.gene+" "+t.gecfg.datatype);t.data=a;const n="green";if(a.lst){L(t);for(const e of a.lst){e.circle=t.g0.append("circle").attr("fill","white").attr("fill-opacity",0).attr("stroke",n).attr("stroke-opacity",.8).on("mouseover",(a=>{t.tip.clear().d.append("div").style("margin","10px").html(e.sample+"<br>"+e.value);t.tip.show(a.clientX,a.clientY)})).on("mouseout",(()=>t.tip.hide()));if(t.clicksample){e.circle.on("click",(()=>{t.clicksample(e,null,t)}))}}}else{z(t);S(t);for(const[e,s]of a.groups.entries()){s.g=t.g0.append("g");if(e%2==0){s.bg=s.g.append("rect").attr("fill","#f5f5f5")}s.label=s.g.append("text").attr("font-family",i).attr("text-anchor","end").attr("dominant-baseline","central").attr("class","sja_clbtext").text(s.name).on("click",(e=>{M(Math.max(100,e.clientX-100),Math.max(100,e.clientY-100),t,s)}));if(s.attributes){s.label.on("mouseover",(e=>{t.tip.clear().show(e.clientX,e.clientY);const a=t.tip.d.append("div").style("margin","10px");for(const t of s.attributes){a.append("div").html(t.kvalue+(t.fullvalue?' <span style="opacity:.5;font-size:.8em;">'+t.fullvalue+"</span>":""))}})).on("mouseout",(()=>{t.tip.hide()}))}for(const e of s.boxplots){let a;if(e.iscnvgain){a=t.color.cnvgain;e.label=s.g.append("text").text("CNV gain ("+e.samplecount+")")}else if(e.iscnvloss){a=t.color.cnvloss;e.label=s.g.append("text").text("CNV loss ("+e.samplecount+")")}else if(e.issv){a="black";e.label=s.g.append("text").text("SV ("+e.samplecount+")")}else{a=n}if(e.label){e.label.attr("fill",a).attr("font-family",i).attr("dominant-baseline","central")}if(e.w1!=undefined){e.hline=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.linew1=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.linew2=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.box=s.g.append("rect").attr("fill","white").attr("stroke",a).attr("shape-rendering","crispEdges");e.linep50=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges")}for(const n of e.out){n.circle=s.g.append("circle").attr("stroke",a).attr("fill","white").attr("fill-opacity",0).on("mouseover",(e=>{t.tip.clear().d.append("div").style("margin","10px").html(n.sample+"<br>"+n.value);t.tip.show(e.clientX,e.clientY)})).on("mouseout",(()=>{t.tip.hide()}));if(t.clicksample){n.circle.on("click",(()=>{t.clicksample(n,s,t)}))}}}}}if(t.sample){t.sample.g=t.g0.append("g");t.sample.svgtext=t.sample.g.append("text").text(t.sample.name).attr("font-family",i).attr("font-size",12).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","blue");t.sample.line=t.sample.g.append("line").attr("shape-rendering","crispEdges").attr("stroke","blue")}t.place()}function z(t){t.buttonholder_boxplot.selectAll("*").remove();t.buttonholder_boxplot.append("button").text("Boxplots").on("click",(()=>{if(t.table_boxplotstats.style("display")=="block"){a(t.table_boxplotstats);return}t.table_boxplotstats.selectAll("*").remove();const n=t.table_boxplotstats.append("tr");n.append("td").text("Group").style("font-size",".8em").style("opacity",.5);n.append("td").text("1st quartile").style("font-size",".8em").style("opacity",.5);n.append("td").text("Median").style("font-size",".8em").style("opacity",.5);n.append("td").text("3rd quartile").style("font-size",".8em").style("opacity",.5);for(const[e,a]of t.data.groups.entries()){const n=t.table_boxplotstats.append("tr").style("background",e%2?"":"#f1f1f1");n.append("td").text(a.name);const s=a.boxplots?a.boxplots[0]:null;n.append("td").text(s?s.p25:"");n.append("td").text(s?s.p50:"");n.append("td").text(s?s.p75:"")}e(t.table_boxplotstats)}))}function L(t){t.buttonrow.append("button").text(t.gecfg.datatype).on("click",(()=>{const e=p({x:100,y:100});e.header.text(t.gene+" "+t.gecfg.datatype);const a=e.body.append("table").style("border-spacing","4px").style("border-collapse","separate");const n=a.append("tr");n.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);n.append("td").text(t.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const e of t.data.lst){const t=a.append("tr");t.append("td").text(e.sample);t.append("td").text(e.value)}}))}function S(t){t.buttonholder_sampleexpdata.selectAll("*").remove();t.buttonholder_sampleexpdata.append("button").text(t.gecfg.datatype).on("click",(async()=>{const e=p({x:100,y:100});e.header.text(t.gene+" "+t.gecfg.datatype);const a=e.body.append("div").style("margin","30px").text("Loading...");const n={genome:t.genome.name,gene:t.gene,chr:t.chr,start:t.start,stop:t.stop,getalllst:1};if(t.dslabel){n.dslabel=t.dslabel;n.querykey=t.querykey}else{n.iscustom=1;n.file=t.file;n.url=t.url;n.indexURL=t.indexURL}try{const s=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(n)});if(s.error)throw s.error;a.remove();const o=e.body.append("table").style("border-spacing","4px").style("border-collapse","separate");const l=o.append("tr");l.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);l.append("td").text(t.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const t of s.lst){const e=o.append("tr");e.append("td").text(t.sample);e.append("td").text(t.value)}}catch(t){a.text("Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}))}function M(t,e,a,n){const l=p({x:t,y:e});l.header.text(a.gene+" "+a.gecfg.datatype+" in "+n.name);const r={_plot:a,holder:l.body,uselog:a.uselog};if(n.attributes){r.getgroup=n.attributes}else{r.getgroup=1;r.getgroup_unannotated=1}r.errdiv=r.holder.append("div").style("margin","10px");const c=r.holder.append("div").style("margin","10px");r.holder.append("div").style("margin","10px").style("border","solid 1px #ededed").style("padding","10px").style("display","none");c.append("button").text("Log10").on("click",(t=>{r.uselog=!r.uselog;t.target.innerHTML=r.uselog?"Linear":"Log10";r.place()}));c.append("button").text("Data").on("click",(()=>{const t=p({x:200,y:200});t.header.text(l.header.node().innerHTML);const e=t.body.append("table").style("border-spacing","2px").style("border-collapse","separate");const s=e.append("tr");s.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);s.append("td").text(a.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const[t,s]of r.data.lst.entries()){const t=e.append("tr");const o=t.append("td").text(s.sample);if(a.clicksample){o.attr("class","sja_clbtext").on("click",(()=>{a.clicksample(s,n,a)}))}t.append("td").text(s.value)}}));r.svg=r.holder.append("svg");r.g0=r.svg.append("g");const d=r.svg.append("g");const u=400;const k=6;const _=6;const z=14;const L=10;const S=5;const M=2;r.place=()=>{for(const t of r.statuscolumns){t.width=20;for(const e of r.data.lst){if(!e.status2cell)continue;const a=e.status2cell.get(t.name);if(!a)continue;if(a.label){a.label.attr("font-size",k*2-2).each((function(){t.width=Math.max(t.width,this.getBBox().width+2)}))}}}let t=0;for(const e of r.data.lst){if(e.samplelabel){e.samplelabel.attr("font-size",k*2-1).attr("x",-S).attr("y",k).each((function(){t=Math.max(t,this.getBBox().width)}))}}let e=0;let a=0;for(const t of r.statuscolumns){if(!t.g){t.g=r.g0.append("g");t.namelabel=t.g.append("text").attr("font-family",i).attr("dominant-baseline","central").attr("transform","rotate(-90)").text(t.name)}t.g.attr("transform","translate("+(a+t.width/2)+",0)");t.namelabel.attr("font-size",Math.min(15,t.width)).each((function(){e=Math.max(e,this.getBBox().width)}));a+=t.width+S}a+=k;const n=Math.max(e,_+z+20);r.g0.attr("transform","translate("+(t+S)+","+n+")");r.axislabel.attr("x",a+u/2);d.attr("transform","translate("+(t+S+a)+","+n+")");const l=(r.uselog?m():s()).domain([r.data.min==0?.001:r.data.min,r.data.max]).range([0,u]);const p=t=>{if(r.uselog){if(t==0)return 0}return l(t)};o({axis:d.transition().call(x().scale(l).tickSize(_)),showline:1});let c=L;for(const[t,e]of r.data.lst.entries()){e.rowg.attr("transform","translate(0,"+c+")");if(e.rowbg){e.rowbg.attr("width",a+u).attr("height",k*2)}e.circle.transition().attr("r",k).attr("cx",a+p(e.value)).attr("cy",k);if(e.samplelabel){if(t>0&&!r.data.lst[t-1].samplelabel){c+=k*2-M;e.rowg.attr("transform","translate(0,"+c+")")}if(e.status2cell){let t=0;for(const a of r.statuscolumns){const n=e.status2cell.get(a.name);if(n){n.g.attr("transform","translate("+(t+a.width/2)+","+k+")");n.rect.attr("x",-a.width/2).attr("y",-k).attr("width",a.width).attr("height",k*2)}t+=a.width+S}}c+=k*2}else{c+=M}}r.svg.attr("width",t+S+a+u+k).attr("height",n+L+c+k*2)};r.makegraph=()=>{const t=r._plot;r.axislabel=r.g0.append("text").attr("font-size",14).attr("font-family",i).attr("text-anchor","middle").attr("y",-25).text(t.gene+" "+t.gecfg.datatype);for(const e of r.data.lst){g(e,t.gecfg)}let e=false,a=false,s=false,o=false,l=false;for(const t of r.data.lst){if(t.gain)e=true;if(t.loss)a=true;if(t.sv)s=true;if(t.estat.ase_monoallelic||t.estat.ase_uncertain||t.estat.ase_biallelic)o=true;if(t.estat.outlier||t.estat.outlier_asehigh)l=true}r.statuscolumns=[];if(e){r.statuscolumns.push({name:y})}if(a){r.statuscolumns.push({name:h})}if(s){r.statuscolumns.push({name:b,width:20})}if(o){r.statuscolumns.push({name:v,width:20})}if(l){r.statuscolumns.push({name:w,width:20})}for(const e of r.data.lst){e.rowg=r.g0.append("g");if(e.gain||e.loss||e.sv||e.estat.ase_monoallelic||e.estat.ase_biallelic||e.estat.ase_uncertain){e.rowbg=e.rowg.append("rect").attr("class","sja_bgbox")}e.circle=e.rowg.append("circle").attr("fill","white").attr("fill-opacity",0).attr("stroke","#858585").on("mouseover",(a=>{N(e,t.tip.clear().d,r);t.tip.show(a.clientX,a.clientY)})).on("mouseout",(()=>{t.tip.hide()}));if(t.clicksample){e.circle.on("click",(()=>{t.clicksample(e,n,t)}))}const a=new Map;if(e.gain){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.cnvgain);a.set(y,n)}if(e.loss){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.cnvloss);a.set(h,n)}if(e.sv){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.sv);a.set(b,n)}if(e.estat.ase_monoallelic||e.estat.ase_biallelic||e.estat.ase_uncertain){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",f(e,t.gecfg)),n.label=n.g.append("text").text(e.estat.ase_monoallelic?"Mono":e.estat.ase_biallelic?"Bi":"?").attr("font-family",i).attr("dominant-baseline","central").attr("text-anchor","middle").attr("fill","white");a.set(v,n)}if(e.estat.outlier){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.gecfg.outlier.color_outlier);a.set(w,n)}else if(e.estat.outlier_asehigh){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.gecfg.outlier.color_outlier_asehigh);a.set(w,n)}if(a.size){e.status2cell=a;e.samplelabel=e.rowg.append("text").attr("font-family",i).attr("text-anchor","end").attr("dominant-baseline","central").text(e.sample)}}r.place()};C(r)}async function C(t){const e=t._plot;const a={genome:e.genome.name,gene:e.gene,chr:e.chr,start:e.start,stop:e.stop,getgroup:t.getgroup,getgroup_unannotated:t.getgroup_unannotated,svcnv:e.svcnv,sampleset:e.sampleset};if(e.dslabel){a.dslabel=e.dslabel;a.querykey=e.querykey}else{a.iscustom=1;a.file=e.file;a.url=e.url;a.indexURL=e.indexURL}t.g0.append("text").text("Loading ...").attr("font-size",20).attr("text-anchor","center").attr("dominant-baseline","central").attr("x",t.svg.attr("width")/2).attr("y",t.svg.attr("height")/2);try{const e=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(a)});if(e.error)throw e.error;t.g0.selectAll("*").remove();t.data=e;t.makegraph()}catch(e){l(t.errdiv,"Error: "+(e.message||e));if(e.stack)console.log(e.stack)}}function N(t,e,a){const n=[{k:"sample",v:t.sample},{k:a._plot.gecfg.datatype,v:t.value}];if(t.gain||t.loss||t.sv){const e=[];if(t.gain){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.cnvgain+'">Copy number gain</span>')}if(t.loss){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.cnvloss+'">Copy number loss</span>')}if(t.sv){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.sv+'">SV</span>')}n.push({k:"Overlap",v:e.join(" ")})}const s=c(e,n);u(t,a._plot.gecfg,s)}function E(t){if(!t.boxplotgroupers)return;const e=t.buttonrow.append("select").on("change",(e=>{t.index_boxplotgroupers=e.target.selectedIndex;_(t)}));for(const[a,n]of t.boxplotgroupers.entries()){e.append("option").text(n)}}export{k as init};
1
+ import{M as t,p as e,ac as a,U as n,I as s,ag as o,j as l,a7 as r,ah as i,Z as p,a9 as c}from"./app-b369b169.js";import{i as d,m as g,a as f,s as u}from"./block.mds.expressionstat-f2d31c86.js";import{l as m}from"./log-99af3443.js";import{c as x}from"./axis-747c801e.js";const y="CNV gain";const h="CNV loss";const b="SV";const v="Allele-specific expression";const w="Outlier expression";async function k(r){if(!r.genome)return alert("cannot initiate plot: genome missing");const i=r;i.tip=new t({padding:"0px"});if(i.file||i.url){i.gecfg={}}else{if(!i.dslabel)return alert("dslabel missing");if(!i.querykey)return alert("querykey missing");const t=i.genome.datasets[i.dslabel];if(!t)return alert("invalid dataset label: "+i.dslabel);i.gecfg=t.queries[i.querykey];if(!i.gecfg)return alert("invalid query key: "+i.querykey)}d(i.gecfg);if(r.block&&r.block.debugmode){window.plot=i}i.errdiv=i.holder.append("div").style("margin","10px");const p=i.holder.append("div").style("margin","10px");i.buttonrow=p;E(i);const c=i.holder.append("div").style("margin","10px").style("border","solid 1px #ededed").style("padding","10px").style("display","none");i.table_boxplotstats=i.holder.append("table").style("margin","10px").style("border-spacing","4px").style("border-collapse","separate");p.append("button").text("Log10").on("click",(t=>{i.uselog=!i.uselog;t.target.innerHTML=i.uselog?"Linear":"Log10";i.place()}));if(i.sample){i.sample.shown=true;p.append("button").text(i.sample.name+" toggle").on("click",(()=>{i.sample.shown=!i.sample.shown;i.sample.line.attr("stroke-opacity",i.sample.shown?1:0);i.sample.svgtext.attr("fill-opacity",i.sample.shown?1:0)}))}if(i.svcnv){p.append("button").text("SV/CNV options").on("click",(()=>{if(c.style("display")=="none")e(c);else a(c)}));i.svcnv.useloss=true;i.svcnv.usegain=true;i.cnvconfig={};i.svconfig={};{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",true).attr("id",e).on("change",(t=>{i.svcnv.usegain=t.target.checked;i.cnvconfig.div.style("display",i.svcnv.usegain||i.svcnv.useloss?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with copy number gain over "+i.gene).style("color",i.color.cnvgain)}{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",true).attr("id",e).on("change",(t=>{i.svcnv.useloss=t.target.checked;i.cnvconfig.div.style("display",i.svcnv.usegain||i.svcnv.useloss?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with copy number loss over "+i.gene).style("color",i.color.cnvloss)}{const t=c.append("div");i.cnvconfig.div=t;const e=t.append("div").style("display","inline-block").style("margin","5px 10px 10px 30px").style("border","solid 1px #ededed").style("padding","10px");{const t=e.append("div").style("margin-bottom","15px");t.append("span").html("CNV log2(ratio) cutoff&nbsp;");t.append("input").property("value",i.svcnv.valueCutoff||0).attr("type","number").style("width","50px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseFloat(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.valueCutoff){i.svcnv.valueCutoff=0;_(i)}return}if(i.svcnv.valueCutoff){if(i.svcnv.valueCutoff==e);else{i.svcnv.valueCutoff=e;_(i)}}else{i.svcnv.valueCutoff=e;_(i)}}));t.append("div").style("font-size",".7em").style("color","#858585").html("CNV with absolute log2(ratio) lower than cutoff will not be considered. Set to 0 to cancel.")}{const t=e.append("div");t.append("span").html("CNV segment size limit&nbsp;");t.append("input").property("value",i.svcnv.bplengthUpperLimit||0).attr("type","number").style("width","80px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseInt(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.bplengthUpperLimit){i.svcnv.bplengthUpperLimit=0;_(i)}return}if(i.svcnv.bplengthUpperLimit){if(i.svcnv.bplengthUpperLimit==e);else{i.svcnv.bplengthUpperLimit=e;_(i)}}else{i.svcnv.bplengthUpperLimit=e;_(i)}}));t.append("span").html("&nbsp;bp");t.append("div").style("font-size",".7em").style("color","#858585").html("CNV segment longer than cutoff will not be considered. Set to 0 to cancel.")}}{const t=c.append("div");const e=Math.random().toString();t.append("input").attr("type","checkbox").property("checked",false).attr("id",e).on("change",(t=>{i.svcnv.usesv=t.target.checked;i.svconfig.div.style("display",i.svcnv.usesv?"block":"none");_(i)}));t.append("label").attr("for",e).attr("class","sja_clbtext").html("&nbsp;Add boxplot for samples with structural variation over "+i.gene).style("color",i.color.sv)}{const t=c.append("div").style("display","none");i.svconfig.div=t;const e=t.append("div").style("display","inline-block").style("margin","5px 10px 10px 30px").style("border","solid 1px #ededed").style("padding","10px");{const t=e.append("div");t.append("span").html("Include SV from flanking region of length:&nbsp;");t.append("input").property("value",0).attr("type","number").style("width","80px").on("keyup",(t=>{if(t.code!="Enter"&&t.code!="NumpadEnter")return;let e=Number.parseInt(t.target.value);if(!e||e<0){e=0}if(e==0){if(i.svcnv.svflank){i.svcnv.svflank=0;_(i)}return}if(i.svcnv.svflank){if(i.svcnv.svflank==e);else{i.svcnv.svflank=e;_(i)}}else{i.svcnv.svflank=e;_(i)}}));t.append("span").html("&nbsp;bp");t.append("div").style("font-size",".7em").style("color","#858585").html("Set to 0 to cancel.")}}}i.buttonholder_boxplot=p.append("span");i.buttonholder_sampleexpdata=p.append("span");p.append("button").text("SVG").on("click",(()=>{n(i.svg.node(),"Expression")}));i.svg=i.holder.append("svg");const g=i.svg.append("g");i.g0=i.svg.append("g");const f=50;const u=10;const y=500;const h=16;const b=10;const v=2;const w=30;const k=14;const z=2;i.place=()=>{i.axislabel.attr("x",y/2);let t=0;let e=0;const a=(i.uselog?m():s()).domain([i.data.min==0?.001:i.data.min,i.data.max]).range([0,y]);const n=t=>{if(i.uselog){if(t==0)return 0}return a(t)};o({axis:g.transition().call(x().scale(a)),showline:1});let l=b;if(i.data.lst){t=20;e=20;for(const t of i.data.lst){t.circle.transition().attr("cx",n(t.value)).attr("cy",l).attr("r",h/2);l+=z}}else{for(const a of i.data.groups){a.g.attr("transform","translate(0,"+l+")");const s=h*(a.boxplots.length>1?.8:1);let o=0;for(const t of a.boxplots){if(t.label){t.label.attr("font-size",s).attr("x",y+5).attr("y",o+s/2).each((function(){e=Math.max(e,this.getBBox().width)}))}if(t.hline){const e=n(t.w1);const a=n(t.w2);const l=n(t.p25);const r=n(t.p50);const i=n(t.p75);t.hline.transition().attr("x1",e).attr("x2",a).attr("y1",o+s/2).attr("y2",o+s/2);t.linew1.transition().attr("x1",e).attr("x2",e).attr("y1",o).attr("y2",o+s);t.linew2.transition().attr("x1",a).attr("x2",a).attr("y1",o).attr("y2",o+s);t.box.transition().attr("x",l).attr("y",o).attr("width",i-l).attr("height",s);t.linep50.transition().attr("x1",r).attr("x2",r).attr("y1",o).attr("y2",o+s)}for(const e of t.out){e.circle.transition().attr("cx",n(e.value)).attr("cy",o+s/2).attr("r",s/3)}o+=s+v}const r=(s+v)*a.boxplots.length-v;a.label.attr("x",-u).attr("y",r/2).attr("font-size",k).each((function(){t=Math.max(t,this.getBBox().width)}));if(a.bg)a.bg.attr("y",-b/2).attr("width",y).attr("height",r+b);l+=r+b}}i.g0.attr("transform","translate("+(t+u)+","+f+")");g.attr("transform","translate("+(t+u)+","+f+")");if(i.sample){i.sample.g.transition().attr("transform","translate("+n(i.sample.value)+","+l+")");i.sample.line.attr("y1",-l)}i.svg.attr("width",t+u+y+w+e).attr("height",f+l+30)};try{await _(i)}catch(t){l(i.errdiv,"Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}async function _(t){const e={genome:t.genome.name,gene:t.gene,chr:t.chr,start:t.start,stop:t.stop,svcnv:t.svcnv,index_boxplotgroupers:t.index_boxplotgroupers,sampleset:t.sampleset};if(t.dslabel){e.dslabel=t.dslabel;e.querykey=t.querykey}else{e.iscustom=1;e.file=t.file;e.url=t.url;e.indexURL=t.indexURL}t.g0.append("text").text("Loading ...").attr("font-size",20).attr("text-anchor","center").attr("dominant-baseline","central").attr("x",t.svg.attr("width")/2).attr("y",t.svg.attr("height")/2);const a=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(e)});if(a.error)throw a.error;t.g0.selectAll("*").remove();t.axislabel=t.g0.append("text").attr("font-size",14).attr("font-family",i).attr("text-anchor","middle").attr("y",-25).text(t.gene+" "+t.gecfg.datatype);t.data=a;const n="green";if(a.lst){L(t);for(const e of a.lst){e.circle=t.g0.append("circle").attr("fill","white").attr("fill-opacity",0).attr("stroke",n).attr("stroke-opacity",.8).on("mouseover",(a=>{t.tip.clear().d.append("div").style("margin","10px").html(e.sample+"<br>"+e.value);t.tip.show(a.clientX,a.clientY)})).on("mouseout",(()=>t.tip.hide()));if(t.clicksample){e.circle.on("click",(()=>{t.clicksample(e,null,t)}))}}}else{z(t);S(t);for(const[e,s]of a.groups.entries()){s.g=t.g0.append("g");if(e%2==0){s.bg=s.g.append("rect").attr("fill","#f5f5f5")}s.label=s.g.append("text").attr("font-family",i).attr("text-anchor","end").attr("dominant-baseline","central").attr("class","sja_clbtext").text(s.name).on("click",(e=>{M(Math.max(100,e.clientX-100),Math.max(100,e.clientY-100),t,s)}));if(s.attributes){s.label.on("mouseover",(e=>{t.tip.clear().show(e.clientX,e.clientY);const a=t.tip.d.append("div").style("margin","10px");for(const t of s.attributes){a.append("div").html(t.kvalue+(t.fullvalue?' <span style="opacity:.5;font-size:.8em;">'+t.fullvalue+"</span>":""))}})).on("mouseout",(()=>{t.tip.hide()}))}for(const e of s.boxplots){let a;if(e.iscnvgain){a=t.color.cnvgain;e.label=s.g.append("text").text("CNV gain ("+e.samplecount+")")}else if(e.iscnvloss){a=t.color.cnvloss;e.label=s.g.append("text").text("CNV loss ("+e.samplecount+")")}else if(e.issv){a="black";e.label=s.g.append("text").text("SV ("+e.samplecount+")")}else{a=n}if(e.label){e.label.attr("fill",a).attr("font-family",i).attr("dominant-baseline","central")}if(e.w1!=undefined){e.hline=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.linew1=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.linew2=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges");e.box=s.g.append("rect").attr("fill","white").attr("stroke",a).attr("shape-rendering","crispEdges");e.linep50=s.g.append("line").attr("stroke",a).attr("shape-rendering","crispEdges")}for(const n of e.out){n.circle=s.g.append("circle").attr("stroke",a).attr("fill","white").attr("fill-opacity",0).on("mouseover",(e=>{t.tip.clear().d.append("div").style("margin","10px").html(n.sample+"<br>"+n.value);t.tip.show(e.clientX,e.clientY)})).on("mouseout",(()=>{t.tip.hide()}));if(t.clicksample){n.circle.on("click",(()=>{t.clicksample(n,s,t)}))}}}}}if(t.sample){t.sample.g=t.g0.append("g");t.sample.svgtext=t.sample.g.append("text").text(t.sample.name).attr("font-family",i).attr("font-size",12).attr("text-anchor","middle").attr("dominant-baseline","hanging").attr("fill","blue");t.sample.line=t.sample.g.append("line").attr("shape-rendering","crispEdges").attr("stroke","blue")}t.place()}function z(t){t.buttonholder_boxplot.selectAll("*").remove();t.buttonholder_boxplot.append("button").text("Boxplots").on("click",(()=>{if(t.table_boxplotstats.style("display")=="block"){a(t.table_boxplotstats);return}t.table_boxplotstats.selectAll("*").remove();const n=t.table_boxplotstats.append("tr");n.append("td").text("Group").style("font-size",".8em").style("opacity",.5);n.append("td").text("1st quartile").style("font-size",".8em").style("opacity",.5);n.append("td").text("Median").style("font-size",".8em").style("opacity",.5);n.append("td").text("3rd quartile").style("font-size",".8em").style("opacity",.5);for(const[e,a]of t.data.groups.entries()){const n=t.table_boxplotstats.append("tr").style("background",e%2?"":"#f1f1f1");n.append("td").text(a.name);const s=a.boxplots?a.boxplots[0]:null;n.append("td").text(s?s.p25:"");n.append("td").text(s?s.p50:"");n.append("td").text(s?s.p75:"")}e(t.table_boxplotstats)}))}function L(t){t.buttonrow.append("button").text(t.gecfg.datatype).on("click",(()=>{const e=p({x:100,y:100});e.header.text(t.gene+" "+t.gecfg.datatype);const a=e.body.append("table").style("border-spacing","4px").style("border-collapse","separate");const n=a.append("tr");n.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);n.append("td").text(t.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const e of t.data.lst){const t=a.append("tr");t.append("td").text(e.sample);t.append("td").text(e.value)}}))}function S(t){t.buttonholder_sampleexpdata.selectAll("*").remove();t.buttonholder_sampleexpdata.append("button").text(t.gecfg.datatype).on("click",(async()=>{const e=p({x:100,y:100});e.header.text(t.gene+" "+t.gecfg.datatype);const a=e.body.append("div").style("margin","30px").text("Loading...");const n={genome:t.genome.name,gene:t.gene,chr:t.chr,start:t.start,stop:t.stop,getalllst:1};if(t.dslabel){n.dslabel=t.dslabel;n.querykey=t.querykey}else{n.iscustom=1;n.file=t.file;n.url=t.url;n.indexURL=t.indexURL}try{const s=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(n)});if(s.error)throw s.error;a.remove();const o=e.body.append("table").style("border-spacing","4px").style("border-collapse","separate");const l=o.append("tr");l.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);l.append("td").text(t.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const t of s.lst){const e=o.append("tr");e.append("td").text(t.sample);e.append("td").text(t.value)}}catch(t){a.text("Error: "+(t.message||t));if(t.stack)console.log(t.stack)}}))}function M(t,e,a,n){const l=p({x:t,y:e});l.header.text(a.gene+" "+a.gecfg.datatype+" in "+n.name);const r={_plot:a,holder:l.body,uselog:a.uselog};if(n.attributes){r.getgroup=n.attributes}else{r.getgroup=1;r.getgroup_unannotated=1}r.errdiv=r.holder.append("div").style("margin","10px");const c=r.holder.append("div").style("margin","10px");r.holder.append("div").style("margin","10px").style("border","solid 1px #ededed").style("padding","10px").style("display","none");c.append("button").text("Log10").on("click",(t=>{r.uselog=!r.uselog;t.target.innerHTML=r.uselog?"Linear":"Log10";r.place()}));c.append("button").text("Data").on("click",(()=>{const t=p({x:200,y:200});t.header.text(l.header.node().innerHTML);const e=t.body.append("table").style("border-spacing","2px").style("border-collapse","separate");const s=e.append("tr");s.append("td").text("Sample").style("font-size",".8em").style("opacity",.5);s.append("td").text(a.gecfg.datatype).style("font-size",".8em").style("opacity",.5);for(const[t,s]of r.data.lst.entries()){const t=e.append("tr");const o=t.append("td").text(s.sample);if(a.clicksample){o.attr("class","sja_clbtext").on("click",(()=>{a.clicksample(s,n,a)}))}t.append("td").text(s.value)}}));r.svg=r.holder.append("svg");r.g0=r.svg.append("g");const d=r.svg.append("g");const u=400;const k=6;const _=6;const z=14;const L=10;const S=5;const M=2;r.place=()=>{for(const t of r.statuscolumns){t.width=20;for(const e of r.data.lst){if(!e.status2cell)continue;const a=e.status2cell.get(t.name);if(!a)continue;if(a.label){a.label.attr("font-size",k*2-2).each((function(){t.width=Math.max(t.width,this.getBBox().width+2)}))}}}let t=0;for(const e of r.data.lst){if(e.samplelabel){e.samplelabel.attr("font-size",k*2-1).attr("x",-S).attr("y",k).each((function(){t=Math.max(t,this.getBBox().width)}))}}let e=0;let a=0;for(const t of r.statuscolumns){if(!t.g){t.g=r.g0.append("g");t.namelabel=t.g.append("text").attr("font-family",i).attr("dominant-baseline","central").attr("transform","rotate(-90)").text(t.name)}t.g.attr("transform","translate("+(a+t.width/2)+",0)");t.namelabel.attr("font-size",Math.min(15,t.width)).each((function(){e=Math.max(e,this.getBBox().width)}));a+=t.width+S}a+=k;const n=Math.max(e,_+z+20);r.g0.attr("transform","translate("+(t+S)+","+n+")");r.axislabel.attr("x",a+u/2);d.attr("transform","translate("+(t+S+a)+","+n+")");const l=(r.uselog?m():s()).domain([r.data.min==0?.001:r.data.min,r.data.max]).range([0,u]);const p=t=>{if(r.uselog){if(t==0)return 0}return l(t)};o({axis:d.transition().call(x().scale(l).tickSize(_)),showline:1});let c=L;for(const[t,e]of r.data.lst.entries()){e.rowg.attr("transform","translate(0,"+c+")");if(e.rowbg){e.rowbg.attr("width",a+u).attr("height",k*2)}e.circle.transition().attr("r",k).attr("cx",a+p(e.value)).attr("cy",k);if(e.samplelabel){if(t>0&&!r.data.lst[t-1].samplelabel){c+=k*2-M;e.rowg.attr("transform","translate(0,"+c+")")}if(e.status2cell){let t=0;for(const a of r.statuscolumns){const n=e.status2cell.get(a.name);if(n){n.g.attr("transform","translate("+(t+a.width/2)+","+k+")");n.rect.attr("x",-a.width/2).attr("y",-k).attr("width",a.width).attr("height",k*2)}t+=a.width+S}}c+=k*2}else{c+=M}}r.svg.attr("width",t+S+a+u+k).attr("height",n+L+c+k*2)};r.makegraph=()=>{const t=r._plot;r.axislabel=r.g0.append("text").attr("font-size",14).attr("font-family",i).attr("text-anchor","middle").attr("y",-25).text(t.gene+" "+t.gecfg.datatype);for(const e of r.data.lst){g(e,t.gecfg)}let e=false,a=false,s=false,o=false,l=false;for(const t of r.data.lst){if(t.gain)e=true;if(t.loss)a=true;if(t.sv)s=true;if(t.estat.ase_monoallelic||t.estat.ase_uncertain||t.estat.ase_biallelic)o=true;if(t.estat.outlier||t.estat.outlier_asehigh)l=true}r.statuscolumns=[];if(e){r.statuscolumns.push({name:y})}if(a){r.statuscolumns.push({name:h})}if(s){r.statuscolumns.push({name:b,width:20})}if(o){r.statuscolumns.push({name:v,width:20})}if(l){r.statuscolumns.push({name:w,width:20})}for(const e of r.data.lst){e.rowg=r.g0.append("g");if(e.gain||e.loss||e.sv||e.estat.ase_monoallelic||e.estat.ase_biallelic||e.estat.ase_uncertain){e.rowbg=e.rowg.append("rect").attr("class","sja_bgbox")}e.circle=e.rowg.append("circle").attr("fill","white").attr("fill-opacity",0).attr("stroke","#858585").on("mouseover",(a=>{N(e,t.tip.clear().d,r);t.tip.show(a.clientX,a.clientY)})).on("mouseout",(()=>{t.tip.hide()}));if(t.clicksample){e.circle.on("click",(()=>{t.clicksample(e,n,t)}))}const a=new Map;if(e.gain){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.cnvgain);a.set(y,n)}if(e.loss){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.cnvloss);a.set(h,n)}if(e.sv){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.color.sv);a.set(b,n)}if(e.estat.ase_monoallelic||e.estat.ase_biallelic||e.estat.ase_uncertain){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",f(e,t.gecfg)),n.label=n.g.append("text").text(e.estat.ase_monoallelic?"Mono":e.estat.ase_biallelic?"Bi":"?").attr("font-family",i).attr("dominant-baseline","central").attr("text-anchor","middle").attr("fill","white");a.set(v,n)}if(e.estat.outlier){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.gecfg.outlier.color_outlier);a.set(w,n)}else if(e.estat.outlier_asehigh){const n={g:e.rowg.append("g")};n.rect=n.g.append("rect").attr("fill",t.gecfg.outlier.color_outlier_asehigh);a.set(w,n)}if(a.size){e.status2cell=a;e.samplelabel=e.rowg.append("text").attr("font-family",i).attr("text-anchor","end").attr("dominant-baseline","central").text(e.sample)}}r.place()};C(r)}async function C(t){const e=t._plot;const a={genome:e.genome.name,gene:e.gene,chr:e.chr,start:e.start,stop:e.stop,getgroup:t.getgroup,getgroup_unannotated:t.getgroup_unannotated,svcnv:e.svcnv,sampleset:e.sampleset};if(e.dslabel){a.dslabel=e.dslabel;a.querykey=e.querykey}else{a.iscustom=1;a.file=e.file;a.url=e.url;a.indexURL=e.indexURL}t.g0.append("text").text("Loading ...").attr("font-size",20).attr("text-anchor","center").attr("dominant-baseline","central").attr("x",t.svg.attr("width")/2).attr("y",t.svg.attr("height")/2);try{const e=await r("mdsgeneboxplot",{method:"POST",body:JSON.stringify(a)});if(e.error)throw e.error;t.g0.selectAll("*").remove();t.data=e;t.makegraph()}catch(e){l(t.errdiv,"Error: "+(e.message||e));if(e.stack)console.log(e.stack)}}function N(t,e,a){const n=[{k:"sample",v:t.sample},{k:a._plot.gecfg.datatype,v:t.value}];if(t.gain||t.loss||t.sv){const e=[];if(t.gain){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.cnvgain+'">Copy number gain</span>')}if(t.loss){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.cnvloss+'">Copy number loss</span>')}if(t.sv){e.push('<span style="padding:0px 5px;color:white;background:'+a._plot.color.sv+'">SV</span>')}n.push({k:"Overlap",v:e.join(" ")})}const s=c(e,n);u(t,a._plot.gecfg,s)}function E(t){if(!t.boxplotgroupers)return;const e=t.buttonrow.append("select").on("change",(e=>{t.index_boxplotgroupers=e.target.selectedIndex;_(t)}));for(const[a,n]of t.boxplotgroupers.entries()){e.append("option").text(n)}}export{k as init};
@@ -1 +1 @@
1
- import{b as t,a7 as e,I as n,ah as o,d as a,Z as i,ag as s,M as r,ae as l,bV as c,j as d}from"./app-a8c4854a.js";import{l as p}from"./block.legend-b2987cd9.js";import{e as f}from"./spliceevent.exonskip.getdefault-31d2950c.js";import{m as u,s as h,a as g}from"./block.mds-effc078d.js";import{l as m}from"./log-cf45fcf2.js";import{d as x}from"./axis-747c801e.js";import{c as y,j as v,s as b,y as k,x as j}from"./y-dd197cc9.js";import"./vcf-c4a23924.js";import"./partition-db811f6b.js";import"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";import"./legacy-d3-polyfill-bdb2d792.js";function _(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return w(this.cover(e,n),e,n,t)}function w(t,e,n,o){if(isNaN(e)||isNaN(n))return t;var a,i=t._root,s={data:o},r=t._x0,l=t._y0,c=t._x1,d=t._y1,p,f,u,h,g,m,x,y;if(!i)return t._root=s,t;while(i.length){if(g=e>=(p=(r+c)/2))r=p;else c=p;if(m=n>=(f=(l+d)/2))l=f;else d=f;if(a=i,!(i=i[x=m<<1|g]))return a[x]=s,t}u=+t._x.call(null,i.data);h=+t._y.call(null,i.data);if(e===u&&n===h)return s.next=i,a?a[x]=s:t._root=s,t;do{a=a?a[x]=new Array(4):t._root=new Array(4);if(g=e>=(p=(r+c)/2))r=p;else c=p;if(m=n>=(f=(l+d)/2))l=f;else d=f}while((x=m<<1|g)===(y=(h>=f)<<1|u>=p));return a[y]=i,a[x]=s,t}function A(t){var e,n,o=t.length,a,i,s=new Array(o),r=new Array(o),l=Infinity,c=Infinity,d=-Infinity,p=-Infinity;for(n=0;n<o;++n){if(isNaN(a=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e)))continue;s[n]=a;r[n]=i;if(a<l)l=a;if(a>d)d=a;if(i<c)c=i;if(i>p)p=i}if(l>d||c>p)return this;this.cover(l,c).cover(d,p);for(n=0;n<o;++n){w(this,s[n],r[n],t[n])}return this}function C(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,o=this._y0,a=this._x1,i=this._y1;if(isNaN(n)){a=(n=Math.floor(t))+1;i=(o=Math.floor(e))+1}else{var s=a-n||1,r=this._root,l,c;while(n>t||t>=a||o>e||e>=i){c=(e<o)<<1|t<n;l=new Array(4),l[c]=r,r=l,s*=2;switch(c){case 0:a=n+s,i=o+s;break;case 1:n=a-s,i=o+s;break;case 2:a=n+s,o=i-s;break;case 3:n=a-s,o=i-s;break}}if(this._root&&this._root.length)this._root=r}this._x0=n;this._y0=o;this._x1=a;this._y1=i;return this}function F(){var t=[];this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}));return t}function S(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?undefined:[[this._x0,this._y0],[this._x1,this._y1]]}function M(t,e,n,o,a){this.node=t;this.x0=e;this.y0=n;this.x1=o;this.y1=a}function N(t,e,n){var o,a=this._x0,i=this._y0,s,r,l,c,d=this._x1,p=this._y1,f=[],u=this._root,h,g;if(u)f.push(new M(u,a,i,d,p));if(n==null)n=Infinity;else{a=t-n,i=e-n;d=t+n,p=e+n;n*=n}while(h=f.pop()){if(!(u=h.node)||(s=h.x0)>d||(r=h.y0)>p||(l=h.x1)<a||(c=h.y1)<i)continue;if(u.length){var m=(s+l)/2,x=(r+c)/2;f.push(new M(u[3],m,x,l,c),new M(u[2],s,x,m,c),new M(u[1],m,r,l,x),new M(u[0],s,r,m,x));if(g=(e>=x)<<1|t>=m){h=f[f.length-1];f[f.length-1]=f[f.length-1-g];f[f.length-1-g]=h}}else{var y=t-+this._x.call(null,u.data),v=e-+this._y.call(null,u.data),b=y*y+v*v;if(b<n){var k=Math.sqrt(n=b);a=t-k,i=e-k;d=t+k,p=e+k;o=u.data}}}return o}function z(t){if(isNaN(d=+this._x.call(null,t))||isNaN(p=+this._y.call(null,t)))return this;var e,n=this._root,o,a,i,s=this._x0,r=this._y0,l=this._x1,c=this._y1,d,p,f,u,h,g,m,x;if(!n)return this;if(n.length)while(true){if(h=d>=(f=(s+l)/2))s=f;else l=f;if(g=p>=(u=(r+c)/2))r=u;else c=u;if(!(e=n,n=n[m=g<<1|h]))return this;if(!n.length)break;if(e[m+1&3]||e[m+2&3]||e[m+3&3])o=e,x=m}while(n.data!==t)if(!(a=n,n=n.next))return this;if(i=n.next)delete n.next;if(a)return i?a.next=i:delete a.next,this;if(!e)return this._root=i,this;i?e[m]=i:delete e[m];if((n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length){if(o)o[x]=n;else this._root=n}return this}function B(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function I(){return this._root}function E(){var t=0;this.visit((function(e){if(!e.length)do{++t}while(e=e.next)}));return t}function P(t){var e=[],n,o=this._root,a,i,s,r,l;if(o)e.push(new M(o,this._x0,this._y0,this._x1,this._y1));while(n=e.pop()){if(!t(o=n.node,i=n.x0,s=n.y0,r=n.x1,l=n.y1)&&o.length){var c=(i+r)/2,d=(s+l)/2;if(a=o[3])e.push(new M(a,c,d,r,l));if(a=o[2])e.push(new M(a,i,d,c,l));if(a=o[1])e.push(new M(a,c,s,r,d));if(a=o[0])e.push(new M(a,i,s,c,d))}}return this}function L(t){var e=[],n=[],o;if(this._root)e.push(new M(this._root,this._x0,this._y0,this._x1,this._y1));while(o=e.pop()){var a=o.node;if(a.length){var i,s=o.x0,r=o.y0,l=o.x1,c=o.y1,d=(s+l)/2,p=(r+c)/2;if(i=a[0])e.push(new M(i,s,r,d,p));if(i=a[1])e.push(new M(i,d,r,l,p));if(i=a[2])e.push(new M(i,s,p,d,c));if(i=a[3])e.push(new M(i,d,p,l,c))}n.push(o)}while(o=n.pop()){t(o.node,o.x0,o.y0,o.x1,o.y1)}return this}function T(t){return t[0]}function U(t){return arguments.length?(this._x=t,this):this._x}function R(t){return t[1]}function V(t){return arguments.length?(this._y=t,this):this._y}function H(t,e,n){var o=new q(e==null?T:e,n==null?R:n,NaN,NaN,NaN,NaN);return t==null?o:o.addAll(t)}function q(t,e,n,o,a,i){this._x=t;this._y=e;this._x0=n;this._y0=o;this._x1=a;this._y1=i;this._root=undefined}function O(t){var e={data:t.data},n=e;while(t=t.next)n=n.next={data:t.data};return e}var D=H.prototype=q.prototype;D.copy=function(){var t=new q(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,o;if(!e)return t;if(!e.length)return t._root=O(e),t;n=[{source:e,target:t._root=new Array(4)}];while(e=n.pop()){for(var a=0;a<4;++a){if(o=e.source[a]){if(o.length)n.push({source:o,target:e.target[a]=new Array(4)});else e.target[a]=O(o)}}}return t};D.add=_;D.addAll=A;D.cover=C;D.data=F;D.extent=S;D.find=N;D.remove=z;D.removeAll=B;D.root=I;D.size=E;D.visit=P;D.visitAfter=L;D.x=U;D.y=V;function G(t){return t.x+t.vx}function J(t){return t.y+t.vy}function Y(t){var e,n,o,a=1,i=1;if(typeof t!=="function")t=y(t==null?1:+t);function s(){var t,s=e.length,l,c,d,p,f,u;for(var h=0;h<i;++h){l=H(e,G,J).visitAfter(r);for(t=0;t<s;++t){c=e[t];f=n[c.index],u=f*f;d=c.x+c.vx;p=c.y+c.vy;l.visit(g)}}function g(t,e,n,i,s){var r=t.data,l=t.r,h=f+l;if(r){if(r.index>c.index){var g=d-r.x-r.vx,m=p-r.y-r.vy,x=g*g+m*m;if(x<h*h){if(g===0)g=v(o),x+=g*g;if(m===0)m=v(o),x+=m*m;x=(h-(x=Math.sqrt(x)))/x*a;c.vx+=(g*=x)*(h=(l*=l)/(u+l));c.vy+=(m*=x)*h;r.vx-=g*(h=1-h);r.vy-=m*h}}return}return e>d+h||i<d-h||n>p+h||s<p-h}}function r(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e){if(t[e]&&t[e].r>t.r){t.r=t[e].r}}}function l(){if(!e)return;var o,a=e.length,i;n=new Array(a);for(o=0;o<a;++o)i=e[o],n[i.index]=+t(i,o,e)}s.initialize=function(t,n){e=t;o=n;l()};s.iterations=function(t){return arguments.length?(i=+t,s):i};s.strength=function(t){return arguments.length?(a=+t,s):a};s.radius=function(e){return arguments.length?(t=typeof e==="function"?e:y(+e),l(),s):t};return s}const X=12;const $=.5;const Z=.5;const K="#8EA399";const Q="#858585";const W="Unannotated";const tt=5;const et="type";async function nt(n,o,a){if(a){delete o.pannedpx;if(n.subTracks){for(const t of n.subTracks){nt(t,o,true)}}}o.tkcloakon(n);o.block_setheight();if(n.uninitialized){_t(n,o)}if(n.mds.mdsIsUninitiated){const e=await t(`getDataset?genome=${o.genome.name}&dsname=${n.mds.label}`);if(e.error)throw e.error;if(!e.ds)throw"ds missing";Object.assign(n.mds,e.ds);delete n.mds.mdsIsUninitiated}const i={genome:o.genome.name,rglst:o.tkarg_maygm(n),dslabel:n.mds.label,querykey:n.querykey};if(o.subpanels.length==n.subpanels.length){for(const t of o.subpanels){i.rglst.push({chr:t.chr,start:t.start,stop:t.stop})}}ot(i,n);if(n.uninitialized){delete n.uninitialized}let s;try{s=await e("mdsjunction",{method:"POST",body:JSON.stringify(i)});if(s.error)throw s.error;if(!s.lst)".lst[] missing";if(s.sample2client)n.samples=s.sample2client;if(s.lst.length==0)throw"no data";if(!s.maxreadcount)throw"got junctions but no maxreadcount";const t=it(s.lst,n,o);if(t)throw t;n.maxReadCount=s.maxreadcount;lt(n,o);o.tkcloakoff(n,{})}catch(t){n.data=[];n.leftaxis.selectAll("*").remove();n.glider.selectAll("*").remove();o.tkcloakoff(n,{error:n.name+": "+(t.message||t)});if(t.stack)console.log(t.stack)}if(s.junctiontotalnumber){n.junctionCountLabel.text((n.data.length==s.junctiontotalnumber?n.data.length:n.data.length+" of "+s.junctiontotalnumber)+" junction"+(s.junctiontotalnumber>1?"s":""))}else{n.junctionCountLabel.text("")}if(s.samplecount){n.sampleCountLabel.text(s.samplecount+" sample"+(s.samplecount>1?"s":""))}else{n.sampleCountLabel.text("")}if(n.parentTk);else{yt(s,n,o);for(const t of n.infoFilter.lst){kt(t,n,o)}}o.block_setheight();at(n,o)}function ot(t,e){if(e.iscustom){if(e.uninitialized){t.getsamples=1}t.iscustom=1;t.file=e.file;t.file2=e.file2;t.url=e.url}if(e.readcountCutoff){t.readcountCutoff=e.readcountCutoff}if(e.permanentHierarchy){t.permanentHierarchy=e.permanentHierarchy}else if(e.cohortFilter&&e.cohortFilter.hiddenAttr){const n={};let o=false;for(const t in e.cohortFilter.hiddenAttr){let a=0;const i={};for(const n in e.cohortFilter.hiddenAttr[t]){a++;i[n]=1}if(a){o=true;n[t]=i}}if(o){t.cohortHiddenAttr=n}}{let n=(e.parentTk||e).infoFilter;const o={};let a=false;for(const t of n.lst){let e=0;const n={};for(const o in t.hiddenCategories){e++;n[o]=1}if(e){a=true;o[t.key]=n}}if(a){t.infoFilter=o}const i={};a=false;for(const t of n.lst){for(const e in t.categories){const n=t.categories[e];if(n.valuePerSample&&n.valuePerSample.cutoffValueUseIdx!=undefined){const t=n.valuePerSample.cutoffValueLst[n.valuePerSample.cutoffValueUseIdx];if(t){a=true;i[e]=t}}}}if(a){t.spliceEventPercentage=i}}}function at(t,e){const n=[];t.tklabel.each((function(){n.push(this.getBBox().width)}));if(t.subhierarchylabel){t.subhierarchylabel.each((function(){n.push(this.getBBox().width)}))}t.junctionCountLabel.each((function(){n.push(this.getBBox().width)}));t.sampleCountLabel.each((function(){n.push(this.getBBox().width)}));t.leftLabelMaxwidth=Math.max(...n);e.setllabel()}function it(t,e,n){const o=n.width+n.subpanels.reduce(((t,e)=>t+e.leftpad+e.width),0);const a=[];for(const e of t){if(e.sv&&e.chr==e.sv.mate.chr){if(e.start>e.sv.mate.start){const t=e.start;e.start=e.stop=e.sv.mate.start;e.sv.mate.start=e.sv.mate.stop=t;const n=e.strand;e.strand=e.sv.mate.strand;e.sv.mate.strand=n}}const t=st(e,n,o);if(t){console.log("junction not in view range: "+e.chr+":"+e.start+"-"+(e.sv?e.sv.mate.chr+":"+e.sv.mate.start:e.stop));continue}a.push(e)}if(e.data){const t=new Map;e.data.forEach((e=>t.set(e.chr+"."+e.start+"."+e.stop,e)));const o=Number.isInteger(n.pannedpx)?n.pannedpx:0;for(const e of a){const n=t.get(e.chr+"."+e.start+"."+e.stop);if(n){e.x=n.x+o;e.axisy=n.axisy}}}if(a.length==0){return"no junctions in view range"}e.data=a}function st(t,e,n){let o;let a;{const n=e.seekcoord(t.chr,t.start);for(const t of n){if(t.ridx!=undefined&&e.subpanels){if(t.x<0||t.x>e.width){continue}}o=t}}{const n=e.seekcoord(t.sv?t.sv.mate.chr:t.chr,t.sv?t.sv.mate.start:t.stop);for(const t of n){if(t.ridx!=undefined&&e.subpanels){if(t.x<0||t.x>e.width){continue}}a=t}}if(o){if(!a){a=o}}else{if(a){o=a}else{return true}}let i=o.x<0||o.x>n;let s=a.x<0||a.x>n;if(i&&s){return true}t.x0=o.x;t.x1=a.x;t.x=(t.x0+t.x1)/2;t._x=t.x;return false}function rt(t){const e=(t.parentTk||t).infoFilter;if(e.useFilterIndex==undefined){e.useFilterIndex=0}return e.lst[e.useFilterIndex]}function lt(t,e){const r=e.width+e.subpanels.reduce(((t,e)=>t+e.leftpad+e.width),0);ct(t);t.glider.selectAll("*").remove();const l=t.glider.append("g");t.data.sort(((t,e)=>t._x-e._x));const c=t.data.reduce(((t,e)=>Math.max(t,e.sampleCount)),0);{const e=5;let a=0;const i=Math.pow(e,2)*Math.PI;if(c<=10){a=i*c*.9}else if(c<=100){a=i*10}else if(c<=1e3){a=i*14}else{a=i*20}const s=n().domain([1,c*.5+.1,c*.6+.1,c*.7+.1,c*.8+.1,c]).range([i,i+(a-i)*.8,i+(a-i)*.85,i+(a-i)*.9,i+(a-i)*.95,a]);let r=0;for(const e of t.data){e.radius=Math.sqrt(s(e.sampleCount)/Math.PI);if(e.sampleCount>1){l.append("text").attr("font-family",o).attr("font-size",Math.max(X,e.radius)).text(e.sampleCount).each((function(){const t=this.getBBox();const n=Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2;e.radius=Math.max(e.radius,n)})).remove()}e.rimwidth=e.rimcount?Math.max(2,e.radius/6):0;e.radius2=e.radius+e.rimwidth+(e.rimwidth>0?1:0);r=Math.max(r,e.radius2)}t.maxradius=r}t.data.reduce(((t,e)=>Math.max(t,e.medianReadCount)),0);t.yscale=(t.yscaleUseLog?m():n()).domain([t.readcountCutoff||1,t.maxReadCount]).range([t.axisheight,0]);for(const e of t.data){if(e.axisy==undefined){e.axisy=t.axisheight-t.yscale(e.medianReadCount)}}t.height_main=t.toppad+t.axisheight+t.neckheight+t.legheight+t.bottompad;t.eventsg=t.glider.append("g").attr("transform","translate(0,"+(t.height_main-t.toppad)+")");l.attr("transform","translate(0,"+(t.height_main-t.toppad-t.bottompad)+")");{const e=-t.legheight-t.neckheight-t.axisheight;l.append("line").attr("x1",0).attr("y1",e).attr("y2",e).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("shape-rendering","crispEdges");l.append("line").attr("x1",0).attr("y1",e+t.axisheight).attr("y2",e+t.axisheight).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("shape-rendering","crispEdges");let n=10;while(n<=t.maxReadCount){l.append("line").attr("x1",0).attr("y1",e+t.yscale(n)).attr("y2",e+t.yscale(n)).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("stroke-dasharray","4,4").attr("shape-rendering","crispEdges");n*=10}}const d=l.selectAll().data(t.data).enter().append("g").attr("transform",(t=>dt(t))).each((function(t){t.jugg=this}));t.jug=d;if(t.hljunctions){d.attr("class",(e=>{for(const n of t.hljunctions){if(e.chr==n.chr&&e.start==n.start&&e.stop==n.stop){return"sja_pulse"}}return null}))}d.append("line").attr("stroke",(t=>t.color)).attr("x1",(t=>pt(t))).attr("y2",-t.legheight).attr("stroke-opacity",$).attr("class","sja_jug_leg1").each((function(t){t.leg1=this}));d.append("line").attr("stroke",(t=>t.color)).attr("x2",(t=>ft(t))).attr("y1",-t.legheight).attr("stroke-opacity",$).attr("class","sja_jug_leg2").each((function(t){t.leg2=this}));const p=d.append("g").attr("class","sja_jug_jug2").attr("transform",(e=>ut(e,t)));p.append("line").attr("stroke",(t=>t.color)).attr("class","sja_jug_stem").attr("stroke-dasharray","2,2").attr("shape-rendering","crispEdges").attr("y1",(t=>t.radius)).attr("y2",(e=>t.neckheight+e.axisy)).attr("stroke-opacity",$).each((function(t){t.stem=this}));p.append("circle").each((function(t){t.disc=this})).attr("r",(t=>t.radius)).attr("fill",(t=>t.color)).attr("stroke","white").attr("fill-opacity",Z);p.filter((t=>t.sampleCount>1)).append("text").text((t=>t.sampleCount)).attr("font-size",(t=>Math.max(X,t.radius))).attr("class","sja_jug_discnum").attr("fill","white").attr("font-family",o).attr("text-anchor","middle").attr("dominant-baseline","central");p.append("circle").attr("r",(t=>t.radius)).attr("stroke",(t=>t.color)).attr("fill","white").attr("fill-opacity",0).attr("stroke-opacity",0).on("mouseover",((n,o)=>{n.stopPropagation();a(o.disc).attr("fill-opacity",.8);a(o.stem).attr("stroke-opacity",1);a(o.leg1).attr("stroke-opacity",1);a(o.leg2).attr("stroke-opacity",1);mt(o,t,e,r);xt(o,t);const i=n.target.getBoundingClientRect();t.tktip.clear().show(i.left+i.width,i.top-50);At(o,t,t.tktip.d,e)})).on("mouseout",((n,o)=>{t.tktip.hide();t.pica.g.selectAll("*").remove();e.cursorhlbar.attr("fill",e.cursorhlbarFillColor);a(o.disc).attr("fill-opacity",Z);a(o.stem).attr("stroke-opacity",$);a(o.leg1).attr("stroke-opacity",$);a(o.leg2).attr("stroke-opacity",$)})).on("mousedown",(t=>{t.stopPropagation()})).on("mousemove",(t=>{t.stopPropagation()})).on("click",((n,o)=>{t.tktip.hide();const a=i({x:n.clientX,y:n.clientY});if(!t.iscustom){a.header.append("span").style("color","#858585").style("font-size",".8em").text(t.mds.queries[t.querykey].name)}a.header.append("text").text(o.chr+":"+o.start+"-"+o.stop);const s=a.body.append("div").style("margin-top","15px");At(o,t,s,e,true);const r=a.body.append("div");It(o,t,e,r)}));gt(t,e,r).then((()=>{ht(t);s({axis:t.leftaxis.transition().call(x().scale(t.yscale).ticks(Math.floor(t.axisheight/20),".0f")),color:"black",showline:true})}))}function ct(t){const e=rt(t);let n=0;let o=0;for(const a of t.data){delete a.color;if(!a.info){n++;continue}const t=a.info[e.key];if(!t){continue}if(!t.lst){n++;continue}const i=new Map;for(const a of t.lst){const t=a.attrValue;if(t==undefined){n++;continue}if(!e.categories[t]){o++;continue}if(!i.has(t)){i.set(t,0)}i.set(t,i.get(t))}if(i.size){const t=[...i].sort(((t,e)=>e[1]-t[1]))[0][0];a.color=e.categories[t].color}}for(const e of t.data){if(!e.color){e.color=K}}const a=[];if(n)a.push("data structure error in "+n+" junctions");if(o)a.push("invalid annotation value used in "+o+" junctions");if(a.length){console.log(a.join("\n"))}}function dt(t){return"translate("+t.x+",0)"}function pt(t){return t.x0-t.x}function ft(t){return t.x1-t.x}function ut(t,e){return"translate(0,-"+(e.legheight+e.neckheight+t.axisy)+")"}function ht(t){t.data.forEach((e=>e.axisy=t.axisheight-t.yscale(e.medianReadCount)));const e=500;t.jug.selectAll(".sja_jug_leg1").transition().duration(e).attr("y2",-t.legheight).attr("x1",(t=>pt(t)));t.jug.selectAll(".sja_jug_leg2").transition().duration(e).attr("y1",-t.legheight).attr("x2",(t=>ft(t)));t.jug.selectAll(".sja_jug_jug2").transition().duration(e).attr("transform",(e=>ut(e,t)));t.jug.transition().duration(e).attr("transform",(t=>dt(t)));t.jug.selectAll(".sja_jug_stem").transition().duration(e).attr("y2",(e=>t.neckheight+e.axisy))}function gt(t,e,n){const o=[];let a=0;t.data.map((e=>{let i;if(e.x0<0){i=e.x1-e.radius2*2}else if(e.x1>n){i=e.x0+e.radius2*2}else{i=e._x}o.push({junction:e,tox:i,x:i,y:t.axisheight-t.yscale(e.medianReadCount)});a+=e.radius2*2}));o.sort(((t,e)=>t.tox-e.tox));o.forEach(((t,e)=>t.index=e));const i=a<=n?1:n/a;return new Promise(((e,n)=>{b(o).force("y",k((e=>t.axisheight-t.yscale(e.junction.medianReadCount))).strength(1)).force("x",j((t=>t.tox)).strength(.1)).force("collide",Y((t=>t.junction.radius2+2)).strength(i)).alphaMin(.5).on("end",(()=>{o.forEach((t=>{t.junction.x=t.x}));e()}))}))}function mt(t,e,n,o){let a=Math.min(t.x0,t.x1);let i=Math.max(t.x0,t.x1);if(n.usegm&&n.usegm.strand=="-"){a=t.x1;i=t.x0}if(a>=0&&i<=o){n.cursorhlbar.attr("x",n.leftheadw+n.lpad+a).attr("y",0).attr("width",i-a).attr("height",n.totalheight()).attr("fill","url(#"+e.gradient4spanBackground.mid.id+")");return}const s=50;if(a>=0){n.cursorhlbar.attr("x",n.leftheadw+n.lpad+a).attr("fill","url(#"+e.gradient4spanBackground.left.id+")")}else{n.cursorhlbar.attr("x",n.leftheadw+n.lpad+i-s).attr("fill","url(#"+e.gradient4spanBackground.right.id+")")}n.cursorhlbar.attr("y",0).attr("width",s).attr("height",n.totalheight())}function xt(t,e){if(!t.readcountBoxplot)return;const n="black";const o=e.yscale(t.readcountBoxplot.percentile[0]);const a=e.yscale(t.readcountBoxplot.percentile[1]);const i=e.yscale(t.readcountBoxplot.percentile[2]);const s=e.yscale(t.readcountBoxplot.percentile[3]);const r=e.yscale(t.readcountBoxplot.percentile[4]);const l=10;e.pica.g.selectAll("*").remove();e.pica.g.attr("transform","translate("+t.x+","+i+")");const c=e.pica.g.append("g").attr("transform","translate("+(-5-l-t.radius2)+",0)");c.append("line").attr("x1",l/2).attr("x2",l/2).attr("y1",r-i).attr("y2",o-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("line").attr("x1",0).attr("x2",l).attr("y1",o-i).attr("y2",o-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("line").attr("x1",0).attr("x2",l).attr("y1",r-i).attr("y2",r-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("rect").attr("y",s-i).attr("width",l).attr("height",a-s).attr("stroke",n).attr("fill","white").attr("shape-rendering","crispEdges");if(a-s>3){c.append("line").attr("x2",l).attr("stroke",n).attr("shape-rendering","crispEdges")}}function yt(t,e,n){e.cohortFilter.holderTable.selectAll("*").remove();if(t.attributeSummary){vt(t.attributeSummary,e,n)}if(t.hierarchySummary){if(!e.cohortFilter.hierarchies){e.cohortFilter.hierarchies={keys:{}};for(const n in t.hierarchySummary){e.cohortFilter.hierarchies.keys[n]={opennodeids:new Set}}}u({hash:t.hierarchySummary,tk:e,block:n,makenodelabel:(t,e)=>{e.append("span").style("margin-right","5px").attr("class","sja_mcdot").style("background","#858585").style("padding","1px 6px").text(t.count);const n=t.isleaf?"#858585":"inherit";e.append("span").style("margin-right","5px").style("color",n).text(t.label||t.name);if(t.totalCount){e.append("span").style("font-size",".7em").style("color",n).text(Math.ceil(100*t.count/t.totalCount)+"%")}},clicknode:(t,o)=>{h(e,n,{hierarchyname:o,levelidx:t.depth-1,valuekey:t.name,valuelabel:t.label,nodeid:t.id})}})}}function vt(t,e,n){for(const o of t){const t=e.cohortFilter.holderTable.append("tr").style("border-spacing","5px").style("border-collapse","separate");t.append("td").text(o.label).style("color","#858585");const a=t.append("td");for(const t of o.values){const i=a.append("div").style("display","inline-block").style("padding","10px").attr("class","sja_clb").on("click",(()=>{bt(e,n,o,t,i)}));if(t.label){i.property("title",t.label)}i.append("div").style("display","inline-block").style("padding","0px 5px").style("margin-right","5px").attr("class","sja_mcdot").style("background",Q).html(t.count>1?t.count:"&nbsp;");i.append("div").style("display","inline-block").text(t.name);if(t.totalCount){i.append("div").style("display","inline-block").style("font-size",".7em").style("color","#858585").html("&nbsp;"+Math.ceil(100*t.count/t.totalCount)+"%")}}if(e.cohortFilter.hiddenAttr[o.key]){for(const t in e.cohortFilter.hiddenAttr[o.key]){const i=a.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t).on("click",(()=>{bt(e,n,o,{name:t},i)}))}}}for(const o in e.cohortFilter.hiddenAttr){if(t.findIndex((t=>t.key==o))!=-1){continue}const a=e.cohortFilter.holderTable.append("tr").style("border-spacing","5px").style("border-collapse","separate");a.append("td").text(o).style("color","#858585");const i=a.append("td");for(const t in e.cohortFilter.hiddenAttr[o]){const a=i.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t).on("click",(()=>{bt(e,n,{key:o},{name:t},a)}))}}}function bt(t,e,n,o,a){const i=t.legendMenu;i.clear().showunder(a.node());if(o.count){i.d.append("div").html(o.totalCount?'<span style="font-size:1.5em">'+o.count+"</span> / "+o.totalCount+" sample"+(o.count>1?"s":""):o.count+" sample"+(o.count>1?"s":"")).style("margin","10px").style("font-size",".8em").style("color","#858585")}if(o.label){i.d.append("div").text(o.label).style("margin","10px").style("font-size",".8em").style("color","#858585")}if(t.cohortFilter.hiddenAttr[n.key]&&t.cohortFilter.hiddenAttr[n.key][o.name]){i.d.append("div").attr("class","sja_menuoption").text("Show").on("click",(()=>{i.hide();a.text("Loading ...");delete t.cohortFilter.hiddenAttr[n.key][o.name];nt(t,e,true)}))}else{i.d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{i.hide();a.text("Loading ...");if(!t.cohortFilter.hiddenAttr[n.key]){t.cohortFilter.hiddenAttr[n.key]={}}t.cohortFilter.hiddenAttr[n.key][o.name]=1;nt(t,e,true)}))}i.d.append("div").attr("class","sja_menuoption").text("Show only").on("click",(()=>{i.hide();a.text("Loading ...");if(!t.cohortFilter.hiddenAttr[n.key]){t.cohortFilter.hiddenAttr[n.key]={}}for(const e of n.values){t.cohortFilter.hiddenAttr[n.key][e.name]=1}delete t.cohortFilter.hiddenAttr[n.key][o.name];nt(t,e,true)}));if(t.cohortFilter.hiddenAttr[n.key]){let o=0;for(const e in t.cohortFilter.hiddenAttr[n.key]){o++}if(o){i.d.append("div").attr("class","sja_menuoption").text("Show all").on("click",(()=>{i.hide();a.text("Loading ...");delete t.cohortFilter.hiddenAttr[n.key];nt(t,e,true)}))}}}function kt(t,e,n){t.holder.selectAll("*").remove();t.value2junctioncount=new Map;t.value2junctioncount.set(W,0);let o=0;for(const n of e.data){if(!n.info){o++;continue}const e=n.info[t.key];if(!e||!e.lst){t.value2junctioncount.set(W,t.value2junctioncount.get(W)+1);continue}const a=new Set;for(const n of e.lst){const e=n.attrValue;if(e==undefined){continue}if(!t.categories[e]){continue}a.add(e)}if(a.size==0){t.value2junctioncount.set(W,t.value2junctioncount.get(W)+1)}else{for(const e of a){if(!t.value2junctioncount.has(e)){t.value2junctioncount.set(e,0)}t.value2junctioncount.set(e,t.value2junctioncount.get(e)+1)}}}if(o){console.error(".info missing in "+o+" junctions")}if(t.value2junctioncount.get(W)==0){t.value2junctioncount.delete(W)}const a=[...t.value2junctioncount];a.sort(((t,e)=>e[1]-t[1]));for(const[o,i]of a){const a=o==W?{label:o,color:K}:t.categories[o];const s=t.holder.append("div").style("display","inline-block").style("padding","10px").attr("class","sja_clb").on("click",(()=>{e.legendMenu.showunder(s.node());jt(t,o,e,n)}));s.append("div").style("display","inline-block").attr("class","sja_mcdot").style("padding","1px 5px").style("background-color",a.color).style("color","white").html(i>1?i:"&nbsp;").style("margin-right","5px");const r=s.append("span").style("color",a.color);if(a.valuePerSample&&a.valuePerSample.cutoffValueUseIdx!=undefined){const t=a.valuePerSample.cutoffValueLst[a.valuePerSample.cutoffValueUseIdx];if(t){r.text(a.label+", "+t.label)}else{r.text(a.label+" (invalid cutoff index)")}}else{r.text(a.label)}}for(const o in t.hiddenCategories){const a=t.holder.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t.categories[o].label).on("click",(()=>{e.legendMenu.showunder(a.node());jt(t,o,e,n)}))}for(const o in t.categories){if(t.value2junctioncount.has(o)||t.hiddenCategories[o]){continue}const a=t.categories[o];const i=t.holder.append("div").style("display","inline-block").style("padding","8px").style("color",a.color).attr("class","sja_clb").on("click",(()=>{e.legendMenu.showunder(i.node());jt(t,o,e,n)}));if(a.valuePerSample&&a.valuePerSample.cutoffValueUseIdx!=undefined){const t=a.valuePerSample.cutoffValueLst[a.valuePerSample.cutoffValueUseIdx];if(t){i.text(a.label+", "+t.label)}else{i.text(a.label+" (invalid cutoff index)")}}else{i.text(a.label)}}}function jt(t,e,n,o){const a=n.legendMenu;a.clear();const i=t.value2junctioncount.get(e);a.d.append("div").text(i?i+" junction"+(i>1?"s":""):"no junction").style("font-size",".8em").style("color","#858585").style("margin","10px");const s=t.hiddenCategories[e];const r=t.categories[e];if(r){if(r.description){a.d.append("div").style("padding","10px").html(t.categories[e].description)}if(!s&&r.valuePerSample){const t=a.d.append("div").style("margin","2px 10px 2px 10px");for(const[e,i]of r.valuePerSample.cutoffValueLst.entries()){const s=t.append("div").style("display","inline-block").style("padding","10px").text(i.label);if(e==r.valuePerSample.cutoffValueUseIdx){s.attr("class","sja_clb_selected")}else{s.attr("class","sja_clb")}s.on("click",(()=>{a.hide();if(e==r.valuePerSample.cutoffValueUseIdx){delete r.valuePerSample.cutoffValueUseIdx}else{r.valuePerSample.cutoffValueUseIdx=e}nt(n,o,true)}))}a.d.append("div").text("Drop junctions with event percetage lower than selected cutoff.").style("margin","2px 10px 10px 10px").style("font-size",".7em").style("color","#858585")}}if(s){a.d.append("div").attr("class","sja_menuoption").html("Show").on("click",(()=>{a.hide();delete t.hiddenCategories[e];nt(n,o,true)}))}else{a.d.append("div").attr("class","sja_menuoption").html("Hide").on("click",(()=>{a.hide();t.hiddenCategories[e]=1;nt(n,o,true)}))}a.d.append("div").attr("class","sja_menuoption").html("Show only").on("click",(()=>{a.hide();t.hiddenCategories={};for(const n in t.categories){if(n!=e){t.hiddenCategories[n]=1}}if(e!=W){t.hiddenCategories[W]=1}nt(n,o,true)}));let l=0;for(const e in t.hiddenCategories){l++}if(l){a.d.append("div").attr("class","sja_menuoption").html("Show all").on("click",(()=>{a.hide();t.hiddenCategories={};nt(n,o,true)}))}}function _t(t,e){if(t.dslabel){if(e.genome.datasets[t.dslabel]){t.mds=e.genome.datasets[t.dslabel];delete t.iscustom}}{const e="#FFFEAB";const n="#F7F69E";const o=Math.random().toString();const a=Math.random().toString();const i=Math.random().toString();const s=t.gleft.append("defs");const r=s.append("linearGradient").attr("id",o);r.append("stop").attr("offset",0).attr("stop-color",n);r.append("stop").attr("offset",1).attr("stop-color","white");const l=s.append("linearGradient").attr("id",a);l.append("stop").attr("offset",0).attr("stop-color",e);l.append("stop").attr("offset",.5).attr("stop-color","white");l.append("stop").attr("offset",1).attr("stop-color",e);const c=s.append("linearGradient").attr("id",i);c.append("stop").attr("offset",0).attr("stop-color","white");c.append("stop").attr("offset",1).attr("stop-color",n);t.gradient4spanBackground={left:{id:o,gradient:r},mid:{id:a,gradient:l},right:{id:i,gradient:c}}}let n=tt+e.labelfontsize;if(t.permanentHierarchy){t.subhierarchylabel=e.maketklefthandle(t,n).text(t.permanentHierarchy.hierarchyname+": "+t.permanentHierarchy.valuelabel).attr("class",null).attr("fill","#858585");n+=tt+e.labelfontsize}{new r({padding:"none"});t.junctionCountLabel=e.maketklefthandle(t,n).on("click",(()=>{}))}n+=tt+e.labelfontsize;{new r({padding:"none"});t.sampleCountLabel=e.maketklefthandle(t,n).on("click",(()=>{}))}n+=tt+e.labelfontsize;if(t.permanentHierarchy){g(t,e,n)}t.config_handle=e.maketkconfighandle(t).on("click",(()=>{wt(t,e)}));if(t.parentTk);else{t.legendMenu=new r({padding:"0px"});const[n,o]=p(e,t.name);t.tr_legend=n;t.td_legend=o;t.infoFilter.holderTable=t.td_legend.append("table");t.infoFilter.useFilterIndex=0;for(const[n,o]of t.infoFilter.lst.entries()){const a=t.infoFilter.holderTable.append("tr");o.labelButton=a.append("td").text(o.label).attr("class",n==t.infoFilter.useFilterIndex?"sja_clb_selected":"sja_clb").on("click",(()=>{if(t.infoFilter.useFilterIndex==n){return}t.infoFilter.useFilterIndex=n;t.infoFilter.lst.forEach((t=>t.labelButton.attr("class","sja_clb")));o.labelButton.attr("class","sja_clb_selected");lt(t,e)}));o.holder=a.append("td")}t.cohortFilter={holderTable:t.td_legend.append("table"),hiddenAttr:{}};if(t.mds.cohortHiddenAttr){for(const e in t.mds.cohortHiddenAttr){t.cohortFilter.hiddenAttr[e]={};for(const n in t.mds.cohortHiddenAttr[e]){t.cohortFilter.hiddenAttr[e][n]=1}}}}}function wt(t,e){t.tkconfigtip.clear().showunder(t.config_handle.node());const n=t.tkconfigtip.d;{const o=n.append("div").style("margin-bottom","15px");o.append("span").html("Read count cutoff&nbsp;");o.append("input").property("value",t.readcountCutoff||0).attr("type","number").style("width","50px").on("keyup",(n=>{if(n.code!="Enter"&&n.code!="NumpadEnter")return;let o=n.target.value;if(!o||o<0){o=0}if(o==0){if(t.readcountCutoff){t.readcountCutoff=0;nt(t,e,true)}return}if(t.readcountCutoff){if(t.readcountCutoff==o);else{t.readcountCutoff=o;nt(t,e,true)}}else{t.readcountCutoff=o;nt(t,e,true)}}));o.append("div").style("font-size",".7em").style("color","#858585").text("For a junction, samples with read count lower than cutoff will not be shown.")}{const o=n.append("div").style("margin-bottom","15px");o.append("span").text("Track height");o.append("button").html("&nbsp;&nbsp;+&nbsp;&nbsp;").style("margin-left","10px").on("click",(()=>{t.axisheight+=30;t.legheight=t.axisheight/4;lt(t,e);e.block_setheight()}));o.append("button").html("&nbsp;&nbsp;-&nbsp;&nbsp;").style("margin-left","5px").on("click",(()=>{if(t.axisheight<=90)return;t.axisheight-=30;t.legheight=t.axisheight/4;lt(t,e);e.block_setheight()}))}{const o=n.append("div").style("margin-bottom","1px");const a=Math.random();const i=o.append("input").attr("type","checkbox").style("margin-right","10px").attr("id",a).on("change",(()=>{t.yscaleUseLog=!t.yscaleUseLog;lt(t,e)}));if(t.yscaleUseLog){i.property("checked",1)}o.append("label").text("Use log10 for Y scale read count").attr("for",a)}}function At(t,e,n,o,a){const i=n.append("div").style("margin-bottom","5px").style("white-space","nowrap");{const n=rt(e);const o=t.info[n.key];if(o){const t=new Set;o.lst.forEach((e=>t.add(e.attrValue)));for(const e of t){const t=n.categories[e];i.append("span").attr("class","sja_mcdot").style("padding","1px 5px").style("background-color",t?t.color:K).style("margin-right","5px").text(t?t.label:e)}}}{const e=i.append("div").style("display","inline-block").style("margin-right","10px");if(!t.sv||t.chr==t.sv.mate.chr){e.html(l(Math.abs(t.start-(t.sv?t.sv.mate.start:t.stop)))+' <span style="font-size:.8em;">'+t.chr+":"+(t.start+1)+"-"+((t.sv?t.sv.mate.start:t.stop)+1)+"</span>")}else{e.html('<span style="font-size:.8em;">'+t.chr+":"+(t.start+1)+"-"+t.sv.mate.chr+":"+(t.sv.mate.start+1)+"</span>")}}const s=n.append("div").style("white-space","nowrap");if(t.sampleCount==1){s.append("div").html(t.medianReadCount+' <span style="font-size:.8em;color:#858585">read count, single sample</span>')}else{s.append("div").style("display","inline-block").style("margin-right","10px").html(t.medianReadCount+' <span style="font-size:.8em;color:#858585">median read count</span>');s.append("div").style("display","inline-block").style("margin-right","10px").html(t.sampleCount+' <span style="font-size:.8em;color:#858585">samples</span>')}const r=[];const c=[];if(t.info&&t.info[et]){for(const e of t.info[et].lst){if(e.isskipexon||e.isaltexon){r.push(e)}else if(e.a5ss||e.a3ss){c.push(e)}}}const d=n.append("div");if(r.length+c.length>0){if(a){if(r.length){Nt(r,d,t,e,o)}if(c.length){Nt(c,d,t,e,o)}return}if(r.length){const n=f(r);const a=r[n];St(t,a,e,d,o)}if(c.length){const n=c[0];Ft(t,n,e,d,o)}}else{Ct(t,e,d)}}function Ct(t,e,n){if(!t.ongene){return}const o=new Map;if(t.ongene.exonleft)t.ongene.exonleft.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.exonleftin)t.ongene.exonleftin.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.intronleft)t.ongene.intronleft.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));const a=new Map;if(t.ongene.exonright)t.ongene.exonright.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.exonrightin)t.ongene.exonrightin.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.intronright)t.ongene.intronright.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));let i;let s;if(o.size){if(a.size){for(const[t,e]of o){if(a.has(t)){i=t;s=e.strand;break}}}else{const t=[...o][0];i=t[0];s=t[1].strand}}else if(a.size){const t=[...a][0];i=t[0];s=t[1].strand}if(i){if(s!="+"&&s!="-"){n.text("unknown strand for "+i);return}import("./spliceevent.noeventdiagram-64a099e0.js").then((e=>{e.samegene({isoform:i,reverse:s=="-",ongene:t.ongene,holder:n})}));return}import("./spliceevent.noeventdiagram-64a099e0.js").then((e=>{e.differentgenes({ongene:t.ongene,holder:n})}))}function Ft(t,e,n,o,a){const i={junctionB:{start:t.start,stop:t.stop,v:t.medianReadCount},a5ss:e.a5ss,a3ss:e.a3ss,altinintron:e.altinintron,altinexon:e.altinexon,frame:e.frame,exon5idx:e.exon5idx,strand:e.strand,sitedist:e.sitedist};if(e.junctionA){i.junctionA={start:e.junctionA.start,stop:e.junctionA.stop,v:"..."}}import("./spliceevent.a53ss.diagram-63dfef69.js").then((s=>{const r=s.default({event:i,holder:o});if(!r)return;setTimeout((()=>{if(r.node().getBoundingClientRect().top==0)return;Mt(n,a,t,new Map([[e.junctionA.start+"."+e.junctionA.stop,r]]),[[e.junctionA.start,e.junctionA.stop]])}),1e3)}))}function St(t,e,n,o,a){const i={gm:{name:e.gene,isoform:e.isoform},junctionB:{data:[{v:t.medianReadCount}]},skippedexon:e.skippedexon,isskipexon:e.isskipexon,isaltexon:e.isaltexon,frame:e.frame,junctionAlst:[],color:"#99004d"};if(e.junctionAlst){for(const t of e.junctionAlst){if(t){t.data=[{v:"..."}];i.junctionAlst.push(t);continue}i.junctionAlst.push(null)}}if(e.up1junction){e.up1junction.data=[{v:"..."}];i.up1junction=e.up1junction}if(e.down1junction){e.down1junction.data=[{v:"..."}];i.down1junction=e.down1junction}import("./spliceevent.exonskip.diagram-76fa9af8.js").then((e=>{const[s,r]=e.default({event:i,holder:o,nophrase:true});setTimeout((()=>{for(const[t,e]of s){if(e.node().getBoundingClientRect().top==0){return}}Mt(n,a,t,s,r)}),1e3)}))}async function Mt(t,n,o,a,i){const s={genome:n.genome.name,dslabel:t.mds.label,querykey:t.querykey,readcountByjBsamples:true,junctionB:{chr:o.chr,start:o.start,stop:o.stop},junctionAposlst:i};ot(s,t);try{const t=await e("mdsjunction",{method:"POST",body:JSON.stringify(s)});if(t.error)throw t.error;if(!t.lst)throw".lst[] missing";for(const e of t.lst){const t=e.start+"."+e.stop;if(a.has(t)){a.get(t).text(e.v)}}}catch(t){console.error(t.message||t)}}function Nt(t,e,n,o,a){if(t.length==1){zt(t[0],e,n,o,a);return}const i=e.append("div").style("display","inline-block").style("font-size",".8em");for(const e of t){i.append("div").html(Bt(e)).attr("class","sja_menuoption").on("click",(t=>{o.tktip.clear().show(t.clientX+20,t.clientY-40);zt(e,o.tktip.d,n,o,a)}))}}function zt(t,e,n,o,a){const i=e.append("table").append("tr");const s=i.append("td");const r=s.append("p");if(t.isskipexon||t.isaltexon){r.html(Bt(t));St(n,t,o,s,a)}else{r.html(Bt(t));Ft(n,t,o,s,a)}i.append("td")}function Bt(t){if(t.isskipexon||t.isaltexon){return(t.isskipexon?"Exon skip":"Exon alt")+" "+t.gene+" "+t.isoform+" "+(t.frame==undefined?"":t.frame==c?"IN frame":"OUT of frame")}return(t.a5ss?"A5SS":"A3SS")+" "+t.gene+" "+t.isoform+" "+(t.frame==undefined?"":t.frame==c?"IN frame":"OUT of frame")}async function It(t,n,o,a){const i={genome:o.genome.name,dslabel:n.mds.label,querykey:n.querykey,junction:{chr:t.chr,start:t.start,stop:t.stop}};ot(i,n);const s=a.append("div").text("Loading ...");try{const t=await e("mdsjunction",{method:"POST",body:JSON.stringify(i)});if(t.error)throw t.error;s.remove();if(t.readcountboxplotpercohort){const e=a.append("div");for(const n of t.readcountboxplotpercohort){const t=e.append("div").style("margin","10px").style("display","inline-block").style("vertical-align","top");t.append("h3").text(n.label).style("text-align","center");const o=await import("./plot.boxplot-641da058.js");const a=o.default({holder:t,list:n.boxplots,axislabel:"Read count"});if(a){d(t,"Boxplot error: "+a)}}}else if(t.samples){if(t.sampletotalnumber){a.append("p").text("Displaying top "+t.samples.length+" samples").style("opacity",.5)}const e=a.append("div").style("margin-top","20px").style("display","grid").style("grid-template-columns","auto auto").style("gap-row-gap","1px").style("align-items","center").style("justify-items","left");const[o,i]=Et(e);o.text("Sample").style("opacity",.5).style("font-size",".7em");i.text("Read count").style("opacity",.5).style("font-size",".7em");for(const o of t.samples){const[t,a]=Et(e);t.text(o.sample_name?o.sample_name:n.samples[o.i]);a.text(o.readcount)}}}catch(t){if(t.stack)console.log(t.stack);s.text("Error: "+(t.message||t))}}function Et(t){return[t.append("div").style("width","100%").style("padding","5px 20px 5px 0px").style("border-bottom","solid 1px #ededed"),t.append("div").style("width","100%").style("border-bottom","solid 1px #ededed").style("padding","5px 20px 5px 0px")]}export{nt as loadTk};
1
+ import{b as t,a7 as e,I as n,ah as o,d as a,Z as i,ag as s,M as r,ae as l,bV as c,j as d}from"./app-b369b169.js";import{l as p}from"./block.legend-d3f61ef7.js";import{e as f}from"./spliceevent.exonskip.getdefault-a94aad6e.js";import{m as u,s as h,a as g}from"./block.mds-3ad17dfa.js";import{l as m}from"./log-99af3443.js";import{d as x}from"./axis-747c801e.js";import{c as y,j as v,s as b,y as k,x as j}from"./y-67939f83.js";import"./vcf-5cc55588.js";import"./partition-db811f6b.js";import"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";import"./legacy-d3-polyfill-bdb2d792.js";function _(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return w(this.cover(e,n),e,n,t)}function w(t,e,n,o){if(isNaN(e)||isNaN(n))return t;var a,i=t._root,s={data:o},r=t._x0,l=t._y0,c=t._x1,d=t._y1,p,f,u,h,g,m,x,y;if(!i)return t._root=s,t;while(i.length){if(g=e>=(p=(r+c)/2))r=p;else c=p;if(m=n>=(f=(l+d)/2))l=f;else d=f;if(a=i,!(i=i[x=m<<1|g]))return a[x]=s,t}u=+t._x.call(null,i.data);h=+t._y.call(null,i.data);if(e===u&&n===h)return s.next=i,a?a[x]=s:t._root=s,t;do{a=a?a[x]=new Array(4):t._root=new Array(4);if(g=e>=(p=(r+c)/2))r=p;else c=p;if(m=n>=(f=(l+d)/2))l=f;else d=f}while((x=m<<1|g)===(y=(h>=f)<<1|u>=p));return a[y]=i,a[x]=s,t}function A(t){var e,n,o=t.length,a,i,s=new Array(o),r=new Array(o),l=Infinity,c=Infinity,d=-Infinity,p=-Infinity;for(n=0;n<o;++n){if(isNaN(a=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e)))continue;s[n]=a;r[n]=i;if(a<l)l=a;if(a>d)d=a;if(i<c)c=i;if(i>p)p=i}if(l>d||c>p)return this;this.cover(l,c).cover(d,p);for(n=0;n<o;++n){w(this,s[n],r[n],t[n])}return this}function C(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,o=this._y0,a=this._x1,i=this._y1;if(isNaN(n)){a=(n=Math.floor(t))+1;i=(o=Math.floor(e))+1}else{var s=a-n||1,r=this._root,l,c;while(n>t||t>=a||o>e||e>=i){c=(e<o)<<1|t<n;l=new Array(4),l[c]=r,r=l,s*=2;switch(c){case 0:a=n+s,i=o+s;break;case 1:n=a-s,i=o+s;break;case 2:a=n+s,o=i-s;break;case 3:n=a-s,o=i-s;break}}if(this._root&&this._root.length)this._root=r}this._x0=n;this._y0=o;this._x1=a;this._y1=i;return this}function F(){var t=[];this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)}));return t}function S(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?undefined:[[this._x0,this._y0],[this._x1,this._y1]]}function M(t,e,n,o,a){this.node=t;this.x0=e;this.y0=n;this.x1=o;this.y1=a}function N(t,e,n){var o,a=this._x0,i=this._y0,s,r,l,c,d=this._x1,p=this._y1,f=[],u=this._root,h,g;if(u)f.push(new M(u,a,i,d,p));if(n==null)n=Infinity;else{a=t-n,i=e-n;d=t+n,p=e+n;n*=n}while(h=f.pop()){if(!(u=h.node)||(s=h.x0)>d||(r=h.y0)>p||(l=h.x1)<a||(c=h.y1)<i)continue;if(u.length){var m=(s+l)/2,x=(r+c)/2;f.push(new M(u[3],m,x,l,c),new M(u[2],s,x,m,c),new M(u[1],m,r,l,x),new M(u[0],s,r,m,x));if(g=(e>=x)<<1|t>=m){h=f[f.length-1];f[f.length-1]=f[f.length-1-g];f[f.length-1-g]=h}}else{var y=t-+this._x.call(null,u.data),v=e-+this._y.call(null,u.data),b=y*y+v*v;if(b<n){var k=Math.sqrt(n=b);a=t-k,i=e-k;d=t+k,p=e+k;o=u.data}}}return o}function z(t){if(isNaN(d=+this._x.call(null,t))||isNaN(p=+this._y.call(null,t)))return this;var e,n=this._root,o,a,i,s=this._x0,r=this._y0,l=this._x1,c=this._y1,d,p,f,u,h,g,m,x;if(!n)return this;if(n.length)while(true){if(h=d>=(f=(s+l)/2))s=f;else l=f;if(g=p>=(u=(r+c)/2))r=u;else c=u;if(!(e=n,n=n[m=g<<1|h]))return this;if(!n.length)break;if(e[m+1&3]||e[m+2&3]||e[m+3&3])o=e,x=m}while(n.data!==t)if(!(a=n,n=n.next))return this;if(i=n.next)delete n.next;if(a)return i?a.next=i:delete a.next,this;if(!e)return this._root=i,this;i?e[m]=i:delete e[m];if((n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length){if(o)o[x]=n;else this._root=n}return this}function B(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function I(){return this._root}function E(){var t=0;this.visit((function(e){if(!e.length)do{++t}while(e=e.next)}));return t}function P(t){var e=[],n,o=this._root,a,i,s,r,l;if(o)e.push(new M(o,this._x0,this._y0,this._x1,this._y1));while(n=e.pop()){if(!t(o=n.node,i=n.x0,s=n.y0,r=n.x1,l=n.y1)&&o.length){var c=(i+r)/2,d=(s+l)/2;if(a=o[3])e.push(new M(a,c,d,r,l));if(a=o[2])e.push(new M(a,i,d,c,l));if(a=o[1])e.push(new M(a,c,s,r,d));if(a=o[0])e.push(new M(a,i,s,c,d))}}return this}function L(t){var e=[],n=[],o;if(this._root)e.push(new M(this._root,this._x0,this._y0,this._x1,this._y1));while(o=e.pop()){var a=o.node;if(a.length){var i,s=o.x0,r=o.y0,l=o.x1,c=o.y1,d=(s+l)/2,p=(r+c)/2;if(i=a[0])e.push(new M(i,s,r,d,p));if(i=a[1])e.push(new M(i,d,r,l,p));if(i=a[2])e.push(new M(i,s,p,d,c));if(i=a[3])e.push(new M(i,d,p,l,c))}n.push(o)}while(o=n.pop()){t(o.node,o.x0,o.y0,o.x1,o.y1)}return this}function T(t){return t[0]}function U(t){return arguments.length?(this._x=t,this):this._x}function R(t){return t[1]}function V(t){return arguments.length?(this._y=t,this):this._y}function H(t,e,n){var o=new q(e==null?T:e,n==null?R:n,NaN,NaN,NaN,NaN);return t==null?o:o.addAll(t)}function q(t,e,n,o,a,i){this._x=t;this._y=e;this._x0=n;this._y0=o;this._x1=a;this._y1=i;this._root=undefined}function O(t){var e={data:t.data},n=e;while(t=t.next)n=n.next={data:t.data};return e}var D=H.prototype=q.prototype;D.copy=function(){var t=new q(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,o;if(!e)return t;if(!e.length)return t._root=O(e),t;n=[{source:e,target:t._root=new Array(4)}];while(e=n.pop()){for(var a=0;a<4;++a){if(o=e.source[a]){if(o.length)n.push({source:o,target:e.target[a]=new Array(4)});else e.target[a]=O(o)}}}return t};D.add=_;D.addAll=A;D.cover=C;D.data=F;D.extent=S;D.find=N;D.remove=z;D.removeAll=B;D.root=I;D.size=E;D.visit=P;D.visitAfter=L;D.x=U;D.y=V;function G(t){return t.x+t.vx}function J(t){return t.y+t.vy}function Y(t){var e,n,o,a=1,i=1;if(typeof t!=="function")t=y(t==null?1:+t);function s(){var t,s=e.length,l,c,d,p,f,u;for(var h=0;h<i;++h){l=H(e,G,J).visitAfter(r);for(t=0;t<s;++t){c=e[t];f=n[c.index],u=f*f;d=c.x+c.vx;p=c.y+c.vy;l.visit(g)}}function g(t,e,n,i,s){var r=t.data,l=t.r,h=f+l;if(r){if(r.index>c.index){var g=d-r.x-r.vx,m=p-r.y-r.vy,x=g*g+m*m;if(x<h*h){if(g===0)g=v(o),x+=g*g;if(m===0)m=v(o),x+=m*m;x=(h-(x=Math.sqrt(x)))/x*a;c.vx+=(g*=x)*(h=(l*=l)/(u+l));c.vy+=(m*=x)*h;r.vx-=g*(h=1-h);r.vy-=m*h}}return}return e>d+h||i<d-h||n>p+h||s<p-h}}function r(t){if(t.data)return t.r=n[t.data.index];for(var e=t.r=0;e<4;++e){if(t[e]&&t[e].r>t.r){t.r=t[e].r}}}function l(){if(!e)return;var o,a=e.length,i;n=new Array(a);for(o=0;o<a;++o)i=e[o],n[i.index]=+t(i,o,e)}s.initialize=function(t,n){e=t;o=n;l()};s.iterations=function(t){return arguments.length?(i=+t,s):i};s.strength=function(t){return arguments.length?(a=+t,s):a};s.radius=function(e){return arguments.length?(t=typeof e==="function"?e:y(+e),l(),s):t};return s}const X=12;const $=.5;const Z=.5;const K="#8EA399";const Q="#858585";const W="Unannotated";const tt=5;const et="type";async function nt(n,o,a){if(a){delete o.pannedpx;if(n.subTracks){for(const t of n.subTracks){nt(t,o,true)}}}o.tkcloakon(n);o.block_setheight();if(n.uninitialized){_t(n,o)}if(n.mds.mdsIsUninitiated){const e=await t(`getDataset?genome=${o.genome.name}&dsname=${n.mds.label}`);if(e.error)throw e.error;if(!e.ds)throw"ds missing";Object.assign(n.mds,e.ds);delete n.mds.mdsIsUninitiated}const i={genome:o.genome.name,rglst:o.tkarg_maygm(n),dslabel:n.mds.label,querykey:n.querykey};if(o.subpanels.length==n.subpanels.length){for(const t of o.subpanels){i.rglst.push({chr:t.chr,start:t.start,stop:t.stop})}}ot(i,n);if(n.uninitialized){delete n.uninitialized}let s;try{s=await e("mdsjunction",{method:"POST",body:JSON.stringify(i)});if(s.error)throw s.error;if(!s.lst)".lst[] missing";if(s.sample2client)n.samples=s.sample2client;if(s.lst.length==0)throw"no data";if(!s.maxreadcount)throw"got junctions but no maxreadcount";const t=it(s.lst,n,o);if(t)throw t;n.maxReadCount=s.maxreadcount;lt(n,o);o.tkcloakoff(n,{})}catch(t){n.data=[];n.leftaxis.selectAll("*").remove();n.glider.selectAll("*").remove();o.tkcloakoff(n,{error:n.name+": "+(t.message||t)});if(t.stack)console.log(t.stack)}if(s.junctiontotalnumber){n.junctionCountLabel.text((n.data.length==s.junctiontotalnumber?n.data.length:n.data.length+" of "+s.junctiontotalnumber)+" junction"+(s.junctiontotalnumber>1?"s":""))}else{n.junctionCountLabel.text("")}if(s.samplecount){n.sampleCountLabel.text(s.samplecount+" sample"+(s.samplecount>1?"s":""))}else{n.sampleCountLabel.text("")}if(n.parentTk);else{yt(s,n,o);for(const t of n.infoFilter.lst){kt(t,n,o)}}o.block_setheight();at(n,o)}function ot(t,e){if(e.iscustom){if(e.uninitialized){t.getsamples=1}t.iscustom=1;t.file=e.file;t.file2=e.file2;t.url=e.url}if(e.readcountCutoff){t.readcountCutoff=e.readcountCutoff}if(e.permanentHierarchy){t.permanentHierarchy=e.permanentHierarchy}else if(e.cohortFilter&&e.cohortFilter.hiddenAttr){const n={};let o=false;for(const t in e.cohortFilter.hiddenAttr){let a=0;const i={};for(const n in e.cohortFilter.hiddenAttr[t]){a++;i[n]=1}if(a){o=true;n[t]=i}}if(o){t.cohortHiddenAttr=n}}{let n=(e.parentTk||e).infoFilter;const o={};let a=false;for(const t of n.lst){let e=0;const n={};for(const o in t.hiddenCategories){e++;n[o]=1}if(e){a=true;o[t.key]=n}}if(a){t.infoFilter=o}const i={};a=false;for(const t of n.lst){for(const e in t.categories){const n=t.categories[e];if(n.valuePerSample&&n.valuePerSample.cutoffValueUseIdx!=undefined){const t=n.valuePerSample.cutoffValueLst[n.valuePerSample.cutoffValueUseIdx];if(t){a=true;i[e]=t}}}}if(a){t.spliceEventPercentage=i}}}function at(t,e){const n=[];t.tklabel.each((function(){n.push(this.getBBox().width)}));if(t.subhierarchylabel){t.subhierarchylabel.each((function(){n.push(this.getBBox().width)}))}t.junctionCountLabel.each((function(){n.push(this.getBBox().width)}));t.sampleCountLabel.each((function(){n.push(this.getBBox().width)}));t.leftLabelMaxwidth=Math.max(...n);e.setllabel()}function it(t,e,n){const o=n.width+n.subpanels.reduce(((t,e)=>t+e.leftpad+e.width),0);const a=[];for(const e of t){if(e.sv&&e.chr==e.sv.mate.chr){if(e.start>e.sv.mate.start){const t=e.start;e.start=e.stop=e.sv.mate.start;e.sv.mate.start=e.sv.mate.stop=t;const n=e.strand;e.strand=e.sv.mate.strand;e.sv.mate.strand=n}}const t=st(e,n,o);if(t){console.log("junction not in view range: "+e.chr+":"+e.start+"-"+(e.sv?e.sv.mate.chr+":"+e.sv.mate.start:e.stop));continue}a.push(e)}if(e.data){const t=new Map;e.data.forEach((e=>t.set(e.chr+"."+e.start+"."+e.stop,e)));const o=Number.isInteger(n.pannedpx)?n.pannedpx:0;for(const e of a){const n=t.get(e.chr+"."+e.start+"."+e.stop);if(n){e.x=n.x+o;e.axisy=n.axisy}}}if(a.length==0){return"no junctions in view range"}e.data=a}function st(t,e,n){let o;let a;{const n=e.seekcoord(t.chr,t.start);for(const t of n){if(t.ridx!=undefined&&e.subpanels){if(t.x<0||t.x>e.width){continue}}o=t}}{const n=e.seekcoord(t.sv?t.sv.mate.chr:t.chr,t.sv?t.sv.mate.start:t.stop);for(const t of n){if(t.ridx!=undefined&&e.subpanels){if(t.x<0||t.x>e.width){continue}}a=t}}if(o){if(!a){a=o}}else{if(a){o=a}else{return true}}let i=o.x<0||o.x>n;let s=a.x<0||a.x>n;if(i&&s){return true}t.x0=o.x;t.x1=a.x;t.x=(t.x0+t.x1)/2;t._x=t.x;return false}function rt(t){const e=(t.parentTk||t).infoFilter;if(e.useFilterIndex==undefined){e.useFilterIndex=0}return e.lst[e.useFilterIndex]}function lt(t,e){const r=e.width+e.subpanels.reduce(((t,e)=>t+e.leftpad+e.width),0);ct(t);t.glider.selectAll("*").remove();const l=t.glider.append("g");t.data.sort(((t,e)=>t._x-e._x));const c=t.data.reduce(((t,e)=>Math.max(t,e.sampleCount)),0);{const e=5;let a=0;const i=Math.pow(e,2)*Math.PI;if(c<=10){a=i*c*.9}else if(c<=100){a=i*10}else if(c<=1e3){a=i*14}else{a=i*20}const s=n().domain([1,c*.5+.1,c*.6+.1,c*.7+.1,c*.8+.1,c]).range([i,i+(a-i)*.8,i+(a-i)*.85,i+(a-i)*.9,i+(a-i)*.95,a]);let r=0;for(const e of t.data){e.radius=Math.sqrt(s(e.sampleCount)/Math.PI);if(e.sampleCount>1){l.append("text").attr("font-family",o).attr("font-size",Math.max(X,e.radius)).text(e.sampleCount).each((function(){const t=this.getBBox();const n=Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2;e.radius=Math.max(e.radius,n)})).remove()}e.rimwidth=e.rimcount?Math.max(2,e.radius/6):0;e.radius2=e.radius+e.rimwidth+(e.rimwidth>0?1:0);r=Math.max(r,e.radius2)}t.maxradius=r}t.data.reduce(((t,e)=>Math.max(t,e.medianReadCount)),0);t.yscale=(t.yscaleUseLog?m():n()).domain([t.readcountCutoff||1,t.maxReadCount]).range([t.axisheight,0]);for(const e of t.data){if(e.axisy==undefined){e.axisy=t.axisheight-t.yscale(e.medianReadCount)}}t.height_main=t.toppad+t.axisheight+t.neckheight+t.legheight+t.bottompad;t.eventsg=t.glider.append("g").attr("transform","translate(0,"+(t.height_main-t.toppad)+")");l.attr("transform","translate(0,"+(t.height_main-t.toppad-t.bottompad)+")");{const e=-t.legheight-t.neckheight-t.axisheight;l.append("line").attr("x1",0).attr("y1",e).attr("y2",e).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("shape-rendering","crispEdges");l.append("line").attr("x1",0).attr("y1",e+t.axisheight).attr("y2",e+t.axisheight).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("shape-rendering","crispEdges");let n=10;while(n<=t.maxReadCount){l.append("line").attr("x1",0).attr("y1",e+t.yscale(n)).attr("y2",e+t.yscale(n)).attr("x2",r).attr("stroke","#858585").attr("stroke-opacity",.2).attr("stroke-dasharray","4,4").attr("shape-rendering","crispEdges");n*=10}}const d=l.selectAll().data(t.data).enter().append("g").attr("transform",(t=>dt(t))).each((function(t){t.jugg=this}));t.jug=d;if(t.hljunctions){d.attr("class",(e=>{for(const n of t.hljunctions){if(e.chr==n.chr&&e.start==n.start&&e.stop==n.stop){return"sja_pulse"}}return null}))}d.append("line").attr("stroke",(t=>t.color)).attr("x1",(t=>pt(t))).attr("y2",-t.legheight).attr("stroke-opacity",$).attr("class","sja_jug_leg1").each((function(t){t.leg1=this}));d.append("line").attr("stroke",(t=>t.color)).attr("x2",(t=>ft(t))).attr("y1",-t.legheight).attr("stroke-opacity",$).attr("class","sja_jug_leg2").each((function(t){t.leg2=this}));const p=d.append("g").attr("class","sja_jug_jug2").attr("transform",(e=>ut(e,t)));p.append("line").attr("stroke",(t=>t.color)).attr("class","sja_jug_stem").attr("stroke-dasharray","2,2").attr("shape-rendering","crispEdges").attr("y1",(t=>t.radius)).attr("y2",(e=>t.neckheight+e.axisy)).attr("stroke-opacity",$).each((function(t){t.stem=this}));p.append("circle").each((function(t){t.disc=this})).attr("r",(t=>t.radius)).attr("fill",(t=>t.color)).attr("stroke","white").attr("fill-opacity",Z);p.filter((t=>t.sampleCount>1)).append("text").text((t=>t.sampleCount)).attr("font-size",(t=>Math.max(X,t.radius))).attr("class","sja_jug_discnum").attr("fill","white").attr("font-family",o).attr("text-anchor","middle").attr("dominant-baseline","central");p.append("circle").attr("r",(t=>t.radius)).attr("stroke",(t=>t.color)).attr("fill","white").attr("fill-opacity",0).attr("stroke-opacity",0).on("mouseover",((n,o)=>{n.stopPropagation();a(o.disc).attr("fill-opacity",.8);a(o.stem).attr("stroke-opacity",1);a(o.leg1).attr("stroke-opacity",1);a(o.leg2).attr("stroke-opacity",1);mt(o,t,e,r);xt(o,t);const i=n.target.getBoundingClientRect();t.tktip.clear().show(i.left+i.width,i.top-50);At(o,t,t.tktip.d,e)})).on("mouseout",((n,o)=>{t.tktip.hide();t.pica.g.selectAll("*").remove();e.cursorhlbar.attr("fill",e.cursorhlbarFillColor);a(o.disc).attr("fill-opacity",Z);a(o.stem).attr("stroke-opacity",$);a(o.leg1).attr("stroke-opacity",$);a(o.leg2).attr("stroke-opacity",$)})).on("mousedown",(t=>{t.stopPropagation()})).on("mousemove",(t=>{t.stopPropagation()})).on("click",((n,o)=>{t.tktip.hide();const a=i({x:n.clientX,y:n.clientY});if(!t.iscustom){a.header.append("span").style("color","#858585").style("font-size",".8em").text(t.mds.queries[t.querykey].name)}a.header.append("text").text(o.chr+":"+o.start+"-"+o.stop);const s=a.body.append("div").style("margin-top","15px");At(o,t,s,e,true);const r=a.body.append("div");It(o,t,e,r)}));gt(t,e,r).then((()=>{ht(t);s({axis:t.leftaxis.transition().call(x().scale(t.yscale).ticks(Math.floor(t.axisheight/20),".0f")),color:"black",showline:true})}))}function ct(t){const e=rt(t);let n=0;let o=0;for(const a of t.data){delete a.color;if(!a.info){n++;continue}const t=a.info[e.key];if(!t){continue}if(!t.lst){n++;continue}const i=new Map;for(const a of t.lst){const t=a.attrValue;if(t==undefined){n++;continue}if(!e.categories[t]){o++;continue}if(!i.has(t)){i.set(t,0)}i.set(t,i.get(t))}if(i.size){const t=[...i].sort(((t,e)=>e[1]-t[1]))[0][0];a.color=e.categories[t].color}}for(const e of t.data){if(!e.color){e.color=K}}const a=[];if(n)a.push("data structure error in "+n+" junctions");if(o)a.push("invalid annotation value used in "+o+" junctions");if(a.length){console.log(a.join("\n"))}}function dt(t){return"translate("+t.x+",0)"}function pt(t){return t.x0-t.x}function ft(t){return t.x1-t.x}function ut(t,e){return"translate(0,-"+(e.legheight+e.neckheight+t.axisy)+")"}function ht(t){t.data.forEach((e=>e.axisy=t.axisheight-t.yscale(e.medianReadCount)));const e=500;t.jug.selectAll(".sja_jug_leg1").transition().duration(e).attr("y2",-t.legheight).attr("x1",(t=>pt(t)));t.jug.selectAll(".sja_jug_leg2").transition().duration(e).attr("y1",-t.legheight).attr("x2",(t=>ft(t)));t.jug.selectAll(".sja_jug_jug2").transition().duration(e).attr("transform",(e=>ut(e,t)));t.jug.transition().duration(e).attr("transform",(t=>dt(t)));t.jug.selectAll(".sja_jug_stem").transition().duration(e).attr("y2",(e=>t.neckheight+e.axisy))}function gt(t,e,n){const o=[];let a=0;t.data.map((e=>{let i;if(e.x0<0){i=e.x1-e.radius2*2}else if(e.x1>n){i=e.x0+e.radius2*2}else{i=e._x}o.push({junction:e,tox:i,x:i,y:t.axisheight-t.yscale(e.medianReadCount)});a+=e.radius2*2}));o.sort(((t,e)=>t.tox-e.tox));o.forEach(((t,e)=>t.index=e));const i=a<=n?1:n/a;return new Promise(((e,n)=>{b(o).force("y",k((e=>t.axisheight-t.yscale(e.junction.medianReadCount))).strength(1)).force("x",j((t=>t.tox)).strength(.1)).force("collide",Y((t=>t.junction.radius2+2)).strength(i)).alphaMin(.5).on("end",(()=>{o.forEach((t=>{t.junction.x=t.x}));e()}))}))}function mt(t,e,n,o){let a=Math.min(t.x0,t.x1);let i=Math.max(t.x0,t.x1);if(n.usegm&&n.usegm.strand=="-"){a=t.x1;i=t.x0}if(a>=0&&i<=o){n.cursorhlbar.attr("x",n.leftheadw+n.lpad+a).attr("y",0).attr("width",i-a).attr("height",n.totalheight()).attr("fill","url(#"+e.gradient4spanBackground.mid.id+")");return}const s=50;if(a>=0){n.cursorhlbar.attr("x",n.leftheadw+n.lpad+a).attr("fill","url(#"+e.gradient4spanBackground.left.id+")")}else{n.cursorhlbar.attr("x",n.leftheadw+n.lpad+i-s).attr("fill","url(#"+e.gradient4spanBackground.right.id+")")}n.cursorhlbar.attr("y",0).attr("width",s).attr("height",n.totalheight())}function xt(t,e){if(!t.readcountBoxplot)return;const n="black";const o=e.yscale(t.readcountBoxplot.percentile[0]);const a=e.yscale(t.readcountBoxplot.percentile[1]);const i=e.yscale(t.readcountBoxplot.percentile[2]);const s=e.yscale(t.readcountBoxplot.percentile[3]);const r=e.yscale(t.readcountBoxplot.percentile[4]);const l=10;e.pica.g.selectAll("*").remove();e.pica.g.attr("transform","translate("+t.x+","+i+")");const c=e.pica.g.append("g").attr("transform","translate("+(-5-l-t.radius2)+",0)");c.append("line").attr("x1",l/2).attr("x2",l/2).attr("y1",r-i).attr("y2",o-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("line").attr("x1",0).attr("x2",l).attr("y1",o-i).attr("y2",o-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("line").attr("x1",0).attr("x2",l).attr("y1",r-i).attr("y2",r-i).attr("stroke",n).attr("shape-rendering","crispEdges");c.append("rect").attr("y",s-i).attr("width",l).attr("height",a-s).attr("stroke",n).attr("fill","white").attr("shape-rendering","crispEdges");if(a-s>3){c.append("line").attr("x2",l).attr("stroke",n).attr("shape-rendering","crispEdges")}}function yt(t,e,n){e.cohortFilter.holderTable.selectAll("*").remove();if(t.attributeSummary){vt(t.attributeSummary,e,n)}if(t.hierarchySummary){if(!e.cohortFilter.hierarchies){e.cohortFilter.hierarchies={keys:{}};for(const n in t.hierarchySummary){e.cohortFilter.hierarchies.keys[n]={opennodeids:new Set}}}u({hash:t.hierarchySummary,tk:e,block:n,makenodelabel:(t,e)=>{e.append("span").style("margin-right","5px").attr("class","sja_mcdot").style("background","#858585").style("padding","1px 6px").text(t.count);const n=t.isleaf?"#858585":"inherit";e.append("span").style("margin-right","5px").style("color",n).text(t.label||t.name);if(t.totalCount){e.append("span").style("font-size",".7em").style("color",n).text(Math.ceil(100*t.count/t.totalCount)+"%")}},clicknode:(t,o)=>{h(e,n,{hierarchyname:o,levelidx:t.depth-1,valuekey:t.name,valuelabel:t.label,nodeid:t.id})}})}}function vt(t,e,n){for(const o of t){const t=e.cohortFilter.holderTable.append("tr").style("border-spacing","5px").style("border-collapse","separate");t.append("td").text(o.label).style("color","#858585");const a=t.append("td");for(const t of o.values){const i=a.append("div").style("display","inline-block").style("padding","10px").attr("class","sja_clb").on("click",(()=>{bt(e,n,o,t,i)}));if(t.label){i.property("title",t.label)}i.append("div").style("display","inline-block").style("padding","0px 5px").style("margin-right","5px").attr("class","sja_mcdot").style("background",Q).html(t.count>1?t.count:"&nbsp;");i.append("div").style("display","inline-block").text(t.name);if(t.totalCount){i.append("div").style("display","inline-block").style("font-size",".7em").style("color","#858585").html("&nbsp;"+Math.ceil(100*t.count/t.totalCount)+"%")}}if(e.cohortFilter.hiddenAttr[o.key]){for(const t in e.cohortFilter.hiddenAttr[o.key]){const i=a.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t).on("click",(()=>{bt(e,n,o,{name:t},i)}))}}}for(const o in e.cohortFilter.hiddenAttr){if(t.findIndex((t=>t.key==o))!=-1){continue}const a=e.cohortFilter.holderTable.append("tr").style("border-spacing","5px").style("border-collapse","separate");a.append("td").text(o).style("color","#858585");const i=a.append("td");for(const t in e.cohortFilter.hiddenAttr[o]){const a=i.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t).on("click",(()=>{bt(e,n,{key:o},{name:t},a)}))}}}function bt(t,e,n,o,a){const i=t.legendMenu;i.clear().showunder(a.node());if(o.count){i.d.append("div").html(o.totalCount?'<span style="font-size:1.5em">'+o.count+"</span> / "+o.totalCount+" sample"+(o.count>1?"s":""):o.count+" sample"+(o.count>1?"s":"")).style("margin","10px").style("font-size",".8em").style("color","#858585")}if(o.label){i.d.append("div").text(o.label).style("margin","10px").style("font-size",".8em").style("color","#858585")}if(t.cohortFilter.hiddenAttr[n.key]&&t.cohortFilter.hiddenAttr[n.key][o.name]){i.d.append("div").attr("class","sja_menuoption").text("Show").on("click",(()=>{i.hide();a.text("Loading ...");delete t.cohortFilter.hiddenAttr[n.key][o.name];nt(t,e,true)}))}else{i.d.append("div").attr("class","sja_menuoption").text("Hide").on("click",(()=>{i.hide();a.text("Loading ...");if(!t.cohortFilter.hiddenAttr[n.key]){t.cohortFilter.hiddenAttr[n.key]={}}t.cohortFilter.hiddenAttr[n.key][o.name]=1;nt(t,e,true)}))}i.d.append("div").attr("class","sja_menuoption").text("Show only").on("click",(()=>{i.hide();a.text("Loading ...");if(!t.cohortFilter.hiddenAttr[n.key]){t.cohortFilter.hiddenAttr[n.key]={}}for(const e of n.values){t.cohortFilter.hiddenAttr[n.key][e.name]=1}delete t.cohortFilter.hiddenAttr[n.key][o.name];nt(t,e,true)}));if(t.cohortFilter.hiddenAttr[n.key]){let o=0;for(const e in t.cohortFilter.hiddenAttr[n.key]){o++}if(o){i.d.append("div").attr("class","sja_menuoption").text("Show all").on("click",(()=>{i.hide();a.text("Loading ...");delete t.cohortFilter.hiddenAttr[n.key];nt(t,e,true)}))}}}function kt(t,e,n){t.holder.selectAll("*").remove();t.value2junctioncount=new Map;t.value2junctioncount.set(W,0);let o=0;for(const n of e.data){if(!n.info){o++;continue}const e=n.info[t.key];if(!e||!e.lst){t.value2junctioncount.set(W,t.value2junctioncount.get(W)+1);continue}const a=new Set;for(const n of e.lst){const e=n.attrValue;if(e==undefined){continue}if(!t.categories[e]){continue}a.add(e)}if(a.size==0){t.value2junctioncount.set(W,t.value2junctioncount.get(W)+1)}else{for(const e of a){if(!t.value2junctioncount.has(e)){t.value2junctioncount.set(e,0)}t.value2junctioncount.set(e,t.value2junctioncount.get(e)+1)}}}if(o){console.error(".info missing in "+o+" junctions")}if(t.value2junctioncount.get(W)==0){t.value2junctioncount.delete(W)}const a=[...t.value2junctioncount];a.sort(((t,e)=>e[1]-t[1]));for(const[o,i]of a){const a=o==W?{label:o,color:K}:t.categories[o];const s=t.holder.append("div").style("display","inline-block").style("padding","10px").attr("class","sja_clb").on("click",(()=>{e.legendMenu.showunder(s.node());jt(t,o,e,n)}));s.append("div").style("display","inline-block").attr("class","sja_mcdot").style("padding","1px 5px").style("background-color",a.color).style("color","white").html(i>1?i:"&nbsp;").style("margin-right","5px");const r=s.append("span").style("color",a.color);if(a.valuePerSample&&a.valuePerSample.cutoffValueUseIdx!=undefined){const t=a.valuePerSample.cutoffValueLst[a.valuePerSample.cutoffValueUseIdx];if(t){r.text(a.label+", "+t.label)}else{r.text(a.label+" (invalid cutoff index)")}}else{r.text(a.label)}}for(const o in t.hiddenCategories){const a=t.holder.append("div").style("display","inline-block").style("padding","8px").style("color","#858585").attr("class","sja_clb").style("text-decoration","line-through").text(t.categories[o].label).on("click",(()=>{e.legendMenu.showunder(a.node());jt(t,o,e,n)}))}for(const o in t.categories){if(t.value2junctioncount.has(o)||t.hiddenCategories[o]){continue}const a=t.categories[o];const i=t.holder.append("div").style("display","inline-block").style("padding","8px").style("color",a.color).attr("class","sja_clb").on("click",(()=>{e.legendMenu.showunder(i.node());jt(t,o,e,n)}));if(a.valuePerSample&&a.valuePerSample.cutoffValueUseIdx!=undefined){const t=a.valuePerSample.cutoffValueLst[a.valuePerSample.cutoffValueUseIdx];if(t){i.text(a.label+", "+t.label)}else{i.text(a.label+" (invalid cutoff index)")}}else{i.text(a.label)}}}function jt(t,e,n,o){const a=n.legendMenu;a.clear();const i=t.value2junctioncount.get(e);a.d.append("div").text(i?i+" junction"+(i>1?"s":""):"no junction").style("font-size",".8em").style("color","#858585").style("margin","10px");const s=t.hiddenCategories[e];const r=t.categories[e];if(r){if(r.description){a.d.append("div").style("padding","10px").html(t.categories[e].description)}if(!s&&r.valuePerSample){const t=a.d.append("div").style("margin","2px 10px 2px 10px");for(const[e,i]of r.valuePerSample.cutoffValueLst.entries()){const s=t.append("div").style("display","inline-block").style("padding","10px").text(i.label);if(e==r.valuePerSample.cutoffValueUseIdx){s.attr("class","sja_clb_selected")}else{s.attr("class","sja_clb")}s.on("click",(()=>{a.hide();if(e==r.valuePerSample.cutoffValueUseIdx){delete r.valuePerSample.cutoffValueUseIdx}else{r.valuePerSample.cutoffValueUseIdx=e}nt(n,o,true)}))}a.d.append("div").text("Drop junctions with event percetage lower than selected cutoff.").style("margin","2px 10px 10px 10px").style("font-size",".7em").style("color","#858585")}}if(s){a.d.append("div").attr("class","sja_menuoption").html("Show").on("click",(()=>{a.hide();delete t.hiddenCategories[e];nt(n,o,true)}))}else{a.d.append("div").attr("class","sja_menuoption").html("Hide").on("click",(()=>{a.hide();t.hiddenCategories[e]=1;nt(n,o,true)}))}a.d.append("div").attr("class","sja_menuoption").html("Show only").on("click",(()=>{a.hide();t.hiddenCategories={};for(const n in t.categories){if(n!=e){t.hiddenCategories[n]=1}}if(e!=W){t.hiddenCategories[W]=1}nt(n,o,true)}));let l=0;for(const e in t.hiddenCategories){l++}if(l){a.d.append("div").attr("class","sja_menuoption").html("Show all").on("click",(()=>{a.hide();t.hiddenCategories={};nt(n,o,true)}))}}function _t(t,e){if(t.dslabel){if(e.genome.datasets[t.dslabel]){t.mds=e.genome.datasets[t.dslabel];delete t.iscustom}}{const e="#FFFEAB";const n="#F7F69E";const o=Math.random().toString();const a=Math.random().toString();const i=Math.random().toString();const s=t.gleft.append("defs");const r=s.append("linearGradient").attr("id",o);r.append("stop").attr("offset",0).attr("stop-color",n);r.append("stop").attr("offset",1).attr("stop-color","white");const l=s.append("linearGradient").attr("id",a);l.append("stop").attr("offset",0).attr("stop-color",e);l.append("stop").attr("offset",.5).attr("stop-color","white");l.append("stop").attr("offset",1).attr("stop-color",e);const c=s.append("linearGradient").attr("id",i);c.append("stop").attr("offset",0).attr("stop-color","white");c.append("stop").attr("offset",1).attr("stop-color",n);t.gradient4spanBackground={left:{id:o,gradient:r},mid:{id:a,gradient:l},right:{id:i,gradient:c}}}let n=tt+e.labelfontsize;if(t.permanentHierarchy){t.subhierarchylabel=e.maketklefthandle(t,n).text(t.permanentHierarchy.hierarchyname+": "+t.permanentHierarchy.valuelabel).attr("class",null).attr("fill","#858585");n+=tt+e.labelfontsize}{new r({padding:"none"});t.junctionCountLabel=e.maketklefthandle(t,n).on("click",(()=>{}))}n+=tt+e.labelfontsize;{new r({padding:"none"});t.sampleCountLabel=e.maketklefthandle(t,n).on("click",(()=>{}))}n+=tt+e.labelfontsize;if(t.permanentHierarchy){g(t,e,n)}t.config_handle=e.maketkconfighandle(t).on("click",(()=>{wt(t,e)}));if(t.parentTk);else{t.legendMenu=new r({padding:"0px"});const[n,o]=p(e,t.name);t.tr_legend=n;t.td_legend=o;t.infoFilter.holderTable=t.td_legend.append("table");t.infoFilter.useFilterIndex=0;for(const[n,o]of t.infoFilter.lst.entries()){const a=t.infoFilter.holderTable.append("tr");o.labelButton=a.append("td").text(o.label).attr("class",n==t.infoFilter.useFilterIndex?"sja_clb_selected":"sja_clb").on("click",(()=>{if(t.infoFilter.useFilterIndex==n){return}t.infoFilter.useFilterIndex=n;t.infoFilter.lst.forEach((t=>t.labelButton.attr("class","sja_clb")));o.labelButton.attr("class","sja_clb_selected");lt(t,e)}));o.holder=a.append("td")}t.cohortFilter={holderTable:t.td_legend.append("table"),hiddenAttr:{}};if(t.mds.cohortHiddenAttr){for(const e in t.mds.cohortHiddenAttr){t.cohortFilter.hiddenAttr[e]={};for(const n in t.mds.cohortHiddenAttr[e]){t.cohortFilter.hiddenAttr[e][n]=1}}}}}function wt(t,e){t.tkconfigtip.clear().showunder(t.config_handle.node());const n=t.tkconfigtip.d;{const o=n.append("div").style("margin-bottom","15px");o.append("span").html("Read count cutoff&nbsp;");o.append("input").property("value",t.readcountCutoff||0).attr("type","number").style("width","50px").on("keyup",(n=>{if(n.code!="Enter"&&n.code!="NumpadEnter")return;let o=n.target.value;if(!o||o<0){o=0}if(o==0){if(t.readcountCutoff){t.readcountCutoff=0;nt(t,e,true)}return}if(t.readcountCutoff){if(t.readcountCutoff==o);else{t.readcountCutoff=o;nt(t,e,true)}}else{t.readcountCutoff=o;nt(t,e,true)}}));o.append("div").style("font-size",".7em").style("color","#858585").text("For a junction, samples with read count lower than cutoff will not be shown.")}{const o=n.append("div").style("margin-bottom","15px");o.append("span").text("Track height");o.append("button").html("&nbsp;&nbsp;+&nbsp;&nbsp;").style("margin-left","10px").on("click",(()=>{t.axisheight+=30;t.legheight=t.axisheight/4;lt(t,e);e.block_setheight()}));o.append("button").html("&nbsp;&nbsp;-&nbsp;&nbsp;").style("margin-left","5px").on("click",(()=>{if(t.axisheight<=90)return;t.axisheight-=30;t.legheight=t.axisheight/4;lt(t,e);e.block_setheight()}))}{const o=n.append("div").style("margin-bottom","1px");const a=Math.random();const i=o.append("input").attr("type","checkbox").style("margin-right","10px").attr("id",a).on("change",(()=>{t.yscaleUseLog=!t.yscaleUseLog;lt(t,e)}));if(t.yscaleUseLog){i.property("checked",1)}o.append("label").text("Use log10 for Y scale read count").attr("for",a)}}function At(t,e,n,o,a){const i=n.append("div").style("margin-bottom","5px").style("white-space","nowrap");{const n=rt(e);const o=t.info[n.key];if(o){const t=new Set;o.lst.forEach((e=>t.add(e.attrValue)));for(const e of t){const t=n.categories[e];i.append("span").attr("class","sja_mcdot").style("padding","1px 5px").style("background-color",t?t.color:K).style("margin-right","5px").text(t?t.label:e)}}}{const e=i.append("div").style("display","inline-block").style("margin-right","10px");if(!t.sv||t.chr==t.sv.mate.chr){e.html(l(Math.abs(t.start-(t.sv?t.sv.mate.start:t.stop)))+' <span style="font-size:.8em;">'+t.chr+":"+(t.start+1)+"-"+((t.sv?t.sv.mate.start:t.stop)+1)+"</span>")}else{e.html('<span style="font-size:.8em;">'+t.chr+":"+(t.start+1)+"-"+t.sv.mate.chr+":"+(t.sv.mate.start+1)+"</span>")}}const s=n.append("div").style("white-space","nowrap");if(t.sampleCount==1){s.append("div").html(t.medianReadCount+' <span style="font-size:.8em;color:#858585">read count, single sample</span>')}else{s.append("div").style("display","inline-block").style("margin-right","10px").html(t.medianReadCount+' <span style="font-size:.8em;color:#858585">median read count</span>');s.append("div").style("display","inline-block").style("margin-right","10px").html(t.sampleCount+' <span style="font-size:.8em;color:#858585">samples</span>')}const r=[];const c=[];if(t.info&&t.info[et]){for(const e of t.info[et].lst){if(e.isskipexon||e.isaltexon){r.push(e)}else if(e.a5ss||e.a3ss){c.push(e)}}}const d=n.append("div");if(r.length+c.length>0){if(a){if(r.length){Nt(r,d,t,e,o)}if(c.length){Nt(c,d,t,e,o)}return}if(r.length){const n=f(r);const a=r[n];St(t,a,e,d,o)}if(c.length){const n=c[0];Ft(t,n,e,d,o)}}else{Ct(t,e,d)}}function Ct(t,e,n){if(!t.ongene){return}const o=new Map;if(t.ongene.exonleft)t.ongene.exonleft.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.exonleftin)t.ongene.exonleftin.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.intronleft)t.ongene.intronleft.forEach((t=>o.set(t.isoform,{gene:t.gene,strand:t.strand})));const a=new Map;if(t.ongene.exonright)t.ongene.exonright.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.exonrightin)t.ongene.exonrightin.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));if(t.ongene.intronright)t.ongene.intronright.forEach((t=>a.set(t.isoform,{gene:t.gene,strand:t.strand})));let i;let s;if(o.size){if(a.size){for(const[t,e]of o){if(a.has(t)){i=t;s=e.strand;break}}}else{const t=[...o][0];i=t[0];s=t[1].strand}}else if(a.size){const t=[...a][0];i=t[0];s=t[1].strand}if(i){if(s!="+"&&s!="-"){n.text("unknown strand for "+i);return}import("./spliceevent.noeventdiagram-ea97b0fb.js").then((e=>{e.samegene({isoform:i,reverse:s=="-",ongene:t.ongene,holder:n})}));return}import("./spliceevent.noeventdiagram-ea97b0fb.js").then((e=>{e.differentgenes({ongene:t.ongene,holder:n})}))}function Ft(t,e,n,o,a){const i={junctionB:{start:t.start,stop:t.stop,v:t.medianReadCount},a5ss:e.a5ss,a3ss:e.a3ss,altinintron:e.altinintron,altinexon:e.altinexon,frame:e.frame,exon5idx:e.exon5idx,strand:e.strand,sitedist:e.sitedist};if(e.junctionA){i.junctionA={start:e.junctionA.start,stop:e.junctionA.stop,v:"..."}}import("./spliceevent.a53ss.diagram-e2eab72b.js").then((s=>{const r=s.default({event:i,holder:o});if(!r)return;setTimeout((()=>{if(r.node().getBoundingClientRect().top==0)return;Mt(n,a,t,new Map([[e.junctionA.start+"."+e.junctionA.stop,r]]),[[e.junctionA.start,e.junctionA.stop]])}),1e3)}))}function St(t,e,n,o,a){const i={gm:{name:e.gene,isoform:e.isoform},junctionB:{data:[{v:t.medianReadCount}]},skippedexon:e.skippedexon,isskipexon:e.isskipexon,isaltexon:e.isaltexon,frame:e.frame,junctionAlst:[],color:"#99004d"};if(e.junctionAlst){for(const t of e.junctionAlst){if(t){t.data=[{v:"..."}];i.junctionAlst.push(t);continue}i.junctionAlst.push(null)}}if(e.up1junction){e.up1junction.data=[{v:"..."}];i.up1junction=e.up1junction}if(e.down1junction){e.down1junction.data=[{v:"..."}];i.down1junction=e.down1junction}import("./spliceevent.exonskip.diagram-4d5df3a1.js").then((e=>{const[s,r]=e.default({event:i,holder:o,nophrase:true});setTimeout((()=>{for(const[t,e]of s){if(e.node().getBoundingClientRect().top==0){return}}Mt(n,a,t,s,r)}),1e3)}))}async function Mt(t,n,o,a,i){const s={genome:n.genome.name,dslabel:t.mds.label,querykey:t.querykey,readcountByjBsamples:true,junctionB:{chr:o.chr,start:o.start,stop:o.stop},junctionAposlst:i};ot(s,t);try{const t=await e("mdsjunction",{method:"POST",body:JSON.stringify(s)});if(t.error)throw t.error;if(!t.lst)throw".lst[] missing";for(const e of t.lst){const t=e.start+"."+e.stop;if(a.has(t)){a.get(t).text(e.v)}}}catch(t){console.error(t.message||t)}}function Nt(t,e,n,o,a){if(t.length==1){zt(t[0],e,n,o,a);return}const i=e.append("div").style("display","inline-block").style("font-size",".8em");for(const e of t){i.append("div").html(Bt(e)).attr("class","sja_menuoption").on("click",(t=>{o.tktip.clear().show(t.clientX+20,t.clientY-40);zt(e,o.tktip.d,n,o,a)}))}}function zt(t,e,n,o,a){const i=e.append("table").append("tr");const s=i.append("td");const r=s.append("p");if(t.isskipexon||t.isaltexon){r.html(Bt(t));St(n,t,o,s,a)}else{r.html(Bt(t));Ft(n,t,o,s,a)}i.append("td")}function Bt(t){if(t.isskipexon||t.isaltexon){return(t.isskipexon?"Exon skip":"Exon alt")+" "+t.gene+" "+t.isoform+" "+(t.frame==undefined?"":t.frame==c?"IN frame":"OUT of frame")}return(t.a5ss?"A5SS":"A3SS")+" "+t.gene+" "+t.isoform+" "+(t.frame==undefined?"":t.frame==c?"IN frame":"OUT of frame")}async function It(t,n,o,a){const i={genome:o.genome.name,dslabel:n.mds.label,querykey:n.querykey,junction:{chr:t.chr,start:t.start,stop:t.stop}};ot(i,n);const s=a.append("div").text("Loading ...");try{const t=await e("mdsjunction",{method:"POST",body:JSON.stringify(i)});if(t.error)throw t.error;s.remove();if(t.readcountboxplotpercohort){const e=a.append("div");for(const n of t.readcountboxplotpercohort){const t=e.append("div").style("margin","10px").style("display","inline-block").style("vertical-align","top");t.append("h3").text(n.label).style("text-align","center");const o=await import("./plot.boxplot-fe3046c6.js");const a=o.default({holder:t,list:n.boxplots,axislabel:"Read count"});if(a){d(t,"Boxplot error: "+a)}}}else if(t.samples){if(t.sampletotalnumber){a.append("p").text("Displaying top "+t.samples.length+" samples").style("opacity",.5)}const e=a.append("div").style("margin-top","20px").style("display","grid").style("grid-template-columns","auto auto").style("gap-row-gap","1px").style("align-items","center").style("justify-items","left");const[o,i]=Et(e);o.text("Sample").style("opacity",.5).style("font-size",".7em");i.text("Read count").style("opacity",.5).style("font-size",".7em");for(const o of t.samples){const[t,a]=Et(e);t.text(o.sample_name?o.sample_name:n.samples[o.i]);a.text(o.readcount)}}}catch(t){if(t.stack)console.log(t.stack);s.text("Error: "+(t.message||t))}}function Et(t){return[t.append("div").style("width","100%").style("padding","5px 20px 5px 0px").style("border-bottom","solid 1px #ededed"),t.append("div").style("width","100%").style("border-bottom","solid 1px #ededed").style("padding","5px 20px 5px 0px")]}export{nt as loadTk};