@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{a8 as e,a3 as t,bs as n,bt as o,bu as a,$ as s,bv as i,j as r,q as l,M as c,ah as p,I as d,bw as u,bx as g,Z as m,ac as y,p as x,a7 as f}from"./app-a8c4854a.js";import{l as h}from"./block.legend-b2987cd9.js";import{s as _}from"./legacy-d3-polyfill-bdb2d792.js";import{a as b,c as v,b as k}from"./axis-747c801e.js";import{p as w}from"./viridis-ffd14c4d.js";import{l as z}from"./line-264f8f9e.js";import{a as E}from"./area-f56e50f9.js";import{p as j}from"./pointer-c7475677.js";import"./vcf-c4a23924.js";import"./partition-db811f6b.js";import"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";function M(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;var o=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);while(++o<a){s[o]=e+o*n}return s}function I(){var n=e().unknown(undefined),o=n.domain,a=n.range,s=0,i=1,r,l,c=false,p=0,d=0,u=.5;delete n.unknown;function g(){var e=o().length,t=i<s,n=t?i:s,g=t?s:i;r=(g-n)/Math.max(1,e-p+d*2);if(c)r=Math.floor(r);n+=(g-n-r*(e-p))*u;l=r*(1-p);if(c)n=Math.round(n),l=Math.round(l);var m=M(e).map((function(e){return n+r*e}));return a(t?m.reverse():m)}n.domain=function(e){return arguments.length?(o(e),g()):o()};n.range=function(e){return arguments.length?([s,i]=e,s=+s,i=+i,g()):[s,i]};n.rangeRound=function(e){return[s,i]=e,s=+s,i=+i,c=true,g()};n.bandwidth=function(){return l};n.step=function(){return r};n.round=function(e){return arguments.length?(c=!!e,g()):c};n.padding=function(e){return arguments.length?(p=Math.min(1,d=+e),g()):p};n.paddingInner=function(e){return arguments.length?(p=Math.min(1,e),g()):p};n.paddingOuter=function(e){return arguments.length?(d=+e,g()):d};n.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),g()):u};n.copy=function(){return I(o(),[s,i]).round(c).paddingInner(p).paddingOuter(d).align(u)};return t.apply(g(),arguments)}function C(){var e=0,t=1,n,a,r,l,c=o,p=false,d;function u(e){return e==null||isNaN(e=+e)?d:c(r===0?.5:(e=(l(e)-n)*r,p?Math.max(0,Math.min(1,e)):e))}u.domain=function(o){return arguments.length?([e,t]=o,n=l(e=+e),a=l(t=+t),r=n===a?0:1/(a-n),u):[e,t]};u.clamp=function(e){return arguments.length?(p=!!e,u):p};u.interpolator=function(e){return arguments.length?(c=e,u):c};function g(e){return function(t){var n,o;return arguments.length?([n,o]=t,c=e(n,o),u):[c(0),c(1)]}}u.range=g(s);u.rangeRound=g(i);u.unknown=function(e){return arguments.length?(d=e,u):d};return function(o){l=o,n=o(e),a=o(t),r=n===a?0:1/(a-n);return u}}function N(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function S(){var e=n(C()(o));e.copy=function(){return N(e,S())};return a.apply(e,arguments)}function R(e){return e<0?-1:1}function T(e,t,n){var o=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(o||a<0&&-0),i=(n-e._y1)/(a||o<0&&-0),r=(s*a+i*o)/(o+a);return(R(s)+R(i))*Math.min(Math.abs(s),Math.abs(i),.5*Math.abs(r))||0}function G(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function H(e,t,n){var o=e._x0,a=e._y0,s=e._x1,i=e._y1,r=(s-o)/3;e._context.bezierCurveTo(o+r,a+r*t,s-r,i-r*n,s,i)}function P(e){this._context=e}P.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:H(this,this._t0,G(this,this._t0));break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(e,t){var n=NaN;e=+e,t=+t;if(e===this._x1&&t===this._y1)return;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;H(this,G(this,n=T(this,e,t)),n);break;default:H(this,this._t0,n=T(this,e,t));break}this._x0=this._x1,this._x1=e;this._y0=this._y1,this._y1=t;this._t0=n}};Object.create(P.prototype).point=function(e,t){P.prototype.point.call(this,t,e)};function L(e){return new P(e)}async function A(e,t){try{const n=await D(e);O(n);n.genome=e.genome;n.holder=t.style("position","relative");await F(n);Z(n);await B(n);oe(e,n)}catch(e){r(t,e.message||e)}}async function D(e){if(!e.jsonfile)throw".jsonfile missing";const t=await l("textfile",{file:e.jsonfile});if(t.error)throw t.error;return JSON.parse(t.text)}function O(t){if(!t.cells)throw".cells{} missing";if(!t.cells.file)throw".cells.file missing";if(!t.cells.axis2columnidx)throw".cells.axis2columnidx missing";if(t.cells.categories){if(!Array.isArray(t.cells.categories))throw".cells.categories should be an array";if(t.cells.categories.length==0)throw".cells.categories[] is empty array";for(const n of t.cells.categories){if(!Number.isInteger(n.columnidx))throw"columnidx missing from category "+n;if(n.autocolor){n.autocolor=e(_)}}if(!Number.isInteger(t.use_category_index)){t.use_category_index=0}if(!t.cells.categories[t.use_category_index])throw"use_category_index out of bound";if(!t.cells.categories[t.use_category_index].hidden_types)t.cells.categories[t.use_category_index].hidden_types=[]}if(t.gene_expression){if(!t.gene_expression.file)throw".gene_expression.file missing";if(!Number.isInteger(t.cells.barcodecolumnidx))throw".gene_expression in use but .cells.barcodecolumnidx is missing"}if(!t.width)t.width=window.innerWidth*.9;if(!t.height)t.height=window.innerHeight*.9}async function B(e){if(Number.isInteger(e.use_category_index)){if(!e.cells.categories[e.use_category_index].hidden_types)e.cells.categories[e.use_category_index].hidden_types=[]}const t=await W(e);e.data_sphere_r=t.data_sphere_r;if(!e.camera.position.z){e.camera.position.z=e.data_sphere_r*3;e.controls.maxDistance=e.data_sphere_r*4;e.controls.minDistance=e.data_sphere_r/10}const n=new TextEncoder;const o=n.encode(t.pcddata).buffer;V(e,o);q(e,t);a();function a(){requestAnimationFrame(a);e.controls.update();e.renderer.render(e.scene,e.camera)}}async function W(e){const t=e.holder.append("div").style("position","absolute").style("top",0).style("left",0).style("padding","10px").style("font-size","1.5rem").text("Loading data...");const n={genome:e.genome.name,textfile:e.cells.file,delimiter:e.cells.delimiter||"\t",getpcd:{coord:e.cells.axis2columnidx}};if(Number.isInteger(e.use_category_index)){if(!e.cells.categories)throw"using category index but cells.categories[] missing";const t=e.cells.categories[e.use_category_index];if(!t)throw"category array index out of bound";n.getpcd.category_index=t.columnidx;if(t.autocolor){n.getpcd.category_autocolor=true;if(t.values_count)n.getpcd.values_count=t.values_count}else if(t.values){n.getpcd.category_customcolor=true;n.getpcd.cat_values=t.values}else{if(!t.autocolor&&!t.values)throw"categories.values[] are not defined";throw"unknow coloring scheme for category "+t.name}if(t.hidden_types){n.hidden_types=t.hidden_types}if(e.background_color){n.background_color=e.background_color}if(!t.customorder){n.getpcd.category_autoorder=true}else if(t.customorder&&t.values){n.getpcd.category_customorder=true;n.getpcd.cat_values=t.values}else{if(t.customorder&&!t.values)throw"categories.values[] are not defined";throw"unknow ordering scheme for category "+t.name}e.menu_button.html(t.name+"&nbsp;&nbsp;&#9660;")}else if(Number.isInteger(e.use_gene_index)){const t=e.gene_expression.genes[e.use_gene_index];e.menu_button.html("Gene : "+t.gene+"&nbsp;&nbsp;&#9660;");n.getpcd.gene_expression={file:e.gene_expression.file,barcodecolumnidx:e.cells.barcodecolumnidx,chr:t.chr,start:t.start,stop:t.stop,autoscale:true,genename:t.gene,color_min:e.gene_expression.color_min,color_max:e.gene_expression.color_max};if(e.gene_expression.color_no_exp)n.getpcd.gene_expression.color_no_exp=e.gene_expression.color_no_exp}else{throw"unknown method to color the cells"}return l("singlecell",n).then((e=>{if(e.error)throw e.error;t.remove();return e}))}async function F(e){await ne("/static/js/three.js");await ne("/static/js/loaders/PCDLoader.js");await ne("/static/js/controls/TrackballControls.js");await ne("/static/js/WebGL.js");if(WEBGL.isWebGLAvailable()===false){e.holder.node().appendChild(WEBGL.getWebGLErrorMessage());return}e.scene=new THREE.Scene;if(e.background_color){e.scene.background=new THREE.Color(e.background_color)}else{e.scene.background=new THREE.Color(16777215)}const t=e.default_zoom?100-e.default_zoom:45;e.camera=new THREE.PerspectiveCamera(t,e.width/e.height,.1,1e3);e.camera.position.x=e.canvas_2d?0:20;e.camera.position.y=e.canvas_2d?0:-10;if(e.canvas_2d){e.camera.up.set(0,1,0)}else{e.camera.up.set(0,0,1)}e.controls=new THREE.TrackballControls(e.camera);e.controls.rotateSpeed=e.canvas_2d?0:2;e.controls.zoomSpeed=e.canvas_2d?3:.7;e.controls.panSpeed=e.canvas_2d?3:.7;e.controls.noZoom=true;e.controls.noPan=false;e.controls.staticMoving=true;e.controls.dynamicDampingFactor=.3;e.scene.add(e.camera);e.renderer=new THREE.WebGLRenderer({antialias:true,preserveDrawingBuffer:true});e.renderer.setPixelRatio(window.devicePixelRatio);e.renderer.setSize(e.width,e.height);e.renderer.domElement.style.backgroundColor="#ffffff";e.renderer.domElement.style.border="solid #dddddd 2px";e.holder.style("display","inline-block").style("position","relative").node().appendChild(e.renderer.domElement);e.renderer.render(e.scene,e.camera)}function V(e,t){e.scene.children.forEach((function(t,n){if(t.material){t.material.dispose();t.geometry.dispose();e.scene.remove(t)}}));const n=new THREE.PCDLoader;const o=n.parse(t,"");if(e.point_size){o.material.size=e.point_size}else{o.material.size=e.canvas_2d?.3:.05}e.scene.add(o);e.center=o.geometry.boundingSphere.center;e.controls.target.set(e.center.x,e.center.y,e.center.z);e.controls.update()}function Z(e){e.menu=new c;e.menu.d.style("padding","3px");e.settings=new c;e.settings.d.style("padding","3px");const t=e.holder.append("div").style("padding","10px").style("position","absolute").style("border-radius","5px").style("top","20px").style("right","20px").style("background-color","#dddddd");e.menu_button=t.append("button").style("display","inline-block").style("padding","4px").on("click",(()=>J(e)));const n=e.minimize_btn=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").classed("active",e.menu_minimized?true:false).text(e.menu_minimized?" SHOW":" HIDE").on("click",(()=>{e.minimize_btn.classed("active",e.minimize_btn.classed("active")?false:true);if(e.minimize_btn.classed("active")){e.minimize_btn.text(" SHOW");e.menu_output.style("display","none")}else{e.minimize_btn.text(" HIDE");e.menu_output.style("display","block")}})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.use_background_color=0;const o=e.settings_btn=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","3px").style("padding-right","3px").style("float","right").style("font-size",".6em").text("CONFIG").on("click",(()=>$(e))).on("mouseover",(()=>{o.style("text-decoration","underline")})).on("mouseout",(()=>{o.style("text-decoration","none")}));e.menu_output=t.append("div").style("margin-top","10px").style("display",e.menu_minimized?"none":"block");e.show_zoom=true}function q(e,t){e.menu_output.selectAll("*").remove();if(t.category2color){const n=e.menu_output.append("div").style("margin","2px");const o=n.append("input").attr("type","checkbox").style("margin-right","10px").style("vertical-align","top").style("display","inline-block").on("change",(()=>{if(o.node().checked){e.cells.categories[e.use_category_index].hidden_types=[];B(e)}else{for(const n in t.category2color){e.cells.categories[e.use_category_index].hidden_types.push(n)}B(e)}}));if(e.cells.categories[e.use_category_index].hidden_types.length==0){o.property("checked",1)}n.append("span").text("Select All").style("font-size",".8em").attr("font-family",p);for(const n in t.category2color){const o=e.menu_output.append("div").style("margin","2px");const a=o.append("input").attr("type","checkbox").property("checked",1).style("margin-right","10px").style("vertical-align","top").style("display","inline-block").on("change",(()=>{if(e.cells.categories[e.use_category_index].hidden_types.includes(n)){const t=e.cells.categories[e.use_category_index].hidden_types.indexOf(n);if(t!==-1)e.cells.categories[e.use_category_index].hidden_types.splice(t,1);a.property("checked",1)}else{e.cells.categories[e.use_category_index].hidden_types.push(n)}B(e)}));if(e.cells.categories[e.use_category_index].hidden_types.includes(n)){a.property("checked",0)}o.append("div").style("display","inline-block").style("height","15px").style("width","15px").style("background-color",t.category2color[n]).style("margin-right","10px");o.append("span").text(n).attr("font-family",p);o.append("span").html("&nbsp;n="+t.categorycount[n]).attr("font-family",p).style("font-size",".8em").style("float","right").style("color","#777")}}else if(t.maxexpvalue){const n=30;const o=150;const a=e.menu_output.append("div").style("margin","10px").style("width","120px").style("height","100px");a.append("div").text("Gene Expression "+e.gene_expression.datatype).style("text-align","center").style("width","150px").style("margin-bottom","20px");const s=a.append("svg").append("g");const i=[e.gene_expression.color_max,e.gene_expression.color_min];const r=d().range(i).domain([t.minexpvalue,t.maxexpvalue]);const p=s.append("defs");const u=p.append("linearGradient").attr("id","linear-gradient");u.append("stop").attr("offset","0%").attr("stop-color",r(t.maxexpvalue));u.append("stop").attr("offset","100%").attr("stop-color",r(t.minexpvalue));s.append("rect").attr("x",0).attr("y",0).attr("width",o).attr("height",n).attr("transform","translate(12, 0)").style("fill","url(#linear-gradient)");const g=d().range([0,o]).domain([t.minexpvalue,t.maxexpvalue]);const m=b().scale(g).ticks(5);s.append("g").attr("class","legend axis").attr("transform","translate(12,"+n+")").call(m);const y=e.menu_output.append("div").style("padding-bottom","20px").style("text-align","center");y.append("p").style("font-size","13px").style("margin","2px 0").html("<b>Cells with Expression Data</b> ");y.append("p").style("font-size","13px").style("margin","2px 0").html(t.numbercellwithgeneexp+" / "+t.numbercelltotal);const x=y.append("div").style("display","block").style("margin-top","10px");x.append("div").style("display","inline-block").style("height","15px").style("width","15px").style("background-color",e.gene_expression.color_no_exp?e.gene_expression.color_no_exp:"#2C2C2C").style("margin-right","10px");x.append("div").style("display","inline-block").style("font-size","13px").html(" Cells without Expression");const f=e.menu_output.append("div");f.append("div").style("display","block").style("padding","5px").html("Violinplot / Boxplot of </br> Expression by");const h=f.append("select").style("display","block");h.append("option").attr("value","none").text("-- Select--");if(e.cells.categories){e.cells.categories.forEach(((e,t)=>{h.append("option").attr("value",e.columnidx).text(e.name)}))}h.on("change",(()=>{const t=e.gene_expression.genes[e.use_gene_index];const n=e.cells.categories[parseInt(h.node().selectedIndex)-1];const o={genome:e.genome.name,getgeneboxplot:{expfile:e.gene_expression.file,chr:t.chr,start:t.start,stop:t.stop,genename:t.gene,cellfile:e.cells.file,barcodecolumnidx:e.cells.barcodecolumnidx,categorycolumnidx:parseInt(h.node().value),delimiter:e.cells.delimiter||"\t",category_customorder:n.customorder&&n.values?true:false,category_autoorder:!n.customorder?true:false,cat_values:n.values,values_count:n.values_count}};l("singlecell",o).then((t=>{if(t.error)throw t.error;e.box_plot=new c;Q(t,e,h.node().value)}))}))}U(e)}function U(e){if(e.show_zoom){const t=e.menu_output.append("div").style("display","block").text("Zoom").style("margin","10px 5px 5px 5px").style("padding-top","10px").style("border-top","1px solid #929292");const n=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").text("MOVE TO CONFIG").on("click",(()=>{t.node().remove();e.show_zoom=false})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.zoom_slider=t.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",1).attr("max",100).attr("value",e.camera.fov).style("direction","rtl").on("change",(()=>{e.camera.fov=parseInt(e.zoom_slider.node().value);e.camera.updateProjectionMatrix()})).on("mousedown",(e=>{e.stopPropagation()}))}}function J(e){e.menu.clear().showunder(e.menu_button.node());if(e.cells.categories){e.cells.categories.forEach(((t,n)=>{if(n!=e.use_category_index){e.menu.d.append("div").text(t.name).attr("class","sja_menuoption").on("click",(async()=>{e.menu.hide();e.use_category_index=n;B(e)})).append("span").attr("font-family",p).style("display",t.values_count?"inline-block":"none").style("font-size",".8em").style("float","right").style("color","#777").style("padding","3px 5px").html(t.values_count?"&nbsp;n="+t.values_count:"")}}))}if(e.gene_expression){e.menu.d.append("div").text("Gene expression").attr("class","sja_menuoption").on("click",(()=>{e.menu.clear();const t=e.menu.d.append("div").style("padding","10px");u({div:t.append("div"),resultdiv:t.append("div"),genome:e.genome.name,callback:async t=>{const n=await g(e.genome.name,t);if(n&&n[0]){const o=n[0];if(!e.gene_expression.genes)e.gene_expression.genes=[];const a=e.gene_expression.genes.findIndex((e=>e.gene==t));if(a==-1){e.gene_expression.genes.push({gene:t,chr:o.chr,start:o.start,stop:o.stop});e.use_gene_index=e.gene_expression.genes.length-1}else{e.use_gene_index=a}}e.use_category_index=null;e.menu.hide();B(e)}})}));e.menu.d.append("div").text("Multi-Gene Heatmap").attr("class","sja_menuoption").on("click",(()=>{K(e)}));if(e.gene_expression.genes){if(e.gene_expression.genes.length>1){e.menu.d.append("div").style("padding","5px 10px").text("Previously Selected")}e.gene_expression.genes.forEach(((t,n)=>{if(n!=e.use_gene_index){e.menu.d.append("div").text("Gene : "+t.gene).attr("class","sja_menuoption").on("click",(async()=>{e.menu.hide();e.use_category_index=null;e.use_gene_index=n;B(e)}))}}))}}}function $(e){e.settings.clear().showunder(e.settings_btn.node());const t=e.settings.d.append("div").style("display","block").text("Background Color").style("margin","5px");const n=t.append("div").style("margin","5px").style("display","block");const o=Math.random(),a=Math.random(),s=Math.random();const i=n.append("input").attr("type","radio").style("display","inline-block").attr("name",o).attr("id",a).on("change",c);n.append("label").style("display","inline-block").style("font-size",".8em").text("Black").style("padding-left","10px").attr("for",a);const r=t.append("div").style("margin","5px").style("display","block");const l=r.append("input").attr("type","radio").style("display","inline-block").attr("name",o).attr("id",s).on("change",c);r.append("label").style("display","inline-block").style("font-size",".8em").text("White").style("padding-left","10px").attr("for",s);if(e.use_background_color==0){l.property("checked",1)}else{i.property("checked",1)}function c(){const t=e.background_color=="black";e.scene.background=new THREE.Color(t?16777215:0);e.use_background_color=t?0:1;e.background_color=t?"white":"black"}const p=e.settings.d.append("div").style("display","block").text("Point Size").style("margin","20px 5px");const d=p.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",1).attr("max",70).attr("value",e.scene.children[1].material.size*100).on("change",(()=>{e.scene.children[1].material.size=d.node().value/100}));if(e.show_zoom==false){const t=e.settings.d.append("div").style("display","block").text("Zoom").style("margin","20px 5px");const n=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").html("MOVE TO </br>LEGEND PANEL").on("click",(()=>{t.node().remove();e.show_zoom=true;U(e)})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.zoom_slider=t.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",5).attr("max",70).attr("value",e.camera.fov).style("direction","rtl").on("change",(()=>{e.camera.fov=parseInt(e.zoom_slider.node().value);e.camera.updateProjectionMatrix()}))}e.settings.d.append("div").style("margin","5px").text("Panning");e.settings.d.append("div").style("font-size",".8em").style("text-align","center").style("margin-bottom","10px").html('<p style="margin:3px;">Right mouse click </br>+ Mouse move</p>');if(!e.canvas_2d){e.settings.d.append("div").style("margin","5px").text("Rotate");e.settings.d.append("div").style("font-size",".8em").style("text-align","center").style("margin-bottom","10px").html('<p style="margin:3px;">Left mouse click </br>+ Mouse move</p>')}e.settings.d.append("div").attr("class","sja_menuoption").text("Reset view").style("width","80px").style("margin","auto").style("margin-top","15px").style("margin-bottom","15px").on("click",(()=>{l.property("checked",1);e.scene.background=new THREE.Color(e.background_color?e.background_color:16777215);d.node().value=e.point_size?e.point_size*100:e.canvas_2d?30:5;e.scene.children[1].material.size=e.point_size?e.point_size:e.canvas_2d?.3:.05;e.camera.position.z=e.data_sphere_r*3;e.camera.position.x=e.canvas_2d?0:20;e.camera.position.y=e.canvas_2d?0:-10;const t=45;e.camera.fov=parseInt(t);e.camera.updateProjectionMatrix();e.zoom_slider.node().value=t;if(e.canvas_2d){e.camera.up.set(0,1,0)}else{e.camera.up.set(0,0,1)}e.controls.target.set(e.center.x,e.center.y,e.center.z)}));const u=e.settings.d.append("div").attr("class","sja_menuoption").style("padding","5px").style("width","80px").style("margin","auto").style("margin-top","15px").style("margin-bottom","15px").html("<b>&#10697;</b> Capture").on("mousedown",(()=>{const t=e.renderer.domElement.toDataURL();let n=document.createElement("img");n.src=t;u.append("span").style("display","none").html('<a download="scRNA_'+(new Date).toLocaleString()+'.png" href="'+n.src+'" title="ImageName">Camera</a>')})).on("mouseup",(()=>{u.select("a").node().click();u.selectAll("span").remove()}))}function K(e){e.menu.clear();e.gene_expression.heatmap_genes=[];e.use_heatmap_category_index=null;const t=e.menu.d.append("div").style("display","block").style("padding","10px");const n=t.append("div").style("display","block");const o=n.append("div").style("display","inline-block").style("vertical-align","top").style("padding","10px");o.append("div").style("display","block").style("padding-bottom","5px").text("Add Genes");o.append("textarea").attr("rows","4").attr("cols","20").attr("placeholder","Type gene names seperated by space");const a=t.append("div");a.append("div").style("display","block").style("padding-bottom","5px").style("padding-left","10px").text("Heatmap by");const s=a.append("select").style("display","block").style("margin-left","10px");s.append("option").attr("value","none").text("-- Select--");if(e.cells.categories){e.cells.categories.forEach(((e,t)=>{s.append("option").attr("value",e.columnidx).text(e.name)}))}s.on("change",(()=>{e.use_heatmap_category_index=parseInt(s.node().value)}));t.append("button").text("Heatmap").style("display","block").style("float","right").style("margin","5px").on("click",(async()=>{const t=o.select("textarea").node().value;const n=t.split(" ");for(const t of n){const n=await g(e.genome.name,t);if(n&&n[0]){const o=n[0];if(!e.gene_expression.heatmap_genes)e.gene_expression.heatmap_genes=[];const a=e.gene_expression.heatmap_genes.findIndex((e=>e.gene==t));if(a==-1){e.gene_expression.heatmap_genes.push({gene:t,chr:o.chr,start:o.start,stop:o.stop})}}}const a={genome:e.genome.name,getheatmap:{expfile:e.gene_expression.file,gene_list:e.gene_expression.heatmap_genes,cellfile:e.cells.file,barcodecolumnidx:e.cells.barcodecolumnidx,categorycolumnidx:parseInt(s.node().value),delimiter:e.cells.delimiter||"\t"}};l("singlecell",a).then((t=>{if(t.error)throw t.error;e.menu.hide();ee(t,e,s.node().value)}))}))}function Q(e,t,n){const o=t.gene_expression.genes[t.use_gene_index];const a=m({x:600,y:400});const s=t.cells.categories.find((e=>e.columnidx==n));a.header.text("Violinplot/Boxplot for "+o.gene+" Expression by "+s.name);const i=a.pane.append("div").style("margin","10px 10px 10px 15px");const r=a.pane.append("svg").style("margin","10px");const c=i.append("select").style("display","inline-block");c.append("option").attr("value","violin").text("Violin Plot");c.append("option").attr("value","box").text("Box Plot");c.on("change",(()=>{u()}));const p=i.append("div").style("display","inline-block").style("padding-left","15px").text("Cells without expression");const d=p.append("select").style("display","inline-block").style("margin-left","5px");d.append("option").attr("value","include").text("Include");d.append("option").attr("value","exclude").text("Exclude");d.on("change",(()=>{u()}));X(e,r);function u(){const e=t.gene_expression.genes[t.use_gene_index];const o={genome:t.genome.name,getgeneboxplot:{expfile:t.gene_expression.file,chr:e.chr,start:e.start,stop:e.stop,genename:e.gene,cellfile:t.cells.file,barcodecolumnidx:t.cells.barcodecolumnidx,categorycolumnidx:parseInt(n),delimiter:t.cells.delimiter||"\t",category_customorder:s.customorder&&s.values?true:false,category_autoorder:!s.customorder?true:false,cat_values:s.values,values_count:s.values_count}};if(d.node().value=="exclude"){o.getgeneboxplot.exclude_cells=true}l("singlecell",o).then((e=>{if(e.error)throw e.error;if(c.node().value=="box")Y(e,r);else if(c.node().value=="violin")X(e,r)}))}}function X(e,t){t.selectAll("*").remove();let n=50,o=200,a=2,s=30;const i=te(e.boxplots,t);const r=d().range([0,o]).domain([e.minexpvalue,e.maxexpvalue]);const l=d().range([n,0]).domain([0,1]);const c=e.boxplots.length*(n+a)+s;const u=o+i+20;t.transition().attr("width",u).attr("height",c);if(e.boxplots){e.boxplots.forEach(((o,c)=>{const d=t.append("g").attr("transform","translate("+i+","+(c*(n+a)+s)+")");d.append("text").text(o.category+" ("+o.numberofcells+")").attr("transform","translate(-4,"+n/2+")").attr("text-anchor","end").attr("font-size",15).attr("font-family",p).attr("dominant-baseline","central");if(o.density){const t=Math.max(...o.density);z().x((function(t,n){return r(n*e.maxexpvalue/o.density.length)})).y((function(e){return l(e/t)/2})).curve(L);const a=E().x((function(t,n){return r(n*e.maxexpvalue/o.density.length)})).y0((function(e){const o=l(e/t)/2;return n-o})).y1((function(e){return l(e/t)/2})).curve(L);d.append("path").datum(o.density).attr("class","area").attr("d",a).style("fill",o.color).style("stroke","black").style("stroke-width",.5)}}));const o=v().scale(r).ticks(5);t.append("g").attr("class","legend axis").attr("transform","translate("+i+","+(s-10)+")").call(o)}}function Y(e,t){t.selectAll("*").remove();let n=36,o=200,a=16,s=30;const i=te(e.boxplots,t);const r=d().range([0,o]).domain([e.minexpvalue,e.maxexpvalue]);d().range([n,0]).domain([0,1]);const l=e.boxplots.length*(n+a)+s;const c=o+i+20;t.transition().attr("width",c).attr("height",l);if(e.boxplots){e.boxplots.forEach(((e,o)=>{const l=t.append("g").attr("transform","translate("+i+","+(o*(n+a)+s)+")");l.append("text").text(e.category+" ("+e.numberofcells+")").attr("transform","translate(-4,"+n/2+")").attr("text-anchor","end").attr("font-size",15).attr("font-family",p).attr("dominant-baseline","central");if(e.p75){l.append("line").attr("x1",r(e.w1)).attr("y1",n/2).attr("x2",r(e.w2)).attr("y2",n/2).attr("stroke-width",2).attr("stroke","black");l.append("rect").attr("x",r(e.p25)).attr("y",0).attr("width",r(e.p75-e.p25)).attr("height",n).attr("fill",e.color);l.append("line").attr("x1",r(e.w1)).attr("y1",0).attr("x2",r(e.w1)).attr("y2",n).attr("stroke-width",2).attr("stroke","black");l.append("line").attr("x1",r(e.p50)).attr("y1",0).attr("x2",r(e.p50)).attr("y2",n).attr("stroke-width",2).attr("stroke","white");l.append("line").attr("x1",r(e.w2)).attr("y1",0).attr("x2",r(e.w2)).attr("y2",n).attr("stroke-width",2).attr("stroke","black");if(e.out){for(const t of e.out){l.append("circle").attr("cx",r(t.value)).attr("cy",n/2).attr("r",2).attr("fill","#901739")}}}}));const o=v().scale(r).ticks(5);t.append("g").attr("class","legend axis").attr("transform","translate("+i+","+(s-10)+")").call(o)}}function ee(e,t,n){const o=m({x:600,y:400});const a=t.cells.categories.find((e=>e.columnidx==n));o.header.text("Heatmap for Gene Expression by "+a.name);const s=o.pane.append("svg").style("margin","10px");let i=[];for(const t of e.gene_heatmap)i.push(t.genename);let r=[];e.gene_heatmap.forEach(((t,n)=>{e.gene_heatmap[n].heatmap.forEach((e=>{r.push(e.mean)}))}));const l=Math.max(...r);let c=[];for(const t of e.gene_heatmap[0].heatmap)c.push(t.category+" ("+t.numberofcells+")");let p=20,d=80,u=2,g=30,y=60;const x=te(e.gene_heatmap[0].heatmap,s);const f=(p+u)*c.length+g;const h=(d+u)*i.length+x+y+20;s.transition().attr("width",h).attr("height",f);const _=I().range([0,(d+u)*i.length]).domain(i).padding(.05);s.append("g").style("font-size",15).attr("transform","translate("+x+",0)").call(b(_).tickSize(0)).select(".domain").remove();const v=I().range([(p+u)*c.length,0]).domain(c).padding(.05);s.append("g").style("font-size",15).attr("transform","translate("+x+","+g+")").call(k(v).tickSize(0)).select(".domain").remove();var z=S().interpolator(w).domain([0,l]);const E=o.pane.append("div").style("position","absolute").attr("class","tooltip").style("background-color","white").style("border","solid").style("border-width","2px").style("border-radius","5px").style("padding","5px").style("opacity",0);e.gene_heatmap.forEach(((t,n)=>{e.gene_heatmap[n].heatmap.forEach(((e,n)=>{const o=s.append("g").attr("transform","translate("+x+","+g+")");o.append("rect").attr("x",_(t.genename)).attr("y",v(e.category+" ("+e.numberofcells+")")).attr("width",_.bandwidth()).attr("height",v.bandwidth()).style("fill",z(e.mean)).style("stroke-width",4).style("stroke","none").style("opacity",.8).on("mouseover",(function(t){E.transition().duration(200).style("opacity",.9);E.html("Mean Expression: "+e.mean).style("left",j(t,this)[0]+70+"px").style("top",j(t,this)[1]+20+"px")})).on("mouseout",(function(){E.transition().duration(500).style("opacity",0)}))}))}));const M=z.ticks(10).reverse();M.unshift(l.toFixed(2));const C=s.selectAll(".legend").data(M).enter().append("g").attr("class","legend").attr("transform",(function(e,t){return"translate("+(h-y)+","+(30+t*20)+")"}));C.append("rect").attr("width",20).attr("height",20).style("fill",z).style("opacity",.8);C.append("text").attr("x",26).attr("y",10).attr("dy",".35em").text(String)}function te(e,t){let n=0;for(const o of e){t.append("text").text(o.category+" ("+o.numberofcells+")").attr("font-family",p).attr("font-size",15).each((function(){n=Math.max(n,this.getBBox().width)})).remove()}return n+4}function ne(e){return new Promise(((t,n)=>{const o=document.createElement("script");o.setAttribute("src",sessionStorage.getItem("hostURL")+e);document.head.appendChild(o);o.onload=t}))}async function oe(e,t){if(!e.legendimg)return;const n=t.holder.append("div").style("margin-top","5px");t.legendimg=e.legendimg;t.legend={holder:n,legendcolor:"#7D6836"};let o=!e.foldlegend;n.append("div").text("LEGEND").attr("class","sja_clb").style("display","inline-block").style("font-size",".7em").style("color",t.legend.legendcolor).style("font-family",p).on("click",(()=>{if(o){o=false;y(a)}else{o=true;x(a)}}));const a=t.holder.append("div").style("border-top","solid 1px "+t.legend.legendcolor).style("background-color","#FCFBF7");t.legend.holder=a.append("table").style("border-spacing","15px").style("border-collapse","separate");const[s,i]=h(t,t.legendimg.name||"");const r=await f("img?file="+t.legendimg.file);if(r.error){i.text(r.error);return}let l=true;const c=i.append("img").attr("class","sja_clbb").attr("src",r.src).style("height","80px");c.on("click",(()=>{if(l){l=false;c.transition().style("height",t.legendimg.height?t.legendimg.height+"px":"auto")}else{l=true;c.transition().style("height","80px")}}))}export{A as init};
1
+ import{a8 as e,a3 as t,bs as n,bt as o,bu as a,$ as s,bv as i,j as r,q as l,M as c,ah as p,I as d,bw as u,bx as g,Z as m,ac as y,p as x,a7 as f}from"./app-b369b169.js";import{l as h}from"./block.legend-d3f61ef7.js";import{s as _}from"./legacy-d3-polyfill-bdb2d792.js";import{a as b,c as v,b as k}from"./axis-747c801e.js";import{p as w}from"./viridis-01ab20c5.js";import{l as z}from"./line-264f8f9e.js";import{a as E}from"./area-f56e50f9.js";import{p as j}from"./pointer-c7475677.js";import"./vcf-5cc55588.js";import"./partition-db811f6b.js";import"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";function M(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;var o=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);while(++o<a){s[o]=e+o*n}return s}function I(){var n=e().unknown(undefined),o=n.domain,a=n.range,s=0,i=1,r,l,c=false,p=0,d=0,u=.5;delete n.unknown;function g(){var e=o().length,t=i<s,n=t?i:s,g=t?s:i;r=(g-n)/Math.max(1,e-p+d*2);if(c)r=Math.floor(r);n+=(g-n-r*(e-p))*u;l=r*(1-p);if(c)n=Math.round(n),l=Math.round(l);var m=M(e).map((function(e){return n+r*e}));return a(t?m.reverse():m)}n.domain=function(e){return arguments.length?(o(e),g()):o()};n.range=function(e){return arguments.length?([s,i]=e,s=+s,i=+i,g()):[s,i]};n.rangeRound=function(e){return[s,i]=e,s=+s,i=+i,c=true,g()};n.bandwidth=function(){return l};n.step=function(){return r};n.round=function(e){return arguments.length?(c=!!e,g()):c};n.padding=function(e){return arguments.length?(p=Math.min(1,d=+e),g()):p};n.paddingInner=function(e){return arguments.length?(p=Math.min(1,e),g()):p};n.paddingOuter=function(e){return arguments.length?(d=+e,g()):d};n.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),g()):u};n.copy=function(){return I(o(),[s,i]).round(c).paddingInner(p).paddingOuter(d).align(u)};return t.apply(g(),arguments)}function C(){var e=0,t=1,n,a,r,l,c=o,p=false,d;function u(e){return e==null||isNaN(e=+e)?d:c(r===0?.5:(e=(l(e)-n)*r,p?Math.max(0,Math.min(1,e)):e))}u.domain=function(o){return arguments.length?([e,t]=o,n=l(e=+e),a=l(t=+t),r=n===a?0:1/(a-n),u):[e,t]};u.clamp=function(e){return arguments.length?(p=!!e,u):p};u.interpolator=function(e){return arguments.length?(c=e,u):c};function g(e){return function(t){var n,o;return arguments.length?([n,o]=t,c=e(n,o),u):[c(0),c(1)]}}u.range=g(s);u.rangeRound=g(i);u.unknown=function(e){return arguments.length?(d=e,u):d};return function(o){l=o,n=o(e),a=o(t),r=n===a?0:1/(a-n);return u}}function N(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function S(){var e=n(C()(o));e.copy=function(){return N(e,S())};return a.apply(e,arguments)}function R(e){return e<0?-1:1}function T(e,t,n){var o=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(o||a<0&&-0),i=(n-e._y1)/(a||o<0&&-0),r=(s*a+i*o)/(o+a);return(R(s)+R(i))*Math.min(Math.abs(s),Math.abs(i),.5*Math.abs(r))||0}function G(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function H(e,t,n){var o=e._x0,a=e._y0,s=e._x1,i=e._y1,r=(s-o)/3;e._context.bezierCurveTo(o+r,a+r*t,s-r,i-r*n,s,i)}function P(e){this._context=e}P.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:H(this,this._t0,G(this,this._t0));break}if(this._line||this._line!==0&&this._point===1)this._context.closePath();this._line=1-this._line},point:function(e,t){var n=NaN;e=+e,t=+t;if(e===this._x1&&t===this._y1)return;switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;H(this,G(this,n=T(this,e,t)),n);break;default:H(this,this._t0,n=T(this,e,t));break}this._x0=this._x1,this._x1=e;this._y0=this._y1,this._y1=t;this._t0=n}};Object.create(P.prototype).point=function(e,t){P.prototype.point.call(this,t,e)};function L(e){return new P(e)}async function A(e,t){try{const n=await D(e);O(n);n.genome=e.genome;n.holder=t.style("position","relative");await F(n);Z(n);await B(n);oe(e,n)}catch(e){r(t,e.message||e)}}async function D(e){if(!e.jsonfile)throw".jsonfile missing";const t=await l("textfile",{file:e.jsonfile});if(t.error)throw t.error;return JSON.parse(t.text)}function O(t){if(!t.cells)throw".cells{} missing";if(!t.cells.file)throw".cells.file missing";if(!t.cells.axis2columnidx)throw".cells.axis2columnidx missing";if(t.cells.categories){if(!Array.isArray(t.cells.categories))throw".cells.categories should be an array";if(t.cells.categories.length==0)throw".cells.categories[] is empty array";for(const n of t.cells.categories){if(!Number.isInteger(n.columnidx))throw"columnidx missing from category "+n;if(n.autocolor){n.autocolor=e(_)}}if(!Number.isInteger(t.use_category_index)){t.use_category_index=0}if(!t.cells.categories[t.use_category_index])throw"use_category_index out of bound";if(!t.cells.categories[t.use_category_index].hidden_types)t.cells.categories[t.use_category_index].hidden_types=[]}if(t.gene_expression){if(!t.gene_expression.file)throw".gene_expression.file missing";if(!Number.isInteger(t.cells.barcodecolumnidx))throw".gene_expression in use but .cells.barcodecolumnidx is missing"}if(!t.width)t.width=window.innerWidth*.9;if(!t.height)t.height=window.innerHeight*.9}async function B(e){if(Number.isInteger(e.use_category_index)){if(!e.cells.categories[e.use_category_index].hidden_types)e.cells.categories[e.use_category_index].hidden_types=[]}const t=await W(e);e.data_sphere_r=t.data_sphere_r;if(!e.camera.position.z){e.camera.position.z=e.data_sphere_r*3;e.controls.maxDistance=e.data_sphere_r*4;e.controls.minDistance=e.data_sphere_r/10}const n=new TextEncoder;const o=n.encode(t.pcddata).buffer;V(e,o);q(e,t);a();function a(){requestAnimationFrame(a);e.controls.update();e.renderer.render(e.scene,e.camera)}}async function W(e){const t=e.holder.append("div").style("position","absolute").style("top",0).style("left",0).style("padding","10px").style("font-size","1.5rem").text("Loading data...");const n={genome:e.genome.name,textfile:e.cells.file,delimiter:e.cells.delimiter||"\t",getpcd:{coord:e.cells.axis2columnidx}};if(Number.isInteger(e.use_category_index)){if(!e.cells.categories)throw"using category index but cells.categories[] missing";const t=e.cells.categories[e.use_category_index];if(!t)throw"category array index out of bound";n.getpcd.category_index=t.columnidx;if(t.autocolor){n.getpcd.category_autocolor=true;if(t.values_count)n.getpcd.values_count=t.values_count}else if(t.values){n.getpcd.category_customcolor=true;n.getpcd.cat_values=t.values}else{if(!t.autocolor&&!t.values)throw"categories.values[] are not defined";throw"unknow coloring scheme for category "+t.name}if(t.hidden_types){n.hidden_types=t.hidden_types}if(e.background_color){n.background_color=e.background_color}if(!t.customorder){n.getpcd.category_autoorder=true}else if(t.customorder&&t.values){n.getpcd.category_customorder=true;n.getpcd.cat_values=t.values}else{if(t.customorder&&!t.values)throw"categories.values[] are not defined";throw"unknow ordering scheme for category "+t.name}e.menu_button.html(t.name+"&nbsp;&nbsp;&#9660;")}else if(Number.isInteger(e.use_gene_index)){const t=e.gene_expression.genes[e.use_gene_index];e.menu_button.html("Gene : "+t.gene+"&nbsp;&nbsp;&#9660;");n.getpcd.gene_expression={file:e.gene_expression.file,barcodecolumnidx:e.cells.barcodecolumnidx,chr:t.chr,start:t.start,stop:t.stop,autoscale:true,genename:t.gene,color_min:e.gene_expression.color_min,color_max:e.gene_expression.color_max};if(e.gene_expression.color_no_exp)n.getpcd.gene_expression.color_no_exp=e.gene_expression.color_no_exp}else{throw"unknown method to color the cells"}return l("singlecell",n).then((e=>{if(e.error)throw e.error;t.remove();return e}))}async function F(e){await ne("/static/js/three.js");await ne("/static/js/loaders/PCDLoader.js");await ne("/static/js/controls/TrackballControls.js");await ne("/static/js/WebGL.js");if(WEBGL.isWebGLAvailable()===false){e.holder.node().appendChild(WEBGL.getWebGLErrorMessage());return}e.scene=new THREE.Scene;if(e.background_color){e.scene.background=new THREE.Color(e.background_color)}else{e.scene.background=new THREE.Color(16777215)}const t=e.default_zoom?100-e.default_zoom:45;e.camera=new THREE.PerspectiveCamera(t,e.width/e.height,.1,1e3);e.camera.position.x=e.canvas_2d?0:20;e.camera.position.y=e.canvas_2d?0:-10;if(e.canvas_2d){e.camera.up.set(0,1,0)}else{e.camera.up.set(0,0,1)}e.controls=new THREE.TrackballControls(e.camera);e.controls.rotateSpeed=e.canvas_2d?0:2;e.controls.zoomSpeed=e.canvas_2d?3:.7;e.controls.panSpeed=e.canvas_2d?3:.7;e.controls.noZoom=true;e.controls.noPan=false;e.controls.staticMoving=true;e.controls.dynamicDampingFactor=.3;e.scene.add(e.camera);e.renderer=new THREE.WebGLRenderer({antialias:true,preserveDrawingBuffer:true});e.renderer.setPixelRatio(window.devicePixelRatio);e.renderer.setSize(e.width,e.height);e.renderer.domElement.style.backgroundColor="#ffffff";e.renderer.domElement.style.border="solid #dddddd 2px";e.holder.style("display","inline-block").style("position","relative").node().appendChild(e.renderer.domElement);e.renderer.render(e.scene,e.camera)}function V(e,t){e.scene.children.forEach((function(t,n){if(t.material){t.material.dispose();t.geometry.dispose();e.scene.remove(t)}}));const n=new THREE.PCDLoader;const o=n.parse(t,"");if(e.point_size){o.material.size=e.point_size}else{o.material.size=e.canvas_2d?.3:.05}e.scene.add(o);e.center=o.geometry.boundingSphere.center;e.controls.target.set(e.center.x,e.center.y,e.center.z);e.controls.update()}function Z(e){e.menu=new c;e.menu.d.style("padding","3px");e.settings=new c;e.settings.d.style("padding","3px");const t=e.holder.append("div").style("padding","10px").style("position","absolute").style("border-radius","5px").style("top","20px").style("right","20px").style("background-color","#dddddd");e.menu_button=t.append("button").style("display","inline-block").style("padding","4px").on("click",(()=>J(e)));const n=e.minimize_btn=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").classed("active",e.menu_minimized?true:false).text(e.menu_minimized?" SHOW":" HIDE").on("click",(()=>{e.minimize_btn.classed("active",e.minimize_btn.classed("active")?false:true);if(e.minimize_btn.classed("active")){e.minimize_btn.text(" SHOW");e.menu_output.style("display","none")}else{e.minimize_btn.text(" HIDE");e.menu_output.style("display","block")}})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.use_background_color=0;const o=e.settings_btn=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","3px").style("padding-right","3px").style("float","right").style("font-size",".6em").text("CONFIG").on("click",(()=>$(e))).on("mouseover",(()=>{o.style("text-decoration","underline")})).on("mouseout",(()=>{o.style("text-decoration","none")}));e.menu_output=t.append("div").style("margin-top","10px").style("display",e.menu_minimized?"none":"block");e.show_zoom=true}function q(e,t){e.menu_output.selectAll("*").remove();if(t.category2color){const n=e.menu_output.append("div").style("margin","2px");const o=n.append("input").attr("type","checkbox").style("margin-right","10px").style("vertical-align","top").style("display","inline-block").on("change",(()=>{if(o.node().checked){e.cells.categories[e.use_category_index].hidden_types=[];B(e)}else{for(const n in t.category2color){e.cells.categories[e.use_category_index].hidden_types.push(n)}B(e)}}));if(e.cells.categories[e.use_category_index].hidden_types.length==0){o.property("checked",1)}n.append("span").text("Select All").style("font-size",".8em").attr("font-family",p);for(const n in t.category2color){const o=e.menu_output.append("div").style("margin","2px");const a=o.append("input").attr("type","checkbox").property("checked",1).style("margin-right","10px").style("vertical-align","top").style("display","inline-block").on("change",(()=>{if(e.cells.categories[e.use_category_index].hidden_types.includes(n)){const t=e.cells.categories[e.use_category_index].hidden_types.indexOf(n);if(t!==-1)e.cells.categories[e.use_category_index].hidden_types.splice(t,1);a.property("checked",1)}else{e.cells.categories[e.use_category_index].hidden_types.push(n)}B(e)}));if(e.cells.categories[e.use_category_index].hidden_types.includes(n)){a.property("checked",0)}o.append("div").style("display","inline-block").style("height","15px").style("width","15px").style("background-color",t.category2color[n]).style("margin-right","10px");o.append("span").text(n).attr("font-family",p);o.append("span").html("&nbsp;n="+t.categorycount[n]).attr("font-family",p).style("font-size",".8em").style("float","right").style("color","#777")}}else if(t.maxexpvalue){const n=30;const o=150;const a=e.menu_output.append("div").style("margin","10px").style("width","120px").style("height","100px");a.append("div").text("Gene Expression "+e.gene_expression.datatype).style("text-align","center").style("width","150px").style("margin-bottom","20px");const s=a.append("svg").append("g");const i=[e.gene_expression.color_max,e.gene_expression.color_min];const r=d().range(i).domain([t.minexpvalue,t.maxexpvalue]);const p=s.append("defs");const u=p.append("linearGradient").attr("id","linear-gradient");u.append("stop").attr("offset","0%").attr("stop-color",r(t.maxexpvalue));u.append("stop").attr("offset","100%").attr("stop-color",r(t.minexpvalue));s.append("rect").attr("x",0).attr("y",0).attr("width",o).attr("height",n).attr("transform","translate(12, 0)").style("fill","url(#linear-gradient)");const g=d().range([0,o]).domain([t.minexpvalue,t.maxexpvalue]);const m=b().scale(g).ticks(5);s.append("g").attr("class","legend axis").attr("transform","translate(12,"+n+")").call(m);const y=e.menu_output.append("div").style("padding-bottom","20px").style("text-align","center");y.append("p").style("font-size","13px").style("margin","2px 0").html("<b>Cells with Expression Data</b> ");y.append("p").style("font-size","13px").style("margin","2px 0").html(t.numbercellwithgeneexp+" / "+t.numbercelltotal);const x=y.append("div").style("display","block").style("margin-top","10px");x.append("div").style("display","inline-block").style("height","15px").style("width","15px").style("background-color",e.gene_expression.color_no_exp?e.gene_expression.color_no_exp:"#2C2C2C").style("margin-right","10px");x.append("div").style("display","inline-block").style("font-size","13px").html(" Cells without Expression");const f=e.menu_output.append("div");f.append("div").style("display","block").style("padding","5px").html("Violinplot / Boxplot of </br> Expression by");const h=f.append("select").style("display","block");h.append("option").attr("value","none").text("-- Select--");if(e.cells.categories){e.cells.categories.forEach(((e,t)=>{h.append("option").attr("value",e.columnidx).text(e.name)}))}h.on("change",(()=>{const t=e.gene_expression.genes[e.use_gene_index];const n=e.cells.categories[parseInt(h.node().selectedIndex)-1];const o={genome:e.genome.name,getgeneboxplot:{expfile:e.gene_expression.file,chr:t.chr,start:t.start,stop:t.stop,genename:t.gene,cellfile:e.cells.file,barcodecolumnidx:e.cells.barcodecolumnidx,categorycolumnidx:parseInt(h.node().value),delimiter:e.cells.delimiter||"\t",category_customorder:n.customorder&&n.values?true:false,category_autoorder:!n.customorder?true:false,cat_values:n.values,values_count:n.values_count}};l("singlecell",o).then((t=>{if(t.error)throw t.error;e.box_plot=new c;Q(t,e,h.node().value)}))}))}U(e)}function U(e){if(e.show_zoom){const t=e.menu_output.append("div").style("display","block").text("Zoom").style("margin","10px 5px 5px 5px").style("padding-top","10px").style("border-top","1px solid #929292");const n=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").text("MOVE TO CONFIG").on("click",(()=>{t.node().remove();e.show_zoom=false})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.zoom_slider=t.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",1).attr("max",100).attr("value",e.camera.fov).style("direction","rtl").on("change",(()=>{e.camera.fov=parseInt(e.zoom_slider.node().value);e.camera.updateProjectionMatrix()})).on("mousedown",(e=>{e.stopPropagation()}))}}function J(e){e.menu.clear().showunder(e.menu_button.node());if(e.cells.categories){e.cells.categories.forEach(((t,n)=>{if(n!=e.use_category_index){e.menu.d.append("div").text(t.name).attr("class","sja_menuoption").on("click",(async()=>{e.menu.hide();e.use_category_index=n;B(e)})).append("span").attr("font-family",p).style("display",t.values_count?"inline-block":"none").style("font-size",".8em").style("float","right").style("color","#777").style("padding","3px 5px").html(t.values_count?"&nbsp;n="+t.values_count:"")}}))}if(e.gene_expression){e.menu.d.append("div").text("Gene expression").attr("class","sja_menuoption").on("click",(()=>{e.menu.clear();const t=e.menu.d.append("div").style("padding","10px");u({div:t.append("div"),resultdiv:t.append("div"),genome:e.genome.name,callback:async t=>{const n=await g(e.genome.name,t);if(n&&n[0]){const o=n[0];if(!e.gene_expression.genes)e.gene_expression.genes=[];const a=e.gene_expression.genes.findIndex((e=>e.gene==t));if(a==-1){e.gene_expression.genes.push({gene:t,chr:o.chr,start:o.start,stop:o.stop});e.use_gene_index=e.gene_expression.genes.length-1}else{e.use_gene_index=a}}e.use_category_index=null;e.menu.hide();B(e)}})}));e.menu.d.append("div").text("Multi-Gene Heatmap").attr("class","sja_menuoption").on("click",(()=>{K(e)}));if(e.gene_expression.genes){if(e.gene_expression.genes.length>1){e.menu.d.append("div").style("padding","5px 10px").text("Previously Selected")}e.gene_expression.genes.forEach(((t,n)=>{if(n!=e.use_gene_index){e.menu.d.append("div").text("Gene : "+t.gene).attr("class","sja_menuoption").on("click",(async()=>{e.menu.hide();e.use_category_index=null;e.use_gene_index=n;B(e)}))}}))}}}function $(e){e.settings.clear().showunder(e.settings_btn.node());const t=e.settings.d.append("div").style("display","block").text("Background Color").style("margin","5px");const n=t.append("div").style("margin","5px").style("display","block");const o=Math.random(),a=Math.random(),s=Math.random();const i=n.append("input").attr("type","radio").style("display","inline-block").attr("name",o).attr("id",a).on("change",c);n.append("label").style("display","inline-block").style("font-size",".8em").text("Black").style("padding-left","10px").attr("for",a);const r=t.append("div").style("margin","5px").style("display","block");const l=r.append("input").attr("type","radio").style("display","inline-block").attr("name",o).attr("id",s).on("change",c);r.append("label").style("display","inline-block").style("font-size",".8em").text("White").style("padding-left","10px").attr("for",s);if(e.use_background_color==0){l.property("checked",1)}else{i.property("checked",1)}function c(){const t=e.background_color=="black";e.scene.background=new THREE.Color(t?16777215:0);e.use_background_color=t?0:1;e.background_color=t?"white":"black"}const p=e.settings.d.append("div").style("display","block").text("Point Size").style("margin","20px 5px");const d=p.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",1).attr("max",70).attr("value",e.scene.children[1].material.size*100).on("change",(()=>{e.scene.children[1].material.size=d.node().value/100}));if(e.show_zoom==false){const t=e.settings.d.append("div").style("display","block").text("Zoom").style("margin","20px 5px");const n=t.append("div").style("margin-left","10px").style("display","inline-block").style("padding-left","0px").style("padding-right","2px").style("float","right").style("font-size",".6em").html("MOVE TO </br>LEGEND PANEL").on("click",(()=>{t.node().remove();e.show_zoom=true;U(e)})).on("mouseover",(()=>{n.style("text-decoration","underline")})).on("mouseout",(()=>{n.style("text-decoration","none")}));e.zoom_slider=t.append("input").style("display","block").style("padding","5px").attr("type","range").attr("min",5).attr("max",70).attr("value",e.camera.fov).style("direction","rtl").on("change",(()=>{e.camera.fov=parseInt(e.zoom_slider.node().value);e.camera.updateProjectionMatrix()}))}e.settings.d.append("div").style("margin","5px").text("Panning");e.settings.d.append("div").style("font-size",".8em").style("text-align","center").style("margin-bottom","10px").html('<p style="margin:3px;">Right mouse click </br>+ Mouse move</p>');if(!e.canvas_2d){e.settings.d.append("div").style("margin","5px").text("Rotate");e.settings.d.append("div").style("font-size",".8em").style("text-align","center").style("margin-bottom","10px").html('<p style="margin:3px;">Left mouse click </br>+ Mouse move</p>')}e.settings.d.append("div").attr("class","sja_menuoption").text("Reset view").style("width","80px").style("margin","auto").style("margin-top","15px").style("margin-bottom","15px").on("click",(()=>{l.property("checked",1);e.scene.background=new THREE.Color(e.background_color?e.background_color:16777215);d.node().value=e.point_size?e.point_size*100:e.canvas_2d?30:5;e.scene.children[1].material.size=e.point_size?e.point_size:e.canvas_2d?.3:.05;e.camera.position.z=e.data_sphere_r*3;e.camera.position.x=e.canvas_2d?0:20;e.camera.position.y=e.canvas_2d?0:-10;const t=45;e.camera.fov=parseInt(t);e.camera.updateProjectionMatrix();e.zoom_slider.node().value=t;if(e.canvas_2d){e.camera.up.set(0,1,0)}else{e.camera.up.set(0,0,1)}e.controls.target.set(e.center.x,e.center.y,e.center.z)}));const u=e.settings.d.append("div").attr("class","sja_menuoption").style("padding","5px").style("width","80px").style("margin","auto").style("margin-top","15px").style("margin-bottom","15px").html("<b>&#10697;</b> Capture").on("mousedown",(()=>{const t=e.renderer.domElement.toDataURL();let n=document.createElement("img");n.src=t;u.append("span").style("display","none").html('<a download="scRNA_'+(new Date).toLocaleString()+'.png" href="'+n.src+'" title="ImageName">Camera</a>')})).on("mouseup",(()=>{u.select("a").node().click();u.selectAll("span").remove()}))}function K(e){e.menu.clear();e.gene_expression.heatmap_genes=[];e.use_heatmap_category_index=null;const t=e.menu.d.append("div").style("display","block").style("padding","10px");const n=t.append("div").style("display","block");const o=n.append("div").style("display","inline-block").style("vertical-align","top").style("padding","10px");o.append("div").style("display","block").style("padding-bottom","5px").text("Add Genes");o.append("textarea").attr("rows","4").attr("cols","20").attr("placeholder","Type gene names seperated by space");const a=t.append("div");a.append("div").style("display","block").style("padding-bottom","5px").style("padding-left","10px").text("Heatmap by");const s=a.append("select").style("display","block").style("margin-left","10px");s.append("option").attr("value","none").text("-- Select--");if(e.cells.categories){e.cells.categories.forEach(((e,t)=>{s.append("option").attr("value",e.columnidx).text(e.name)}))}s.on("change",(()=>{e.use_heatmap_category_index=parseInt(s.node().value)}));t.append("button").text("Heatmap").style("display","block").style("float","right").style("margin","5px").on("click",(async()=>{const t=o.select("textarea").node().value;const n=t.split(" ");for(const t of n){const n=await g(e.genome.name,t);if(n&&n[0]){const o=n[0];if(!e.gene_expression.heatmap_genes)e.gene_expression.heatmap_genes=[];const a=e.gene_expression.heatmap_genes.findIndex((e=>e.gene==t));if(a==-1){e.gene_expression.heatmap_genes.push({gene:t,chr:o.chr,start:o.start,stop:o.stop})}}}const a={genome:e.genome.name,getheatmap:{expfile:e.gene_expression.file,gene_list:e.gene_expression.heatmap_genes,cellfile:e.cells.file,barcodecolumnidx:e.cells.barcodecolumnidx,categorycolumnidx:parseInt(s.node().value),delimiter:e.cells.delimiter||"\t"}};l("singlecell",a).then((t=>{if(t.error)throw t.error;e.menu.hide();ee(t,e,s.node().value)}))}))}function Q(e,t,n){const o=t.gene_expression.genes[t.use_gene_index];const a=m({x:600,y:400});const s=t.cells.categories.find((e=>e.columnidx==n));a.header.text("Violinplot/Boxplot for "+o.gene+" Expression by "+s.name);const i=a.pane.append("div").style("margin","10px 10px 10px 15px");const r=a.pane.append("svg").style("margin","10px");const c=i.append("select").style("display","inline-block");c.append("option").attr("value","violin").text("Violin Plot");c.append("option").attr("value","box").text("Box Plot");c.on("change",(()=>{u()}));const p=i.append("div").style("display","inline-block").style("padding-left","15px").text("Cells without expression");const d=p.append("select").style("display","inline-block").style("margin-left","5px");d.append("option").attr("value","include").text("Include");d.append("option").attr("value","exclude").text("Exclude");d.on("change",(()=>{u()}));X(e,r);function u(){const e=t.gene_expression.genes[t.use_gene_index];const o={genome:t.genome.name,getgeneboxplot:{expfile:t.gene_expression.file,chr:e.chr,start:e.start,stop:e.stop,genename:e.gene,cellfile:t.cells.file,barcodecolumnidx:t.cells.barcodecolumnidx,categorycolumnidx:parseInt(n),delimiter:t.cells.delimiter||"\t",category_customorder:s.customorder&&s.values?true:false,category_autoorder:!s.customorder?true:false,cat_values:s.values,values_count:s.values_count}};if(d.node().value=="exclude"){o.getgeneboxplot.exclude_cells=true}l("singlecell",o).then((e=>{if(e.error)throw e.error;if(c.node().value=="box")Y(e,r);else if(c.node().value=="violin")X(e,r)}))}}function X(e,t){t.selectAll("*").remove();let n=50,o=200,a=2,s=30;const i=te(e.boxplots,t);const r=d().range([0,o]).domain([e.minexpvalue,e.maxexpvalue]);const l=d().range([n,0]).domain([0,1]);const c=e.boxplots.length*(n+a)+s;const u=o+i+20;t.transition().attr("width",u).attr("height",c);if(e.boxplots){e.boxplots.forEach(((o,c)=>{const d=t.append("g").attr("transform","translate("+i+","+(c*(n+a)+s)+")");d.append("text").text(o.category+" ("+o.numberofcells+")").attr("transform","translate(-4,"+n/2+")").attr("text-anchor","end").attr("font-size",15).attr("font-family",p).attr("dominant-baseline","central");if(o.density){const t=Math.max(...o.density);z().x((function(t,n){return r(n*e.maxexpvalue/o.density.length)})).y((function(e){return l(e/t)/2})).curve(L);const a=E().x((function(t,n){return r(n*e.maxexpvalue/o.density.length)})).y0((function(e){const o=l(e/t)/2;return n-o})).y1((function(e){return l(e/t)/2})).curve(L);d.append("path").datum(o.density).attr("class","area").attr("d",a).style("fill",o.color).style("stroke","black").style("stroke-width",.5)}}));const o=v().scale(r).ticks(5);t.append("g").attr("class","legend axis").attr("transform","translate("+i+","+(s-10)+")").call(o)}}function Y(e,t){t.selectAll("*").remove();let n=36,o=200,a=16,s=30;const i=te(e.boxplots,t);const r=d().range([0,o]).domain([e.minexpvalue,e.maxexpvalue]);d().range([n,0]).domain([0,1]);const l=e.boxplots.length*(n+a)+s;const c=o+i+20;t.transition().attr("width",c).attr("height",l);if(e.boxplots){e.boxplots.forEach(((e,o)=>{const l=t.append("g").attr("transform","translate("+i+","+(o*(n+a)+s)+")");l.append("text").text(e.category+" ("+e.numberofcells+")").attr("transform","translate(-4,"+n/2+")").attr("text-anchor","end").attr("font-size",15).attr("font-family",p).attr("dominant-baseline","central");if(e.p75){l.append("line").attr("x1",r(e.w1)).attr("y1",n/2).attr("x2",r(e.w2)).attr("y2",n/2).attr("stroke-width",2).attr("stroke","black");l.append("rect").attr("x",r(e.p25)).attr("y",0).attr("width",r(e.p75-e.p25)).attr("height",n).attr("fill",e.color);l.append("line").attr("x1",r(e.w1)).attr("y1",0).attr("x2",r(e.w1)).attr("y2",n).attr("stroke-width",2).attr("stroke","black");l.append("line").attr("x1",r(e.p50)).attr("y1",0).attr("x2",r(e.p50)).attr("y2",n).attr("stroke-width",2).attr("stroke","white");l.append("line").attr("x1",r(e.w2)).attr("y1",0).attr("x2",r(e.w2)).attr("y2",n).attr("stroke-width",2).attr("stroke","black");if(e.out){for(const t of e.out){l.append("circle").attr("cx",r(t.value)).attr("cy",n/2).attr("r",2).attr("fill","#901739")}}}}));const o=v().scale(r).ticks(5);t.append("g").attr("class","legend axis").attr("transform","translate("+i+","+(s-10)+")").call(o)}}function ee(e,t,n){const o=m({x:600,y:400});const a=t.cells.categories.find((e=>e.columnidx==n));o.header.text("Heatmap for Gene Expression by "+a.name);const s=o.pane.append("svg").style("margin","10px");let i=[];for(const t of e.gene_heatmap)i.push(t.genename);let r=[];e.gene_heatmap.forEach(((t,n)=>{e.gene_heatmap[n].heatmap.forEach((e=>{r.push(e.mean)}))}));const l=Math.max(...r);let c=[];for(const t of e.gene_heatmap[0].heatmap)c.push(t.category+" ("+t.numberofcells+")");let p=20,d=80,u=2,g=30,y=60;const x=te(e.gene_heatmap[0].heatmap,s);const f=(p+u)*c.length+g;const h=(d+u)*i.length+x+y+20;s.transition().attr("width",h).attr("height",f);const _=I().range([0,(d+u)*i.length]).domain(i).padding(.05);s.append("g").style("font-size",15).attr("transform","translate("+x+",0)").call(b(_).tickSize(0)).select(".domain").remove();const v=I().range([(p+u)*c.length,0]).domain(c).padding(.05);s.append("g").style("font-size",15).attr("transform","translate("+x+","+g+")").call(k(v).tickSize(0)).select(".domain").remove();var z=S().interpolator(w).domain([0,l]);const E=o.pane.append("div").style("position","absolute").attr("class","tooltip").style("background-color","white").style("border","solid").style("border-width","2px").style("border-radius","5px").style("padding","5px").style("opacity",0);e.gene_heatmap.forEach(((t,n)=>{e.gene_heatmap[n].heatmap.forEach(((e,n)=>{const o=s.append("g").attr("transform","translate("+x+","+g+")");o.append("rect").attr("x",_(t.genename)).attr("y",v(e.category+" ("+e.numberofcells+")")).attr("width",_.bandwidth()).attr("height",v.bandwidth()).style("fill",z(e.mean)).style("stroke-width",4).style("stroke","none").style("opacity",.8).on("mouseover",(function(t){E.transition().duration(200).style("opacity",.9);E.html("Mean Expression: "+e.mean).style("left",j(t,this)[0]+70+"px").style("top",j(t,this)[1]+20+"px")})).on("mouseout",(function(){E.transition().duration(500).style("opacity",0)}))}))}));const M=z.ticks(10).reverse();M.unshift(l.toFixed(2));const C=s.selectAll(".legend").data(M).enter().append("g").attr("class","legend").attr("transform",(function(e,t){return"translate("+(h-y)+","+(30+t*20)+")"}));C.append("rect").attr("width",20).attr("height",20).style("fill",z).style("opacity",.8);C.append("text").attr("x",26).attr("y",10).attr("dy",".35em").text(String)}function te(e,t){let n=0;for(const o of e){t.append("text").text(o.category+" ("+o.numberofcells+")").attr("font-family",p).attr("font-size",15).each((function(){n=Math.max(n,this.getBBox().width)})).remove()}return n+4}function ne(e){return new Promise(((t,n)=>{const o=document.createElement("script");o.setAttribute("src",sessionStorage.getItem("hostURL")+e);document.head.appendChild(o);o.onload=t}))}async function oe(e,t){if(!e.legendimg)return;const n=t.holder.append("div").style("margin-top","5px");t.legendimg=e.legendimg;t.legend={holder:n,legendcolor:"#7D6836"};let o=!e.foldlegend;n.append("div").text("LEGEND").attr("class","sja_clb").style("display","inline-block").style("font-size",".7em").style("color",t.legend.legendcolor).style("font-family",p).on("click",(()=>{if(o){o=false;y(a)}else{o=true;x(a)}}));const a=t.holder.append("div").style("border-top","solid 1px "+t.legend.legendcolor).style("background-color","#FCFBF7");t.legend.holder=a.append("table").style("border-spacing","15px").style("border-collapse","separate");const[s,i]=h(t,t.legendimg.name||"");const r=await f("img?file="+t.legendimg.file);if(r.error){i.text(r.error);return}let l=true;const c=i.append("img").attr("class","sja_clbb").attr("src",r.src).style("height","80px");c.on("click",(()=>{if(l){l=false;c.transition().style("height",t.legendimg.height?t.legendimg.height+"px":"auto")}else{l=true;c.transition().style("height","80px")}}))}export{A as init};
@@ -0,0 +1 @@
1
+ import{P as e,n as t,d as o,b as s,y as r}from"./app-b369b169.js";import{r as l}from"./table-29d5a973.js";import{appInit as i}from"./plot.app-30c4b8e5.js";import"./tslib.es6-c3c2d88f.js";import"./recover-49e09de0.js";import"./termsetting-33ea66f1.js";import"path";import"./FilterRxComp-701a1480.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";import"./FilterStateless-54c0b763.js";import"./app-3320ab6f.js";import"./termInfo-bf99a37e.js";import"./toggleButtons-dbdbad01.js";import"./genesearch-a4e19f0d.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";const a="hg38";const p="GDC";const n=[{label:"Case"},{label:"Project"},{label:"Primary Site"},{label:"Disease Type"},{label:"Sample Type"}];async function d(s,r,l){const n=await i({holder:r,state:{genome:a,dslabel:p,termfilter:{filter0:s.filter0},plots:[{chartType:"singleCellPlot"}]},noheader:true,nobox:true,hide_dsHandles:true,genome:l[a],app:e({getPlotHolder:(e,s)=>{if(e.chartType=="gsea"){const r=t(o(s.select(`#${e.insertBefore}`).node().parentNode),{close:()=>{n.dispatch({type:"plot_delete",id:e.id})},plotId:e.id,beforePlotId:e.insertBefore||null,style:{width:"98.5%"}});r.header.text("GENE SET ENRICHMENT ANALYSIS");return r.body.style("white-space","nowrap")}else{return s.append("div")}}},s.opts?.app||{}),singleCellPlot:s.opts?.singleCell||{}});const d={update:async e=>{if("filter0"in e){n.dispatch({type:"app_refresh",subactions:[{type:"filter_replace",filter0:e.filter0},{type:"plot_edit",id:n.getState().plots[0].id,config:{sample:undefined}}]})}else{console.log(75,n);n.dispatch({type:"plot_edit",id:n.getState().plots[0].id,config:e})}}};return d}async function c({holder:e,filter0:t,callbackOnRender:o,debugmode:s=false}){const r={};if(typeof o=="function"){o(r)}const l={errDiv:e.append("div"),controlDiv:e.append("div"),tableDiv:e.append("div"),opts:{filter0:t}};await f(l);return r}async function f(e){e.tableDiv.selectAll("*").remove();const t=e.tableDiv.append("div").text("Loading...");let o;{const l={genome:a,dslabel:p};if(e.opts.filter0)l.filter0=e.opts.filter0;try{o=await s("termdb/singlecellSamples",{body:l});if(o.error)throw o.error}catch(o){t.remove();r(e.errDiv,o);return}}console.log(o);t.remove();const i=[];const d=[];for(const e of o.samples){for(const t of e.experiments){const o=[{value:e.sample},{value:e["case.project.project_id"]},{value:e["case.primary_site"]},{value:e["case.disease_type"]},{value:t.sampleType}];i.push(o);d.push(t.experimentID)}}l({rows:i,columns:n,resize:true,singleMode:true,div:e.tableDiv.append("div"),noButtonCallback:t=>{console.log(160);e.api.update({sample:d[t]})}})}export{c as gdcSinglecellUi,d as init};
@@ -1 +1 @@
1
- import{_ as s}from"./tslib.es6-1f85f553.js";import{M as t}from"./app-a8c4854a.js";import{a as o}from"./genesearch-ea59f5d4.js";class a{init(s){this.callback=s.callback;const a=o({tip:new t({padding:"0px"}),genome:s.genomeObj,row:s.holder,searchOnly:"snp",allowVariant:true,callback:()=>this.selectSnp(a)})}selectSnp(t){return s(this,void 0,void 0,(function*(){const{chr:s,ref:o,alt:a,fromWhat:e}=t;if(!s||!o||!a||!e)throw"missing chr, ref, alt, or fromWhat of snp";let r,i;if(!t.start&&!t.stop){if(t.pos){r=t.pos-1;i=t.pos}else{throw"missing coordinate of snp"}}else{r=t.start;i=t.stop}const n={id:e,chr:s,start:r,stop:i,name:e,ref:o,alt:typeof a=="string"?[a]:a,type:"snp"};this.callback(n)}))}}export{a as SearchHandler};
1
+ import{_ as s}from"./tslib.es6-c3c2d88f.js";import{M as t}from"./app-b369b169.js";import{a as o}from"./genesearch-a4e19f0d.js";class a{init(s){this.callback=s.callback;const a=o({tip:new t({padding:"0px"}),genome:s.genomeObj,row:s.holder,searchOnly:"snp",allowVariant:true,callback:()=>this.selectSnp(a)})}selectSnp(t){return s(this,void 0,void 0,(function*(){const{chr:s,ref:o,alt:a,fromWhat:e}=t;if(!s||!o||!a||!e)throw"missing chr, ref, alt, or fromWhat of snp";let r,i;if(!t.start&&!t.stop){if(t.pos){r=t.pos-1;i=t.pos}else{throw"missing coordinate of snp"}}else{r=t.start;i=t.stop}const n={id:e,chr:s,start:r,stop:i,name:e,ref:o,alt:typeof a=="string"?[a]:a,type:"snp"};this.callback(n)}))}}export{a as SearchHandler};
@@ -0,0 +1 @@
1
+ import{_ as t}from"./tslib.es6-c3c2d88f.js";import{getHandler as e}from"./categorical-a52014a1.js";import{P as r}from"./app-b369b169.js";import{s as i}from"./termsetting-33ea66f1.js";import"./groupsetting-b4416a96.js";import"path";function o(r){return t(this,void 0,void 0,(function*(){return e(r)}))}function s(e,o,s=null){return t(this,void 0,void 0,(function*(){if(typeof e.term!=="object")throw"tw.term is not an object";if(!e.term.id||!e.term.name)throw"missing snp id/name";if(!e.term.chr||!Number.isInteger(e.term.start)||!Number.isInteger(e.term.stop))throw"incomplete position information";if(!e.term.ref||!e.term.alt);if(!Object.keys(e.q).includes("type"))e.q.type="values";if(!e.term.groupsetting)e.term.groupsetting={disabled:false};if(e.q.type=="predefined-groupset"){if(!Number.isInteger(e.q.predefined_groupset_idx))throw"predefined_groupset_idx is not an integer"}if(e.q.type=="custom-groupset"){if(!e.q.customset)throw"invalid customset"}if(s){r(e.q,s)}i(e.q,e.term)}))}export{s as fillTW,o as getHandler};
@@ -0,0 +1 @@
1
+ import{_ as t}from"./tslib.es6-c3c2d88f.js";import{mayRestrictAncestry as e,makeSnpSelect as i}from"./snplst-6865d7c7.js";import{f as r}from"./FilterStateless-54c0b763.js";import{g as n}from"./FilterRxComp-701a1480.js";import"./termsetting-33ea66f1.js";import"./app-b369b169.js";import{a}from"./genesearch-a4e19f0d.js";import"./snplst.sampleSum-e47d05f0.js";import"./table-29d5a973.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";import"path";const s="Variants in a locus";function o(e){return{getPillName(){return e.term.name},getPillStatus(){if(!e.term||!e.q)return;if(!e.term.snps)throw`Missing term.snps [snplocs.ts getPillStatus()]`;let t=`${e.q.chr}:${e.q.start}-${e.q.stop}, ${e.term.snps.length} variant${e.term.snps.length>1?"s":""}`;if(e.term.reachedVariantLimit){t+='<span style="margin-left: 6px; background:#aaa; font-size:1em;font-style: normal; border-radius: 7px;color:white;padding:0px 5px;">&#9888;<span>'}return{text:t}},validateQ(t){d(t)},showEditMenu(i){return t(this,void 0,void 0,(function*(){yield l(e,i)}))}}}function l(r,o){var l;return t(this,void 0,void 0,(function*(){const d=o.append("div").style("margin","15px");const c=yield e(r,d);const u=a({genome:r.opts.genomeObj,tip:r.dom.tip2,row:d.append("div").style("margin-top","20px"),defaultCoord:r.q&&r.q.chr?{chr:r.q.chr,start:r.q.start,stop:r.q.stop}:undefined});d.select(".sja_genesearchinput").style("margin","0px");d.append("span").style("margin","5px 0px").style("display","inline-block").style("opacity",.4).style("font-size",".7em").html('"Gene": Gene name (e.g. AKT1)</br>"Position": chr:start-stop (e.g. chr1:5000-6000)</br>"dbSNP": dbSNP accession (e.g. rs1042522)');yield f(r,(l=r.q)===null||l===void 0?void 0:l.variant_filter,d);const[v,h,y]=i(d.append("div").attr("class","sjpp-snp-select").style("margin-top","15px"),r,"snplocus");if(r.usecase.target=="dataDownload")d.select(".sjpp-snp-select").style("display","none");const g=d.append("div").style("margin-top","15px");g.append("button").style("margin-top","15px").text("Submit").on("click",(e=>t(this,void 0,void 0,(function*(){if(!u.chr)return window.alert("Invalid coordinate");e.target.disabled=true;e.target.innerHTML="Validating input...";if(r.term);else{r.term={id:m()}}if(!r.q)r.q={};r.term.type="snplocus";r.q.chr=u.chr;r.q.start=u.start;r.q.stop=u.stop;r.term.name=s;delete r.term.snps;r.q.variant_filter=n(r.variantFilter.active);yield p(r);{const t=Number(v.property("value"));r.q.AFcutoff=t<0||t>=100?5:t}r.q.alleleType=h.property("selectedIndex");r.q.geneticModel=y.property("selectedIndex");if(c){r.q.restrictAncestry=c.node().options[c.property("selectedIndex")].__ancestry_obj}r.runCallback()}))));g.append("span").style("padding-left","15px").style("opacity",.8).style("font-size",".8em").text(r.usecase.target=="dataDownload"?"":"Variants will be treated individually in separate regression models")}))}function p(e){return t(this,void 0,void 0,(function*(){const t=yield e.vocabApi.validateSnps(e.q);if(t.error)throw t.error;e.q.cacheid=t.cacheid;e.term.snps=t.snps;e.term.reachedVariantLimit=t.reachedVariantLimit}))}function d(t){const e=t.q;if(!Number.isFinite(e.AFcutoff))throw"AFcutoff is not number";if(e.AFcutoff<0||e.AFcutoff>100)throw"AFcutoff is not within 0 to 100";if(![0,1].includes(e.alleleType))throw"alleleType value is not one of 0/1";if(![0,1,2,3].includes(e.geneticModel))throw"geneticModel value is not one of 0/1";if(!e.chr)throw"chr missing";if(!Number.isInteger(e.start))throw"start coordinate is not integer";if(!Number.isInteger(e.stop))throw"stop coordinate is not integer";if(e.start<0)throw"start < 0";if(e.stop<=e.start)throw"stop <= start"}function c(e,i){return t(this,void 0,void 0,(function*(){try{d(e)}catch(t){throw"snplocus validateQ(): "+t}if(!e.term.name)e.term.name=s;if(e.id==undefined||e.id==""){if(e.term.id==undefined||e.term.id==""){e.term.id=m()}e.id=e.term.id}else{if(e.term.id==undefined||e.term.id==""){e.term.id=e.id}}yield p({term:e.term,q:e.q,vocabApi:i})}))}function m(){return"snplocus"+Math.random()}function f(e,i,n,a){return t(this,void 0,void 0,(function*(){if(!e.variantFilter){e.variantFilter=yield e.vocabApi.get_variantFilter()}if(!e.variantFilter.terms){return}if(!e.variantFilter.opts)throw"variantFilter.opts{} missing";if(!e.variantFilter.filter)throw".filter missing from variantFilter{}";if(!Array.isArray(e.variantFilter.terms)||e.variantFilter.terms.length==0)throw"variantFilter.terms[] is not non-empty array";if(i){e.variantFilter.active=JSON.parse(JSON.stringify(i))}else{e.variantFilter.active=JSON.parse(JSON.stringify(e.variantFilter.filter))}const s=n.append("div").style("margin-top","15px");s.append("span").text("VARIANT FILTERS").style("font-size",".8em").style("opacity",.5);const o=s.append("div");r({joinWith:e.variantFilter.opts.joinWith,emptyLabel:"+Variant Filter",holder:o,vocab:{terms:e.variantFilter.terms},callback:i=>t(this,void 0,void 0,(function*(){e.variantFilter.active=i;if(a)yield a()}))}).main(e.variantFilter.active)}))}export{c as fillTW,o as getHandler};
@@ -1 +1 @@
1
- import{_ as e}from"./tslib.es6-1f85f553.js";import{mayRunSnplstTask as t}from"./snplst.sampleSum-e47d05f0.js";function n(t){return{getPillName(){return t.term.name},getPillStatus(){var e;if(!((e=t.term)===null||e===void 0?void 0:e.snps))return;const n=t.term.snps.reduce(((e,t)=>e+(t.invalid||!t.alleles?1:0)),0);if(n)return{text:n+" invalid"}},validateQ(e){c(e)},showEditMenu(n){return e(this,void 0,void 0,(function*(){yield s(t,n)}))}}}function s(t,n){var s,a;return e(this,void 0,void 0,(function*(){const c=n.append("div").style("margin","15px");const f=yield u(t,c);const x=c.append("div");const g=x.append("textarea").attr("rows",5).attr("cols",20).attr("placeholder","Enter variants");const b=x.append("div").style("opacity",.8).style("font-size",".8em");b.append("div").html(`Enter a list of variants (dbSNP accessions). One variant per line. Max 500 allowed.${t.usecase.target=="dataDownload"?"":"<br>Effect alleles (alleles tested against in the analysis) can be specified here or<br>after variant validation."}`);const h=[{id:"rs1641548",effectAllele:"T"},{id:"rs4968204",effectAllele:"C"},{id:"rs9893249",effectAllele:"T"},{id:"rs1042522",effectAllele:"G"}];const A=b.append("ul").style("display","inline-block").style("list-style-type","none").style("padding","0px");const q=b.append("ul").style("display",t.usecase.target=="dataDownload"?"none":"inline-block").style("list-style-type","none").style("padding","0px").style("margin-left","40px");A.append("li").style("text-decoration","underline").text("Example:");q.append("li").style("text-decoration","underline").text("Example (with effect alleles):");for(const e of h){A.append("li").text(e.id);q.append("li").html(`${e.id}&nbsp;${e.effectAllele}`)}const E=x.append("div").style("margin-top","15px").append("button").text("Validate variants").on("click",(()=>e(this,void 0,void 0,(function*(){const e=r(g);if(!e.length)return window.alert("No valid variants");if(!t.term){t.term={id:y(),type:"snplst"}}if(t.term.snps){for(const n of e){if(t.term.snps.find((e=>e.rsid==n.rsid)))continue;t.term.snps.push(n)}}else{t.term.snps=e}t.term.name=o(t.term.snps);if(!t.q)t.q={};t.doNotHideTipInMain=true;if(t.dom.pill_termname){t.dom.pill_termname.text(t.term.name)}E.text("Validating...").property("disabled",true);try{yield p(t)}catch(e){alert("Error: "+(e.message||e));E.text("Validate variants").property("disabled",false);return}if(!Number.isFinite(t.q.AFcutoff)){t.q.AFcutoff=5;I.property("value",t.q.AFcutoff)}if(!Number.isInteger(t.q.alleleType)){t.q.alleleType=e.find((e=>e.effectAllele))?2:0;F.property("selectedIndex",t.q.alleleType);c.select(".sjpp-allele-type-hint").text(v(F))}if(!Number.isInteger(t.q.geneticModel)){t.q.geneticModel=0;T.property("selectedIndex",t.q.geneticModel)}if(!Number.isInteger(t.q.missingGenotype)){t.q.missingGenotype=0;k.property("selectedIndex",t.q.missingGenotype)}if(f){t.q.restrictAncestry=f.node().options[f.property("selectedIndex")].__ancestry_obj}yield d(t);x.style("display","none");w.style("display","");if(t.dom.snplst_table){i(t,F)}else{l(N,t,F)}}))));const w=c.append("div");w.append("p").append("span").html("&laquo; Back to input").attr("class","sja_clbtext").on("click",(()=>{x.style("display","");w.style("display","none");E.text("Validate variants").property("disabled",false)}));const N=w.append("div").style("margin-bottom","25px");const[I,F,T,k]=m(w.append("div").attr("class","sjpp-snp-select"),t,"snplst");if(t.usecase.target=="dataDownload")w.select(".sjpp-snp-select").style("display","none");const _=w.append("div").style("margin-top","20px");_.append("button").text("Submit").on("click",(()=>e(this,void 0,void 0,(function*(){t.term.snps=t.term.snps.filter((e=>!e.tobe_deleted));if(t.term.snps.find((e=>!e.effectAllele)))return window.alert("Effect allele not specified for one or more variants");t.term.name=o(t.term.snps);if(t.dom.pill_termname){t.dom.pill_termname.text(t.term.name)}try{yield p(t)}catch(e){alert("Error: "+(e.message||e))}{const e=Number(I.property("value"));t.q.AFcutoff=e<0||e>=100?5:e}t.q.alleleType=F.property("selectedIndex");t.q.geneticModel=T.property("selectedIndex");t.q.missingGenotype=k.property("selectedIndex");if(f){t.q.restrictAncestry=f.node().options[f.property("selectedIndex")].__ancestry_obj}yield d(t);if(t.dom.snplst_table){i(t,F)}else{l(N,t,F)}delete t.doNotHideTipInMain;t.runCallback();t.updateUI()}))));_.append("span").style("padding-left","15px").style("opacity",.8).style("font-size",".8em").text(t.usecase.target=="dataDownload"?"":"Variants will be treated as separate covariates in the regression model");if((a=(s=t.term)===null||s===void 0?void 0:s.snps)===null||a===void 0?void 0:a.length){l(N,t,F);x.style("display","none")}else{w.style("display","none")}}))}function l(e,t,n){t.dom.snplst_table=e.append("table");i(t,n);e.append("p").style("opacity",.8).style("font-size",".8em").style("display",t.usecase.target=="dataDownload"?"none":"block").html("Effect alleles are highlighted in red. Click on an allele to set as the effect allele.")}function i(e,t){e.dom.snplst_table.selectAll("*").remove();const n=e.dom.snplst_table.append("tr").style("opacity",.4);const s=[{title:"Variants"},{title:"# genotyped<br>samples"},{title:"Reference allele<br>(frequency)"},{title:"Alternative allele(s)<br>(frequency)"},{title:"Genotype<br>(frequency)"},{title:"Delete"}];if(e.usecase.target=="dataDownload")s.splice(4,1);s.forEach((e=>{n.append("td").html(e.title).style("font-size",".8em").style("text-align","center").style("padding","8px")}));if(!e.term.snps)throw`Missing term.snps [snplst.ts renderSnpEditTable()]`;for(const[t,n]of e.term.snps.entries()){let s=false;if(n.invalid||!n.alleles&&!n.gt2count)s="NOT ANNNOTATED IN COHORT";const i=(t+2)%2?"#eee":"#fff";const o=e.dom.snplst_table.append("tr").style("background",i);o.append("td").text(n.rsid).style("padding","8px");const r=s?s:n.gt2count?Object.values(n.gt2count).reduce(((e,t)=>e+t),0):`Missing sample count for snp`;o.append("td").style("text-align","center").text(r);const a=o.append("td");const p=o.append("td");if(!s){if(!n.alleles)throw`Missing alleles for snp = ${n} [snplst.ts renderSnpEditTable()]`;const t=e.q.snp2effAle?e.q.snp2effAle[n.rsid]:undefined;const s=n.alleles.find((e=>e.isRef));const d=n.alleles.filter((e=>!e.isRef));if(e.usecase.target=="dataDownload"){const e=(s.count*100/(r*2)).toFixed(2);const t=`${s.allele} (${e}%)`;a.style("text-align","center").style("padding","8px").text(t);const n=d.map((e=>{const t=(e.count*100/(r*2)).toFixed(2);return`${e.allele} (${t}%)`})).join(", ");p.style("text-align","center").style("padding","8px").text(n)}else{l(s,a,t,r,n,i,o);for(const e of d.values()){l(e,p,t,r,n,i,o)}}}if(e.usecase.target!="dataDownload"){const t=o.append("td");if(!s){const s=e.q.snp2refGrp?e.q.snp2refGrp[n.rsid]:undefined;if(!n.gt2count)throw`Missing gt2count for snp = ${n} [snplst.ts renderSnpEditTable()]`;for(const[e,l]of Object.entries(n.gt2count)){const n=(l*100/r).toFixed(2);const o=t.append("div").style("display","inline-block").style("border",e==s?"3px solid #ff0000":`3px solid ${i}`);o.append("div").style("display","inline-block").style("padding","3px 5px").text(`${e}`);o.append("div").style("display","inline-block").style("padding","0px 6px 0px 2px").style("font-size",".8em").text("("+`${n}%`+")")}}}const d=o.append("td").style("text-align","center").append("input").attr("type","checkbox").on("change",(()=>{n.tobe_deleted=d.node().checked}))}function l(e,n,s,l,i,o,r){const a=(e.count*100/(l*2)).toFixed(2);const p=n.style("text-align","center").append("button").style("display","inline-block").style("margin","0px 3px").style("padding","3px 7px").style("border-radius","3px").style("background-color","#d9ead3").style("border",e.allele==s?"3px solid #ff0000":`3px solid ${o}`).on("mouseover",(()=>{if(i.effectAllele&&i.effectAllele==e.allele)return;else{p.style("background-color","#fff2cc").style("cursor","pointer")}})).on("mouseout",(()=>{if(i.effectAllele&&i.effectAllele==e.allele)return;else{p.style("background","#d9ead3")}})).on("click",(()=>{i.effectAllele=e.allele;r.selectAll("button").style("border","none");p.style("border","3px solid #ff0000").style("background","#d9ead3");t.selectAll("option").nodes()[2].selected="selected"}));p.append("div").style("display","inline-block").text(`${e.allele} `);p.append("div").style("display","inline-block").style("margin","0px 5px").style("font-size",".8em").text("("+`${a}%`+")")}}function o(e){if(e.length==1){const t=e[0];if(t.rsid)return t.rsid;return t.chr+":"+t.pos}return e.length+" variant"+(e.length>1?"s":"")}function r(e){const t=e.property("value");const n=[];for(const e of t.trim().split("\n")){const[t,s]=e.trim().split(/[\s\t]/);if(!t)continue;if(n.find((e=>e.rsid==t)))continue;const l={rsid:t};if(s)l.effectAllele=s;n.push(l)}if(n.length>500)return n.slice(0,500);return n}function a(e){if(!e.term||!e.term.snps)return"";const t=[];for(const n of e.term.snps){const e=n.rsid+(n.effectAllele?" "+n.effectAllele:"");t.push(e)}return t.join("\n")}function p(t){return e(this,void 0,void 0,(function*(){const e=yield t.vocabApi.validateSnps({text:a(t)});if(e.error)throw e.error;t.q.cacheid=e.cacheid;if(!t.term.snps)throw`Missing term.snps [snplst.ts validateInput()]`;for(const[n,s]of t.term.snps.entries()){const t=e.snps[n];s.snpid=t.snpid;s.invalid=t.invalid}}))}function d(n){return e(this,void 0,void 0,(function*(){const e={cacheid:n.q.cacheid};const s=[];let l;if(n.q.restrictAncestry){if(n.filter){l=structuredClone(n.filter);const e=l.lst.findIndex((e=>{var t,s;return((s=(t=e.tvs)===null||t===void 0?void 0:t.term)===null||s===void 0?void 0:s.id)==n.q.restrictAncestry.tvs.term.id}));if(e!=-1){l.lst[e]={type:"tvs",tvs:n.q.restrictAncestry.tvs}}else{s.push({type:"tvs",tvs:n.q.restrictAncestry.tvs})}}else{s.push({type:"tvs",tvs:n.q.restrictAncestry.tvs})}}else{if(n.filter)s.push(n.filter)}const i={type:"tvslst",join:"and",lst:[...s]};if(l)i.lst.push(l);const o=yield n.vocabApi.getCategories(n.term,i,e);t({term:n.term,q:n.q},o)}))}function c(e){if(!Number.isFinite(e.q.AFcutoff))throw"AFcutoff is not number";if(e.q.AFcutoff<0||e.q.AFcutoff>100)throw"AFcutoff is not within 0 to 100";if(![0,1,2].includes(e.q.alleleType))throw"alleleType value is not one of 0/1";if(![0,1,2,3].includes(e.q.geneticModel))throw"geneticModel value is not one of 0/1";if(![0,1].includes(e.q.missingGenotype))throw"missingGenotype value is not one of 0/1"}function f(t,n){return e(this,void 0,void 0,(function*(){try{c(t)}catch(e){throw"snplst validateQ(): "+e}if(!Array.isArray(t.term.snps))throw"tw.term.snps[] is not an array";if(t.term.snps.length==0)throw"tw.term.snps[] array is 0 length";if(!t.term.name)t.term.name=o(t.term.snps);if(t.id==undefined||t.id==""){if(t.term.id==undefined||t.term.id==""){t.term.id=y()}t.id=t.term.id}else{if(t.term.id==undefined||t.term.id==""){t.term.id=t.id}}yield p({term:t.term,q:t.q,vocabApi:n})}))}function y(){return"snplst"+Math.random()}function m(t,n,s){var l,o,r,a;let p,c,f;{p=t.append("div").style("opacity",.5).style("font-size",".8em").style("margin-bottom","2px").text("EFFECT ALLELE FREQUENCY CUTOFF");n.dom.input_AFcutoff_label=p;const e=t.append("div");c=e.append("input").attr("type","number").attr("min",0).attr("max",100).property("value",5).style("border-color","#858585").style("margin","0px");e.append("span").text("%");let l;if(s=="snplst"){l="Variants below this cutoff are discarded"}else{if(n.usecase.regressionType=="linear"){l="Variants below this cutoff are analyzed by the Wilcoxon rank sum test"}else if(n.usecase.regressionType=="logistic"){l="Variants below this cutoff are analyzed by the Fisher's exact test"}else{l="Variants below this cutoff are analyzed by the cumulative incidence test"}}e.append("span").style("margin-left","10px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").text(l)}t.append("div").style("margin-top","15px").style("opacity",.5).style("font-size",".8em").style("margin-bottom","2px").text("SET EFFECT ALLELE AS");const y=t.append("select");y.append("option").text("Minor allele");y.append("option").text("Alternative allele");if(s!=="snplocus"){y.append("option").text("Custom allele")}t.append("div").attr("class","sjpp-allele-type-hint").style("display","inline-block").style("margin-left","15px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").text(v(y));y.on("change",(()=>e(this,void 0,void 0,(function*(){t.select(".sjpp-allele-type-hint").text(v(y));n.q.alleleType=y.property("selectedIndex");if(s!=="snplocus"){if(!n.term.snps)throw`Missing term.snps [snplst.ts makeSnpSelect()]`;for(const e of n.term.snps){e.effectAllele=false}yield d(n);i(n,y)}}))));t.append("div").style("margin-top","15px").style("margin-bottom","2px").style("opacity",.5).style("font-size",".8em").text("GENETIC MODEL");const m=t.append("select");m.append("option").text("Additive: EE=2, EN=1, NN=0");m.append("option").text("Dominant: EE=1, EN=1, NN=0");m.append("option").text("Recessive: EE=1, EN=0, NN=0");m.append("option").text("By genotype: EE and EN compared to NN");t.append("div").style("display","inline-block").style("margin-left","15px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").html("E = effect allele; N = non-effect allele");const u=t.append("div").style("margin-top","15px").style("opacity",.5).style("font-size",".7em");if(s=="snplocus"){u.text("Samples with missing genotypes are dropped.")}else{u.text("MISSING GENOTYPE").style("font-size",".8em").style("margin-bottom","2px");f=t.append("select");f.append("option").text("Impute as homozygous for non-effect allele");f.append("option").text("Drop sample")}if(Number.isInteger((l=n.q)===null||l===void 0?void 0:l.alleleType))y.property("selectedIndex",n.q.alleleType);if(Number.isFinite((o=n.q)===null||o===void 0?void 0:o.AFcutoff))c.property("value",n.q.AFcutoff);if(Number.isInteger((r=n.q)===null||r===void 0?void 0:r.geneticModel))m.property("selectedIndex",n.q.geneticModel);if(f&&Number.isInteger((a=n.q)===null||a===void 0?void 0:a.missingGenotype))f.property("selectedIndex",n.q.missingGenotype);return[c,y,m,f]}function u(t,n){var s;return e(this,void 0,void 0,(function*(){if((s=t.q)===null||s===void 0?void 0:s.doNotRestrictAncestry)return;const e=yield t.vocabApi.getTermdbConfig();if(!e.restrictAncestries)return;const l=n.append("div").style("margin-bottom","15px");t.dom.restrictAncestriesRow=l;l.append("span").text("Restrict analysis to").style("margin-right","5px").style("opacity",.5);const i=l.append("select");for(const t of e.restrictAncestries){const e=i.append("option").text(t.name);e.node().__ancestry_obj=t}if(t.q&&t.q.restrictAncestry){const n=e.restrictAncestries.findIndex((e=>e.name==t.q.restrictAncestry.name));if(n==-1)throw"unknown restrictAncestry: "+t.q.restrictAncestry.name;i.property("selectedIndex",n)}return i}))}function v(e){let t;const n=e.property("selectedIndex");if(n==0){t="For multi-allelic variants, the second most common allele is used as the effect allele"}else if(n==1){t="For multi-allelic variants, the most common alternative allele is used as the effect allele"}else{t=""}return t}export{f as fillTW,n as getHandler,m as makeSnpSelect,u as mayRestrictAncestry};
1
+ import{_ as e}from"./tslib.es6-c3c2d88f.js";import{mayRunSnplstTask as t}from"./snplst.sampleSum-e47d05f0.js";function n(t){return{getPillName(){return t.term.name},getPillStatus(){var e;if(!((e=t.term)===null||e===void 0?void 0:e.snps))return;const n=t.term.snps.reduce(((e,t)=>e+(t.invalid||!t.alleles?1:0)),0);if(n)return{text:n+" invalid"}},validateQ(e){c(e)},showEditMenu(n){return e(this,void 0,void 0,(function*(){yield s(t,n)}))}}}function s(t,n){var s,a;return e(this,void 0,void 0,(function*(){const c=n.append("div").style("margin","15px");const f=yield u(t,c);const x=c.append("div");const g=x.append("textarea").attr("rows",5).attr("cols",20).attr("placeholder","Enter variants");const b=x.append("div").style("opacity",.8).style("font-size",".8em");b.append("div").html(`Enter a list of variants (dbSNP accessions). One variant per line. Max 500 allowed.${t.usecase.target=="dataDownload"?"":"<br>Effect alleles (alleles tested against in the analysis) can be specified here or<br>after variant validation."}`);const h=[{id:"rs1641548",effectAllele:"T"},{id:"rs4968204",effectAllele:"C"},{id:"rs9893249",effectAllele:"T"},{id:"rs1042522",effectAllele:"G"}];const A=b.append("ul").style("display","inline-block").style("list-style-type","none").style("padding","0px");const q=b.append("ul").style("display",t.usecase.target=="dataDownload"?"none":"inline-block").style("list-style-type","none").style("padding","0px").style("margin-left","40px");A.append("li").style("text-decoration","underline").text("Example:");q.append("li").style("text-decoration","underline").text("Example (with effect alleles):");for(const e of h){A.append("li").text(e.id);q.append("li").html(`${e.id}&nbsp;${e.effectAllele}`)}const E=x.append("div").style("margin-top","15px").append("button").text("Validate variants").on("click",(()=>e(this,void 0,void 0,(function*(){const e=r(g);if(!e.length)return window.alert("No valid variants");if(!t.term){t.term={id:y(),type:"snplst"}}if(t.term.snps){for(const n of e){if(t.term.snps.find((e=>e.rsid==n.rsid)))continue;t.term.snps.push(n)}}else{t.term.snps=e}t.term.name=o(t.term.snps);if(!t.q)t.q={};t.doNotHideTipInMain=true;if(t.dom.pill_termname){t.dom.pill_termname.text(t.term.name)}E.text("Validating...").property("disabled",true);try{yield p(t)}catch(e){alert("Error: "+(e.message||e));E.text("Validate variants").property("disabled",false);return}if(!Number.isFinite(t.q.AFcutoff)){t.q.AFcutoff=5;I.property("value",t.q.AFcutoff)}if(!Number.isInteger(t.q.alleleType)){t.q.alleleType=e.find((e=>e.effectAllele))?2:0;F.property("selectedIndex",t.q.alleleType);c.select(".sjpp-allele-type-hint").text(v(F))}if(!Number.isInteger(t.q.geneticModel)){t.q.geneticModel=0;T.property("selectedIndex",t.q.geneticModel)}if(!Number.isInteger(t.q.missingGenotype)){t.q.missingGenotype=0;k.property("selectedIndex",t.q.missingGenotype)}if(f){t.q.restrictAncestry=f.node().options[f.property("selectedIndex")].__ancestry_obj}yield d(t);x.style("display","none");w.style("display","");if(t.dom.snplst_table){i(t,F)}else{l(N,t,F)}}))));const w=c.append("div");w.append("p").append("span").html("&laquo; Back to input").attr("class","sja_clbtext").on("click",(()=>{x.style("display","");w.style("display","none");E.text("Validate variants").property("disabled",false)}));const N=w.append("div").style("margin-bottom","25px");const[I,F,T,k]=m(w.append("div").attr("class","sjpp-snp-select"),t,"snplst");if(t.usecase.target=="dataDownload")w.select(".sjpp-snp-select").style("display","none");const _=w.append("div").style("margin-top","20px");_.append("button").text("Submit").on("click",(()=>e(this,void 0,void 0,(function*(){t.term.snps=t.term.snps.filter((e=>!e.tobe_deleted));if(t.term.snps.find((e=>!e.effectAllele)))return window.alert("Effect allele not specified for one or more variants");t.term.name=o(t.term.snps);if(t.dom.pill_termname){t.dom.pill_termname.text(t.term.name)}try{yield p(t)}catch(e){alert("Error: "+(e.message||e))}{const e=Number(I.property("value"));t.q.AFcutoff=e<0||e>=100?5:e}t.q.alleleType=F.property("selectedIndex");t.q.geneticModel=T.property("selectedIndex");t.q.missingGenotype=k.property("selectedIndex");if(f){t.q.restrictAncestry=f.node().options[f.property("selectedIndex")].__ancestry_obj}yield d(t);if(t.dom.snplst_table){i(t,F)}else{l(N,t,F)}delete t.doNotHideTipInMain;t.runCallback();t.updateUI()}))));_.append("span").style("padding-left","15px").style("opacity",.8).style("font-size",".8em").text(t.usecase.target=="dataDownload"?"":"Variants will be treated as separate covariates in the regression model");if((a=(s=t.term)===null||s===void 0?void 0:s.snps)===null||a===void 0?void 0:a.length){l(N,t,F);x.style("display","none")}else{w.style("display","none")}}))}function l(e,t,n){t.dom.snplst_table=e.append("table");i(t,n);e.append("p").style("opacity",.8).style("font-size",".8em").style("display",t.usecase.target=="dataDownload"?"none":"block").html("Effect alleles are highlighted in red. Click on an allele to set as the effect allele.")}function i(e,t){e.dom.snplst_table.selectAll("*").remove();const n=e.dom.snplst_table.append("tr").style("opacity",.4);const s=[{title:"Variants"},{title:"# genotyped<br>samples"},{title:"Reference allele<br>(frequency)"},{title:"Alternative allele(s)<br>(frequency)"},{title:"Genotype<br>(frequency)"},{title:"Delete"}];if(e.usecase.target=="dataDownload")s.splice(4,1);s.forEach((e=>{n.append("td").html(e.title).style("font-size",".8em").style("text-align","center").style("padding","8px")}));if(!e.term.snps)throw`Missing term.snps [snplst.ts renderSnpEditTable()]`;for(const[t,n]of e.term.snps.entries()){let s=false;if(n.invalid||!n.alleles&&!n.gt2count)s="NOT ANNNOTATED IN COHORT";const i=(t+2)%2?"#eee":"#fff";const o=e.dom.snplst_table.append("tr").style("background",i);o.append("td").text(n.rsid).style("padding","8px");const r=s?s:n.gt2count?Object.values(n.gt2count).reduce(((e,t)=>e+t),0):`Missing sample count for snp`;o.append("td").style("text-align","center").text(r);const a=o.append("td");const p=o.append("td");if(!s){if(!n.alleles)throw`Missing alleles for snp = ${n} [snplst.ts renderSnpEditTable()]`;const t=e.q.snp2effAle?e.q.snp2effAle[n.rsid]:undefined;const s=n.alleles.find((e=>e.isRef));const d=n.alleles.filter((e=>!e.isRef));if(e.usecase.target=="dataDownload"){const e=(s.count*100/(r*2)).toFixed(2);const t=`${s.allele} (${e}%)`;a.style("text-align","center").style("padding","8px").text(t);const n=d.map((e=>{const t=(e.count*100/(r*2)).toFixed(2);return`${e.allele} (${t}%)`})).join(", ");p.style("text-align","center").style("padding","8px").text(n)}else{l(s,a,t,r,n,i,o);for(const e of d.values()){l(e,p,t,r,n,i,o)}}}if(e.usecase.target!="dataDownload"){const t=o.append("td");if(!s){const s=e.q.snp2refGrp?e.q.snp2refGrp[n.rsid]:undefined;if(!n.gt2count)throw`Missing gt2count for snp = ${n} [snplst.ts renderSnpEditTable()]`;for(const[e,l]of Object.entries(n.gt2count)){const n=(l*100/r).toFixed(2);const o=t.append("div").style("display","inline-block").style("border",e==s?"3px solid #ff0000":`3px solid ${i}`);o.append("div").style("display","inline-block").style("padding","3px 5px").text(`${e}`);o.append("div").style("display","inline-block").style("padding","0px 6px 0px 2px").style("font-size",".8em").text("("+`${n}%`+")")}}}const d=o.append("td").style("text-align","center").append("input").attr("type","checkbox").on("change",(()=>{n.tobe_deleted=d.node().checked}))}function l(e,n,s,l,i,o,r){const a=(e.count*100/(l*2)).toFixed(2);const p=n.style("text-align","center").append("button").style("display","inline-block").style("margin","0px 3px").style("padding","3px 7px").style("border-radius","3px").style("background-color","#d9ead3").style("border",e.allele==s?"3px solid #ff0000":`3px solid ${o}`).on("mouseover",(()=>{if(i.effectAllele&&i.effectAllele==e.allele)return;else{p.style("background-color","#fff2cc").style("cursor","pointer")}})).on("mouseout",(()=>{if(i.effectAllele&&i.effectAllele==e.allele)return;else{p.style("background","#d9ead3")}})).on("click",(()=>{i.effectAllele=e.allele;r.selectAll("button").style("border","none");p.style("border","3px solid #ff0000").style("background","#d9ead3");t.selectAll("option").nodes()[2].selected="selected"}));p.append("div").style("display","inline-block").text(`${e.allele} `);p.append("div").style("display","inline-block").style("margin","0px 5px").style("font-size",".8em").text("("+`${a}%`+")")}}function o(e){if(e.length==1){const t=e[0];if(t.rsid)return t.rsid;return t.chr+":"+t.pos}return e.length+" variant"+(e.length>1?"s":"")}function r(e){const t=e.property("value");const n=[];for(const e of t.trim().split("\n")){const[t,s]=e.trim().split(/[\s\t]/);if(!t)continue;if(n.find((e=>e.rsid==t)))continue;const l={rsid:t};if(s)l.effectAllele=s;n.push(l)}if(n.length>500)return n.slice(0,500);return n}function a(e){if(!e.term||!e.term.snps)return"";const t=[];for(const n of e.term.snps){const e=n.rsid+(n.effectAllele?" "+n.effectAllele:"");t.push(e)}return t.join("\n")}function p(t){return e(this,void 0,void 0,(function*(){const e=yield t.vocabApi.validateSnps({text:a(t)});if(e.error)throw e.error;t.q.cacheid=e.cacheid;if(!t.term.snps)throw`Missing term.snps [snplst.ts validateInput()]`;for(const[n,s]of t.term.snps.entries()){const t=e.snps[n];s.snpid=t.snpid;s.invalid=t.invalid}}))}function d(n){return e(this,void 0,void 0,(function*(){const e={cacheid:n.q.cacheid};const s=[];let l;if(n.q.restrictAncestry){if(n.filter){l=structuredClone(n.filter);const e=l.lst.findIndex((e=>{var t,s;return((s=(t=e.tvs)===null||t===void 0?void 0:t.term)===null||s===void 0?void 0:s.id)==n.q.restrictAncestry.tvs.term.id}));if(e!=-1){l.lst[e]={type:"tvs",tvs:n.q.restrictAncestry.tvs}}else{s.push({type:"tvs",tvs:n.q.restrictAncestry.tvs})}}else{s.push({type:"tvs",tvs:n.q.restrictAncestry.tvs})}}else{if(n.filter)s.push(n.filter)}const i={type:"tvslst",join:"and",lst:[...s]};if(l)i.lst.push(l);const o=yield n.vocabApi.getCategories(n.term,i,e);t({term:n.term,q:n.q},o)}))}function c(e){if(!Number.isFinite(e.q.AFcutoff))throw"AFcutoff is not number";if(e.q.AFcutoff<0||e.q.AFcutoff>100)throw"AFcutoff is not within 0 to 100";if(![0,1,2].includes(e.q.alleleType))throw"alleleType value is not one of 0/1";if(![0,1,2,3].includes(e.q.geneticModel))throw"geneticModel value is not one of 0/1";if(![0,1].includes(e.q.missingGenotype))throw"missingGenotype value is not one of 0/1"}function f(t,n){return e(this,void 0,void 0,(function*(){try{c(t)}catch(e){throw"snplst validateQ(): "+e}if(!Array.isArray(t.term.snps))throw"tw.term.snps[] is not an array";if(t.term.snps.length==0)throw"tw.term.snps[] array is 0 length";if(!t.term.name)t.term.name=o(t.term.snps);if(t.id==undefined||t.id==""){if(t.term.id==undefined||t.term.id==""){t.term.id=y()}t.id=t.term.id}else{if(t.term.id==undefined||t.term.id==""){t.term.id=t.id}}yield p({term:t.term,q:t.q,vocabApi:n})}))}function y(){return"snplst"+Math.random()}function m(t,n,s){var l,o,r,a;let p,c,f;{p=t.append("div").style("opacity",.5).style("font-size",".8em").style("margin-bottom","2px").text("EFFECT ALLELE FREQUENCY CUTOFF");n.dom.input_AFcutoff_label=p;const e=t.append("div");c=e.append("input").attr("type","number").attr("min",0).attr("max",100).property("value",5).style("border-color","#858585").style("margin","0px");e.append("span").text("%");let l;if(s=="snplst"){l="Variants below this cutoff are discarded"}else{if(n.usecase.regressionType=="linear"){l="Variants below this cutoff are analyzed by the Wilcoxon rank sum test"}else if(n.usecase.regressionType=="logistic"){l="Variants below this cutoff are analyzed by the Fisher's exact test"}else{l="Variants below this cutoff are analyzed by the cumulative incidence test"}}e.append("span").style("margin-left","10px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").text(l)}t.append("div").style("margin-top","15px").style("opacity",.5).style("font-size",".8em").style("margin-bottom","2px").text("SET EFFECT ALLELE AS");const y=t.append("select");y.append("option").text("Minor allele");y.append("option").text("Alternative allele");if(s!=="snplocus"){y.append("option").text("Custom allele")}t.append("div").attr("class","sjpp-allele-type-hint").style("display","inline-block").style("margin-left","15px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").text(v(y));y.on("change",(()=>e(this,void 0,void 0,(function*(){t.select(".sjpp-allele-type-hint").text(v(y));n.q.alleleType=y.property("selectedIndex");if(s!=="snplocus"){if(!n.term.snps)throw`Missing term.snps [snplst.ts makeSnpSelect()]`;for(const e of n.term.snps){e.effectAllele=false}yield d(n);i(n,y)}}))));t.append("div").style("margin-top","15px").style("margin-bottom","2px").style("opacity",.5).style("font-size",".8em").text("GENETIC MODEL");const m=t.append("select");m.append("option").text("Additive: EE=2, EN=1, NN=0");m.append("option").text("Dominant: EE=1, EN=1, NN=0");m.append("option").text("Recessive: EE=1, EN=0, NN=0");m.append("option").text("By genotype: EE and EN compared to NN");t.append("div").style("display","inline-block").style("margin-left","15px").style("opacity",.5).style("font-size",".7em").style("font-style","italic").html("E = effect allele; N = non-effect allele");const u=t.append("div").style("margin-top","15px").style("opacity",.5).style("font-size",".7em");if(s=="snplocus"){u.text("Samples with missing genotypes are dropped.")}else{u.text("MISSING GENOTYPE").style("font-size",".8em").style("margin-bottom","2px");f=t.append("select");f.append("option").text("Impute as homozygous for non-effect allele");f.append("option").text("Drop sample")}if(Number.isInteger((l=n.q)===null||l===void 0?void 0:l.alleleType))y.property("selectedIndex",n.q.alleleType);if(Number.isFinite((o=n.q)===null||o===void 0?void 0:o.AFcutoff))c.property("value",n.q.AFcutoff);if(Number.isInteger((r=n.q)===null||r===void 0?void 0:r.geneticModel))m.property("selectedIndex",n.q.geneticModel);if(f&&Number.isInteger((a=n.q)===null||a===void 0?void 0:a.missingGenotype))f.property("selectedIndex",n.q.missingGenotype);return[c,y,m,f]}function u(t,n){var s;return e(this,void 0,void 0,(function*(){if((s=t.q)===null||s===void 0?void 0:s.doNotRestrictAncestry)return;const e=yield t.vocabApi.getTermdbConfig();if(!e.restrictAncestries)return;const l=n.append("div").style("margin-bottom","15px");t.dom.restrictAncestriesRow=l;l.append("span").text("Restrict analysis to").style("margin-right","5px").style("opacity",.5);const i=l.append("select");for(const t of e.restrictAncestries){const e=i.append("option").text(t.name);e.node().__ancestry_obj=t}if(t.q&&t.q.restrictAncestry){const n=e.restrictAncestries.findIndex((e=>e.name==t.q.restrictAncestry.name));if(n==-1)throw"unknown restrictAncestry: "+t.q.restrictAncestry.name;i.property("selectedIndex",n)}return i}))}function v(e){let t;const n=e.property("selectedIndex");if(n==0){t="For multi-allelic variants, the second most common allele is used as the effect allele"}else if(n==1){t="For multi-allelic variants, the most common alternative allele is used as the effect allele"}else{t=""}return t}export{f as fillTW,n as getHandler,m as makeSnpSelect,u as mayRestrictAncestry};
@@ -1 +1 @@
1
- import{ah as t,a_ as e,bV as a}from"./app-a8c4854a.js";const r="#990000";const n="#00A352";function i(i){const s=i.event;if(!s){i.holder.text(".event missing");return}if(s.a5ss==undefined&&s.a3ss==undefined){i.holder.text("not a5ss or a3ss");return}const l=30;const o=30;const d=20;const f=d-5;const p=20;const x=30;const h=20;const c=i.holder.append("svg");const m=c.append("g").attr("transform","translate("+x+","+h+")");const g=s.sitedist+" nt";let y;m.append("text").text(g).attr("font-size",f).attr("font-family",t).each((function(){y=this.getBBox().width})).remove();const u=5;let w=false;let k=false;let z=false;let b=false;if(s.a5ss){if(s.altinexon)w=true;else z=true}else{if(s.altinexon)k=true;else b=true}let v=0;let E;let L;m.append("rect").attr("fill",e).attr("stroke",e).attr("x",v).attr("y",p).attr("width",l).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text("e"+(s.exon5idx+1)).attr("text-anchor","middle").attr("x",v+l/2).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=l;if(w){m.append("rect").attr("fill",n).attr("stroke",n).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=y+u*2}E=v;if(z||b){if(z);else{v+=o}m.append("rect").attr("fill","none").attr("stroke",e).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("font-size",f).attr("font-family",t).attr("dominant-baseline","central");v+=y+u*2;if(z){v+=o}}else{v+=o}L=v;m.append("line").attr("x1",E+(z?y+u*2:0)).attr("y1",p+d/2).attr("x2",L-(b?y+u*2:0)).attr("y2",p+d/2).attr("stroke",e).attr("shape-rendering","crispEdges");if(k){m.append("rect").attr("fill",n).attr("stroke",n).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=y+u*2}m.append("rect").attr("fill",e).attr("stroke",e).attr("x",v).attr("y",p).attr("width",l).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text("e"+(s.exon5idx+1+1)).attr("text-anchor","middle").attr("x",v+l/2).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);{let t,e;if(w||z){e=L;if(w){t=E-y-u*2}else{t=E+y+u*2}}else{t=E;if(b){e=L-y-u*2}else{e=L+y+u*2}}m.append("path").attr("d","M"+t+","+p+"L"+(t+e)/2+",0"+"L"+e+","+p).attr("stroke",r).attr("fill","none");m.append("text").text(s.junctionB.v+(s.frame!=undefined?s.frame==a?", in frame":",out of frame":"")).attr("x",(t+e)/2).attr("y",-1).attr("text-anchor","middle").attr("font-size",f).attr("fill",r)}let j;{const t=m.append("path").attr("d","M"+E+","+(p+d)+"L"+(E+L)/2+","+(p*2+d)+"L"+L+","+(p+d)).attr("stroke",e).attr("fill","none");const a=s.junctionA;if(a){j=m.append("text").text(a.v).attr("x",(E+L)/2).attr("y",p*2+d+1).attr("text-anchor","middle").attr("font-size",f).attr("dominant-baseline","hanging")}else{t.attr("stroke-dasharray","3,3")}}c.attr("width",x*2+l*2+o+y+u*2).attr("height",h*2+p*2+d);return j}export{i as default};
1
+ import{ah as t,a_ as e,bV as a}from"./app-b369b169.js";const r="#990000";const n="#00A352";function i(i){const s=i.event;if(!s){i.holder.text(".event missing");return}if(s.a5ss==undefined&&s.a3ss==undefined){i.holder.text("not a5ss or a3ss");return}const l=30;const o=30;const d=20;const f=d-5;const p=20;const x=30;const h=20;const c=i.holder.append("svg");const m=c.append("g").attr("transform","translate("+x+","+h+")");const g=s.sitedist+" nt";let y;m.append("text").text(g).attr("font-size",f).attr("font-family",t).each((function(){y=this.getBBox().width})).remove();const u=5;let w=false;let b=false;let k=false;let z=false;if(s.a5ss){if(s.altinexon)w=true;else k=true}else{if(s.altinexon)b=true;else z=true}let v=0;let E;let L;m.append("rect").attr("fill",e).attr("stroke",e).attr("x",v).attr("y",p).attr("width",l).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text("e"+(s.exon5idx+1)).attr("text-anchor","middle").attr("x",v+l/2).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=l;if(w){m.append("rect").attr("fill",n).attr("stroke",n).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=y+u*2}E=v;if(k||z){if(k);else{v+=o}m.append("rect").attr("fill","none").attr("stroke",e).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("font-size",f).attr("font-family",t).attr("dominant-baseline","central");v+=y+u*2;if(k){v+=o}}else{v+=o}L=v;m.append("line").attr("x1",E+(k?y+u*2:0)).attr("y1",p+d/2).attr("x2",L-(z?y+u*2:0)).attr("y2",p+d/2).attr("stroke",e).attr("shape-rendering","crispEdges");if(b){m.append("rect").attr("fill",n).attr("stroke",n).attr("x",v).attr("y",p).attr("width",y+u*2).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text(g).attr("text-anchor","middle").attr("x",v+y/2+u).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);v+=y+u*2}m.append("rect").attr("fill",e).attr("stroke",e).attr("x",v).attr("y",p).attr("width",l).attr("height",d).attr("shape-rendering","crispEdges");m.append("text").text("e"+(s.exon5idx+1+1)).attr("text-anchor","middle").attr("x",v+l/2).attr("y",p+d/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",f).attr("font-family",t);{let t,e;if(w||k){e=L;if(w){t=E-y-u*2}else{t=E+y+u*2}}else{t=E;if(z){e=L-y-u*2}else{e=L+y+u*2}}m.append("path").attr("d","M"+t+","+p+"L"+(t+e)/2+",0"+"L"+e+","+p).attr("stroke",r).attr("fill","none");m.append("text").text(s.junctionB.v+(s.frame!=undefined?s.frame==a?", in frame":",out of frame":"")).attr("x",(t+e)/2).attr("y",-1).attr("text-anchor","middle").attr("font-size",f).attr("fill",r)}let j;{const t=m.append("path").attr("d","M"+E+","+(p+d)+"L"+(E+L)/2+","+(p*2+d)+"L"+L+","+(p+d)).attr("stroke",e).attr("fill","none");const a=s.junctionA;if(a){j=m.append("text").text(a.v).attr("x",(E+L)/2).attr("y",p*2+d+1).attr("text-anchor","middle").attr("font-size",f).attr("dominant-baseline","hanging")}else{t.attr("stroke-dasharray","3,3")}}c.attr("width",x*2+l*2+o+y+u*2).attr("height",h*2+p*2+d);return j}export{i as default};
@@ -1 +1 @@
1
- import{a_ as t,ah as a,bV as n}from"./app-a8c4854a.js";import{s as e}from"./spliceevent.phrase-770c8cac.js";function o(o){const i=o.event;const r=o.holder.append("div").style("vertical-align","top");if(!i.isaltexon&&!i.isskipexon){r.append("div").text(".isskipexon or .isaltexon is not set for event");return}if(!o.nophrase){r.append("div").html(e(i))}const s=o.holder.append("svg").style("display","inline-block");const d=new Map;const l=[];const c=40;const f=20;const p=20;const u=20;const h=20;const x=20;const j=14;const k=s.append("g").attr("transform","translate("+h+","+x+")");const m=i.skippedexon[0];const g=i.skippedexon[i.skippedexon.length-1];let y=false;let b=false;if(i.isskipexon){if(m>1){y=true}if(i.down1junction){b=true}}s.attr("width",h+(y?c+u:0)+c+u+(c+u)*i.skippedexon.length+c+(b?c+u:0)+h).attr("height",x+j+p+f+p+j+x);const B=j+p;const w=new Map;let v=0;if(y){k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+(m-1)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);v+=c+u;let n=true;let e="?";if(i.up1junction){if(i.junctionB.data){if(i.junctionB.data.length==1){const t=i.junctionB.data[0].tkid;if(i.up1junction.data){for(const a of i.up1junction.data){if(a.tkid==t){n=false;e=a.v;break}}}}else if(i.junctionB.data.length>1){let t=0;let a=0;for(const n of i.junctionB.data){for(const e of i.up1junction.data){if(n.tkid==e.tkid){t+=e.v;a++;break}}}if(a>0){n=false;e=Math.ceil(t/a)}}}else{n=false;e=i.up1junction.v}}k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",n?"2,2":"none").attr("fill","none");if(!n){const t=k.append("text").text(e).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(i.up1junction.start+"."+i.up1junction.stop,t);l.push([i.up1junction.start,i.up1junction.stop])}}k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+m).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);v+=c+u;for(let n=m;n<=g+1;n++){const e=n==g+1;k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",e?t:"none").attr("stroke",e?"none":t).attr("shape-rendering","crispEdges");k.append("text").text("e"+(n+1)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill",e?"white":t).attr("font-size",j);const o=i.junctionAlst[n-m];k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",o?"none":"2,2").attr("fill","none");if(o){let t="?";if(i.junctionB.data){if(i.junctionB.data.length==1){if(!o.data){console.error(".data missing from junctionA")}else{for(const a of o.data){if(a.tkid==i.junctionB.data[0].tkid){t=a.v;break}}}}else if(i.junctionB.data.length>1){t="e"+n+"-"+(n+1);for(const t of i.junctionB.data){if(!w.has(t.tkid)){w.set(t.tkid,{sampleobj:t,readcountlst:[]})}let a=0;for(const n of o.data){if(n.tkid==t.tkid){a=n.v;break}}w.get(t.tkid).readcountlst.push(a)}}}else{t=o.v}const e=k.append("text").text(t).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(o.start+"."+o.stop,e);l.push([o.start,o.stop])}v+=c+u}{const t=v-c-u-((c+u)*i.skippedexon.length+u)/2;k.append("path").attr("d","M"+((y?c+u:0)+c)+","+B+"L"+t+","+(B-p)+"L"+(v-c-u)+","+B).attr("fill","none").attr("stroke",i.color);let e="?";if(i.junctionB.data){if(i.junctionB.data.length==1){e=i.junctionB.data[0].v}else{e="e"+m+"-"+(g+2);for(const t of i.junctionB.data){if(!w.has(t.tkid)){console.error("sample has junctionB but no junctionA! "+t.tkid);continue}let a=0;for(const n of i.junctionB.data){if(n.tkid==t.tkid){a=n.v;break}}w.get(t.tkid).readcountlst.unshift(a)}}}else{e=i.junctionB.v}if(typeof i.frame=="boolean"){e+=", "+(i.frame==n?"in frame":"out of frame")}k.append("text").text(e).attr("x",t).attr("y",B-p-2).attr("font-size",j).attr("fill",i.color).attr("font-family",a).attr("text-anchor","middle")}if(b){k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+(g+3)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);let n=true;let e="?";if(i.down1junction){if(i.junctionB.data){if(i.junctionB.data.length==1){const t=i.junctionB.data[0].tkid;if(i.down1junction.data){for(const a of i.down1junction.data){if(a.tkid==t){n=false;e=a.v;break}}}}else if(i.junctionB.data.length>1){let t=0;let a=0;for(const n of i.junctionB.data){for(const e of i.down1junction.data){if(n.tkid==e.tkid){t+=e.v;a++;break}}}if(a>0){n=false;e=Math.ceil(t/a)}}}else{n=false;e=i.down1junction.v}}k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",n?"2,2":"none").attr("fill","none");if(!n){const t=k.append("text").text(e).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(i.down1junction.start+"."+i.down1junction.stop,t);l.push([i.down1junction.start,i.down1junction.stop])}}return[d,l]}export{o as default};
1
+ import{a_ as t,ah as a,bV as n}from"./app-b369b169.js";import{s as e}from"./spliceevent.phrase-c5832470.js";function o(o){const i=o.event;const r=o.holder.append("div").style("vertical-align","top");if(!i.isaltexon&&!i.isskipexon){r.append("div").text(".isskipexon or .isaltexon is not set for event");return}if(!o.nophrase){r.append("div").html(e(i))}const s=o.holder.append("svg").style("display","inline-block");const d=new Map;const l=[];const c=40;const f=20;const p=20;const u=20;const h=20;const x=20;const j=14;const k=s.append("g").attr("transform","translate("+h+","+x+")");const m=i.skippedexon[0];const g=i.skippedexon[i.skippedexon.length-1];let b=false;let y=false;if(i.isskipexon){if(m>1){b=true}if(i.down1junction){y=true}}s.attr("width",h+(b?c+u:0)+c+u+(c+u)*i.skippedexon.length+c+(y?c+u:0)+h).attr("height",x+j+p+f+p+j+x);const B=j+p;const w=new Map;let v=0;if(b){k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+(m-1)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);v+=c+u;let n=true;let e="?";if(i.up1junction){if(i.junctionB.data){if(i.junctionB.data.length==1){const t=i.junctionB.data[0].tkid;if(i.up1junction.data){for(const a of i.up1junction.data){if(a.tkid==t){n=false;e=a.v;break}}}}else if(i.junctionB.data.length>1){let t=0;let a=0;for(const n of i.junctionB.data){for(const e of i.up1junction.data){if(n.tkid==e.tkid){t+=e.v;a++;break}}}if(a>0){n=false;e=Math.ceil(t/a)}}}else{n=false;e=i.up1junction.v}}k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",n?"2,2":"none").attr("fill","none");if(!n){const t=k.append("text").text(e).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(i.up1junction.start+"."+i.up1junction.stop,t);l.push([i.up1junction.start,i.up1junction.stop])}}k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+m).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);v+=c+u;for(let n=m;n<=g+1;n++){const e=n==g+1;k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",e?t:"none").attr("stroke",e?"none":t).attr("shape-rendering","crispEdges");k.append("text").text("e"+(n+1)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill",e?"white":t).attr("font-size",j);const o=i.junctionAlst[n-m];k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",o?"none":"2,2").attr("fill","none");if(o){let t="?";if(i.junctionB.data){if(i.junctionB.data.length==1){if(!o.data){console.error(".data missing from junctionA")}else{for(const a of o.data){if(a.tkid==i.junctionB.data[0].tkid){t=a.v;break}}}}else if(i.junctionB.data.length>1){t="e"+n+"-"+(n+1);for(const t of i.junctionB.data){if(!w.has(t.tkid)){w.set(t.tkid,{sampleobj:t,readcountlst:[]})}let a=0;for(const n of o.data){if(n.tkid==t.tkid){a=n.v;break}}w.get(t.tkid).readcountlst.push(a)}}}else{t=o.v}const e=k.append("text").text(t).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(o.start+"."+o.stop,e);l.push([o.start,o.stop])}v+=c+u}{const t=v-c-u-((c+u)*i.skippedexon.length+u)/2;k.append("path").attr("d","M"+((b?c+u:0)+c)+","+B+"L"+t+","+(B-p)+"L"+(v-c-u)+","+B).attr("fill","none").attr("stroke",i.color);let e="?";if(i.junctionB.data){if(i.junctionB.data.length==1){e=i.junctionB.data[0].v}else{e="e"+m+"-"+(g+2);for(const t of i.junctionB.data){if(!w.has(t.tkid)){console.error("sample has junctionB but no junctionA! "+t.tkid);continue}let a=0;for(const n of i.junctionB.data){if(n.tkid==t.tkid){a=n.v;break}}w.get(t.tkid).readcountlst.unshift(a)}}}else{e=i.junctionB.v}if(typeof i.frame=="boolean"){e+=", "+(i.frame==n?"in frame":"out of frame")}k.append("text").text(e).attr("x",t).attr("y",B-p-2).attr("font-size",j).attr("fill",i.color).attr("font-family",a).attr("text-anchor","middle")}if(y){k.append("rect").attr("x",v).attr("y",B).attr("width",c).attr("height",f).attr("fill",t);k.append("text").text("e"+(g+3)).attr("x",v+c/2).attr("y",B+f/2).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","white").attr("font-size",j);let n=true;let e="?";if(i.down1junction){if(i.junctionB.data){if(i.junctionB.data.length==1){const t=i.junctionB.data[0].tkid;if(i.down1junction.data){for(const a of i.down1junction.data){if(a.tkid==t){n=false;e=a.v;break}}}}else if(i.junctionB.data.length>1){let t=0;let a=0;for(const n of i.junctionB.data){for(const e of i.down1junction.data){if(n.tkid==e.tkid){t+=e.v;a++;break}}}if(a>0){n=false;e=Math.ceil(t/a)}}}else{n=false;e=i.down1junction.v}}k.append("path").attr("d","M"+(v-u)+","+(B+f)+"L"+(v-u/2)+","+(B+f+p)+"L"+v+","+(B+f)).attr("stroke",t).attr("stroke-dasharray",n?"2,2":"none").attr("fill","none");if(!n){const t=k.append("text").text(e).attr("x",v-u/2).attr("y",B+f+p+2).attr("font-size",j).attr("fill","black").attr("font-family",a).attr("text-anchor","middle").attr("dominant-baseline","hanging");d.set(i.down1junction.start+"."+i.down1junction.stop,t);l.push([i.down1junction.start,i.down1junction.stop])}}return[d,l]}export{o as default};
@@ -0,0 +1 @@
1
+ import{bX as e,bV as n}from"./app-b369b169.js";function o(o){let t=0;for(let i=1;i<o.length;i++){const f=o[i];const r=o[t];if(f.isskipexon&&r.isaltexon){t=i;continue}if(f.frame==e&&r.framenocheck){t=i;continue}if(f.frame==n&&r.frame!=n){t=i;continue}}return t}export{o as e};
@@ -1 +1 @@
1
- import{ah as t,a_ as n}from"./app-a8c4854a.js";const e=30;const r=5;const i="#990000";const o=20;const a=14;const s=20;const f=15;const x=15;function l(t){const n=t.isoform;if(!n){t.holder.text(".event missing");return}if(!t.ongene){holder.text(".ongene missing");return}let e,r,i,o,a,s;if(t.ongene.exonleft){const i=t.ongene.exonleft.filter((t=>t.isoform==n))[0];if(t.reverse)r=i;else e=i}if(t.ongene.exonright){const i=t.ongene.exonright.filter((t=>t.isoform==n))[0];if(t.reverse)e=i;else r=i}if(t.ongene.exonleftin){const e=t.ongene.exonleftin.filter((t=>t.isoform==n))[0];if(t.reverse)o=e;else i=e}if(t.ongene.exonrightin){const e=t.ongene.exonrightin.filter((t=>t.isoform==n))[0];if(t.reverse)i=e;else o=e}if(t.ongene.intronleft){const e=t.ongene.intronleft.filter((t=>t.isoform==n))[0];if(t.reverse)s=e;else a=e}if(t.ongene.intronright){const e=t.ongene.intronright.filter((t=>t.isoform==n))[0];if(t.reverse)a=e;else s=e}if(t.ongene.leftout){t.ongene.leftout.filter((t=>t.isoform==n))[0];if(t.reverse);}if(t.ongene.rightout){t.ongene.rightout.filter((t=>t.isoform==n))[0];if(t.reverse);}const f=t.holder.append("svg").attr("width",1).attr("height",1);if(e){if(r){c(e,r,f)}else if(o){h(e,o,f)}else if(s){g(e,s,f)}else{p(e,f)}}else if(i){if(r){u(i,r,f)}else if(o){m(i,o,f)}else if(s){w(i,s,f)}else{y(i,f)}}else if(a){if(r){B(a,r,f)}else if(o){v(a,o,f)}else if(s){z(a,s,f)}else{b(a,f)}}else{if(r){k(r,f)}else if(o){E(o,f)}else if(s){O(s,f)}}}function d(n){const r=n.holder.append("svg");const i=r.append("g").attr("transform","translate("+f+","+x+")");let l=0,d=0;let c,h,g;if(n.ongene.exonleft){c=n.ongene.exonleft[0]}else if(n.ongene.exonleftin){h=n.ongene.exonleftin[0]}else if(n.ongene.intronleft){g=n.ongene.intronleft[0]}let p=0;i.append("text").text(c?c.gene:h?h.gene:g?g.gene:"Left gene").attr("x",0).attr("y",s+o/2).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){p=this.getBBox().width}));p+=5;if(c){const t=M(p,c.exonidx,i);p+=t;l=p}else if(h){const t=M(p,h.exonidx,i);l=p+t/2;p+=t}else if(g){const t=M(p,g.intronidx,i);T(i,p+t,p+t+e);const n=M(p+t+e,g.intronidx+1,i);p+=t;l=p+e/2;p+=e+n}p+=30;let u,m,w;if(n.ongene.exonright){u=n.ongene.exonright[0]}else if(n.ongene.exonrightin){m=n.ongene.exonrightin[0]}else if(n.ongene.intronright){w=n.ongene.intronright[0]}if(u){const t=M(p,u.exonidx,i);d=p;p+=t}else if(m){const t=M(p,m.exonidx,i);d=p+t/2;p+=t}else if(w){const t=M(p,w.intronidx,i);T(i,p+t,p+t+e);const n=M(p+t+e,w.intronidx+1,i);p+=t;d=p+e/2;p+=e+n}p+=5;i.append("text").text(u?u.gene:m?m.gene:w?w.gene:"Right gene").attr("x",p).attr("y",s+o/2).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){p+=this.getBBox().width}));U(i,l,d,g,w);r.attr("width",f*2+p).attr("height",s+o+x*2)}function c(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=n.exonidx-t.exonidx==1;const l=L(t.exonidx,i);let d=l;d+=I(d,t.exonidx,n.exonidx,i);if(!a){T(i,d,d+e)}d+=e;const c=M(d,n.exonidx,i);U(i,l,d,false,false,true);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function h(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);let l=a;l+=I(l,t.exonidx,n.exonidx,i);T(i,l,l+e);l+=e;const d=M(l,n.exonidx,i);l+=d/2;U(i,a,l);r.attr("width",f*2+l+d/2).attr("height",x*2+s+o)}function g(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);let l=a;l+=I(l,t.exonidx,n.intronidx+1,i);T(i,l,l+e);l+=e/2;const d=M(l+e/2,n.intronidx+1,i);U(i,a,l,false,true);r.attr("width",f*2+l+e/2+d).attr("height",x*2+s+o)}function p(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.exonidx,l);const c=d+e;l.append("text").text("OUT").attr("x",c+5).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,d,c);r.attr("width",f*2+c+40).attr("height",x*2+s+o)}function u(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);const l=a/2;let d=a;d+=I(d,t.exonidx,n.exonidx,i);T(i,d,d+e);d+=e;const c=M(d,n.exonidx,i);U(i,l,d);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function m(t,n,r){const a=r.append("g").attr("transform","translate("+f+","+x+")");const l=L(t.exonidx,a);if(t.exonidx==n.exonidx){const t=l/3;const n=l*2/3;a.append("path").attr("d","M"+t+","+s+"L"+(t+n)/2+",0"+"L"+n+","+s).attr("stroke",i).attr("fill","none");r.attr("width",f*2+l).attr("height",x*2+s*2+o);return}const d=l/2;let c=l;c+=I(c,t.exonidx,n.exonidx,a);T(a,c,c+e);c+=e;const h=M(c,n.exonidx,a);c+=h/2;U(a,d,c);r.attr("width",f*2+c+h/2).attr("height",x*2+s+o)}function w(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);const l=a/2;let d=a;d+=I(d,t.exonidx,n.intronidx+1,i);T(i,d,d+e);d+=e/2;const c=M(d+e/2,n.intronidx+1,i);U(i,l,d,false,true);r.attr("width",f*2+d+e/2+c).attr("height",x*2+s+o)}function y(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.exonidx,l);const c=d/2;let h=d+e;l.append("text").text("OUT").attr("x",h+5).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,c,h);r.attr("width",f*2+h+40).attr("height",x*2+s+o)}function B(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.exonidx,i,true);const c=M(d,n.exonidx,i);U(i,l,d,true);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function v(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.exonidx,i,true);const c=M(d,n.exonidx,i);d+=c/2;U(i,l,d,true);r.attr("width",f*2+d+c/2).attr("height",x*2+s+o)}function z(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);if(t.intronidx==n.intronidx){T(i,a,a+30);const t=a+10;const e=a+20;U(i,t,e,true,true);const l=M(e+10,n.intronidx+1,i);r.attr("width",f*2+a+30+l).attr("height",x*2+s+o);return}const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.intronidx+1,i,true);T(i,d,d+e);d+=e/2;const c=M(d+e/2,n.intronidx+1,i);U(i,l,d,true,true);r.attr("width",f*2+d+e/2+c).attr("height",x*2+s+o)}function b(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.intronidx,l);const c=d+e/2;let h=d+e;T(l,d,h);const g=M(h,n.intronidx+1,l);h+=g+10;l.append("text").text("OUT").attr("x",h).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,c,h,true);r.attr("width",f*2+h+30).attr("height",x*2+s+o)}function k(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=c+e;const g=M(h,n.exonidx,l);U(l,c,h);r.attr("width",f*2+h+g).attr("height",x*2+s+o)}function E(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=M(c+e,n.exonidx,l);const g=c+e+h/2;U(l,c,g);r.attr("width",f*2+g+h/2).attr("height",x*2+s+o)}function O(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=M(c+30,n.intronidx,l);T(l,c+30+h,c+30+h+e);const g=c+30+h+e/2;const p=M(c+30+h+e,n.intronidx+1,l);U(l,c,g,false,true);r.attr("width",f*2+c+30+h+e+p).attr("height",x*2+s+o)}function T(t,e,r){t.append("line").attr("x1",e).attr("y1",s+o/2).attr("x2",r).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges")}function U(t,e,r,a,f,x){t.append("path").attr("d","M"+e+","+(s+(a?o/2:0))+"L"+(e+r)/2+",0"+"L"+r+","+(s+(f?o/2:0))).attr("stroke",x?n:i).attr("fill","none")}function L(e,i){const f="e"+(e+1);let x;i.append("text").text(f).attr("font-size",a).attr("font-family",t).each((function(){x=this.getBBox().width})).remove();const l=r*2+x;i.append("rect").attr("fill",n).attr("stroke",n).attr("x",0).attr("y",s).attr("width",l).attr("height",o).attr("shape-rendering","crispEdges");i.append("text").text(f).attr("text-anchor","middle").attr("x",l/2).attr("y",s+o/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);return l}function M(e,i,f){let x;if(Number.isInteger(i)){x="e"+(i+1)}else{x=x}let l;f.append("text").text(x).attr("font-size",a).attr("font-family",t).each((function(){l=this.getBBox().width})).remove();const d=r*2+l;f.append("rect").attr("fill",n).attr("stroke",n).attr("x",e).attr("y",s).attr("width",d).attr("height",o).attr("shape-rendering","crispEdges");f.append("text").text(x).attr("text-anchor","middle").attr("x",e+d/2).attr("y",s+o/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);return d}function j(t){if(t<3)return 12;if(t<6)return 7;return 4}function I(t,e,r,i,a){const f=r-1-e;if(f==0)return 0;const x=j(f);let l=0;for(let f=e+1;f<r;f++){if(!a){i.append("line").attr("x1",t+l).attr("y1",s+o/2).attr("x2",t+l+x).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges");l+=x}i.append("rect").attr("fill",n).attr("stroke",n).attr("x",t+l).attr("y",s).attr("width",x).attr("height",o).attr("shape-rendering","crispEdges");l+=x;if(a){i.append("line").attr("x1",t+l).attr("y1",s+o/2).attr("x2",t+l+x).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges");l+=x}}return l}export{d as differentgenes,l as samegene};
1
+ import{ah as t,a_ as n}from"./app-b369b169.js";const e=30;const r=5;const i="#990000";const o=20;const a=14;const s=20;const f=15;const x=15;function l(t){const n=t.isoform;if(!n){t.holder.text(".event missing");return}if(!t.ongene){holder.text(".ongene missing");return}let e,r,i,o,a,s;if(t.ongene.exonleft){const i=t.ongene.exonleft.filter((t=>t.isoform==n))[0];if(t.reverse)r=i;else e=i}if(t.ongene.exonright){const i=t.ongene.exonright.filter((t=>t.isoform==n))[0];if(t.reverse)e=i;else r=i}if(t.ongene.exonleftin){const e=t.ongene.exonleftin.filter((t=>t.isoform==n))[0];if(t.reverse)o=e;else i=e}if(t.ongene.exonrightin){const e=t.ongene.exonrightin.filter((t=>t.isoform==n))[0];if(t.reverse)i=e;else o=e}if(t.ongene.intronleft){const e=t.ongene.intronleft.filter((t=>t.isoform==n))[0];if(t.reverse)s=e;else a=e}if(t.ongene.intronright){const e=t.ongene.intronright.filter((t=>t.isoform==n))[0];if(t.reverse)a=e;else s=e}if(t.ongene.leftout){t.ongene.leftout.filter((t=>t.isoform==n))[0];if(t.reverse);}if(t.ongene.rightout){t.ongene.rightout.filter((t=>t.isoform==n))[0];if(t.reverse);}const f=t.holder.append("svg").attr("width",1).attr("height",1);if(e){if(r){c(e,r,f)}else if(o){h(e,o,f)}else if(s){g(e,s,f)}else{p(e,f)}}else if(i){if(r){u(i,r,f)}else if(o){m(i,o,f)}else if(s){w(i,s,f)}else{y(i,f)}}else if(a){if(r){B(a,r,f)}else if(o){b(a,o,f)}else if(s){v(a,s,f)}else{z(a,f)}}else{if(r){k(r,f)}else if(o){E(o,f)}else if(s){O(s,f)}}}function d(n){const r=n.holder.append("svg");const i=r.append("g").attr("transform","translate("+f+","+x+")");let l=0,d=0;let c,h,g;if(n.ongene.exonleft){c=n.ongene.exonleft[0]}else if(n.ongene.exonleftin){h=n.ongene.exonleftin[0]}else if(n.ongene.intronleft){g=n.ongene.intronleft[0]}let p=0;i.append("text").text(c?c.gene:h?h.gene:g?g.gene:"Left gene").attr("x",0).attr("y",s+o/2).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){p=this.getBBox().width}));p+=5;if(c){const t=M(p,c.exonidx,i);p+=t;l=p}else if(h){const t=M(p,h.exonidx,i);l=p+t/2;p+=t}else if(g){const t=M(p,g.intronidx,i);T(i,p+t,p+t+e);const n=M(p+t+e,g.intronidx+1,i);p+=t;l=p+e/2;p+=e+n}p+=30;let u,m,w;if(n.ongene.exonright){u=n.ongene.exonright[0]}else if(n.ongene.exonrightin){m=n.ongene.exonrightin[0]}else if(n.ongene.intronright){w=n.ongene.intronright[0]}if(u){const t=M(p,u.exonidx,i);d=p;p+=t}else if(m){const t=M(p,m.exonidx,i);d=p+t/2;p+=t}else if(w){const t=M(p,w.intronidx,i);T(i,p+t,p+t+e);const n=M(p+t+e,w.intronidx+1,i);p+=t;d=p+e/2;p+=e+n}p+=5;i.append("text").text(u?u.gene:m?m.gene:w?w.gene:"Right gene").attr("x",p).attr("y",s+o/2).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){p+=this.getBBox().width}));U(i,l,d,g,w);r.attr("width",f*2+p).attr("height",s+o+x*2)}function c(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=n.exonidx-t.exonidx==1;const l=L(t.exonidx,i);let d=l;d+=I(d,t.exonidx,n.exonidx,i);if(!a){T(i,d,d+e)}d+=e;const c=M(d,n.exonidx,i);U(i,l,d,false,false,true);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function h(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);let l=a;l+=I(l,t.exonidx,n.exonidx,i);T(i,l,l+e);l+=e;const d=M(l,n.exonidx,i);l+=d/2;U(i,a,l);r.attr("width",f*2+l+d/2).attr("height",x*2+s+o)}function g(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);let l=a;l+=I(l,t.exonidx,n.intronidx+1,i);T(i,l,l+e);l+=e/2;const d=M(l+e/2,n.intronidx+1,i);U(i,a,l,false,true);r.attr("width",f*2+l+e/2+d).attr("height",x*2+s+o)}function p(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.exonidx,l);const c=d+e;l.append("text").text("OUT").attr("x",c+5).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,d,c);r.attr("width",f*2+c+40).attr("height",x*2+s+o)}function u(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);const l=a/2;let d=a;d+=I(d,t.exonidx,n.exonidx,i);T(i,d,d+e);d+=e;const c=M(d,n.exonidx,i);U(i,l,d);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function m(t,n,r){const a=r.append("g").attr("transform","translate("+f+","+x+")");const l=L(t.exonidx,a);if(t.exonidx==n.exonidx){const t=l/3;const n=l*2/3;a.append("path").attr("d","M"+t+","+s+"L"+(t+n)/2+",0"+"L"+n+","+s).attr("stroke",i).attr("fill","none");r.attr("width",f*2+l).attr("height",x*2+s*2+o);return}const d=l/2;let c=l;c+=I(c,t.exonidx,n.exonidx,a);T(a,c,c+e);c+=e;const h=M(c,n.exonidx,a);c+=h/2;U(a,d,c);r.attr("width",f*2+c+h/2).attr("height",x*2+s+o)}function w(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.exonidx,i);const l=a/2;let d=a;d+=I(d,t.exonidx,n.intronidx+1,i);T(i,d,d+e);d+=e/2;const c=M(d+e/2,n.intronidx+1,i);U(i,l,d,false,true);r.attr("width",f*2+d+e/2+c).attr("height",x*2+s+o)}function y(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.exonidx,l);const c=d/2;let h=d+e;l.append("text").text("OUT").attr("x",h+5).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,c,h);r.attr("width",f*2+h+40).attr("height",x*2+s+o)}function B(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.exonidx,i,true);const c=M(d,n.exonidx,i);U(i,l,d,true);r.attr("width",f*2+d+c).attr("height",x*2+s+o)}function b(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.exonidx,i,true);const c=M(d,n.exonidx,i);d+=c/2;U(i,l,d,true);r.attr("width",f*2+d+c/2).attr("height",x*2+s+o)}function v(t,n,r){const i=r.append("g").attr("transform","translate("+f+","+x+")");const a=L(t.intronidx,i);if(t.intronidx==n.intronidx){T(i,a,a+30);const t=a+10;const e=a+20;U(i,t,e,true,true);const l=M(e+10,n.intronidx+1,i);r.attr("width",f*2+a+30+l).attr("height",x*2+s+o);return}const l=a+e/2;let d=a+e;T(i,a,d);d+=I(d,t.intronidx,n.intronidx+1,i,true);T(i,d,d+e);d+=e/2;const c=M(d+e/2,n.intronidx+1,i);U(i,l,d,true,true);r.attr("width",f*2+d+e/2+c).attr("height",x*2+s+o)}function z(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");const d=L(n.intronidx,l);const c=d+e/2;let h=d+e;T(l,d,h);const g=M(h,n.intronidx+1,l);h+=g+10;l.append("text").text("OUT").attr("x",h).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);U(l,c,h,true);r.attr("width",f*2+h+30).attr("height",x*2+s+o)}function k(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=c+e;const g=M(h,n.exonidx,l);U(l,c,h);r.attr("width",f*2+h+g).attr("height",x*2+s+o)}function E(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=M(c+e,n.exonidx,l);const g=c+e+h/2;U(l,c,g);r.attr("width",f*2+g+h/2).attr("height",x*2+s+o)}function O(n,r){const l=r.append("g").attr("transform","translate("+f+","+x+")");let d;l.append("text").text("OUT").attr("x",0).attr("y",s+o/2).attr("fill",i).attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t).each((function(){d=this.getBBox().width}));const c=d+5;const h=M(c+30,n.intronidx,l);T(l,c+30+h,c+30+h+e);const g=c+30+h+e/2;const p=M(c+30+h+e,n.intronidx+1,l);U(l,c,g,false,true);r.attr("width",f*2+c+30+h+e+p).attr("height",x*2+s+o)}function T(t,e,r){t.append("line").attr("x1",e).attr("y1",s+o/2).attr("x2",r).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges")}function U(t,e,r,a,f,x){t.append("path").attr("d","M"+e+","+(s+(a?o/2:0))+"L"+(e+r)/2+",0"+"L"+r+","+(s+(f?o/2:0))).attr("stroke",x?n:i).attr("fill","none")}function L(e,i){const f="e"+(e+1);let x;i.append("text").text(f).attr("font-size",a).attr("font-family",t).each((function(){x=this.getBBox().width})).remove();const l=r*2+x;i.append("rect").attr("fill",n).attr("stroke",n).attr("x",0).attr("y",s).attr("width",l).attr("height",o).attr("shape-rendering","crispEdges");i.append("text").text(f).attr("text-anchor","middle").attr("x",l/2).attr("y",s+o/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);return l}function M(e,i,f){let x;if(Number.isInteger(i)){x="e"+(i+1)}else{x=x}let l;f.append("text").text(x).attr("font-size",a).attr("font-family",t).each((function(){l=this.getBBox().width})).remove();const d=r*2+l;f.append("rect").attr("fill",n).attr("stroke",n).attr("x",e).attr("y",s).attr("width",d).attr("height",o).attr("shape-rendering","crispEdges");f.append("text").text(x).attr("text-anchor","middle").attr("x",e+d/2).attr("y",s+o/2).attr("fill","white").attr("dominant-baseline","central").attr("font-size",a).attr("font-family",t);return d}function j(t){if(t<3)return 12;if(t<6)return 7;return 4}function I(t,e,r,i,a){const f=r-1-e;if(f==0)return 0;const x=j(f);let l=0;for(let f=e+1;f<r;f++){if(!a){i.append("line").attr("x1",t+l).attr("y1",s+o/2).attr("x2",t+l+x).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges");l+=x}i.append("rect").attr("fill",n).attr("stroke",n).attr("x",t+l).attr("y",s).attr("width",x).attr("height",o).attr("shape-rendering","crispEdges");l+=x;if(a){i.append("line").attr("x1",t+l).attr("y1",s+o/2).attr("x2",t+l+x).attr("y2",s+o/2).attr("stroke",n).attr("shape-rendering","crispEdges");l+=x}}return l}export{d as differentgenes,l as samegene};
@@ -1 +1 @@
1
- import{bV as s,ba as i,bX as o}from"./app-a8c4854a.js";function a(a){const d=[];if(a.isaltexon||a.isskipexon){const e=Math.min(...a.skippedexon);const l=Math.max(...a.skippedexon);d.push('<div style="display:inline-block">'+(e==l?"exon "+(e+1):"exons "+(e+1)+"-"+(l+1))+" "+(a.isaltexon?"alternative usage":"skipping")+"</div>");if(a.isaltexon){d.push("<div class=sja_tinylogo_body>"+a.gmB.isoform+", "+a.gmA.isoform+"</div><div class=sja_tinylogo_head>ISOFORMS</div>")}else{d.push("<div class=sja_tinylogo_body>"+a.gm.isoform+"</div><div class=sja_tinylogo_head>ISOFORM</div>")}if(a.junctionB.data){d.push("<div class=sja_tinylogo_body>"+a.junctionB.data.length+"</div><div class=sja_tinylogo_head>SAMPLE"+(a.junctionB.data.length>1?"S":"")+"</div>")}d.push("<div class=sja_tinylogo_body>"+a.percentage+" %</div><div class=sja_tinylogo_head>PERCENT</div>");if(a.framenocheck){if(a.utr3){d.push('<div class=sja_tinylogo_body style="background-color:#ededed">3\' UTR</div>')}else if(a.utr5){d.push('<div class=sja_tinylogo_body style="background-color:#ededed">5\' UTR</div>')}}else if(a.frame==s){d.push('<div class=sja_tinylogo_body style="background-color:'+i+';color:white">IN</div><div class=sja_tinylogo_head>FRAME</div>')}else if(a.frame==o){d.push("<div class=sja_tinylogo_body>OUT</div><div class=sja_tinylogo_head>FRAME</div>")}else{d.push("<div class=sja_tinylogo_body>?</div><div class=sja_tinylogo_head>FRAME</div>")}}else{return"unknown event type!!"}return d.join(" ")}export{a as s};
1
+ import{bV as s,ba as i,bX as o}from"./app-b369b169.js";function a(a){const d=[];if(a.isaltexon||a.isskipexon){const e=Math.min(...a.skippedexon);const l=Math.max(...a.skippedexon);d.push('<div style="display:inline-block">'+(e==l?"exon "+(e+1):"exons "+(e+1)+"-"+(l+1))+" "+(a.isaltexon?"alternative usage":"skipping")+"</div>");if(a.isaltexon){d.push("<div class=sja_tinylogo_body>"+a.gmB.isoform+", "+a.gmA.isoform+"</div><div class=sja_tinylogo_head>ISOFORMS</div>")}else{d.push("<div class=sja_tinylogo_body>"+a.gm.isoform+"</div><div class=sja_tinylogo_head>ISOFORM</div>")}if(a.junctionB.data){d.push("<div class=sja_tinylogo_body>"+a.junctionB.data.length+"</div><div class=sja_tinylogo_head>SAMPLE"+(a.junctionB.data.length>1?"S":"")+"</div>")}d.push("<div class=sja_tinylogo_body>"+a.percentage+" %</div><div class=sja_tinylogo_head>PERCENT</div>");if(a.framenocheck){if(a.utr3){d.push('<div class=sja_tinylogo_body style="background-color:#ededed">3\' UTR</div>')}else if(a.utr5){d.push('<div class=sja_tinylogo_body style="background-color:#ededed">5\' UTR</div>')}}else if(a.frame==s){d.push('<div class=sja_tinylogo_body style="background-color:'+i+';color:white">IN</div><div class=sja_tinylogo_head>FRAME</div>')}else if(a.frame==o){d.push("<div class=sja_tinylogo_body>OUT</div><div class=sja_tinylogo_head>FRAME</div>")}else{d.push("<div class=sja_tinylogo_body>?</div><div class=sja_tinylogo_head>FRAME</div>")}}else{return"unknown event type!!"}return d.join(" ")}export{a as s};
@@ -1 +1 @@
1
- import{h as t}from"./app-a8c4854a.js";class e{constructor(t){this.type="stattable"}async init(){this.dom={div:this.opts.holder.append("div").style("margin","10px")};i(this)}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{activeCohort:t.activeCohort,termfilter:t.termfilter,config:{term:e.term,term0:e.term0,term2:e.term2,settings:{common:e.settings.common,barchart:e.settings.barchart}},filter:t.termfilter.filter}}async main(){try{this.config=structuredClone(this.state.config);if(this.state.isVisible){const t=this.getDataRequestOpts();const e=await this.app.vocabApi.getNestedChartSeriesData(t);this.app.vocabApi.syncTermData(this.state.config,e)}if(!this.state.isVisible||!this.data||!this.data.boxplot){this.dom.div.style("display","none");return}this.render(this.data)}catch(t){throw t}}getDataRequestOpts(){const t=this.config;const e={term:t.term,filter:this.state.termfilter.filter};if(t.term2)e.term2=t.term2;if(t.term0)e.term0=t.term0;if(this.state.ssid)e.ssid=this.state.ssid;return e}}function i(t){t.render=function(e){t.dom.div.style("display","block").selectAll("*").remove();let i="";const o=e.boxplot.sd?" ("+e.boxplot.sd.toFixed(2)+") ":"";let s="";if(Number.isFinite(e.boxplot.min)){s+="<tr><td>Minimum</td><td>"+e.boxplot.min.toFixed(2)+"</td></tr>"}if(Number.isFinite(e.boxplot.max)){s+="<tr><td>Maximum</td><td>"+e.boxplot.max.toFixed(2)+"</td></tr>"}s+="<tr><td>Mean (SD)</td><td>"+e.boxplot.mean.toFixed(2)+o+"</td></tr>";if("p50"in e.boxplot){s+="<tr><td>Median (IQR)</td><td>"+e.boxplot.p50.toFixed(2)+" ("+e.boxplot.iqr.toFixed(2)+") </td></tr>"+"<tr><td>5th Percentile</td><td>"+e.boxplot.p05.toFixed(2)+"</td></tr>"+"<tr><td>25th Percentile</td><td>"+e.boxplot.p25.toFixed(2)+"</td></tr>"+"<tr><td>75th Percentile</td><td>"+e.boxplot.p75.toFixed(2)+"</td></tr>"+"<tr><td>95th Percentile</td><td>"+e.boxplot.p95.toFixed(2)+"</td></tr>"}t.dom.div.html("<table><tr><th></th><th>Value</th></tr>"+i+s+"</table>");t.dom.div.selectAll("td, th, table").style("border","1px solid black").style("padding","0").style("border-collapse","collapse");t.dom.div.selectAll("th, td").style("padding","2px 10px")}}const o=t(e);export{o as statTableInit};
1
+ import{h as t}from"./app-b369b169.js";class e{constructor(t){this.type="stattable"}async init(){this.dom={div:this.opts.holder.append("div").style("margin","10px")};i(this)}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{activeCohort:t.activeCohort,termfilter:t.termfilter,config:{term:e.term,term0:e.term0,term2:e.term2,settings:{common:e.settings.common,barchart:e.settings.barchart}},filter:t.termfilter.filter}}async main(){try{this.config=structuredClone(this.state.config);if(this.state.isVisible){const t=this.getDataRequestOpts();const e=await this.app.vocabApi.getNestedChartSeriesData(t);this.app.vocabApi.syncTermData(this.state.config,e)}if(!this.state.isVisible||!this.data||!this.data.boxplot){this.dom.div.style("display","none");return}this.render(this.data)}catch(t){throw t}}getDataRequestOpts(){const t=this.config;const e={term:t.term,filter:this.state.termfilter.filter};if(t.term2)e.term2=t.term2;if(t.term0)e.term0=t.term0;if(this.state.ssid)e.ssid=this.state.ssid;return e}}function i(t){t.render=function(e){t.dom.div.style("display","block").selectAll("*").remove();let i="";const o=e.boxplot.sd?" ("+e.boxplot.sd.toFixed(2)+") ":"";let s="";if(Number.isFinite(e.boxplot.min)){s+="<tr><td>Minimum</td><td>"+e.boxplot.min.toFixed(2)+"</td></tr>"}if(Number.isFinite(e.boxplot.max)){s+="<tr><td>Maximum</td><td>"+e.boxplot.max.toFixed(2)+"</td></tr>"}s+="<tr><td>Mean (SD)</td><td>"+e.boxplot.mean.toFixed(2)+o+"</td></tr>";if("p50"in e.boxplot){s+="<tr><td>Median (IQR)</td><td>"+e.boxplot.p50.toFixed(2)+" ("+e.boxplot.iqr.toFixed(2)+") </td></tr>"+"<tr><td>5th Percentile</td><td>"+e.boxplot.p05.toFixed(2)+"</td></tr>"+"<tr><td>25th Percentile</td><td>"+e.boxplot.p25.toFixed(2)+"</td></tr>"+"<tr><td>75th Percentile</td><td>"+e.boxplot.p75.toFixed(2)+"</td></tr>"+"<tr><td>95th Percentile</td><td>"+e.boxplot.p95.toFixed(2)+"</td></tr>"}t.dom.div.html("<table><tr><th></th><th>Value</th></tr>"+i+s+"</table>");t.dom.div.selectAll("td, th, table").style("border","1px solid black").style("padding","0").style("border-collapse","collapse");t.dom.div.selectAll("th, td").style("padding","2px 10px")}}const o=t(e);export{o as statTableInit};
@@ -1 +1 @@
1
- import{s as n}from"./app-a8c4854a.js";var p="\n\n\n.sjpp-plus-button, .sjpp-dshandleholder {\n border-radius: 4px;\n}\n\n";var s="\n\n\n.sjpp-plus-button, .sjpp-dshandleholder {\n border-radius: 4px;\n}\n\n";n(p);export{p as default,s as stylesheet};
1
+ import{s as n}from"./app-b369b169.js";var p="\n\n\n.sjpp-plus-button, .sjpp-dshandleholder {\n border-radius: 4px;\n}\n\n";var s="\n\n\n.sjpp-plus-button, .sjpp-dshandleholder {\n border-radius: 4px;\n}\n\n";n(p);export{p as default,s as stylesheet};
@@ -0,0 +1 @@
1
+ import{h as t,P as e,M as i}from"./app-b369b169.js";import{f as o,i as r}from"./termsetting-33ea66f1.js";import{r as s}from"./recover-49e09de0.js";import{getDefaultViolinSettings as a}from"./violin-2ba509eb.js";import{getDefaultBarSettings as n}from"./barchart-8277ed43.js";import{g as p}from"./sampleScatter-2d0ed680.js";import{T as l}from"./toggleButtons-dbdbad01.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterRxComp-701a1480.js";import"./table-29d5a973.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-8b656cc3.js";import"./FilterStateless-54c0b763.js";import"./app-3320ab6f.js";import"./termInfo-bf99a37e.js";import"./genesearch-a4e19f0d.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";import"./controls-287e6efa.js";import"./controls.btns-79b805dd.js";import"./controls.config-28d6d6a8.js";import"./violin.renderer-ce024265.js";import"./brush-aa175142.js";import"./pointer-c7475677.js";import"./nodrag-16ad4b03.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./basis-3870f5ba.js";import"./log-99af3443.js";import"./html.legend-a3f4ebfe.js";import"./violin.interactivity-4da6d7a9.js";import"./niceNumLabels-238aabce.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-dcfdd59b.js";import"./svg.legend-8d490df2.js";import"./barchart.events-da29c90d.js";import"./zoom-25dce8b9.js";import"./lasso-f767f634.js";import"./drag-7b30ba17.js";import"./downloadTextfile-5723af95.js";import"./sampleView-484ab133.js";import"./select2Terms-b21e184a.js";import"./svg.download-35926549.js";import"./sampleScatter.rendererThree-0b12ac61.js";class c{constructor(t){this.type="summary";this.components={recover:{},plots:{}};this.chartsByType={}}async init(t){const e=this.getState(t);const i=structuredClone(e.config);m(this);this.initUi(this.opts,i);this.components.recover=await s({app:this.app,holder:this.dom.localRecoverDiv,getState:t=>this.getState(t),reactsTo:t=>t.id==this.id&&t.type=="plot_edit"&&t._scope_!="none",plot_id:this.id,maxHistoryLen:10,margin:"5px 10px"})}reactsTo(t){if(t.type.includes("cache_termq"))return true;if(t.type.startsWith("plot_")){return t.id===this.id}if(t.type.startsWith("filter"))return true;if(t.type.startsWith("cohort"))return true;if(t.type=="app_refresh")return true}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:e,_scope_:t._scope_}}async main(){this.dom.errdiv.style("display","none");this.config=structuredClone(this.state.config);if(!this.components.plots[this.config.childType]){await this.setComponent(this.config)}for(const t in this.components.plots){this.components.plots[t]}this.render();const t=this.tabsData.findIndex((t=>t.childType==this.config.childType));this.chartToggles.update(t,this.config)}async setComponent(t){let e;if(t.childType=="barchart")e=await import("./barchart-8277ed43.js");else if(t.childType=="violin")e=await import("./violin-2ba509eb.js");else if(t.childType=="table")e=await import("./table-ad744310.js");else if(t.childType=="boxplot")e=await import("./boxplot-e17a17b7.js");else if(t.childType=="sampleScatter")e=await import("./sampleScatter-2d0ed680.js").then((function(t){return t.b}));else throw`unsupported childType='${t.childType}'`;this.dom.plotDivs[t.childType]=this.dom.viz.append("div");this.components.plots[t.childType]=await e.componentInit({app:this.app,holder:this.dom.plotDivs[t.childType],id:this.id,parent:this.api})}destroy(){this.dom.holder.app_div.selectAll("*").remove();this.dom.holder.app_div.remove();for(const t in this.dom){delete this.dom[t]}}}const d=t(c);function m(t){t.initUi=function(e,o){const s=e.holder;try{t.dom={tip:new i({padding:"0px"}),holder:s,body:s.body.style("white-space","nowrap").style("overflow-x","auto"),errdiv:s.body.append("div").style("display","none").style("padding","5px").style("background-color","rgba(255,100,100,0.2)"),viz:s.body.append("div"),plotDivs:{}};s.header.style("padding",0);t.dom.paneTitleDiv=t.dom.holder.header.append("div").style("display","inline-block").style("color","#999").style("padding-left","7px");t.dom.paneTitleDiv.append("div").classed("sjpp-term-header",true).style("display","inline-block").style("vertical-align","sub").html(o.term.term.name);t.tabsData=[{childType:"barchart",label:"Barchart",isVisible:()=>true,disabled:t=>false,getConfig:async()=>{if(!t.config)return;const e={id:t.id,childType:"barchart"};const i=t.config?.term;const o=t.config?.term2;if(i){const o=r(i?.term)?"discrete":i?.q.mode||"discrete";e.term=await t.getWrappedTermCopy(i,o)}if(o){const i=r(o.term)?"discrete":o.q.mode||"discrete";e.term2=await t.getWrappedTermCopy(o,i)}return e},active:true,callback:t.tabClickCallback},{childType:"violin",label:"Violin",disabled:t=>false,isVisible:()=>r(t.config?.term?.term)||r(t.config?.term2?.term),getConfig:async()=>{const e=t.config?.term;const i=t.config.term2;let o,s;r(e?.term)?t.violinContTerm="term":t.violinContTerm="term2";if(t.violinContTerm&&t.violinContTerm==="term"||e.q?.mode=="continuous"){o=await t.getWrappedTermCopy(e,"continuous");s=await t.getWrappedTermCopy(i,"discrete");t.violinContTerm="term"}else if(t.violinContTerm&&t.violinContTerm==="term2"||i?.q?.mode=="continuous"){o=await t.getWrappedTermCopy(e,"discrete");s=await t.getWrappedTermCopy(i,"continuous");t.violinContTerm="term2"}else if(i?.q?.mode=="discrete"){o=await t.getWrappedTermCopy(e,"discrete");s=await t.getWrappedTermCopy(i,"continuous");t.violinContTerm="term2"}else{o=await t.getWrappedTermCopy(e,"continuous");s=await t.getWrappedTermCopy(i,"discrete");t.violinContTerm="term"}const a={childType:"violin",term:o,term2:s};return a},active:false,callback:t.tabClickCallback},{childType:"table",label:"Crosstab - in development",disabled:t=>true,isVisible:()=>false,active:false,callback:t.tabClickCallback},{childType:"boxplot",label:"Boxplot - TODO",disabled:t=>true,isVisible:()=>false,active:false,callback:t.tabClickCallback},{childType:"sampleScatter",label:"Scatter",disabled:t=>false,isVisible:()=>r(t.config?.term.term)&&r(t.config?.term2?.term),getConfig:async()=>{const e=await t.getWrappedTermCopy(t.config?.term,"continuous");const i=await t.getWrappedTermCopy(t.config?.term2,"continuous");let o={childType:"sampleScatter",term:e,term2:i,groups:[],term0:t.config.term0};return o},active:false,callback:t.tabClickCallback}];t.dom.chartToggles=t.dom.paneTitleDiv.append("div").style("display","inline-block").style("margin-left","10px");t.chartToggles=new l({holder:t.dom.chartToggles,tabs:t.tabsData,noContent:true});t.chartToggles.main();t.dom.localRecoverDiv=t.dom.paneTitleDiv.append("div").style("display","inline-block")}catch(t){throw t}};t.tabClickCallback=async(e,i)=>{if(!i||!i.getConfig)return;const o=await i.getConfig();if(o)t.app.dispatch({type:"plot_edit",id:t.id,config:o})};t.getWrappedTermCopy=async function(e,i){if(!e)return;const r=structuredClone(e);r.q.mode=i;await o(r,t.app.vocabApi);return r};t.render=function(){for(const e in t.components.plots){const i=t.components.plots[e];if(i.type!=t.config.childType){t.dom.plotDivs[i.type].style("display","none")}}t.dom.plotDivs[t.config.childType].style("display","")}}async function h(t,i){if(!t.term)throw"summary getPlotConfig: opts.term{} missing";try{await o(t.term,i.vocabApi);if(t.term2)await o(t.term2,i.vocabApi);if(t.term0)await o(t.term0,i.vocabApi)}catch(t){throw`${t} [summary getPlotConfig()]`}const r={chartType:"summary",childType:"barchart",term:t.term,groups:[],settings:{controls:{isOpen:false},common:{use_logscale:false,use_percentage:false,barheight:300,barwidth:20,barspace:2},barchart:n(i),violin:a(),sampleScatter:p()},mayAdjustConfig(t,e={}){if(!e.childType){if(t.term?.q?.mode=="continuous"&&t.term2?.q?.mode=="continuous"){t.childType="sampleScatter"}else if(t.term?.q?.mode=="continuous"||t.term2?.q?.mode=="continuous")t.childType="violin";else t.childType="barchart"}}};return e(r,t)}export{h as getPlotConfig,d as summaryInit};
@@ -1 +1 @@
1
- import{a8 as t,af as a,aL as e,r,aW as n,d as i}from"./app-a8c4854a.js";import{p as o}from"./partition-db811f6b.js";import{d as s}from"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";const l=500;const c=250;function f(f){const{occurrence:p,boxyoff:u,boxheight:m,boxwidth:g,svgheight:y,g:x,pica:b,cx:v,cy:w,nodes:M,chartlabel:A,click_ring:k,click_listbutton:z}=f;x.attr("transform","translate("+v+","+w+")");const _=t(a);const j=x.append("g");const F=x.append("g");const E={g:x,eye:j,ring:F,pica:b,busy:false,boxyoff:u,svgheight:y,cx:v,cy:w};const I=Math.max(m*.2,Math.min(m*.42,Math.log(p)*24));if(v<I){E.cx=I}else if(v+I>g){E.cx=g-I}if(w<I){E.cy=I}else if(w+I>m){E.cy=m-I}x.transition().delay(l+c).attr("transform","translate("+E.cx+","+E.cy+")");const P=e()(M);P.sum((t=>t.value));P.sort(((t,a)=>a.value-t.value));o().size([1,Math.pow(I,2)])(P);j.append("circle").attr("r",I).attr("fill","white").attr("fill-opacity",0);let B;const q=s().startAngle((t=>Math.PI*2*t.x0)).endAngle((t=>Math.PI*2*t.x1)).innerRadius((t=>{if(!t.parent){B=Math.sqrt(t.y1)-I/15;return B}return Math.sqrt(t.y0)})).outerRadius((t=>{t.outradius=Math.sqrt(t.y1);return t.outradius}));F.selectAll().data(P.descendants()).enter().append("path").attr("d",q).attr("stroke","white").attr("fill",(t=>{if(!t.parent){return"white"}let a;if(t.children){a=t.id}else{if(!t.parent.parent){a=t.id}else{a=t.parent.id}}const e=_(a);t._color=e;return e})).on("mouseover",((t,a)=>{if(!a.parent)return;if(E.busy)return;t.target.setAttribute("fill",r(a._color).darker(.5).toString());h(a,E)})).on("mouseout",((t,a)=>{b.g.selectAll("*").remove();if(!a.parent)return;t.target.setAttribute("fill",a._color)})).on("click",(async(t,a)=>{if(!k)return;if(E.busy)return;E.busy=true;await k(t,a);E.busy=false}));const X=B*2;F.attr("transform","scale(.3,.3)").attr("fill-opacity",0).transition().duration(l).attr("transform","scale(1,1)").attr("fill-opacity",1).on("end",(()=>{j.shutter=j.append("rect").attr("x",-B).attr("y",-B).attr("width",B*2).attr("height",0).attr("fill","#ededed").on("click",(()=>d(E)));j.shutter.transition().duration(c).attr("height",B*2).on("end",(()=>{j.fore=j.append("g");const t=Math.min(X/(A.length*n),B*.6);j.fore.append("text").text(A).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","#858585").attr("font-weight","bold").attr("font-family","Arial").attr("font-size",t);const a=Math.min(18,Math.min(B*.7/(p.toString().length*n),(B-t/2)*.7));j.fore.append("text").text(p).attr("text-anchor","middle").attr("fill","#858585").attr("y",-t/2-2).attr("font-family","Arial").attr("font-size",a);j.append("rect").attr("x",-B).attr("y",-B).attr("width",B*2).attr("height",B*2).attr("fill","black").attr("fill-opacity",0).on("click",(()=>{if(E.busy)return;d(E)})).on("mousedown",(t=>{t.preventDefault();t.stopPropagation();const a=t.clientX,e=t.clientY,r=i(document.body);let n=E.cx,o=E.cy;r.on("mousemove",(t=>{E.busy=true;E.cx=n+t.clientX-a;E.cy=o+t.clientY-e;x.attr("transform","translate("+E.cx+","+E.cy+")")})).on("mouseup",(()=>{setTimeout((()=>E.busy=false),10);r.on("mousemove",null).on("mouseup",null)}))}));if(z){E.listbutt=j.append("g").attr("transform","translate(0,"+t/2+")");const e=E.listbutt.append("rect").attr("x",-X/2).attr("width",X).attr("height",B-t/2).attr("fill","#d9d9d9");const r=E.listbutt.append("text").text("Info").attr("y",(B-t/2)/2).attr("dominant-baseline","central").attr("text-anchor","middle").attr("font-family","Arial").attr("fill","#858585").attr("font-size",Math.min(18,a));E.listbutt.append("rect").classed("sja_info_click",true).attr("x",-X/2).attr("width",X).attr("height",B-t/2).attr("fill-opacity",0).on("mouseover",(()=>{e.attr("fill","#bababa");r.attr("fill","white")})).on("mouseout",(()=>{e.attr("fill","#d9d9d9");r.attr("fill","#858585")})).on("click",(t=>{d(E);const a=t.clientX-I,e=t.clientY-I;setTimeout((()=>z(a,e)),l)}))}}))}))}function d(t){t.busy=true;if(t.eye.fore){t.eye.fore.remove()}if(t.listbutt){t.listbutt.remove()}if(t.eye.shutter){t.eye.shutter.transition().attr("height",0).on("end",(()=>{t.ring.transition().attr("transform","scale(.5,.5)").attr("fill-opacity",0).on("end",(()=>{t.g.remove();t.pica.g.selectAll("*").remove()}))}))}else{t.ring.transition().attr("transform","scale(.5,.5)").attr("fill-opacity",0).on("end",(()=>{t.g.remove();t.pica.g.selectAll("*").remove()}))}t.pica.g.selectAll("*").remove()}function h(t,a){const e=13;const r=10;const n=1;let i=(t.x0+t.x1)/2;if(i>=.375&&i<=.625){const e=a.boxyoff+a.cy+t.outradius;if(e>=a.svgheight-30){if(i<=.5){i=Math.max(.25,t.x0)}else{i=Math.min(.75,t.x1)}}}a.pica.g.selectAll("*").remove();const o=a.cx+(t.outradius+5)*Math.sin(Math.PI*2*i);const s=a.cy-(t.outradius+5)*Math.cos(Math.PI*2*i);a.pica.g.attr("transform","translate("+o+","+s+")");const l=60;let c=null;const f=t.data.cohortsize;if(Number.isFinite(f)){c=a.pica.g.append("g");c.append("rect").attr("width",l+4).attr("height",r+4).attr("fill","white").attr("shape-rendering","crispEdges");c.append("rect").attr("x",2).attr("y",2).attr("width",l).attr("height",r).attr("fill","#ECE5FF").attr("shape-rendering","crispEdges");c.append("rect").attr("x",2).attr("y",2).attr("width",l*t.value/f).attr("height",r).attr("fill","#9F80FF").attr("shape-rendering","crispEdges")}const d=a.pica.g.append("text").attr("stroke","white").attr("stroke-width",3).attr("font-size",e).attr("font-family","Arial");const h=a.pica.g.append("text").attr("fill","black").attr("fill-opacity",1).attr("font-size",e).attr("font-family","Arial");t.data.name+", "+t.value+" sample"+(t.value>1?"s":"");d.text(t.data.name);h.text(t.data.name);const p=a.pica.g.append("text").attr("stroke","white").attr("stroke-width",3).attr("font-size",e).attr("font-family","Arial");const u=a.pica.g.append("text").attr("fill","black").attr("fill-opacity",1).attr("font-size",e).attr("font-family","Arial");const m=t.value+" sample"+(t.value>1?"s":"")+(c?" ("+f+" total)":"");p.text(m);u.text(m);Math.max(h.node().getBBox().width,u.node().getBBox().width);if(i<.25){p.attr("y",c?-3-r-n:0);u.attr("y",c?-3-r-n:0);d.attr("y",(c?-3-r-n:0)-e-n);h.attr("y",(c?-3-r-n:0)-e-n);if(c){c.attr("transform","translate(0,-"+r+")")}}else if(i<.5){d.attr("dominant-baseline","hanging").attr("y",0);h.attr("dominant-baseline","hanging").attr("y",0);p.attr("dominant-baseline","hanging").attr("y",n+e);u.attr("dominant-baseline","hanging").attr("y",n+e);if(c){c.attr("transform","translate(0,"+(e+n)*2+")")}}else if(i<.75){d.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",0);h.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",0);p.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",n+e);u.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",n+e);if(c){c.attr("transform","translate(-"+l+","+(e+n)*2+")")}}else{p.attr("text-anchor","end").attr("y",c?-3-r-n:0);u.attr("text-anchor","end").attr("y",c?-3-r-n:0);d.attr("text-anchor","end").attr("y",(c?-3-r-n:0)-e-n);h.attr("text-anchor","end").attr("y",(c?-3-r-n:0)-e-n);if(c){c.attr("transform","translate(-"+l+",-"+r+")")}}}export{f as default};
1
+ import{a8 as t,af as a,aL as e,r,aW as n,d as i}from"./app-b369b169.js";import{p as o}from"./partition-db811f6b.js";import{d as s}from"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";const l=500;const c=250;function f(f){const{occurrence:p,boxyoff:u,boxheight:m,boxwidth:g,svgheight:y,g:x,pica:b,cx:v,cy:w,nodes:M,chartlabel:A,click_ring:k,click_listbutton:z}=f;x.attr("transform","translate("+v+","+w+")");const _=t(a);const j=x.append("g");const F=x.append("g");const E={g:x,eye:j,ring:F,pica:b,busy:false,boxyoff:u,svgheight:y,cx:v,cy:w};const I=Math.max(m*.2,Math.min(m*.42,Math.log(p)*24));if(v<I){E.cx=I}else if(v+I>g){E.cx=g-I}if(w<I){E.cy=I}else if(w+I>m){E.cy=m-I}x.transition().delay(l+c).attr("transform","translate("+E.cx+","+E.cy+")");const P=e()(M);P.sum((t=>t.value));P.sort(((t,a)=>a.value-t.value));o().size([1,Math.pow(I,2)])(P);j.append("circle").attr("r",I).attr("fill","white").attr("fill-opacity",0);let B;const q=s().startAngle((t=>Math.PI*2*t.x0)).endAngle((t=>Math.PI*2*t.x1)).innerRadius((t=>{if(!t.parent){B=Math.sqrt(t.y1)-I/15;return B}return Math.sqrt(t.y0)})).outerRadius((t=>{t.outradius=Math.sqrt(t.y1);return t.outradius}));F.selectAll().data(P.descendants()).enter().append("path").attr("d",q).attr("stroke","white").attr("fill",(t=>{if(!t.parent){return"white"}let a;if(t.children){a=t.id}else{if(!t.parent.parent){a=t.id}else{a=t.parent.id}}const e=_(a);t._color=e;return e})).on("mouseover",((t,a)=>{if(!a.parent)return;if(E.busy)return;t.target.setAttribute("fill",r(a._color).darker(.5).toString());h(a,E)})).on("mouseout",((t,a)=>{b.g.selectAll("*").remove();if(!a.parent)return;t.target.setAttribute("fill",a._color)})).on("click",(async(t,a)=>{if(!k)return;if(E.busy)return;E.busy=true;await k(t,a);E.busy=false}));const X=B*2;F.attr("transform","scale(.3,.3)").attr("fill-opacity",0).transition().duration(l).attr("transform","scale(1,1)").attr("fill-opacity",1).on("end",(()=>{j.shutter=j.append("rect").attr("x",-B).attr("y",-B).attr("width",B*2).attr("height",0).attr("fill","#ededed").on("click",(()=>d(E)));j.shutter.transition().duration(c).attr("height",B*2).on("end",(()=>{j.fore=j.append("g");const t=Math.min(X/(A.length*n),B*.6);j.fore.append("text").text(A).attr("text-anchor","middle").attr("dominant-baseline","central").attr("fill","#858585").attr("font-weight","bold").attr("font-family","Arial").attr("font-size",t);const a=Math.min(18,Math.min(B*.7/(p.toString().length*n),(B-t/2)*.7));j.fore.append("text").text(p).attr("text-anchor","middle").attr("fill","#858585").attr("y",-t/2-2).attr("font-family","Arial").attr("font-size",a);j.append("rect").attr("x",-B).attr("y",-B).attr("width",B*2).attr("height",B*2).attr("fill","black").attr("fill-opacity",0).on("click",(()=>{if(E.busy)return;d(E)})).on("mousedown",(t=>{t.preventDefault();t.stopPropagation();const a=t.clientX,e=t.clientY,r=i(document.body);let n=E.cx,o=E.cy;r.on("mousemove",(t=>{E.busy=true;E.cx=n+t.clientX-a;E.cy=o+t.clientY-e;x.attr("transform","translate("+E.cx+","+E.cy+")")})).on("mouseup",(()=>{setTimeout((()=>E.busy=false),10);r.on("mousemove",null).on("mouseup",null)}))}));if(z){E.listbutt=j.append("g").attr("transform","translate(0,"+t/2+")");const e=E.listbutt.append("rect").attr("x",-X/2).attr("width",X).attr("height",B-t/2).attr("fill","#d9d9d9");const r=E.listbutt.append("text").text("Info").attr("y",(B-t/2)/2).attr("dominant-baseline","central").attr("text-anchor","middle").attr("font-family","Arial").attr("fill","#858585").attr("font-size",Math.min(18,a));E.listbutt.append("rect").classed("sja_info_click",true).attr("x",-X/2).attr("width",X).attr("height",B-t/2).attr("fill-opacity",0).on("mouseover",(()=>{e.attr("fill","#bababa");r.attr("fill","white")})).on("mouseout",(()=>{e.attr("fill","#d9d9d9");r.attr("fill","#858585")})).on("click",(t=>{d(E);const a=t.clientX-I,e=t.clientY-I;setTimeout((()=>z(a,e)),l)}))}}))}))}function d(t){t.busy=true;if(t.eye.fore){t.eye.fore.remove()}if(t.listbutt){t.listbutt.remove()}if(t.eye.shutter){t.eye.shutter.transition().attr("height",0).on("end",(()=>{t.ring.transition().attr("transform","scale(.5,.5)").attr("fill-opacity",0).on("end",(()=>{t.g.remove();t.pica.g.selectAll("*").remove()}))}))}else{t.ring.transition().attr("transform","scale(.5,.5)").attr("fill-opacity",0).on("end",(()=>{t.g.remove();t.pica.g.selectAll("*").remove()}))}t.pica.g.selectAll("*").remove()}function h(t,a){const e=13;const r=10;const n=1;let i=(t.x0+t.x1)/2;if(i>=.375&&i<=.625){const e=a.boxyoff+a.cy+t.outradius;if(e>=a.svgheight-30){if(i<=.5){i=Math.max(.25,t.x0)}else{i=Math.min(.75,t.x1)}}}a.pica.g.selectAll("*").remove();const o=a.cx+(t.outradius+5)*Math.sin(Math.PI*2*i);const s=a.cy-(t.outradius+5)*Math.cos(Math.PI*2*i);a.pica.g.attr("transform","translate("+o+","+s+")");const l=60;let c=null;const f=t.data.cohortsize;if(Number.isFinite(f)){c=a.pica.g.append("g");c.append("rect").attr("width",l+4).attr("height",r+4).attr("fill","white").attr("shape-rendering","crispEdges");c.append("rect").attr("x",2).attr("y",2).attr("width",l).attr("height",r).attr("fill","#ECE5FF").attr("shape-rendering","crispEdges");c.append("rect").attr("x",2).attr("y",2).attr("width",l*t.value/f).attr("height",r).attr("fill","#9F80FF").attr("shape-rendering","crispEdges")}const d=a.pica.g.append("text").attr("stroke","white").attr("stroke-width",3).attr("font-size",e).attr("font-family","Arial");const h=a.pica.g.append("text").attr("fill","black").attr("fill-opacity",1).attr("font-size",e).attr("font-family","Arial");t.data.name+", "+t.value+" sample"+(t.value>1?"s":"");d.text(t.data.name);h.text(t.data.name);const p=a.pica.g.append("text").attr("stroke","white").attr("stroke-width",3).attr("font-size",e).attr("font-family","Arial");const u=a.pica.g.append("text").attr("fill","black").attr("fill-opacity",1).attr("font-size",e).attr("font-family","Arial");const m=t.value+" sample"+(t.value>1?"s":"")+(c?" ("+f+" total)":"");p.text(m);u.text(m);Math.max(h.node().getBBox().width,u.node().getBBox().width);if(i<.25){p.attr("y",c?-3-r-n:0);u.attr("y",c?-3-r-n:0);d.attr("y",(c?-3-r-n:0)-e-n);h.attr("y",(c?-3-r-n:0)-e-n);if(c){c.attr("transform","translate(0,-"+r+")")}}else if(i<.5){d.attr("dominant-baseline","hanging").attr("y",0);h.attr("dominant-baseline","hanging").attr("y",0);p.attr("dominant-baseline","hanging").attr("y",n+e);u.attr("dominant-baseline","hanging").attr("y",n+e);if(c){c.attr("transform","translate(0,"+(e+n)*2+")")}}else if(i<.75){d.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",0);h.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",0);p.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",n+e);u.attr("dominant-baseline","hanging").attr("text-anchor","end").attr("y",n+e);if(c){c.attr("transform","translate(-"+l+","+(e+n)*2+")")}}else{p.attr("text-anchor","end").attr("y",c?-3-r-n:0);u.attr("text-anchor","end").attr("y",c?-3-r-n:0);d.attr("text-anchor","end").attr("y",(c?-3-r-n:0)-e-n);h.attr("text-anchor","end").attr("y",(c?-3-r-n:0)-e-n);if(c){c.attr("transform","translate(-"+l+",-"+r+")")}}}export{f as default};