@sjcrh/proteinpaint-client 2.63.0 → 2.63.2

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 (207) hide show
  1. package/README.md +9 -7
  2. package/dist/{2dmaf-70c0b6bb.js → 2dmaf-0cabb4a4.js} +1 -1
  3. package/dist/{ColorScale-b44d51ef.js → ColorScale-9800a609.js} +1 -1
  4. package/dist/{DEanalysis-b86d0874.js → DEanalysis-567989ff.js} +1 -1
  5. package/dist/{Disco-16cd51c0.js → Disco-5d1404ce.js} +1 -1
  6. package/dist/{Disco.UI-a38a12e6.js → Disco.UI-54228bb6.js} +1 -1
  7. package/dist/{DragControls-0c173a20.js → DragControls-a05737c2.js} +1 -1
  8. package/dist/{DziViewer-5c2d68e7.js → DziViewer-3f466d90.js} +2 -2
  9. package/dist/{FilterRxComp-0e75dd8d.js → FilterRxComp-fc769f34.js} +1 -1
  10. package/dist/{FilterStateless-ad3df967.js → FilterStateless-8f30f856.js} +1 -1
  11. package/dist/{HicApp-bcf8330c.js → HicApp-aac413df.js} +1 -1
  12. package/dist/{OrbitControls-c33cf781.js → OrbitControls-8b7f91ca.js} +1 -1
  13. package/dist/app-59194db0.js +1 -0
  14. package/dist/{app-f91922b4.js → app-71453429.js} +1 -1
  15. package/dist/{app-bfce9bf5.js → app-fb676934.js} +1 -1
  16. package/dist/app.js +1 -1
  17. package/dist/{bam-95f36008.js → bam-e7f6baea.js} +1 -1
  18. package/dist/{barchart-e2af00a8.js → barchart-ef4874c8.js} +1 -1
  19. package/dist/{barchart.events-272fd122.js → barchart.events-e24facf7.js} +1 -1
  20. package/dist/{bars.renderer-f0e5af5a.js → bars.renderer-c46d3f44.js} +1 -1
  21. package/dist/{block-ec76524e.js → block-4f585abe.js} +1 -1
  22. package/dist/block.lazyload-6f83d057.js +1 -0
  23. package/dist/{block.legend-f8cad7e4.js → block.legend-cec87c6f.js} +1 -1
  24. package/dist/{block.mds-20655637.js → block.mds-f5a11c42.js} +1 -1
  25. package/dist/{block.mds.cnv-5feb86a0.js → block.mds.cnv-25423c1e.js} +1 -1
  26. package/dist/{block.mds.expressionrank-c7043f35.js → block.mds.expressionrank-fc1996d5.js} +1 -1
  27. package/dist/{block.mds.expressionstat-4bf457f3.js → block.mds.expressionstat-45b6bf47.js} +1 -1
  28. package/dist/{block.mds.geneboxplot-132e5fe6.js → block.mds.geneboxplot-037df46d.js} +1 -1
  29. package/dist/{block.mds.junction-1f9810df.js → block.mds.junction-00161de6.js} +1 -1
  30. package/dist/{block.mds.svcnv-094c416f.js → block.mds.svcnv-0c257af4.js} +1 -1
  31. package/dist/{block.mds.svcnv.share-bb976e02.js → block.mds.svcnv.share-c0b9dfad.js} +1 -1
  32. package/dist/{block.mds2-7045e32c.js → block.mds2-9009f8d8.js} +1 -1
  33. package/dist/{block.svg-d8d76ba7.js → block.svg-86bbfcb0.js} +1 -1
  34. package/dist/{block.tk.aicheck-317d04bd.js → block.tk.aicheck-a5697794.js} +1 -1
  35. package/dist/{block.tk.ase-d1577ec1.js → block.tk.ase-ad1be47c.js} +1 -1
  36. package/dist/{block.tk.bam-3cdc13a0.js → block.tk.bam-14339d16.js} +1 -1
  37. package/dist/{block.tk.bedgraphdot-5304e06c.js → block.tk.bedgraphdot-efe19e56.js} +1 -1
  38. package/dist/{block.tk.bigwig.ui-0c96dce5.js → block.tk.bigwig.ui-a92f286b.js} +1 -1
  39. package/dist/{block.tk.hicstraw-39d89269.js → block.tk.hicstraw-57fbbe61.js} +1 -1
  40. package/dist/{block.tk.junction-b45b3a95.js → block.tk.junction-64c39cd5.js} +1 -1
  41. package/dist/{block.tk.junction.textmatrixui-6ec019e1.js → block.tk.junction.textmatrixui-09e5e02f.js} +1 -1
  42. package/dist/{block.tk.ld-5c54e58b.js → block.tk.ld-f681d099.js} +1 -1
  43. package/dist/{block.tk.menu-30a2c3a5.js → block.tk.menu-2563364c.js} +1 -1
  44. package/dist/{block.tk.pgv-7ff2dfaf.js → block.tk.pgv-9dfc00c0.js} +1 -1
  45. package/dist/{boxplot-7de25274.js → boxplot-a2e1ace0.js} +1 -1
  46. package/dist/brainImaging-21701238.js +1 -0
  47. package/dist/{brush-db0ed33a.js → brush-bb4566a3.js} +1 -1
  48. package/dist/{categorical-bc309399.js → categorical-a00f4ffc.js} +1 -1
  49. package/dist/{condition-f0eb2343.js → condition-2034db37.js} +1 -1
  50. package/dist/{controls-8d4972c8.js → controls-0467d2ec.js} +1 -1
  51. package/dist/{controls.btns-bad9e4cf.js → controls.btns-ad7b28a2.js} +1 -1
  52. package/dist/{controls.config-e0f394cb.js → controls.config-6cf816fb.js} +1 -1
  53. package/dist/{controls.divide-d8ac5a9b.js → controls.divide-3c0d52d7.js} +1 -1
  54. package/dist/{controls.overlay-3ac8773d.js → controls.overlay-3a55c2ec.js} +1 -1
  55. package/dist/{controls.term1-008f4be4.js → controls.term1-59f4cd60.js} +1 -1
  56. package/dist/cuminc-8d21132b.js +1 -0
  57. package/dist/{customdata.inputui-58cd9b32.js → customdata.inputui-40ba6d7f.js} +1 -1
  58. package/dist/{dataDownload-91da6dd6.js → dataDownload-bfa92dad.js} +1 -1
  59. package/dist/{databrowser.ui-c50862e4.js → databrowser.ui-4799f04d.js} +1 -1
  60. package/dist/{density-7c3f91eb.js → density-4c2b53f6.js} +1 -1
  61. package/dist/{dictionary-48a38837.js → dictionary-89e860ee.js} +1 -1
  62. package/dist/{drag-c354e2c6.js → drag-88d451b4.js} +1 -1
  63. package/dist/{e2pca-3bba91fa.js → e2pca-8a3f2566.js} +1 -1
  64. package/dist/{ep-144d8973.js → ep-5399c5cc.js} +1 -1
  65. package/dist/{fusion.parse-ae1253f4.js → fusion.parse-fc25e5bd.js} +1 -1
  66. package/dist/{geneExpClustering-96d09008.js → geneExpClustering-a916ebda.js} +1 -1
  67. package/dist/{geneExpression-d6494fd3.js → geneExpression-501e95c0.js} +1 -1
  68. package/dist/{geneExpression-9ca2da4f.js → geneExpression-9047481a.js} +1 -1
  69. package/dist/{geneExpression-be9b5da2.js → geneExpression-da4b50f0.js} +1 -1
  70. package/dist/{geneORA-85850143.js → geneORA-ffb2497e.js} +1 -1
  71. package/dist/{geneVariant-3df05e0c.js → geneVariant-7ab521d6.js} +1 -1
  72. package/dist/{geneVariant-3d674865.js → geneVariant-d79431a2.js} +1 -1
  73. package/dist/{genefusion.ui-3e2a3a73.js → genefusion.ui-3ce190c7.js} +1 -1
  74. package/dist/{geneset-3b761b2c.js → geneset-3522bcda.js} +1 -1
  75. package/dist/{genomeBrowser-2105a98f.js → genomeBrowser-9b72eb22.js} +1 -1
  76. package/dist/{genomeBrowser.controls-f9b9bf42.js → genomeBrowser.controls-bef8bf99.js} +1 -1
  77. package/dist/{groupsetting-4901d033.js → groupsetting-574ad150.js} +1 -1
  78. package/dist/{hierCluster-a7ff7f5a.js → hierCluster-3b14b2b3.js} +1 -1
  79. package/dist/{hierCluster.config-3d124abf.js → hierCluster.config-f8686a30.js} +1 -1
  80. package/dist/{hierCluster.interactivity-3463cc0b.js → hierCluster.interactivity-3b5f1e81.js} +1 -1
  81. package/dist/{hierCluster.renderers-668d0075.js → hierCluster.renderers-9f9a7cad.js} +1 -1
  82. package/dist/{html.legend-3e428f9e.js → html.legend-ef8066dd.js} +1 -1
  83. package/dist/{imagePlot-6d89200c.js → imagePlot-095b9a92.js} +1 -1
  84. package/dist/{lasso-393c1570.js → lasso-ef63631b.js} +1 -1
  85. package/dist/{launch.adhoc-9c59874e.js → launch.adhoc-1b356f97.js} +1 -1
  86. package/dist/{legacyDataset-26ead9cc.js → legacyDataset-056e9d4c.js} +1 -1
  87. package/dist/{log-4d74231e.js → log-ca1e2a74.js} +1 -1
  88. package/dist/{lollipop-59f65024.js → lollipop-6ad9ec3c.js} +1 -1
  89. package/dist/{maf-72e5b7da.js → maf-dfada1c8.js} +1 -1
  90. package/dist/{maftimeline-ed8aaae8.js → maftimeline-1b715a01.js} +1 -1
  91. package/dist/{matrix-3d09a31f.js → matrix-3fae58f8.js} +1 -1
  92. package/dist/matrix.cells-3620eb3a.js +1 -0
  93. package/dist/{matrix.cluster-acdfc6a7.js → matrix.cluster-15b8a865.js} +1 -1
  94. package/dist/{matrix.config-cd01ebbd.js → matrix.config-8247bea5.js} +1 -1
  95. package/dist/{matrix.controls-86eb8d5c.js → matrix.controls-dea65894.js} +1 -1
  96. package/dist/{matrix.data-e2d7ac16.js → matrix.data-121a1a8c.js} +1 -1
  97. package/dist/{matrix.dom-e5f91cc0.js → matrix.dom-83c5fa39.js} +1 -1
  98. package/dist/{matrix.groups-f1969b5c.js → matrix.groups-2e1202ef.js} +1 -1
  99. package/dist/{matrix.interactivity-92bc8332.js → matrix.interactivity-2b076155.js} +1 -1
  100. package/dist/{matrix.layout-29a8f334.js → matrix.layout-8dc54c05.js} +1 -1
  101. package/dist/{matrix.legend-8c28039e.js → matrix.legend-e0078739.js} +1 -1
  102. package/dist/matrix.renderers-0c8eddc9.js +1 -0
  103. package/dist/{matrix.serieses-e079f04a.js → matrix.serieses-2898da6b.js} +1 -1
  104. package/dist/{matrix.sort-e1f83454.js → matrix.sort-249d4a35.js} +1 -1
  105. package/dist/{matrix.sorterUi-2025f39d.js → matrix.sorterUi-d26208c8.js} +1 -1
  106. package/dist/{mavb-37fffd68.js → mavb-9a6fa2e9.js} +1 -1
  107. package/dist/{mds.fimo-68f0eaf5.js → mds.fimo-ce97371c.js} +1 -1
  108. package/dist/{mds.samplescatterplot-362f3591.js → mds.samplescatterplot-a54b9e93.js} +1 -1
  109. package/dist/{mds.survivalplot-f5bda05a.js → mds.survivalplot-c5093f73.js} +1 -1
  110. package/dist/{mdsjsonform-7f0b6cc7.js → mdsjsonform-09b4e1cb.js} +1 -1
  111. package/dist/metaboliteIntensity-eeb5ad12.js +1 -0
  112. package/dist/niceNumLabels-ddb76164.js +1 -0
  113. package/dist/{nodrag-777a34a5.js → nodrag-bed2488c.js} +1 -1
  114. package/dist/{numeric-2eb8c25b.js → numeric-d5536b1c.js} +1 -1
  115. package/dist/numeric.binary-d67da945.js +1 -0
  116. package/dist/numeric.continuous-9a0c88bc.js +1 -0
  117. package/dist/numeric.discrete-921f7097.js +1 -0
  118. package/dist/numeric.spline-649308d5.js +1 -0
  119. package/dist/{numeric.toggle-5316211b.js → numeric.toggle-52789fd2.js} +1 -1
  120. package/dist/{oncomatrix-cd9fa01b.js → oncomatrix-6950c48c.js} +1 -1
  121. package/dist/{parseData-1bfa9946.js → parseData-480d1ff3.js} +1 -1
  122. package/dist/{plot.2dvaf-1ed153c1.js → plot.2dvaf-1ecc4bbc.js} +1 -1
  123. package/dist/plot.app-c841507a.js +1 -0
  124. package/dist/{plot.barplot-61742e94.js → plot.barplot-24140b0f.js} +1 -1
  125. package/dist/{plot.boxplot-fe966ac3.js → plot.boxplot-87fe8ab2.js} +1 -1
  126. package/dist/{plot.brainImaging-d2c23bb7.js → plot.brainImaging-325ebded.js} +1 -1
  127. package/dist/{plot.disco-70d493f4.js → plot.disco-621d1b8e.js} +1 -1
  128. package/dist/{plot.dzi-14e6fdc4.js → plot.dzi-3a7e478e.js} +1 -1
  129. package/dist/{plot.ssgq-9d364d41.js → plot.ssgq-1949c207.js} +1 -1
  130. package/dist/{plot.vaf2cov-4d28015b.js → plot.vaf2cov-d03c6409.js} +1 -1
  131. package/dist/{profileBarchart-c104f8e2.js → profileBarchart-11755d7c.js} +1 -1
  132. package/dist/{profileHome-a555583d.js → profileHome-9c5e266b.js} +1 -1
  133. package/dist/{profilePlot-5ce5b6a0.js → profilePlot-8ee3034a.js} +1 -1
  134. package/dist/{profilePolar-610213d4.js → profilePolar-9fe70c32.js} +1 -1
  135. package/dist/{profileRadar-fddb18f7.js → profileRadar-0e744181.js} +1 -1
  136. package/dist/{profileRadarFacility-2c2db1dd.js → profileRadarFacility-102544c5.js} +1 -1
  137. package/dist/{recover-a08c8d01.js → recover-b1ec4fed.js} +1 -1
  138. package/dist/{regression.inputs-5718cf72.js → regression.inputs-ad548745.js} +1 -1
  139. package/dist/{regression.inputs.values.table-d587c1cf.js → regression.inputs.values.table-1618447a.js} +1 -1
  140. package/dist/{regression.results-748024be.js → regression.results-25008028.js} +1 -1
  141. package/dist/{renderPvalueTable-c435aefd.js → renderPvalueTable-46056189.js} +1 -1
  142. package/dist/sampleScatter-47dd82cb.js +1 -0
  143. package/dist/{sampleScatter.interactivity-e9c30652.js → sampleScatter.interactivity-cfa3451d.js} +1 -1
  144. package/dist/{sampleScatter.rendererThree-3e6c032e.js → sampleScatter.rendererThree-c5321d24.js} +2 -2
  145. package/dist/{sampleView-d6a91293.js → sampleView-30b97c7d.js} +1 -1
  146. package/dist/{samplelst-821ec148.js → samplelst-2bdc1b9d.js} +1 -1
  147. package/dist/{samplematrix-7aa0a780.js → samplematrix-4f0ec523.js} +1 -1
  148. package/dist/{scatter-2e2c76f4.js → scatter-8a337eeb.js} +1 -1
  149. package/dist/{selectGenomeWithTklst-51cd21a4.js → selectGenomeWithTklst-895106fb.js} +1 -1
  150. package/dist/{singleCellPlot-c7347a27.js → singleCellPlot-360eaec6.js} +1 -1
  151. package/dist/{singlecell-a668bb17.js → singlecell-29c1cbb1.js} +1 -1
  152. package/dist/{singlecell-7c851ef8.js → singlecell-75f8af89.js} +1 -1
  153. package/dist/{snplocus-fe6f4ba1.js → snplocus-0cafa73c.js} +1 -1
  154. package/dist/{snplst-751cea95.js → snplst-2284d5ce.js} +1 -1
  155. package/dist/{spliceevent.a53ss.diagram-b157f95d.js → spliceevent.a53ss.diagram-44ccabf9.js} +1 -1
  156. package/dist/{spliceevent.exonskip.diagram-071a3467.js → spliceevent.exonskip.diagram-c8d1bdf0.js} +1 -1
  157. package/dist/spliceevent.exonskip.getdefault-9fe16119.js +1 -0
  158. package/dist/{spliceevent.noeventdiagram-1c731f35.js → spliceevent.noeventdiagram-5e244090.js} +1 -1
  159. package/dist/{spliceevent.phrase-7a3bfb00.js → spliceevent.phrase-186eb050.js} +1 -1
  160. package/dist/{stattable-a7713026.js → stattable-886f7dad.js} +1 -1
  161. package/dist/{style.gdc-40ec2784.js → style.gdc-4ac9b96b.js} +1 -1
  162. package/dist/{summary-592d8f81.js → summary-ee2045a5.js} +1 -1
  163. package/dist/{sunburst-452df940.js → sunburst-bbff8818.js} +1 -1
  164. package/dist/survival-04e279f8.js +1 -0
  165. package/dist/{survival-450b6df4.js → survival-d7bd3c6b.js} +1 -1
  166. package/dist/{svg.download-56529955.js → svg.download-54c99186.js} +1 -1
  167. package/dist/{svg.legend-c82b153f.js → svg.legend-28652faa.js} +1 -1
  168. package/dist/{svgraph-3c5cd8d2.js → svgraph-a12d89da.js} +1 -1
  169. package/dist/{svmr-3dd531ef.js → svmr-248055c8.js} +1 -1
  170. package/dist/{table-d6c411fd.js → table-1dae543a.js} +1 -1
  171. package/dist/{table-bf604c50.js → table-b4a61573.js} +1 -1
  172. package/dist/{termInfo-96285f4a.js → termInfo-4c759483.js} +1 -1
  173. package/dist/{termsetting-9a7511e6.js → termsetting-636d2271.js} +1 -1
  174. package/dist/{tk-6a8e5bb0.js → tk-741d4674.js} +1 -1
  175. package/dist/{tp.ui-221efed6.js → tp.ui-23151bb1.js} +1 -1
  176. package/dist/{tvs.density-9fdae0cc.js → tvs.density-9fe0c7fd.js} +1 -1
  177. package/dist/{tvs.geneVariant-149e25b7.js → tvs.geneVariant-1b179327.js} +1 -1
  178. package/dist/tvs.numeric-b4cfc975.js +1 -0
  179. package/dist/{tvs.samplelst-a38e9c2b.js → tvs.samplelst-681358bc.js} +1 -1
  180. package/dist/{uiUtils-a6de7f14.js → uiUtils-74700a01.js} +1 -1
  181. package/dist/{variantBrowser-05375469.js → variantBrowser-910b4bcd.js} +1 -1
  182. package/dist/{vcf-58904308.js → vcf-16ba1e06.js} +1 -1
  183. package/dist/{violin-c1b78717.js → violin-a41b2e2b.js} +1 -1
  184. package/dist/{violin.interactivity-534d6993.js → violin.interactivity-bcf0ccc2.js} +1 -1
  185. package/dist/{violin.renderer-16540fb8.js → violin.renderer-149310eb.js} +1 -1
  186. package/dist/{violinRenderer-688abcb2.js → violinRenderer-71c9f3ab.js} +1 -1
  187. package/dist/{viridis-d3cf2713.js → viridis-81de7bcd.js} +1 -1
  188. package/dist/{y-2d48b9e4.js → y-76c7da8c.js} +1 -1
  189. package/dist/{zoom-2d4ede33.js → zoom-a40839cf.js} +1 -1
  190. package/package.json +7 -7
  191. package/dist/app-de19f41c.js +0 -1
  192. package/dist/block.lazyload-ebd949e4.js +0 -1
  193. package/dist/brainImaging-007edaa3.js +0 -1
  194. package/dist/cuminc-72257faf.js +0 -1
  195. package/dist/matrix.cells-a5157233.js +0 -1
  196. package/dist/matrix.renderers-3b8dfd04.js +0 -1
  197. package/dist/metaboliteIntensity-512257f3.js +0 -1
  198. package/dist/niceNumLabels-8fdc6507.js +0 -1
  199. package/dist/numeric.binary-0a3b17d2.js +0 -1
  200. package/dist/numeric.continuous-f77038de.js +0 -1
  201. package/dist/numeric.discrete-b977e88f.js +0 -1
  202. package/dist/numeric.spline-d64b1abe.js +0 -1
  203. package/dist/plot.app-91a1d78d.js +0 -1
  204. package/dist/sampleScatter-031f47de.js +0 -1
  205. package/dist/spliceevent.exonskip.getdefault-93feb627.js +0 -1
  206. package/dist/survival-6a4c4f12.js +0 -1
  207. package/dist/tvs.numeric-f9ce58bc.js +0 -1
