@sjcrh/proteinpaint-client 2.79.5 → 2.79.7-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (867) hide show
  1. package/dist/2dmaf-MDLDUNEO.js +1403 -0
  2. package/dist/2dmaf-MDLDUNEO.js.map +7 -0
  3. package/dist/AppHeader-NKFRKH24.js +849 -0
  4. package/dist/AppHeader-NKFRKH24.js.map +7 -0
  5. package/dist/DEanalysis-AD6P4CMM.js +608 -0
  6. package/dist/DEanalysis-AD6P4CMM.js.map +7 -0
  7. package/dist/Disco-Y63VRUFG.js +2462 -0
  8. package/dist/Disco-Y63VRUFG.js.map +7 -0
  9. package/dist/Disco.UI-4UPRCFKM.js +255 -0
  10. package/dist/Disco.UI-4UPRCFKM.js.map +7 -0
  11. package/dist/HicApp-QGNKS4BP.js +2274 -0
  12. package/dist/HicApp-QGNKS4BP.js.map +7 -0
  13. package/dist/WSIViewer-CMI2NG5H.js +23529 -0
  14. package/dist/adSandbox-3SUMXENO.js +26 -0
  15. package/dist/app-AFC7K3QJ.js +44 -0
  16. package/dist/app-KOFKVIHE.js +72 -0
  17. package/dist/app.js +14 -16
  18. package/dist/bam-3Z43YZZX.js +840 -0
  19. package/dist/bam-3Z43YZZX.js.map +7 -0
  20. package/dist/barchart-46A6ZUSK.js +57 -0
  21. package/dist/barchart.data-RAXR5Z4M.js +27 -0
  22. package/dist/barchart.events-FTQ6DCCY.js +45 -0
  23. package/dist/bars.renderer-TPIVXMGV.js +20 -0
  24. package/dist/block-CKZFJS4C.js +6549 -0
  25. package/dist/block-CKZFJS4C.js.map +7 -0
  26. package/dist/block.init-PSSP7HZM.js +22 -0
  27. package/dist/block.mds.cnv-OCKCYC3P.js +493 -0
  28. package/dist/block.mds.cnv-OCKCYC3P.js.map +7 -0
  29. package/dist/block.mds.expressionrank-L5KD6WCQ.js +363 -0
  30. package/dist/block.mds.expressionrank-L5KD6WCQ.js.map +7 -0
  31. package/dist/block.mds.geneboxplot-EATHMZWR.js +837 -0
  32. package/dist/block.mds.geneboxplot-EATHMZWR.js.map +7 -0
  33. package/dist/block.mds.junction-KQVJ3BV5.js +1440 -0
  34. package/dist/block.mds.junction-KQVJ3BV5.js.map +7 -0
  35. package/dist/block.mds.svcnv-WHAXHU7V.js +7060 -0
  36. package/dist/block.mds.svcnv-WHAXHU7V.js.map +7 -0
  37. package/dist/block.mds2-55NGSUBZ.js +3448 -0
  38. package/dist/block.mds2-55NGSUBZ.js.map +7 -0
  39. package/dist/block.svg-NOXRJYFH.js +151 -0
  40. package/dist/block.svg-NOXRJYFH.js.map +7 -0
  41. package/dist/block.tk.aicheck-ASP3R6KR.js +291 -0
  42. package/dist/block.tk.aicheck-ASP3R6KR.js.map +7 -0
  43. package/dist/block.tk.ase-6XBTIUUW.js +375 -0
  44. package/dist/block.tk.ase-6XBTIUUW.js.map +7 -0
  45. package/dist/block.tk.bam-BRUMOYK5.js +1958 -0
  46. package/dist/block.tk.bam-BRUMOYK5.js.map +7 -0
  47. package/dist/block.tk.bedgraphdot-IPEI67BH.js +379 -0
  48. package/dist/block.tk.bedgraphdot-IPEI67BH.js.map +7 -0
  49. package/dist/block.tk.bigwig.ui-UC3D3VF3.js +203 -0
  50. package/dist/block.tk.bigwig.ui-UC3D3VF3.js.map +7 -0
  51. package/dist/block.tk.hicstraw-ST5VCSKI.js +865 -0
  52. package/dist/block.tk.hicstraw-ST5VCSKI.js.map +7 -0
  53. package/dist/block.tk.junction-UCSNHJE3.js +2389 -0
  54. package/dist/block.tk.junction-UCSNHJE3.js.map +7 -0
  55. package/dist/block.tk.junction.textmatrixui-XYKYR2MN.js +196 -0
  56. package/dist/block.tk.junction.textmatrixui-XYKYR2MN.js.map +7 -0
  57. package/dist/block.tk.ld-XYAI2WU2.js +98 -0
  58. package/dist/block.tk.ld-XYAI2WU2.js.map +7 -0
  59. package/dist/block.tk.menu-E5D7FQRC.js +1074 -0
  60. package/dist/block.tk.menu-E5D7FQRC.js.map +7 -0
  61. package/dist/block.tk.pgv-JIJQSCMO.js +985 -0
  62. package/dist/block.tk.pgv-JIJQSCMO.js.map +7 -0
  63. package/dist/boxplot-DKOSXV5O.js +287 -0
  64. package/dist/boxplot-DKOSXV5O.js.map +7 -0
  65. package/dist/brainImaging-6653SBED.js +258 -0
  66. package/dist/brainImaging-6653SBED.js.map +7 -0
  67. package/dist/categorical-DYB4UK3H.js +43 -0
  68. package/dist/chunk-2AXMPMVD.js +2042 -0
  69. package/dist/chunk-2AXMPMVD.js.map +7 -0
  70. package/dist/chunk-2QZPEAAC.js +328 -0
  71. package/dist/chunk-2TBUEEHC.js +2504 -0
  72. package/dist/chunk-34ICXQIT.js +361 -0
  73. package/dist/chunk-3RMUHZP7.js +506 -0
  74. package/dist/chunk-43IAAZGD.js +232 -0
  75. package/dist/chunk-43XN7MWL.js +128 -0
  76. package/dist/chunk-4VSIBQA2.js +55 -0
  77. package/dist/chunk-54THUYS6.js +1101 -0
  78. package/dist/chunk-54THUYS6.js.map +7 -0
  79. package/dist/chunk-5JAV4AND.js +287 -0
  80. package/dist/chunk-5TRXIQ5D.js +335 -0
  81. package/dist/chunk-6BHKLDWV.js +66 -0
  82. package/dist/chunk-6BHKLDWV.js.map +7 -0
  83. package/dist/chunk-6RP3HKKV.js +56 -0
  84. package/dist/chunk-7KQS6G33.js +572 -0
  85. package/dist/chunk-7NMRJUVQ.js +337 -0
  86. package/dist/chunk-A424TGKZ.js +1296 -0
  87. package/dist/chunk-A424TGKZ.js.map +7 -0
  88. package/dist/chunk-A6IPLGJ7.js +1301 -0
  89. package/dist/chunk-AI4P4YBY.js +496 -0
  90. package/dist/chunk-AJEQEARY.js +369 -0
  91. package/dist/chunk-ASH22YHA.js +454 -0
  92. package/dist/chunk-ASH22YHA.js.map +7 -0
  93. package/dist/chunk-BEHTZGNV.js +949 -0
  94. package/dist/chunk-BEHTZGNV.js.map +7 -0
  95. package/dist/chunk-BFEYWEIF.js +267 -0
  96. package/dist/chunk-BM5YBUEB.js +4763 -0
  97. package/dist/chunk-BM5YBUEB.js.map +7 -0
  98. package/dist/chunk-CCUY32QB.js +94 -0
  99. package/dist/chunk-CMPUZHAK.js +310 -0
  100. package/dist/chunk-CVWXP35F.js +123 -0
  101. package/dist/chunk-DKFNDR6B.js +193 -0
  102. package/dist/chunk-DKM3C7EW.js +364 -0
  103. package/dist/chunk-EHM2BRQX.js +1272 -0
  104. package/dist/chunk-EKXE73PZ.js +3385 -0
  105. package/dist/chunk-EQMW56G3.js +419 -0
  106. package/dist/chunk-EQMW56G3.js.map +7 -0
  107. package/dist/chunk-EW7ND3XZ.js +251 -0
  108. package/dist/chunk-FPFJ7KA5.js +219 -0
  109. package/dist/chunk-FSKRSQBG.js +174 -0
  110. package/dist/chunk-GB4U6TLN.js +1158 -0
  111. package/dist/chunk-GCUGTS2F.js +1008 -0
  112. package/dist/chunk-GFSWZVFJ.js +389 -0
  113. package/dist/chunk-GMAKKWKW.js +406 -0
  114. package/dist/chunk-H54UZQBQ.js +96 -0
  115. package/dist/chunk-H77FJYAH.js +6543 -0
  116. package/dist/chunk-H77FJYAH.js.map +7 -0
  117. package/dist/chunk-HBQOXTSD.js +14 -0
  118. package/dist/chunk-IBN5BEOY.js +2831 -0
  119. package/dist/chunk-IPNHDLML.js +479 -0
  120. package/dist/chunk-JFRRERO5.js +31 -0
  121. package/dist/chunk-JIHLNT2K.js +1779 -0
  122. package/dist/chunk-JIHLNT2K.js.map +7 -0
  123. package/dist/chunk-JOCEI72L.js +228 -0
  124. package/dist/chunk-K3MEWWGO.js +2389 -0
  125. package/dist/chunk-K3MEWWGO.js.map +7 -0
  126. package/dist/chunk-KECEUABR.js +339 -0
  127. package/dist/chunk-KT3GR2WO.js +581 -0
  128. package/dist/chunk-KT3GR2WO.js.map +7 -0
  129. package/dist/chunk-L3BEUWSG.js +2325 -0
  130. package/dist/chunk-L3BEUWSG.js.map +7 -0
  131. package/dist/chunk-LOEMEXB4.js +159 -0
  132. package/dist/chunk-M6GWX3QG.js +638 -0
  133. package/dist/chunk-MI3B3QMC.js +153 -0
  134. package/dist/chunk-MRCZTYKD.js +133 -0
  135. package/dist/chunk-MWK77NSW.js +232 -0
  136. package/dist/chunk-MXIDZVHS.js +83 -0
  137. package/dist/chunk-NWTQKS22.js +1245 -0
  138. package/dist/chunk-NZ44KDJL.js +273 -0
  139. package/dist/chunk-ON6B4J6U.js +2646 -0
  140. package/dist/chunk-OTWQWP6Z.js +120 -0
  141. package/dist/chunk-PDB7U2LQ.js +184 -0
  142. package/dist/chunk-PEOQXBJT.js +604 -0
  143. package/dist/chunk-PEOQXBJT.js.map +7 -0
  144. package/dist/chunk-PHPTWH37.js +2859 -0
  145. package/dist/chunk-PM7NASSJ.js +391 -0
  146. package/dist/chunk-PM7NASSJ.js.map +7 -0
  147. package/dist/chunk-PN65XLN6.js +301 -0
  148. package/dist/chunk-QJGZWXLL.js +456 -0
  149. package/dist/chunk-QWEOZIHZ.js +524 -0
  150. package/dist/chunk-RWP3TLNT.js +172 -0
  151. package/dist/chunk-RZAXZKVC.js +782 -0
  152. package/dist/chunk-S73S6WNT.js +1384 -0
  153. package/dist/chunk-S73S6WNT.js.map +7 -0
  154. package/dist/chunk-SEACSRFV.js +471 -0
  155. package/dist/chunk-SXGBW6OZ.js +303 -0
  156. package/dist/chunk-TWMHUWQX.js +134 -0
  157. package/dist/chunk-UBVVTQC3.js +233 -0
  158. package/dist/chunk-UM63WBJM.js +165 -0
  159. package/dist/chunk-VU3I7SFL.js +358 -0
  160. package/dist/chunk-W7ZDKCZJ.js +584 -0
  161. package/dist/chunk-W7ZDKCZJ.js.map +7 -0
  162. package/dist/chunk-WTVD5AS2.js +1074 -0
  163. package/dist/chunk-YJJGRDHN.js +2049 -0
  164. package/dist/chunk-YJJGRDHN.js.map +7 -0
  165. package/dist/chunk-YR6I3PPZ.js +295 -0
  166. package/dist/chunk-ZODVYN2Z.js +358 -0
  167. package/dist/chunk-ZZILTP5U.js +520 -0
  168. package/dist/condition-DJZK4SPZ.js +347 -0
  169. package/dist/condition-DJZK4SPZ.js.map +7 -0
  170. package/dist/controls-IWAM6RFC.js +44 -0
  171. package/dist/controls.config-TI77G7KY.js +40 -0
  172. package/dist/cuminc-U4NOF53Y.js +1179 -0
  173. package/dist/cuminc-U4NOF53Y.js.map +7 -0
  174. package/dist/customdata.inputui-6XKBI6PH.js +293 -0
  175. package/dist/customdata.inputui-6XKBI6PH.js.map +7 -0
  176. package/dist/dataDownload-W4P5SO55.js +336 -0
  177. package/dist/dataDownload-W4P5SO55.js.map +7 -0
  178. package/dist/databrowser.ui-KRP4HBP2.js +464 -0
  179. package/dist/databrowser.ui-KRP4HBP2.js.map +7 -0
  180. package/dist/density-QSWCWH3N.js +17 -0
  181. package/dist/dictionary-NLP4SNGC.js +107 -0
  182. package/dist/dictionary-NLP4SNGC.js.map +7 -0
  183. package/dist/e2pca-IC4DUN4N.js +335 -0
  184. package/dist/e2pca-IC4DUN4N.js.map +7 -0
  185. package/dist/ep-3XO2PP4I.js +1271 -0
  186. package/dist/ep-3XO2PP4I.js.map +7 -0
  187. package/dist/expclust.gdc.spec-75WY6JHY.js +298 -0
  188. package/dist/expclust.gdc.spec-75WY6JHY.js.map +7 -0
  189. package/dist/facet-254A33ML.js +434 -0
  190. package/dist/facet-254A33ML.js.map +7 -0
  191. package/dist/geneExpClustering-2DHMSUQM.js +275 -0
  192. package/dist/geneExpClustering-2DHMSUQM.js.map +7 -0
  193. package/dist/geneExpression-4VXMDANU.js +313 -0
  194. package/dist/geneExpression-BC2HALKU.js +57 -0
  195. package/dist/geneExpression-BC2HALKU.js.map +7 -0
  196. package/dist/geneExpression-ISHYTKOB.js +57 -0
  197. package/dist/geneORA-NTVGTU5J.js +279 -0
  198. package/dist/geneORA-NTVGTU5J.js.map +7 -0
  199. package/dist/geneVariant-5UNVOLWP.js +54 -0
  200. package/dist/geneVariant-5UNVOLWP.js.map +7 -0
  201. package/dist/geneVariant-BUVWXAHB.js +381 -0
  202. package/dist/geneVariant-BUVWXAHB.js.map +7 -0
  203. package/dist/genefusion.ui-HK2FGUCD.js +237 -0
  204. package/dist/genefusion.ui-HK2FGUCD.js.map +7 -0
  205. package/dist/geneset-7232T7FY.js +207 -0
  206. package/dist/geneset-7232T7FY.js.map +7 -0
  207. package/dist/genomeBrowser-P2LMJ7F6.js +406 -0
  208. package/dist/genomeBrowser-P2LMJ7F6.js.map +7 -0
  209. package/dist/genomeBrowser.controls-DD7JSNI3.js +47 -0
  210. package/dist/genomeBrowser.spec-EVJQXY7E.js +260 -0
  211. package/dist/genomeBrowser.spec-EVJQXY7E.js.map +7 -0
  212. package/dist/groupsetting-VMK33QN3.js +18 -0
  213. package/dist/gsea-XTG2QFED.js +296 -0
  214. package/dist/gsea-XTG2QFED.js.map +7 -0
  215. package/dist/hierCluster-CBTA34XL.js +68 -0
  216. package/dist/hierCluster-EOTGIBVT.js +72 -0
  217. package/dist/hierCluster.config-4GZ46YHN.js +40 -0
  218. package/dist/hierCluster.integration.spec-XHEPKUWG.js +309 -0
  219. package/dist/hierCluster.integration.spec-XHEPKUWG.js.map +7 -0
  220. package/dist/hierCluster.interactivity-6SNGRTKW.js +52 -0
  221. package/dist/hierCluster.renderers-ZPR7EDHZ.js +20 -0
  222. package/dist/imagePlot-TSQFWVE6.js +145 -0
  223. package/dist/imagePlot-TSQFWVE6.js.map +7 -0
  224. package/dist/launch.adhoc-DFJIN2WT.js +50 -0
  225. package/dist/leftlabel.sample-XK37AJTO.js +270 -0
  226. package/dist/leftlabel.sample-XK37AJTO.js.map +7 -0
  227. package/dist/legacyDataset-HU2PMBRF.js +119 -0
  228. package/dist/legacyDataset-HU2PMBRF.js.map +7 -0
  229. package/dist/lollipop-J74HX7Z7.js +107 -0
  230. package/dist/lollipop-J74HX7Z7.js.map +7 -0
  231. package/dist/maf-LSRH5RNV.js +390 -0
  232. package/dist/maf-LSRH5RNV.js.map +7 -0
  233. package/dist/maftimeline-45LRI447.js +600 -0
  234. package/dist/maftimeline-45LRI447.js.map +7 -0
  235. package/dist/matrix-B7ZILOQ7.js +68 -0
  236. package/dist/matrix-X6CPIDIV.js +63 -0
  237. package/dist/matrix.cells-M4YYMUCX.js +25 -0
  238. package/dist/matrix.config-N3VRUIBE.js +41 -0
  239. package/dist/matrix.controls-QZRCJ35M.js +40 -0
  240. package/dist/matrix.data-RT6C2K3X.js +28 -0
  241. package/dist/matrix.groups-VWOCE2OX.js +26 -0
  242. package/dist/matrix.interactivity-PUMHTQES.js +42 -0
  243. package/dist/matrix.layout-E23ZOPZ3.js +22 -0
  244. package/dist/matrix.legend-MWSRG6FJ.js +19 -0
  245. package/dist/matrix.renderers-ALGBNBK2.js +38 -0
  246. package/dist/matrix.serieses-HKO6DYLL.js +18 -0
  247. package/dist/matrix.sort-63NHPQNT.js +26 -0
  248. package/dist/matrix.sort.unit.spec-H7ZRFRSA.js +473 -0
  249. package/dist/matrix.sort.unit.spec-H7ZRFRSA.js.map +7 -0
  250. package/dist/matrix.sorterUi-QXXZTD4A.js +17 -0
  251. package/dist/matrix.sorterUi.unit.spec-QQQRY7WX.js +351 -0
  252. package/dist/matrix.sorterUi.unit.spec-QQQRY7WX.js.map +7 -0
  253. package/dist/mavb-6D73BQUS.js +740 -0
  254. package/dist/mavb-6D73BQUS.js.map +7 -0
  255. package/dist/mds.fimo-LYNQPMC2.js +531 -0
  256. package/dist/mds.fimo-LYNQPMC2.js.map +7 -0
  257. package/dist/mds.samplescatterplot-M43QXAWP.js +1676 -0
  258. package/dist/mds.samplescatterplot-M43QXAWP.js.map +7 -0
  259. package/dist/mds.survivalplot-27ZD3H3G.js +491 -0
  260. package/dist/mds.survivalplot-27ZD3H3G.js.map +7 -0
  261. package/dist/metaboliteIntensity-BMKNKDXS.js +47 -0
  262. package/dist/numeric-W63IFV67.js +43 -0
  263. package/dist/numeric.binary-PSSGVL3B.js +257 -0
  264. package/dist/numeric.binary-PSSGVL3B.js.map +7 -0
  265. package/dist/numeric.continuous-IYEBNZ62.js +139 -0
  266. package/dist/numeric.continuous-IYEBNZ62.js.map +7 -0
  267. package/dist/numeric.discrete-VOD3KY74.js +47 -0
  268. package/dist/numeric.spline-HL2ZNGB6.js +235 -0
  269. package/dist/numeric.spline-HL2ZNGB6.js.map +7 -0
  270. package/dist/numeric.toggle-RCKPB7ZD.js +40 -0
  271. package/dist/oncomatrix-C4VVZ35P.js +317 -0
  272. package/dist/oncomatrix-C4VVZ35P.js.map +7 -0
  273. package/dist/oncomatrix.spec-XBUDASGU.js +442 -0
  274. package/dist/oncomatrix.spec-XBUDASGU.js.map +7 -0
  275. package/dist/plot.2dvaf-GBMAPZEA.js +361 -0
  276. package/dist/plot.2dvaf-GBMAPZEA.js.map +7 -0
  277. package/dist/plot.app-I7VDXUNL.js +49 -0
  278. package/dist/plot.barplot-TIKVR2H2.js +84 -0
  279. package/dist/plot.barplot-TIKVR2H2.js.map +7 -0
  280. package/dist/plot.boxplot-JSFD5VNN.js +147 -0
  281. package/dist/plot.boxplot-JSFD5VNN.js.map +7 -0
  282. package/dist/plot.brainImaging-EUS4O2WC.js +56 -0
  283. package/dist/plot.disco-CZMU6PAR.js +99 -0
  284. package/dist/plot.disco-CZMU6PAR.js.map +7 -0
  285. package/dist/plot.dzi-7JMXXJQ5.js +33 -0
  286. package/dist/plot.ssgq-2UZCKGCN.js +131 -0
  287. package/dist/plot.ssgq-2UZCKGCN.js.map +7 -0
  288. package/dist/plot.vaf2cov-AM5VVCE4.js +243 -0
  289. package/dist/plot.vaf2cov-AM5VVCE4.js.map +7 -0
  290. package/dist/plot.wsi-K7X6UIFM.js +32 -0
  291. package/dist/profile.spec-VG6LAYCS.js +160 -0
  292. package/dist/profile.spec-VG6LAYCS.js.map +7 -0
  293. package/dist/profileBarchart-N4S524O7.js +280 -0
  294. package/dist/profileBarchart-N4S524O7.js.map +7 -0
  295. package/dist/profileHome-QHKVUYVV.js +124 -0
  296. package/dist/profileHome-QHKVUYVV.js.map +7 -0
  297. package/dist/profilePlot-64ZHU4EX.js +56 -0
  298. package/dist/profilePolar-GPGVQGSZ.js +207 -0
  299. package/dist/profilePolar-GPGVQGSZ.js.map +7 -0
  300. package/dist/profileRadar-QAUVTFBC.js +287 -0
  301. package/dist/profileRadar-QAUVTFBC.js.map +7 -0
  302. package/dist/profileRadarFacility-UQYKW2LF.js +277 -0
  303. package/dist/profileRadarFacility-UQYKW2LF.js.map +7 -0
  304. package/dist/profileSummary-VWHD3IPM.js +109 -0
  305. package/dist/profileSummary-VWHD3IPM.js.map +7 -0
  306. package/dist/regression-BSLYVSPL.js +69 -0
  307. package/dist/regression.inputs-PSLCZH3F.js +61 -0
  308. package/dist/regression.inputs.term-7I5ATFPY.js +61 -0
  309. package/dist/regression.inputs.values.table-ZHTQ5ODD.js +58 -0
  310. package/dist/regression.results-6BCE6DZ6.js +36 -0
  311. package/dist/sampleScatter-5CFQKO2N.js +78 -0
  312. package/dist/sampleScatter.interactivity-GNZ7P5QO.js +52 -0
  313. package/dist/sampleScatter.renderer-XLFS24OP.js +58 -0
  314. package/dist/sampleView-K4ZUOIEI.js +56 -0
  315. package/dist/samplelst-AY3RB35L.js +115 -0
  316. package/dist/samplelst-AY3RB35L.js.map +7 -0
  317. package/dist/samplematrix-RZXVDTO3.js +2325 -0
  318. package/dist/samplematrix-RZXVDTO3.js.map +7 -0
  319. package/dist/scatter-GVRBLQS5.js +370 -0
  320. package/dist/scatter-GVRBLQS5.js.map +7 -0
  321. package/dist/selectGenomeWithTklst-UB3IPBDI.js +124 -0
  322. package/dist/selectGenomeWithTklst-UB3IPBDI.js.map +7 -0
  323. package/dist/singleCellCellType-UUD5CNBN.js +72 -0
  324. package/dist/singleCellCellType-UUD5CNBN.js.map +7 -0
  325. package/dist/singleCellGeneExpression-PODHL6V6.js +53 -0
  326. package/dist/singleCellPlot-6EIGKBUB.js +916 -0
  327. package/dist/singleCellPlot-6EIGKBUB.js.map +7 -0
  328. package/dist/singlecell-BYUSKTYJ.js +212 -0
  329. package/dist/singlecell-BYUSKTYJ.js.map +7 -0
  330. package/dist/singlecell-HBSRAGWQ.js +853 -0
  331. package/dist/singlecell-HBSRAGWQ.js.map +7 -0
  332. package/dist/snp-LFBGPOJQ.js +68 -0
  333. package/dist/snp-LFBGPOJQ.js.map +7 -0
  334. package/dist/snp-QK47CEPT.js +75 -0
  335. package/dist/snp-QK47CEPT.js.map +7 -0
  336. package/dist/snplocus-WKG4VHPQ.js +233 -0
  337. package/dist/snplocus-WKG4VHPQ.js.map +7 -0
  338. package/dist/spliceevent.a53ss.diagram-ZPWMOOJJ.js +137 -0
  339. package/dist/spliceevent.a53ss.diagram-ZPWMOOJJ.js.map +7 -0
  340. package/dist/spliceevent.exonskip.diagram-2N6N3K3Q.js +259 -0
  341. package/dist/spliceevent.exonskip.diagram-2N6N3K3Q.js.map +7 -0
  342. package/dist/spliceevent.noeventdiagram-7LT7FZ3E.js +461 -0
  343. package/dist/spliceevent.noeventdiagram-7LT7FZ3E.js.map +7 -0
  344. package/dist/summary-ERKCPDNZ.js +71 -0
  345. package/dist/sunburst-ZCKU76X6.js +271 -0
  346. package/dist/sunburst-ZCKU76X6.js.map +7 -0
  347. package/dist/survival-BKQ3YKO3.js +62 -0
  348. package/dist/survival-BKQ3YKO3.js.map +7 -0
  349. package/dist/survival-OISHAQ2M.js +1150 -0
  350. package/dist/survival-OISHAQ2M.js.map +7 -0
  351. package/dist/svgraph-QSPFWAZD.js +1423 -0
  352. package/dist/svgraph-QSPFWAZD.js.map +7 -0
  353. package/dist/svmr-AAUIAOVT.js +3975 -0
  354. package/dist/svmr-AAUIAOVT.js.map +7 -0
  355. package/dist/table-5FRGEFP2.js +208 -0
  356. package/dist/table-5FRGEFP2.js.map +7 -0
  357. package/dist/tk-II3BDHPV.js +49 -0
  358. package/dist/tp.ui-V4WLJDJ4.js +1499 -0
  359. package/dist/tp.ui-V4WLJDJ4.js.map +7 -0
  360. package/dist/tvs.geneVariant-CNUMGBXK.js +182 -0
  361. package/dist/tvs.geneVariant-CNUMGBXK.js.map +7 -0
  362. package/dist/tvs.numeric-W2UF3S26.js +21 -0
  363. package/dist/violin-PT2CYSKC.js +56 -0
  364. package/dist/violin.interactivity-SP5KDTDF.js +44 -0
  365. package/dist/violin.renderer-DDVZZIRT.js +19 -0
  366. package/dist/vocabulary-P7P5QIKP.js +46 -0
  367. package/package.json +2 -2
  368. package/dist/2dmaf-Z2ZUELKI.js +0 -1406
  369. package/dist/2dmaf-Z2ZUELKI.js.map +0 -7
  370. package/dist/AppHeader-6WKFJB6M.js +0 -853
  371. package/dist/AppHeader-6WKFJB6M.js.map +0 -7
  372. package/dist/DEanalysis-C3CCOYCK.js +0 -606
  373. package/dist/DEanalysis-C3CCOYCK.js.map +0 -7
  374. package/dist/Disco-GMOS6IAB.js +0 -2466
  375. package/dist/Disco-GMOS6IAB.js.map +0 -7
  376. package/dist/Disco.UI-4BGV6REO.js +0 -259
  377. package/dist/Disco.UI-4BGV6REO.js.map +0 -7
  378. package/dist/HicApp-QHH3AH37.js +0 -2278
  379. package/dist/HicApp-QHH3AH37.js.map +0 -7
  380. package/dist/WSIViewer-2L33KLK4.js +0 -23529
  381. package/dist/adSandbox-GLNWQRUP.js +0 -28
  382. package/dist/app-E3YQIJAO.js +0 -76
  383. package/dist/app-FWXMHBCV.js +0 -48
  384. package/dist/bam-5K2SUBKO.js +0 -824
  385. package/dist/bam-5K2SUBKO.js.map +0 -7
  386. package/dist/barchart-U34XCAS4.js +0 -61
  387. package/dist/barchart.data-GTPRPSXS.js +0 -29
  388. package/dist/barchart.events-NOHHD6UP.js +0 -49
  389. package/dist/bars.renderer-OOMLYTR5.js +0 -22
  390. package/dist/block-EN434L5D.js +0 -6552
  391. package/dist/block-EN434L5D.js.map +0 -7
  392. package/dist/block.init-6ESUW5F3.js +0 -24
  393. package/dist/block.mds.cnv-YPI7MTC7.js +0 -495
  394. package/dist/block.mds.cnv-YPI7MTC7.js.map +0 -7
  395. package/dist/block.mds.expressionrank-FTKDDLIJ.js +0 -365
  396. package/dist/block.mds.expressionrank-FTKDDLIJ.js.map +0 -7
  397. package/dist/block.mds.geneboxplot-U736ZHW3.js +0 -839
  398. package/dist/block.mds.geneboxplot-U736ZHW3.js.map +0 -7
  399. package/dist/block.mds.junction-ER7WZBRE.js +0 -1443
  400. package/dist/block.mds.junction-ER7WZBRE.js.map +0 -7
  401. package/dist/block.mds.svcnv-W44ROM4O.js +0 -7062
  402. package/dist/block.mds.svcnv-W44ROM4O.js.map +0 -7
  403. package/dist/block.mds2-OMZRUYUS.js +0 -3452
  404. package/dist/block.mds2-OMZRUYUS.js.map +0 -7
  405. package/dist/block.svg-MBOXDT54.js +0 -153
  406. package/dist/block.svg-MBOXDT54.js.map +0 -7
  407. package/dist/block.tk.aicheck-6QEHJXOU.js +0 -282
  408. package/dist/block.tk.aicheck-6QEHJXOU.js.map +0 -7
  409. package/dist/block.tk.ase-SSCLC5GR.js +0 -377
  410. package/dist/block.tk.ase-SSCLC5GR.js.map +0 -7
  411. package/dist/block.tk.bam-CAO2P6CG.js +0 -1947
  412. package/dist/block.tk.bam-CAO2P6CG.js.map +0 -7
  413. package/dist/block.tk.bedgraphdot-TRV5LE6B.js +0 -381
  414. package/dist/block.tk.bedgraphdot-TRV5LE6B.js.map +0 -7
  415. package/dist/block.tk.bigwig.ui-2L2EC7WH.js +0 -205
  416. package/dist/block.tk.bigwig.ui-2L2EC7WH.js.map +0 -7
  417. package/dist/block.tk.hicstraw-YM7VNCPD.js +0 -869
  418. package/dist/block.tk.hicstraw-YM7VNCPD.js.map +0 -7
  419. package/dist/block.tk.junction-5QD4UNLO.js +0 -2392
  420. package/dist/block.tk.junction-5QD4UNLO.js.map +0 -7
  421. package/dist/block.tk.junction.textmatrixui-WBQLKM5H.js +0 -198
  422. package/dist/block.tk.junction.textmatrixui-WBQLKM5H.js.map +0 -7
  423. package/dist/block.tk.ld-BIGNA4XA.js +0 -102
  424. package/dist/block.tk.ld-BIGNA4XA.js.map +0 -7
  425. package/dist/block.tk.menu-6Y2J6D2U.js +0 -1076
  426. package/dist/block.tk.menu-6Y2J6D2U.js.map +0 -7
  427. package/dist/block.tk.pgv-7Y6C635Y.js +0 -988
  428. package/dist/block.tk.pgv-7Y6C635Y.js.map +0 -7
  429. package/dist/boxplot-L2FRJ7BC.js +0 -292
  430. package/dist/boxplot-L2FRJ7BC.js.map +0 -7
  431. package/dist/brainImaging-LBQ6BOCL.js +0 -262
  432. package/dist/brainImaging-LBQ6BOCL.js.map +0 -7
  433. package/dist/categorical-DCXSZ4FW.js +0 -47
  434. package/dist/chunk-252GVCUB.js +0 -1241
  435. package/dist/chunk-252GVCUB.js.map +0 -7
  436. package/dist/chunk-2BIZZCIY.js +0 -782
  437. package/dist/chunk-2EX476BR.js +0 -1245
  438. package/dist/chunk-2HB765M6.js +0 -3385
  439. package/dist/chunk-2JPSZLBQ.js +0 -369
  440. package/dist/chunk-2TA7MXMQ.js +0 -2504
  441. package/dist/chunk-34EXRT37.js +0 -1301
  442. package/dist/chunk-3EAPD7JJ.js +0 -128
  443. package/dist/chunk-3O3KNFZC.js +0 -6547
  444. package/dist/chunk-3O3KNFZC.js.map +0 -7
  445. package/dist/chunk-3PMPFLEK.js +0 -361
  446. package/dist/chunk-452UVSLH.js +0 -1074
  447. package/dist/chunk-4T6RODBA.js +0 -2859
  448. package/dist/chunk-4ZM4VOAG.js +0 -946
  449. package/dist/chunk-4ZM4VOAG.js.map +0 -7
  450. package/dist/chunk-542K2WZ7.js +0 -479
  451. package/dist/chunk-5IJCZCP7.js +0 -1971
  452. package/dist/chunk-5IJCZCP7.js.map +0 -7
  453. package/dist/chunk-5MCPDYY5.js +0 -601
  454. package/dist/chunk-5MCPDYY5.js.map +0 -7
  455. package/dist/chunk-6XR2LO7D.js +0 -120
  456. package/dist/chunk-7F5D236F.js +0 -358
  457. package/dist/chunk-7HTQ4K63.js +0 -339
  458. package/dist/chunk-7IHOFVZL.js +0 -2045
  459. package/dist/chunk-7IHOFVZL.js.map +0 -7
  460. package/dist/chunk-7TXNDPDZ.js +0 -96
  461. package/dist/chunk-7XHY4JRS.js +0 -520
  462. package/dist/chunk-A3GQXDSC.js +0 -416
  463. package/dist/chunk-A3GQXDSC.js.map +0 -7
  464. package/dist/chunk-A4GCSMHF.js +0 -267
  465. package/dist/chunk-A6DVKLWZ.js +0 -1776
  466. package/dist/chunk-A6DVKLWZ.js.map +0 -7
  467. package/dist/chunk-AGZQS6NY.js +0 -1101
  468. package/dist/chunk-AGZQS6NY.js.map +0 -7
  469. package/dist/chunk-AHQMETMT.js +0 -2646
  470. package/dist/chunk-BVLEQWF7.js +0 -524
  471. package/dist/chunk-BWZULQJJ.js +0 -94
  472. package/dist/chunk-C7BN5SOB.js +0 -572
  473. package/dist/chunk-EY7JFZ4D.js +0 -2041
  474. package/dist/chunk-EY7JFZ4D.js.map +0 -7
  475. package/dist/chunk-F2MOO6WD.js +0 -364
  476. package/dist/chunk-F62WPE3A.js +0 -393
  477. package/dist/chunk-F62WPE3A.js.map +0 -7
  478. package/dist/chunk-F7VAC4AZ.js +0 -134
  479. package/dist/chunk-FBZOZZR4.js +0 -83
  480. package/dist/chunk-FOSTUUJG.js +0 -123
  481. package/dist/chunk-FZXMYGIE.js +0 -310
  482. package/dist/chunk-FZXP5CZS.js +0 -456
  483. package/dist/chunk-H5PEOOWY.js +0 -165
  484. package/dist/chunk-H6RBOOCS.js +0 -1008
  485. package/dist/chunk-HQSR7OMV.js +0 -14
  486. package/dist/chunk-HVMI7J4K.js +0 -301
  487. package/dist/chunk-I3L3IGAB.js +0 -228
  488. package/dist/chunk-IRSVZT57.js +0 -184
  489. package/dist/chunk-J4L5RHSK.js +0 -232
  490. package/dist/chunk-JEBLRUTI.js +0 -406
  491. package/dist/chunk-JJ3EMEG5.js +0 -2831
  492. package/dist/chunk-KGBQ2WA5.js +0 -4761
  493. package/dist/chunk-KGBQ2WA5.js.map +0 -7
  494. package/dist/chunk-KW2UVQY4.js +0 -56
  495. package/dist/chunk-L6PTW3VL.js +0 -328
  496. package/dist/chunk-LRZTKKFF.js +0 -159
  497. package/dist/chunk-MBDAETWX.js +0 -232
  498. package/dist/chunk-MUGEX62S.js +0 -303
  499. package/dist/chunk-MWACWA3L.js +0 -638
  500. package/dist/chunk-NF3ZP7DN.js +0 -358
  501. package/dist/chunk-NI43XRK3.js +0 -153
  502. package/dist/chunk-NVZ3KU7Y.js +0 -273
  503. package/dist/chunk-NZ7FIKRZ.js +0 -31
  504. package/dist/chunk-O32YEJMI.js +0 -26
  505. package/dist/chunk-O32YEJMI.js.map +0 -7
  506. package/dist/chunk-OUBSJVOW.js +0 -174
  507. package/dist/chunk-P7BTNMOS.js +0 -421
  508. package/dist/chunk-P7BTNMOS.js.map +0 -7
  509. package/dist/chunk-PGCZMKZL.js +0 -68
  510. package/dist/chunk-PGCZMKZL.js.map +0 -7
  511. package/dist/chunk-PKXCLLK7.js +0 -609
  512. package/dist/chunk-PKXCLLK7.js.map +0 -7
  513. package/dist/chunk-PUN4NR6N.js +0 -389
  514. package/dist/chunk-PWTXVCZ4.js +0 -17
  515. package/dist/chunk-PWTXVCZ4.js.map +0 -7
  516. package/dist/chunk-QRZG6ZOQ.js +0 -593
  517. package/dist/chunk-QRZG6ZOQ.js.map +0 -7
  518. package/dist/chunk-RB5IPUK7.js +0 -496
  519. package/dist/chunk-SNJ7HF7A.js +0 -456
  520. package/dist/chunk-SNJ7HF7A.js.map +0 -7
  521. package/dist/chunk-TNWYWD33.js +0 -471
  522. package/dist/chunk-U6LQM5ZN.js +0 -219
  523. package/dist/chunk-UE2GNACI.js +0 -287
  524. package/dist/chunk-UIQRT242.js +0 -133
  525. package/dist/chunk-UUFZPMHA.js +0 -1385
  526. package/dist/chunk-UUFZPMHA.js.map +0 -7
  527. package/dist/chunk-VVD765YV.js +0 -172
  528. package/dist/chunk-VWAAOYZH.js +0 -506
  529. package/dist/chunk-W5MSYM3R.js +0 -295
  530. package/dist/chunk-WFANY24Z.js +0 -335
  531. package/dist/chunk-WMK7VUYQ.js +0 -2214
  532. package/dist/chunk-WMK7VUYQ.js.map +0 -7
  533. package/dist/chunk-WPMWODEH.js +0 -233
  534. package/dist/chunk-XNPZE2WZ.js +0 -1272
  535. package/dist/chunk-XOVDGXRX.js +0 -337
  536. package/dist/chunk-YQQK3HHV.js +0 -193
  537. package/dist/chunk-YUNMO4LV.js +0 -251
  538. package/dist/chunk-Z2BVISN7.js +0 -55
  539. package/dist/chunk-ZRUQHHLI.js +0 -114
  540. package/dist/chunk-ZRUQHHLI.js.map +0 -7
  541. package/dist/chunk-ZUXHWTIS.js +0 -1158
  542. package/dist/condition-ENXC72T7.js +0 -351
  543. package/dist/condition-ENXC72T7.js.map +0 -7
  544. package/dist/controls-KE64YGOW.js +0 -48
  545. package/dist/controls.config-ROGPIAS2.js +0 -44
  546. package/dist/cuminc-GPYPSTDW.js +0 -1184
  547. package/dist/cuminc-GPYPSTDW.js.map +0 -7
  548. package/dist/customdata.inputui-U7WDAHBT.js +0 -295
  549. package/dist/customdata.inputui-U7WDAHBT.js.map +0 -7
  550. package/dist/dataDownload-KVOKPGAH.js +0 -340
  551. package/dist/dataDownload-KVOKPGAH.js.map +0 -7
  552. package/dist/databrowser.ui-AWTK5DEK.js +0 -468
  553. package/dist/databrowser.ui-AWTK5DEK.js.map +0 -7
  554. package/dist/density-BSCDN4GB.js +0 -19
  555. package/dist/dictionary-3GC3G5ZE.js +0 -111
  556. package/dist/dictionary-3GC3G5ZE.js.map +0 -7
  557. package/dist/e2pca-KUOJJB35.js +0 -338
  558. package/dist/e2pca-KUOJJB35.js.map +0 -7
  559. package/dist/ep-MGFVUFBS.js +0 -1275
  560. package/dist/ep-MGFVUFBS.js.map +0 -7
  561. package/dist/expclust.gdc.spec-YTZOTDAG.js +0 -300
  562. package/dist/expclust.gdc.spec-YTZOTDAG.js.map +0 -7
  563. package/dist/facet-77P4ZYOE.js +0 -438
  564. package/dist/facet-77P4ZYOE.js.map +0 -7
  565. package/dist/geneExpClustering-ULFWB552.js +0 -279
  566. package/dist/geneExpClustering-ULFWB552.js.map +0 -7
  567. package/dist/geneExpression-437MUZKR.js +0 -313
  568. package/dist/geneExpression-FWUR3N2K.js +0 -61
  569. package/dist/geneExpression-FWUR3N2K.js.map +0 -7
  570. package/dist/geneExpression-O45ZRK5X.js +0 -57
  571. package/dist/geneORA-QTPGCSCO.js +0 -281
  572. package/dist/geneORA-QTPGCSCO.js.map +0 -7
  573. package/dist/geneVariant-BXTG7KIJ.js +0 -56
  574. package/dist/geneVariant-BXTG7KIJ.js.map +0 -7
  575. package/dist/geneVariant-MRX5FFUK.js +0 -385
  576. package/dist/geneVariant-MRX5FFUK.js.map +0 -7
  577. package/dist/genefusion.ui-S6NSIWSQ.js +0 -239
  578. package/dist/genefusion.ui-S6NSIWSQ.js.map +0 -7
  579. package/dist/geneset-UJMIMRZO.js +0 -211
  580. package/dist/geneset-UJMIMRZO.js.map +0 -7
  581. package/dist/genomeBrowser-M45R7UTC.js +0 -410
  582. package/dist/genomeBrowser-M45R7UTC.js.map +0 -7
  583. package/dist/genomeBrowser.controls-7USWCMS7.js +0 -51
  584. package/dist/genomeBrowser.spec-FPP73IGL.js +0 -262
  585. package/dist/genomeBrowser.spec-FPP73IGL.js.map +0 -7
  586. package/dist/groupsetting-X6E2Z5GU.js +0 -20
  587. package/dist/gsea-7J5ZJYZF.js +0 -336
  588. package/dist/gsea-7J5ZJYZF.js.map +0 -7
  589. package/dist/hierCluster-I5GYAJ67.js +0 -72
  590. package/dist/hierCluster-XV5XZRHW.js +0 -76
  591. package/dist/hierCluster.config-RLQNJMJK.js +0 -44
  592. package/dist/hierCluster.integration.spec-3Q6Q6SWU.js +0 -313
  593. package/dist/hierCluster.integration.spec-3Q6Q6SWU.js.map +0 -7
  594. package/dist/hierCluster.interactivity-7RNA4G33.js +0 -56
  595. package/dist/hierCluster.renderers-SSB7ZOMX.js +0 -22
  596. package/dist/imagePlot-4FBVKQ4N.js +0 -149
  597. package/dist/imagePlot-4FBVKQ4N.js.map +0 -7
  598. package/dist/launch.adhoc-TBBXX6SW.js +0 -54
  599. package/dist/leftlabel.sample-AYVRU4R5.js +0 -274
  600. package/dist/leftlabel.sample-AYVRU4R5.js.map +0 -7
  601. package/dist/legacyDataset-LM4FFTW3.js +0 -121
  602. package/dist/legacyDataset-LM4FFTW3.js.map +0 -7
  603. package/dist/lollipop-GTIUDECK.js +0 -109
  604. package/dist/lollipop-GTIUDECK.js.map +0 -7
  605. package/dist/maf-Z4FHNGXO.js +0 -372
  606. package/dist/maf-Z4FHNGXO.js.map +0 -7
  607. package/dist/maftimeline-AS6JKRXC.js +0 -603
  608. package/dist/maftimeline-AS6JKRXC.js.map +0 -7
  609. package/dist/matrix-PSBBYZHY.js +0 -72
  610. package/dist/matrix-VSVBKVHK.js +0 -67
  611. package/dist/matrix.cells-RO2BEWLS.js +0 -27
  612. package/dist/matrix.config-472MLJI3.js +0 -45
  613. package/dist/matrix.controls-3KV3A2SK.js +0 -44
  614. package/dist/matrix.data-APM7BGHQ.js +0 -30
  615. package/dist/matrix.groups-HHC5TA2L.js +0 -28
  616. package/dist/matrix.interactivity-YXFLANFQ.js +0 -46
  617. package/dist/matrix.layout-UY3I75BL.js +0 -24
  618. package/dist/matrix.legend-Y4S4HDWO.js +0 -21
  619. package/dist/matrix.renderers-C2Z5TP7R.js +0 -42
  620. package/dist/matrix.serieses-LXW6DVNY.js +0 -20
  621. package/dist/matrix.sort-ADYDTBHQ.js +0 -28
  622. package/dist/matrix.sort.unit.spec-SAITASIH.js +0 -477
  623. package/dist/matrix.sort.unit.spec-SAITASIH.js.map +0 -7
  624. package/dist/matrix.sorterUi-AHQ6OQSM.js +0 -19
  625. package/dist/matrix.sorterUi.unit.spec-EMMDTS65.js +0 -355
  626. package/dist/matrix.sorterUi.unit.spec-EMMDTS65.js.map +0 -7
  627. package/dist/mavb-KATYKKXJ.js +0 -742
  628. package/dist/mavb-KATYKKXJ.js.map +0 -7
  629. package/dist/mds.fimo-Z5FCON2A.js +0 -533
  630. package/dist/mds.fimo-Z5FCON2A.js.map +0 -7
  631. package/dist/mds.samplescatterplot-E2BO4L6O.js +0 -1680
  632. package/dist/mds.samplescatterplot-E2BO4L6O.js.map +0 -7
  633. package/dist/mds.survivalplot-WQQXHCQD.js +0 -494
  634. package/dist/mds.survivalplot-WQQXHCQD.js.map +0 -7
  635. package/dist/metaboliteIntensity-BRNMOEP7.js +0 -47
  636. package/dist/numeric-AKY5S4ZV.js +0 -43
  637. package/dist/numeric.binary-P5HXG7SW.js +0 -261
  638. package/dist/numeric.binary-P5HXG7SW.js.map +0 -7
  639. package/dist/numeric.continuous-HLZ235YY.js +0 -143
  640. package/dist/numeric.continuous-HLZ235YY.js.map +0 -7
  641. package/dist/numeric.discrete-Z27UIJL2.js +0 -51
  642. package/dist/numeric.spline-RCFY6OI5.js +0 -239
  643. package/dist/numeric.spline-RCFY6OI5.js.map +0 -7
  644. package/dist/numeric.toggle-ECHESLL6.js +0 -44
  645. package/dist/oncomatrix-QLSRANC6.js +0 -321
  646. package/dist/oncomatrix-QLSRANC6.js.map +0 -7
  647. package/dist/oncomatrix.spec-TMVS2MRS.js +0 -444
  648. package/dist/oncomatrix.spec-TMVS2MRS.js.map +0 -7
  649. package/dist/plot.2dvaf-4DSUOJLY.js +0 -363
  650. package/dist/plot.2dvaf-4DSUOJLY.js.map +0 -7
  651. package/dist/plot.app-TXH6JCHC.js +0 -53
  652. package/dist/plot.barplot-6VAQAJAQ.js +0 -86
  653. package/dist/plot.barplot-6VAQAJAQ.js.map +0 -7
  654. package/dist/plot.boxplot-SY7P5B43.js +0 -150
  655. package/dist/plot.boxplot-SY7P5B43.js.map +0 -7
  656. package/dist/plot.brainImaging-UWEE3ASQ.js +0 -56
  657. package/dist/plot.disco-Y7QJD6MY.js +0 -101
  658. package/dist/plot.disco-Y7QJD6MY.js.map +0 -7
  659. package/dist/plot.dzi-ACLWPR4N.js +0 -33
  660. package/dist/plot.ssgq-QSU55N6M.js +0 -133
  661. package/dist/plot.ssgq-QSU55N6M.js.map +0 -7
  662. package/dist/plot.vaf2cov-O4Q5OBYC.js +0 -246
  663. package/dist/plot.vaf2cov-O4Q5OBYC.js.map +0 -7
  664. package/dist/plot.wsi-XDP6H632.js +0 -32
  665. package/dist/profile.spec-MGAOZKFC.js +0 -162
  666. package/dist/profile.spec-MGAOZKFC.js.map +0 -7
  667. package/dist/profileBarchart-QBBPFWWC.js +0 -284
  668. package/dist/profileBarchart-QBBPFWWC.js.map +0 -7
  669. package/dist/profileHome-TFTR44T5.js +0 -128
  670. package/dist/profileHome-TFTR44T5.js.map +0 -7
  671. package/dist/profilePlot-W46V5WZY.js +0 -60
  672. package/dist/profilePolar-I22IOMQQ.js +0 -211
  673. package/dist/profilePolar-I22IOMQQ.js.map +0 -7
  674. package/dist/profileRadar-UNXOSJYG.js +0 -291
  675. package/dist/profileRadar-UNXOSJYG.js.map +0 -7
  676. package/dist/profileRadarFacility-4IPLM577.js +0 -281
  677. package/dist/profileRadarFacility-4IPLM577.js.map +0 -7
  678. package/dist/profileSummary-5M23GUCR.js +0 -113
  679. package/dist/profileSummary-5M23GUCR.js.map +0 -7
  680. package/dist/regression-3H3254JS.js +0 -73
  681. package/dist/regression.inputs-RN4ELCCQ.js +0 -65
  682. package/dist/regression.inputs.term-UU36JXKO.js +0 -65
  683. package/dist/regression.inputs.values.table-KNSYQELW.js +0 -62
  684. package/dist/regression.results-C7JMURE4.js +0 -40
  685. package/dist/sampleScatter-4FNFRHZ4.js +0 -82
  686. package/dist/sampleScatter.interactivity-XVLL4V3S.js +0 -56
  687. package/dist/sampleScatter.renderer-AT4NAZBS.js +0 -62
  688. package/dist/sampleView-24OQHMUF.js +0 -60
  689. package/dist/samplelst-CF23G24A.js +0 -119
  690. package/dist/samplelst-CF23G24A.js.map +0 -7
  691. package/dist/samplematrix-3EHMPDIQ.js +0 -2327
  692. package/dist/samplematrix-3EHMPDIQ.js.map +0 -7
  693. package/dist/scatter-M4XFDPFC.js +0 -374
  694. package/dist/scatter-M4XFDPFC.js.map +0 -7
  695. package/dist/selectGenomeWithTklst-XTQ4UXFG.js +0 -126
  696. package/dist/selectGenomeWithTklst-XTQ4UXFG.js.map +0 -7
  697. package/dist/singleCellCellType-XD5ZUVVS.js +0 -76
  698. package/dist/singleCellCellType-XD5ZUVVS.js.map +0 -7
  699. package/dist/singleCellGeneExpression-IBQJOINV.js +0 -53
  700. package/dist/singleCellPlot-5HXT5W34.js +0 -922
  701. package/dist/singleCellPlot-5HXT5W34.js.map +0 -7
  702. package/dist/singlecell-BSSUR3LC.js +0 -216
  703. package/dist/singlecell-BSSUR3LC.js.map +0 -7
  704. package/dist/singlecell-QAUS3LFJ.js +0 -856
  705. package/dist/singlecell-QAUS3LFJ.js.map +0 -7
  706. package/dist/snp-A2YNGQSD.js +0 -70
  707. package/dist/snp-A2YNGQSD.js.map +0 -7
  708. package/dist/snp-UQSHCWCJ.js +0 -79
  709. package/dist/snp-UQSHCWCJ.js.map +0 -7
  710. package/dist/snplocus-L6IAD5O2.js +0 -237
  711. package/dist/snplocus-L6IAD5O2.js.map +0 -7
  712. package/dist/spliceevent.a53ss.diagram-RWIHOT5N.js +0 -139
  713. package/dist/spliceevent.a53ss.diagram-RWIHOT5N.js.map +0 -7
  714. package/dist/spliceevent.exonskip.diagram-Q3XLNEQG.js +0 -261
  715. package/dist/spliceevent.exonskip.diagram-Q3XLNEQG.js.map +0 -7
  716. package/dist/spliceevent.noeventdiagram-2KYXXTHV.js +0 -463
  717. package/dist/spliceevent.noeventdiagram-2KYXXTHV.js.map +0 -7
  718. package/dist/summary-IBAGSXZC.js +0 -75
  719. package/dist/sunburst-BR6GCTIA.js +0 -274
  720. package/dist/sunburst-BR6GCTIA.js.map +0 -7
  721. package/dist/survival-7U5KRM4F.js +0 -66
  722. package/dist/survival-7U5KRM4F.js.map +0 -7
  723. package/dist/survival-H5ZRADT6.js +0 -1155
  724. package/dist/survival-H5ZRADT6.js.map +0 -7
  725. package/dist/svgraph-MKB3QQUM.js +0 -1425
  726. package/dist/svgraph-MKB3QQUM.js.map +0 -7
  727. package/dist/svmr-7G332AYS.js +0 -3977
  728. package/dist/svmr-7G332AYS.js.map +0 -7
  729. package/dist/table-KJXLZ2ZJ.js +0 -212
  730. package/dist/table-KJXLZ2ZJ.js.map +0 -7
  731. package/dist/tk-ENLUPDDN.js +0 -53
  732. package/dist/tp.ui-S7Q5QHJY.js +0 -1501
  733. package/dist/tp.ui-S7Q5QHJY.js.map +0 -7
  734. package/dist/tvs.geneVariant-J6BU4QWJ.js +0 -184
  735. package/dist/tvs.geneVariant-J6BU4QWJ.js.map +0 -7
  736. package/dist/tvs.numeric-3EKVOHHT.js +0 -23
  737. package/dist/violin-QV326UNM.js +0 -60
  738. package/dist/violin.interactivity-DTTFFLEM.js +0 -48
  739. package/dist/violin.renderer-X7IYO5OZ.js +0 -21
  740. package/dist/vocabulary-MQESDXTN.js +0 -50
  741. /package/dist/{WSIViewer-2L33KLK4.js.map → WSIViewer-CMI2NG5H.js.map} +0 -0
  742. /package/dist/{adSandbox-GLNWQRUP.js.map → adSandbox-3SUMXENO.js.map} +0 -0
  743. /package/dist/{app-E3YQIJAO.js.map → app-AFC7K3QJ.js.map} +0 -0
  744. /package/dist/{app-FWXMHBCV.js.map → app-KOFKVIHE.js.map} +0 -0
  745. /package/dist/{barchart-U34XCAS4.js.map → barchart-46A6ZUSK.js.map} +0 -0
  746. /package/dist/{barchart.data-GTPRPSXS.js.map → barchart.data-RAXR5Z4M.js.map} +0 -0
  747. /package/dist/{barchart.events-NOHHD6UP.js.map → barchart.events-FTQ6DCCY.js.map} +0 -0
  748. /package/dist/{bars.renderer-OOMLYTR5.js.map → bars.renderer-TPIVXMGV.js.map} +0 -0
  749. /package/dist/{block.init-6ESUW5F3.js.map → block.init-PSSP7HZM.js.map} +0 -0
  750. /package/dist/{categorical-DCXSZ4FW.js.map → categorical-DYB4UK3H.js.map} +0 -0
  751. /package/dist/{chunk-L6PTW3VL.js.map → chunk-2QZPEAAC.js.map} +0 -0
  752. /package/dist/{chunk-2TA7MXMQ.js.map → chunk-2TBUEEHC.js.map} +0 -0
  753. /package/dist/{chunk-3PMPFLEK.js.map → chunk-34ICXQIT.js.map} +0 -0
  754. /package/dist/{chunk-VWAAOYZH.js.map → chunk-3RMUHZP7.js.map} +0 -0
  755. /package/dist/{chunk-J4L5RHSK.js.map → chunk-43IAAZGD.js.map} +0 -0
  756. /package/dist/{chunk-3EAPD7JJ.js.map → chunk-43XN7MWL.js.map} +0 -0
  757. /package/dist/{chunk-Z2BVISN7.js.map → chunk-4VSIBQA2.js.map} +0 -0
  758. /package/dist/{chunk-UE2GNACI.js.map → chunk-5JAV4AND.js.map} +0 -0
  759. /package/dist/{chunk-WFANY24Z.js.map → chunk-5TRXIQ5D.js.map} +0 -0
  760. /package/dist/{chunk-KW2UVQY4.js.map → chunk-6RP3HKKV.js.map} +0 -0
  761. /package/dist/{chunk-C7BN5SOB.js.map → chunk-7KQS6G33.js.map} +0 -0
  762. /package/dist/{chunk-XOVDGXRX.js.map → chunk-7NMRJUVQ.js.map} +0 -0
  763. /package/dist/{chunk-34EXRT37.js.map → chunk-A6IPLGJ7.js.map} +0 -0
  764. /package/dist/{chunk-RB5IPUK7.js.map → chunk-AI4P4YBY.js.map} +0 -0
  765. /package/dist/{chunk-2JPSZLBQ.js.map → chunk-AJEQEARY.js.map} +0 -0
  766. /package/dist/{chunk-A4GCSMHF.js.map → chunk-BFEYWEIF.js.map} +0 -0
  767. /package/dist/{chunk-BWZULQJJ.js.map → chunk-CCUY32QB.js.map} +0 -0
  768. /package/dist/{chunk-FZXMYGIE.js.map → chunk-CMPUZHAK.js.map} +0 -0
  769. /package/dist/{chunk-FOSTUUJG.js.map → chunk-CVWXP35F.js.map} +0 -0
  770. /package/dist/{chunk-YQQK3HHV.js.map → chunk-DKFNDR6B.js.map} +0 -0
  771. /package/dist/{chunk-F2MOO6WD.js.map → chunk-DKM3C7EW.js.map} +0 -0
  772. /package/dist/{chunk-XNPZE2WZ.js.map → chunk-EHM2BRQX.js.map} +0 -0
  773. /package/dist/{chunk-2HB765M6.js.map → chunk-EKXE73PZ.js.map} +0 -0
  774. /package/dist/{chunk-YUNMO4LV.js.map → chunk-EW7ND3XZ.js.map} +0 -0
  775. /package/dist/{chunk-U6LQM5ZN.js.map → chunk-FPFJ7KA5.js.map} +0 -0
  776. /package/dist/{chunk-OUBSJVOW.js.map → chunk-FSKRSQBG.js.map} +0 -0
  777. /package/dist/{chunk-ZUXHWTIS.js.map → chunk-GB4U6TLN.js.map} +0 -0
  778. /package/dist/{chunk-H6RBOOCS.js.map → chunk-GCUGTS2F.js.map} +0 -0
  779. /package/dist/{chunk-PUN4NR6N.js.map → chunk-GFSWZVFJ.js.map} +0 -0
  780. /package/dist/{chunk-JEBLRUTI.js.map → chunk-GMAKKWKW.js.map} +0 -0
  781. /package/dist/{chunk-7TXNDPDZ.js.map → chunk-H54UZQBQ.js.map} +0 -0
  782. /package/dist/{chunk-HQSR7OMV.js.map → chunk-HBQOXTSD.js.map} +0 -0
  783. /package/dist/{chunk-JJ3EMEG5.js.map → chunk-IBN5BEOY.js.map} +0 -0
  784. /package/dist/{chunk-542K2WZ7.js.map → chunk-IPNHDLML.js.map} +0 -0
  785. /package/dist/{chunk-NZ7FIKRZ.js.map → chunk-JFRRERO5.js.map} +0 -0
  786. /package/dist/{chunk-I3L3IGAB.js.map → chunk-JOCEI72L.js.map} +0 -0
  787. /package/dist/{chunk-7HTQ4K63.js.map → chunk-KECEUABR.js.map} +0 -0
  788. /package/dist/{chunk-LRZTKKFF.js.map → chunk-LOEMEXB4.js.map} +0 -0
  789. /package/dist/{chunk-MWACWA3L.js.map → chunk-M6GWX3QG.js.map} +0 -0
  790. /package/dist/{chunk-NI43XRK3.js.map → chunk-MI3B3QMC.js.map} +0 -0
  791. /package/dist/{chunk-UIQRT242.js.map → chunk-MRCZTYKD.js.map} +0 -0
  792. /package/dist/{chunk-MBDAETWX.js.map → chunk-MWK77NSW.js.map} +0 -0
  793. /package/dist/{chunk-FBZOZZR4.js.map → chunk-MXIDZVHS.js.map} +0 -0
  794. /package/dist/{chunk-2EX476BR.js.map → chunk-NWTQKS22.js.map} +0 -0
  795. /package/dist/{chunk-NVZ3KU7Y.js.map → chunk-NZ44KDJL.js.map} +0 -0
  796. /package/dist/{chunk-AHQMETMT.js.map → chunk-ON6B4J6U.js.map} +0 -0
  797. /package/dist/{chunk-6XR2LO7D.js.map → chunk-OTWQWP6Z.js.map} +0 -0
  798. /package/dist/{chunk-IRSVZT57.js.map → chunk-PDB7U2LQ.js.map} +0 -0
  799. /package/dist/{chunk-4T6RODBA.js.map → chunk-PHPTWH37.js.map} +0 -0
  800. /package/dist/{chunk-HVMI7J4K.js.map → chunk-PN65XLN6.js.map} +0 -0
  801. /package/dist/{chunk-FZXP5CZS.js.map → chunk-QJGZWXLL.js.map} +0 -0
  802. /package/dist/{chunk-BVLEQWF7.js.map → chunk-QWEOZIHZ.js.map} +0 -0
  803. /package/dist/{chunk-VVD765YV.js.map → chunk-RWP3TLNT.js.map} +0 -0
  804. /package/dist/{chunk-2BIZZCIY.js.map → chunk-RZAXZKVC.js.map} +0 -0
  805. /package/dist/{chunk-TNWYWD33.js.map → chunk-SEACSRFV.js.map} +0 -0
  806. /package/dist/{chunk-MUGEX62S.js.map → chunk-SXGBW6OZ.js.map} +0 -0
  807. /package/dist/{chunk-F7VAC4AZ.js.map → chunk-TWMHUWQX.js.map} +0 -0
  808. /package/dist/{chunk-WPMWODEH.js.map → chunk-UBVVTQC3.js.map} +0 -0
  809. /package/dist/{chunk-H5PEOOWY.js.map → chunk-UM63WBJM.js.map} +0 -0
  810. /package/dist/{chunk-NF3ZP7DN.js.map → chunk-VU3I7SFL.js.map} +0 -0
  811. /package/dist/{chunk-452UVSLH.js.map → chunk-WTVD5AS2.js.map} +0 -0
  812. /package/dist/{chunk-W5MSYM3R.js.map → chunk-YR6I3PPZ.js.map} +0 -0
  813. /package/dist/{chunk-7F5D236F.js.map → chunk-ZODVYN2Z.js.map} +0 -0
  814. /package/dist/{chunk-7XHY4JRS.js.map → chunk-ZZILTP5U.js.map} +0 -0
  815. /package/dist/{controls-KE64YGOW.js.map → controls-IWAM6RFC.js.map} +0 -0
  816. /package/dist/{controls.config-ROGPIAS2.js.map → controls.config-TI77G7KY.js.map} +0 -0
  817. /package/dist/{density-BSCDN4GB.js.map → density-QSWCWH3N.js.map} +0 -0
  818. /package/dist/{geneExpression-437MUZKR.js.map → geneExpression-4VXMDANU.js.map} +0 -0
  819. /package/dist/{geneExpression-O45ZRK5X.js.map → geneExpression-ISHYTKOB.js.map} +0 -0
  820. /package/dist/{genomeBrowser.controls-7USWCMS7.js.map → genomeBrowser.controls-DD7JSNI3.js.map} +0 -0
  821. /package/dist/{groupsetting-X6E2Z5GU.js.map → groupsetting-VMK33QN3.js.map} +0 -0
  822. /package/dist/{hierCluster-I5GYAJ67.js.map → hierCluster-CBTA34XL.js.map} +0 -0
  823. /package/dist/{hierCluster-XV5XZRHW.js.map → hierCluster-EOTGIBVT.js.map} +0 -0
  824. /package/dist/{hierCluster.config-RLQNJMJK.js.map → hierCluster.config-4GZ46YHN.js.map} +0 -0
  825. /package/dist/{hierCluster.interactivity-7RNA4G33.js.map → hierCluster.interactivity-6SNGRTKW.js.map} +0 -0
  826. /package/dist/{hierCluster.renderers-SSB7ZOMX.js.map → hierCluster.renderers-ZPR7EDHZ.js.map} +0 -0
  827. /package/dist/{launch.adhoc-TBBXX6SW.js.map → launch.adhoc-DFJIN2WT.js.map} +0 -0
  828. /package/dist/{matrix-PSBBYZHY.js.map → matrix-B7ZILOQ7.js.map} +0 -0
  829. /package/dist/{matrix-VSVBKVHK.js.map → matrix-X6CPIDIV.js.map} +0 -0
  830. /package/dist/{matrix.cells-RO2BEWLS.js.map → matrix.cells-M4YYMUCX.js.map} +0 -0
  831. /package/dist/{matrix.config-472MLJI3.js.map → matrix.config-N3VRUIBE.js.map} +0 -0
  832. /package/dist/{matrix.controls-3KV3A2SK.js.map → matrix.controls-QZRCJ35M.js.map} +0 -0
  833. /package/dist/{matrix.data-APM7BGHQ.js.map → matrix.data-RT6C2K3X.js.map} +0 -0
  834. /package/dist/{matrix.groups-HHC5TA2L.js.map → matrix.groups-VWOCE2OX.js.map} +0 -0
  835. /package/dist/{matrix.interactivity-YXFLANFQ.js.map → matrix.interactivity-PUMHTQES.js.map} +0 -0
  836. /package/dist/{matrix.layout-UY3I75BL.js.map → matrix.layout-E23ZOPZ3.js.map} +0 -0
  837. /package/dist/{matrix.legend-Y4S4HDWO.js.map → matrix.legend-MWSRG6FJ.js.map} +0 -0
  838. /package/dist/{matrix.renderers-C2Z5TP7R.js.map → matrix.renderers-ALGBNBK2.js.map} +0 -0
  839. /package/dist/{matrix.serieses-LXW6DVNY.js.map → matrix.serieses-HKO6DYLL.js.map} +0 -0
  840. /package/dist/{matrix.sort-ADYDTBHQ.js.map → matrix.sort-63NHPQNT.js.map} +0 -0
  841. /package/dist/{matrix.sorterUi-AHQ6OQSM.js.map → matrix.sorterUi-QXXZTD4A.js.map} +0 -0
  842. /package/dist/{metaboliteIntensity-BRNMOEP7.js.map → metaboliteIntensity-BMKNKDXS.js.map} +0 -0
  843. /package/dist/{numeric-AKY5S4ZV.js.map → numeric-W63IFV67.js.map} +0 -0
  844. /package/dist/{numeric.discrete-Z27UIJL2.js.map → numeric.discrete-VOD3KY74.js.map} +0 -0
  845. /package/dist/{numeric.toggle-ECHESLL6.js.map → numeric.toggle-RCKPB7ZD.js.map} +0 -0
  846. /package/dist/{plot.app-TXH6JCHC.js.map → plot.app-I7VDXUNL.js.map} +0 -0
  847. /package/dist/{plot.brainImaging-UWEE3ASQ.js.map → plot.brainImaging-EUS4O2WC.js.map} +0 -0
  848. /package/dist/{plot.dzi-ACLWPR4N.js.map → plot.dzi-7JMXXJQ5.js.map} +0 -0
  849. /package/dist/{plot.wsi-XDP6H632.js.map → plot.wsi-K7X6UIFM.js.map} +0 -0
  850. /package/dist/{profilePlot-W46V5WZY.js.map → profilePlot-64ZHU4EX.js.map} +0 -0
  851. /package/dist/{regression-3H3254JS.js.map → regression-BSLYVSPL.js.map} +0 -0
  852. /package/dist/{regression.inputs-RN4ELCCQ.js.map → regression.inputs-PSLCZH3F.js.map} +0 -0
  853. /package/dist/{regression.inputs.term-UU36JXKO.js.map → regression.inputs.term-7I5ATFPY.js.map} +0 -0
  854. /package/dist/{regression.inputs.values.table-KNSYQELW.js.map → regression.inputs.values.table-ZHTQ5ODD.js.map} +0 -0
  855. /package/dist/{regression.results-C7JMURE4.js.map → regression.results-6BCE6DZ6.js.map} +0 -0
  856. /package/dist/{sampleScatter-4FNFRHZ4.js.map → sampleScatter-5CFQKO2N.js.map} +0 -0
  857. /package/dist/{sampleScatter.interactivity-XVLL4V3S.js.map → sampleScatter.interactivity-GNZ7P5QO.js.map} +0 -0
  858. /package/dist/{sampleScatter.renderer-AT4NAZBS.js.map → sampleScatter.renderer-XLFS24OP.js.map} +0 -0
  859. /package/dist/{sampleView-24OQHMUF.js.map → sampleView-K4ZUOIEI.js.map} +0 -0
  860. /package/dist/{singleCellGeneExpression-IBQJOINV.js.map → singleCellGeneExpression-PODHL6V6.js.map} +0 -0
  861. /package/dist/{summary-IBAGSXZC.js.map → summary-ERKCPDNZ.js.map} +0 -0
  862. /package/dist/{tk-ENLUPDDN.js.map → tk-II3BDHPV.js.map} +0 -0
  863. /package/dist/{tvs.numeric-3EKVOHHT.js.map → tvs.numeric-W2UF3S26.js.map} +0 -0
  864. /package/dist/{violin-QV326UNM.js.map → violin-PT2CYSKC.js.map} +0 -0
  865. /package/dist/{violin.interactivity-DTTFFLEM.js.map → violin.interactivity-SP5KDTDF.js.map} +0 -0
  866. /package/dist/{violin.renderer-X7IYO5OZ.js.map → violin.renderer-DDVZZIRT.js.map} +0 -0
  867. /package/dist/{vocabulary-MQESDXTN.js.map → vocabulary-P7P5QIKP.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/2dmaf.anchors.js", "../src/2dmaf.js"],
4
- "sourcesContent": ["import { select as d3select } from 'd3-selection'\nimport * as client from './client'\n\nexport default class Anchors {\n\tconstructor(opts) {\n\t\tthis.opts = opts\n\t\tthis.anchorType = opts.anchorType\n\t\tthis.shareheight = opts.shareheight\n\t\tthis.sharewidth = opts.sharewidth\n\t\tconst x = 'x' in opts ? opts.x : 0\n\t\tconst y = 'y' in opts ? opts.y : 0\n\t\tthis.settings = {\n\t\t\tvisible: true,\n\t\t\topacity: 0.3,\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\txOffset: opts.axiswidth + opts.sp + opts.sample2height,\n\t\t\tyOffset: opts.shareheight,\n\t\t\tcurrX: opts.axiswidth + opts.sp + opts.sample2height + x,\n\t\t\tcurrY: opts.shareheight - y,\n\t\t\tstrokeWidth: 'strokeWidth' in opts ? opts.strokeWidth : 5,\n\t\t\tstroke: 'stroke' in opts ? opts.stroke : 'red',\n\t\t\txarmlen: 'xarmlen' in opts ? opts.xarmlen : 25\n\t\t}\n\t\tthis.addControls(this.anchorType ? null : this.opts.headerdiv)\n\t}\n\n\tsetWrapper(g) {\n\t\tthis.opts.wrapper = g\n\t}\n\n\taddControls(headerdiv = null) {\n\t\tif (headerdiv) {\n\t\t\tconst anchorbtn = headerdiv\n\t\t\t\t.append('button')\n\t\t\t\t.text('Anchors')\n\t\t\t\t.on('click', event => {\n\t\t\t\t\tthis.anchormenu.showunder(event.target)\n\t\t\t\t\tthis.xInput.property('value', (this.settings.x / this.sharewidth).toFixed(2))\n\t\t\t\t\tthis.yInput.property('value', (this.settings.y / this.sharewidth).toFixed(2))\n\t\t\t\t})\n\t\t}\n\n\t\tthis.anchormenu = new client.Menu({ border: 'solid 1px black' })\n\t\tthis.anchormenu.d.style('text-align', 'center')\n\t\tthis.addCoordInput()\n\t\tthis.addColorInput()\n\t\tthis.addOpacityInput()\n\t\tif (!this.anchorType) this.addSubmitBtns()\n\t\telse this.addDeleteBtn()\n\t}\n\n\taddColorInput() {\n\t\tconst div = this.anchormenu.d.append('div')\n\t\tdiv.append('label').html('Color:&nbsp;')\n\t\tthis.strokeInput = div.append('input')\n\t\tthis.strokeInput\n\t\t\t.attr('this.anchorType', 'text')\n\t\t\t.property('value', this.settings.stroke)\n\t\t\t.style('width', '50px')\n\t}\n\n\taddOpacityInput() {\n\t\tconst div = this.anchormenu.d.append('div')\n\t\tdiv.append('label').html('Opacity:&nbsp;')\n\t\tthis.opacityInput = div.append('input')\n\t\tthis.opacityInput\n\t\t\t.attr('this.anchorType', 'number')\n\t\t\t.attr('min', 0)\n\t\t\t.attr('max', 1)\n\t\t\t.attr('step', 0.01)\n\t\t\t.property('value', this.settings.opacity)\n\t\t\t.style('width', '50px')\n\t}\n\n\taddSubmitBtns() {\n\t\tif (this.anchorType) return\n\t\tconst div = this.anchormenu.d.append('div')\n\t\tdiv.append('label').html('Add Anchor: ')\n\t\tdiv\n\t\t\t.append('button')\n\t\t\t.html('R')\n\t\t\t.on('click', () => {\n\t\t\t\tnew SyncedAnchors(this.getSettings('r'))\n\t\t\t\tthis.anchormenu.hide()\n\t\t\t})\n\t\tdiv\n\t\t\t.append('button')\n\t\t\t.html('D')\n\t\t\t.on('click', () => {\n\t\t\t\tnew SyncedAnchors(this.getSettings('d'))\n\t\t\t\tthis.anchormenu.hide()\n\t\t\t})\n\t\tdiv\n\t\t\t.append('button')\n\t\t\t.html('X')\n\t\t\t.on('click', () => {\n\t\t\t\tnew SyncedAnchors(this.getSettings('x'))\n\t\t\t\tthis.anchormenu.hide()\n\t\t\t})\n\t\tdiv\n\t\t\t.append('button')\n\t\t\t.html('synced')\n\t\t\t.on('click', () => {\n\t\t\t\tnew SyncedAnchors(this.getSettings('synced'))\n\t\t\t\tthis.anchormenu.hide()\n\t\t\t})\n\t}\n\n\tgetSettings(anchorType) {\n\t\treturn Object.assign({}, this.opts, {\n\t\t\tanchorType: anchorType,\n\t\t\topacity: this.opacityInput.property('value'),\n\t\t\tx: this.xInput.property('value') * this.sharewidth,\n\t\t\ty: this.yInput.property('value') * this.shareheight,\n\t\t\tstroke: this.strokeInput.property('value')\n\t\t})\n\t}\n\n\taddCoordInput() {\n\t\tconst xdiv = this.anchormenu.d.append('div')\n\t\txdiv.append('label').html('X:&nbsp;')\n\t\tthis.xInput = xdiv.append('input')\n\t\tthis.xInput\n\t\t\t.attr('this.anchorType', 'number')\n\t\t\t.attr('min', 0)\n\t\t\t.attr('max', 1)\n\t\t\t.attr('step', 0.01)\n\t\t\t.property('value', 0)\n\t\t\t.style('width', '80px')\n\n\t\tconst ydiv = this.anchormenu.d.append('div')\n\t\tydiv.append('label').html('Y:&nbsp;')\n\t\tthis.yInput = ydiv.append('input')\n\t\tthis.yInput\n\t\t\t.attr('this.anchorType', 'number')\n\t\t\t.attr('min', 0)\n\t\t\t.attr('max', 1)\n\t\t\t.attr('step', 0.01)\n\t\t\t.property('value', 0)\n\t\t\t.style('width', '80px')\n\t}\n\n\taddDeleteBtn() {\n\t\tif (!this.anchorType) return\n\t\tconst div = this.anchormenu.d.append('div')\n\t\tdiv\n\t\t\t.append('button')\n\t\t\t.html('Delete')\n\t\t\t.on('click', () => {\n\t\t\t\tthis.g_anchor.remove()\n\t\t\t\tthis.anchormenu.hide()\n\t\t\t})\n\t}\n}\n\nclass SyncedAnchors extends Anchors {\n\tconstructor(opts) {\n\t\tsuper(opts)\n\t\tthis.render()\n\n\t\tthis.strokeInput.on('change', () => {\n\t\t\tthis.settings.stroke = this.strokeInput.property('value')\n\t\t\tthis.g_anchor.style('stroke', this.settings.stroke)\n\t\t\tthis.anchormenu.hide()\n\t\t})\n\n\t\tthis.opacityInput.on('change', () => {\n\t\t\tthis.settings.opacity = input.property('value')\n\t\t\tthis.g_anchor.style('opacity', this.settings.opacity)\n\t\t\tthis.anchormenu.hide()\n\t\t})\n\n\t\tthis.xInput.on('change', () => {\n\t\t\tthis.settings.x = +this.xInput.property('value') * this.sharewidth\n\t\t\tthis.settings.currX = this.settings.x + this.settings.xOffset\n\t\t\tif (this.d_anchor) {\n\t\t\t\tthis.d_anchor\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(1000)\n\t\t\t\t\t.attr('x1', this.settings.currX)\n\t\t\t\t\t.attr('x2', this.settings.currX)\n\t\t\t}\n\t\t\tif (this.x_anchor) {\n\t\t\t\tthis.x_anchor\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(1000)\n\t\t\t\t\t.attr('transform', 'translate(' + this.settings.currX + ',' + this.settings.currY + ')')\n\t\t\t}\n\t\t\tthis.anchormenu.hide()\n\t\t})\n\n\t\tthis.yInput.on('change', () => {\n\t\t\tthis.settings.y = +this.yInput.property('value') * this.shareheight\n\t\t\tthis.settings.currY = -this.settings.y + this.settings.yOffset\n\t\t\tif (this.r_anchor) {\n\t\t\t\tthis.r_anchor\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(1000)\n\t\t\t\t\t.attr('y1', this.settings.currY)\n\t\t\t\t\t.attr('y2', this.settings.currY)\n\t\t\t}\n\t\t\tif (this.x_anchor) {\n\t\t\t\tthis.x_anchor\n\t\t\t\t\t.transition()\n\t\t\t\t\t.duration(1000)\n\t\t\t\t\t.attr('transform', 'translate(' + this.settings.currX + ',' + this.settings.currY + ')')\n\t\t\t}\n\t\t\tthis.anchormenu.hide()\n\t\t})\n\t}\n\n\trender() {\n\t\tthis.g_anchor = this.opts.wrapper\n\t\t\t.append('g')\n\t\t\t.style('stroke', this.settings.stroke)\n\t\t\t.style('opacity', this.settings.opacity)\n\t\t\t.style('display', this.settings.visible ? '' : 'none')\n\t\t\t.style('stroke-width', this.settings.strokeWidth)\n\t\t\t.on(\n\t\t\t\t'click',\n\t\t\t\tthis.anchorType == 'synced'\n\t\t\t\t\t? null\n\t\t\t\t\t: event => {\n\t\t\t\t\t\t\tthis.anchormenu.showunder(event.target)\n\t\t\t\t\t }\n\t\t\t)\n\n\t\tthis.renderD()\n\t\tthis.renderR()\n\t\tthis.renderX()\n\t}\n\n\trenderD() {\n\t\tif (!['synced', 'd'].includes(this.anchorType)) return\n\t\tthis.d_anchor = this.g_anchor.append('line')\n\t\tconst o = this.opts\n\t\tthis.updateD(o.shareheight + o.sp2, o.shareheight + o.sample1height)\n\t}\n\n\tupdateD(y1, y2) {\n\t\tif (!['synced', 'd'].includes(this.anchorType)) return\n\t\tthis.settings.D = { y1, y2 }\n\t\tthis.d_anchor\n\t\t\t.attr('x1', this.settings.currX)\n\t\t\t.attr('x2', this.settings.currX)\n\t\t\t.attr('y1', y1)\n\t\t\t.attr('y2', y2)\n\t}\n\n\trenderR() {\n\t\tif (!['synced', 'r'].includes(this.anchorType)) return\n\t\tthis.r_anchor = this.g_anchor.append('line')\n\t\tconst o = this.opts\n\t\tthis.updateR(o.axiswidth + o.sp, o.sample2height + o.sp)\n\t}\n\n\tupdateR(x1, x2) {\n\t\tif (!['synced', 'r'].includes(this.anchorType)) return\n\t\tthis.settings.R = { x1, x2 }\n\t\tthis.r_anchor\n\t\t\t.attr('x1', x1)\n\t\t\t.attr('x2', x2)\n\t\t\t.attr('y1', this.settings.currY)\n\t\t\t.attr('y2', this.settings.currY)\n\t}\n\n\trenderX() {\n\t\tif (!['synced', 'x'].includes(this.anchorType)) return\n\t\tthis.x_anchor = this.g_anchor\n\t\t\t.append('g')\n\t\t\t.attr('transform', 'translate(' + this.settings.currX + ',' + this.settings.currY + ')')\n\t\tthis.bindXDrag()\n\n\t\t// create background for better mousemove capture\n\t\tthis.x_anchor\n\t\t\t.append('circle')\n\t\t\t.attr('cx', 0) //this.settings.xarmlen)\n\t\t\t.attr('cy', 0) //this.settings.xarmlen)\n\t\t\t.attr('r', this.settings.xarmlen)\n\t\t\t.style('opacity', 0)\n\n\t\t// make an +\n\t\tthis.x_anchor\n\t\t\t.append('line')\n\t\t\t.attr('x1', -this.settings.xarmlen)\n\t\t\t.attr('x2', this.settings.xarmlen)\n\t\t\t.attr('y1', 0)\n\t\t\t.attr('y2', 0)\n\n\t\tthis.x_anchor\n\t\t\t.append('line')\n\t\t\t.attr('x1', 0)\n\t\t\t.attr('x2', 0)\n\t\t\t.attr('y1', this.settings.xarmlen)\n\t\t\t.attr('y2', -this.settings.xarmlen)\n\t}\n\n\tbindXDrag() {\n\t\tif (!['synced'].includes(this.anchorType)) return\n\t\tthis.x_anchor.on('mousedown', event => {\n\t\t\tconst x = event.clientX\n\t\t\tconst y = event.clientY\n\t\t\tlet _x = this.settings.currX,\n\t\t\t\t_y = this.settings.currY\n\n\t\t\tthis.x_anchor\n\t\t\t\t.on('mousemove', event => {\n\t\t\t\t\t_x = this.settings.currX - x + event.clientX\n\t\t\t\t\t_y = this.settings.currY - y + event.clientY\n\t\t\t\t\tthis.r_anchor.attr('y1', _y).attr('y2', _y)\n\t\t\t\t\tthis.d_anchor.attr('x1', _x).attr('x2', _x)\n\t\t\t\t\tthis.x_anchor.attr('transform', 'translate(' + _x + ',' + _y + ')')\n\t\t\t\t})\n\t\t\t\t.on('mouseup', event => {\n\t\t\t\t\tthis.x_anchor.on('mousemove', null)\n\t\t\t\t\t_x = this.settings.currX - x + event.clientX\n\t\t\t\t\t_y = this.settings.currY - y + event.clientY\n\t\t\t\t\tif (_x == this.settings.currX && _y == this.settings.currY) {\n\t\t\t\t\t\tthis.g_anchor.remove()\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.settings.x = _x < this.settings.xOffset ? 0 : _x - this.settings.xOffset\n\t\t\t\t\tthis.settings.y = _y > this.settings.yOffset ? 0 : -(_y - this.settings.yOffset)\n\t\t\t\t\tthis.settings.currX = this.settings.x + this.settings.xOffset\n\t\t\t\t\tthis.settings.currY = -this.settings.y + this.settings.yOffset\n\n\t\t\t\t\tthis.r_anchor\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.duration(100)\n\t\t\t\t\t\t.attr('y1', this.settings.currY)\n\t\t\t\t\t\t.attr('y2', this.settings.currY)\n\t\t\t\t\tthis.d_anchor\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.duration(100)\n\t\t\t\t\t\t.attr('x1', this.settings.currX)\n\t\t\t\t\t\t.attr('x2', this.settings.currX)\n\t\t\t\t\tthis.x_anchor\n\t\t\t\t\t\t.transition()\n\t\t\t\t\t\t.duration(100)\n\t\t\t\t\t\t.attr('transform', 'translate(' + this.settings.currX + ',' + this.settings.currY + ')')\n\t\t\t\t})\n\t\t\t\t.on('mouseleave', () => {\n\t\t\t\t\tthis.x_anchor.on('mousemove', null)\n\t\t\t\t})\n\t\t})\n\t}\n}\n", "import { select as d3select } from 'd3-selection'\nimport * as client from './client'\nimport { scaleLinear } from 'd3-scale'\nimport { axisLeft, axisTop, axisBottom } from 'd3-axis'\nimport { format as d3format } from 'd3-format'\nimport {\n\tsymbol,\n\tsymbolCircle,\n\tsymbolCross,\n\tsymbolDiamond,\n\tsymbolSquare,\n\tsymbolStar,\n\tsymbolTriangle,\n\tsymbolWye\n} from 'd3-shape'\nimport * as common from '#shared/common.js'\nimport Anchors from './2dmaf.anchors'\nimport { renderSandboxFormDiv } from '../dom/sandbox.ts'\n\n/*\ninput file/data is 2dmaf format of 1 pair or multiple pairs\n\nmake a 2dmaf plot for each pair\n\n*/\n\nconst color1 = '#f9766c'\nconst color2 = '#609cff'\nconst colorshare = '#01b937'\nconst symbols = {\n\tcircle: symbolCircle,\n\tcross: symbolCross,\n\tdiamond: symbolDiamond,\n\tsquare: symbolSquare,\n\tstar: symbolStar,\n\ttriangle: symbolTriangle,\n\twye: symbolWye\n}\n// for selecting what tagName to use when appending\n// needed for now until the issue with selection.append([function]) is figured out\nconst symbolFilters = {\n\tpath: d => d.symbol,\n\tcircle: d => !d.symbol\n}\nconst sharedFilters = {\n\tpath: d => d.symbol,\n\tellipse: d => !d.symbol\n}\n\nexport function d2mafui(genomes, holder) {\n\tlet pane, inputdiv, gselect, filediv, saydiv, visualdiv\n\tif (holder !== undefined) [inputdiv, gselect, filediv, saydiv, visualdiv] = renderSandboxFormDiv(holder, genomes)\n\telse {\n\t\t;[pane, inputdiv, gselect, filediv, saydiv, visualdiv] = client.newpane3(100, 100, genomes)\n\t\tpane.header.text('2DMAF: mutant allele fraction plot between a pair of samples')\n\t\tpane.body.style('margin', '10px')\n\t}\n\tinputdiv\n\t\t.append('div')\n\t\t.style('margin-top', '20px')\n\t\t.html(\n\t\t\t'<ul>' +\n\t\t\t\t'<li><a href=\"https://docs.google.com/document/d/1anyEDMcW1lTSf8399Li2G9r57V-Fqp2591WvoODY7n4/edit#heading=h.mne2ecmp9m13\" target=_blank>File format</a></li>' +\n\t\t\t\t'<li>To define samples differently than \"Diagnosis/Relapse\", <a href=https://plus.google.com/+XinZhou_s/posts/WqBVvmd3wYR target=_blank>see how</a>.</li>' +\n\t\t\t\t'</ul>'\n\t\t)\n\tinputdiv\n\t\t.append('p')\n\t\t.html('<a href=https://proteinpaint.stjude.org/ppdemo/hg19/2dmaf/2dmaf.txt target=_blank>Example file</a>')\n\tfunction cmt(t, red) {\n\t\tsaydiv.style('color', red ? 'red' : 'black').html(t)\n\t}\n\tconst fileui = () => {\n\t\tfilediv.selectAll('*').remove()\n\t\tconst input = filediv\n\t\t\t.append('input')\n\t\t\t.attr('type', 'file')\n\t\t\t.on('change', event => {\n\t\t\t\tconst file = event.target.files[0]\n\t\t\t\tif (!file) {\n\t\t\t\t\tfileui()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (!file.size) {\n\t\t\t\t\tcmt('Invalid file ' + file.name)\n\t\t\t\t\tfileui()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload = event => {\n\t\t\t\t\tconst usegenome = gselect.options[gselect.selectedIndex].innerHTML\n\t\t\t\t\tconst err = parseraw(event.target.result.trim().split(/\\r?\\n/), genomes[usegenome], file.name, visualdiv)\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tcmt(err, 1)\n\t\t\t\t\t\tfileui()\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t// success\n\t\t\t\t\tinputdiv.remove()\n\t\t\t\t\tfilediv.remove()\n\t\t\t\t\tsaydiv.remove()\n\t\t\t\t}\n\t\t\t\treader.onerror = function () {\n\t\t\t\t\tcmt('Error reading file ' + file.name, 1)\n\t\t\t\t\tfileui()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\treader.readAsText(file, 'utf8')\n\t\t\t})\n\n\t\tsetTimeout(() => input.node().focus(), 1100)\n\t}\n\tfileui()\n}\n\nexport function d2mafparseinput(obj, holder) {\n\t/*\n\tobj\n\t.genome\n\t.hostURL\n\t.datasetname\n\t.input TEXt\n\t*/\n\tif (!obj.genome) {\n\t\tclient.sayerror(holder, '.genome missing for 2dmaf')\n\t\treturn\n\t}\n\tif (!obj.input) {\n\t\tclient.sayerror(holder, '.input missing for 2dmaf')\n\t\treturn\n\t}\n\tconst err = parseraw(obj.input.trim().split(/\\r?\\n/), obj.genome, obj.datasetname || 'unnamed dataset', holder)\n\tif (err) {\n\t\tclient.sayerror(holder, '2DMAF data error: ' + err)\n\t}\n}\n\nfunction parseraw(lines, genome, filename, holder) {\n\tconst [headererror, header, headerattrlst] = parseheader(lines[0].trim())\n\tif (headererror) {\n\t\treturn headererror\n\t}\n\n\tconst pairs = {}\n\t// key: pair name, val: {}\n\n\tconst g2mlst = {} // for dataset\n\n\tconst peoplehash = {}\n\n\tconst genehash = {}\n\n\tconst flag = {\n\t\tgood: 0,\n\t\tpurity1set: false,\n\t\tpurity2set: false,\n\t\tpairsetname: {}\n\t}\n\tconst badlines = []\n\n\tconst mclasslabel2key = {}\n\tfor (const k in common.mclass) {\n\t\tmclasslabel2key[common.mclass[k].label.toUpperCase()] = k\n\t}\n\n\tfor (let i = 1; i < lines.length; i++) {\n\t\tif (lines[i] == '') continue\n\t\tif (lines[i][0] == '#') {\n\t\t\tif (lines[i].startsWith('##samplename')) {\n\t\t\t\tconst l = lines[i].trim().split(/[\\s\\t]+/)\n\t\t\t\tif (l.length == 4) {\n\t\t\t\t\tflag.pairsetname[l[1]] = { 1: l[2], 2: l[3] }\n\t\t\t\t} else {\n\t\t\t\t\treturn 'Line ' + (i + 1) + ': invalid samplename line: must be \"##samplename [patient] [sample1] [sample2]\"'\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tconst lst = lines[i].trim().split('\\t')\n\t\tconst m = {}\n\t\tfor (let j = 0; j < header.length; j++) {\n\t\t\tif (lst[j] != undefined && lst[j] != '') {\n\t\t\t\tm[header[j]] = lst[j]\n\t\t\t}\n\t\t}\n\t\tif (!m.sample) {\n\t\t\treturn 'Line ' + (i + 1) + ': missing sample'\n\t\t}\n\t\tif (m.chr) {\n\t\t\tif (m.chr.indexOf('chr') != 0) {\n\t\t\t\tm.chr = 'chr' + m.chr\n\t\t\t}\n\t\t}\n\t\tif (m.chrstart) {\n\t\t\tm.chrstart = Number.parseInt(m.chrstart)\n\t\t\tif (Number.isNaN(m.chrstart)) {\n\t\t\t\treturn 'Line ' + (i + 1) + ': invalid chromosome position'\n\t\t\t}\n\t\t}\n\t\tif (m.Dcnvloh) {\n\t\t\tm.Dcnvlohraw = m.Dcnvloh\n\t\t\tconst s = m.Dcnvloh.toLowerCase()\n\t\t\tif (s == 'yes' || (s != 'diploid' && s != 'haploid')) {\n\t\t\t\tm.Dcnvloh = true\n\t\t\t} else {\n\t\t\t\tm.Dcnvloh = false\n\t\t\t}\n\t\t}\n\t\tif (m.Rcnvloh) {\n\t\t\tm.Rcnvlohraw = m.Rcnvloh\n\t\t\tconst s = m.Rcnvloh.toLowerCase()\n\t\t\tif (s == 'yes' || (s != 'diploid' && s != 'haploid')) {\n\t\t\t\tm.Rcnvloh = true\n\t\t\t} else {\n\t\t\t\tm.Rcnvloh = false\n\t\t\t}\n\t\t}\n\t\t// set\n\t\tif (!m.call_d) {\n\t\t\tbadlines.push([i, 'missing call_d', lst])\n\t\t\tcontinue\n\t\t}\n\t\tif (m.call_d != 'somatic' && m.call_d != 'wildtype') {\n\t\t\tbadlines.push([i, 'call_d is neither somatic nor wildtype', lst])\n\t\t\tcontinue\n\t\t}\n\t\tif (!m.call_r) {\n\t\t\tbadlines.push([i, 'missing call_r', lst])\n\t\t\tcontinue\n\t\t}\n\t\tif (m.call_r != 'somatic' && m.call_r != 'wildtype') {\n\t\t\tbadlines.push([i, 'call_r is neither somatic nor wildtype', lst])\n\t\t\tcontinue\n\t\t}\n\t\tif (m.call_d == 'somatic') {\n\t\t\tif (m.call_r == 'somatic') {\n\t\t\t\tm.set_share = true\n\t\t\t} else {\n\t\t\t\tm.set_1 = true\n\t\t\t}\n\t\t} else {\n\t\t\tif (m.call_r == 'somatic') {\n\t\t\t\tm.set_2 = true\n\t\t\t}\n\t\t}\n\t\t// type\n\t\tif (!m.type) {\n\t\t\tbadlines.push([i, 'missing type', lst])\n\t\t\tcontinue\n\t\t}\n\t\tconst s = m.type.toLowerCase()\n\t\tif (s == 'snv' || s == 'snp' || s == 'mnv' || s == 'complex') {\n\t\t\tm.issnv = true\n\t\t} else if (s == 'indel' || s == 'ins' || s == 'del') {\n\t\t\tm.isindel = true\n\t\t} else {\n\t\t\tbadlines.push([i, 'type must be either SNV or INDEL', lst])\n\t\t\tcontinue\n\t\t}\n\t\t// numbers\n\n\t\t// required: MinD.D TinD.D\n\t\tlet key = 'MinD.D'\n\t\tlet a = Number.parseInt(m[key])\n\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\tbadlines.push([i, 'invalid ' + key + ' value', lst])\n\t\t\tcontinue\n\t\t}\n\t\tm[key] = a\n\n\t\tkey = 'TinD.D'\n\t\ta = Number.parseInt(m[key])\n\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\tbadlines.push([i, 'invalid ' + key + ' value', lst])\n\t\t\tcontinue\n\t\t}\n\t\tm[key] = a\n\n\t\tif (m['TinD.D'] < m['MinD.D']) {\n\t\t\tbadlines.push([i, 'TinD.D value lower than MinD.D', lst])\n\t\t\tcontinue\n\t\t}\n\n\t\t// optional\n\t\tkey = 'MinN.D'\n\t\tif (key in m) {\n\t\t\ta = Number.parseInt(m[key])\n\t\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\t\tdelete m[key]\n\t\t\t} else {\n\t\t\t\tm[key] = a\n\t\t\t}\n\t\t}\n\t\tkey = 'TinN.D'\n\t\tif (key in m) {\n\t\t\ta = Number.parseInt(m[key])\n\t\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\t\tdelete m[key]\n\t\t\t} else {\n\t\t\t\tm[key] = a\n\t\t\t}\n\t\t}\n\n\t\t// required: MinD.R, TinD.R\n\t\tkey = 'MinD.R'\n\t\ta = Number.parseInt(m[key])\n\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\tbadlines.push([i, 'invalid ' + key + ' value', lst])\n\t\t\tcontinue\n\t\t}\n\t\tm[key] = a\n\t\tkey = 'TinD.R'\n\t\ta = Number.parseInt(m[key])\n\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\tbadlines.push([i, 'invalid ' + key + ' value', lst])\n\t\t\tcontinue\n\t\t}\n\t\tm[key] = a\n\n\t\tif (m['TinD.R'] < m['MinD.R']) {\n\t\t\tbadlines.push([i, 'TinD.R value lower than MinD.R', lst])\n\t\t\tcontinue\n\t\t}\n\n\t\t// optional\n\t\tkey = 'MinN.R'\n\t\tif (key in m) {\n\t\t\ta = Number.parseInt(m[key])\n\t\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\t\tdelete m[key]\n\t\t\t} else {\n\t\t\t\tm[key] = a\n\t\t\t}\n\t\t}\n\t\tkey = 'TinN.R'\n\t\tif (key in m) {\n\t\t\ta = Number.parseInt(m[key])\n\t\t\tif (Number.isNaN(a) || a < 0) {\n\t\t\t\tdelete m[key]\n\t\t\t} else {\n\t\t\t\tm[key] = a\n\t\t\t}\n\t\t}\n\n\t\tif (m.symbol) {\n\t\t\tif (!symbols[m.symbol]) {\n\t\t\t\tbadlines.push([i, \"Invalid symbol value='\" + m.symbol + \"'\", lst])\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif (m.class) {\n\t\t\tconst s = m.class.toUpperCase()\n\t\t\tif (s in mclasslabel2key) {\n\t\t\t\tm.class = mclasslabel2key[s]\n\t\t\t} else {\n\t\t\t\tbadlines.push([i, 'invalid mutation class ' + m.class, lst])\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\t// style\n\t\tm.style = {\n\t\t\tfill: m.issnv ? 'white' : 'black',\n\t\t\tfillhl: m.class ? common.mclass[m.class].color : '#ccc',\n\t\t\tstroke: m.chr == 'chrX' ? 'black' : m.issnv ? 'black' : 'none',\n\t\t\tstrokehl: m.class ? common.mclass[m.class].color : 'black',\n\t\t\tfillopacity: m.issnv ? 0 : 0.2,\n\t\t\tstrokeopacity: 0.2\n\t\t}\n\n\t\tif (m['TinD.D'] > 0) {\n\t\t\tm.maf1 = m['MinD.D'] / m['TinD.D']\n\t\t}\n\t\tif (m['TinD.R'] > 0) {\n\t\t\tm.maf2 = m['MinD.R'] / m['TinD.R']\n\t\t}\n\n\t\t// good mutation\n\n\t\tpeoplehash[m.sample] = 1\n\t\tif (m.gene) {\n\t\t\tgenehash[m.gene] = 1\n\t\t}\n\t\tif (!(m.sample in pairs)) {\n\t\t\tpairs[m.sample] = {\n\t\t\t\tname: m.sample,\n\t\t\t\tshown: false,\n\t\t\t\theader: header,\n\t\t\t\tmlst: []\n\t\t\t}\n\t\t}\n\n\t\tconst v = pairs[m.sample]\n\t\tv.mlst.push(m)\n\n\t\t// tumor purity may be present in every line, need to be consistant across entire sample\n\t\tif (m.purity1) {\n\t\t\tlet p = Number.parseFloat(m.purity1)\n\t\t\tif (Number.isNaN(p)) {\n\t\t\t\tbadlines.push([i, 'diagnosis tumor purity should be a number'])\n\t\t\t\tp = 0\n\t\t\t} else {\n\t\t\t\tif (p > 1) {\n\t\t\t\t\tp /= 100\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (p > 0) {\n\t\t\t\t// valid purity\n\t\t\t\tif (v.purity1 == undefined) {\n\t\t\t\t\tv.purity1 = p\n\t\t\t\t\tflag.purity1set = true\n\t\t\t\t} else if (v.purity1 != p) {\n\t\t\t\t\tbadlines.push([\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t'diagnosis tumor purity value ' + p + ' is different from existing value ' + v.purity1 + ' in ' + m.sample,\n\t\t\t\t\t\tlst\n\t\t\t\t\t])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (m.purity2) {\n\t\t\tlet p = Number.parseFloat(m.purity2)\n\t\t\tif (Number.isNaN(p)) {\n\t\t\t\tbadlines.push([i, 'relapse tumor purity should be a number'])\n\t\t\t\tp = 0\n\t\t\t} else {\n\t\t\t\tif (p > 1) {\n\t\t\t\t\tp /= 100\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (p > 0) {\n\t\t\t\t// valid purity\n\t\t\t\tif (v.purity2 == undefined) {\n\t\t\t\t\tv.purity2 = p\n\t\t\t\t\tflag.purity2set = true\n\t\t\t\t} else if (v.purity2 != p) {\n\t\t\t\t\tbadlines.push([\n\t\t\t\t\t\ti,\n\t\t\t\t\t\t'relapse tumor purity value ' + p + ' is different from existing value ' + v.purity2 + ' in ' + m.sample,\n\t\t\t\t\t\tlst\n\t\t\t\t\t])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tflag.good++\n\n\t\t/*\n\t\tif(m.gene) {\n\t\t\t// bulkdata register\n\t\t\tvar _gn=m.gene.toUpperCase()\n\t\t\tif(!(_gn in g2mlst)) {\n\t\t\t\tg2mlst[_gn]=[]\n\t\t\t}\n\t\t\tif(m.call_d=='somatic') {\n\t\t\t\tvar m2={}\n\t\t\t\tfor(var k in m) {\n\t\t\t\t\tm2[k]=m[k]\n\t\t\t\t}\n\t\t\t\tm2.sample=m.sample+'.D'\n\t\t\t\tm2.origin='S'\n\t\t\t\tm2.dt=sja.dtsnvindel\n\t\t\t\tm2.maf_diagnosis={v1:m['MinD.D'],v2:m['TinD.D'],f:m.maf1}\n\t\t\t\tif('MinN.D' in m) {\n\t\t\t\t\tm2.maf_diagnosis_normal={v1:m['MinN.D'],v2:m['TinN.D'],f:m['MinN.D']/m['TinN.D']}\n\t\t\t\t}\n\t\t\t\tg2mlst[_gn].push(m2)\n\t\t\t}\n\t\t\tif(m.call_r=='somatic') {\n\t\t\t\tvar m2={}\n\t\t\t\tfor(var k in m) {\n\t\t\t\t\tm2[k]=m[k]\n\t\t\t\t}\n\t\t\t\tm2.sample=m.sample+'.R'\n\t\t\t\tm2.origin='R'\n\t\t\t\tm2.dt=sja.dtsnvindel\n\t\t\t\tm2.maf_relapse={v1:m['MinD.R'],v2:m['TinD.R'],f:m.maf2}\n\t\t\t\tif('MinN.D' in m) {\n\t\t\t\t\tm2.maf_relapse_normal={v1:m['MinN.D'],v2:m['TinN.D'],f:m['MinN.D']/m['TinN.D']}\n\t\t\t\t}\n\t\t\t\tg2mlst[_gn].push(m2)\n\t\t\t}\n\t\t}\n\t\t*/\n\t}\n\t// done iterating\n\tif (badlines.length > 0) {\n\t\tclient.bulk_badline(header, badlines)\n\t}\n\tif (flag.good == 0) {\n\t\treturn 'No valid data.'\n\t}\n\n\t// good data ready\n\tholder.append('p').text('File: ' + filename)\n\n\t/*\n\tno dataset\n\n\t// register in dataset\n\tvar dsname=thisfile.name;\n\tif(dsname in sja.datasets) {\n\t\t// name already used\n\t\tdsname='user: '+dsname;\n\t\tif(dsname in sja.datasets) {\n\t\t\tvar j=1;\n\t\t\tvar n2=dsname+' '+j;\n\t\t\twhile(n2 in sja.datasets) {\n\t\t\t\tj++;\n\t\t\t\tn2=dsname+' '+j;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar s=gselect[0][0]\n\tvar usegenome=s.options[s.selectedIndex].innerHTML\n\tvar hassample=header.indexOf('sample')!=-1\n\tsja.datasets[dsname]={\n\t\tgenome:usegenome,\n\t\tshortlabel:dsname,\n\t\tbulkdata:g2mlst,\n\t\theader:header,\n\t\tmbygmcoord:true,\n\t\tsample_attributes:hparse.atlst,\n\t\thassample:hassample\n\t\t}\n\t*/\n\n\t// people and gene total number\n\tlet peopletotal = 0\n\tfor (const n in peoplehash) peopletotal++\n\tlet genetotal = 0\n\tfor (const n in genehash) genetotal++\n\n\tconst boxh = 16\n\tconst table = holder.append('table')\n\n\tconst tr = table.append('tr')\n\tconst td = tr.append('td').attr('valign', 'top')\n\ttd.append('div').html(\n\t\t'<div style=\"display:inline-block;width:' +\n\t\t\tboxh +\n\t\t\t'px;height:' +\n\t\t\tboxh +\n\t\t\t'px;background-color:' +\n\t\t\tcolor1 +\n\t\t\t'\"></div> Diagnosis only ' +\n\t\t\t'<div style=\"display:inline-block;width:' +\n\t\t\tboxh +\n\t\t\t'px;height:' +\n\t\t\tboxh +\n\t\t\t'px;background-color:' +\n\t\t\tcolorshare +\n\t\t\t'\"></div> Shared ' +\n\t\t\t'<div style=\"display:inline-block;width:' +\n\t\t\tboxh +\n\t\t\t'px;height:' +\n\t\t\tboxh +\n\t\t\t'px;background-color:' +\n\t\t\tcolor2 +\n\t\t\t'\"></div> Relapse only'\n\t)\n\tconst peopleholder = td\n\t\t.append('div')\n\t\t.style('margin-top', '10px')\n\t\t.style('height', '200px')\n\t\t.style('width', '300px')\n\t\t.style('padding', '5px')\n\t\t.style('overflow-y', 'scroll')\n\t\t.style('resize', 'both')\n\t\t.style('border', 'solid 1px #ccc')\n\n\tconst geneholder = td\n\t\t.append('div')\n\t\t.style('margin-top', '10px')\n\t\t.style('height', '200px')\n\t\t.style('width', '300px')\n\t\t.style('padding', '5px')\n\t\t.style('overflow-y', 'scroll')\n\t\t.style('resize', 'both')\n\t\t.style('border', 'solid 1px #ccc')\n\n\tconst showholder = tr.append('td').style('vertical-align', 'top')\n\n\tfor (const n in pairs) {\n\t\tconst ss = flag.pairsetname[n]\n\t\tif (ss) {\n\t\t\tpairs[n].setname = ss\n\t\t} else {\n\t\t\tpairs[n].setname = { 1: 'Diagnosis', 2: 'Relapse' }\n\t\t}\n\t}\n\n\tconst odata = {\n\t\tgenome: genome,\n\t\t//dsname:dsname,\n\t\tpairs: pairs,\n\t\tcolor1: color1,\n\t\tcolor2: color2,\n\t\tcolorshare: colorshare,\n\t\trowh: boxh,\n\t\tpeoplewidth: 150,\n\t\tgenewidth: 150,\n\t\tshowholder: showholder,\n\t\t//peoplelimit:Math.min(20,peopletotal),\n\t\tgenelimit: Math.min(20, genetotal),\n\t\tpurity1set: flag.purity1set,\n\t\tpurity2set: flag.purity2set\n\t}\n\n\td2maf_peopletable(odata, peopleholder)\n\n\t//d2maf_genetable(odata)\n}\n\nfunction parseheader(line) {\n\tconst lower = line.toLowerCase().split('\\t')\n\tconst header = line.split('\\t')\n\tif (header.length <= 1) {\n\t\treturn ['invalid file header']\n\t}\n\tconst htry = (...lst) => {\n\t\tfor (const i of lst) {\n\t\t\tconst j = lower.indexOf(i)\n\t\t\tif (j != -1) return j\n\t\t}\n\t\treturn -1\n\t}\n\n\tlet i = htry('person', 'sample', 'samplename', 'patient')\n\tif (i == -1) return ['sample missing from header']\n\theader[i] = 'sample'\n\n\ti = htry('type')\n\tif (i == -1) return ['type missing from header']\n\theader[i] = 'type'\n\n\ti = htry('mind.d1_g1', 'mind.d', 'mind')\n\tif (i == -1) return ['MinD.D missing from header']\n\theader[i] = 'MinD.D'\n\n\ti = htry('tind.d1_g1', 'tind.d', 'tind')\n\tif (i == -1) return ['TinD.D missing from header']\n\theader[i] = 'TinD.D'\n\n\ti = htry('mind.r1_g1', 'mind.r', 'minr')\n\tif (i == -1) return ['MinD.R missing from header']\n\theader[i] = 'MinD.R'\n\n\ti = htry('tind.r1_g1', 'tind.r', 'tinr')\n\tif (i == -1) return ['TinD.R missing from header']\n\theader[i] = 'TinD.R'\n\n\ti = htry('call_d1_g1', 'call_d')\n\tif (i == -1) return ['call_d missing from header']\n\theader[i] = 'call_d'\n\n\ti = htry('call_r1_g1', 'call_r')\n\tif (i == -1) return ['call_r missing from header']\n\theader[i] = 'call_r'\n\n\ti = htry('genename', 'gene')\n\tif (i == -1) return ['gene missing from header']\n\theader[i] = 'gene'\n\n\ti = htry('amino_acid_change', 'annovar_sj_aachange', 'aachange', 'protein_change')\n\tif (i == -1) return ['amino_acid_change missing from header']\n\theader[i] = 'mname'\n\n\ti = htry('class', 'mclass', 'variant_class', 'variant_classification', 'annovar_sj_class')\n\tif (i == -1) return ['variant_class missing from header']\n\theader[i] = 'class'\n\n\ti = htry('chromosome', 'chr')\n\tif (i == -1) return ['chromosome missing from header']\n\theader[i] = 'chr'\n\n\ti = htry('start', 'start_position', 'wu_hg19_pos', 'chr_position')\n\tif (i == -1) return ['start missing from header']\n\theader[i] = 'chrstart'\n\n\t// optional\n\ti = htry('minn.d1_g1', 'minn.d')\n\tif (i != -1) header[i] = 'MinN.D'\n\ti = htry('tinn.d1_g1', 'tinn.d')\n\tif (i != -1) header[i] = 'TinN.D'\n\ti = htry('minn.r1_g1', 'minn.r')\n\tif (i != -1) header[i] = 'MinN.R'\n\ti = htry('tinn.r1_g1', 'tinn.r')\n\tif (i != -1) header[i] = 'TinN.R'\n\n\ti = htry('mrna_accession', 'refseq_mrna_id', 'annovar_sj_filter_isoform', 'refseq')\n\tif (i != -1) header[i] = 'isoform'\n\ti = htry('primary_purity', 'purity_d')\n\tif (i != -1) header[i] = 'purity1'\n\ti = htry('relapse_purity', 'purity_r')\n\tif (i != -1) header[i] = 'purity2'\n\ti = htry('tag_d_cnvloh', 'cnvloh_d')\n\tif (i != -1) header[i] = 'Dcnvloh'\n\ti = htry('tag_r_cnvloh', 'cnvloh_r')\n\tif (i != -1) header[i] = 'Rcnvloh'\n\n\tconst atlst = []\n\tfor (const j of header) {\n\t\tswitch (j) {\n\t\t\tcase 'Dcnvloh':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'D. CNV/LOH',\n\t\t\t\t\tget: m => m.Dcnvlohraw\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'Rcnvloh':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'R. CNV/LOH',\n\t\t\t\t\tget: m => m.Rcnvlohraw\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'type':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\tget: m => m.type\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'chr':\n\t\t\t\tbreak\n\t\t\tcase 'chrstart':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'Genome Loc.',\n\t\t\t\t\tget: m => m.chr + ':' + (m.chrstart + 1)\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'class':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'Class',\n\t\t\t\t\tget: m => {\n\t\t\t\t\t\tif (m.class == common.mclassnonstandard) {\n\t\t\t\t\t\t\treturn m.originalclasslabel ? m.originalclasslabel : common.mclass[m.class].label\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn common.mclass[m.class].label\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'mname':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'Mutation',\n\t\t\t\t\tget: m => {\n\t\t\t\t\t\tlet s = m.mname\n\t\t\t\t\t\tif (!s) s = m.cdna_change\n\t\t\t\t\t\treturn s\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'MinD.D':\n\t\t\t\tatlst.push({\n\t\t\t\t\tismaf: true,\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 14,\n\t\t\t\t\treadcountcredible: 30,\n\t\t\t\t\tget: m => m.maf_diagnosis,\n\t\t\t\t\tlabel: 'D. tumor MAF',\n\t\t\t\t\tfill: '#F7483B',\n\t\t\t\t\tfillbg: '#FCBAB6'\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'TinD.D':\n\t\t\t\tbreak\n\t\t\tcase 'MinD.R':\n\t\t\t\tatlst.push({\n\t\t\t\t\tismaf: true,\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 14,\n\t\t\t\t\treadcountcredible: 30,\n\t\t\t\t\tget: m => m.maf_relapse,\n\t\t\t\t\tlabel: 'R. tumor MAF',\n\t\t\t\t\tfill: '#146EFF',\n\t\t\t\t\tfillbg: '#B6D5FC'\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'TinD.R':\n\t\t\t\tbreak\n\t\t\tcase 'MinN.D':\n\t\t\t\tatlst.push({\n\t\t\t\t\tismaf: true,\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 14,\n\t\t\t\t\treadcountcredible: 30,\n\t\t\t\t\tget: m => m.maf_diagnosis_normal,\n\t\t\t\t\tlabel: 'D. normal MAF',\n\t\t\t\t\tfill: '#F7483B',\n\t\t\t\t\tfillbg: '#FCBAB6'\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'TinN.D':\n\t\t\t\tbreak\n\t\t\tcase 'MinN.R':\n\t\t\t\tatlst.push({\n\t\t\t\t\tismaf: true,\n\t\t\t\t\twidth: 60,\n\t\t\t\t\theight: 14,\n\t\t\t\t\treadcountcredible: 30,\n\t\t\t\t\tget: m => m.maf_relapse_normal,\n\t\t\t\t\tlabel: 'R. normal MAF',\n\t\t\t\t\tfill: '#146EFF',\n\t\t\t\t\tfillbg: '#B6D5FC'\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'TinN.R':\n\t\t\t\tbreak\n\t\t\tcase 'call_d':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'D. call',\n\t\t\t\t\tget: m => m.call_d\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'call_r':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'R. call',\n\t\t\t\t\tget: m => m.call_r\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'purity1':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'D. purity',\n\t\t\t\t\tget: m => m.purity1\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'purity2':\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: 'R. purity',\n\t\t\t\t\tget: m => m.purity2\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tatlst.push({\n\t\t\t\t\tlabel: j,\n\t\t\t\t\tget: m => m[j]\n\t\t\t\t})\n\t\t}\n\t}\n\treturn [null, header, atlst]\n}\n\nfunction d2maf_render(showholder, pdata) {\n\tconst tooltip = new client.Menu({ border: 'solid 1px black' })\n\n\tconst set_1 = []\n\tconst set_2 = []\n\tconst set_share = []\n\tconst mlst = pdata.mlst\n\tconst person = mlst[0].sample\n\tconst symbolgen = symbol()\n\n\tlet maxtotal = 0\n\tlet bysymbol = {}\n\tconst mclasses = {}\n\tfor (const m of mlst) {\n\t\tif (m['TinD.D'] > 0) {\n\t\t\tmaxtotal = Math.max(maxtotal, m['TinD.D'])\n\t\t}\n\t\tif (m['TinD.R'] > 0) {\n\t\t\tmaxtotal = Math.max(maxtotal, m['TinD.R'])\n\t\t}\n\t\tif (m.set_share) {\n\t\t\tset_share.push(m)\n\t\t} else if (m.set_1) {\n\t\t\tset_1.push(m)\n\t\t} else if (m.set_2) {\n\t\t\tset_2.push(m)\n\t\t}\n\t\tif (!(m.class in mclasses)) {\n\t\t\tmclasses[m.class] = 0\n\t\t}\n\t\tif (m.symbol) {\n\t\t\tif (!bysymbol[m.symbol]) {\n\t\t\t\tbysymbol[m.symbol] = { numlines: 0, label: m.symbollabel, hidden: false }\n\t\t\t}\n\t\t\tbysymbol[m.symbol].numlines++\n\t\t}\n\t\tmclasses[m.class]++\n\t}\n\n\tconst a = Math.min(window.innerWidth, window.innerHeight)\n\n\tconst axiswidth = 50,\n\t\tsharewidth = a * 0.5,\n\t\tshareheight = a * 0.5,\n\t\tsample1height = shareheight / 2,\n\t\tsample2height = sharewidth / 2,\n\t\tsp = axiswidth / 3,\n\t\tsp2 = sample1height / 5,\n\t\tlabelfontsize = Math.min(20, (12 * a) / 500),\n\t\tradius = a / 40,\n\t\tindelboxw = radius * 0.7,\n\t\tr_cnvloh = 3\n\n\tconst radiusscale = scaleLinear()\n\t\t.domain([0, maxtotal])\n\t\t.range([radius / 2, radius])\n\tconst radiustoarea = d => Math.PI * Math.pow(radiusscale(d), 2)\n\n\tfor (const m of mlst) {\n\t\t// for creating dot label upon pushing button\n\t\tm.radius = Math.max(m['TinD.D'] ? radiusscale(m['TinD.D']) : 0, m['TinD.R'] ? radiusscale(m['TinD.R']) : 0)\n\t}\n\n\t// holder\n\tconst outtable = showholder.append('table')\n\tconst tr = outtable.append('tr')\n\tconst tdgraph = tr.append('td').style('vertical-align', 'top')\n\tconst tdgenetable = tr.append('td').style('vertical-align', 'top')\n\ttdgenetable\n\t\t.append('div')\n\t\t.style('margin', '10px')\n\t\t.text('Name: ' + person)\n\n\t// controls\n\tconst headerdiv = tdgraph.append('div')\n\n\theaderdiv\n\t\t.append('button')\n\t\t.text('Hide')\n\t\t.on('click', () => {\n\t\t\tpdata.shown = false\n\t\t\tif (pdata.handle) {\n\t\t\t\tpdata.handle.attr('font-weight', 'normal')\n\t\t\t}\n\t\t\touttable.remove()\n\t\t})\n\n\tconst anchors = new Anchors({ axiswidth, sp, sp2, sample1height, sample2height, shareheight, sharewidth, headerdiv })\n\n\theaderdiv\n\t\t.append('button')\n\t\t.text('Screenshot')\n\t\t.on('click', () => {\n\t\t\tclient.to_svg(svg.node(), '2dmaf_' + pdata.name)\n\t\t})\n\n\t{\n\t\t// mclass filter\n\t\tconst mcselect = headerdiv.append('select').on('change', event => {\n\t\t\tconst v = event.target.options[event.target.selectedIndex].value\n\t\t\tif (v == 'all') {\n\t\t\t\tselect_share.transition().attr('transform', d => d.posstring + ' scale(1)')\n\t\t\t\tselect_set1.transition().attr('transform', d => d.posstring + ' scale(1)')\n\t\t\t\tselect_set2.transition().attr('transform', d => d.posstring + ' scale(1)')\n\t\t\t\treturn\n\t\t\t}\n\t\t\tselect_share.transition().attr('transform', d => d.posstring + ' scale(' + (d.class == v ? 1 : 0) + ')')\n\t\t\tselect_set1.transition().attr('transform', d => d.posstring + ' scale(' + (d.class == v ? 1 : 0) + ')')\n\t\t\tselect_set2.transition().attr('transform', d => d.posstring + ' scale(' + (d.class == v ? 1 : 0) + ')')\n\t\t})\n\t\tmcselect.append('option').text('Show all mutation classes').property('value', 'all')\n\t\tconst lst = []\n\t\tfor (const c in mclasses) {\n\t\t\tlst.push([c, mclasses[c]])\n\t\t}\n\t\tlst.sort((a, b) => b[1] - a[1])\n\t\tfor (const i of lst) {\n\t\t\tmcselect\n\t\t\t\t.append('option')\n\t\t\t\t.text((i[0] in common.mclass ? common.mclass[i[0]].label : i[0]) + ' (' + i[1] + ')')\n\t\t\t\t.property('value', i[0])\n\t\t}\n\t}\n\n\t/*\nif(pdata.purity1!=undefined) {\n\theaderdiv.append('span').html('&nbsp;Diagnosis expected MAF&nbsp;')\n\tconst select=headerdiv.append('select')\n\tselect.append('option').text('off').property('value','off')\n\tselect.append('option').text('diploid').property('value','diploid')\n\tselect.append('option').text('1-copy loss').property('value','loss')\n\tselect.append('option').text('copy-neutral LOH').property('value','cnloh')\n\tselect.on('change',(event)=>{\n\t\tconst v=event.target.options[event.target.selectedIndex].value\n\t\tif(v=='off') {\n\t\t\temafline_1.transition().duration(1000).attr('fill-opacity',0)\n\t\t\treturn\n\t\t}\n\t\tlet x\n\t\tif(v=='diploid') {\n\t\t\tx=pdata.purity1/2\n\t\t} else if(v=='loss') {\n\t\t\tx=pdata.purity1/(2-pdata.purity1)\n\t\t} else {\n\t\t\tx=pdata.purity1\n\t\t}\n\t\temafline_1.transition().duration(1000)\n\t\t\t.attr('fill-opacity',1)\n\t\t\t.attr('x',x*sharewidth)\n\t})\n}\nif(pdata.purity2!=undefined) {\n\theaderdiv.append($('<span>').html('&nbsp;Relapse expected MAF&nbsp;'))\n\t.append($('<select>')\n\t\t.append($('<option>').text('off').attr('value','off'))\n\t\t.append($('<option>').text('diploid').attr('value','diploid'))\n\t\t.append($('<option>').text('1-copy loss').attr('value','loss'))\n\t\t.append($('<option>').text('copy-neutral LOH').attr('value','cnloh'))\n\t\t.on('change',function(e){\n\t\t\tvar v=e.target.options[e.target.selectedIndex].value\n\t\t\tif(v=='off') {\n\t\t\t\temafline_2.transition().duration(1000).attr('fill-opacity',0)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar x\n\t\t\tif(v=='diploid') {\n\t\t\t\tx=pdata.purity2/2\n\t\t\t} else if(v=='loss') {\n\t\t\t\tx=pdata.purity2/(2-pdata.purity2)\n\t\t\t} else {\n\t\t\t\tx=pdata.purity2\n\t\t\t}\n\t\t\temafline_2.transition().duration(1000)\n\t\t\t\t.attr('fill-opacity',1)\n\t\t\t\t.attr('y',(1-x)*shareheight)\n\t\t})\n\t)\n}\n*/\n\n\tconst svg = tdgraph\n\t\t.append('svg')\n\t\t.attr('width', axiswidth + sp + sample2height + sharewidth + sp * 2)\n\t\t.attr('height', axiswidth + sp + sample1height + shareheight + sp * 2)\n\tconst g = svg.append('g').attr('transform', 'translate(' + sp + ',' + sp + ')')\n\n\tanchors.setWrapper(g.append('g'))\n\n\t// axis 1 (horizontal)\n\tconst scale1 = scaleLinear().domain([0, 1]).range([0, sharewidth])\n\tconst scalediv1 = g\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + (axiswidth + sp + sample2height) + ',' + (shareheight + sample1height + sp) + ')')\n\t\t.call(axisBottom().scale(scale1).tickSize(5))\n\tclient.axisstyle({ axis: scalediv1, showline: true, fontsize: labelfontsize * 0.8 })\n\n\t// axis 1 label\n\tconst c = set_1.length + set_share.length\n\tscalediv1\n\t\t.append('text')\n\t\t.text(pdata.setname[1] + ', n=' + c + (pdata.purity1 ? ', purity=' + pdata.purity1 : ''))\n\t\t.attr('x', sharewidth / 2)\n\t\t.attr('y', axiswidth - 4)\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('font-size', labelfontsize)\n\n\t// axis 2 (vertical)\n\tconst scale2 = scaleLinear().domain([0, 1]).range([shareheight, 0])\n\tconst scalediv2 = g\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + axiswidth + ',0)')\n\t\t.call(axisLeft().scale(scale2).tickSize(5))\n\tclient.axisstyle({ axis: scalediv2, showline: true, fontsize: labelfontsize * 0.8 })\n\n\t// axis 2 label\n\tconst c2 = set_2.length + set_share.length\n\tscalediv2\n\t\t.append('text')\n\t\t.text(pdata.setname[2] + ', n=' + c2 + (pdata.purity2 ? ', purity=' + pdata.purity2 : ''))\n\t\t.attr('transform', 'translate(' + (labelfontsize - axiswidth - 10) + ',' + shareheight / 2 + ') rotate(-90)')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('font-size', labelfontsize)\n\n\t// border\n\tg.append('path')\n\t\t.attr(\n\t\t\t'd',\n\t\t\t'M' +\n\t\t\t\t(axiswidth + sp) +\n\t\t\t\t',0' +\n\t\t\t\t'h' +\n\t\t\t\t(sample2height + sharewidth) +\n\t\t\t\t'v' +\n\t\t\t\t(shareheight + sample1height) +\n\t\t\t\t'h-' +\n\t\t\t\tsharewidth +\n\t\t\t\t'v-' +\n\t\t\t\t(sample1height + shareheight) +\n\t\t\t\t'M' +\n\t\t\t\t(axiswidth + sp) +\n\t\t\t\t',0' +\n\t\t\t\t'v' +\n\t\t\t\tshareheight +\n\t\t\t\t'h' +\n\t\t\t\t(sample2height + sharewidth) +\n\t\t\t\t'M' +\n\t\t\t\t(axiswidth + sp + sample2height) +\n\t\t\t\t',' +\n\t\t\t\tshareheight +\n\t\t\t\t'l' +\n\t\t\t\tsharewidth +\n\t\t\t\t',-' +\n\t\t\t\tshareheight\n\t\t)\n\t\t.attr('fill', 'none')\n\t\t.attr('stroke', 'black')\n\t\t.attr('shape-rendering', 'crispEdges')\n\t\t.attr('stroke-dasharray', '5,5')\n\n\t// set share\n\tconst select_share = g\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + (axiswidth + sp + sample2height) + ',0)')\n\t\t.selectAll()\n\t\t.data(set_share)\n\t\t.enter()\n\t\t.append('g')\n\t\t.attr('transform', d => {\n\t\t\td.posstring = 'translate(' + scale1(d.maf1) + ',' + scale2(d.maf2) + ')'\n\t\t\treturn d.posstring\n\t\t})\n\n\t// set share - cnv loh\n\tselect_share\n\t\t.filter(d => d.Dcnvloh)\n\t\t.append('circle')\n\t\t.attr('cy', d => {\n\t\t\treturn d.issnv ? radiusscale(d['TinD.R']) : indelboxw / 2\n\t\t})\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\tselect_share\n\t\t.filter(d => d.Rcnvloh)\n\t\t.append('circle')\n\t\t.attr('cx', d => {\n\t\t\treturn d.issnv ? -radiusscale(d['TinD.D']) : -indelboxw / 2\n\t\t})\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\n\t// set share - snv\n\tlet snv = select_share\n\t//.filter(function(d){return d.issnv})\n\n\t// not sure why this documented option to supply a function to append is not working\n\t// snv.append(function(d){return document.createElement(1 || d.symbol ? 'path' : 'circle')})\n\t// ... do this instead for now\n\tfor (const tagName in sharedFilters) {\n\t\tsnv\n\t\t\t.filter(sharedFilters[tagName])\n\t\t\t.append(tagName)\n\t\t\t.attr('rx', d => (d.symbol ? null : radiusscale(d['TinD.D'])))\n\t\t\t.attr('ry', d => (d.symbol ? null : radiusscale(d['TinD.R'])))\n\t\t\t.attr('d', d =>\n\t\t\t\t!d.symbol\n\t\t\t\t\t? null\n\t\t\t\t\t: symbolgen.type(symbols[d.symbol]).size(radiustoarea(d['TinD.D']) + radiustoarea(d['TinD.R']) / 2)()\n\t\t\t)\n\t\t\t.attr('fill', d => d.style.fill)\n\t\t\t.attr('fill-opacity', d => d.style.fillopacity)\n\t\t\t.attr('stroke', d => d.style.stroke)\n\t\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t\t.attr('stroke-dasharray', d => (d.chr == 'chrX' ? '5,5' : 'none'))\n\t\t\t.on('mouseover', (event, d) => d2maf_dotmover(event, d, tooltip))\n\t\t\t.on('mouseout', (event, d) => d2maf_dotmout(event, d, tooltip))\n\t\t\t.on('click', (event, d) => d2maf_minfo(event, pdata.header, d))\n\t}\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', -3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', 3)\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', 3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', -3)\n\t/*\n// set share - indel\nselect_share\n\t.filter(function(d){return d.isindel})\n\t.append('rect')\n\t.attr('fill',function(d){return d.style.fill})\n\t.attr('fill-opacity',function(d){return d.style.fillopacity})\n\t.attr('stroke',function(d){return d.chr=='chrX' ? '#858585' : 'none'})\n\t.attr('stroke-dasharray',function(d){return d.chr=='chrX' ? '5,5' : 'none'})\n\t.attr({\n\t\tx:-indelboxw/2,\n\t\ty:-indelboxw/2,\n\t\twidth:indelboxw,\n\t\theight:indelboxw,\n\t\t'shape-rendering':'crispEdges'\n\t\t})\n\t.on('mouseover',function(event,d){ sja.f.crypt_2dmaf_dotmover(d,this) })\n\t.on('mouseout',function(event,d){ sja.f.crypt_2dmaf_dotmout(d,this) })\n\t.on('click',function(event,d){ sja.f.crypt_2dmaf_minfo(pdata.header,d) })\n\t*/\n\n\t// set 1 - total coverage axis\n\tconst set1totalscale = scaleLinear()\n\t\t.domain([0, maxtotal])\n\t\t.range([sample1height - sp2, 0])\n\tconst g_set1 = g\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + (axiswidth + sp + sample2height) + ',' + (shareheight + sp2) + ')')\n\tconst emaflinecolor = '#FFBEAD'\n\tconst emafline_1 = g_set1\n\t\t.append('rect')\n\t\t.attr('fill', emaflinecolor)\n\t\t.attr('fill-opacity', 0)\n\t\t.attr('x', 0)\n\t\t.attr('width', 3)\n\t\t.attr('height', sample1height - sp2)\n\tclient.axisstyle({\n\t\taxis: g_set1.call(axisLeft().scale(set1totalscale).tickValues([0, maxtotal])),\n\t\tshowline: true,\n\t\tfontsize: labelfontsize * 0.8\n\t})\n\tg_set1\n\t\t.append('g')\n\t\t.attr('transform', 'translate(-' + labelfontsize / 2 + ',' + (sample1height - sp2) / 2 + ')')\n\t\t.append('text')\n\t\t.text('D total')\n\t\t.attr('font-size', labelfontsize * 0.8)\n\t\t.attr('font-family', client.font)\n\t\t.attr('fill', 'black')\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.attr('transform', 'rotate(-90)')\n\n\t// set 1\n\tconst select_set1 = g_set1\n\t\t.selectAll()\n\t\t.data(set_1)\n\t\t.enter()\n\t\t.append('g')\n\t\t.attr('transform', d => {\n\t\t\td.posstring = 'translate(' + scale1(d.maf1) + ',' + set1totalscale(d['TinD.D']) + ')'\n\t\t\treturn d.posstring\n\t\t})\n\n\t// set 1 - cnv loh\n\tselect_set1\n\t\t.filter(d => d.Dcnvloh)\n\t\t.append('circle')\n\t\t.attr('cy', d => {\n\t\t\treturn d.issnv ? radiusscale(d['TinD.R']) : indelboxw / 2\n\t\t})\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\tselect_set1\n\t\t.filter(d => d.Rcnvloh)\n\t\t.append('circle')\n\t\t.attr('cx', d => (d.issnv ? -radiusscale(d['TinD.D']) : -indelboxw / 2))\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\n\t// set 1 - snv\n\tsnv = select_set1\n\t// not sure why this documented option to supply a function to append is not working\n\t// snv.append(function(d){return document.createElement(1 || d.symbol ? 'path' : 'circle')})\n\t// ... do this instead for now\n\tfor (const tagName in symbolFilters) {\n\t\tsnv\n\t\t\t.filter(symbolFilters[tagName])\n\t\t\t.append(tagName)\n\t\t\t.attr('class', d => (d.symbol ? 'twodmaf-' + d.symbol : null))\n\t\t\t.attr('r', d => (d.symbol ? null : radiusscale(d['TinD.R'])))\n\t\t\t.attr('d', d => (!d.symbol ? null : symbolgen.type(symbols[d.symbol]).size(radiustoarea(d['TinD.R']))()))\n\t\t\t.attr('fill', d => d.style.fill)\n\t\t\t.attr('fill-opacity', d => d.style.fillopacity)\n\t\t\t.attr('stroke', d => d.style.stroke)\n\t\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t\t.attr('stroke-dasharray', d => (d.chr == 'chrX' ? '5,5' : 'none'))\n\t\t\t.on('mouseover', (event, d) => d2maf_dotmover(event, d, tooltip))\n\t\t\t.on('mouseout', (event, d) => d2maf_dotmout(event, d, tooltip))\n\t\t\t.on('click', (event, d) => d2maf_minfo(event, pdata.header, d))\n\t}\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', -3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', 3)\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', 3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', -3)\n\t/*\n// set 1 - indel\nselect_set1\n\t.filter(function(d){return d.isindel})\n\t.append('rect')\n\t.attr('fill',function(d){return d.style.fill})\n\t.attr('fill-opacity',function(d){return d.style.fillopacity})\n\t.attr('stroke',function(d){return d.chr=='chrX' ? '#858585' : 'none'})\n\t.attr('stroke-dasharray',function(d){return d.chr=='chrX' ? '5,5' : 'none'})\n\t.attr({\n\t\tx:-indelboxw/2,\n\t\ty:-indelboxw/2,\n\t\twidth:indelboxw,\n\t\theight:indelboxw,\n\t\t'shape-rendering':'crispEdges'\n\t\t})\n\t.on('mouseover',function(event,d){ sja.f.crypt_2dmaf_dotmover(d,this) })\n\t.on('mouseout',function(event,d){ sja.f.crypt_2dmaf_dotmout(d,this) })\n\t.on('click',function(event,d){ sja.f.crypt_2dmaf_minfo(pdata.header,d) })\n\t*/\n\n\t// set 2 - total coverage axis\n\tconst set2totalscale = scaleLinear()\n\t\t.domain([0, maxtotal])\n\t\t.range([0, sample2height - sp2])\n\tconst g_set2 = g.append('g').attr('transform', 'translate(' + (axiswidth + sp) + ',0)')\n\tconst emafline_2 = g_set2\n\t\t.append('rect')\n\t\t.attr('fill', emaflinecolor)\n\t\t.attr('fill-opacity', 0)\n\t\t.attr('y', shareheight)\n\t\t.attr('width', sample2height - sp2)\n\t\t.attr('height', 3)\n\tconst g_set2_axis = g_set2\n\t\t.append('g')\n\t\t.attr('transform', 'translate(0,' + shareheight + ')')\n\t\t.call(axisBottom().scale(set2totalscale).tickValues([0, maxtotal]))\n\tclient.axisstyle({\n\t\taxis: g_set2_axis,\n\t\tshowline: true,\n\t\tfontsize: labelfontsize * 0.8\n\t})\n\tg_set2\n\t\t.append('text')\n\t\t.text('R total')\n\t\t.attr('font-size', labelfontsize * 0.8)\n\t\t.attr('font-family', client.font)\n\t\t.attr('fill', 'black')\n\t\t.attr('x', (sample2height - sp2) / 2)\n\t\t.attr('y', shareheight + labelfontsize)\n\t\t.attr('text-anchor', 'middle')\n\t// set 2\n\tconst select_set2 = g_set2\n\t\t.selectAll()\n\t\t.data(set_2)\n\t\t.enter()\n\t\t.append('g')\n\t\t.attr('transform', d => {\n\t\t\td.posstring = 'translate(' + set2totalscale(d['TinD.R']) + ',' + scale2(d.maf2) + ')'\n\t\t\treturn d.posstring\n\t\t})\n\n\t// set 2 - cnv loh\n\tselect_set2\n\t\t.filter(d => d.Dcnvloh)\n\t\t.append('circle')\n\t\t.attr('cy', d => (d.issnv ? radiusscale(d['TinD.R']) : indelboxw / 2))\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\tselect_set2\n\t\t.filter(d => d.Rcnvloh)\n\t\t.append('circle')\n\t\t.attr('cx', d => (d.issnv ? -radiusscale(d['TinD.D']) : -indelboxw / 2))\n\t\t.attr('fill', '#858585')\n\t\t.attr('r', r_cnvloh)\n\n\t// set 2 - snv\n\tsnv = select_set2\n\t//.filter(function(d){return d.issnv});\n\n\t// not sure why this documented option to supply a function to append is not working\n\t// snv.append(function(d){return document.createElement(1 || d.symbol ? 'path' : 'circle')})\n\t// ... do this instead for now\n\tfor (const tagName in symbolFilters) {\n\t\tsnv\n\t\t\t.filter(symbolFilters[tagName])\n\t\t\t.append(tagName)\n\t\t\t.attr('class', d => (d.symbol ? 'twodmaf-' + d.symbol : null))\n\t\t\t.attr('r', d => (d.symbol ? null : radiusscale(d['TinD.D'])))\n\t\t\t.attr('d', d => (!d.symbol ? null : symbolgen.type(symbols[d.symbol]).size(radiustoarea(d['TinD.R']))()))\n\t\t\t.attr('fill', d => d.style.fill)\n\t\t\t.attr('fill-opacity', d => d.style.fillopacity)\n\t\t\t.attr('stroke', d => d.style.stroke)\n\t\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t\t.attr('stroke-dasharray', d => (d.chr == 'chrX' ? '5,5' : 'none'))\n\t\t\t.on('mouseover', (event, d) => d2maf_dotmover(event, d, tooltip))\n\t\t\t.on('mouseout', (event, d) => d2maf_dotmout(event, d, tooltip))\n\t\t\t.on('click', (event, d) => d2maf_minfo(event, pdata.header, d))\n\t}\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', -3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', 3)\n\tsnv\n\t\t.append('line')\n\t\t.attr('stroke', d => d.style.stroke)\n\t\t.attr('stroke-opacity', d => d.style.strokeopacity)\n\t\t.attr('x1', -3)\n\t\t.attr('y1', 3)\n\t\t.attr('x2', 3)\n\t\t.attr('y2', -3)\n\t/*\n// set 2 - indel\nselect_set2\n\t.filter(function(d){return d.isindel})\n\t.append('rect')\n\t.attr('fill',function(d){return d.style.fill})\n\t.attr('fill-opacity',function(d){return d.style.fillopacity})\n\t.attr('stroke',function(d){return d.chr=='chrX' ? '#858585' : 'none'})\n\t.attr('stroke-dasharray',function(d){return d.chr=='chrX' ? '5,5' : 'none'})\n\t.attr({\n\t\tx:-indelboxw/2,\n\t\ty:-indelboxw/2,\n\t\twidth:indelboxw,\n\t\theight:indelboxw,\n\t\t'shape-rendering':'crispEdges'\n\t\t})\n\t.on('mouseover',function(d){ sja.f.crypt_2dmaf_dotmover(d,this) })\n\t.on('mouseout',function(d){ sja.f.crypt_2dmaf_dotmout(d,this) })\n\t.on('click',function(d){ sja.f.crypt_2dmaf_minfo(pdata.header,d) })\n\t*/\n\n\t// legend - person name\n\tconst leng = g.append('g').attr('transform', 'translate(0,' + (shareheight + sp2) + ')')\n\tlet y = labelfontsize\n\tleng.append('text').text(person).attr('font-size', labelfontsize).attr('y', y)\n\t// legend - snv text\n\tconst r1 = radiusscale(20),\n\t\tr2 = radiusscale(maxtotal)\n\ty += labelfontsize + r2\n\tlet x\n\tleng\n\t\t.append('text')\n\t\t.text('SNV coverage')\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.each(function () {\n\t\t\tx = this.getBBox().width\n\t\t})\n\n\t// legend - snv ball 1\n\tx += r1 + 10\n\tleng.append('circle').attr('cx', x).attr('cy', y).attr('r', r1).attr('stroke', 'black').attr('fill', 'none')\n\tleng\n\t\t.append('text')\n\t\t.text(20)\n\t\t.attr('x', x)\n\t\t.attr('y', y)\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('dominant-baseline', 'middle')\n\tx += r1 + r2 + 10\n\n\t// legend - snv ball 2\n\tleng.append('circle').attr('cx', x).attr('cy', y).attr('r', r2).attr('stroke', 'black').attr('fill', 'none')\n\tleng\n\t\t.append('text')\n\t\t.text(maxtotal)\n\t\t.attr('x', x)\n\t\t.attr('y', y)\n\t\t.attr('text-anchor', 'middle')\n\t\t.attr('dominant-baseline', 'middle')\n\n\t// legend - indel\n\ty += r2 + 10\n\tleng\n\t\t.append('text')\n\t\t.text('Indel')\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.each(function () {\n\t\t\tx = this.getBBox().width\n\t\t})\n\tleng\n\t\t.append('circle')\n\t\t.attr('cx', x + 10 + indelboxw / 2)\n\t\t.attr('cy', y)\n\t\t.attr('r', indelboxw / 2)\n\t\t.attr('fill', 'black')\n\t\t.attr('fill-opacity', 0.3)\n\ty += 30\n\n\t// legend - chrx\n\tleng\n\t\t.append('text')\n\t\t.text('chrX')\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.each(function () {\n\t\t\tx = this.getBBox().width\n\t\t})\n\tx += r1 + 10\n\tleng\n\t\t.append('circle')\n\t\t.attr('cx', x)\n\t\t.attr('cy', y)\n\t\t.attr('r', 10)\n\t\t.attr('stroke', 'black')\n\t\t.attr('stroke-dasharray', '5,5')\n\t\t.attr('fill', 'none')\n\ty += 30\n\n\t// legend - cnv/loh in d\n\tleng\n\t\t.append('text')\n\t\t.text('D. CNV/LOH')\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'middle')\n\t\t.each(function () {\n\t\t\tx = this.getBBox().width\n\t\t})\n\tx += r1 + 10\n\tleng.append('circle').attr('cx', x).attr('cy', y).attr('r', 10).attr('stroke', 'black').attr('fill', 'none')\n\tleng\n\t\t.append('circle')\n\t\t.attr('cx', x)\n\t\t.attr('cy', y + 10)\n\t\t.attr('r', r_cnvloh)\n\t\t.attr('fill', 'black')\n\ty += 30\n\n\t// legend - cnv/loh in r\n\tleng\n\t\t.append('text')\n\t\t.text('R. CNV/LOH')\n\t\t.attr('y', y)\n\t\t.attr('dominant-baseline', 'central')\n\t\t.each(function () {\n\t\t\tx = this.getBBox().width\n\t\t})\n\tx += r1 + 10\n\tleng.append('circle').attr('cx', x).attr('cy', y).attr('r', 10).attr('stroke', 'black').attr('fill', 'none')\n\tleng\n\t\t.append('circle')\n\t\t.attr('cx', x - 10)\n\t\t.attr('cy', y)\n\t\t.attr('r', r_cnvloh)\n\t\t.attr('fill', 'black')\n\ty += 30\n\n\tif (pdata.purity1 != undefined || pdata.purity2 != undefined) {\n\t\t// emaf\n\t\tleng\n\t\t\t.append('text')\n\t\t\t.text('Expected MAF')\n\t\t\t.attr('y', y)\n\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t.each(function () {\n\t\t\t\tx = this.getBBox().width\n\t\t\t})\n\t\tx += 10\n\t\tleng.append('rect').attr('fill', emaflinecolor).attr('x', x).attr('y', y).attr('width', 40).attr('height', 3)\n\t\ty += 30\n\t}\n\n\t//\n\tconst renderedsymbols = Object.keys(bysymbol)\n\tif (renderedsymbols.length) {\n\t\tleng\n\t\t\t.append('text')\n\t\t\t.text('Symbols')\n\t\t\t.attr('y', y)\n\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t.each(function () {\n\t\t\t\tx = this.getBBox().width\n\t\t\t})\n\n\t\tlet x1\n\t\tfor (const symbolname in bysymbol) {\n\t\t\tconst s = bysymbol[symbolname]\n\t\t\tconst g = leng.append('g').on('click', () => {\n\t\t\t\ts.hidden = !s.hidden\n\t\t\t\tsvg.selectAll('.twodmaf-' + symbolname).style('display', s.hidden ? 'none' : '')\n\t\t\t\tlabel.style('text-decoration', s.hidden ? 'line-through' : '')\n\t\t\t})\n\n\t\t\tx1 = x + 20\n\t\t\tg.append('path')\n\t\t\t\t.attr('transform', 'translate(' + x1 + ',' + y + ')')\n\t\t\t\t.attr('d', symbolgen.type(symbols[symbolname]).size(100)())\n\t\t\t\t.attr('stroke', 'black')\n\t\t\t\t.attr('fill', 'none')\n\t\t\t\t.each(function () {\n\t\t\t\t\tx1 += this.getBBox().width\n\t\t\t\t})\n\n\t\t\t//x+=10\n\t\t\tconst label = g\n\t\t\t\t.append('text')\n\t\t\t\t.text(s.label ? s.label + ' (' + s.numlines + ')' : '')\n\t\t\t\t.attr('y', y + 2)\n\t\t\t\t.attr('x', x1)\n\t\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t\t.style('text-decoration', s.hidden ? 'line-through' : '')\n\t\t\ty += 30\n\t\t}\n\t\ty += 30\n\t}\n\n\t// gene table - sort genes\n\tconst g2m = {},\n\t\tg1 = {},\n\t\tg2 = {},\n\t\tgs = {}\n\tfor (const m of mlst) {\n\t\tif (!m.gene) continue\n\t\tif (!(m.gene in g2m)) {\n\t\t\tg2m[m.gene] = []\n\t\t}\n\t\tg2m[m.gene].push(m)\n\t\tif (m.set_1) {\n\t\t\tg1[m.gene] = 1\n\t\t} else if (m.set_2) {\n\t\t\tg2[m.gene] = 1\n\t\t} else if (m.set_share) {\n\t\t\tgs[m.gene] = 1\n\t\t}\n\t}\n\tconst genelst = []\n\tfor (const n in g1) {\n\t\tgenelst.push(n)\n\t}\n\tfor (const n in g2) {\n\t\tif (!(n in g1)) {\n\t\t\tgenelst.push(n)\n\t\t}\n\t}\n\tfor (const n in gs) {\n\t\tif (!(n in g1) && !(n in g2)) {\n\t\t\tgenelst.push(n)\n\t\t}\n\t}\n\tconst table = tdgenetable\n\t\t.append('div')\n\t\t.style('height', shareheight + sample1height + 'px')\n\t\t.style('margin', '10px')\n\t\t.style('padding', '10px')\n\t\t.style('border', 'solid 1px #ccc')\n\t\t.style('overflow-y', 'scroll')\n\t\t.style('resize', 'both')\n\t\t.append('table')\n\t{\n\t\tconst tr = table.append('tr')\n\t\ttr.append('td').text('Gene')\n\t\ttr.append('td').text(pdata.setname[1] + ' only')\n\t\ttr.append('td').text(pdata.setname[2] + ' only')\n\t\ttr.append('td').text('Shared')\n\t}\n\tlet bg = true\n\tfor (const name of genelst) {\n\t\tconst tr = table.append('tr')\n\t\tif (bg) {\n\t\t\ttr.style('background-color', '#f3f3f3')\n\t\t}\n\t\tbg = !bg\n\t\ttr.append('td').text(name)\n\t\tlet mlst = []\n\t\tif (name in g2m) {\n\t\t\tmlst = g2m[name]\n\t\t}\n\t\tconst s1 = [],\n\t\t\ts2 = [],\n\t\t\tss = []\n\t\tfor (const m of mlst) {\n\t\t\tif (m.set_share) ss.push(m)\n\t\t\telse if (m.set_1) s1.push(m)\n\t\t\telse if (m.set_2) s2.push(m)\n\t\t}\n\t\tlet td = tr.append('td')\n\t\tif (s1.length) {\n\t\t\tfor (const m of s1) {\n\t\t\t\tconst div = td\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.attr('class', 'sja_clbtext')\n\t\t\t\t\t.style('color', m.style.fillhl)\n\t\t\t\t\t.text(m.mname || '')\n\t\t\t\t\t.on('click', event => {\n\t\t\t\t\t\tclick(event.target, m, select_set1)\n\t\t\t\t\t})\n\n\t\t\t\tif (m.labelIsVisible) {\n\t\t\t\t\tclick(div.node(), m, select_set1)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttd = tr.append('td')\n\t\tif (s2.length) {\n\t\t\tfor (const m of s2) {\n\t\t\t\tconst div = td\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.attr('class', 'sja_clbtext')\n\t\t\t\t\t.style('color', m.style.fillhl)\n\t\t\t\t\t.text(m.mname || '')\n\t\t\t\t\t.on('click', event => {\n\t\t\t\t\t\tclick(event.target, m, select_set2)\n\t\t\t\t\t})\n\n\t\t\t\tif (m.labelIsVisible) {\n\t\t\t\t\tclick(div.node(), m, select_set1)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttd = tr.append('td')\n\t\tif (ss.length) {\n\t\t\tfor (const m of ss) {\n\t\t\t\tconst div = td\n\t\t\t\t\t.append('div')\n\t\t\t\t\t.attr('class', 'sja_clbtext')\n\t\t\t\t\t.style('color', m.style.fillhl)\n\t\t\t\t\t.text(m.mname || '')\n\t\t\t\t\t.on('click', event => {\n\t\t\t\t\t\tclick(event.target, m, select_share)\n\t\t\t\t\t})\n\n\t\t\t\tif (m.labelIsVisible) {\n\t\t\t\t\tclick(div.node(), m, select_set1)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction click(butt, m, select) {\n\t\tif (m.selected) {\n\t\t\tbutt.style.border = ''\n\t\t\tm.selected = false\n\t\t} else {\n\t\t\tbutt.style.border = 'solid 1px black'\n\t\t\tm.selected = true\n\t\t}\n\t\tconst found = select.filter(d => {\n\t\t\treturn d.gene == m.gene && d.class == m.class && d.mname == m.mname\n\t\t})\n\t\tfound\n\t\t\t.selectAll('rect')\n\t\t\t.attr('fill-opacity', m.selected ? 0.5 : m.style.fillopacity)\n\t\t\t.attr('fill', m.selected ? m.style.fillhl : m.style.fill)\n\t\tfound\n\t\t\t.selectAll('circle,ellipse,line')\n\t\t\t.attr('stroke-opacity', m.selected ? 1 : m.style.strokeopacity)\n\t\t\t.attr('stroke', m.selected ? m.style.strokehl : m.style.stroke)\n\t\t\t.attr('stroke-width', m.selected ? 2 : 1)\n\t\tif (m.selected) {\n\t\t\t// add mobile label\n\t\t\tlet x = Math.max(20, m.radius),\n\t\t\t\ty = 0\n\t\t\tif ((m.set_1 || m.set_share) && m.maf1 >= 0.8) {\n\t\t\t\tx = -m.radius\n\t\t\t\ty = m.radius * 2\n\t\t\t}\n\t\t\tconst g = found\n\t\t\t\t.append('g')\n\t\t\t\t.attr('class', 'sja_2dmaf_mlabel')\n\t\t\t\t.attr('transform', 'translate(' + x + ',' + y + ')')\n\t\t\tlet w\n\t\t\tg.append('text')\n\t\t\t\t.text(m.labelAs ? m.labelAs : m.gene + ' ' + m.mname)\n\t\t\t\t.attr('fill', m.style.fillhl)\n\t\t\t\t.attr('dominant-baseline', 'middle')\n\t\t\t\t.attr('text-anchor', 'start')\n\t\t\t\t.attr('font-size', m.radius)\n\t\t\t\t.each(function () {\n\t\t\t\t\tw = this.getBBox().width\n\t\t\t\t})\n\t\t\tg.append('rect')\n\t\t\t\t.attr('y', -m.radius / 2)\n\t\t\t\t.attr('width', w)\n\t\t\t\t.attr('height', m.radius)\n\t\t\t\t.attr('fill', 'black')\n\t\t\t\t.attr('fill-opacity', 0)\n\t\t\t\t.on('mouseover', event => d3select(event.target).attr('fill-opacity', 0.2))\n\t\t\t\t.on('mouseout', event => d3select(event.target).attr('fill-opacity', 0))\n\t\t\t\t.on('mousedown', event => {\n\t\t\t\t\tconst x0 = x,\n\t\t\t\t\t\ty0 = y,\n\t\t\t\t\t\tmx = event.clientX,\n\t\t\t\t\t\tmy = event.clientY,\n\t\t\t\t\t\tbody = d3select(document.body)\n\t\t\t\t\tbody.on('mousemove', event => {\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\tx = x0 + event.clientX - mx\n\t\t\t\t\t\ty = y0 + event.clientY - my\n\t\t\t\t\t\tg.attr('transform', 'translate(' + x + ',' + y + ')')\n\t\t\t\t\t})\n\t\t\t\t\tbody.on('mouseup', () => {\n\t\t\t\t\t\tbody.on('mousemove', null).on('mouseup', null)\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t} else {\n\t\t\tfound.select('.sja_2dmaf_mlabel').remove()\n\t\t}\n\t}\n\treturn outtable\n}\n\nfunction d2maf_dotmover(event, m, tooltip) {\n\tif (!m.selected) {\n\t\td3select(event.target).attr('fill', m.style.fillhl).attr('fill-opacity', 0.2)\n\t}\n\ttooltip.clear()\n\ttooltip.show(event.clientX, event.clientY)\n\ttooltip.d\n\t\t.append('div')\n\t\t.html(\n\t\t\t(m.gene || 'no gene') +\n\t\t\t\t' <span style=\"color:' +\n\t\t\t\tm.style.fillhl +\n\t\t\t\t'\">' +\n\t\t\t\t(m.mname || '') +\n\t\t\t\t'</span>' +\n\t\t\t\t(m.class ? ' <span style=\"font-size:70%\">' + common.mclass[m.class].label + '</span>' : '')\n\t\t)\n}\n\nfunction d2maf_dotmout(event, m, tooltip) {\n\tif (!m.selected) {\n\t\td3select(event.ele)\n\t\t\t.attr('fill', m.style.fill)\n\t\t\t.attr('fill-opacity', m.style.fillopacity)\n\t\t\t.attr('stroke', m.style.stroke)\n\t}\n\ttooltip.hide()\n}\n\nfunction d2maf_minfo(event, header, m) {\n\tconst pane = client.newpane({ x: event.clientX + 30, y: event.clientY - 30 })\n\tpane.header.text((m.gene ? m.gene : 'No gene') + ' ' + (m.mname ? m.mname : ''))\n\tvar data = []\n\tfor (let i = 0; i < header.length; i++) {\n\t\tdata.push({ k: header[i], v: m[header[i]] })\n\t}\n\tclient.make_table_2col(pane.body, data)\n}\n\nfunction d2maf_click(data, person) {\n\tconst v = data.pairs[person]\n\tif (v.shown) {\n\t\tv.shown = false\n\t\tv.holder.remove()\n\t\tif (v.handle) {\n\t\t\tv.handle.attr('font-weight', 'normal')\n\t\t}\n\t} else {\n\t\tv.shown = true\n\t\tif (v.holder) {\n\t\t\tdata.showholder.node().appendChild(v.holder.node())\n\t\t} else {\n\t\t\tv.holder = d2maf_render(data.showholder, v)\n\t\t}\n\t\tif (v.handle) {\n\t\t\tv.handle.attr('font-weight', 'bold')\n\t\t}\n\t}\n}\n\nfunction d2maf_peopletable(data, holder) {\n\tconst plst = []\n\tfor (const n in data.pairs) {\n\t\tplst.push([n, data.pairs[n].mlst.length])\n\t}\n\n\tholder.selectAll('*').remove()\n\tconst searchrow = holder.append('div').style('margin-bottom', '5px')\n\n\tsearchrow.append('span').text(plst.length + ' individual' + (plst.length > 1 ? 's' : ''))\n\n\t/*\nno buttons\n\n\t.append($('<div>')\n\t\t.append('<span>Patients, top '+data.peoplelimit+' of '+plst.length+'&nbsp;</span>')\n\t\t.append($('<input>').attr({type:'text',size:10,placeholder:'search'}).on('keyup',function(e){\n\t\t\tvar v=e.target.value\n\t\t\tif(v.length<2) {\n\t\t\t\tsja.d.menu.hide()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tv=v.toLowerCase()\n\t\t\tvar hit=[]\n\t\t\tplst.forEach(function(p){\n\t\t\t\tif(p[0].toLowerCase().indexOf(v)!=-1) {\n\t\t\t\t\thit.push(p[0])\n\t\t\t\t}\n\t\t\t})\n\t\t\tif(hit.length==0) {\n\t\t\t\tsja.d.menu.hide()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsja.d.menu.showunder(e.target)\n\t\t\tfor(var i=0; i<Math.min(20,hit.length); i++) {\n\t\t\t\tsja.d.menu.append($('<div>').addClass('sja_menuoption').text(hit[i]).click((function(n){return function(){\n\t\t\t\t\tsja.f.d2maf_click(data,n)\n\t\t\t\t\tsja.d.menu.fadeOut()\n\t\t\t\t\te.target.value=''\n\t\t\t\t}})(hit[i])))\n\t\t\t}\n\t\t}))\n\t)\n\t.append($('<div>').css('margin-top','5px')\n\t\t.append($('<button>').text('more').click(function(){\n\t\t\tdata.peoplelimit=Math.min(plst.length,data.peoplelimit+10)\n\t\t\tsja.f.d2maf_peopletable(data)\n\t\t}))\n\t\t.append($('<button>').text('less').click(function(){\n\t\t\tdata.peoplelimit=Math.max(Math.min(5,parseInt(plst.length/3)),data.peoplelimit-10)\n\t\t\tsja.f.d2maf_peopletable(data)\n\t\t}))\n\t\t.append($('<button>').text('wider').click(function(){\n\t\t\tdata.peoplewidth+=100\n\t\t\tsja.f.d2maf_peopletable(data)\n\t\t}))\n\t\t.append($('<button>').text('narrower').click(function(){\n\t\t\tdata.peoplewidth=Math.max(150,data.peoplewidth-100)\n\t\t\tsja.f.d2maf_peopletable(data)\n\t\t}))\n\t\t.append($('<button>').text('screenshot').click(function(){\n\t\t\tvar a=document.createElement('a')\n\t\t\tdocument.body.appendChild(a)\n\t\t\t$(a).click(function(){\n\t\t\t\ta.download='2dmaf.patients.bar.svg'\n\t\t\t\ta.href=sja.f.to_svg(svg[0][0])\n\t\t\t\tdocument.body.removeChild(a)\n\t\t\t})\n\t\t\ta.click()\n\t\t}))\n\t)\n\t*/\n\n\tconst svg = holder.append('svg')\n\n\tconst space = 5,\n\t\taxish = 20,\n\t\trowh = data.rowh\n\tlet maxlabelw = 0\n\n\tfor (const s of plst) {\n\t\tsvg\n\t\t\t.append('text')\n\t\t\t.text(s[0])\n\t\t\t.attr('font-size', rowh)\n\t\t\t.attr('font-family', client.font)\n\t\t\t.each(function () {\n\t\t\t\tmaxlabelw = Math.max(maxlabelw, this.getBBox().width)\n\t\t\t})\n\t\t\t.remove()\n\t}\n\n\tsvg.attr('width', maxlabelw + space + data.peoplewidth + 30).attr('height', axish + space + rowh * plst.length)\n\n\tplst.sort((a, b) => b[1] - a[1])\n\n\tlet maxmcount = 0\n\tfor (const k in data.pairs) {\n\t\tmaxmcount = Math.max(maxmcount, data.pairs[k].mlst.length)\n\t}\n\n\tconst ag = svg\n\t\t.append('g')\n\t\t.attr('transform', 'translate(' + (maxlabelw + space) + ',' + axish + ')')\n\t\t.call(\n\t\t\taxisTop()\n\t\t\t\t.scale(scaleLinear().domain([0, maxmcount]).range([0, data.peoplewidth]))\n\t\t\t\t.tickFormat(d3format('d'))\n\t\t\t\t.ticks(3)\n\t\t)\n\tclient.axisstyle({\n\t\taxis: ag,\n\t\tshowline: true,\n\t\tcolor: 'black'\n\t})\n\n\tconst wsf = data.peoplewidth / maxmcount\n\tlet y = axish + space\n\n\tfor (const s of plst) {\n\t\tconst person = s[0]\n\t\tdata.pairs[person].handle = svg\n\t\t\t.append('text')\n\t\t\t.text(person)\n\t\t\t.attr('class', 'sja_svgtext2')\n\t\t\t.attr('font-size', rowh - 2)\n\t\t\t.attr('font-family', client.font)\n\t\t\t.attr('x', maxlabelw)\n\t\t\t.attr('y', y + space + rowh / 2)\n\t\t\t.attr('text-anchor', 'end')\n\t\t\t.on('click', () => {\n\t\t\t\td2maf_click(data, person)\n\t\t\t})\n\t\tlet m1 = 0,\n\t\t\tm2 = 0,\n\t\t\tms = 0\n\t\tfor (const m of data.pairs[person].mlst) {\n\t\t\tif (m.set_1) m1++\n\t\t\telse if (m.set_2) m2++\n\t\t\telse if (m.set_share) ms++\n\t\t}\n\t\tconst g = svg.append('g').attr('transform', 'translate(' + (maxlabelw + space) + ',' + y + ')')\n\t\tif (m1 > 0) {\n\t\t\tg.append('rect')\n\t\t\t\t.attr('width', wsf * m1)\n\t\t\t\t.attr('height', rowh - 1)\n\t\t\t\t.attr('fill', data.color1)\n\t\t}\n\t\tif (ms > 0) {\n\t\t\tg.append('rect')\n\t\t\t\t.attr('x', wsf * m1)\n\t\t\t\t.attr('width', wsf * ms)\n\t\t\t\t.attr('height', rowh - 1)\n\t\t\t\t.attr('fill', data.colorshare)\n\t\t}\n\t\tif (m2 > 0) {\n\t\t\tg.append('rect')\n\t\t\t\t.attr('x', wsf * (m1 + ms))\n\t\t\t\t.attr('width', wsf * m2)\n\t\t\t\t.attr('height', rowh - 1)\n\t\t\t\t.attr('fill', data.color2)\n\t\t}\n\t\ty += rowh\n\t}\n}\n\n/*\nd2maf_genetable=function(data)\n{\nvar dsc=sja.datasets[data.dsname]\nvar hash={}\nfor(var n in data.pairs) {\n\tdata.pairs[n].mlst.forEach(function(m){\n\t\tif(!(m.gene in hash)) {\n\t\t\thash[m.gene]={\n\t\t\t\ts1:{},\n\t\t\t\ts2:{},\n\t\t\t\tshare:{},\n\t\t\t\ttotal:0\n\t\t\t}\n\t\t}\n\t\tif(m.set_1) {\n\t\t\tif(!(m.sample in hash[m.gene].s1)) {\n\t\t\t\thash[m.gene].s1[m.sample]=[]\n\t\t\t\thash[m.gene].total++\n\t\t\t}\n\t\t\thash[m.gene].s1[m.sample].push(m)\n\t\t} else if(m.set_2) {\n\t\t\tif(!(m.sample in hash[m.gene].s2)) {\n\t\t\t\thash[m.gene].s2[m.sample]=[]\n\t\t\t\thash[m.gene].total++\n\t\t\t}\n\t\t\thash[m.gene].s2[m.sample].push(m)\n\t\t} else {\n\t\t\tif(!(m.sample in hash[m.gene].share)) {\n\t\t\t\thash[m.gene].share[m.sample]=[]\n\t\t\t\thash[m.gene].total++\n\t\t\t}\n\t\t\thash[m.gene].share[m.sample].push(m)\n\t\t}\n\t})\n}\nvar genelst=[]\nfor(var n in hash) {\n\tgenelst.push([n,hash[n]])\n}\ngenelst.sort(function(a,b){\n\treturn b[1].total-a[1].total\n})\ndata.geneholder.empty()\ndata.geneholder.append($('<div>').css('margin-bottom','5px')\n\t.append($('<div>')\n\t\t.append('<span>Genes, top '+data.genelimit+' of '+genelst.length+'&nbsp;</span>')\n\t\t.append($('<input>').attr({type:'text',size:10,placeholder:'search'}).on('keyup',function(e){\n\t\t\tvar v=e.target.value\n\t\t\tif(v=='') {\n\t\t\t\tsja.d.menu.hide()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tv=v.toLowerCase()\n\t\t\tvar hit=[]\n\t\t\tgenelst.forEach(function(i){\n\t\t\t\tif(i[0].toLowerCase().indexOf(v)==0) {\n\t\t\t\t\thit.push(i[0])\n\t\t\t\t}\n\t\t\t})\n\t\t\tif(hit.length==0) {\n\t\t\t\tsja.d.menu.hide()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tsja.d.menu.showunder(e.target)\n\t\t\tvar d=$('<div>').css('width',300)\n\t\t\tsja.d.menu.append(d)\n\t\t\tfor(var i=0; i<Math.min(30,hit.length); i++) {\n\t\t\t\td.append($('<div>').addClass('sja_menuoption_y').text(hit[i]).click((function(gene){return function(){\n\t\t\t\t\tsja.d.menu.hide()\n\t\t\t\t\te.target.value=''\n\t\t\t\t\tshowgene(gene)\n\t\t\t\t}})(hit[i])))\n\t\t\t}\n\t\t}))\n\t)\n\t.append($('<div>').css('margin-top','5px')\n\t\t.append($('<button>').text('more')\n\t\t\t.click(function(){\n\t\t\t\tdata.genelimit=Math.min(genelst.length,data.genelimit+10)\n\t\t\t\tsja.f.d2maf_genetable(data)\n\t\t\t})\n\t\t)\n\t\t.append($('<button>').text('less')\n\t\t\t.click(function(){\n\t\t\t\tdata.genelimit=Math.max(Math.min(10,parseInt(genelst.length/3)),data.genelimit-10)\n\t\t\t\tsja.f.d2maf_genetable(data)\n\t\t\t})\n\t\t)\n\t\t.append($('<button>').text('wider').click(function(){\n\t\t\tdata.genewidth+=100\n\t\t\tsja.f.d2maf_genetable(data)\n\t\t\t}))\n\t\t.append($('<button>').text('narrower').click(function(){\n\t\t\tdata.genewidth=Math.max(150,data.genewidth-100)\n\t\t\tsja.f.d2maf_genetable(data)\n\t\t\t}))\n\t\t.append($('<button>').text('screenshot').click(function(){\n\t\t\tvar a=document.createElement('a')\n\t\t\tdocument.body.appendChild(a)\n\t\t\t$(a).click(function(){\n\t\t\t\ta.download='2dmaf.genes.bar.svg'\n\t\t\t\ta.href=sja.f.to_svg(svg[0][0])\n\t\t\t\tdocument.body.removeChild(a)\n\t\t\t})\n\t\t\ta.click()\n\t\t}))\n\t)\n)\nvar svg=d3.select(data.geneholder[0]).append('svg')\nvar space=5,axish=20,rowh=data.rowh\nvar maxlabelw=0\nfor(var i=0; i<data.genelimit; i++) {\n\tvar s=genelst[i]\n\tsvg.append('text').text(s[0])\n\t.attr({'font-size':rowh,'font-family':sja.font})\n\t.each(function(){\n\t\tmaxlabelw=Math.max(maxlabelw,this.getBBox().width)\n\t})\n\t.remove()\n}\nsvg.attr('width',maxlabelw+space+data.genewidth+20)\n\t.attr('height',axish+space+rowh*data.genelimit)\nvar maxmcount=0\ngenelst.forEach(function(g){\n\tmaxmcount=Math.max(maxmcount,g[1].total)\n})\nvar ag=svg.append('g')\n\t.attr('transform','translate('+(maxlabelw+space)+','+axish+')')\n\t.call(d3.svg.axis().scale(\n\t\td3.scale.linear().domain([0,maxmcount]).range([0,data.genewidth])\n\t\t).orient('top')\n\t\t.tickFormat(d3.format('d'))\n\t)\nsja.f.axis_applystyle({\n\taxis:ag,\n\tshowline:true,\n\tcolor:'black'\n})\n\nvar wsf=data.genewidth/maxmcount\nvar y=axish+space\nfor(var i=0; i<data.genelimit; i++) {\n\tvar s=genelst[i]\n\tvar gene=s[0]\n\tsvg.append('text')\n\t\t.text(gene)\n\t\t.attr({\n\t\t\tclass:'sja_svgtext2',\n\t\t\t'font-size':rowh-2,\n\t\t\t'font-family':sja.font,\n\t\t\tx:maxlabelw,\n\t\t\ty:y+space+rowh/2,\n\t\t\t'text-anchor':'end',\n\t\t})\n\t\t.on('click', (function(gene){ return function(){\n\t\t\tshowgene(gene)\n\t\t}})(gene))\n\tvar g=svg.append('g').attr('transform','translate('+(maxlabelw+space)+','+y+')')\n\tvar m1=0\n\tfor(var n in s[1].s1) m1++\n\tif(m1>0) {\n\t\tg.append('rect')\n\t\t.attr({\n\t\t\twidth:wsf*m1,\n\t\t\theight:rowh-1,\n\t\t\tfill:data.color1\n\t\t\t})\n\t}\n\tvar ms=0\n\tfor(var n in s[1].share) ms++\n\tif(ms>0) {\n\t\tg.append('rect')\n\t\t.attr({\n\t\t\tx:wsf*m1,\n\t\t\twidth:wsf*ms,\n\t\t\theight:rowh-1,\n\t\t\tfill:data.colorshare\n\t\t\t})\n\t}\n\tvar m2=0\n\tfor(var n in s[1].s2) m2++\n\tif(m2>0) {\n\t\tg.append('rect')\n\t\t.attr({\n\t\t\tx:wsf*(m1+ms),\n\t\t\twidth:wsf*m2,\n\t\t\theight:rowh-1,\n\t\t\tfill:data.color2\n\t\t\t})\n\t}\n\ty+=rowh\n}\nfunction showgene(genename) {\n\tsja.clear()\n\tvar mlst=dsc.bulkdata[genename.toUpperCase()]\n\tif(!mlst || mlst.length==0) return\n\t// sort through isoforms\n\t// skip cnv\n\tvar lst=[]\n\tmlst.forEach(function(m){\n\t\tif(m.dt==sja.dtcnv) return\n\t\tlst.push(m)\n\t})\n\tmlst=lst\n\tvar hash={} // key: isoform name, val: mlst\n\tvar noisoform=[]\n\tmlst.forEach(function(m){\n\t\tif(!m.isoform) {\n\t\t\tnoisoform.push(m)\n\t\t\treturn\n\t\t}\n\t\tif(!(m.isoform in hash)) {\n\t\t\thash[m.isoform]=[]\n\t\t}\n\t\thash[m.isoform].push(m)\n\t})\n\tvar lst=[]\n\tfor(var n in hash) {\n\t\tif(hash[n].length>0) {\n\t\t\tlst.push(n)\n\t\t}\n\t}\n\tif(noisoform.length>0) {\n\t\tsja.error(noisoform.length+' mutations do not have isoform, use gene name '+genename+' instead.');\n\t\t(new sja.c.Paint({\n\t\t\tgenome:dsc.genome,\n\t\t\tmutations:noisoform,\n\t\t\tmbygmcoord:true,\n\t\t\tname:dsc.shortlabel\n\t\t\t})\n\t\t).getIsoforms(genename)\n\t}\n\tif(lst.length==0) {\n\t\treturn\n\t}\n\tif(lst.length==1) {\n\t\tgenename=lst[0];\n\t\t(new sja.c.Paint({\n\t\t\tgenome:dsc.genome,\n\t\t\tmutations:mlst,\n\t\t\tmbygmcoord:true,\n\t\t\tname:dsc.shortlabel\n\t\t})).getIsoforms(genename)\n\t\treturn\n\t}\n\tfor(var n in hash) {\n\t\t(new sja.c.Paint({\n\t\t\tgenome:dsc.genome,\n\t\t\tmutations:hash[n],\n\t\t\tmbygmcoord:true,\n\t\t\tname:dsc.shortlabel\n\t\t})).getIsoforms(n)\n\t}\n}\n}\n*/\n"],
5
- "mappings": "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",
6
- "names": ["event", "input", "event", "s", "i", "c", "a", "g", "tr", "mlst", "x", "y"]
7
- }