@@ -1 +1 @@
1
- import{aM as e,aD as t,q as o,ae as a}from"./app-f91922b4.js";class r{constructor(e){this.opts=e;this.dom={menuWrapper:e.dom.tip.d.append("div")};this.minGrpNum=3;this.defaultMaxGrpNum=5;this.data={groups:[],values:[]};s(this)}validateOpts(e){if(!e.newMenu)e.newMenu=true}processInput(t){var o,a;const r=new Set([0,1,2]);const s=structuredClone(t);if((a=(o=this.opts.q)===null||o===void 0?void 0:o.groupsetting)===null||a===void 0?void 0:a.customset){this.formatCustomset(r,s)}else{for(const t of Object.values(s)){if(t.uncomputable)return;if((t===null||t===void 0?void 0:t.group)>this.defaultMaxGrpNum)e(`The maximum number of groups is ${this.defaultMaxGrpNum}. The group index for value = ${t.label} is ${t.group}`);const o={key:t.key,label:t.label,group:t.group||1,samplecount:t.samplecount};this.data.values.push(o);r.add(o.group)}}if(this.data.values.length==0)e(`Missing values`);this.data.values.forEach((e=>{var t;if(!e.samplecount){e.samplecount=this.opts.category2samplecount?(t=this.opts.category2samplecount.find((t=>t.key==e.key)))===null||t===void 0?void 0:t.samplecount:"n/a"}}));for(const e of Array.from(r)){this.data.groups.push({currentIdx:e,type:"values",name:e===0?`Excluded categories`:`Group ${e.toString()}`})}this.data.groups.sort(((e,t)=>e.currentIdx-t.currentIdx))}formatCustomset(e,t){var o;for(const[t,a]of this.opts.q.groupsetting.customset.groups.entries()){if(a.uncomputable)return;this.data.groups.push({currentIdx:Number(t)+1,type:"values",name:a.name});e.delete(t+1);for(const e of a.values){const a=e.label?e.label:this.opts.category2samplecount?(o=this.opts.category2samplecount.find((t=>t.key==e.key)))===null||o===void 0?void 0:o.label:e.key;this.data.values.push({key:e.key,label:a,group:t+1,samplecount:null})}}if(this.data.values.length!==Object.keys(t).length&&!this.opts.q.groupsetting.inuse){Object.entries(t).filter((e=>!this.data.values.some((t=>t.key==e[1].label)))).forEach((e=>{var t;this.data.values.push({key:e[0],label:e[1].label,group:0,samplecount:this.opts.category2samplecount?(t=this.opts.category2samplecount.find((t=>t.key==e[0])))===null||t===void 0?void 0:t.samplecount:"n/a"})}))}else if(this.data.values.length!==this.opts.category2samplecount.length){this.opts.category2samplecount.filter((e=>!this.data.values.some((t=>t.key==e.key)))).forEach((e=>{this.data.values.push({key:e.key,label:e.label,group:0,samplecount:e.samplecount})}))}}main(){var o,a;return t(this,void 0,void 0,(function*(){try{const e=((a=(o=this.opts.q)===null||o===void 0?void 0:o.groupsetting)===null||a===void 0?void 0:a.customset)||this.opts.category2samplecount||this.opts.term.values;this.processInput(e);yield this.initGrpSetUI()}catch(t){if(t.stack)console.log(t.stack);else e(t)}}))}}function s(e){e.initGrpSetUI=function(){return t(this,void 0,void 0,(function*(){e.maxGrpNum=e.data.values.length>=e.defaultMaxGrpNum?e.defaultMaxGrpNum+1:e.data.values.length;if(e.newMenu==true)e.opts.dom.tip.clear().showunder(e.opts.dom.holder.node());yield e.showDraggables()}))};e.showDraggables=function(){return t(this,void 0,void 0,(function*(){e.dom.actionDiv=e.dom.menuWrapper.append("div").attr("class","sjpp-group-actions").style("padding","10px");const a=e.data.groups.filter((e=>e.name.startsWith("New Group")));let r=a.length>0?a[a.length-1].name.replace(`New Group `,""):0;e.dom.actionDiv.addGroup=e.dom.actionDiv.append("button").classed("sjpp_grpset_addGrp_btn",true).style("display","inline-block").style("text-align","center").style("cursor",e.opts.q.mode=="binary"?"default":"pointer").property("disabled",e.opts.q.mode=="binary"?true:e.data.groups.length>=e.maxGrpNum).text("Add Group").on("click",(()=>t(this,void 0,void 0,(function*(){r++;e.data.groups.push({currentIdx:e.data.groups.length,type:"values",name:`New Group${r!=1?` ${r}`:""}`});const t=e.data.groups[e.data.groups.length-1];yield s(t);yield e.update()}))));e.dom.actionDiv.applyBtn=e.dom.actionDiv.append("button").classed("sjpp_grpset_apply_btn",true).style("display","inline-block").style("text-align","center").style("float","right").style("cursor","pointer").text("Apply").on("click",(()=>{const t={groups:[]};for(const o of e.data.groups){if(o.currentIdx===0)continue;const a=e.data.values.filter((e=>e.group==o.currentIdx)).map((e=>({key:e.key,label:e.label})));if(a.length==0)continue;t.groups.push({name:o.name,type:o.type,values:a})}e.opts.q.type="custom-groupset";e.opts.q.groupsetting={inuse:true,customset:t};e.opts.dom.tip.hide();e.opts.runCallback()}));e.dom.menuWrapper.append("div").style("margin","5px 2px").style("font-size",".6em").style("color","#999").text("Drag-and-drop to assign categories to groups.");e.dom.grpsWrapper=e.dom.menuWrapper.append("div").classed("sjpp-groups-wrapper",true);e.dom.includedWrapper=e.dom.grpsWrapper.append("div").classed("sjpp-groups-include",true).classed("sjpp-group-edit-div",true).style("display","flex");e.dom.excludedWrapper=e.dom.grpsWrapper.append("div").classed("sjpp-groups-exclude",true).classed("sjpp-group-edit-div",true).classed("sjpp-drag-drop-div",true);yield s(e.data.groups.find((e=>e.currentIdx===0)));yield e.dom.includedWrapper.selectAll("div").data(e.data.groups.filter((e=>e.currentIdx!=0))).enter().append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top").each((function(e){return t(this,void 0,void 0,(function*(){e.wrapper=o(this);yield s(e)}))}))}))};let r;function s(o){return t(this,void 0,void 0,(function*(){const s=o.currentIdx===0?e.dom.excludedWrapper:e.dom.includedWrapper;o.type="values";if(!o.wrapper)o.wrapper=s.append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top");o.wrapper.on("drop",(function(t){const a=r.node().__data__;if(a.group===o.currentIdx)return;o.draggables.node().appendChild(r.node());r.style("transition-property","background-color").style("transition-duration","1s").style("background-color","#fff2cc");e.data.values.find((e=>e===a)).group=o.currentIdx;t.preventDefault();t.stopPropagation()})).on("dragleave",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color","#fff")})).on("dragend",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color","#fff")})).on("dragover",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color",o.currentIdx!==r.node().__data__.group?"#cfe2f3":"#fff")})).on("dragenter",(function(e){if(r.node().__data__.group===o.currentIdx)return;e.preventDefault();e.stopPropagation();o.wrapper.style("background-color",o.currentIdx!==r.node().__data__.group?"#cfe2f3":"#fff")}));if(o.currentIdx===0){o.title=o.wrapper.append("div").style("display","inline-block").style("padding","3px 10px").style("text-align","left").style("font-size",".6em").style("text-transform","uppercase").style("color","#999").text(o.name)}else{o.dragActionDiv=o.wrapper.append("div").style("display","flex").style("align-items","center");o.input=o.dragActionDiv.append("input").attr("size",12).attr("value",o.name).style("margin","5px").style("margin-left","8px").style("display","inline-block").style("font-size",".8em").style("width","87%").on("keyup",(()=>{a.debounce(e.onKeyUp(o),1e3)}));o.inputMessage=o.dragActionDiv.append("span").style("color","red").style("font-size","0.7em").text("NOT unique").style("display","none");o.destroyBtn=o.dragActionDiv.append("button").style("display","inline-block").style("padding","0px 4px").property("disabled",e.data.groups.length<=e.minGrpNum).text("x").on("click",(()=>t(this,void 0,void 0,(function*(){if(e.data.groups.length<=e.minGrpNum)return;e.data.groups=e.data.groups.filter((e=>e.currentIdx!=o.currentIdx));yield e.removeGroup(o)}))))}o.draggables=o.wrapper.append("div").classed("sjpp-drag-list-div",true);yield e.addItems(o)}))}e.onKeyUp=function(o){return t(this,void 0,void 0,(function*(){if(o.name==o.input.node().value)return;const t=e.data.groups.filter((e=>e.name==o.input.node().value));if(t.length>0){e.dom.actionDiv.applyBtn.property("disabled",true);o.inputMessage.style("display","block")}else{e.dom.actionDiv.applyBtn.property("disabled",false);o.inputMessage.style("display","none");e.data.groups[o.currentIdx].name=o.input.node().value.trim()}}))};e.addItems=function(a){return t(this,void 0,void 0,(function*(){yield a.draggables.selectAll("div").data(e.data.values.filter((e=>e.group==a.currentIdx))).enter().append("div").attr("draggable","true").attr("class","sjpp-drag-item").style("margin","3px").style("cursor","default").style("padding","3px 10px").style("border-radius","5px").style("color",(e=>e.samplecount==0?"#777":"black")).text((e=>`${e.label}${e.samplecount!==undefined?` (n=${e.samplecount})`:""}`)).style("background-color","#eee").each((function(){const e=o(this).on("dragstart",(function(){e.style("background-color","#fff2cc");r=e})).on("mouseenter",(function(){e.style("background-color","#fff2cc")})).on("mouseleave",(function(){e.style("background-color","#eee")}))}))}))};e.removeGroup=function(o){return t(this,void 0,void 0,(function*(){const t=o.wrapper.selectAll(".sjpp-drag-item").nodes();if(t.length===0)o.wrapper.remove();else{o.input.remove();o.destroyBtn.remove();o.wrapper.remove();for(const t of e.data.values){if(t.group==o.currentIdx)t.group=0}}yield e.update()}))};e.update=function(){return t(this,void 0,void 0,(function*(){e.dom.actionDiv.addGroup.property("disabled",e.data.groups.length>=e.maxGrpNum);for(const[t,o]of e.data.groups.entries()){if(t===0)continue;if(o.currentIdx!=t){e.data.values.filter((e=>e.group==o.currentIdx)).forEach((e=>e.group=t));o.currentIdx=t}}e.dom.grpsWrapper.selectAll(".sjpp-drag-drop-div").data(e.data.groups).each((o=>t(this,void 0,void 0,(function*(){if(o.currentIdx!==0){o.input.node().value=o.name;o.destroyBtn.property("disabled",e.data.groups.length<=e.minGrpNum)}yield e.addItems(o)}))))}))}}export{r as GroupSettingMethods};
1
+ import{aM as e,aD as t,q as o,ae as a}from"./app-71453429.js";class r{constructor(e){this.opts=e;this.dom={menuWrapper:e.dom.tip.d.append("div")};this.minGrpNum=3;this.defaultMaxGrpNum=5;this.data={groups:[],values:[]};s(this)}validateOpts(e){if(!e.newMenu)e.newMenu=true}processInput(t){var o,a;const r=new Set([0,1,2]);const s=structuredClone(t);if((a=(o=this.opts.q)===null||o===void 0?void 0:o.groupsetting)===null||a===void 0?void 0:a.customset){this.formatCustomset(r,s)}else{for(const t of Object.values(s)){if(t.uncomputable)return;if((t===null||t===void 0?void 0:t.group)>this.defaultMaxGrpNum)e(`The maximum number of groups is ${this.defaultMaxGrpNum}. The group index for value = ${t.label} is ${t.group}`);const o={key:t.key,label:t.label,group:t.group||1,samplecount:t.samplecount};this.data.values.push(o);r.add(o.group)}}if(this.data.values.length==0)e(`Missing values`);this.data.values.forEach((e=>{var t;if(!e.samplecount){e.samplecount=this.opts.category2samplecount?(t=this.opts.category2samplecount.find((t=>t.key==e.key)))===null||t===void 0?void 0:t.samplecount:"n/a"}}));for(const e of Array.from(r)){this.data.groups.push({currentIdx:e,type:"values",name:e===0?`Excluded categories`:`Group ${e.toString()}`})}this.data.groups.sort(((e,t)=>e.currentIdx-t.currentIdx))}formatCustomset(e,t){var o;for(const[t,a]of this.opts.q.groupsetting.customset.groups.entries()){if(a.uncomputable)return;this.data.groups.push({currentIdx:Number(t)+1,type:"values",name:a.name});e.delete(t+1);for(const e of a.values){const a=e.label?e.label:this.opts.category2samplecount?(o=this.opts.category2samplecount.find((t=>t.key==e.key)))===null||o===void 0?void 0:o.label:e.key;this.data.values.push({key:e.key,label:a,group:t+1,samplecount:null})}}if(this.data.values.length!==Object.keys(t).length&&!this.opts.q.groupsetting.inuse){Object.entries(t).filter((e=>!this.data.values.some((t=>t.key==e[1].label)))).forEach((e=>{var t;this.data.values.push({key:e[0],label:e[1].label,group:0,samplecount:this.opts.category2samplecount?(t=this.opts.category2samplecount.find((t=>t.key==e[0])))===null||t===void 0?void 0:t.samplecount:"n/a"})}))}else if(this.data.values.length!==this.opts.category2samplecount.length){this.opts.category2samplecount.filter((e=>!this.data.values.some((t=>t.key==e.key)))).forEach((e=>{this.data.values.push({key:e.key,label:e.label,group:0,samplecount:e.samplecount})}))}}main(){var o,a;return t(this,void 0,void 0,(function*(){try{const e=((a=(o=this.opts.q)===null||o===void 0?void 0:o.groupsetting)===null||a===void 0?void 0:a.customset)||this.opts.category2samplecount||this.opts.term.values;this.processInput(e);yield this.initGrpSetUI()}catch(t){if(t.stack)console.log(t.stack);else e(t)}}))}}function s(e){e.initGrpSetUI=function(){return t(this,void 0,void 0,(function*(){e.maxGrpNum=e.data.values.length>=e.defaultMaxGrpNum?e.defaultMaxGrpNum+1:e.data.values.length;if(e.newMenu==true)e.opts.dom.tip.clear().showunder(e.opts.dom.holder.node());yield e.showDraggables()}))};e.showDraggables=function(){return t(this,void 0,void 0,(function*(){e.dom.actionDiv=e.dom.menuWrapper.append("div").attr("class","sjpp-group-actions").style("padding","10px");const a=e.data.groups.filter((e=>e.name.startsWith("New Group")));let r=a.length>0?a[a.length-1].name.replace(`New Group `,""):0;e.dom.actionDiv.addGroup=e.dom.actionDiv.append("button").classed("sjpp_grpset_addGrp_btn",true).style("display","inline-block").style("text-align","center").style("cursor",e.opts.q.mode=="binary"?"default":"pointer").property("disabled",e.opts.q.mode=="binary"?true:e.data.groups.length>=e.maxGrpNum).text("Add Group").on("click",(()=>t(this,void 0,void 0,(function*(){r++;e.data.groups.push({currentIdx:e.data.groups.length,type:"values",name:`New Group${r!=1?` ${r}`:""}`});const t=e.data.groups[e.data.groups.length-1];yield s(t);yield e.update()}))));e.dom.actionDiv.applyBtn=e.dom.actionDiv.append("button").classed("sjpp_grpset_apply_btn",true).style("display","inline-block").style("text-align","center").style("float","right").style("cursor","pointer").text("Apply").on("click",(()=>{const t={groups:[]};for(const o of e.data.groups){if(o.currentIdx===0)continue;const a=e.data.values.filter((e=>e.group==o.currentIdx)).map((e=>({key:e.key,label:e.label})));if(a.length==0)continue;t.groups.push({name:o.name,type:o.type,values:a})}e.opts.q.type="custom-groupset";e.opts.q.groupsetting={inuse:true,customset:t};e.opts.dom.tip.hide();e.opts.runCallback()}));e.dom.menuWrapper.append("div").style("margin","5px 2px").style("font-size",".6em").style("color","#999").text("Drag-and-drop to assign categories to groups.");e.dom.grpsWrapper=e.dom.menuWrapper.append("div").classed("sjpp-groups-wrapper",true);e.dom.includedWrapper=e.dom.grpsWrapper.append("div").classed("sjpp-groups-include",true).classed("sjpp-group-edit-div",true).style("display","flex");e.dom.excludedWrapper=e.dom.grpsWrapper.append("div").classed("sjpp-groups-exclude",true).classed("sjpp-group-edit-div",true).classed("sjpp-drag-drop-div",true);yield s(e.data.groups.find((e=>e.currentIdx===0)));yield e.dom.includedWrapper.selectAll("div").data(e.data.groups.filter((e=>e.currentIdx!=0))).enter().append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top").each((function(e){return t(this,void 0,void 0,(function*(){e.wrapper=o(this);yield s(e)}))}))}))};let r;function s(o){return t(this,void 0,void 0,(function*(){const s=o.currentIdx===0?e.dom.excludedWrapper:e.dom.includedWrapper;o.type="values";if(!o.wrapper)o.wrapper=s.append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top");o.wrapper.on("drop",(function(t){const a=r.node().__data__;if(a.group===o.currentIdx)return;o.draggables.node().appendChild(r.node());r.style("transition-property","background-color").style("transition-duration","1s").style("background-color","#fff2cc");e.data.values.find((e=>e===a)).group=o.currentIdx;t.preventDefault();t.stopPropagation()})).on("dragleave",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color","#fff")})).on("dragend",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color","#fff")})).on("dragover",(function(e){e.preventDefault();e.stopPropagation();o.wrapper.style("background-color",o.currentIdx!==r.node().__data__.group?"#cfe2f3":"#fff")})).on("dragenter",(function(e){if(r.node().__data__.group===o.currentIdx)return;e.preventDefault();e.stopPropagation();o.wrapper.style("background-color",o.currentIdx!==r.node().__data__.group?"#cfe2f3":"#fff")}));if(o.currentIdx===0){o.title=o.wrapper.append("div").style("display","inline-block").style("padding","3px 10px").style("text-align","left").style("font-size",".6em").style("text-transform","uppercase").style("color","#999").text(o.name)}else{o.dragActionDiv=o.wrapper.append("div").style("display","flex").style("align-items","center");o.input=o.dragActionDiv.append("input").attr("size",12).attr("value",o.name).style("margin","5px").style("margin-left","8px").style("display","inline-block").style("font-size",".8em").style("width","87%").on("keyup",(()=>{a.debounce(e.onKeyUp(o),1e3)}));o.inputMessage=o.dragActionDiv.append("span").style("color","red").style("font-size","0.7em").text("NOT unique").style("display","none");o.destroyBtn=o.dragActionDiv.append("button").style("display","inline-block").style("padding","0px 4px").property("disabled",e.data.groups.length<=e.minGrpNum).text("x").on("click",(()=>t(this,void 0,void 0,(function*(){if(e.data.groups.length<=e.minGrpNum)return;e.data.groups=e.data.groups.filter((e=>e.currentIdx!=o.currentIdx));yield e.removeGroup(o)}))))}o.draggables=o.wrapper.append("div").classed("sjpp-drag-list-div",true);yield e.addItems(o)}))}e.onKeyUp=function(o){return t(this,void 0,void 0,(function*(){if(o.name==o.input.node().value)return;const t=e.data.groups.filter((e=>e.name==o.input.node().value));if(t.length>0){e.dom.actionDiv.applyBtn.property("disabled",true);o.inputMessage.style("display","block")}else{e.dom.actionDiv.applyBtn.property("disabled",false);o.inputMessage.style("display","none");e.data.groups[o.currentIdx].name=o.input.node().value.trim()}}))};e.addItems=function(a){return t(this,void 0,void 0,(function*(){yield a.draggables.selectAll("div").data(e.data.values.filter((e=>e.group==a.currentIdx))).enter().append("div").attr("draggable","true").attr("class","sjpp-drag-item").style("margin","3px").style("cursor","default").style("padding","3px 10px").style("border-radius","5px").style("color",(e=>e.samplecount==0?"#777":"black")).text((e=>`${e.label}${e.samplecount!==undefined?` (n=${e.samplecount})`:""}`)).style("background-color","#eee").each((function(){const e=o(this).on("dragstart",(function(){e.style("background-color","#fff2cc");r=e})).on("mouseenter",(function(){e.style("background-color","#fff2cc")})).on("mouseleave",(function(){e.style("background-color","#eee")}))}))}))};e.removeGroup=function(o){return t(this,void 0,void 0,(function*(){const t=o.wrapper.selectAll(".sjpp-drag-item").nodes();if(t.length===0)o.wrapper.remove();else{o.input.remove();o.destroyBtn.remove();o.wrapper.remove();for(const t of e.data.values){if(t.group==o.currentIdx)t.group=0}}yield e.update()}))};e.update=function(){return t(this,void 0,void 0,(function*(){e.dom.actionDiv.addGroup.property("disabled",e.data.groups.length>=e.maxGrpNum);for(const[t,o]of e.data.groups.entries()){if(t===0)continue;if(o.currentIdx!=t){e.data.values.filter((e=>e.group==o.currentIdx)).forEach((e=>e.group=t));o.currentIdx=t}}e.dom.grpsWrapper.selectAll(".sjpp-drag-drop-div").data(e.data.groups).each((o=>t(this,void 0,void 0,(function*(){if(o.currentIdx!==0){o.input.node().value=o.name;o.destroyBtn.property("disabled",e.data.groups.length<=e.minGrpNum)}yield e.addItems(o)}))))}))}}export{r as GroupSettingMethods};
@@ -1 +1 @@
1
- import{Matrix as e}from"./matrix-3d09a31f.js";import{aI as t,S as r,l as s,az as i}from"./app-f91922b4.js";import{r as a}from"./hierCluster.renderers-668d0075.js";import{c as o,d as n,i as l}from"./hierCluster.interactivity-3463cc0b.js";import{p as c,g as m,c as d}from"./FilterRxComp-0e75dd8d.js";export{getPlotConfig}from"./hierCluster.config-3d124abf.js";import"./matrix.dom-e5f91cc0.js";import"./matrix.interactivity-92bc8332.js";import"./termsetting-9a7511e6.js";import"path";import"./table-d6c411fd.js";import"./pointer-c7475677.js";import"./matrix.renderers-3b8dfd04.js";import"./matrix.cluster-acdfc6a7.js";import"./matrix.controls-86eb8d5c.js";import"./controls.config-e0f394cb.js";import"./controls.overlay-3ac8773d.js";import"./controls.term1-008f4be4.js";import"./controls.divide-d8ac5a9b.js";import"./matrix.sorterUi-2025f39d.js";import"./radiobutton-09bff425.js";import"./checkbox-0e5c659f.js";import"./recover-a08c8d01.js";import"./FilterStateless-ad3df967.js";import"./app-bfce9bf5.js";import"./termInfo-96285f4a.js";import"./svg.legend-c82b153f.js";import"./matrix.data-e2d7ac16.js";import"./matrix.layout-29a8f334.js";import"./axis-6cb4f314.js";import"./matrix.serieses-e079f04a.js";import"./matrix.cells-a5157233.js";import"./matrix.legend-8c28039e.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./matrix.groups-f1969b5c.js";import"./filter-b3d3964e.js";import"./matrix.sort-e1f83454.js";import"./matrix.config-cd01ebbd.js";function p(e,t){let r;let s;if(t===undefined){for(const t of e){if(t!=null){if(r===undefined){if(t>=t)r=s=t}else{if(r>t)r=t;if(s<t)s=t}}}}else{let i=-1;for(let a of e){if((a=t(a,++i,e))!=null){if(r===undefined){if(a>=a)r=s=a}else{if(r>a)r=a;if(s<a)s=a}}}}return[r,s]}class h extends e{constructor(e){super(e);this.type="hierCluster";this.chartType="hierCluster"}async init(e){await super.init(e);this.maySetSandboxHeader();this.hcClipId=this.seriesClipId+"-hc";this.dom.hcClipRect=this.dom.svg.select("defs").append("clipPath").attr("id",this.hcClipId).attr("clipPathUnits","userSpaceOnUse").append("rect").attr("display","block");this.dom.topDendrogram=this.dom.svg.insert("g","g").attr("clip-path",`url(#${this.hcClipId})`).append("g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_top_dendrogram").on("click",(e=>{const t=this.getClusterFromTopDendrogram(e);if(t){this.clickedClusterIds=this.getAllChildrenClusterIds(t);this.clickedClusterIds.push(t);const r=this.hierClusterData.clustering.col.mergedClusters.get(t);const s=r.children.map((e=>e.name));this.addSelectedSamplesOptions(s,e)}else{delete this.clickedClusterIds}this.plotDendrogramHclust(true)}));this.dom.leftDendrogram=this.dom.svg.insert("g","g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_left_dendrogram")}async setHierClusterData(e={}){this.prevServerData=this.currServerData;const r=new AbortController;const[s,i]=await this.api.detectStale((()=>this.requestData({signal:r.signal})),{abortCtrl:r});if(i)throw`stale sequenceId`;if(s.error)throw s.error;this.currServerData=structuredClone(s);if(!t(this.prevServerData,this.currServerData)){delete this.clickedClusterIds}const a=this.settings.hierCluster;const o=this.hcTermGroup.lst;if(!s.clustering){if(s.gene){throw`Cannot do clustering: data is only available for 1 gene (${s.gene}). Try again by adding more genes.`}}this.hierClusterData=s;const n=this.hierClusterData.clustering;this.setHierColorScale(n);this.settings.hierCluster.zScoreCap;const l={};for(const[e,t]of n.col.order.entries()){l[t.name]={sample:t.name};for(const[r,s]of n.row.order.entries()){const i=o.find((e=>e.term.name===s.name));const m=n.matrix[r][e];l[t.name][i.$id]={key:i.term.name,values:[{sample:t.name,dt:c[this.state.config.dataType],label:a.termGroupName,value:m}]}}}this.hcTermNameOrder=n.row.order.map((e=>e.name));this.hcTermSorter=(e,t)=>{const r=this.hcTermNameOrder.indexOf(e.tw.term.name);const s=this.hcTermNameOrder.indexOf(t.tw.term.name);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};this.hcSampleNameOrder=n.col.order.map((e=>e.name));this.hcSampleSorter=(e,t)=>{const r=this.hcSampleNameOrder.indexOf(e.sample);const s=this.hcSampleNameOrder.indexOf(t.sample);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};const m={};for(const e of o){if(s.byTermId[e.term.name])m[e.$id]=s.byTermId[e.term.name]}this.hierClusterSamples={refs:{byTermId:m,bySampleId:s.bySampleId},lst:n.col.order.map((e=>l[e.name])),samples:l}}async requestData({signal:e}){const t=this.currRequestOpts?.hierCluster||this.getHCRequestBody(this.state);const s=await r("termdb/cluster",{body:t,signal:e});return s}getHCRequestBody(e){this.hcTermGroup=this.config.termgroups.find((e=>e.type=="hierCluster"))||this.termOrder?.find((e=>e.grp.type=="hierCluster"))?.grp;const t=e.config.settings.hierCluster;const r={type:"tvslst",in:true,join:"and",lst:e.config.legendValueFilter.lst.filter((e=>!e.tvs.legendFilterType))};const s=this.getClusterRowTermsAsParameter();if(!s.length)throw"no data";if(!o.find((e=>e.value==t.clusterMethod)))throw"Invalid cluster method";if(!n.find((e=>e.value==t.distanceMethod)))throw"Invalid distance method";const i={genome:e.vocab.genome,dslabel:e.vocab.dslabel,dataType:e.config.dataType,clusterMethod:t.clusterMethod,distanceMethod:t.distanceMethod,terms:s,filter:m(d([e.filter,r])),filter0:e.filter0};return i}combineData(){if(!this.hierClusterSamples)return;const e=this.data;const t={};const r=[];for(const s in this.hierClusterSamples.samples){const i=this.hierClusterSamples.samples[s];t[s]=i;r.push(i);if(s in e.samples)Object.assign(i,e.samples[s]);const a=this.hierClusterSamples.refs.bySampleId[s]||{};if(!i._ref_)i._ref_=a;else Object.assign(i._ref_,a)}const s=this.hierClusterSamples.refs.byTermId;for(const t of Object.keys(s)){e.refs.byTermId[t]=Object.assign({},e.refs.byTermId[t]||{},s[t])}this.data={samples:t,lst:r,refs:e.refs}}setHierColorScale(e){const t=this.settings.hierCluster;const r=s(t.colorScale.domain,t.colorScale.range).clamp(true);const i=[];for(const t of e.matrix){i.push(...p(t))}const a=Math.min(t.zScoreCap,Math.max(...p(i).map(Math.abs)));const[o,n]=[-a,a];this.hierClusterValues={scale:r,min:o,max:n}}getValueColor(e){const t=this.settings.hierCluster.zScoreCap;return this.hierClusterValues.scale((e- -t)/(t*2))}getClusterRowTermsAsParameter(){const e=[...this.hcTermGroup.lst.map((e=>e.term))];e.sort(((e,t)=>e.name<t.name?-1:1));return e}}for(const e of[a,l]){for(const t in e)h.prototype[t]=e[t]}const f=i(h);const u=f;export{h as HierCluster,u as componentInit,f as hierClusterInit};
1
+ import{Matrix as e}from"./matrix-3fae58f8.js";import{aI as t,S as r,l as s,az as i}from"./app-71453429.js";import{r as a}from"./hierCluster.renderers-9f9a7cad.js";import{c as o,d as n,i as l}from"./hierCluster.interactivity-3b5f1e81.js";import{p as m,g as c,c as d}from"./FilterRxComp-fc769f34.js";export{getPlotConfig}from"./hierCluster.config-f8686a30.js";import"./matrix.dom-83c5fa39.js";import"./matrix.interactivity-2b076155.js";import"./termsetting-636d2271.js";import"path";import"./table-1dae543a.js";import"./pointer-c7475677.js";import"./matrix.renderers-0c8eddc9.js";import"./matrix.cluster-15b8a865.js";import"./matrix.controls-dea65894.js";import"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";import"./matrix.sorterUi-d26208c8.js";import"./radiobutton-09bff425.js";import"./checkbox-0e5c659f.js";import"./recover-b1ec4fed.js";import"./FilterStateless-8f30f856.js";import"./app-fb676934.js";import"./termInfo-4c759483.js";import"./svg.legend-28652faa.js";import"./matrix.data-121a1a8c.js";import"./matrix.layout-8dc54c05.js";import"./axis-6cb4f314.js";import"./matrix.serieses-2898da6b.js";import"./matrix.cells-3620eb3a.js";import"./matrix.legend-e0078739.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./matrix.groups-2e1202ef.js";import"./filter-b3d3964e.js";import"./matrix.sort-249d4a35.js";import"./matrix.config-8247bea5.js";function p(e,t){let r;let s;if(t===undefined){for(const t of e){if(t!=null){if(r===undefined){if(t>=t)r=s=t}else{if(r>t)r=t;if(s<t)s=t}}}}else{let i=-1;for(let a of e){if((a=t(a,++i,e))!=null){if(r===undefined){if(a>=a)r=s=a}else{if(r>a)r=a;if(s<a)s=a}}}}return[r,s]}class h extends e{constructor(e){super(e);this.type="hierCluster";this.chartType="hierCluster"}async init(e){await super.init(e);this.maySetSandboxHeader();this.hcClipId=this.seriesClipId+"-hc";this.dom.hcClipRect=this.dom.svg.select("defs").append("clipPath").attr("id",this.hcClipId).attr("clipPathUnits","userSpaceOnUse").append("rect").attr("display","block");this.dom.topDendrogram=this.dom.svg.insert("g","g").attr("clip-path",`url(#${this.hcClipId})`).append("g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_top_dendrogram").on("click",(e=>{const t=this.getClusterFromTopDendrogram(e);if(t){this.clickedClusterIds=this.getAllChildrenClusterIds(t);this.clickedClusterIds.push(t);const r=this.hierClusterData.clustering.col.mergedClusters.get(t);const s=r.children.map((e=>e.name));this.addSelectedSamplesOptions(s,e)}else{delete this.clickedClusterIds}this.plotDendrogramHclust(true)}));this.dom.leftDendrogram=this.dom.svg.insert("g","g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_left_dendrogram")}async setHierClusterData(e={}){this.prevServerData=this.currServerData;const r=new AbortController;const[s,i]=await this.api.detectStale((()=>this.requestData({signal:r.signal})),{abortCtrl:r});if(i)throw`stale sequenceId`;if(s.error)throw s.error;this.currServerData=structuredClone(s);if(!t(this.prevServerData,this.currServerData)){delete this.clickedClusterIds}const a=this.settings.hierCluster;const o=this.hcTermGroup.lst;if(!s.clustering){if(s.gene){throw`Cannot do clustering: data is only available for 1 gene (${s.gene}). Try again by adding more genes.`}}this.hierClusterData=s;const n=this.hierClusterData.clustering;this.setHierColorScale(n);this.settings.hierCluster.zScoreCap;const l={};for(const[e,t]of n.col.order.entries()){l[t.name]={sample:t.name};for(const[r,s]of n.row.order.entries()){const i=o.find((e=>e.term.name===s.name));const c=n.matrix[r][e];l[t.name][i.$id]={key:i.term.name,values:[{sample:t.name,dt:m[this.state.config.dataType],label:a.termGroupName,value:c}]}}}this.hcTermNameOrder=n.row.order.map((e=>e.name));this.hcTermSorter=(e,t)=>{const r=this.hcTermNameOrder.indexOf(e.tw.term.name);const s=this.hcTermNameOrder.indexOf(t.tw.term.name);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};this.hcSampleNameOrder=n.col.order.map((e=>e.name));this.hcSampleSorter=(e,t)=>{const r=this.hcSampleNameOrder.indexOf(e.sample);const s=this.hcSampleNameOrder.indexOf(t.sample);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};const c={};for(const e of o){if(s.byTermId[e.term.name])c[e.$id]=s.byTermId[e.term.name]}this.hierClusterSamples={refs:{byTermId:c,bySampleId:s.bySampleId},lst:n.col.order.map((e=>l[e.name])),samples:l}}async requestData({signal:e}){const t=this.currRequestOpts?.hierCluster||this.getHCRequestBody(this.state);const s=await r("termdb/cluster",{body:t,signal:e});return s}getHCRequestBody(e){this.hcTermGroup=this.config.termgroups.find((e=>e.type=="hierCluster"))||this.termOrder?.find((e=>e.grp.type=="hierCluster"))?.grp;const t=e.config.settings.hierCluster;const r={type:"tvslst",in:true,join:"and",lst:e.config.legendValueFilter.lst.filter((e=>!e.tvs.legendFilterType))};const s=this.getClusterRowTermsAsParameter();if(!s.length)throw"no data";if(!o.find((e=>e.value==t.clusterMethod)))throw"Invalid cluster method";if(!n.find((e=>e.value==t.distanceMethod)))throw"Invalid distance method";const i={genome:e.vocab.genome,dslabel:e.vocab.dslabel,dataType:e.config.dataType,clusterMethod:t.clusterMethod,distanceMethod:t.distanceMethod,terms:s,filter:c(d([e.filter,r])),filter0:e.filter0};return i}combineData(){if(!this.hierClusterSamples)return;const e=this.data;const t={};const r=[];for(const s in this.hierClusterSamples.samples){const i=this.hierClusterSamples.samples[s];t[s]=i;r.push(i);if(s in e.samples)Object.assign(i,e.samples[s]);const a=this.hierClusterSamples.refs.bySampleId[s]||{};if(!i._ref_)i._ref_=a;else Object.assign(i._ref_,a)}const s=this.hierClusterSamples.refs.byTermId;for(const t of Object.keys(s)){e.refs.byTermId[t]=Object.assign({},e.refs.byTermId[t]||{},s[t])}this.data={samples:t,lst:r,refs:e.refs}}setHierColorScale(e){const t=this.settings.hierCluster;const r=s(t.colorScale.domain,t.colorScale.range).clamp(true);const i=[];for(const t of e.matrix){i.push(...p(t))}const a=Math.min(t.zScoreCap,Math.max(...p(i).map(Math.abs)));const[o,n]=[-a,a];this.hierClusterValues={scale:r,min:o,max:n}}getValueColor(e){const t=this.settings.hierCluster.zScoreCap;return this.hierClusterValues.scale((e- -t)/(t*2))}getClusterRowTermsAsParameter(){const e=[...this.hcTermGroup.lst.map((e=>e.term))];e.sort(((e,t)=>e.name<t.name?-1:1));return e}}for(const e of[a,l]){for(const t in e)h.prototype[t]=e[t]}const f=i(h);const u=f;export{h as HierCluster,u as componentInit,f as hierClusterInit};
@@ -1 +1 @@
1
- import{aS as e}from"./app-f91922b4.js";import{getPlotConfig as t}from"./matrix.config-cd01ebbd.js";import{f as r}from"./termsetting-9a7511e6.js";import"./matrix.sort-e1f83454.js";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"path";async function a(a={},o){a.chartType="hierCluster";const n=await t(a,o);delete n.genes;n.settings.hierCluster={dataType:n.dataType,clusterSamples:true,clusterMethod:"average",distanceMethod:"euclidean",zScoreCap:5,xDendrogramHeight:100,yDendrogramHeight:200,colorScale:{domain:[0,.5,1],range:["blue","white","red"]}};const i=o.vocabApi.termdbConfig.hierCluster||{};e(n.settings.hierCluster,i.settings,a.settings?.hierCluster||{});{const e=n.settings.hierCluster.colorScale;if(!e)throw"colorScale missing";if(!Array.isArray(e.domain)||e.domain.length==0)throw"colorScale.domain must be non-empty array";if(!Array.isArray(e.range)||e.range.length==0)throw"colorScale.range must be non-empty array";if(e.domain.length!=e.range.length)throw"colorScale domain[] and range[] of different length"}n.settings.matrix.collabelpos="top";const s=n.settings.hierCluster.termGroupName;const m=n.termgroups.find((e=>e.type=="hierCluster"||e.name==s))||{name:s};m.type="hierCluster";if(!m.lst?.length){if(!Array.isArray(a.terms))throw"opts.terms[] not array (may show geneset edit ui)";const e=[];for(const t of a.terms){let a;if(typeof t.term=="object"&&t.term.type=="geneVariant"){a=t}else{t.type="geneVariant";if(!t.gene&&!t.name)throw"no gene or name present";if(!t.gene)t.gene=t.name;a={term:t}}await r(a,o.vocabApi);e.push(a)}m.lst=e;if(n.termgroups.indexOf(m)==-1)n.termgroups.unshift(m)}n.settings.matrix.maxSample=1e5;return n}export{a as getPlotConfig};
1
+ import{aS as e}from"./app-71453429.js";import{getPlotConfig as t}from"./matrix.config-8247bea5.js";import{f as r}from"./termsetting-636d2271.js";import"./matrix.sort-249d4a35.js";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"path";async function a(a={},o){a.chartType="hierCluster";const n=await t(a,o);delete n.genes;n.settings.hierCluster={dataType:n.dataType,clusterSamples:true,clusterMethod:"average",distanceMethod:"euclidean",zScoreCap:5,xDendrogramHeight:100,yDendrogramHeight:200,colorScale:{domain:[0,.5,1],range:["blue","white","red"]}};const i=o.vocabApi.termdbConfig.hierCluster||{};e(n.settings.hierCluster,i.settings,a.settings?.hierCluster||{});{const e=n.settings.hierCluster.colorScale;if(!e)throw"colorScale missing";if(!Array.isArray(e.domain)||e.domain.length==0)throw"colorScale.domain must be non-empty array";if(!Array.isArray(e.range)||e.range.length==0)throw"colorScale.range must be non-empty array";if(e.domain.length!=e.range.length)throw"colorScale domain[] and range[] of different length"}n.settings.matrix.collabelpos="top";const s=n.settings.hierCluster.termGroupName;const m=n.termgroups.find((e=>e.type=="hierCluster"||e.name==s))||{name:s};m.type="hierCluster";if(!m.lst?.length){if(!Array.isArray(a.terms))throw"opts.terms[] not array (may show geneset edit ui)";const e=[];for(const t of a.terms){let a;if(typeof t.term=="object"&&t.term.type=="geneVariant"){a=t}else{t.type="geneVariant";if(!t.gene&&!t.name)throw"no gene or name present";if(!t.gene)t.gene=t.name;a={term:t}}await r(a,o.vocabApi);e.push(a)}m.lst=e;if(n.termgroups.indexOf(m)==-1)n.termgroups.unshift(m)}n.settings.matrix.maxSample=1e5;return n}export{a as getPlotConfig};
@@ -1 +1 @@
1
- import{r as e}from"./table-d6c411fd.js";const t=[{label:"Average",value:"average",title:`Cluster by average value`},{label:`Complete`,value:"complete",title:`Use the complete clustering method`},{label:`Single`,value:"single",title:`Use the single clustering method`},{label:`Ward.D`,value:"ward.D",title:`Use the ward.D clustering method`},{label:`Ward.D2`,value:"ward.D2",title:`Use the ward.D2 clustering method`},{label:`Mcquitty`,value:"mcquitty",title:`Use the Mcquity clustering method`}];const l=[{label:"Euclidean",value:"euclidean",title:`Calculate distance using euclidean method`},{label:"Maximum",value:"maximum",title:`Maximum distance between two components of x and y`},{label:"Manhattan",value:"manhattan",title:`Calculate distance using the absolute distance between the two vectors`},{label:"Canberra",value:"canberra",title:`Calculate distance using Canberra method`}];function s(e){const t=this.hierClusterData.clustering.col.mergedClusters;const l=t.get(e).childrenClusters||[];let s=[...l];for(const e of l){s=s.concat(this.getAllChildrenClusterIds(e))}return s}function a(e,t){const l=this.settings.matrix.controlLabels;const s=this.opts.allow2selectSamples;const a=[{label:"Zoom in",callback:()=>{this.triggerZoomBranch(this,e)}},{label:`List ${e.length} ${l.samples}`,callback:()=>this.showTable4selectedSamples(e)}];if(s){a.push({label:s.buttonText||`Select ${l.samples}`,callback:async()=>{s.callback({samples:e.map((e=>({"cases.case_id":e}))),source:s.defaultSelectionLabel||`Selected ${l.samples} from gene expression`})}})}else{if(this.state.nav&&this.state.nav.header_mode!=="hidden"){const t=e.map((e=>this.sampleOrder.find((t=>t.row.sample==e)).row));for(const e of t){if(!e.sampleId)e.sampleId=e.sample}a.push({label:"Add to a group",callback:async()=>{const e={name:"Group",items:t};this.addGroup(e)}})}}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(a).enter().append("div").attr("class","sja_menuoption").style("border-radius","0px").html((e=>e.label)).attr("data-testid",(e=>`hierCluster_dendro_menu_${e.label.split(" ")[0]}`)).on("click",(e=>{this.dom.dendroClickMenu.d.selectAll("*").remove();e.target.__data__.callback()}));this.dom.dendroClickMenu.show(t.clientX,t.clientY)}function i(e,t){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea}const l={startCell:e.serieses[0].cells.find((e=>e.sample==t[0])),endCell:e.serieses[0].cells.find((e=>e.sample==t[t.length-1]))};const s=e.settings.matrix;const a=e.dimensions;const i=l.startCell.totalIndex<l.endCell.totalIndex?l.startCell:l.endCell;const n=Math.floor(i.totalIndex+Math.abs(l.endCell.totalIndex-l.startCell.totalIndex)/2);const o=e.sampleOrder[n];const r=e.computedSettings.colw||e.settings.matrix.colw;const c=s.colwMax/r;const d=s.colwMin/r;const m=Math.max(1,s.zoomLevel*a.mainw/Math.max(l.endCell.x-l.startCell.x,2*a.colw)*.7);const h=Math.max(d,Math.min(m,c));e.app.dispatch({type:"plot_edit",id:e.id,config:{settings:{matrix:{zoomLevel:h,zoomCenterPct:.5,zoomIndex:n,zoomGrpIndex:o.grpIndex}}}});e.resetInteractions()}function n(t){const l=this.state.termdbConfig.urlTemplates;const s=l?.sample?t.map((e=>[{value:this.hierClusterData.bySampleId[e].label,url:`${l.sample.base}${e}`}])):t.map((e=>[{value:this.hierClusterData.bySampleId[e].label}]));const a=[{label:this.settings.matrix.controlLabels.Sample}];e({rows:s,columns:a,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}async function o(e){e.plotId=this.id;await this.app.vocabApi.addGroup(e);this.dom.tip.hide()}function r(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const l=this.dimensions.xMin;const s=e.clientX-this.imgBox.x-e.target.clientLeft+l;for(const[e,l]of this.hierClusterData.clustering.col.mergedClusters){const{x1:a,y1:i,x2:n,y2:o,clusterY:r}=l.clusterPosition;if(a<=s&&s<=n&&r-5<t&&t<r+5||r<=t&&t<=i&&a-5<s&&s<a+5||r<=t&&t<=o&&n-5<s&&s<n+5){return e}}}function c(e,s){this.settings.hierCluster;e.append("button").datum({label:`Clustering`,rows:[{label:"Cluster Samples",title:"Option to enable sample clustering, instead of enable sample sorting.",type:"checkbox",chartType:"hierCluster",settingsKey:"clusterSamples",boxLabel:"Cluster samples (Disable samples sorting)",callback:e=>{if(!e){this.config.settings.hierCluster.yDendrogramHeight=0;this.config.settings.hierCluster.clusterSamples=false}else{this.config.settings.hierCluster.yDendrogramHeight=200;this.config.settings.hierCluster.clusterSamples=true}this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})}},{label:`Clustering Method`,title:`Sets which clustering method to use`,type:"radio",chartType:"hierCluster",settingsKey:"clusterMethod",options:t},{label:`Distance Method`,title:`Sets which distance method to use for clustering`,type:"radio",chartType:"hierCluster",settingsKey:"distanceMethod",options:l},{label:`Column Dendrogram Height`,title:`The maximum height to render the column dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"yDendrogramHeight",getDisplayStyle(e){return e.settings.hierCluster.clusterSamples?"table-row":"none"}},{label:`Row Dendrogram Width`,title:`The maximum width to render the row dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"xDendrogramHeight"},{label:`Z-Score Cap`,title:`Cap the z-score scale to not exceed this absolute value`,type:"number",chartType:"hierCluster",settingsKey:"zScoreCap"}]}).html((e=>e.label)).style("margin","2px 0").on("click",s)}var d=Object.freeze({__proto__:null,getAllChildrenClusterIds:s,addSelectedSamplesOptions:a,triggerZoomBranch:i,showTable4selectedSamples:n,addGroup:o,getClusterFromTopDendrogram:r,setClusteringBtn:c});export{t as c,l as d,d as i};
1
+ import{r as e}from"./table-1dae543a.js";const t=[{label:"Average",value:"average",title:`Cluster by average value`},{label:`Complete`,value:"complete",title:`Use the complete clustering method`},{label:`Single`,value:"single",title:`Use the single clustering method`},{label:`Ward.D`,value:"ward.D",title:`Use the ward.D clustering method`},{label:`Ward.D2`,value:"ward.D2",title:`Use the ward.D2 clustering method`},{label:`Mcquitty`,value:"mcquitty",title:`Use the Mcquity clustering method`}];const l=[{label:"Euclidean",value:"euclidean",title:`Calculate distance using euclidean method`},{label:"Maximum",value:"maximum",title:`Maximum distance between two components of x and y`},{label:"Manhattan",value:"manhattan",title:`Calculate distance using the absolute distance between the two vectors`},{label:"Canberra",value:"canberra",title:`Calculate distance using Canberra method`}];function s(e){const t=this.hierClusterData.clustering.col.mergedClusters;const l=t.get(e).childrenClusters||[];let s=[...l];for(const e of l){s=s.concat(this.getAllChildrenClusterIds(e))}return s}function a(e,t){const l=this.settings.matrix.controlLabels;const s=this.opts.allow2selectSamples;const a=[{label:"Zoom in",callback:()=>{this.triggerZoomBranch(this,e)}},{label:`List ${e.length} ${l.samples}`,callback:()=>this.showTable4selectedSamples(e)}];if(s){a.push({label:s.buttonText||`Select ${l.samples}`,callback:async()=>{s.callback({samples:e.map((e=>({"cases.case_id":e}))),source:s.defaultSelectionLabel||`Selected ${l.samples} from gene expression`})}})}else{if(this.state.nav&&this.state.nav.header_mode!=="hidden"){const t=e.map((e=>this.sampleOrder.find((t=>t.row.sample==e)).row));for(const e of t){if(!e.sampleId)e.sampleId=e.sample}a.push({label:"Add to a group",callback:async()=>{const e={name:"Group",items:t};this.addGroup(e)}})}}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(a).enter().append("div").attr("class","sja_menuoption").style("border-radius","0px").html((e=>e.label)).attr("data-testid",(e=>`hierCluster_dendro_menu_${e.label.split(" ")[0]}`)).on("click",(e=>{this.dom.dendroClickMenu.d.selectAll("*").remove();e.target.__data__.callback()}));this.dom.dendroClickMenu.show(t.clientX,t.clientY)}function i(e,t){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea}const l={startCell:e.serieses[0].cells.find((e=>e.sample==t[0])),endCell:e.serieses[0].cells.find((e=>e.sample==t[t.length-1]))};const s=e.settings.matrix;const a=e.dimensions;const i=l.startCell.totalIndex<l.endCell.totalIndex?l.startCell:l.endCell;const n=Math.floor(i.totalIndex+Math.abs(l.endCell.totalIndex-l.startCell.totalIndex)/2);const o=e.sampleOrder[n];const r=e.computedSettings.colw||e.settings.matrix.colw;const c=s.colwMax/r;const d=s.colwMin/r;const m=Math.max(1,s.zoomLevel*a.mainw/Math.max(l.endCell.x-l.startCell.x,2*a.colw)*.7);const h=Math.max(d,Math.min(m,c));e.app.dispatch({type:"plot_edit",id:e.id,config:{settings:{matrix:{zoomLevel:h,zoomCenterPct:.5,zoomIndex:n,zoomGrpIndex:o.grpIndex}}}});e.resetInteractions()}function n(t){const l=this.state.termdbConfig.urlTemplates;const s=l?.sample?t.map((e=>[{value:this.hierClusterData.bySampleId[e].label,url:`${l.sample.base}${e}`}])):t.map((e=>[{value:this.hierClusterData.bySampleId[e].label}]));const a=[{label:this.settings.matrix.controlLabels.Sample}];e({rows:s,columns:a,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}async function o(e){e.plotId=this.id;await this.app.vocabApi.addGroup(e);this.dom.tip.hide()}function r(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const l=this.dimensions.xMin;const s=e.clientX-this.imgBox.x-e.target.clientLeft+l;for(const[e,l]of this.hierClusterData.clustering.col.mergedClusters){const{x1:a,y1:i,x2:n,y2:o,clusterY:r}=l.clusterPosition;if(a<=s&&s<=n&&r-5<t&&t<r+5||r<=t&&t<=i&&a-5<s&&s<a+5||r<=t&&t<=o&&n-5<s&&s<n+5){return e}}}function c(e,s){this.settings.hierCluster;e.append("button").datum({label:`Clustering`,rows:[{label:"Cluster Samples",title:"Option to enable sample clustering, instead of enable sample sorting.",type:"checkbox",chartType:"hierCluster",settingsKey:"clusterSamples",boxLabel:"Cluster samples (Disable samples sorting)",callback:e=>{if(!e){this.config.settings.hierCluster.yDendrogramHeight=0;this.config.settings.hierCluster.clusterSamples=false}else{this.config.settings.hierCluster.yDendrogramHeight=200;this.config.settings.hierCluster.clusterSamples=true}this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})}},{label:`Clustering Method`,title:`Sets which clustering method to use`,type:"radio",chartType:"hierCluster",settingsKey:"clusterMethod",options:t},{label:`Distance Method`,title:`Sets which distance method to use for clustering`,type:"radio",chartType:"hierCluster",settingsKey:"distanceMethod",options:l},{label:`Column Dendrogram Height`,title:`The maximum height to render the column dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"yDendrogramHeight",getDisplayStyle(e){return e.settings.hierCluster.clusterSamples?"table-row":"none"}},{label:`Row Dendrogram Width`,title:`The maximum width to render the row dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"xDendrogramHeight"},{label:`Z-Score Cap`,title:`Cap the z-score scale to not exceed this absolute value`,type:"number",chartType:"hierCluster",settingsKey:"zScoreCap"}]}).html((e=>e.label)).style("margin","2px 0").on("click",s)}var d=Object.freeze({__proto__:null,getAllChildrenClusterIds:s,addSelectedSamplesOptions:a,triggerZoomBranch:i,showTable4selectedSamples:n,addGroup:o,getClusterFromTopDendrogram:r,setClusteringBtn:c});export{t as c,l as d,d as i};
@@ -1 +1 @@
1
- import{T as e}from"./FilterRxComp-0e75dd8d.js";function t(){if(!this.dom.header)return;switch(this.config.dataType){case e.GENE_EXPRESSION:this.dom.header.text("Gene Expression Clustering");break;case e.METABOLITE_INTENSITY:this.dom.header.text("Metabolite Intensity Clustering");break;default:throw`dataType '${this.config.dataType}' not recognized`}}function n(e){const t=this.dimensions;const n=this.config.settings.matrix;t.seriesXoffset;const s=window.devicePixelRatio<=1?1:window.devicePixelRatio;const r=this.hierClusterData.clustering;const a=r.row;const h=r.col;const c=this.dimensions.dy,l=this.settings.hierCluster.xDendrogramHeight,d=this.dimensions.dx,g=this.settings.hierCluster.yDendrogramHeight;if(!this.settings.hierCluster.clusterSamples){this.dom.topDendrogram.selectAll("*").remove()}else{const e=o(h.height,g);const t=g+1e-7;const n=d*h.inputOrder.length;const r=new OffscreenCanvas(n*s,t*s);const a=r.getContext("2d");a.scale(s,s);a.imageSmoothingEnabled=false;a.imageSmoothingQuality="high";a.strokeStyle="black";const u=new Map;for(const[t,n]of h.merge.entries()){const s=t+1;const o=[];const r=[];let c,l,m,p;if(n.n1<0){const[e,t]=i(n.n1,h.inputOrder,h.order);c=d*(t+.5);m=g;o.push({name:e})}else{if(!u.has(n.n1))throw"pair.n1 is positive but not seen before";const e=u.get(n.n1);c=e.x;m=e.y;o.push(...e.children);r.push(n.n1)}if(n.n2<0){const[e,t]=i(n.n2,h.inputOrder,h.order);l=d*(t+.5);p=g;o.push({name:e})}else{if(!u.has(n.n2))throw"pair.n1 is positive but not seen before";const e=u.get(n.n2);l=e.x;p=e.y;o.push(...e.children);r.push(n.n2)}const f=g-h.height[t].height*e;const x=this.clickedClusterIds?.includes(s);a.strokeStyle=x?"red":"black";a.beginPath();a.moveTo(c,m);a.lineTo(c,f);a.lineTo(l,f);a.lineTo(l,p);a.stroke();a.closePath();u.set(s,{x:(c+l)/2,y:f,children:o,childrenClusters:r,clusterPosition:{x1:c,x2:l,y1:m,y2:p,clusterY:f}})}this.renderImage(this.dom.topDendrogram,r,n,t,l+.5*d,c);h.mergedClusters=u}if(e)return;const u=o(a.height,l);const m=l+1e-7;const p=c*a.inputOrder.length;const f=new OffscreenCanvas(m*s,p*s);const x=f.getContext("2d");x.scale(s,s);x.imageSmoothingEnabled=false;x.imageSmoothingQuality="high";x.strokeStyle="black";const y=new Map;for(const[e,t]of a.merge.entries()){const n=e+1;const s=[];let o,r,h,d;if(t.n1<0){const[e,n]=i(t.n1,a.inputOrder,a.order);h=c*(n+.5);o=l;s.push({name:e})}else{if(!y.has(t.n1))throw"pair.n1 is positive but not seen before";const e=y.get(t.n1);o=e.x;h=e.y;s.push(...e.children)}if(t.n2<0){const[e,n]=i(t.n2,a.inputOrder,a.order);d=c*(n+.5);r=l;s.push({name:e})}else{if(!y.has(t.n2))throw"pair.n1 is positive but not seen before";const e=y.get(t.n2);r=e.x;d=e.y;s.push(...e.children)}const g=l-a.height[e].height*u;x.beginPath();x.moveTo(o,h);x.lineTo(g,h);x.lineTo(g,d);x.lineTo(r,d);x.stroke();x.closePath();y.set(n,{x:g,y:(h+d)/2,children:s})}const b=this.termOrder.find((e=>e.grp.type=="hierCluster"||e.grp.name==this.hcTermGroup.name));const w=b.grpIndex*n.rowgspace+b.prevGrpTotalIndex*t.dy+b.totalHtAdjustments;this.renderImage(this.dom.leftDendrogram,f,m,p,0,w+g+1.5*c);a.mergedClusters=y}async function s(e,t,n,s,o,i){const r=new FileReader;r.addEventListener("load",(()=>{e.selectAll("*").remove();e.append("image").attr("x",o+.033).attr("y",i+.033).attr("xlink:href",r.result).attr("width",n).attr("height",s)}),false);const a=await t.convertToBlob({quality:1});r.readAsDataURL(a)}function o(e,t){let n=e[0].height;for(const t of e)n=Math.max(n,t.height);return t/n}function i(e,t,n){const s=t[-e-1];if(!s)throw"minus not in inputOrder";const o=n.findIndex((e=>e.name==s));if(o==-1)throw"name not found in hc$order";return[s,o]}var r=Object.freeze({__proto__:null,maySetSandboxHeader:t,plotDendrogramHclust:n,renderImage:s});export{r};
1
+ import{T as e}from"./FilterRxComp-fc769f34.js";function t(){if(!this.dom.header)return;switch(this.config.dataType){case e.GENE_EXPRESSION:this.dom.header.text("Gene Expression Clustering");break;case e.METABOLITE_INTENSITY:this.dom.header.text("Metabolite Intensity Clustering");break;default:throw`dataType '${this.config.dataType}' not recognized`}}function n(e){const t=this.dimensions;const n=this.config.settings.matrix;t.seriesXoffset;const s=window.devicePixelRatio<=1?1:window.devicePixelRatio;const r=this.hierClusterData.clustering;const a=r.row;const h=r.col;const c=this.dimensions.dy,l=this.settings.hierCluster.xDendrogramHeight,d=this.dimensions.dx,g=this.settings.hierCluster.yDendrogramHeight;if(!this.settings.hierCluster.clusterSamples){this.dom.topDendrogram.selectAll("*").remove()}else{const e=o(h.height,g);const t=g+1e-7;const n=d*h.inputOrder.length;const r=new OffscreenCanvas(n*s,t*s);const a=r.getContext("2d");a.scale(s,s);a.imageSmoothingEnabled=false;a.imageSmoothingQuality="high";a.strokeStyle="black";const u=new Map;for(const[t,n]of h.merge.entries()){const s=t+1;const o=[];const r=[];let c,l,m,f;if(n.n1<0){const[e,t]=i(n.n1,h.inputOrder,h.order);c=d*(t+.5);m=g;o.push({name:e})}else{if(!u.has(n.n1))throw"pair.n1 is positive but not seen before";const e=u.get(n.n1);c=e.x;m=e.y;o.push(...e.children);r.push(n.n1)}if(n.n2<0){const[e,t]=i(n.n2,h.inputOrder,h.order);l=d*(t+.5);f=g;o.push({name:e})}else{if(!u.has(n.n2))throw"pair.n1 is positive but not seen before";const e=u.get(n.n2);l=e.x;f=e.y;o.push(...e.children);r.push(n.n2)}const p=g-h.height[t].height*e;const x=this.clickedClusterIds?.includes(s);a.strokeStyle=x?"red":"black";a.beginPath();a.moveTo(c,m);a.lineTo(c,p);a.lineTo(l,p);a.lineTo(l,f);a.stroke();a.closePath();u.set(s,{x:(c+l)/2,y:p,children:o,childrenClusters:r,clusterPosition:{x1:c,x2:l,y1:m,y2:f,clusterY:p}})}this.renderImage(this.dom.topDendrogram,r,n,t,l+.5*d,c);h.mergedClusters=u}if(e)return;const u=o(a.height,l);const m=l+1e-7;const f=c*a.inputOrder.length;const p=new OffscreenCanvas(m*s,f*s);const x=p.getContext("2d");x.scale(s,s);x.imageSmoothingEnabled=false;x.imageSmoothingQuality="high";x.strokeStyle="black";const y=new Map;for(const[e,t]of a.merge.entries()){const n=e+1;const s=[];let o,r,h,d;if(t.n1<0){const[e,n]=i(t.n1,a.inputOrder,a.order);h=c*(n+.5);o=l;s.push({name:e})}else{if(!y.has(t.n1))throw"pair.n1 is positive but not seen before";const e=y.get(t.n1);o=e.x;h=e.y;s.push(...e.children)}if(t.n2<0){const[e,n]=i(t.n2,a.inputOrder,a.order);d=c*(n+.5);r=l;s.push({name:e})}else{if(!y.has(t.n2))throw"pair.n1 is positive but not seen before";const e=y.get(t.n2);r=e.x;d=e.y;s.push(...e.children)}const g=l-a.height[e].height*u;x.beginPath();x.moveTo(o,h);x.lineTo(g,h);x.lineTo(g,d);x.lineTo(r,d);x.stroke();x.closePath();y.set(n,{x:g,y:(h+d)/2,children:s})}const b=this.termOrder.find((e=>e.grp.type=="hierCluster"||e.grp.name==this.hcTermGroup.name));const w=b.grpIndex*n.rowgspace+b.prevGrpTotalIndex*t.dy+b.totalHtAdjustments;this.renderImage(this.dom.leftDendrogram,p,m,f,0,w+g+1.5*c);a.mergedClusters=y}async function s(e,t,n,s,o,i){const r=new FileReader;r.addEventListener("load",(()=>{e.selectAll("*").remove();e.append("image").attr("x",o+.033).attr("y",i+.033).attr("xlink:href",r.result).attr("width",n).attr("height",s)}),false);const a=await t.convertToBlob({quality:1});r.readAsDataURL(a)}function o(e,t){let n=e[0].height;for(const t of e)n=Math.max(n,t.height);return t/n}function i(e,t,n){const s=t[-e-1];if(!s)throw"minus not in inputOrder";const o=n.findIndex((e=>e.name==s));if(o==-1)throw"name not found in hc$order";return[s,o]}var r=Object.freeze({__proto__:null,maySetSandboxHeader:t,plotDendrogramHclust:n,renderImage:s});export{r};
@@ -1 +1 @@
1
- import{q as e,x as t}from"./app-f91922b4.js";function l(l,n={settings:{},handlers:{}},i){function s(e,t={}){const s=n.settings;if(!t.div)l.selectAll("*").remove();if(e.every((e=>Array.isArray(e)))){for(let t=0;t<e.length;t++){const l=i.select(`.pp-sbar-div:nth-child(${t+1})`);o(e[t],s,l)}}else if(e.every((e=>typeof e=="object"))){o(e,s,t.div||l)}else{throw"render() only takes an array of objects or an array of arrays"}}function o(e,t,l){l.selectAll(".pp-sbar-div-oneLegend").remove();l.append("div").attr("class","pp-sbar-div-oneLegend").attr("data-testid","pp-sbar-div-oneLegend").style("width",t.mainWidth||"").style("text-align",e.legendTextAlign||t.legendTextAlign||(t.legendOrientation=="vertical"?"left":"center")).style("display",t.legendOrientation=="grid"?"grid":"").style("grid-template-rows",t.legendOrientation=="grid"?"auto auto":"").style("gap",t.legendOrientation=="grid"?"10px":"").selectAll("div").data(e).enter().append("div").each(a);if(t.legendChartSide=="right"){setTimeout((()=>{const e=n.dom.container.node().parentNode.getBoundingClientRect();const t=n.dom.container.node().getBoundingClientRect();const l=n.dom.legendDiv.node().getBoundingClientRect();const i=parseFloat(n.dom.legendDiv.style("padding-top"));const s=e.height-t.height+(t.height-l.height+i)/2;if(Math.abs(i-s)<20)return;n.dom.legendDiv.transition().duration(100).style("padding-top",s<0?0:s+"px")}),1200)}}function a(t){const l=n.settings;const i=e(this).style("display",l.legendOrientation=="vertical"||l.legendOrientation=="grid"?"block":"inline-block");if(t.name){if(l.legendChartSide=="right"){i.style("text-align","left");i.append("div").style("font-size",l.legendFontSize).style("font-weight",600).html(t.name);i.append("div").selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-right","5px").each(d)}else{i.style("white-space","nowrap").style("width",l.legendOrientation=="vertical"?"fit-content":null);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("width",t.rowLabelHangLeft?t.rowLabelHangLeft+"px":null).style("margin-left",l.legendOrientation=="vertical"?"15px":null).style("text-align",t.rowLabelHangLeft?"right":null).style("font-weight",600).style("vertical-align","top").html(t.name);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("max-width",1.2*t.rowLabelHangLeft+"px").style("white-space","normal").style("vertical-align","top").selectAll("div").data(t.items).enter().append("div").style("display","inline-block").style("margin-left","15px").each(d)}}else{i.selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-left","15px").each(d)}}function d(l){const i=n.settings;const s=e(this);const o=l.fill?l.fill:l.stroke?l.stroke:l.color;s.attr("class","legend-row").classed("sjpp-hidden-legend-item",l.isHidden?true:false).style("display",i.legendOrientation=="vertical"?"block":"inline-block").style("width",i.legendOrientation=="vertical"?"fit-content":null);if(l.svg){s.append("svg").attr("width",l.svgw).attr("height",l.svgh).style("display","inline-block").style("vertical-align","top").style("border",l.border).html((e=>e.svg))}else if(!l.noIcon){const e=l.noEditColor?o:t(o).darker();s.append("div").style("display","inline-block").style("position","relative").style("min-width","12px").style("height","12px").style("top","1px").style("border",l.border?l.border:"1px solid "+e).style("border-radius",l.shape=="circle"?"6px":"").style("background-color",l.shape=="circle"?"":o).style("cursor","isHidden"in l?"pointer":"default").style("color",l.textColor?l.textColor:"#fff").style("font-size","10px").style("vertical-align",l.inset?"top":"").style("padding",l.inset?"0 3px":"").text(l.inset).on("click",n.handlers.legend?.onColorClick)}s.append("div").classed("sjpp-htmlLegend",true).style("display","inline-block").style("margin-left",l.svg?"1px":"3px").style("cursor",l.isHidden?"pointer":"default").style("font-size",i.legendFontSize).style("line-height",i.legendFontSize).style("vertical-align",l.svg?"top":null).style("text-decoration",l.isHidden?"line-through":"none").html(l.text).on("click",n.handlers.legend?.click);if(Object.keys(n.handlers).length){s.on("mouseover",n.handlers.legend.mouseover).on("mouseout",n.handlers.legend.mouseout)}}return s}export{l as h};
1
+ import{q as e,x as t}from"./app-71453429.js";function l(l,n={settings:{},handlers:{}},i){function s(e,t={}){const s=n.settings;if(!t.div)l.selectAll("*").remove();if(e.every((e=>Array.isArray(e)))){for(let t=0;t<e.length;t++){const l=i.select(`.pp-sbar-div:nth-child(${t+1})`);o(e[t],s,l)}}else if(e.every((e=>typeof e=="object"))){o(e,s,t.div||l)}else{throw"render() only takes an array of objects or an array of arrays"}}function o(e,t,l){l.selectAll(".pp-sbar-div-oneLegend").remove();l.append("div").attr("class","pp-sbar-div-oneLegend").attr("data-testid","pp-sbar-div-oneLegend").style("width",t.mainWidth||"").style("text-align",e.legendTextAlign||t.legendTextAlign||(t.legendOrientation=="vertical"?"left":"center")).style("display",t.legendOrientation=="grid"?"grid":"").style("grid-template-rows",t.legendOrientation=="grid"?"auto auto":"").style("gap",t.legendOrientation=="grid"?"10px":"").selectAll("div").data(e).enter().append("div").each(a);if(t.legendChartSide=="right"){setTimeout((()=>{const e=n.dom.container.node().parentNode.getBoundingClientRect();const t=n.dom.container.node().getBoundingClientRect();const l=n.dom.legendDiv.node().getBoundingClientRect();const i=parseFloat(n.dom.legendDiv.style("padding-top"));const s=e.height-t.height+(t.height-l.height+i)/2;if(Math.abs(i-s)<20)return;n.dom.legendDiv.transition().duration(100).style("padding-top",s<0?0:s+"px")}),1200)}}function a(t){const l=n.settings;const i=e(this).style("display",l.legendOrientation=="vertical"||l.legendOrientation=="grid"?"block":"inline-block");if(t.name){if(l.legendChartSide=="right"){i.style("text-align","left");i.append("div").style("font-size",l.legendFontSize).style("font-weight",600).html(t.name);i.append("div").selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-right","5px").each(d)}else{i.style("white-space","nowrap").style("width",l.legendOrientation=="vertical"?"fit-content":null);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("width",t.rowLabelHangLeft?t.rowLabelHangLeft+"px":null).style("margin-left",l.legendOrientation=="vertical"?"15px":null).style("text-align",t.rowLabelHangLeft?"right":null).style("font-weight",600).style("vertical-align","top").html(t.name);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("max-width",1.2*t.rowLabelHangLeft+"px").style("white-space","normal").style("vertical-align","top").selectAll("div").data(t.items).enter().append("div").style("display","inline-block").style("margin-left","15px").each(d)}}else{i.selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-left","15px").each(d)}}function d(l){const i=n.settings;const s=e(this);const o=l.fill?l.fill:l.stroke?l.stroke:l.color;s.attr("class","legend-row").classed("sjpp-hidden-legend-item",l.isHidden?true:false).style("display",i.legendOrientation=="vertical"?"block":"inline-block").style("width",i.legendOrientation=="vertical"?"fit-content":null);if(l.svg){s.append("svg").attr("width",l.svgw).attr("height",l.svgh).style("display","inline-block").style("vertical-align","top").style("border",l.border).html((e=>e.svg))}else if(!l.noIcon){const e=l.noEditColor?o:t(o).darker();s.append("div").style("display","inline-block").style("position","relative").style("min-width","12px").style("height","12px").style("top","1px").style("border",l.border?l.border:"1px solid "+e).style("border-radius",l.shape=="circle"?"6px":"").style("background-color",l.shape=="circle"?"":o).style("cursor","isHidden"in l?"pointer":"default").style("color",l.textColor?l.textColor:"#fff").style("font-size","10px").style("vertical-align",l.inset?"top":"").style("padding",l.inset?"0 3px":"").text(l.inset).on("click",n.handlers.legend?.onColorClick)}s.append("div").classed("sjpp-htmlLegend",true).style("display","inline-block").style("margin-left",l.svg?"1px":"3px").style("cursor",l.isHidden?"pointer":"default").style("font-size",i.legendFontSize).style("line-height",i.legendFontSize).style("vertical-align",l.svg?"top":null).style("text-decoration",l.isHidden?"line-through":"none").html(l.text).on("click",n.handlers.legend?.click);if(Object.keys(n.handlers).length){s.on("mouseover",n.handlers.legend.mouseover).on("mouseout",n.handlers.legend.mouseout)}}return s}export{l as h};
@@ -1 +1 @@
1
- import{aS as t,az as i}from"./app-f91922b4.js";import{controlsInit as o}from"./controls-8d4972c8.js";import"./controls.btns-bad9e4cf.js";import"./controls.config-e0f394cb.js";import"./controls.overlay-3ac8773d.js";import"./termsetting-9a7511e6.js";import"path";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"./controls.term1-008f4be4.js";import"./controls.divide-d8ac5a9b.js";class s{constructor(){this.type="imagePlot"}async init(t){const i=t.plots.find((t=>t.id===this.id));this.getState(t);const o=this.opts.holder.append("div");this.dom={holder:o,controlsHolder:o.append("div").style("display","inline-block"),imageHolder:o.append("div").style("display","inline-block")};this.setControls();const s=await this.app.vocabApi.getSampleImages(i.sample.sampleId);if(s.error)throw s.error;console.log("result",s);for(const t of s.images){this.dom.imageHolder.append("img").style("padding","10px").attr("src",t.src).attr("width",i.settings.imagePlot.width).attr("height",i.settings.imagePlot.height)}}async setControls(){this.components={controls:await o({app:this.app,id:this.id,holder:this.dom.controlsHolder,inputs:[{label:"Chart width",type:"number",chartType:this.type,settingsKey:"width"},{label:"Chart height",type:"number",chartType:this.type,settingsKey:"height"}]})}}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:i,termfilter:t.termfilter,vocab:t.vocab}}}async function e(i,o){let s=r();if(i.settings)t(s,i.settings);const e={settings:{controls:{isOpen:false},imagePlot:s}};const a=t(e,i);return a}function r(){return{width:500,height:500}}const a=i(s);const n=a;async function p(t,i,o){const s={holder:i,state:{vocab:t.vocab,plots:[{chartType:"imagePlot",sample:o}]}};const e=await import("./plot.app-91a1d78d.js");await e.appInit(s)}export{n as componentInit,r as getDefaultImagePlotSettings,e as getPlotConfig,a as imagePlotInit,p as renderImagePlot};
1
+ import{aS as t,az as i}from"./app-71453429.js";import{controlsInit as o}from"./controls-0467d2ec.js";import"./controls.btns-ad7b28a2.js";import"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";class s{constructor(){this.type="imagePlot"}async init(t){const i=t.plots.find((t=>t.id===this.id));this.getState(t);const o=this.opts.holder.append("div");this.dom={holder:o,controlsHolder:o.append("div").style("display","inline-block"),imageHolder:o.append("div").style("display","inline-block")};this.setControls();const s=await this.app.vocabApi.getSampleImages(i.sample.sampleId);if(s.error)throw s.error;console.log("result",s);for(const t of s.images){this.dom.imageHolder.append("img").style("padding","10px").attr("src",t.src).attr("width",i.settings.imagePlot.width).attr("height",i.settings.imagePlot.height)}}async setControls(){this.components={controls:await o({app:this.app,id:this.id,holder:this.dom.controlsHolder,inputs:[{label:"Chart width",type:"number",chartType:this.type,settingsKey:"width"},{label:"Chart height",type:"number",chartType:this.type,settingsKey:"height"}]})}}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:i,termfilter:t.termfilter,vocab:t.vocab}}}async function e(i,o){let s=r();if(i.settings)t(s,i.settings);const e={settings:{controls:{isOpen:false},imagePlot:s}};const a=t(e,i);return a}function r(){return{width:500,height:500}}const a=i(s);const n=a;async function p(t,i,o){const s={holder:i,state:{vocab:t.vocab,plots:[{chartType:"imagePlot",sample:o}]}};const e=await import("./plot.app-c841507a.js");await e.appInit(s)}export{n as componentInit,r as getDefaultImagePlotSettings,e as getPlotConfig,a as imagePlotInit,p as renderImagePlot};
@@ -1 +1 @@
1
- import{d as t}from"./drag-c354e2c6.js";import{p as e}from"./pointer-c7475677.js";function s(){let s=[],n,o={start:function(){},draw:function(){},end:function(){}};function l(l){const r=l.append("g").attr("class","lasso");const i=r.append("path").attr("class","drawn").style("stroke","#505050").style("stroke-width","2px").style("fill-opacity",".05");const a=r.append("circle").attr("class","origin").style("fill","#3399FF").style("fill-opacity",".5");let c,u;let f=t().on("start",d).on("drag",_).on("end",p);n.call(f);function d(t){u=[];c="";i.attr("d",null);s.nodes().forEach((function(t){t.__lasso.possible=false;t.__lasso.selected=false;t.__lasso.loopSelect=false;let e=t.getBoundingClientRect();t.__lasso.lassoPoint=[Math.round(e.left+e.width/2),Math.round(e.top+e.height/2)]}));o.start(t)}function _(t){let n,l;if(t.sourceEvent.type==="touchmove"){n=t.sourceEvent.touches[0].clientX;l=t.sourceEvent.touches[0].clientY}else{n=t.sourceEvent.clientX;l=t.sourceEvent.clientY}let[r,f]=e(t,this);if(c===""){c=c+"M "+r+" "+f;a.attr("cx",r).attr("cy",f).attr("r",7).attr("display",null)}else{c=c+" L "+r+" "+f}u.push([n,l]);i.attr("d",c);s.nodes().forEach((function(t){t.__lasso.loopSelect=h(t.__lasso.lassoPoint,u);t.__lasso.possible=t.__lasso.loopSelect}));o.draw(t)}function p(t){s.on("mouseover.lasso",null);s.nodes().forEach((function(t){t.__lasso.selected=t.__lasso.possible;t.__lasso.possible=false}));i.attr("d",null);a.attr("display","none");o.end(t)}function h(t,e){let s,n,o,l,r,i=t[0],a=t[1],c=false;for(let t=0,u=e.length-1;t<e.length;u=t++){s=e[t][0];o=e[t][1];n=e[u][0];l=e[u][1];r=o>a!=l>a&&i<(n-s)*(a-o)/(l-o)+s;if(r)c=!c}return c}}l.items=function(t){if(!arguments.length)return s;s=t;const e=s.nodes();e.forEach((function(t){t.__lasso={possible:false,selected:false}}));return l};l.possibleItems=function(){return s.filter((function(){return this.__lasso.possible}))};l.selectedItems=function(){return s.filter((function(){return this.__lasso.selected}))};l.notPossibleItems=function(){return s.filter((function(){return!this.__lasso.possible}))};l.notSelectedItems=function(){return s.filter((function(){return!this.__lasso.selected}))};l.on=function(t,e){if(!arguments.length)return o;if(arguments.length===1)return o[t];const s=["start","draw","end"];if(s.indexOf(t)>-1){o[t]=e}return l};l.targetArea=function(t){if(!arguments.length)return n;n=t;return l};return l}export{s as d};
1
+ import{d as t}from"./drag-88d451b4.js";import{p as e}from"./pointer-c7475677.js";function s(){let s=[],n,o={start:function(){},draw:function(){},end:function(){}};function l(l){const r=l.append("g").attr("class","lasso");const i=r.append("path").attr("class","drawn").style("stroke","#505050").style("stroke-width","2px").style("fill-opacity",".05");const a=r.append("circle").attr("class","origin").style("fill","#3399FF").style("fill-opacity",".5");let c,u;let f=t().on("start",d).on("drag",_).on("end",p);n.call(f);function d(t){u=[];c="";i.attr("d",null);s.nodes().forEach((function(t){t.__lasso.possible=false;t.__lasso.selected=false;t.__lasso.loopSelect=false;let e=t.getBoundingClientRect();t.__lasso.lassoPoint=[Math.round(e.left+e.width/2),Math.round(e.top+e.height/2)]}));o.start(t)}function _(t){let n,l;if(t.sourceEvent.type==="touchmove"){n=t.sourceEvent.touches[0].clientX;l=t.sourceEvent.touches[0].clientY}else{n=t.sourceEvent.clientX;l=t.sourceEvent.clientY}let[r,f]=e(t,this);if(c===""){c=c+"M "+r+" "+f;a.attr("cx",r).attr("cy",f).attr("r",7).attr("display",null)}else{c=c+" L "+r+" "+f}u.push([n,l]);i.attr("d",c);s.nodes().forEach((function(t){t.__lasso.loopSelect=h(t.__lasso.lassoPoint,u);t.__lasso.possible=t.__lasso.loopSelect}));o.draw(t)}function p(t){s.on("mouseover.lasso",null);s.nodes().forEach((function(t){t.__lasso.selected=t.__lasso.possible;t.__lasso.possible=false}));i.attr("d",null);a.attr("display","none");o.end(t)}function h(t,e){let s,n,o,l,r,i=t[0],a=t[1],c=false;for(let t=0,u=e.length-1;t<e.length;u=t++){s=e[t][0];o=e[t][1];n=e[u][0];l=e[u][1];r=o>a!=l>a&&i<(n-s)*(a-o)/(l-o)+s;if(r)c=!c}return c}}l.items=function(t){if(!arguments.length)return s;s=t;const e=s.nodes();e.forEach((function(t){t.__lasso={possible:false,selected:false}}));return l};l.possibleItems=function(){return s.filter((function(){return this.__lasso.possible}))};l.selectedItems=function(){return s.filter((function(){return this.__lasso.selected}))};l.notPossibleItems=function(){return s.filter((function(){return!this.__lasso.possible}))};l.notSelectedItems=function(){return s.filter((function(){return!this.__lasso.selected}))};l.on=function(t,e){if(!arguments.length)return o;if(arguments.length===1)return o[t];const s=["start","draw","end"];if(s.indexOf(t)>-1){o[t]=e}return l};l.targetArea=function(t){if(!arguments.length)return n;n=t;return l};return l}export{s as d};
@@ -1 +1 @@
1
- import{aD as t,b9 as o,E as n}from"./app-f91922b4.js";import{appInit as e}from"./plot.app-91a1d78d.js";import"./recover-a08c8d01.js";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"./FilterStateless-ad3df967.js";import"./app-bfce9bf5.js";import"./termInfo-96285f4a.js";import"./termsetting-9a7511e6.js";import"path";function s(n,s,r){return t(this,void 0,void 0,(function*(){const[t,c]=yield i(n);if(c===null||c===void 0?void 0:c.length){return o(c,r)}const u={holder:r,vocabApi:{vocab:{terms:[]},main:()=>{},getTermdbConfig:()=>({})},state:{args:{data:t,genome:s},plots:[{chartType:"Disco",subfolder:"disco",extension:"ts"}]}};const p=yield e(u);return p}))}function i(o){return t(this,void 0,void 0,(function*(){if(Array.isArray(o.mlst)){return[o.mlst,null]}const t=[];const n=[];if(o.snvText)r(o.snvText,t,n);if(o.svText)c(o.svText,t,n);if(o.cnvText)u(o.cnvText,t,n);return[t,n]}))}function r(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length!=5){n.push("snv input not equal to 5 columns");continue}let s;try{s={dt:1,chr:t[0],position:Number(t[1]),gene:t[2],mname:t[3],class:p(t[4],n)}}catch(t){n.push(t);continue}o.push(s)}}function c(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length<4||t.length>6){n.push("sv input not equal to 4 or 6 columns");continue}let s;try{const o=t.length;if(o==4){s={dt:2,chrA:t[0],posA:Number(t[1]),chrB:t[2],posB:Number(t[3])}}else{s={dt:2,chrA:t[0],posA:Number(t[1]),geneA:t[2],chrB:t[3],posB:Number(t[4]),geneB:t[5]}}}catch(t){n.push(t);continue}o.push(s)}}function u(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length!=4){n.push("cnv input not equal to 4 columns");continue}let s;try{s={dt:4,chr:t[0],start:Number(t[1]),stop:Number(t[2]),value:Number(t[3])}}catch(t){n.push(t);continue}o.push(s)}}function p(t,o){const e=t.toLowerCase();const s=Object.values(n).find((t=>t.key.toLowerCase()===e||t.label.toLowerCase()===e));if(s){return s.key}else{o.push(`Invalid mutation class: ${t}`)}}export{s as launch};
1
+ import{aD as t,b9 as o,E as n}from"./app-71453429.js";import{appInit as e}from"./plot.app-c841507a.js";import"./recover-b1ec4fed.js";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./FilterStateless-8f30f856.js";import"./app-fb676934.js";import"./termInfo-4c759483.js";import"./termsetting-636d2271.js";import"path";function s(n,s,r){return t(this,void 0,void 0,(function*(){const[t,c]=yield i(n);if(c===null||c===void 0?void 0:c.length){return o(c,r)}const u={holder:r,vocabApi:{vocab:{terms:[]},main:()=>{},getTermdbConfig:()=>({})},state:{args:{data:t,genome:s},plots:[{chartType:"Disco",subfolder:"disco",extension:"ts"}]}};const p=yield e(u);return p}))}function i(o){return t(this,void 0,void 0,(function*(){if(Array.isArray(o.mlst)){return[o.mlst,null]}const t=[];const n=[];if(o.snvText)r(o.snvText,t,n);if(o.svText)c(o.svText,t,n);if(o.cnvText)u(o.cnvText,t,n);return[t,n]}))}function r(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length!=5){n.push("snv input not equal to 5 columns");continue}let s;try{s={dt:1,chr:t[0],position:Number(t[1]),gene:t[2],mname:t[3],class:p(t[4],n)}}catch(t){n.push(t);continue}o.push(s)}}function c(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length<4||t.length>6){n.push("sv input not equal to 4 or 6 columns");continue}let s;try{const o=t.length;if(o==4){s={dt:2,chrA:t[0],posA:Number(t[1]),chrB:t[2],posB:Number(t[3])}}else{s={dt:2,chrA:t[0],posA:Number(t[1]),geneA:t[2],chrB:t[3],posB:Number(t[4]),geneB:t[5]}}}catch(t){n.push(t);continue}o.push(s)}}function u(t,o,n){for(const e of t.trim().split("\n")){const t=e.trim().split("\t");if(t.length!=4){n.push("cnv input not equal to 4 columns");continue}let s;try{s={dt:4,chr:t[0],start:Number(t[1]),stop:Number(t[2]),value:Number(t[3])}}catch(t){n.push(t);continue}o.push(s)}}function p(t,o){const e=t.toLowerCase();const s=Object.values(n).find((t=>t.key.toLowerCase()===e||t.label.toLowerCase()===e));if(s){return s.key}else{o.push(`Invalid mutation class: ${t}`)}}export{s as launch};
@@ -1 +1 @@
1
- import{A as t,z as o,am as r}from"./app-f91922b4.js";import{s as n}from"./legacy-d3-polyfill-bdb2d792.js";function e(e){if(e.geneexpression){if(e.geneexpression.maf){try{e.geneexpression.maf.get=new Function(e.geneexpression.maf.get)}catch(t){return"invalid Javascript for get() of expression.maf of "+e.label}}}if(e.cohort){if(e.cohort.raw&&e.cohort.tosampleannotation){if(!e.cohort.key4annotation){return"cohort.tosampleannotation in use by .key4annotation missing of "+e.label}if(!e.cohort.annotation){e.cohort.annotation={}}let t=0;for(const o of e.cohort.raw){const r=o[e.cohort.tosampleannotation.samplekey];if(r){const t={};for(const r in o){t[r]=o[r]}e.cohort.annotation[r]=t}else{t++}}if(t)return t+" rows has no sample name from sample annotation of "+e.label;delete e.cohort.tosampleannotation}if(e.cohort.levels){if(e.cohort.raw){const r=t(e.cohort.raw,e.cohort.levels);e.cohort.root=o()(r);e.cohort.root.sum((t=>t.value))}}if(e.cohort.raw){delete e.cohort.raw}e.cohort.suncolor=r(n)}if(e.snvindel_attributes){for(const t of e.snvindel_attributes){if(t.get){try{t.get=new Function(t.get)}catch(o){return"invalid Javascript for getter of "+JSON.stringify(t)}}else if(t.lst){for(const o of t.lst){if(o.get){try{o.get=new Function(o.get)}catch(t){return"invalid Javascript for getter of "+JSON.stringify(o)}}}}}}if(e.stratify){if(!Array.isArray(e.stratify)){return"stratify is not an array in "+e.label}for(const t of e.stratify){if(!t.label){return"stratify method lacks label in "+e.label}if(t.bycohort){if(!e.cohort){return"stratify method "+t.label+" using cohort but no cohort in "+e.label}}else{if(!t.attr1){return"stratify method "+t.label+" not using cohort but no attr1 in "+e.label}if(!t.attr1.label){return".attr1.label missing in "+t.label+" in "+e.label}if(!t.attr1.k){return".attr1.k missing in "+t.label+" in "+e.label}}}}if(e.url4variant){for(const t of e.url4variant){t.makelabel=new Function(t.makelabel);t.makeurl=new Function(t.makeurl)}}}export{e as validate_oldds};
1
+ import{A as t,z as o,am as r}from"./app-71453429.js";import{s as n}from"./legacy-d3-polyfill-bdb2d792.js";function e(e){if(e.geneexpression){if(e.geneexpression.maf){try{e.geneexpression.maf.get=new Function(e.geneexpression.maf.get)}catch(t){return"invalid Javascript for get() of expression.maf of "+e.label}}}if(e.cohort){if(e.cohort.raw&&e.cohort.tosampleannotation){if(!e.cohort.key4annotation){return"cohort.tosampleannotation in use by .key4annotation missing of "+e.label}if(!e.cohort.annotation){e.cohort.annotation={}}let t=0;for(const o of e.cohort.raw){const r=o[e.cohort.tosampleannotation.samplekey];if(r){const t={};for(const r in o){t[r]=o[r]}e.cohort.annotation[r]=t}else{t++}}if(t)return t+" rows has no sample name from sample annotation of "+e.label;delete e.cohort.tosampleannotation}if(e.cohort.levels){if(e.cohort.raw){const r=t(e.cohort.raw,e.cohort.levels);e.cohort.root=o()(r);e.cohort.root.sum((t=>t.value))}}if(e.cohort.raw){delete e.cohort.raw}e.cohort.suncolor=r(n)}if(e.snvindel_attributes){for(const t of e.snvindel_attributes){if(t.get){try{t.get=new Function(t.get)}catch(o){return"invalid Javascript for getter of "+JSON.stringify(t)}}else if(t.lst){for(const o of t.lst){if(o.get){try{o.get=new Function(o.get)}catch(t){return"invalid Javascript for getter of "+JSON.stringify(o)}}}}}}if(e.stratify){if(!Array.isArray(e.stratify)){return"stratify is not an array in "+e.label}for(const t of e.stratify){if(!t.label){return"stratify method lacks label in "+e.label}if(t.bycohort){if(!e.cohort){return"stratify method "+t.label+" using cohort but no cohort in "+e.label}}else{if(!t.attr1){return"stratify method "+t.label+" not using cohort but no attr1 in "+e.label}if(!t.attr1.label){return".attr1.label missing in "+t.label+" in "+e.label}if(!t.attr1.k){return".attr1.k missing in "+t.label+" in "+e.label}}}}if(e.url4variant){for(const t of e.url4variant){t.makelabel=new Function(t.makelabel);t.makeurl=new Function(t.makeurl)}}}export{e as validate_oldds};
@@ -1 +1 @@
1
- import{b0 as t,b1 as n,b2 as e,b3 as r,b4 as i,f as o}from"./app-f91922b4.js";function l(t,n){t=t.slice();var e=0,r=t.length-1,i=t[e],o=t[r],l;if(o<i){l=e,e=r,r=l;l=i,i=o,o=l}t[e]=n.floor(i);t[r]=n.ceil(o);return t}function f(t){return Math.log(t)}function u(t){return Math.exp(t)}function a(t){return-Math.log(-t)}function c(t){return-Math.exp(-t)}function s(t){return isFinite(t)?+("1e"+t):t<0?0:t}function h(t){return t===10?s:t===Math.E?Math.exp:n=>Math.pow(t,n)}function M(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}function p(t){return(n,e)=>-t(-n,e)}function g(t){const n=t(f,u);const e=n.domain;let s=10;let g;let b;function m(){g=M(s),b=h(s);if(e()[0]<0){g=p(g),b=p(b);t(a,c)}else{t(f,u)}return n}n.base=function(t){return arguments.length?(s=+t,m()):s};n.domain=function(t){return arguments.length?(e(t),m()):e()};n.ticks=t=>{const n=e();let i=n[0];let o=n[n.length-1];const l=o<i;if(l)[i,o]=[o,i];let f=g(i);let u=g(o);let a;let c;const h=t==null?10:+t;let M=[];if(!(s%1)&&u-f<h){f=Math.floor(f),u=Math.ceil(u);if(i>0)for(;f<=u;++f){for(a=1;a<s;++a){c=f<0?a/b(-f):a*b(f);if(c<i)continue;if(c>o)break;M.push(c)}}else for(;f<=u;++f){for(a=s-1;a>=1;--a){c=f>0?a/b(-f):a*b(f);if(c<i)continue;if(c>o)break;M.push(c)}}if(M.length*2<h)M=r(i,o,h)}else{M=r(f,u,Math.min(u-f,h)).map(b)}return l?M.reverse():M};n.tickFormat=(t,e)=>{if(t==null)t=10;if(e==null)e=s===10?"s":",";if(typeof e!=="function"){if(!(s%1)&&(e=i(e)).precision==null)e.trim=true;e=o(e)}if(t===Infinity)return e;const r=Math.max(1,s*t/n.ticks().length);return t=>{let n=t/b(Math.round(g(t)));if(n*s<s-.5)n*=s;return n<=r?e(t):""}};n.nice=()=>e(l(e(),{floor:t=>b(Math.floor(g(t))),ceil:t=>b(Math.ceil(g(t)))}));return n}function b(){const r=g(t()).domain([1,10]);r.copy=()=>n(r,b()).base(r.base());e.apply(r,arguments);return r}export{b as l,l as n};
1
+ import{b0 as t,b1 as n,b2 as e,b3 as r,b4 as i,f as o}from"./app-71453429.js";function l(t,n){t=t.slice();var e=0,r=t.length-1,i=t[e],o=t[r],l;if(o<i){l=e,e=r,r=l;l=i,i=o,o=l}t[e]=n.floor(i);t[r]=n.ceil(o);return t}function f(t){return Math.log(t)}function u(t){return Math.exp(t)}function a(t){return-Math.log(-t)}function c(t){return-Math.exp(-t)}function s(t){return isFinite(t)?+("1e"+t):t<0?0:t}function h(t){return t===10?s:t===Math.E?Math.exp:n=>Math.pow(t,n)}function M(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}function p(t){return(n,e)=>-t(-n,e)}function g(t){const n=t(f,u);const e=n.domain;let s=10;let g;let b;function m(){g=M(s),b=h(s);if(e()[0]<0){g=p(g),b=p(b);t(a,c)}else{t(f,u)}return n}n.base=function(t){return arguments.length?(s=+t,m()):s};n.domain=function(t){return arguments.length?(e(t),m()):e()};n.ticks=t=>{const n=e();let i=n[0];let o=n[n.length-1];const l=o<i;if(l)[i,o]=[o,i];let f=g(i);let u=g(o);let a;let c;const h=t==null?10:+t;let M=[];if(!(s%1)&&u-f<h){f=Math.floor(f),u=Math.ceil(u);if(i>0)for(;f<=u;++f){for(a=1;a<s;++a){c=f<0?a/b(-f):a*b(f);if(c<i)continue;if(c>o)break;M.push(c)}}else for(;f<=u;++f){for(a=s-1;a>=1;--a){c=f>0?a/b(-f):a*b(f);if(c<i)continue;if(c>o)break;M.push(c)}}if(M.length*2<h)M=r(i,o,h)}else{M=r(f,u,Math.min(u-f,h)).map(b)}return l?M.reverse():M};n.tickFormat=(t,e)=>{if(t==null)t=10;if(e==null)e=s===10?"s":",";if(typeof e!=="function"){if(!(s%1)&&(e=i(e)).precision==null)e.trim=true;e=o(e)}if(t===Infinity)return e;const r=Math.max(1,s*t/n.ticks().length);return t=>{let n=t/b(Math.round(g(t)));if(n*s<s-.5)n*=s;return n<=r?e(t):""}};n.nice=()=>e(l(e(),{floor:t=>b(Math.floor(g(t))),ceil:t=>b(Math.ceil(g(t)))}));return n}function b(){const r=g(t()).domain([1,10]);r.copy=()=>n(r,b()).base(r.base());e.apply(r,arguments);return r}export{b as l,l as n};
@@ -1 +1 @@
1
- import{M as e,aC as o,S as t,a3 as s}from"./app-f91922b4.js";const n="hg38";const a="GDC";const r=new e({padding:""});async function i(e,i,c){const m=c[n];if(!m)throw n+" missing";const f=i.append("div").style("margin-left","20px");f.append("div").text("To view GDC mutations on a gene, enter one of gene symbol (MYC), alias (c-Myc), GENCODE accession (ENSG00000136997, ENST00000621592), or RefSeq accession (NM_002467).");const d=i.append("div").attr("class","sja_geneSearch4GDCmds3_blockdiv");const p={genome:m,tip:r,row:f,geneOnly:true,callback:u,geneSymbol:e.geneSymbol};const g=o(p);let y;if(typeof e.geneSearch4GDCmds3.postRender=="function"){await e.geneSearch4GDCmds3.postRender({tip:r})}async function u(o=true){if(!g.geneSymbol){if(o)throw"geneSymbol missing"}d.selectAll("*").remove();const r=(await t(`genelookup?deep=1&input=${g.geneSymbol}&genome=${n}`)).gmlst;if(!Array.isArray(r)||r.length==0)throw"gmlst is not non-empty array";y=l(g,r);const i={query:y,genome:m,holder:d,gmmode:r.some((e=>e.coding))?"protein":"exon only",hide_dsHandles:e.hide_dsHandles,tklst:e.tracks?e.tracks:[{type:"mds3",dslabel:a,allow2selectSamples:e.allow2selectSamples}]};if(typeof e.geneSearch4GDCmds3.onloadalltk_always=="function"){i.onloadalltk_always=e.geneSearch4GDCmds3.onloadalltk_always}return await s(i)}const h={update:o=>{Object.assign(e,o);e.isoform=y;u(false)}};return h}function l(e,o){if(e.fromWhat){if(o.some((o=>o.isoform.toUpperCase()==e.fromWhat.toUpperCase()))){return e.fromWhat}if(e.fromWhat.toUpperCase().startsWith("ENSG")){for(const e of o){if(e.isdefault&&e.isoform.startsWith("ENST"))return e.isoform}}}const t=o.find((e=>e.isdefault));if(t)return t.isoform;return o[0].isoform}export{i as init};
1
+ import{M as e,aC as o,S as t,a3 as s}from"./app-71453429.js";const n="hg38";const a="GDC";const r=new e({padding:""});async function i(e,i,c){const m=c[n];if(!m)throw n+" missing";const f=i.append("div").style("margin-left","20px");f.append("div").text("To view GDC mutations on a gene, enter one of gene symbol (MYC), alias (c-Myc), GENCODE accession (ENSG00000136997, ENST00000621592), or RefSeq accession (NM_002467).");const d=i.append("div").attr("class","sja_geneSearch4GDCmds3_blockdiv");const p={genome:m,tip:r,row:f,geneOnly:true,callback:u,geneSymbol:e.geneSymbol};const g=o(p);let y;if(typeof e.geneSearch4GDCmds3.postRender=="function"){await e.geneSearch4GDCmds3.postRender({tip:r})}async function u(o=true){if(!g.geneSymbol){if(o)throw"geneSymbol missing"}d.selectAll("*").remove();const r=(await t(`genelookup?deep=1&input=${g.geneSymbol}&genome=${n}`)).gmlst;if(!Array.isArray(r)||r.length==0)throw"gmlst is not non-empty array";y=l(g,r);const i={query:y,genome:m,holder:d,gmmode:r.some((e=>e.coding))?"protein":"exon only",hide_dsHandles:e.hide_dsHandles,tklst:e.tracks?e.tracks:[{type:"mds3",dslabel:a,allow2selectSamples:e.allow2selectSamples}]};if(typeof e.geneSearch4GDCmds3.onloadalltk_always=="function"){i.onloadalltk_always=e.geneSearch4GDCmds3.onloadalltk_always}return await s(i)}const h={update:o=>{Object.assign(e,o);e.isoform=y;u(false)}};return h}function l(e,o){if(e.fromWhat){if(o.some((o=>o.isoform.toUpperCase()==e.fromWhat.toUpperCase()))){return e.fromWhat}if(e.fromWhat.toUpperCase().startsWith("ENSG")){for(const e of o){if(e.isdefault&&e.isoform.startsWith("ENST"))return e.isoform}}}const t=o.find((e=>e.isdefault));if(t)return t.isoform;return o[0].isoform}export{i as init};
@@ -1 +1 @@
1
- import{M as e,ac as t,S as l}from"./app-f91922b4.js";import{r as c}from"./table-d6c411fd.js";import{m as n}from"./radiobutton-09bff425.js";function o(e){if(e>1e9)return(e/1e9).toFixed(2)+" GB";if(e>1e6)return(e/1e6).toFixed(2)+" MB";if(e>1e3)return(e/1e3).toFixed(2)+" KB";return e+" Bytes"}const u=new e;const r=[{label:"Case"},{label:"Project"},{label:"Samples"},{label:"File Size"}];const s=[{column:"Hugo_Symbol",selected:true},{column:"Entrez_Gene_Id",selected:true},{column:"Center",selected:true},{column:"NCBI_Build",selected:true},{column:"Chromosome",selected:true},{column:"Start_Position",selected:true},{column:"End_Position",selected:true},{column:"Strand",selected:true},{column:"Variant_Classification",selected:true},{column:"Variant_Type",selected:true},{column:"Reference_Allele",selected:true},{column:"Tumor_Seq_Allele1",selected:true},{column:"Tumor_Seq_Allele2",selected:true},{column:"dbSNP_RS",selected:true},{column:"dbSNP_Val_Status",selected:true},{column:"Tumor_Sample_Barcode",selected:true},{column:"Matched_Norm_Sample_Barcode",selected:true},{column:"Match_Norm_Seq_Allele1",selected:true},{column:"Match_Norm_Seq_Allele2",selected:true},{column:"Tumor_Validation_Allele1",selected:true},{column:"Tumor_Validation_Allele2",selected:true},{column:"Match_Norm_Validation_Allele1",selected:true},{column:"Match_Norm_Validation_Allele2",selected:true},{column:"Verification_Status",selected:true},{column:"Validation_Status",selected:true},{column:"Mutation_Status",selected:true},{column:"Sequencing_Phase",selected:true},{column:"Sequence_Source",selected:true},{column:"Validation_Method",selected:true},{column:"Score",selected:true},{column:"BAM_File",selected:true},{column:"Sequencer",selected:true},{column:"Tumor_Sample_UUID",selected:true},{column:"Matched_Norm_Sample_UUID",selected:true},{column:"HGVSc",selected:true},{column:"HGVSp",selected:true},{column:"HGVSp_Short",selected:true},{column:"Transcript_ID",selected:true},{column:"Exon_Number",selected:true},{column:"t_depth",selected:true},{column:"t_ref_count",selected:true},{column:"t_alt_count",selected:true},{column:"n_depth",selected:true},{column:"n_ref_count",selected:true},{column:"n_alt_count",selected:true},{column:"all_effects",selected:true},{column:"Allele",selected:true},{column:"Gene",selected:true},{column:"Feature",selected:true},{column:"Feature_type",selected:true},{column:"One_Consequence",selected:true},{column:"Consequence",selected:true},{column:"cDNA_position",selected:true},{column:"CDS_position",selected:true},{column:"Protein_position",selected:true},{column:"Amino_acids",selected:true},{column:"Codons",selected:true},{column:"Existing_variation",selected:true},{column:"DISTANCE",selected:true},{column:"TRANSCRIPT_STRAND",selected:true},{column:"SYMBOL",selected:true},{column:"SYMBOL_SOURCE",selected:true},{column:"HGNC_ID",selected:true},{column:"BIOTYPE",selected:true},{column:"CANONICAL",selected:true},{column:"CCDS",selected:true},{column:"ENSP",selected:true},{column:"SWISSPROT",selected:true},{column:"TREMBL",selected:true},{column:"UNIPARC",selected:true},{column:"UNIPROT_ISOFORM",selected:true},{column:"RefSeq",selected:true},{column:"MANE",selected:true},{column:"APPRIS",selected:true},{column:"FLAGS",selected:true},{column:"SIFT",selected:true},{column:"PolyPhen",selected:true},{column:"EXON",selected:true},{column:"INTRON",selected:true},{column:"DOMAINS",selected:true},{column:"1000G_AF",selected:true},{column:"1000G_AFR_AF",selected:true},{column:"1000G_AMR_AF",selected:true},{column:"1000G_EAS_AF",selected:true},{column:"1000G_EUR_AF",selected:true},{column:"1000G_SAS_AF",selected:true},{column:"ESP_AA_AF",selected:true},{column:"ESP_EA_AF",selected:true},{column:"gnomAD_AF",selected:true},{column:"gnomAD_AFR_AF",selected:true},{column:"gnomAD_AMR_AF",selected:true},{column:"gnomAD_ASJ_AF",selected:true},{column:"gnomAD_EAS_AF",selected:true},{column:"gnomAD_FIN_AF",selected:true},{column:"gnomAD_NFE_AF",selected:true},{column:"gnomAD_OTH_AF",selected:true},{column:"gnomAD_SAS_AF",selected:true},{column:"MAX_AF",selected:true},{column:"MAX_AF_POPS",selected:true},{column:"gnomAD_non_cancer_AF",selected:true},{column:"gnomAD_non_cancer_AFR_AF",selected:true},{column:"gnomAD_non_cancer_AMI_AF",selected:true},{column:"gnomAD_non_cancer_AMR_AF",selected:true},{column:"gnomAD_non_cancer_ASJ_AF",selected:true},{column:"gnomAD_non_cancer_EAS_AF",selected:true},{column:"gnomAD_non_cancer_FIN_AF",selected:true},{column:"gnomAD_non_cancer_MID_AF",selected:true},{column:"gnomAD_non_cancer_NFE_AF",selected:true},{column:"gnomAD_non_cancer_OTH_AF",selected:true},{column:"gnomAD_non_cancer_SAS_AF",selected:true},{column:"gnomAD_non_cancer_MAX_AF_adj",selected:true},{column:"gnomAD_non_cancer_MAX_AF_POPS_adj",selected:true},{column:"CLIN_SIG",selected:true},{column:"SOMATIC",selected:true},{column:"PUBMED",selected:true},{column:"TRANSCRIPTION_FACTORS",selected:true},{column:"MOTIF_NAME",selected:true},{column:"MOTIF_POS",selected:true},{column:"HIGH_INF_POS",selected:true},{column:"MOTIF_SCORE_CHANGE",selected:true},{column:"miRNA",selected:true},{column:"IMPACT",selected:true},{column:"PICK",selected:true},{column:"VARIANT_CLASS",selected:true},{column:"TSL",selected:true},{column:"HGVS_OFFSET",selected:true},{column:"PHENO",selected:true},{column:"GENE_PHENO",selected:true},{column:"CONTEXT",selected:true},{column:"case_id",selected:true},{column:"GDC_FILTER",selected:true},{column:"COSMIC",selected:true},{column:"hotspot",selected:true},{column:"tumor_bam_uuid",selected:true},{column:"normal_bam_uuid",selected:true},{column:"RNA_Support",selected:true},{column:"RNA_depth",selected:true},{column:"RNA_ref_count",selected:true},{column:"RNA_alt_count",selected:true},{column:"callers",selected:true}];async function d({holder:e,filter0:l,callbacks:c,debugmode:n=false}){try{{const e=new Set;for(const t of s){if(!t.column)throw".column missing from an element";if(e.has(t.column))throw"duplicate column: "+t.column;e.add(t.column)}}o({filter0:l})}catch(l){console.log(l);t(e,l.message||l)}async function o({filter0:t}){e.selectAll("*").remove();const l={errDiv:e.append("div"),controlDiv:e.append("div"),tableDiv:e.append("div"),opts:{filter0:t,experimentalStrategy:"WXS"}};a(l);await m(l);if(typeof c?.postRender=="function"){c.postRender(u)}}const u={update:o};return u}function a(e){const t=e.controlDiv.append("table");{const l=t.append("tr");l.append("td").style("opacity",.5).text("Access");l.append("td").text("Open")}{const o=t.append("tr");o.append("td").style("opacity",.5).text("Workflow Type");o.append("td").text("Aliquot Ensemble Somatic Variant Merging and Masking")}{const r=t.append("tr");r.append("td").style("opacity",.5).text("Experimental Strategy");const d=r.append("td");n({holder:d,options:[{label:"WXS",value:"WXS",checked:e.opts.experimentalStrategy=="WXS"},{label:"Targeted Sequencing",value:"Targeted Sequencing",checked:e.opts.experimentalStrategy=="Targeted Sequencing"}],styles:{display:"inline"},callback:async t=>{e.opts.experimentalStrategy=t;await m(e)}})}{const a=t.append("tr");a.append("td").style("opacity",.5).text("Output Columns");const _=a.append("td");const i=_.append("span").attr("class","sja_clbtext").on("click",(e=>{const t=[],l=[];for(const[e,c]of s.entries()){t.push([{value:c.column}]);if(c.selected)l.push(e)}c({div:u.clear().showunder(e.target).d,rows:t,columns:[{label:"Column Name"}],selectedRows:l,noButtonCallback:(e,t)=>{s[e].selected=t.checked;p()}})}));p();function p(){i.text(`${s.reduce(((e,t)=>e+(t.selected?1:0)),0)} of ${s.length} columns selected, click to change`)}}}async function m(e){e.tableDiv.selectAll("*").remove();const n=e.tableDiv.append("div").text("Loading...");const u={experimentalStrategy:e.opts.experimentalStrategy};if(e.opts.filter0)u.filter0=e.opts.filter0;const d=await l("gdc/maf",{body:u});if(d.error)throw d.error;n.remove();{const t=e.tableDiv.append("div").style("margin","20px");if(d.filesTotal>d.files.length){t.append("div").text(`Showing first ${d.files.length} files out of ${d.filesTotal} total.`)}else{t.append("div").text(`Showing ${d.files.length} files.`)}}const a=[];for(const e of d.files){const t=[{html:`<a href=https://portal.gdc.cancer.gov/cases/${e.case_uuid} target=_blank>${e.case_submitter_id}</a>`},{value:e.project_id},{html:e.sample_types.map((e=>'<span class="sja_mcdot" style="padding:1px 8px;background:#ddd;color:black;white-space:nowrap">'+e+"</span>")).join(" ")},{value:o(e.file_size),url:"https://portal.gdc.cancer.gov/files/"+e.id}];a.push(t)}c({rows:a,columns:r,resize:true,div:e.tableDiv.append("div"),selectAll:true,dataTestId:"sja_mafFileTable",buttons:[{text:"Aggregate selected MAF files and download",onChange:m,callback:_}]});function m(e,t){let l=0;for(const t of e)l+=d.files[t].file_size;if(l==0){t.innerHTML="No file selected";t.disabled=true;return}t.disabled=false;t.innerHTML=l<d.maxTotalSizeCompressed?`Download ${o(l)} compressed MAF data`:`Download ${o(d.maxTotalSizeCompressed)} compressed MAF data (${o(l)} selected)`}async function _(c,n){const o=s.filter((e=>e.selected)).map((e=>e.column));if(o.length==0){window.alert("No output columns selected.");return}const u=[];for(const e of c){u.push(d.files[e].id)}if(u.length==0)return;const r=n.innerHTML;n.innerHTML="Loading... Please wait";n.disabled=true;let a;try{a=await l("gdc/mafBuild",{body:{fileIdLst:u,columns:o}});if(a.error)throw a.error}catch(l){t(e.errDiv,l);n.innerHTML=r;n.disabled=false;return}n.innerHTML=r;n.disabled=false;const m=document.createElement("a");m.href=URL.createObjectURL(a);m.download=`cohortMAF.${(new Date).toISOString().split("T")[0]}.gz`;m.style.display="none";document.body.appendChild(m);m.click();document.body.removeChild(m)}}export{d as gdcMAFui};
1
+ import{M as e,ac as t,S as l}from"./app-71453429.js";import{r as c}from"./table-1dae543a.js";import{m as n}from"./radiobutton-09bff425.js";function o(e){if(e>1e9)return(e/1e9).toFixed(2)+" GB";if(e>1e6)return(e/1e6).toFixed(2)+" MB";if(e>1e3)return(e/1e3).toFixed(2)+" KB";return e+" Bytes"}const u=new e;const r=[{label:"Case"},{label:"Project"},{label:"Samples"},{label:"File Size"}];const s=[{column:"Hugo_Symbol",selected:true},{column:"Entrez_Gene_Id",selected:true},{column:"Center",selected:true},{column:"NCBI_Build",selected:true},{column:"Chromosome",selected:true},{column:"Start_Position",selected:true},{column:"End_Position",selected:true},{column:"Strand",selected:true},{column:"Variant_Classification",selected:true},{column:"Variant_Type",selected:true},{column:"Reference_Allele",selected:true},{column:"Tumor_Seq_Allele1",selected:true},{column:"Tumor_Seq_Allele2",selected:true},{column:"dbSNP_RS",selected:true},{column:"dbSNP_Val_Status",selected:true},{column:"Tumor_Sample_Barcode",selected:true},{column:"Matched_Norm_Sample_Barcode",selected:true},{column:"Match_Norm_Seq_Allele1",selected:true},{column:"Match_Norm_Seq_Allele2",selected:true},{column:"Tumor_Validation_Allele1",selected:true},{column:"Tumor_Validation_Allele2",selected:true},{column:"Match_Norm_Validation_Allele1",selected:true},{column:"Match_Norm_Validation_Allele2",selected:true},{column:"Verification_Status",selected:true},{column:"Validation_Status",selected:true},{column:"Mutation_Status",selected:true},{column:"Sequencing_Phase",selected:true},{column:"Sequence_Source",selected:true},{column:"Validation_Method",selected:true},{column:"Score",selected:true},{column:"BAM_File",selected:true},{column:"Sequencer",selected:true},{column:"Tumor_Sample_UUID",selected:true},{column:"Matched_Norm_Sample_UUID",selected:true},{column:"HGVSc",selected:true},{column:"HGVSp",selected:true},{column:"HGVSp_Short",selected:true},{column:"Transcript_ID",selected:true},{column:"Exon_Number",selected:true},{column:"t_depth",selected:true},{column:"t_ref_count",selected:true},{column:"t_alt_count",selected:true},{column:"n_depth",selected:true},{column:"n_ref_count",selected:true},{column:"n_alt_count",selected:true},{column:"all_effects",selected:true},{column:"Allele",selected:true},{column:"Gene",selected:true},{column:"Feature",selected:true},{column:"Feature_type",selected:true},{column:"One_Consequence",selected:true},{column:"Consequence",selected:true},{column:"cDNA_position",selected:true},{column:"CDS_position",selected:true},{column:"Protein_position",selected:true},{column:"Amino_acids",selected:true},{column:"Codons",selected:true},{column:"Existing_variation",selected:true},{column:"DISTANCE",selected:true},{column:"TRANSCRIPT_STRAND",selected:true},{column:"SYMBOL",selected:true},{column:"SYMBOL_SOURCE",selected:true},{column:"HGNC_ID",selected:true},{column:"BIOTYPE",selected:true},{column:"CANONICAL",selected:true},{column:"CCDS",selected:true},{column:"ENSP",selected:true},{column:"SWISSPROT",selected:true},{column:"TREMBL",selected:true},{column:"UNIPARC",selected:true},{column:"UNIPROT_ISOFORM",selected:true},{column:"RefSeq",selected:true},{column:"MANE",selected:true},{column:"APPRIS",selected:true},{column:"FLAGS",selected:true},{column:"SIFT",selected:true},{column:"PolyPhen",selected:true},{column:"EXON",selected:true},{column:"INTRON",selected:true},{column:"DOMAINS",selected:true},{column:"1000G_AF",selected:true},{column:"1000G_AFR_AF",selected:true},{column:"1000G_AMR_AF",selected:true},{column:"1000G_EAS_AF",selected:true},{column:"1000G_EUR_AF",selected:true},{column:"1000G_SAS_AF",selected:true},{column:"ESP_AA_AF",selected:true},{column:"ESP_EA_AF",selected:true},{column:"gnomAD_AF",selected:true},{column:"gnomAD_AFR_AF",selected:true},{column:"gnomAD_AMR_AF",selected:true},{column:"gnomAD_ASJ_AF",selected:true},{column:"gnomAD_EAS_AF",selected:true},{column:"gnomAD_FIN_AF",selected:true},{column:"gnomAD_NFE_AF",selected:true},{column:"gnomAD_OTH_AF",selected:true},{column:"gnomAD_SAS_AF",selected:true},{column:"MAX_AF",selected:true},{column:"MAX_AF_POPS",selected:true},{column:"gnomAD_non_cancer_AF",selected:true},{column:"gnomAD_non_cancer_AFR_AF",selected:true},{column:"gnomAD_non_cancer_AMI_AF",selected:true},{column:"gnomAD_non_cancer_AMR_AF",selected:true},{column:"gnomAD_non_cancer_ASJ_AF",selected:true},{column:"gnomAD_non_cancer_EAS_AF",selected:true},{column:"gnomAD_non_cancer_FIN_AF",selected:true},{column:"gnomAD_non_cancer_MID_AF",selected:true},{column:"gnomAD_non_cancer_NFE_AF",selected:true},{column:"gnomAD_non_cancer_OTH_AF",selected:true},{column:"gnomAD_non_cancer_SAS_AF",selected:true},{column:"gnomAD_non_cancer_MAX_AF_adj",selected:true},{column:"gnomAD_non_cancer_MAX_AF_POPS_adj",selected:true},{column:"CLIN_SIG",selected:true},{column:"SOMATIC",selected:true},{column:"PUBMED",selected:true},{column:"TRANSCRIPTION_FACTORS",selected:true},{column:"MOTIF_NAME",selected:true},{column:"MOTIF_POS",selected:true},{column:"HIGH_INF_POS",selected:true},{column:"MOTIF_SCORE_CHANGE",selected:true},{column:"miRNA",selected:true},{column:"IMPACT",selected:true},{column:"PICK",selected:true},{column:"VARIANT_CLASS",selected:true},{column:"TSL",selected:true},{column:"HGVS_OFFSET",selected:true},{column:"PHENO",selected:true},{column:"GENE_PHENO",selected:true},{column:"CONTEXT",selected:true},{column:"case_id",selected:true},{column:"GDC_FILTER",selected:true},{column:"COSMIC",selected:true},{column:"hotspot",selected:true},{column:"tumor_bam_uuid",selected:true},{column:"normal_bam_uuid",selected:true},{column:"RNA_Support",selected:true},{column:"RNA_depth",selected:true},{column:"RNA_ref_count",selected:true},{column:"RNA_alt_count",selected:true},{column:"callers",selected:true}];async function d({holder:e,filter0:l,callbacks:c,debugmode:n=false}){try{{const e=new Set;for(const t of s){if(!t.column)throw".column missing from an element";if(e.has(t.column))throw"duplicate column: "+t.column;e.add(t.column)}}o({filter0:l})}catch(l){console.log(l);t(e,l.message||l)}async function o({filter0:t}){e.selectAll("*").remove();const l={errDiv:e.append("div"),controlDiv:e.append("div"),tableDiv:e.append("div"),opts:{filter0:t,experimentalStrategy:"WXS"}};a(l);await m(l);if(typeof c?.postRender=="function"){c.postRender(u)}}const u={update:o};return u}function a(e){const t=e.controlDiv.append("table");{const l=t.append("tr");l.append("td").style("opacity",.5).text("Access");l.append("td").text("Open")}{const o=t.append("tr");o.append("td").style("opacity",.5).text("Workflow Type");o.append("td").text("Aliquot Ensemble Somatic Variant Merging and Masking")}{const r=t.append("tr");r.append("td").style("opacity",.5).text("Experimental Strategy");const d=r.append("td");n({holder:d,options:[{label:"WXS",value:"WXS",checked:e.opts.experimentalStrategy=="WXS"},{label:"Targeted Sequencing",value:"Targeted Sequencing",checked:e.opts.experimentalStrategy=="Targeted Sequencing"}],styles:{display:"inline"},callback:async t=>{e.opts.experimentalStrategy=t;await m(e)}})}{const a=t.append("tr");a.append("td").style("opacity",.5).text("Output Columns");const _=a.append("td");const i=_.append("span").attr("class","sja_clbtext").on("click",(e=>{const t=[],l=[];for(const[e,c]of s.entries()){t.push([{value:c.column}]);if(c.selected)l.push(e)}c({div:u.clear().showunder(e.target).d,rows:t,columns:[{label:"Column Name"}],selectedRows:l,noButtonCallback:(e,t)=>{s[e].selected=t.checked;p()}})}));p();function p(){i.text(`${s.reduce(((e,t)=>e+(t.selected?1:0)),0)} of ${s.length} columns selected, click to change`)}}}async function m(e){e.tableDiv.selectAll("*").remove();const n=e.tableDiv.append("div").text("Loading...");const u={experimentalStrategy:e.opts.experimentalStrategy};if(e.opts.filter0)u.filter0=e.opts.filter0;const d=await l("gdc/maf",{body:u});if(d.error)throw d.error;n.remove();{const t=e.tableDiv.append("div").style("margin","20px");if(d.filesTotal>d.files.length){t.append("div").text(`Showing first ${d.files.length} files out of ${d.filesTotal} total.`)}else{t.append("div").text(`Showing ${d.files.length} files.`)}}const a=[];for(const e of d.files){const t=[{html:`<a href=https://portal.gdc.cancer.gov/cases/${e.case_uuid} target=_blank>${e.case_submitter_id}</a>`},{value:e.project_id},{html:e.sample_types.map((e=>'<span class="sja_mcdot" style="padding:1px 8px;background:#ddd;color:black;white-space:nowrap">'+e+"</span>")).join(" ")},{value:o(e.file_size),url:"https://portal.gdc.cancer.gov/files/"+e.id}];a.push(t)}c({rows:a,columns:r,resize:true,div:e.tableDiv.append("div"),selectAll:true,dataTestId:"sja_mafFileTable",buttons:[{text:"Aggregate selected MAF files and download",onChange:m,callback:_}]});function m(e,t){let l=0;for(const t of e)l+=d.files[t].file_size;if(l==0){t.innerHTML="No file selected";t.disabled=true;return}t.disabled=false;t.innerHTML=l<d.maxTotalSizeCompressed?`Download ${o(l)} compressed MAF data`:`Download ${o(d.maxTotalSizeCompressed)} compressed MAF data (${o(l)} selected)`}async function _(c,n){const o=s.filter((e=>e.selected)).map((e=>e.column));if(o.length==0){window.alert("No output columns selected.");return}const u=[];for(const e of c){u.push(d.files[e].id)}if(u.length==0)return;const r=n.innerHTML;n.innerHTML="Loading... Please wait";n.disabled=true;let a;try{a=await l("gdc/mafBuild",{body:{fileIdLst:u,columns:o}});if(a.error)throw a.error}catch(l){t(e.errDiv,l);n.innerHTML=r;n.disabled=false;return}n.innerHTML=r;n.disabled=false;const m=document.createElement("a");m.href=URL.createObjectURL(a);m.download=`cohortMAF.${(new Date).toISOString().split("T")[0]}.gz`;m.style.display="none";document.body.appendChild(m);m.click();document.body.removeChild(m)}}export{d as gdcMAFui};
@@ -1 +1 @@
1
- import{bs as t,bt as e,b2 as n,bu as r,b1 as a,bq as o,br as i,M as u,bl as c,h as s,a0 as l,am as f,an as p,q as d,l as g,_ as h,a as m,f as v,aU as y}from"./app-f91922b4.js";import{n as x,l as b}from"./log-4d74231e.js";import{c as M,b as T}from"./axis-6cb4f314.js";var w=new Date,C=new Date;function U(t,e,n,r){function a(e){return t(e=arguments.length===0?new Date:new Date(+e)),e}a.floor=function(e){return t(e=new Date(+e)),e};a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n};a.round=function(t){var e=a(t),n=a.ceil(t);return t-e<n-t?e:n};a.offset=function(t,n){return e(t=new Date(+t),n==null?1:Math.floor(n)),t};a.range=function(n,r,o){var i=[],u;n=a.ceil(n);o=o==null?1:Math.floor(o);if(!(n<r)||!(o>0))return i;do{i.push(u=new Date(+n)),e(n,o),t(n)}while(u<n&&n<r);return i};a.filter=function(n){return U((function(e){if(e>=e)while(t(e),!n(e))e.setTime(e-1)}),(function(t,r){if(t>=t){if(r<0)while(++r<=0){while(e(t,-1),!n(t)){}}else while(--r>=0){while(e(t,+1),!n(t)){}}}}))};if(n){a.count=function(e,r){w.setTime(+e),C.setTime(+r);t(w),t(C);return Math.floor(n(w,C))};a.every=function(t){t=Math.floor(t);return!isFinite(t)||!(t>0)?null:!(t>1)?a:a.filter(r?function(e){return r(e)%t===0}:function(e){return a.count(0,e)%t===0})}}return a}var k=U((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));k.every=function(t){t=Math.floor(t);if(!isFinite(t)||!(t>0))return null;if(!(t>1))return k;return U((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t}))};var D=k;k.range;const F=1e3;const Y=F*60;const A=Y*60;const H=A*24;const S=H*7;const L=H*30;const _=H*365;var z=U((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*F)}),(function(t,e){return(e-t)/F}),(function(t){return t.getUTCSeconds()}));var j=z;z.range;var I=U((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getMinutes()}));var N=I;I.range;var V=U((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F-t.getMinutes()*Y)}),(function(t,e){t.setTime(+t+e*A)}),(function(t,e){return(e-t)/A}),(function(t){return t.getHours()}));var W=V;V.range;var Z=U((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/H),(t=>t.getDate()-1));var q=Z;Z.range;function X(t){return U((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7);e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e*7)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/S}))}var O=X(0);var J=X(1);var R=X(2);var E=X(3);var G=X(4);var Q=X(5);var P=X(6);O.range;J.range;R.range;E.range;G.range;Q.range;P.range;var B=U((function(t){t.setDate(1);t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12}),(function(t){return t.getMonth()}));var $=B;B.range;var K=U((function(t){t.setMonth(0,1);t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));K.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:U((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t);e.setMonth(0,1);e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)}))};var tt=K;K.range;var et=U((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getUTCMinutes()}));var nt=et;et.range;var rt=U((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*A)}),(function(t,e){return(e-t)/A}),(function(t){return t.getUTCHours()}));var at=rt;rt.range;var ot=U((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/H}),(function(t){return t.getUTCDate()-1}));var it=ot;ot.range;function ut(t){return U((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7);e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e*7)}),(function(t,e){return(e-t)/S}))}var ct=ut(0);var st=ut(1);var lt=ut(2);var ft=ut(3);var pt=ut(4);var dt=ut(5);var gt=ut(6);ct.range;st.range;lt.range;ft.range;pt.range;dt.range;gt.range;var ht=U((function(t){t.setUTCDate(1);t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12}),(function(t){return t.getUTCMonth()}));var mt=ht;ht.range;var vt=U((function(t){t.setUTCMonth(0,1);t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));vt.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:U((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t);e.setUTCMonth(0,1);e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)}))};var yt=vt;vt.range;function xt(n,r,a,o,i,u){const c=[[j,1,F],[j,5,5*F],[j,15,15*F],[j,30,30*F],[u,1,Y],[u,5,5*Y],[u,15,15*Y],[u,30,30*Y],[i,1,A],[i,3,3*A],[i,6,6*A],[i,12,12*A],[o,1,H],[o,2,2*H],[a,1,S],[r,1,L],[r,3,3*L],[n,1,_]];function s(t,e,n){const r=e<t;if(r)[t,e]=[e,t];const a=n&&typeof n.range==="function"?n:l(t,e,n);const o=a?a.range(t,+e+1):[];return r?o.reverse():o}function l(r,a,o){const i=Math.abs(a-r)/o;const u=t((([,,t])=>t)).right(c,i);if(u===c.length)return n.every(e(r/_,a/_,o));if(u===0)return D.every(Math.max(e(r,a,o),1));const[s,l]=c[i/c[u-1][2]<c[u][2]/i?u-1:u];return s.every(l)}return[s,l]}xt(yt,mt,ct,it,at,nt);const[bt,Mt]=xt(tt,$,O,q,W,N);function Tt(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);e.setFullYear(t.y);return e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function wt(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));e.setUTCFullYear(t.y);return e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ct(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Ut(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,o=t.days,i=t.shortDays,u=t.months,c=t.shortMonths;var s=St(a),l=Lt(a),f=St(o),p=Lt(o),d=St(i),g=Lt(i),h=St(u),m=Lt(u),v=St(c),y=Lt(c);var x={a:L,A:_,b:z,B:j,c:null,d:te,e:te,f:oe,g:me,G:ye,H:ee,I:ne,j:re,L:ae,m:ie,M:ue,p:I,q:N,Q:Ze,s:qe,S:ce,u:se,U:le,V:pe,w:de,W:ge,x:null,X:null,y:he,Y:ve,Z:xe,"%":We};var b={a:V,A:W,b:Z,B:X,c:null,d:be,e:be,f:Ue,g:je,G:Ne,H:Me,I:Te,j:we,L:Ce,m:ke,M:De,p:O,q:R,Q:Ze,s:qe,S:Fe,u:Ye,U:Ae,V:Se,w:Le,W:_e,x:null,X:null,y:ze,Y:Ie,Z:Ve,"%":We};var M={a:k,A:D,b:F,B:Y,c:A,d:Ot,e:Ot,f:Pt,g:Wt,G:Vt,H:Rt,I:Rt,j:Jt,L:Qt,m:Xt,M:Et,p:U,q:qt,Q:$t,s:Kt,S:Gt,u:zt,U:jt,V:It,w:_t,W:Nt,x:H,X:S,y:Wt,Y:Vt,Z:Zt,"%":Bt};x.x=T(n,x);x.X=T(r,x);x.c=T(e,x);b.x=T(n,b);b.X=T(r,b);b.c=T(e,b);function T(t,e){return function(n){var r=[],a=-1,o=0,i=t.length,u,c,s;if(!(n instanceof Date))n=new Date(+n);while(++a<i){if(t.charCodeAt(a)===37){r.push(t.slice(o,a));if((c=kt[u=t.charAt(++a)])!=null)u=t.charAt(++a);else c=u==="e"?" ":"0";if(s=e[u])u=s(n,c);r.push(u);o=a+1}}r.push(t.slice(o,a));return r.join("")}}function w(t,e){return function(n){var r=Ct(1900,undefined,1),a=C(r,t,n+="",0),o,i;if(a!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(r.s*1e3+("L"in r?r.L:0));if(e&&!("Z"in r))r.Z=0;if("p"in r)r.H=r.H%12+r.p*12;if(r.m===undefined)r.m="q"in r?r.q:0;if("V"in r){if(r.V<1||r.V>53)return null;if(!("w"in r))r.w=1;if("Z"in r){o=wt(Ct(r.y,0,1)),i=o.getUTCDay();o=i>4||i===0?st.ceil(o):st(o);o=it.offset(o,(r.V-1)*7);r.y=o.getUTCFullYear();r.m=o.getUTCMonth();r.d=o.getUTCDate()+(r.w+6)%7}else{o=Tt(Ct(r.y,0,1)),i=o.getDay();o=i>4||i===0?J.ceil(o):J(o);o=q.offset(o,(r.V-1)*7);r.y=o.getFullYear();r.m=o.getMonth();r.d=o.getDate()+(r.w+6)%7}}else if("W"in r||"U"in r){if(!("w"in r))r.w="u"in r?r.u%7:"W"in r?1:0;i="Z"in r?wt(Ct(r.y,0,1)).getUTCDay():Tt(Ct(r.y,0,1)).getDay();r.m=0;r.d="W"in r?(r.w+6)%7+r.W*7-(i+5)%7:r.w+r.U*7-(i+6)%7}if("Z"in r){r.H+=r.Z/100|0;r.M+=r.Z%100;return wt(r)}return Tt(r)}}function C(t,e,n,r){var a=0,o=e.length,i=n.length,u,c;while(a<o){if(r>=i)return-1;u=e.charCodeAt(a++);if(u===37){u=e.charAt(a++);c=M[u in kt?e.charAt(a++):u];if(!c||(r=c(t,n,r))<0)return-1}else if(u!=n.charCodeAt(r++)){return-1}}return r}function U(t,e,n){var r=s.exec(e.slice(n));return r?(t.p=l.get(r[0].toLowerCase()),n+r[0].length):-1}function k(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=g.get(r[0].toLowerCase()),n+r[0].length):-1}function D(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=p.get(r[0].toLowerCase()),n+r[0].length):-1}function F(t,e,n){var r=v.exec(e.slice(n));return r?(t.m=y.get(r[0].toLowerCase()),n+r[0].length):-1}function Y(t,e,n){var r=h.exec(e.slice(n));return r?(t.m=m.get(r[0].toLowerCase()),n+r[0].length):-1}function A(t,n,r){return C(t,e,n,r)}function H(t,e,r){return C(t,n,e,r)}function S(t,e,n){return C(t,r,e,n)}function L(t){return i[t.getDay()]}function _(t){return o[t.getDay()]}function z(t){return c[t.getMonth()]}function j(t){return u[t.getMonth()]}function I(t){return a[+(t.getHours()>=12)]}function N(t){return 1+~~(t.getMonth()/3)}function V(t){return i[t.getUTCDay()]}function W(t){return o[t.getUTCDay()]}function Z(t){return c[t.getUTCMonth()]}function X(t){return u[t.getUTCMonth()]}function O(t){return a[+(t.getUTCHours()>=12)]}function R(t){return 1+~~(t.getUTCMonth()/3)}return{format:function(t){var e=T(t+="",x);e.toString=function(){return t};return e},parse:function(t){var e=w(t+="",false);e.toString=function(){return t};return e},utcFormat:function(t){var e=T(t+="",b);e.toString=function(){return t};return e},utcParse:function(t){var e=w(t+="",true);e.toString=function(){return t};return e}}}var kt={"-":"",_:" ",0:"0"},Dt=/^\s*\d+/,Ft=/^%/,Yt=/[\\^$*+?|[\]().{}]/g;function At(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",o=a.length;return r+(o<n?new Array(n-o+1).join(e)+a:a)}function Ht(t){return t.replace(Yt,"\\$&")}function St(t){return new RegExp("^(?:"+t.map(Ht).join("|")+")","i")}function Lt(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function _t(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function zt(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function jt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function It(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Nt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Vt(t,e,n){var r=Dt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Wt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zt(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qt(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Xt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ot(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Jt(t,e,n){var r=Dt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Rt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Et(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Gt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Qt(t,e,n){var r=Dt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Pt(t,e,n){var r=Dt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Bt(t,e,n){var r=Ft.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function $t(t,e,n){var r=Dt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Kt(t,e,n){var r=Dt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function te(t,e){return At(t.getDate(),e,2)}function ee(t,e){return At(t.getHours(),e,2)}function ne(t,e){return At(t.getHours()%12||12,e,2)}function re(t,e){return At(1+q.count(tt(t),t),e,3)}function ae(t,e){return At(t.getMilliseconds(),e,3)}function oe(t,e){return ae(t,e)+"000"}function ie(t,e){return At(t.getMonth()+1,e,2)}function ue(t,e){return At(t.getMinutes(),e,2)}function ce(t,e){return At(t.getSeconds(),e,2)}function se(t){var e=t.getDay();return e===0?7:e}function le(t,e){return At(O.count(tt(t)-1,t),e,2)}function fe(t){var e=t.getDay();return e>=4||e===0?G(t):G.ceil(t)}function pe(t,e){t=fe(t);return At(G.count(tt(t),t)+(tt(t).getDay()===4),e,2)}function de(t){return t.getDay()}function ge(t,e){return At(J.count(tt(t)-1,t),e,2)}function he(t,e){return At(t.getFullYear()%100,e,2)}function me(t,e){t=fe(t);return At(t.getFullYear()%100,e,2)}function ve(t,e){return At(t.getFullYear()%1e4,e,4)}function ye(t,e){var n=t.getDay();t=n>=4||n===0?G(t):G.ceil(t);return At(t.getFullYear()%1e4,e,4)}function xe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+At(e/60|0,"0",2)+At(e%60,"0",2)}function be(t,e){return At(t.getUTCDate(),e,2)}function Me(t,e){return At(t.getUTCHours(),e,2)}function Te(t,e){return At(t.getUTCHours()%12||12,e,2)}function we(t,e){return At(1+it.count(yt(t),t),e,3)}function Ce(t,e){return At(t.getUTCMilliseconds(),e,3)}function Ue(t,e){return Ce(t,e)+"000"}function ke(t,e){return At(t.getUTCMonth()+1,e,2)}function De(t,e){return At(t.getUTCMinutes(),e,2)}function Fe(t,e){return At(t.getUTCSeconds(),e,2)}function Ye(t){var e=t.getUTCDay();return e===0?7:e}function Ae(t,e){return At(ct.count(yt(t)-1,t),e,2)}function He(t){var e=t.getUTCDay();return e>=4||e===0?pt(t):pt.ceil(t)}function Se(t,e){t=He(t);return At(pt.count(yt(t),t)+(yt(t).getUTCDay()===4),e,2)}function Le(t){return t.getUTCDay()}function _e(t,e){return At(st.count(yt(t)-1,t),e,2)}function ze(t,e){return At(t.getUTCFullYear()%100,e,2)}function je(t,e){t=He(t);return At(t.getUTCFullYear()%100,e,2)}function Ie(t,e){return At(t.getUTCFullYear()%1e4,e,4)}function Ne(t,e){var n=t.getUTCDay();t=n>=4||n===0?pt(t):pt.ceil(t);return At(t.getUTCFullYear()%1e4,e,4)}function Ve(){return"+0000"}function We(){return"%"}function Ze(t){return+t}function qe(t){return Math.floor(+t/1e3)}var Xe;var Oe;var Je;Re({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Re(t){Xe=Ut(t);Oe=Xe.format;Je=Xe.parse;Xe.utcFormat;Xe.utcParse;return Xe}function Ee(t){return new Date(t)}function Ge(t){return t instanceof Date?+t:+new Date(+t)}function Qe(t,e,n,o,i,u,c,s,l,f){var p=r(),d=p.invert,g=p.domain;var h=f(".%L"),m=f(":%S"),v=f("%I:%M"),y=f("%I %p"),b=f("%a %d"),M=f("%b %d"),T=f("%B"),w=f("%Y");function C(t){return(l(t)<t?h:s(t)<t?m:c(t)<t?v:u(t)<t?y:o(t)<t?i(t)<t?b:M:n(t)<t?T:w)(t)}p.invert=function(t){return new Date(d(t))};p.domain=function(t){return arguments.length?g(Array.from(t,Ge)):g().map(Ee)};p.ticks=function(e){var n=g();return t(n[0],n[n.length-1],e==null?10:e)};p.tickFormat=function(t,e){return e==null?C:f(e)};p.nice=function(t){var n=g();if(!t||typeof t.range!=="function")t=e(n[0],n[n.length-1],t==null?10:t);return t?g(x(n,t)):p};p.copy=function(){return a(p,Qe(t,e,n,o,i,u,c,s,l,f))};return p}function Pe(){return n.apply(Qe(bt,Mt,tt,$,O,q,W,N,j,Oe).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const Be=1e-5;let $e=true;let Ke=true;const tn=new u;function en(t,e,n){let r,a,u,f,p,d;if(e!==undefined)[a,u,f,p,d]=o(e,t);else{[r,a,u,f,p,d]=i(100,100,t);r.header.text("MAF timeline plot")}a.append("p").html("<a href=https://docs.google.com/document/d/1WXlCVHLq_P2jGiRGJ55uzXCC6p-6Jqn7h406RUID_xo/edit?usp=sharing target=_blank>File format</a>");a.append("p").html("<a href=https://www.dropbox.com/s/940wfo6rd1ttlim/example.maftimeline?dl=0 target=_blank>Example file</a>");{const t=Math.random().toString();const e=a.append("p");e.append("input").attr("type","checkbox").attr("id",t).property("checked",true).style("margin-right","5px").on("change",(()=>{Ke=!Ke}));e.append("label").attr("for",t).text("Y axis (MAF) log10 scale")}const g=()=>{f.selectAll("*").remove();const t=f.append("input").attr("type","file").on("change",(t=>{p.text("");const n=t.target.files[0];if(!n){g();return}if(n.size==0){p.text("Wrong file: "+n.name);g();return}const o=new FileReader;o.onload=t=>{const o=t.target.result.trim().split(/\r?\n/);const[i,u]=nn(o[0].trim());if(i){p.text("File header error: "+i);g();return}const f=[];const h={};let m=0;for(let t=1;t<o.length;t++){if(o[t]=="")continue;if(o[t][0]=="#")continue;const e=rn(t,o[t],u,f,h);if(e){m++}}if(f.length){c(u,f)}if(m==0){g();return}let v;if(r){s(r.pane);const t=l({x:100,y:100,toshrink:true});t.header.html('<span style="opacity:.5;font-size:.7em">MAF TIMELINE</span> '+n.name);v=t.body}if(e!==undefined){v=d.html('<span style="opacity:.5;font-size:.7em">MAF TIMELINE</span> '+n.name);a.selectAll("*").remove();p.text("")}an(h,u,v)};o.onerror=function(){p.text("Error reading file "+n.name);g();return};p.text("Parsing file "+n.name+" ...");o.readAsText(n,"utf8")}));setTimeout((()=>t.node().focus()),1100)};g()}function nn(t){const e=t.toLowerCase().split("\t");if(e.length<=1)return["columns must be separated by tab"];const n=(...t)=>{for(const n of t){const t=e.indexOf(n);if(t!=-1)return t}return-1};let r=n("person","patient","caseid");if(r==-1)return["person missing"];e[r]="patient";r=n("sample","sampleid");if(r==-1)return["sample missing"];e[r]="sample";r=n("snv4");if(r==-1)return["snv4 missing"];e[r]="snv4";r=n("date","dateofsample");if(r==-1)return["date missing"];e[r]="date";r=n("mutant_readcount","mutantcount");if(r!=-1)e[r]="mutant_readcount";r=n("ref_readcount","refcount");if(r!=-1)e[r]="ref_readcount";r=n("total_readcount","coveragecount");if(r==-1)return["total_readcount missing"];e[r]="coverage";r=n("maf");if(r==-1)return["maf missing"];e[r]="maf";r=n("call_manual");if(r!=-1)e[r]="call_manual";return[null,e]}function rn(t,e,n,r,a){const o=e.split("\t");const i={};for(let t=0;t<n.length;t++){i[n[t]]=o[t]}if(!i.patient){r.push([t,"missing patient",o]);return}if(!a[i.patient]){a[i.patient]={snv4:{},show:false}}if(!i.snv4){r.push([t,"missing snv4",o]);return}if(!a[i.patient].snv4[i.snv4]){a[i.patient].snv4[i.snv4]={mutationname:i.snv4,samples:[],subidx:undefined}}if(i.gene){a[i.patient].snv4[i.snv4].gene=i.gene}if(!i.maf){r.push([t,"missing maf",o]);return}let u=Number.parseFloat(i.maf);if(Number.isNaN(u)){r.push([t,"invalid maf",o]);return}if(u<Be){u=Be}i.maf=u;if(!i.coverage){r.push([t,"missing total_readcount",o]);return}if(i.call_manual&&i.call_manual=="wildtype"){i.maf=Be}u=Number.parseInt(i.coverage);if(Number.isNaN(u)){r.push([t,"invalid total_readcount",o]);return}i.coverage=u;let c;if(i.date){const t=Je("%m/%d/%Y");c=t(i.date);i.Date=i.date}else{r.push([t,"missing date",o]);return}if(c==null){r.push([t,"cannot parse date",o]);return}i.date=c;if(!i.sample){r.push([t,"missing sample",o]);return}a[i.patient].snv4[i.snv4].samples.push(i);return true}function an(t,e,n){const r=n.append("table").style("margin","20px");const a=r.append("tr");let o=a.append("td").style("vertical-align","top").attr("rowspan",2);o.append("button").text("Toggle circle visibility").on("click",(()=>{$e=!$e;for(const e in t){if(t[e].show){t[e].handle.node().click();break}}}));const i=o.append("div").style("margin-top","10px");const u=a.append("td").style("vertical-align","top");const c=u.append("div").style("display","inline-block");const s=u.append("div").style("display","inline-block").style("vertical-align","top");const l=r.append("tr");const d=l.append("td").append("table").style("border-spacing","20px").style("border-collapse","separate");const g=d.append("tr");o=g.append("td").style("vertical-align","top");o.append("div").text("Shared").style("font-size","2em");const h=o.append("div").style("border","solid 1px black");o=g.append("td").style("vertical-align","top");o.append("div").text("Rising").style("font-size","2em");const m=o.append("div").style("border","solid 1px black");const v=d.append("tr");o=v.append("td").style("vertical-align","top");o.append("div").text("Falling").style("font-size","2em");const y=o.append("div").style("border","solid 1px black");o=v.append("td").style("vertical-align","top");o.append("div").text("R-only").style("font-size","2em");const x=o.append("div").style("border","solid 1px black");for(const n in t){const r=[];const a=f(p);for(const e in t[n].snv4){const o=t[n].snv4[e];o.show=true;o.color=a(o.mutationname);o.samples.sort(((t,e)=>t.date-e.date));for(const t of o.samples){t.color=o.color}r.push(o)}const o=i.append("div").classed("sja_menuoption",true).style("color","black").text(n).on("click",(()=>{for(const e in t){t[e].handle.style("color","black");t[e].show=false}t[n].handle.style("color","red");t[n].show=true;un(r,e,c);on(r,h,m,y,x);cn(r,e,s,c,h,m,y,x)}));t[n].handle=o}for(const e in t){t[e].handle.node().click();break}}function on(t,e,n,r,a){e.selectAll("*").remove();n.selectAll("*").remove();r.selectAll("*").remove();a.selectAll("*").remove();const o=[];const i=[];const u=[];const c=[];for(const e of t){switch(e.subidx){case 1:o.push(e);break;case 2:i.push(e);break;case 3:u.push(e);break;case 4:c.push(e);break}}if(o.length){un(o,null,e,true)}else{e.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(i.length){un(i,null,n,true)}else{n.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(u.length){un(u,null,r,true)}else{r.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(c.length){un(c,null,a,true)}else{a.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}}function un(t,e,n,r){n.selectAll("*").remove();const a=[];const o=[];for(const e of t){if(!r&&!e.show)continue;o.push(e);for(const t of e.samples){a.push(t)}}if(o.length==0)return;let i=o[0].samples[0].date;let u=o[0].samples[0].date;let c=o[0].samples[0].maf;let s=o[0].samples[0].coverage;for(const t of o){for(const e of t.samples){i=Math.min(i,e.date);u=Math.max(u,e.date);c=Math.max(c,e.maf);s=Math.max(s,e.coverage)}}const l=n.append("svg");const f=30,p=200,x=100,w=50;let C=600;let U=400;let k,D,F;const Y=l.append("g");const A=l.append("g");const H=l.append("text").text("drag to resize").attr("class","sja_clb").attr("text-anchor","end").on("mousedown",(t=>{t.preventDefault();const e=t.clientX;const n=t.clientY;const r=C;const a=U;const o=d(document.body);o.on("mousemove",(t=>{V(r+t.clientX-e,a+t.clientY-n)})).on("mouseup",(()=>{o.on("mousemove",null).on("mouseup",null)}))}));const S=Pe().domain([i,u]);const L=(Ke?b():g()).domain([Be,1]);const _=g().domain([1,s]);const z=l.append("g");const j=z.selectAll().data(o).enter().append("path").attr("stroke",(t=>t.color)).attr("fill","none");let I;if($e){I=z.selectAll().data(a).enter().append("circle").attr("fill",(t=>t.color)).attr("fill-opacity",.1).on("mouseover",((t,e)=>{t.target.setAttribute("fill-opacity",.4);tn.clear();tn.show(t.clientX,t.clientY);const n=[];for(const t in e){if(t=="color")continue;if(t=="gene"){n.push({k:"gene",v:'<span style="color:'+e.color+'">'+e.gene+"</span>"});continue}if(t=="date")continue;if(t=="url"){n.push({k:"URL",v:"<a href="+e.url+" target=_blank>LINK</a>"});continue}n.push({k:t,v:e[t]})}h(tn.d,n)})).on("mouseout",(t=>{t.target.setAttribute("fill-opacity",.1)}))}const N=l.append("g");const V=(t,e)=>{C=t;U=e;F=2;const n=Math.max(C,U)/30;k=n;D=n;_.range([Math.pow(F,2),Math.pow(n,2)]);S.range([0,C]);L.range([U,0]);l.attr("width",x+k+C+p).attr("height",f+U+D+w);Y.attr("transform","translate("+(x+k)+","+(f+U+D)+")");A.attr("transform","translate("+x+","+f+")");H.attr("x",x+k+C).attr("y",f+U+D+w-4);m({axis:Y.call(M().scale(S)),showline:true,color:"black",fontsize:Math.max(12,Math.min(20,C/100))});m({axis:A.call(T().scale(L).tickValues([1,.1,.01,.001,1e-4,Be]).tickFormat(v(" "))),showline:true,color:"black",fontsize:Math.max(12,Math.min(20,U/100))});z.attr("transform","translate("+(x+k)+","+f+")");j.attr("d",(t=>{const e=[];for(let n=0;n<t.samples.length;n++){const r=t.samples[n];e.push((n==0?"M":"L")+" "+S(r.date)+" "+L(r.maf))}return e.join(" ")}));if($e){I.attr("cx",(t=>S(t.date))).attr("cy",(t=>L(t.maf))).attr("r",(t=>Math.sqrt(_(t.coverage))))}N.attr("transform","translate("+(x+k+C+n+5)+","+f+")");N.selectAll("*").remove();let r=F;if($e){N.append("circle").attr("r",F).attr("cx",F).attr("cy",r).attr("fill","#ccc");N.append("text").text(1).attr("x",F*2+10).attr("y",r).attr("font-size",10).attr("dominant-baseline","central");r+=5+F+n;N.append("circle").attr("r",n).attr("cx",n).attr("cy",r).attr("fill","#ccc");N.append("text").text(s).attr("x",n*2+10).attr("y",r).attr("font-size",15).attr("dominant-baseline","central");r+=15+n}const a=12;for(const t of o){N.append("line").attr("x2",30).attr("y1",r).attr("y2",r).attr("stroke",t.color);if($e){N.append("circle").attr("cx",15).attr("cy",r).attr("r",8).attr("fill",t.color).attr("fill-opacity",.1)}N.append("text").text(t.gene).attr("dominant-baseline","central").attr("font-size",a).attr("x",30+10).attr("y",r).attr("fill",t.color).style("cursor","default").on("mouseover",(e=>{e.target.setAttribute("font-weight","bold");j.filter((e=>e.mutationname==t.mutationname)).attr("stroke-width",3)})).on("mouseout",(e=>{e.target.setAttribute("font-weight","normal");j.filter((e=>e.mutationname==t.mutationname)).attr("stroke-width",1)}));r+=a+10}};V(C,U);n.append("div").style("text-align","right").append("button").text("SVG").on("click",(()=>{y(l.node(),"maf-timeline")}))}function cn(t,e,n,r,a,o,i,u){n.selectAll("*").remove();const c=n.append("table");for(const n of t){const s=c.append("tr");const l=s.append("td");l.text(n.gene).style("color",n.color);const f=s.append("td");const p=f.append("input").attr("type","checkbox").style("zoom","150%").property("checked",n.show);n.checkbox=p;p.on("change",(a=>{n.show=a.target.checked;un(t,e,r)}));f.append("button").style("margin-left","5px").text("Only").on("click",(()=>{for(const e of t){e.show=false;e.checkbox.property("checked",false)}n.show=true;n.checkbox.property("checked",true);un(t,e,r)}));let d=Math.random();const g=s.append("td");const h=g.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(1,t.target)));g.append("label").html("&nbsp;shared").attr("for",d);d=Math.random();const m=s.append("td");const v=m.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(2,t.target)));m.append("label").html("&nbsp;rising").attr("for",d);d=Math.random();const y=s.append("td");const x=y.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(3,t.target)));y.append("label").html("&nbsp;falling").attr("for",d);d=Math.random();const b=s.append("td");const M=b.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(4,t.target)));b.append("label").html("&nbsp;R-only").attr("for",d);if(n.subidx==1)h.property("checked",true);if(n.subidx==2)v.property("checked",true);if(n.subidx==3)x.property("checked",true);if(n.subidx==4)M.property("checked",true);const T=(e,r)=>{if(!r.checked){n.subidx=-1}else{n.subidx=e;if(e==1){v.property("checked",false);x.property("checked",false);M.property("checked",false)}else if(e==2){h.property("checked",false);x.property("checked",false);M.property("checked",false)}else if(e==3){h.property("checked",false);v.property("checked",false);M.property("checked",false)}else{h.property("checked",false);v.property("checked",false);x.property("checked",false)}}on(t,a,o,i,u)}}}export{en as default};
1
+ import{bs as t,bt as e,b2 as n,bu as r,b1 as a,bq as o,br as i,M as u,bl as c,h as s,a0 as l,am as f,an as p,q as d,l as g,_ as h,a as m,f as v,aU as y}from"./app-71453429.js";import{n as x,l as b}from"./log-ca1e2a74.js";import{c as M,b as T}from"./axis-6cb4f314.js";var w=new Date,C=new Date;function U(t,e,n,r){function a(e){return t(e=arguments.length===0?new Date:new Date(+e)),e}a.floor=function(e){return t(e=new Date(+e)),e};a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n};a.round=function(t){var e=a(t),n=a.ceil(t);return t-e<n-t?e:n};a.offset=function(t,n){return e(t=new Date(+t),n==null?1:Math.floor(n)),t};a.range=function(n,r,o){var i=[],u;n=a.ceil(n);o=o==null?1:Math.floor(o);if(!(n<r)||!(o>0))return i;do{i.push(u=new Date(+n)),e(n,o),t(n)}while(u<n&&n<r);return i};a.filter=function(n){return U((function(e){if(e>=e)while(t(e),!n(e))e.setTime(e-1)}),(function(t,r){if(t>=t){if(r<0)while(++r<=0){while(e(t,-1),!n(t)){}}else while(--r>=0){while(e(t,+1),!n(t)){}}}}))};if(n){a.count=function(e,r){w.setTime(+e),C.setTime(+r);t(w),t(C);return Math.floor(n(w,C))};a.every=function(t){t=Math.floor(t);return!isFinite(t)||!(t>0)?null:!(t>1)?a:a.filter(r?function(e){return r(e)%t===0}:function(e){return a.count(0,e)%t===0})}}return a}var k=U((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));k.every=function(t){t=Math.floor(t);if(!isFinite(t)||!(t>0))return null;if(!(t>1))return k;return U((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t}))};var D=k;k.range;const F=1e3;const Y=F*60;const A=Y*60;const H=A*24;const S=H*7;const L=H*30;const _=H*365;var z=U((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*F)}),(function(t,e){return(e-t)/F}),(function(t){return t.getUTCSeconds()}));var j=z;z.range;var I=U((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getMinutes()}));var N=I;I.range;var V=U((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F-t.getMinutes()*Y)}),(function(t,e){t.setTime(+t+e*A)}),(function(t,e){return(e-t)/A}),(function(t){return t.getHours()}));var W=V;V.range;var Z=U((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/H),(t=>t.getDate()-1));var q=Z;Z.range;function X(t){return U((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7);e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e*7)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/S}))}var O=X(0);var J=X(1);var R=X(2);var E=X(3);var G=X(4);var Q=X(5);var P=X(6);O.range;J.range;R.range;E.range;G.range;Q.range;P.range;var B=U((function(t){t.setDate(1);t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12}),(function(t){return t.getMonth()}));var $=B;B.range;var K=U((function(t){t.setMonth(0,1);t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));K.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:U((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t);e.setMonth(0,1);e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)}))};var tt=K;K.range;var et=U((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getUTCMinutes()}));var nt=et;et.range;var rt=U((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*A)}),(function(t,e){return(e-t)/A}),(function(t){return t.getUTCHours()}));var at=rt;rt.range;var ot=U((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/H}),(function(t){return t.getUTCDate()-1}));var it=ot;ot.range;function ut(t){return U((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7);e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e*7)}),(function(t,e){return(e-t)/S}))}var ct=ut(0);var st=ut(1);var lt=ut(2);var ft=ut(3);var pt=ut(4);var dt=ut(5);var gt=ut(6);ct.range;st.range;lt.range;ft.range;pt.range;dt.range;gt.range;var ht=U((function(t){t.setUTCDate(1);t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12}),(function(t){return t.getUTCMonth()}));var mt=ht;ht.range;var vt=U((function(t){t.setUTCMonth(0,1);t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));vt.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:U((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t);e.setUTCMonth(0,1);e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)}))};var yt=vt;vt.range;function xt(n,r,a,o,i,u){const c=[[j,1,F],[j,5,5*F],[j,15,15*F],[j,30,30*F],[u,1,Y],[u,5,5*Y],[u,15,15*Y],[u,30,30*Y],[i,1,A],[i,3,3*A],[i,6,6*A],[i,12,12*A],[o,1,H],[o,2,2*H],[a,1,S],[r,1,L],[r,3,3*L],[n,1,_]];function s(t,e,n){const r=e<t;if(r)[t,e]=[e,t];const a=n&&typeof n.range==="function"?n:l(t,e,n);const o=a?a.range(t,+e+1):[];return r?o.reverse():o}function l(r,a,o){const i=Math.abs(a-r)/o;const u=t((([,,t])=>t)).right(c,i);if(u===c.length)return n.every(e(r/_,a/_,o));if(u===0)return D.every(Math.max(e(r,a,o),1));const[s,l]=c[i/c[u-1][2]<c[u][2]/i?u-1:u];return s.every(l)}return[s,l]}xt(yt,mt,ct,it,at,nt);const[bt,Mt]=xt(tt,$,O,q,W,N);function Tt(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);e.setFullYear(t.y);return e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function wt(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));e.setUTCFullYear(t.y);return e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ct(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Ut(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,o=t.days,i=t.shortDays,u=t.months,c=t.shortMonths;var s=St(a),l=Lt(a),f=St(o),p=Lt(o),d=St(i),g=Lt(i),h=St(u),m=Lt(u),v=St(c),y=Lt(c);var x={a:L,A:_,b:z,B:j,c:null,d:te,e:te,f:oe,g:me,G:ye,H:ee,I:ne,j:re,L:ae,m:ie,M:ue,p:I,q:N,Q:Ze,s:qe,S:ce,u:se,U:le,V:pe,w:de,W:ge,x:null,X:null,y:he,Y:ve,Z:xe,"%":We};var b={a:V,A:W,b:Z,B:X,c:null,d:be,e:be,f:Ue,g:je,G:Ne,H:Me,I:Te,j:we,L:Ce,m:ke,M:De,p:O,q:R,Q:Ze,s:qe,S:Fe,u:Ye,U:Ae,V:Se,w:Le,W:_e,x:null,X:null,y:ze,Y:Ie,Z:Ve,"%":We};var M={a:k,A:D,b:F,B:Y,c:A,d:Ot,e:Ot,f:Pt,g:Wt,G:Vt,H:Rt,I:Rt,j:Jt,L:Qt,m:Xt,M:Et,p:U,q:qt,Q:$t,s:Kt,S:Gt,u:zt,U:jt,V:It,w:_t,W:Nt,x:H,X:S,y:Wt,Y:Vt,Z:Zt,"%":Bt};x.x=T(n,x);x.X=T(r,x);x.c=T(e,x);b.x=T(n,b);b.X=T(r,b);b.c=T(e,b);function T(t,e){return function(n){var r=[],a=-1,o=0,i=t.length,u,c,s;if(!(n instanceof Date))n=new Date(+n);while(++a<i){if(t.charCodeAt(a)===37){r.push(t.slice(o,a));if((c=kt[u=t.charAt(++a)])!=null)u=t.charAt(++a);else c=u==="e"?" ":"0";if(s=e[u])u=s(n,c);r.push(u);o=a+1}}r.push(t.slice(o,a));return r.join("")}}function w(t,e){return function(n){var r=Ct(1900,undefined,1),a=C(r,t,n+="",0),o,i;if(a!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(r.s*1e3+("L"in r?r.L:0));if(e&&!("Z"in r))r.Z=0;if("p"in r)r.H=r.H%12+r.p*12;if(r.m===undefined)r.m="q"in r?r.q:0;if("V"in r){if(r.V<1||r.V>53)return null;if(!("w"in r))r.w=1;if("Z"in r){o=wt(Ct(r.y,0,1)),i=o.getUTCDay();o=i>4||i===0?st.ceil(o):st(o);o=it.offset(o,(r.V-1)*7);r.y=o.getUTCFullYear();r.m=o.getUTCMonth();r.d=o.getUTCDate()+(r.w+6)%7}else{o=Tt(Ct(r.y,0,1)),i=o.getDay();o=i>4||i===0?J.ceil(o):J(o);o=q.offset(o,(r.V-1)*7);r.y=o.getFullYear();r.m=o.getMonth();r.d=o.getDate()+(r.w+6)%7}}else if("W"in r||"U"in r){if(!("w"in r))r.w="u"in r?r.u%7:"W"in r?1:0;i="Z"in r?wt(Ct(r.y,0,1)).getUTCDay():Tt(Ct(r.y,0,1)).getDay();r.m=0;r.d="W"in r?(r.w+6)%7+r.W*7-(i+5)%7:r.w+r.U*7-(i+6)%7}if("Z"in r){r.H+=r.Z/100|0;r.M+=r.Z%100;return wt(r)}return Tt(r)}}function C(t,e,n,r){var a=0,o=e.length,i=n.length,u,c;while(a<o){if(r>=i)return-1;u=e.charCodeAt(a++);if(u===37){u=e.charAt(a++);c=M[u in kt?e.charAt(a++):u];if(!c||(r=c(t,n,r))<0)return-1}else if(u!=n.charCodeAt(r++)){return-1}}return r}function U(t,e,n){var r=s.exec(e.slice(n));return r?(t.p=l.get(r[0].toLowerCase()),n+r[0].length):-1}function k(t,e,n){var r=d.exec(e.slice(n));return r?(t.w=g.get(r[0].toLowerCase()),n+r[0].length):-1}function D(t,e,n){var r=f.exec(e.slice(n));return r?(t.w=p.get(r[0].toLowerCase()),n+r[0].length):-1}function F(t,e,n){var r=v.exec(e.slice(n));return r?(t.m=y.get(r[0].toLowerCase()),n+r[0].length):-1}function Y(t,e,n){var r=h.exec(e.slice(n));return r?(t.m=m.get(r[0].toLowerCase()),n+r[0].length):-1}function A(t,n,r){return C(t,e,n,r)}function H(t,e,r){return C(t,n,e,r)}function S(t,e,n){return C(t,r,e,n)}function L(t){return i[t.getDay()]}function _(t){return o[t.getDay()]}function z(t){return c[t.getMonth()]}function j(t){return u[t.getMonth()]}function I(t){return a[+(t.getHours()>=12)]}function N(t){return 1+~~(t.getMonth()/3)}function V(t){return i[t.getUTCDay()]}function W(t){return o[t.getUTCDay()]}function Z(t){return c[t.getUTCMonth()]}function X(t){return u[t.getUTCMonth()]}function O(t){return a[+(t.getUTCHours()>=12)]}function R(t){return 1+~~(t.getUTCMonth()/3)}return{format:function(t){var e=T(t+="",x);e.toString=function(){return t};return e},parse:function(t){var e=w(t+="",false);e.toString=function(){return t};return e},utcFormat:function(t){var e=T(t+="",b);e.toString=function(){return t};return e},utcParse:function(t){var e=w(t+="",true);e.toString=function(){return t};return e}}}var kt={"-":"",_:" ",0:"0"},Dt=/^\s*\d+/,Ft=/^%/,Yt=/[\\^$*+?|[\]().{}]/g;function At(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",o=a.length;return r+(o<n?new Array(n-o+1).join(e)+a:a)}function Ht(t){return t.replace(Yt,"\\$&")}function St(t){return new RegExp("^(?:"+t.map(Ht).join("|")+")","i")}function Lt(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function _t(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function zt(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function jt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function It(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Nt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Vt(t,e,n){var r=Dt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Wt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Zt(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function qt(t,e,n){var r=Dt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Xt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ot(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Jt(t,e,n){var r=Dt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Rt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Et(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Gt(t,e,n){var r=Dt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Qt(t,e,n){var r=Dt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Pt(t,e,n){var r=Dt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Bt(t,e,n){var r=Ft.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function $t(t,e,n){var r=Dt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Kt(t,e,n){var r=Dt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function te(t,e){return At(t.getDate(),e,2)}function ee(t,e){return At(t.getHours(),e,2)}function ne(t,e){return At(t.getHours()%12||12,e,2)}function re(t,e){return At(1+q.count(tt(t),t),e,3)}function ae(t,e){return At(t.getMilliseconds(),e,3)}function oe(t,e){return ae(t,e)+"000"}function ie(t,e){return At(t.getMonth()+1,e,2)}function ue(t,e){return At(t.getMinutes(),e,2)}function ce(t,e){return At(t.getSeconds(),e,2)}function se(t){var e=t.getDay();return e===0?7:e}function le(t,e){return At(O.count(tt(t)-1,t),e,2)}function fe(t){var e=t.getDay();return e>=4||e===0?G(t):G.ceil(t)}function pe(t,e){t=fe(t);return At(G.count(tt(t),t)+(tt(t).getDay()===4),e,2)}function de(t){return t.getDay()}function ge(t,e){return At(J.count(tt(t)-1,t),e,2)}function he(t,e){return At(t.getFullYear()%100,e,2)}function me(t,e){t=fe(t);return At(t.getFullYear()%100,e,2)}function ve(t,e){return At(t.getFullYear()%1e4,e,4)}function ye(t,e){var n=t.getDay();t=n>=4||n===0?G(t):G.ceil(t);return At(t.getFullYear()%1e4,e,4)}function xe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+At(e/60|0,"0",2)+At(e%60,"0",2)}function be(t,e){return At(t.getUTCDate(),e,2)}function Me(t,e){return At(t.getUTCHours(),e,2)}function Te(t,e){return At(t.getUTCHours()%12||12,e,2)}function we(t,e){return At(1+it.count(yt(t),t),e,3)}function Ce(t,e){return At(t.getUTCMilliseconds(),e,3)}function Ue(t,e){return Ce(t,e)+"000"}function ke(t,e){return At(t.getUTCMonth()+1,e,2)}function De(t,e){return At(t.getUTCMinutes(),e,2)}function Fe(t,e){return At(t.getUTCSeconds(),e,2)}function Ye(t){var e=t.getUTCDay();return e===0?7:e}function Ae(t,e){return At(ct.count(yt(t)-1,t),e,2)}function He(t){var e=t.getUTCDay();return e>=4||e===0?pt(t):pt.ceil(t)}function Se(t,e){t=He(t);return At(pt.count(yt(t),t)+(yt(t).getUTCDay()===4),e,2)}function Le(t){return t.getUTCDay()}function _e(t,e){return At(st.count(yt(t)-1,t),e,2)}function ze(t,e){return At(t.getUTCFullYear()%100,e,2)}function je(t,e){t=He(t);return At(t.getUTCFullYear()%100,e,2)}function Ie(t,e){return At(t.getUTCFullYear()%1e4,e,4)}function Ne(t,e){var n=t.getUTCDay();t=n>=4||n===0?pt(t):pt.ceil(t);return At(t.getUTCFullYear()%1e4,e,4)}function Ve(){return"+0000"}function We(){return"%"}function Ze(t){return+t}function qe(t){return Math.floor(+t/1e3)}var Xe;var Oe;var Je;Re({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Re(t){Xe=Ut(t);Oe=Xe.format;Je=Xe.parse;Xe.utcFormat;Xe.utcParse;return Xe}function Ee(t){return new Date(t)}function Ge(t){return t instanceof Date?+t:+new Date(+t)}function Qe(t,e,n,o,i,u,c,s,l,f){var p=r(),d=p.invert,g=p.domain;var h=f(".%L"),m=f(":%S"),v=f("%I:%M"),y=f("%I %p"),b=f("%a %d"),M=f("%b %d"),T=f("%B"),w=f("%Y");function C(t){return(l(t)<t?h:s(t)<t?m:c(t)<t?v:u(t)<t?y:o(t)<t?i(t)<t?b:M:n(t)<t?T:w)(t)}p.invert=function(t){return new Date(d(t))};p.domain=function(t){return arguments.length?g(Array.from(t,Ge)):g().map(Ee)};p.ticks=function(e){var n=g();return t(n[0],n[n.length-1],e==null?10:e)};p.tickFormat=function(t,e){return e==null?C:f(e)};p.nice=function(t){var n=g();if(!t||typeof t.range!=="function")t=e(n[0],n[n.length-1],t==null?10:t);return t?g(x(n,t)):p};p.copy=function(){return a(p,Qe(t,e,n,o,i,u,c,s,l,f))};return p}function Pe(){return n.apply(Qe(bt,Mt,tt,$,O,q,W,N,j,Oe).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const Be=1e-5;let $e=true;let Ke=true;const tn=new u;function en(t,e,n){let r,a,u,f,p,d;if(e!==undefined)[a,u,f,p,d]=o(e,t);else{[r,a,u,f,p,d]=i(100,100,t);r.header.text("MAF timeline plot")}a.append("p").html("<a href=https://docs.google.com/document/d/1WXlCVHLq_P2jGiRGJ55uzXCC6p-6Jqn7h406RUID_xo/edit?usp=sharing target=_blank>File format</a>");a.append("p").html("<a href=https://www.dropbox.com/s/940wfo6rd1ttlim/example.maftimeline?dl=0 target=_blank>Example file</a>");{const t=Math.random().toString();const e=a.append("p");e.append("input").attr("type","checkbox").attr("id",t).property("checked",true).style("margin-right","5px").on("change",(()=>{Ke=!Ke}));e.append("label").attr("for",t).text("Y axis (MAF) log10 scale")}const g=()=>{f.selectAll("*").remove();const t=f.append("input").attr("type","file").on("change",(t=>{p.text("");const n=t.target.files[0];if(!n){g();return}if(n.size==0){p.text("Wrong file: "+n.name);g();return}const o=new FileReader;o.onload=t=>{const o=t.target.result.trim().split(/\r?\n/);const[i,u]=nn(o[0].trim());if(i){p.text("File header error: "+i);g();return}const f=[];const h={};let m=0;for(let t=1;t<o.length;t++){if(o[t]=="")continue;if(o[t][0]=="#")continue;const e=rn(t,o[t],u,f,h);if(e){m++}}if(f.length){c(u,f)}if(m==0){g();return}let v;if(r){s(r.pane);const t=l({x:100,y:100,toshrink:true});t.header.html('<span style="opacity:.5;font-size:.7em">MAF TIMELINE</span> '+n.name);v=t.body}if(e!==undefined){v=d.html('<span style="opacity:.5;font-size:.7em">MAF TIMELINE</span> '+n.name);a.selectAll("*").remove();p.text("")}an(h,u,v)};o.onerror=function(){p.text("Error reading file "+n.name);g();return};p.text("Parsing file "+n.name+" ...");o.readAsText(n,"utf8")}));setTimeout((()=>t.node().focus()),1100)};g()}function nn(t){const e=t.toLowerCase().split("\t");if(e.length<=1)return["columns must be separated by tab"];const n=(...t)=>{for(const n of t){const t=e.indexOf(n);if(t!=-1)return t}return-1};let r=n("person","patient","caseid");if(r==-1)return["person missing"];e[r]="patient";r=n("sample","sampleid");if(r==-1)return["sample missing"];e[r]="sample";r=n("snv4");if(r==-1)return["snv4 missing"];e[r]="snv4";r=n("date","dateofsample");if(r==-1)return["date missing"];e[r]="date";r=n("mutant_readcount","mutantcount");if(r!=-1)e[r]="mutant_readcount";r=n("ref_readcount","refcount");if(r!=-1)e[r]="ref_readcount";r=n("total_readcount","coveragecount");if(r==-1)return["total_readcount missing"];e[r]="coverage";r=n("maf");if(r==-1)return["maf missing"];e[r]="maf";r=n("call_manual");if(r!=-1)e[r]="call_manual";return[null,e]}function rn(t,e,n,r,a){const o=e.split("\t");const i={};for(let t=0;t<n.length;t++){i[n[t]]=o[t]}if(!i.patient){r.push([t,"missing patient",o]);return}if(!a[i.patient]){a[i.patient]={snv4:{},show:false}}if(!i.snv4){r.push([t,"missing snv4",o]);return}if(!a[i.patient].snv4[i.snv4]){a[i.patient].snv4[i.snv4]={mutationname:i.snv4,samples:[],subidx:undefined}}if(i.gene){a[i.patient].snv4[i.snv4].gene=i.gene}if(!i.maf){r.push([t,"missing maf",o]);return}let u=Number.parseFloat(i.maf);if(Number.isNaN(u)){r.push([t,"invalid maf",o]);return}if(u<Be){u=Be}i.maf=u;if(!i.coverage){r.push([t,"missing total_readcount",o]);return}if(i.call_manual&&i.call_manual=="wildtype"){i.maf=Be}u=Number.parseInt(i.coverage);if(Number.isNaN(u)){r.push([t,"invalid total_readcount",o]);return}i.coverage=u;let c;if(i.date){const t=Je("%m/%d/%Y");c=t(i.date);i.Date=i.date}else{r.push([t,"missing date",o]);return}if(c==null){r.push([t,"cannot parse date",o]);return}i.date=c;if(!i.sample){r.push([t,"missing sample",o]);return}a[i.patient].snv4[i.snv4].samples.push(i);return true}function an(t,e,n){const r=n.append("table").style("margin","20px");const a=r.append("tr");let o=a.append("td").style("vertical-align","top").attr("rowspan",2);o.append("button").text("Toggle circle visibility").on("click",(()=>{$e=!$e;for(const e in t){if(t[e].show){t[e].handle.node().click();break}}}));const i=o.append("div").style("margin-top","10px");const u=a.append("td").style("vertical-align","top");const c=u.append("div").style("display","inline-block");const s=u.append("div").style("display","inline-block").style("vertical-align","top");const l=r.append("tr");const d=l.append("td").append("table").style("border-spacing","20px").style("border-collapse","separate");const g=d.append("tr");o=g.append("td").style("vertical-align","top");o.append("div").text("Shared").style("font-size","2em");const h=o.append("div").style("border","solid 1px black");o=g.append("td").style("vertical-align","top");o.append("div").text("Rising").style("font-size","2em");const m=o.append("div").style("border","solid 1px black");const v=d.append("tr");o=v.append("td").style("vertical-align","top");o.append("div").text("Falling").style("font-size","2em");const y=o.append("div").style("border","solid 1px black");o=v.append("td").style("vertical-align","top");o.append("div").text("R-only").style("font-size","2em");const x=o.append("div").style("border","solid 1px black");for(const n in t){const r=[];const a=f(p);for(const e in t[n].snv4){const o=t[n].snv4[e];o.show=true;o.color=a(o.mutationname);o.samples.sort(((t,e)=>t.date-e.date));for(const t of o.samples){t.color=o.color}r.push(o)}const o=i.append("div").classed("sja_menuoption",true).style("color","black").text(n).on("click",(()=>{for(const e in t){t[e].handle.style("color","black");t[e].show=false}t[n].handle.style("color","red");t[n].show=true;un(r,e,c);on(r,h,m,y,x);cn(r,e,s,c,h,m,y,x)}));t[n].handle=o}for(const e in t){t[e].handle.node().click();break}}function on(t,e,n,r,a){e.selectAll("*").remove();n.selectAll("*").remove();r.selectAll("*").remove();a.selectAll("*").remove();const o=[];const i=[];const u=[];const c=[];for(const e of t){switch(e.subidx){case 1:o.push(e);break;case 2:i.push(e);break;case 3:u.push(e);break;case 4:c.push(e);break}}if(o.length){un(o,null,e,true)}else{e.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(i.length){un(i,null,n,true)}else{n.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(u.length){un(u,null,r,true)}else{r.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}if(c.length){un(c,null,a,true)}else{a.append("div").style("padding","60px").style("background-color","#ededed").text("no data")}}function un(t,e,n,r){n.selectAll("*").remove();const a=[];const o=[];for(const e of t){if(!r&&!e.show)continue;o.push(e);for(const t of e.samples){a.push(t)}}if(o.length==0)return;let i=o[0].samples[0].date;let u=o[0].samples[0].date;let c=o[0].samples[0].maf;let s=o[0].samples[0].coverage;for(const t of o){for(const e of t.samples){i=Math.min(i,e.date);u=Math.max(u,e.date);c=Math.max(c,e.maf);s=Math.max(s,e.coverage)}}const l=n.append("svg");const f=30,p=200,x=100,w=50;let C=600;let U=400;let k,D,F;const Y=l.append("g");const A=l.append("g");const H=l.append("text").text("drag to resize").attr("class","sja_clb").attr("text-anchor","end").on("mousedown",(t=>{t.preventDefault();const e=t.clientX;const n=t.clientY;const r=C;const a=U;const o=d(document.body);o.on("mousemove",(t=>{V(r+t.clientX-e,a+t.clientY-n)})).on("mouseup",(()=>{o.on("mousemove",null).on("mouseup",null)}))}));const S=Pe().domain([i,u]);const L=(Ke?b():g()).domain([Be,1]);const _=g().domain([1,s]);const z=l.append("g");const j=z.selectAll().data(o).enter().append("path").attr("stroke",(t=>t.color)).attr("fill","none");let I;if($e){I=z.selectAll().data(a).enter().append("circle").attr("fill",(t=>t.color)).attr("fill-opacity",.1).on("mouseover",((t,e)=>{t.target.setAttribute("fill-opacity",.4);tn.clear();tn.show(t.clientX,t.clientY);const n=[];for(const t in e){if(t=="color")continue;if(t=="gene"){n.push({k:"gene",v:'<span style="color:'+e.color+'">'+e.gene+"</span>"});continue}if(t=="date")continue;if(t=="url"){n.push({k:"URL",v:"<a href="+e.url+" target=_blank>LINK</a>"});continue}n.push({k:t,v:e[t]})}h(tn.d,n)})).on("mouseout",(t=>{t.target.setAttribute("fill-opacity",.1)}))}const N=l.append("g");const V=(t,e)=>{C=t;U=e;F=2;const n=Math.max(C,U)/30;k=n;D=n;_.range([Math.pow(F,2),Math.pow(n,2)]);S.range([0,C]);L.range([U,0]);l.attr("width",x+k+C+p).attr("height",f+U+D+w);Y.attr("transform","translate("+(x+k)+","+(f+U+D)+")");A.attr("transform","translate("+x+","+f+")");H.attr("x",x+k+C).attr("y",f+U+D+w-4);m({axis:Y.call(M().scale(S)),showline:true,color:"black",fontsize:Math.max(12,Math.min(20,C/100))});m({axis:A.call(T().scale(L).tickValues([1,.1,.01,.001,1e-4,Be]).tickFormat(v(" "))),showline:true,color:"black",fontsize:Math.max(12,Math.min(20,U/100))});z.attr("transform","translate("+(x+k)+","+f+")");j.attr("d",(t=>{const e=[];for(let n=0;n<t.samples.length;n++){const r=t.samples[n];e.push((n==0?"M":"L")+" "+S(r.date)+" "+L(r.maf))}return e.join(" ")}));if($e){I.attr("cx",(t=>S(t.date))).attr("cy",(t=>L(t.maf))).attr("r",(t=>Math.sqrt(_(t.coverage))))}N.attr("transform","translate("+(x+k+C+n+5)+","+f+")");N.selectAll("*").remove();let r=F;if($e){N.append("circle").attr("r",F).attr("cx",F).attr("cy",r).attr("fill","#ccc");N.append("text").text(1).attr("x",F*2+10).attr("y",r).attr("font-size",10).attr("dominant-baseline","central");r+=5+F+n;N.append("circle").attr("r",n).attr("cx",n).attr("cy",r).attr("fill","#ccc");N.append("text").text(s).attr("x",n*2+10).attr("y",r).attr("font-size",15).attr("dominant-baseline","central");r+=15+n}const a=12;for(const t of o){N.append("line").attr("x2",30).attr("y1",r).attr("y2",r).attr("stroke",t.color);if($e){N.append("circle").attr("cx",15).attr("cy",r).attr("r",8).attr("fill",t.color).attr("fill-opacity",.1)}N.append("text").text(t.gene).attr("dominant-baseline","central").attr("font-size",a).attr("x",30+10).attr("y",r).attr("fill",t.color).style("cursor","default").on("mouseover",(e=>{e.target.setAttribute("font-weight","bold");j.filter((e=>e.mutationname==t.mutationname)).attr("stroke-width",3)})).on("mouseout",(e=>{e.target.setAttribute("font-weight","normal");j.filter((e=>e.mutationname==t.mutationname)).attr("stroke-width",1)}));r+=a+10}};V(C,U);n.append("div").style("text-align","right").append("button").text("SVG").on("click",(()=>{y(l.node(),"maf-timeline")}))}function cn(t,e,n,r,a,o,i,u){n.selectAll("*").remove();const c=n.append("table");for(const n of t){const s=c.append("tr");const l=s.append("td");l.text(n.gene).style("color",n.color);const f=s.append("td");const p=f.append("input").attr("type","checkbox").style("zoom","150%").property("checked",n.show);n.checkbox=p;p.on("change",(a=>{n.show=a.target.checked;un(t,e,r)}));f.append("button").style("margin-left","5px").text("Only").on("click",(()=>{for(const e of t){e.show=false;e.checkbox.property("checked",false)}n.show=true;n.checkbox.property("checked",true);un(t,e,r)}));let d=Math.random();const g=s.append("td");const h=g.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(1,t.target)));g.append("label").html("&nbsp;shared").attr("for",d);d=Math.random();const m=s.append("td");const v=m.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(2,t.target)));m.append("label").html("&nbsp;rising").attr("for",d);d=Math.random();const y=s.append("td");const x=y.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(3,t.target)));y.append("label").html("&nbsp;falling").attr("for",d);d=Math.random();const b=s.append("td");const M=b.append("input").attr("type","checkbox").attr("id",d).on("change",(t=>T(4,t.target)));b.append("label").html("&nbsp;R-only").attr("for",d);if(n.subidx==1)h.property("checked",true);if(n.subidx==2)v.property("checked",true);if(n.subidx==3)x.property("checked",true);if(n.subidx==4)M.property("checked",true);const T=(e,r)=>{if(!r.checked){n.subidx=-1}else{n.subidx=e;if(e==1){v.property("checked",false);x.property("checked",false);M.property("checked",false)}else if(e==2){h.property("checked",false);x.property("checked",false);M.property("checked",false)}else if(e==3){h.property("checked",false);v.property("checked",false);M.property("checked",false)}else{h.property("checked",false);v.property("checked",false);x.property("checked",false)}}on(t,a,o,i,u)}}}export{en as default};
@@ -1 +1 @@
1
- import{aS as t,aI as e,az as s,E as i,O as r,ao as o}from"./app-f91922b4.js";import{setMatrixDom as n}from"./matrix.dom-e5f91cc0.js";import{setInteractivity as a}from"./matrix.interactivity-92bc8332.js";import{setRenderers as l}from"./matrix.renderers-3b8dfd04.js";import{MatrixCluster as p}from"./matrix.cluster-acdfc6a7.js";import{MatrixControls as d}from"./matrix.controls-86eb8d5c.js";import{s as c}from"./svg.legend-c82b153f.js";import{m}from"./matrix.data-e2d7ac16.js";import{m as h}from"./matrix.layout-29a8f334.js";import{m as g}from"./matrix.serieses-e079f04a.js";import{m as f}from"./matrix.legend-8c28039e.js";import{m as u}from"./matrix.groups-f1969b5c.js";import{setComputedConfig as y}from"./matrix.config-cd01ebbd.js";export{getPlotConfig}from"./matrix.config-cd01ebbd.js";import"./termsetting-9a7511e6.js";import"path";import"./FilterRxComp-0e75dd8d.js";import"./table-d6c411fd.js";import"./pointer-c7475677.js";import"./controls.config-e0f394cb.js";import"./controls.overlay-3ac8773d.js";import"./controls.term1-008f4be4.js";import"./controls.divide-d8ac5a9b.js";import"./matrix.sorterUi-2025f39d.js";import"./radiobutton-09bff425.js";import"./checkbox-0e5c659f.js";import"./recover-a08c8d01.js";import"./FilterStateless-ad3df967.js";import"./app-bfce9bf5.js";import"./termInfo-96285f4a.js";import"./axis-6cb4f314.js";import"./matrix.cells-a5157233.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./filter-b3d3964e.js";import"./matrix.sort-e1f83454.js";class b{constructor(t){this.type="matrix";this.holderTitle="Sample Matrix";this.optionalFeatures=JSON.parse(sessionStorage.getItem("optionalFeatures")||`{}`)?.matrix||[];a(this);l(this)}async init(e){const s=this.opts;if(s.reactsTo)this.reactsTo=s.reactsTo;this.setDom=n;this.setDom(s);this.config=e.plots.find((t=>t.id===this.id));this.settings=Object.assign({},this.config.settings.matrix);this.computed={};if(this.dom.header)this.dom.header.html(this.holderTitle);this.setControls(e);this.clusterRenderer=new p({holder:this.dom.cluster,app:this.app,parent:this});this.legendRenderer=c({holder:this.dom.legendG,rectFillFxn:t=>t.color,iconStroke:"#aaa",handlers:{legend:{click:this.legendClick}},settings:{isExcludedAttr:"isExcluded"},note:"CLICK A ROW LABEL OR ITEM TO APPLY FILTERING"});this.customTipApi=this.dom.tip.getCustomApi({d:this.dom.menubody,clear:t=>{if(t?.target)this.dom.menutop.style("display","none");this.dom.menubody.selectAll("*").remove();return this.customTipApi},show:()=>{this.dom.menubody.style("display","block")},hide:()=>{}});this.setPill(e);const a={mclass:i,dt2label:r,morigin:o};for(const s in a){const i=a[s];this[s]=t({},i,e.termdbConfig[s]||{},e.termdbConfig.matrix?.[s]||{})}}setControls(t){this.controlsRenderer=new d({app:this.app,id:this.id,parent:this,holder:this.dom.controls,getSvg:()=>this.dom.svg.node()},t)}getState(t){const e=t.plots.find((t=>t.id===this.id));const s=t.termfilter.filter0;this.prevFilter0=this.state?.filter0;return{isVisible:true,config:e,filter:t.termfilter.filter,filter0:s,hasVerifiedToken:this.app.vocabApi.hasVerifiedToken(),tokenVerificationMessage:this.app.vocabApi.tokenVerificationMessage,vocab:t.vocab,termdbConfig:t.termdbConfig,clusterMethod:e.settings.hierCluster?.clusterMethod,distanceMethod:e.settings.hierCluster?.distanceMethod,clusterSamples:e.settings.hierCluster?.clusterSamples,nav:t.nav}}async main(){try{this.config=structuredClone(this.state.config);if(this.mayRequireToken())return;const t=this.settings.transpose;Object.assign(this.settings,structuredClone(this.config.settings),this.controlsRenderer.getSettings());this.dom.loadingDiv.selectAll("*").remove();this.dom.loadingDiv.html("").style("display","").style("position","relative").style("left","45%");this.dom.svg.style("opacity",.1).style("pointer-events","none");delete this.clickedChildren;try{y(this.config);const t=[];if(this.setHierClusterData)t.push(this.setHierClusterData());t.push(this.setData());this.dom.loadingDiv.html("Processing data ...");await Promise.all(t);this.applyLegendValueFilter();if(this.combineData)this.combineData();this.app.save({type:"plot_edit",id:this.id,config:this.config})}catch(t){if(t=="no data"){this.showNoMatchingDataMessage();return}else if(t=="stale sequenceId"||t.name=="AbortError"){return}else{this.dom.svg.style("display","none");throw t}}this.dom.loadingDiv.html("Updating ...").style("display","");this.termOrder=this.getTermOrder(this.data);this.sampleGroups=this.getSampleGroups(this.hierClusterSamples||this.data);this.sampleOrder=this.getSampleOrder(this.data);if(!this.sampleOrder?.length&&!this.config.legendGrpFilter?.lst.length&&!this.config.legendValueFilter?.lst.length){this.showNoMatchingDataMessage();this.controlsRenderer.main();return}this.setLayout();if(this.setHierColorScale)this.setHierColorScale(this.hierClusterData.clustering);this.serieses=this.getSerieses(this.data);this.dom.loadingDiv.html("Rendering ...");if(this.plotDendrogramHclust)this.plotDendrogramHclust();this.render();this.mayDisplayCohortMessage();this.dom.svg.style("display","").style("opacity",1).style("pointer-events","");const[e,s]=!this.settings.matrix.transpose?["sampleGrps","termGrps"]:["termGrps","sampleGrps"];const i=this.dimensions;this.clusterRenderer.main({settings:this.settings.matrix,xGrps:this[e],yGrps:this[s],dimensions:i});this.legendRenderer(this.legendData,{settings:Object.assign({},this.settings.legend,{svgw:Math.max(400,i.mainw+i.xOffset-this.settings.matrix.margin.right),svgh:i.mainh+i.yOffset,dimensions:i,padleft:this.settings.legend.padleft})});await this.adjustSvgDimensions(t);this.controlsRenderer.main()}catch(t){const e=this.app.vocabApi.tokenVerificationMessage;this.mayRequireToken(e);if(!e){this.app.tip.hide();this.dom.loadingDiv.style("display","none");throw t}}this.resetInteractions()}showNoMatchingDataMessage(){this.forcedSampleCount=0;this.dom.svg.style("opacity",.001).style("display","none");if(this.termOrder&&this.dimensions)this.controlsRenderer.main({sampleCount:0});this.dom.loadingDiv.html("");const t=this.dom.loadingDiv.append("div").style("display","inline-block").style("text-align","center").style("position","relative").style("left","-150px");t.append("div").style("margin","5px 10px").html("No matching cohort sample data for the current gene list.");if(this.settings.matrix.showHints?.includes("genesetEdit")){const e=t.append("div").style("margin","5px 10px");e.append("span").html("You may change the selected cohort,");if(this.config.legendGrpFilter?.lst.length||this.config.legendValueFilter?.lst.length){e.append("br");e.append("span").html("show hidden ");e.append("span").html("CNV").style("cursor","pointer").style("text-decoration","underline").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="CNV"))?.node().click()}));e.append("span").html(" or ");e.append("span").style("cursor","pointer").style("text-decoration","underline").html("Mutation").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Mutation"))?.node().click()}));e.append("span").html(" data,")}e.append("br");e.append("span").html("or edit the gene list from the ");e.append("span").style("cursor","pointer").style("text-decoration","underline").html("Gene Set Edit Group menu.").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Genes"))?.node().click();const t=setInterval((()=>{const e=this.app.tip.d.selectAll("button").filter((function(){return this.innerHTML=="Edit Group"})).node();if(e){e.click();clearInterval(t)}}),100)}))}this.dom.svg.style("display","none")}mayDisplayCohortMessage(){const t=!this.prevFilter0||e(this.state.filter0,this.prevFilter0)?"":"The gene list is persisted across cohorts.";if(t){this.dom.loadingDiv.html("");const e=this.dom.loadingDiv.append("div").style("display","inline-block").style("text-align","center").style("position","relative").style("left","-150px");e.append("div").html(t);if(this.settings.matrix.showHints?.includes("genesetEdit")){const t=e.append("div");t.append("span").html(" You may edit the gene list from the ");t.append("span").style("cursor","pointer").style("text-decoration","underline").html("Gene Set Edit Group menu.").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Genes"))?.node().click();const t=setInterval((()=>{const e=this.app.tip.d.selectAll("button").filter((function(){return this.innerHTML=="Edit Group"})).node();if(e){e.click();clearInterval(t)}}),100)}))}}this.dom.loadingDiv.style("display",t?"":"none")}sampleKey(t){return t.row.sample}sampleLabel(t){return t.label||t.row._ref_.label||""}sampleGrpKey(t){return t.grp.name}sampleGrpLabel(t){return t.grp.label||t.grp.name||""}termKey(t){return t.tw.$id}termLabel(t){return t.label}termGrpKey(t){return t.grp.name}termGrpLabel(t){return t.grp.label||t.grp.name||[{text:"⋮",dx:3,cls:"sjpp-exclude-svg-download"}]}}for(const t of[m,u,h,g,f]){for(const e in t){b.prototype[e]=t[e]}}const x=s(b);const v=x;function j(t,e){e.dom.tip.clear();const s=t.append("div");if(e.state.termdbConfig.matrixplots){for(const t of e.state.termdbConfig.matrixplots){s.append("div").attr("class","sja_menuoption sja_sharp_border").text(t.name).on("click",(async()=>{e.dom.tip.hide();const s=await e.app.vocabApi.getMatrixByName(t.name);e.app.dispatch({type:"plot_create",config:s})}))}}s.append("div").datum({label:"Term tree & search",clickTo:e.showTree_selectlst,chartType:"matrix",usecase:{target:"matrix",detail:"termgroups"},processSelection:t=>[{name:"",lst:t.map((t=>({term:t})))}]}).attr("class","sja_menuoption sja_sharp_border").text((t=>t.label)).on("click",((t,s)=>e.showTree_selectlst(s)));s.append("div").datum({label:"Text input",chartType:"matrix",clickTo:C,usecase:{target:"matrix",detail:"termgroups"},placeholder:"term\tgroup",processInput:async t=>{const s=t.split("\n").map((t=>t.split("\t")));const i=s.map((t=>t[0])).filter((t=>!!t));const r=await e.app.vocabApi.getTermTypes(i);const o={};for(const[t,e]of s){if(!(t in r))continue;if(!(e in o))o[e]={name:e,lst:[]};o[e].lst.push({term:r[t]})}return Object.values(o)}}).attr("class","sja_menuoption sja_sharp_border").text((t=>t.label)).on("click",((t,s)=>C(s,e)))}function C(t,e){e.dom.tip.clear();e.dom.submenu=e.dom.tip.d.append("div").style("text-align","center");e.dom.submenu.append("span").html(t.label);e.dom.submenu.append("button").style("margin","0 5px").html("Submit").on("click",(async()=>{const i=await t.processInput(s.property("value"));e.dom.tip.hide();const r={type:"plot_create",id:T(),config:{chartType:t.usecase.target,[t.usecase.detail]:i}};e.app.dispatch(r)}));const s=e.dom.submenu.append("div").style("text-align","left").append("textarea").attr("placeholder",t.placeholder).style("width","300px").style("height","300px").style("margin","5px").style("padding","5px").on("keydown",(t=>{const e=t.keyCode||t.which;if(e==9){t.preventDefault();const e=t.target;const s=e.selectionStart;e.value=e.value.substring(0,e.selectionStart)+"\t"+e.value.substring(e.selectionEnd);e.selectionEnd=s+1}}))}const k="_CHART_AUTOID_";let D=Date.now();function T(){return k+D++}export{b as Matrix,v as componentInit,j as makeChartBtnMenu,x as matrixInit};
1
+ import{aS as t,aI as e,az as s,E as i,O as r,ao as o}from"./app-71453429.js";import{setMatrixDom as n}from"./matrix.dom-83c5fa39.js";import{setInteractivity as a}from"./matrix.interactivity-2b076155.js";import{setRenderers as l}from"./matrix.renderers-0c8eddc9.js";import{MatrixCluster as p}from"./matrix.cluster-15b8a865.js";import{MatrixControls as d}from"./matrix.controls-dea65894.js";import{s as c}from"./svg.legend-28652faa.js";import{m}from"./matrix.data-121a1a8c.js";import{m as h}from"./matrix.layout-8dc54c05.js";import{m as g}from"./matrix.serieses-2898da6b.js";import{m as u}from"./matrix.legend-e0078739.js";import{m as f}from"./matrix.groups-2e1202ef.js";import{setComputedConfig as y}from"./matrix.config-8247bea5.js";export{getPlotConfig}from"./matrix.config-8247bea5.js";import"./termsetting-636d2271.js";import"path";import"./FilterRxComp-fc769f34.js";import"./table-1dae543a.js";import"./pointer-c7475677.js";import"./controls.config-6cf816fb.js";import"./controls.overlay-3a55c2ec.js";import"./controls.term1-59f4cd60.js";import"./controls.divide-3c0d52d7.js";import"./matrix.sorterUi-d26208c8.js";import"./radiobutton-09bff425.js";import"./checkbox-0e5c659f.js";import"./recover-b1ec4fed.js";import"./FilterStateless-8f30f856.js";import"./app-fb676934.js";import"./termInfo-4c759483.js";import"./axis-6cb4f314.js";import"./matrix.cells-3620eb3a.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./filter-b3d3964e.js";import"./matrix.sort-249d4a35.js";class b{constructor(t){this.type="matrix";this.holderTitle="Sample Matrix";this.optionalFeatures=JSON.parse(sessionStorage.getItem("optionalFeatures")||`{}`)?.matrix||[];a(this);l(this)}async init(e){const s=this.opts;if(s.reactsTo)this.reactsTo=s.reactsTo;this.setDom=n;this.setDom(s);this.config=e.plots.find((t=>t.id===this.id));this.settings=Object.assign({},this.config.settings.matrix);this.computed={};if(this.dom.header)this.dom.header.html(this.holderTitle);this.setControls(e);this.clusterRenderer=new p({holder:this.dom.cluster,app:this.app,parent:this});this.legendRenderer=c({holder:this.dom.legendG,rectFillFxn:t=>t.color,iconStroke:"#aaa",handlers:{legend:{click:this.legendClick}},settings:{isExcludedAttr:"isExcluded"},note:"CLICK A ROW LABEL OR ITEM TO APPLY FILTERING"});this.customTipApi=this.dom.tip.getCustomApi({d:this.dom.menubody,clear:t=>{if(t?.target)this.dom.menutop.style("display","none");this.dom.menubody.selectAll("*").remove();return this.customTipApi},show:()=>{this.dom.menubody.style("display","block")},hide:()=>{}});this.setPill(e);const a={mclass:i,dt2label:r,morigin:o};for(const s in a){const i=a[s];this[s]=t({},i,e.termdbConfig[s]||{},e.termdbConfig.matrix?.[s]||{})}}setControls(t){this.controlsRenderer=new d({app:this.app,id:this.id,parent:this,holder:this.dom.controls,getSvg:()=>this.dom.svg.node()},t)}getState(t){const e=t.plots.find((t=>t.id===this.id));const s=t.termfilter.filter0;this.prevFilter0=this.state?.filter0;return{isVisible:true,config:e,filter:t.termfilter.filter,filter0:s,hasVerifiedToken:this.app.vocabApi.hasVerifiedToken(),tokenVerificationMessage:this.app.vocabApi.tokenVerificationMessage,vocab:t.vocab,termdbConfig:t.termdbConfig,clusterMethod:e.settings.hierCluster?.clusterMethod,distanceMethod:e.settings.hierCluster?.distanceMethod,clusterSamples:e.settings.hierCluster?.clusterSamples,nav:t.nav}}async main(){try{this.config=structuredClone(this.state.config);if(this.mayRequireToken())return;const t=this.settings.transpose;Object.assign(this.settings,structuredClone(this.config.settings),this.controlsRenderer.getSettings());this.dom.loadingDiv.selectAll("*").remove();this.dom.loadingDiv.html("").style("display","").style("position","relative").style("left","45%");this.dom.svg.style("opacity",.1).style("pointer-events","none");delete this.clickedChildren;try{y(this.config);const t=[];if(this.setHierClusterData)t.push(this.setHierClusterData());t.push(this.setData());this.dom.loadingDiv.html("Processing data ...");await Promise.all(t);this.applyLegendValueFilter();if(this.combineData)this.combineData();this.app.save({type:"plot_edit",id:this.id,config:this.config})}catch(t){if(t=="no data"){this.showNoMatchingDataMessage();return}else if(t=="stale sequenceId"||t.name=="AbortError"){return}else{this.dom.svg.style("display","none");throw t}}this.dom.loadingDiv.html("Updating ...").style("display","");this.termOrder=this.getTermOrder(this.data);this.sampleGroups=this.getSampleGroups(this.hierClusterSamples||this.data);this.sampleOrder=this.getSampleOrder(this.data);if(!this.sampleOrder?.length&&!this.config.legendGrpFilter?.lst.length&&!this.config.legendValueFilter?.lst.length){this.showNoMatchingDataMessage();this.controlsRenderer.main();return}this.setLayout();if(this.setHierColorScale)this.setHierColorScale(this.hierClusterData.clustering);this.serieses=this.getSerieses(this.data);this.dom.loadingDiv.html("Rendering ...");if(this.plotDendrogramHclust)this.plotDendrogramHclust();this.render();this.mayDisplayCohortMessage();this.dom.svg.style("display","").style("opacity",1).style("pointer-events","");const[e,s]=!this.settings.matrix.transpose?["sampleGrps","termGrps"]:["termGrps","sampleGrps"];const i=this.dimensions;this.clusterRenderer.main({settings:this.settings.matrix,xGrps:this[e],yGrps:this[s],dimensions:i});this.legendRenderer(this.legendData,{settings:Object.assign({},this.settings.legend,{svgw:Math.max(400,i.mainw+i.xOffset-this.settings.matrix.margin.right),svgh:i.mainh+i.yOffset,dimensions:i,padleft:this.settings.legend.padleft})});await this.adjustSvgDimensions(t);this.controlsRenderer.main()}catch(t){const e=this.app.vocabApi.tokenVerificationMessage;this.mayRequireToken(e);if(!e){this.app.tip.hide();this.dom.loadingDiv.style("display","none");throw t}}this.resetInteractions()}showNoMatchingDataMessage(){this.forcedSampleCount=0;this.dom.svg.style("opacity",.001).style("display","none");if(this.termOrder&&this.dimensions)this.controlsRenderer.main({sampleCount:0});this.dom.loadingDiv.html("");const t=this.dom.loadingDiv.append("div").style("display","inline-block").style("text-align","center").style("position","relative").style("left","-150px");t.append("div").style("margin","5px 10px").html("No matching cohort sample data for the current gene list.");if(this.settings.matrix.showHints?.includes("genesetEdit")){const e=t.append("div").style("margin","5px 10px");e.append("span").html("You may change the selected cohort,");if(this.config.legendGrpFilter?.lst.length||this.config.legendValueFilter?.lst.length){e.append("br");e.append("span").html("show hidden ");e.append("span").html("CNV").style("cursor","pointer").style("text-decoration","underline").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="CNV"))?.node().click()}));e.append("span").html(" or ");e.append("span").style("cursor","pointer").style("text-decoration","underline").html("Mutation").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Mutation"))?.node().click()}));e.append("span").html(" data,")}e.append("br");e.append("span").html("or edit the gene list from the ");e.append("span").style("cursor","pointer").style("text-decoration","underline").html("Gene Set Edit Group menu.").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Genes"))?.node().click();const t=setInterval((()=>{const e=this.app.tip.d.selectAll("button").filter((function(){return this.innerHTML=="Edit Group"})).node();if(e){e.click();clearInterval(t)}}),100)}))}this.dom.svg.style("display","none")}mayDisplayCohortMessage(){const t=!this.prevFilter0||e(this.state.filter0,this.prevFilter0)?"":"The gene list is persisted across cohorts.";if(t){this.dom.loadingDiv.html("");const e=this.dom.loadingDiv.append("div").style("display","inline-block").style("text-align","center").style("position","relative").style("left","-150px");e.append("div").html(t);if(this.settings.matrix.showHints?.includes("genesetEdit")){const t=e.append("div");t.append("span").html(" You may edit the gene list from the ");t.append("span").style("cursor","pointer").style("text-decoration","underline").html("Gene Set Edit Group menu.").on("click",(()=>{this.controlsRenderer.btns.filter((t=>t.label=="Genes"))?.node().click();const t=setInterval((()=>{const e=this.app.tip.d.selectAll("button").filter((function(){return this.innerHTML=="Edit Group"})).node();if(e){e.click();clearInterval(t)}}),100)}))}}this.dom.loadingDiv.style("display",t?"":"none")}sampleKey(t){return t.row.sample}sampleLabel(t){return t.label||t.row._ref_.label||""}sampleGrpKey(t){return t.grp.name}sampleGrpLabel(t){return t.grp.label||t.grp.name||""}termKey(t){return t.tw.$id}termLabel(t){return t.label}termGrpKey(t){return t.grp.name}termGrpLabel(t){return t.grp.label||t.grp.name||[{text:"⋮",dx:3,cls:"sjpp-exclude-svg-download"}]}}for(const t of[m,f,h,g,u]){for(const e in t){b.prototype[e]=t[e]}}const x=s(b);const v=x;function j(t,e){e.dom.tip.clear();const s=t.append("div");if(e.state.termdbConfig.matrixplots){for(const t of e.state.termdbConfig.matrixplots){s.append("div").attr("class","sja_menuoption sja_sharp_border").text(t.name).on("click",(async()=>{e.dom.tip.hide();const s=await e.app.vocabApi.getMatrixByName(t.name);e.app.dispatch({type:"plot_create",config:s})}))}}s.append("div").datum({label:"Term tree & search",clickTo:e.showTree_selectlst,chartType:"matrix",usecase:{target:"matrix",detail:"termgroups"},processSelection:t=>[{name:"",lst:t.map((t=>({term:t})))}]}).attr("class","sja_menuoption sja_sharp_border").text((t=>t.label)).on("click",((t,s)=>e.showTree_selectlst(s)));s.append("div").datum({label:"Text input",chartType:"matrix",clickTo:C,usecase:{target:"matrix",detail:"termgroups"},placeholder:"term\tgroup",processInput:async t=>{const s=t.split("\n").map((t=>t.split("\t")));const i=s.map((t=>t[0])).filter((t=>!!t));const r=await e.app.vocabApi.getTermTypes(i);const o={};for(const[t,e]of s){if(!(t in r))continue;if(!(e in o))o[e]={name:e,lst:[]};o[e].lst.push({term:r[t]})}return Object.values(o)}}).attr("class","sja_menuoption sja_sharp_border").text((t=>t.label)).on("click",((t,s)=>C(s,e)))}function C(t,e){e.dom.tip.clear();e.dom.submenu=e.dom.tip.d.append("div").style("text-align","center");e.dom.submenu.append("span").html(t.label);e.dom.submenu.append("button").style("margin","0 5px").html("Submit").on("click",(async()=>{const i=await t.processInput(s.property("value"));e.dom.tip.hide();const r={type:"plot_create",id:T(),config:{chartType:t.usecase.target,[t.usecase.detail]:i}};e.app.dispatch(r)}));const s=e.dom.submenu.append("div").style("text-align","left").append("textarea").attr("placeholder",t.placeholder).style("width","300px").style("height","300px").style("margin","5px").style("padding","5px").on("keydown",(t=>{const e=t.keyCode||t.which;if(e==9){t.preventDefault();const e=t.target;const s=e.selectionStart;e.value=e.value.substring(0,e.selectionStart)+"\t"+e.value.substring(e.selectionEnd);e.selectionEnd=s+1}}))}const k="_CHART_AUTOID_";let D=Date.now();function T(){return k+D++}export{b as Matrix,v as componentInit,j as makeChartBtnMenu,x as matrixInit};