@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.
- package/dist/2dmaf-MDLDUNEO.js +1403 -0
- package/dist/2dmaf-MDLDUNEO.js.map +7 -0
- package/dist/AppHeader-NKFRKH24.js +849 -0
- package/dist/AppHeader-NKFRKH24.js.map +7 -0
- package/dist/DEanalysis-AD6P4CMM.js +608 -0
- package/dist/DEanalysis-AD6P4CMM.js.map +7 -0
- package/dist/Disco-Y63VRUFG.js +2462 -0
- package/dist/Disco-Y63VRUFG.js.map +7 -0
- package/dist/Disco.UI-4UPRCFKM.js +255 -0
- package/dist/Disco.UI-4UPRCFKM.js.map +7 -0
- package/dist/HicApp-QGNKS4BP.js +2274 -0
- package/dist/HicApp-QGNKS4BP.js.map +7 -0
- package/dist/WSIViewer-CMI2NG5H.js +23529 -0
- package/dist/adSandbox-3SUMXENO.js +26 -0
- package/dist/app-AFC7K3QJ.js +44 -0
- package/dist/app-KOFKVIHE.js +72 -0
- package/dist/app.js +14 -16
- package/dist/bam-3Z43YZZX.js +840 -0
- package/dist/bam-3Z43YZZX.js.map +7 -0
- package/dist/barchart-46A6ZUSK.js +57 -0
- package/dist/barchart.data-RAXR5Z4M.js +27 -0
- package/dist/barchart.events-FTQ6DCCY.js +45 -0
- package/dist/bars.renderer-TPIVXMGV.js +20 -0
- package/dist/block-CKZFJS4C.js +6549 -0
- package/dist/block-CKZFJS4C.js.map +7 -0
- package/dist/block.init-PSSP7HZM.js +22 -0
- package/dist/block.mds.cnv-OCKCYC3P.js +493 -0
- package/dist/block.mds.cnv-OCKCYC3P.js.map +7 -0
- package/dist/block.mds.expressionrank-L5KD6WCQ.js +363 -0
- package/dist/block.mds.expressionrank-L5KD6WCQ.js.map +7 -0
- package/dist/block.mds.geneboxplot-EATHMZWR.js +837 -0
- package/dist/block.mds.geneboxplot-EATHMZWR.js.map +7 -0
- package/dist/block.mds.junction-KQVJ3BV5.js +1440 -0
- package/dist/block.mds.junction-KQVJ3BV5.js.map +7 -0
- package/dist/block.mds.svcnv-WHAXHU7V.js +7060 -0
- package/dist/block.mds.svcnv-WHAXHU7V.js.map +7 -0
- package/dist/block.mds2-55NGSUBZ.js +3448 -0
- package/dist/block.mds2-55NGSUBZ.js.map +7 -0
- package/dist/block.svg-NOXRJYFH.js +151 -0
- package/dist/block.svg-NOXRJYFH.js.map +7 -0
- package/dist/block.tk.aicheck-ASP3R6KR.js +291 -0
- package/dist/block.tk.aicheck-ASP3R6KR.js.map +7 -0
- package/dist/block.tk.ase-6XBTIUUW.js +375 -0
- package/dist/block.tk.ase-6XBTIUUW.js.map +7 -0
- package/dist/block.tk.bam-BRUMOYK5.js +1958 -0
- package/dist/block.tk.bam-BRUMOYK5.js.map +7 -0
- package/dist/block.tk.bedgraphdot-IPEI67BH.js +379 -0
- package/dist/block.tk.bedgraphdot-IPEI67BH.js.map +7 -0
- package/dist/block.tk.bigwig.ui-UC3D3VF3.js +203 -0
- package/dist/block.tk.bigwig.ui-UC3D3VF3.js.map +7 -0
- package/dist/block.tk.hicstraw-ST5VCSKI.js +865 -0
- package/dist/block.tk.hicstraw-ST5VCSKI.js.map +7 -0
- package/dist/block.tk.junction-UCSNHJE3.js +2389 -0
- package/dist/block.tk.junction-UCSNHJE3.js.map +7 -0
- package/dist/block.tk.junction.textmatrixui-XYKYR2MN.js +196 -0
- package/dist/block.tk.junction.textmatrixui-XYKYR2MN.js.map +7 -0
- package/dist/block.tk.ld-XYAI2WU2.js +98 -0
- package/dist/block.tk.ld-XYAI2WU2.js.map +7 -0
- package/dist/block.tk.menu-E5D7FQRC.js +1074 -0
- package/dist/block.tk.menu-E5D7FQRC.js.map +7 -0
- package/dist/block.tk.pgv-JIJQSCMO.js +985 -0
- package/dist/block.tk.pgv-JIJQSCMO.js.map +7 -0
- package/dist/boxplot-DKOSXV5O.js +287 -0
- package/dist/boxplot-DKOSXV5O.js.map +7 -0
- package/dist/brainImaging-6653SBED.js +258 -0
- package/dist/brainImaging-6653SBED.js.map +7 -0
- package/dist/categorical-DYB4UK3H.js +43 -0
- package/dist/chunk-2AXMPMVD.js +2042 -0
- package/dist/chunk-2AXMPMVD.js.map +7 -0
- package/dist/chunk-2QZPEAAC.js +328 -0
- package/dist/chunk-2TBUEEHC.js +2504 -0
- package/dist/chunk-34ICXQIT.js +361 -0
- package/dist/chunk-3RMUHZP7.js +506 -0
- package/dist/chunk-43IAAZGD.js +232 -0
- package/dist/chunk-43XN7MWL.js +128 -0
- package/dist/chunk-4VSIBQA2.js +55 -0
- package/dist/chunk-54THUYS6.js +1101 -0
- package/dist/chunk-54THUYS6.js.map +7 -0
- package/dist/chunk-5JAV4AND.js +287 -0
- package/dist/chunk-5TRXIQ5D.js +335 -0
- package/dist/chunk-6BHKLDWV.js +66 -0
- package/dist/chunk-6BHKLDWV.js.map +7 -0
- package/dist/chunk-6RP3HKKV.js +56 -0
- package/dist/chunk-7KQS6G33.js +572 -0
- package/dist/chunk-7NMRJUVQ.js +337 -0
- package/dist/chunk-A424TGKZ.js +1296 -0
- package/dist/chunk-A424TGKZ.js.map +7 -0
- package/dist/chunk-A6IPLGJ7.js +1301 -0
- package/dist/chunk-AI4P4YBY.js +496 -0
- package/dist/chunk-AJEQEARY.js +369 -0
- package/dist/chunk-ASH22YHA.js +454 -0
- package/dist/chunk-ASH22YHA.js.map +7 -0
- package/dist/chunk-BEHTZGNV.js +949 -0
- package/dist/chunk-BEHTZGNV.js.map +7 -0
- package/dist/chunk-BFEYWEIF.js +267 -0
- package/dist/chunk-BM5YBUEB.js +4763 -0
- package/dist/chunk-BM5YBUEB.js.map +7 -0
- package/dist/chunk-CCUY32QB.js +94 -0
- package/dist/chunk-CMPUZHAK.js +310 -0
- package/dist/chunk-CVWXP35F.js +123 -0
- package/dist/chunk-DKFNDR6B.js +193 -0
- package/dist/chunk-DKM3C7EW.js +364 -0
- package/dist/chunk-EHM2BRQX.js +1272 -0
- package/dist/chunk-EKXE73PZ.js +3385 -0
- package/dist/chunk-EQMW56G3.js +419 -0
- package/dist/chunk-EQMW56G3.js.map +7 -0
- package/dist/chunk-EW7ND3XZ.js +251 -0
- package/dist/chunk-FPFJ7KA5.js +219 -0
- package/dist/chunk-FSKRSQBG.js +174 -0
- package/dist/chunk-GB4U6TLN.js +1158 -0
- package/dist/chunk-GCUGTS2F.js +1008 -0
- package/dist/chunk-GFSWZVFJ.js +389 -0
- package/dist/chunk-GMAKKWKW.js +406 -0
- package/dist/chunk-H54UZQBQ.js +96 -0
- package/dist/chunk-H77FJYAH.js +6543 -0
- package/dist/chunk-H77FJYAH.js.map +7 -0
- package/dist/chunk-HBQOXTSD.js +14 -0
- package/dist/chunk-IBN5BEOY.js +2831 -0
- package/dist/chunk-IPNHDLML.js +479 -0
- package/dist/chunk-JFRRERO5.js +31 -0
- package/dist/chunk-JIHLNT2K.js +1779 -0
- package/dist/chunk-JIHLNT2K.js.map +7 -0
- package/dist/chunk-JOCEI72L.js +228 -0
- package/dist/chunk-K3MEWWGO.js +2389 -0
- package/dist/chunk-K3MEWWGO.js.map +7 -0
- package/dist/chunk-KECEUABR.js +339 -0
- package/dist/chunk-KT3GR2WO.js +581 -0
- package/dist/chunk-KT3GR2WO.js.map +7 -0
- package/dist/chunk-L3BEUWSG.js +2325 -0
- package/dist/chunk-L3BEUWSG.js.map +7 -0
- package/dist/chunk-LOEMEXB4.js +159 -0
- package/dist/chunk-M6GWX3QG.js +638 -0
- package/dist/chunk-MI3B3QMC.js +153 -0
- package/dist/chunk-MRCZTYKD.js +133 -0
- package/dist/chunk-MWK77NSW.js +232 -0
- package/dist/chunk-MXIDZVHS.js +83 -0
- package/dist/chunk-NWTQKS22.js +1245 -0
- package/dist/chunk-NZ44KDJL.js +273 -0
- package/dist/chunk-ON6B4J6U.js +2646 -0
- package/dist/chunk-OTWQWP6Z.js +120 -0
- package/dist/chunk-PDB7U2LQ.js +184 -0
- package/dist/chunk-PEOQXBJT.js +604 -0
- package/dist/chunk-PEOQXBJT.js.map +7 -0
- package/dist/chunk-PHPTWH37.js +2859 -0
- package/dist/chunk-PM7NASSJ.js +391 -0
- package/dist/chunk-PM7NASSJ.js.map +7 -0
- package/dist/chunk-PN65XLN6.js +301 -0
- package/dist/chunk-QJGZWXLL.js +456 -0
- package/dist/chunk-QWEOZIHZ.js +524 -0
- package/dist/chunk-RWP3TLNT.js +172 -0
- package/dist/chunk-RZAXZKVC.js +782 -0
- package/dist/chunk-S73S6WNT.js +1384 -0
- package/dist/chunk-S73S6WNT.js.map +7 -0
- package/dist/chunk-SEACSRFV.js +471 -0
- package/dist/chunk-SXGBW6OZ.js +303 -0
- package/dist/chunk-TWMHUWQX.js +134 -0
- package/dist/chunk-UBVVTQC3.js +233 -0
- package/dist/chunk-UM63WBJM.js +165 -0
- package/dist/chunk-VU3I7SFL.js +358 -0
- package/dist/chunk-W7ZDKCZJ.js +584 -0
- package/dist/chunk-W7ZDKCZJ.js.map +7 -0
- package/dist/chunk-WTVD5AS2.js +1074 -0
- package/dist/chunk-YJJGRDHN.js +2049 -0
- package/dist/chunk-YJJGRDHN.js.map +7 -0
- package/dist/chunk-YR6I3PPZ.js +295 -0
- package/dist/chunk-ZODVYN2Z.js +358 -0
- package/dist/chunk-ZZILTP5U.js +520 -0
- package/dist/condition-DJZK4SPZ.js +347 -0
- package/dist/condition-DJZK4SPZ.js.map +7 -0
- package/dist/controls-IWAM6RFC.js +44 -0
- package/dist/controls.config-TI77G7KY.js +40 -0
- package/dist/cuminc-U4NOF53Y.js +1179 -0
- package/dist/cuminc-U4NOF53Y.js.map +7 -0
- package/dist/customdata.inputui-6XKBI6PH.js +293 -0
- package/dist/customdata.inputui-6XKBI6PH.js.map +7 -0
- package/dist/dataDownload-W4P5SO55.js +336 -0
- package/dist/dataDownload-W4P5SO55.js.map +7 -0
- package/dist/databrowser.ui-KRP4HBP2.js +464 -0
- package/dist/databrowser.ui-KRP4HBP2.js.map +7 -0
- package/dist/density-QSWCWH3N.js +17 -0
- package/dist/dictionary-NLP4SNGC.js +107 -0
- package/dist/dictionary-NLP4SNGC.js.map +7 -0
- package/dist/e2pca-IC4DUN4N.js +335 -0
- package/dist/e2pca-IC4DUN4N.js.map +7 -0
- package/dist/ep-3XO2PP4I.js +1271 -0
- package/dist/ep-3XO2PP4I.js.map +7 -0
- package/dist/expclust.gdc.spec-75WY6JHY.js +298 -0
- package/dist/expclust.gdc.spec-75WY6JHY.js.map +7 -0
- package/dist/facet-254A33ML.js +434 -0
- package/dist/facet-254A33ML.js.map +7 -0
- package/dist/geneExpClustering-2DHMSUQM.js +275 -0
- package/dist/geneExpClustering-2DHMSUQM.js.map +7 -0
- package/dist/geneExpression-4VXMDANU.js +313 -0
- package/dist/geneExpression-BC2HALKU.js +57 -0
- package/dist/geneExpression-BC2HALKU.js.map +7 -0
- package/dist/geneExpression-ISHYTKOB.js +57 -0
- package/dist/geneORA-NTVGTU5J.js +279 -0
- package/dist/geneORA-NTVGTU5J.js.map +7 -0
- package/dist/geneVariant-5UNVOLWP.js +54 -0
- package/dist/geneVariant-5UNVOLWP.js.map +7 -0
- package/dist/geneVariant-BUVWXAHB.js +381 -0
- package/dist/geneVariant-BUVWXAHB.js.map +7 -0
- package/dist/genefusion.ui-HK2FGUCD.js +237 -0
- package/dist/genefusion.ui-HK2FGUCD.js.map +7 -0
- package/dist/geneset-7232T7FY.js +207 -0
- package/dist/geneset-7232T7FY.js.map +7 -0
- package/dist/genomeBrowser-P2LMJ7F6.js +406 -0
- package/dist/genomeBrowser-P2LMJ7F6.js.map +7 -0
- package/dist/genomeBrowser.controls-DD7JSNI3.js +47 -0
- package/dist/genomeBrowser.spec-EVJQXY7E.js +260 -0
- package/dist/genomeBrowser.spec-EVJQXY7E.js.map +7 -0
- package/dist/groupsetting-VMK33QN3.js +18 -0
- package/dist/gsea-XTG2QFED.js +296 -0
- package/dist/gsea-XTG2QFED.js.map +7 -0
- package/dist/hierCluster-CBTA34XL.js +68 -0
- package/dist/hierCluster-EOTGIBVT.js +72 -0
- package/dist/hierCluster.config-4GZ46YHN.js +40 -0
- package/dist/hierCluster.integration.spec-XHEPKUWG.js +309 -0
- package/dist/hierCluster.integration.spec-XHEPKUWG.js.map +7 -0
- package/dist/hierCluster.interactivity-6SNGRTKW.js +52 -0
- package/dist/hierCluster.renderers-ZPR7EDHZ.js +20 -0
- package/dist/imagePlot-TSQFWVE6.js +145 -0
- package/dist/imagePlot-TSQFWVE6.js.map +7 -0
- package/dist/launch.adhoc-DFJIN2WT.js +50 -0
- package/dist/leftlabel.sample-XK37AJTO.js +270 -0
- package/dist/leftlabel.sample-XK37AJTO.js.map +7 -0
- package/dist/legacyDataset-HU2PMBRF.js +119 -0
- package/dist/legacyDataset-HU2PMBRF.js.map +7 -0
- package/dist/lollipop-J74HX7Z7.js +107 -0
- package/dist/lollipop-J74HX7Z7.js.map +7 -0
- package/dist/maf-LSRH5RNV.js +390 -0
- package/dist/maf-LSRH5RNV.js.map +7 -0
- package/dist/maftimeline-45LRI447.js +600 -0
- package/dist/maftimeline-45LRI447.js.map +7 -0
- package/dist/matrix-B7ZILOQ7.js +68 -0
- package/dist/matrix-X6CPIDIV.js +63 -0
- package/dist/matrix.cells-M4YYMUCX.js +25 -0
- package/dist/matrix.config-N3VRUIBE.js +41 -0
- package/dist/matrix.controls-QZRCJ35M.js +40 -0
- package/dist/matrix.data-RT6C2K3X.js +28 -0
- package/dist/matrix.groups-VWOCE2OX.js +26 -0
- package/dist/matrix.interactivity-PUMHTQES.js +42 -0
- package/dist/matrix.layout-E23ZOPZ3.js +22 -0
- package/dist/matrix.legend-MWSRG6FJ.js +19 -0
- package/dist/matrix.renderers-ALGBNBK2.js +38 -0
- package/dist/matrix.serieses-HKO6DYLL.js +18 -0
- package/dist/matrix.sort-63NHPQNT.js +26 -0
- package/dist/matrix.sort.unit.spec-H7ZRFRSA.js +473 -0
- package/dist/matrix.sort.unit.spec-H7ZRFRSA.js.map +7 -0
- package/dist/matrix.sorterUi-QXXZTD4A.js +17 -0
- package/dist/matrix.sorterUi.unit.spec-QQQRY7WX.js +351 -0
- package/dist/matrix.sorterUi.unit.spec-QQQRY7WX.js.map +7 -0
- package/dist/mavb-6D73BQUS.js +740 -0
- package/dist/mavb-6D73BQUS.js.map +7 -0
- package/dist/mds.fimo-LYNQPMC2.js +531 -0
- package/dist/mds.fimo-LYNQPMC2.js.map +7 -0
- package/dist/mds.samplescatterplot-M43QXAWP.js +1676 -0
- package/dist/mds.samplescatterplot-M43QXAWP.js.map +7 -0
- package/dist/mds.survivalplot-27ZD3H3G.js +491 -0
- package/dist/mds.survivalplot-27ZD3H3G.js.map +7 -0
- package/dist/metaboliteIntensity-BMKNKDXS.js +47 -0
- package/dist/numeric-W63IFV67.js +43 -0
- package/dist/numeric.binary-PSSGVL3B.js +257 -0
- package/dist/numeric.binary-PSSGVL3B.js.map +7 -0
- package/dist/numeric.continuous-IYEBNZ62.js +139 -0
- package/dist/numeric.continuous-IYEBNZ62.js.map +7 -0
- package/dist/numeric.discrete-VOD3KY74.js +47 -0
- package/dist/numeric.spline-HL2ZNGB6.js +235 -0
- package/dist/numeric.spline-HL2ZNGB6.js.map +7 -0
- package/dist/numeric.toggle-RCKPB7ZD.js +40 -0
- package/dist/oncomatrix-C4VVZ35P.js +317 -0
- package/dist/oncomatrix-C4VVZ35P.js.map +7 -0
- package/dist/oncomatrix.spec-XBUDASGU.js +442 -0
- package/dist/oncomatrix.spec-XBUDASGU.js.map +7 -0
- package/dist/plot.2dvaf-GBMAPZEA.js +361 -0
- package/dist/plot.2dvaf-GBMAPZEA.js.map +7 -0
- package/dist/plot.app-I7VDXUNL.js +49 -0
- package/dist/plot.barplot-TIKVR2H2.js +84 -0
- package/dist/plot.barplot-TIKVR2H2.js.map +7 -0
- package/dist/plot.boxplot-JSFD5VNN.js +147 -0
- package/dist/plot.boxplot-JSFD5VNN.js.map +7 -0
- package/dist/plot.brainImaging-EUS4O2WC.js +56 -0
- package/dist/plot.disco-CZMU6PAR.js +99 -0
- package/dist/plot.disco-CZMU6PAR.js.map +7 -0
- package/dist/plot.dzi-7JMXXJQ5.js +33 -0
- package/dist/plot.ssgq-2UZCKGCN.js +131 -0
- package/dist/plot.ssgq-2UZCKGCN.js.map +7 -0
- package/dist/plot.vaf2cov-AM5VVCE4.js +243 -0
- package/dist/plot.vaf2cov-AM5VVCE4.js.map +7 -0
- package/dist/plot.wsi-K7X6UIFM.js +32 -0
- package/dist/profile.spec-VG6LAYCS.js +160 -0
- package/dist/profile.spec-VG6LAYCS.js.map +7 -0
- package/dist/profileBarchart-N4S524O7.js +280 -0
- package/dist/profileBarchart-N4S524O7.js.map +7 -0
- package/dist/profileHome-QHKVUYVV.js +124 -0
- package/dist/profileHome-QHKVUYVV.js.map +7 -0
- package/dist/profilePlot-64ZHU4EX.js +56 -0
- package/dist/profilePolar-GPGVQGSZ.js +207 -0
- package/dist/profilePolar-GPGVQGSZ.js.map +7 -0
- package/dist/profileRadar-QAUVTFBC.js +287 -0
- package/dist/profileRadar-QAUVTFBC.js.map +7 -0
- package/dist/profileRadarFacility-UQYKW2LF.js +277 -0
- package/dist/profileRadarFacility-UQYKW2LF.js.map +7 -0
- package/dist/profileSummary-VWHD3IPM.js +109 -0
- package/dist/profileSummary-VWHD3IPM.js.map +7 -0
- package/dist/regression-BSLYVSPL.js +69 -0
- package/dist/regression.inputs-PSLCZH3F.js +61 -0
- package/dist/regression.inputs.term-7I5ATFPY.js +61 -0
- package/dist/regression.inputs.values.table-ZHTQ5ODD.js +58 -0
- package/dist/regression.results-6BCE6DZ6.js +36 -0
- package/dist/sampleScatter-5CFQKO2N.js +78 -0
- package/dist/sampleScatter.interactivity-GNZ7P5QO.js +52 -0
- package/dist/sampleScatter.renderer-XLFS24OP.js +58 -0
- package/dist/sampleView-K4ZUOIEI.js +56 -0
- package/dist/samplelst-AY3RB35L.js +115 -0
- package/dist/samplelst-AY3RB35L.js.map +7 -0
- package/dist/samplematrix-RZXVDTO3.js +2325 -0
- package/dist/samplematrix-RZXVDTO3.js.map +7 -0
- package/dist/scatter-GVRBLQS5.js +370 -0
- package/dist/scatter-GVRBLQS5.js.map +7 -0
- package/dist/selectGenomeWithTklst-UB3IPBDI.js +124 -0
- package/dist/selectGenomeWithTklst-UB3IPBDI.js.map +7 -0
- package/dist/singleCellCellType-UUD5CNBN.js +72 -0
- package/dist/singleCellCellType-UUD5CNBN.js.map +7 -0
- package/dist/singleCellGeneExpression-PODHL6V6.js +53 -0
- package/dist/singleCellPlot-6EIGKBUB.js +916 -0
- package/dist/singleCellPlot-6EIGKBUB.js.map +7 -0
- package/dist/singlecell-BYUSKTYJ.js +212 -0
- package/dist/singlecell-BYUSKTYJ.js.map +7 -0
- package/dist/singlecell-HBSRAGWQ.js +853 -0
- package/dist/singlecell-HBSRAGWQ.js.map +7 -0
- package/dist/snp-LFBGPOJQ.js +68 -0
- package/dist/snp-LFBGPOJQ.js.map +7 -0
- package/dist/snp-QK47CEPT.js +75 -0
- package/dist/snp-QK47CEPT.js.map +7 -0
- package/dist/snplocus-WKG4VHPQ.js +233 -0
- package/dist/snplocus-WKG4VHPQ.js.map +7 -0
- package/dist/spliceevent.a53ss.diagram-ZPWMOOJJ.js +137 -0
- package/dist/spliceevent.a53ss.diagram-ZPWMOOJJ.js.map +7 -0
- package/dist/spliceevent.exonskip.diagram-2N6N3K3Q.js +259 -0
- package/dist/spliceevent.exonskip.diagram-2N6N3K3Q.js.map +7 -0
- package/dist/spliceevent.noeventdiagram-7LT7FZ3E.js +461 -0
- package/dist/spliceevent.noeventdiagram-7LT7FZ3E.js.map +7 -0
- package/dist/summary-ERKCPDNZ.js +71 -0
- package/dist/sunburst-ZCKU76X6.js +271 -0
- package/dist/sunburst-ZCKU76X6.js.map +7 -0
- package/dist/survival-BKQ3YKO3.js +62 -0
- package/dist/survival-BKQ3YKO3.js.map +7 -0
- package/dist/survival-OISHAQ2M.js +1150 -0
- package/dist/survival-OISHAQ2M.js.map +7 -0
- package/dist/svgraph-QSPFWAZD.js +1423 -0
- package/dist/svgraph-QSPFWAZD.js.map +7 -0
- package/dist/svmr-AAUIAOVT.js +3975 -0
- package/dist/svmr-AAUIAOVT.js.map +7 -0
- package/dist/table-5FRGEFP2.js +208 -0
- package/dist/table-5FRGEFP2.js.map +7 -0
- package/dist/tk-II3BDHPV.js +49 -0
- package/dist/tp.ui-V4WLJDJ4.js +1499 -0
- package/dist/tp.ui-V4WLJDJ4.js.map +7 -0
- package/dist/tvs.geneVariant-CNUMGBXK.js +182 -0
- package/dist/tvs.geneVariant-CNUMGBXK.js.map +7 -0
- package/dist/tvs.numeric-W2UF3S26.js +21 -0
- package/dist/violin-PT2CYSKC.js +56 -0
- package/dist/violin.interactivity-SP5KDTDF.js +44 -0
- package/dist/violin.renderer-DDVZZIRT.js +19 -0
- package/dist/vocabulary-P7P5QIKP.js +46 -0
- package/package.json +2 -2
- package/dist/2dmaf-Z2ZUELKI.js +0 -1406
- package/dist/2dmaf-Z2ZUELKI.js.map +0 -7
- package/dist/AppHeader-6WKFJB6M.js +0 -853
- package/dist/AppHeader-6WKFJB6M.js.map +0 -7
- package/dist/DEanalysis-C3CCOYCK.js +0 -606
- package/dist/DEanalysis-C3CCOYCK.js.map +0 -7
- package/dist/Disco-GMOS6IAB.js +0 -2466
- package/dist/Disco-GMOS6IAB.js.map +0 -7
- package/dist/Disco.UI-4BGV6REO.js +0 -259
- package/dist/Disco.UI-4BGV6REO.js.map +0 -7
- package/dist/HicApp-QHH3AH37.js +0 -2278
- package/dist/HicApp-QHH3AH37.js.map +0 -7
- package/dist/WSIViewer-2L33KLK4.js +0 -23529
- package/dist/adSandbox-GLNWQRUP.js +0 -28
- package/dist/app-E3YQIJAO.js +0 -76
- package/dist/app-FWXMHBCV.js +0 -48
- package/dist/bam-5K2SUBKO.js +0 -824
- package/dist/bam-5K2SUBKO.js.map +0 -7
- package/dist/barchart-U34XCAS4.js +0 -61
- package/dist/barchart.data-GTPRPSXS.js +0 -29
- package/dist/barchart.events-NOHHD6UP.js +0 -49
- package/dist/bars.renderer-OOMLYTR5.js +0 -22
- package/dist/block-EN434L5D.js +0 -6552
- package/dist/block-EN434L5D.js.map +0 -7
- package/dist/block.init-6ESUW5F3.js +0 -24
- package/dist/block.mds.cnv-YPI7MTC7.js +0 -495
- package/dist/block.mds.cnv-YPI7MTC7.js.map +0 -7
- package/dist/block.mds.expressionrank-FTKDDLIJ.js +0 -365
- package/dist/block.mds.expressionrank-FTKDDLIJ.js.map +0 -7
- package/dist/block.mds.geneboxplot-U736ZHW3.js +0 -839
- package/dist/block.mds.geneboxplot-U736ZHW3.js.map +0 -7
- package/dist/block.mds.junction-ER7WZBRE.js +0 -1443
- package/dist/block.mds.junction-ER7WZBRE.js.map +0 -7
- package/dist/block.mds.svcnv-W44ROM4O.js +0 -7062
- package/dist/block.mds.svcnv-W44ROM4O.js.map +0 -7
- package/dist/block.mds2-OMZRUYUS.js +0 -3452
- package/dist/block.mds2-OMZRUYUS.js.map +0 -7
- package/dist/block.svg-MBOXDT54.js +0 -153
- package/dist/block.svg-MBOXDT54.js.map +0 -7
- package/dist/block.tk.aicheck-6QEHJXOU.js +0 -282
- package/dist/block.tk.aicheck-6QEHJXOU.js.map +0 -7
- package/dist/block.tk.ase-SSCLC5GR.js +0 -377
- package/dist/block.tk.ase-SSCLC5GR.js.map +0 -7
- package/dist/block.tk.bam-CAO2P6CG.js +0 -1947
- package/dist/block.tk.bam-CAO2P6CG.js.map +0 -7
- package/dist/block.tk.bedgraphdot-TRV5LE6B.js +0 -381
- package/dist/block.tk.bedgraphdot-TRV5LE6B.js.map +0 -7
- package/dist/block.tk.bigwig.ui-2L2EC7WH.js +0 -205
- package/dist/block.tk.bigwig.ui-2L2EC7WH.js.map +0 -7
- package/dist/block.tk.hicstraw-YM7VNCPD.js +0 -869
- package/dist/block.tk.hicstraw-YM7VNCPD.js.map +0 -7
- package/dist/block.tk.junction-5QD4UNLO.js +0 -2392
- package/dist/block.tk.junction-5QD4UNLO.js.map +0 -7
- package/dist/block.tk.junction.textmatrixui-WBQLKM5H.js +0 -198
- package/dist/block.tk.junction.textmatrixui-WBQLKM5H.js.map +0 -7
- package/dist/block.tk.ld-BIGNA4XA.js +0 -102
- package/dist/block.tk.ld-BIGNA4XA.js.map +0 -7
- package/dist/block.tk.menu-6Y2J6D2U.js +0 -1076
- package/dist/block.tk.menu-6Y2J6D2U.js.map +0 -7
- package/dist/block.tk.pgv-7Y6C635Y.js +0 -988
- package/dist/block.tk.pgv-7Y6C635Y.js.map +0 -7
- package/dist/boxplot-L2FRJ7BC.js +0 -292
- package/dist/boxplot-L2FRJ7BC.js.map +0 -7
- package/dist/brainImaging-LBQ6BOCL.js +0 -262
- package/dist/brainImaging-LBQ6BOCL.js.map +0 -7
- package/dist/categorical-DCXSZ4FW.js +0 -47
- package/dist/chunk-252GVCUB.js +0 -1241
- package/dist/chunk-252GVCUB.js.map +0 -7
- package/dist/chunk-2BIZZCIY.js +0 -782
- package/dist/chunk-2EX476BR.js +0 -1245
- package/dist/chunk-2HB765M6.js +0 -3385
- package/dist/chunk-2JPSZLBQ.js +0 -369
- package/dist/chunk-2TA7MXMQ.js +0 -2504
- package/dist/chunk-34EXRT37.js +0 -1301
- package/dist/chunk-3EAPD7JJ.js +0 -128
- package/dist/chunk-3O3KNFZC.js +0 -6547
- package/dist/chunk-3O3KNFZC.js.map +0 -7
- package/dist/chunk-3PMPFLEK.js +0 -361
- package/dist/chunk-452UVSLH.js +0 -1074
- package/dist/chunk-4T6RODBA.js +0 -2859
- package/dist/chunk-4ZM4VOAG.js +0 -946
- package/dist/chunk-4ZM4VOAG.js.map +0 -7
- package/dist/chunk-542K2WZ7.js +0 -479
- package/dist/chunk-5IJCZCP7.js +0 -1971
- package/dist/chunk-5IJCZCP7.js.map +0 -7
- package/dist/chunk-5MCPDYY5.js +0 -601
- package/dist/chunk-5MCPDYY5.js.map +0 -7
- package/dist/chunk-6XR2LO7D.js +0 -120
- package/dist/chunk-7F5D236F.js +0 -358
- package/dist/chunk-7HTQ4K63.js +0 -339
- package/dist/chunk-7IHOFVZL.js +0 -2045
- package/dist/chunk-7IHOFVZL.js.map +0 -7
- package/dist/chunk-7TXNDPDZ.js +0 -96
- package/dist/chunk-7XHY4JRS.js +0 -520
- package/dist/chunk-A3GQXDSC.js +0 -416
- package/dist/chunk-A3GQXDSC.js.map +0 -7
- package/dist/chunk-A4GCSMHF.js +0 -267
- package/dist/chunk-A6DVKLWZ.js +0 -1776
- package/dist/chunk-A6DVKLWZ.js.map +0 -7
- package/dist/chunk-AGZQS6NY.js +0 -1101
- package/dist/chunk-AGZQS6NY.js.map +0 -7
- package/dist/chunk-AHQMETMT.js +0 -2646
- package/dist/chunk-BVLEQWF7.js +0 -524
- package/dist/chunk-BWZULQJJ.js +0 -94
- package/dist/chunk-C7BN5SOB.js +0 -572
- package/dist/chunk-EY7JFZ4D.js +0 -2041
- package/dist/chunk-EY7JFZ4D.js.map +0 -7
- package/dist/chunk-F2MOO6WD.js +0 -364
- package/dist/chunk-F62WPE3A.js +0 -393
- package/dist/chunk-F62WPE3A.js.map +0 -7
- package/dist/chunk-F7VAC4AZ.js +0 -134
- package/dist/chunk-FBZOZZR4.js +0 -83
- package/dist/chunk-FOSTUUJG.js +0 -123
- package/dist/chunk-FZXMYGIE.js +0 -310
- package/dist/chunk-FZXP5CZS.js +0 -456
- package/dist/chunk-H5PEOOWY.js +0 -165
- package/dist/chunk-H6RBOOCS.js +0 -1008
- package/dist/chunk-HQSR7OMV.js +0 -14
- package/dist/chunk-HVMI7J4K.js +0 -301
- package/dist/chunk-I3L3IGAB.js +0 -228
- package/dist/chunk-IRSVZT57.js +0 -184
- package/dist/chunk-J4L5RHSK.js +0 -232
- package/dist/chunk-JEBLRUTI.js +0 -406
- package/dist/chunk-JJ3EMEG5.js +0 -2831
- package/dist/chunk-KGBQ2WA5.js +0 -4761
- package/dist/chunk-KGBQ2WA5.js.map +0 -7
- package/dist/chunk-KW2UVQY4.js +0 -56
- package/dist/chunk-L6PTW3VL.js +0 -328
- package/dist/chunk-LRZTKKFF.js +0 -159
- package/dist/chunk-MBDAETWX.js +0 -232
- package/dist/chunk-MUGEX62S.js +0 -303
- package/dist/chunk-MWACWA3L.js +0 -638
- package/dist/chunk-NF3ZP7DN.js +0 -358
- package/dist/chunk-NI43XRK3.js +0 -153
- package/dist/chunk-NVZ3KU7Y.js +0 -273
- package/dist/chunk-NZ7FIKRZ.js +0 -31
- package/dist/chunk-O32YEJMI.js +0 -26
- package/dist/chunk-O32YEJMI.js.map +0 -7
- package/dist/chunk-OUBSJVOW.js +0 -174
- package/dist/chunk-P7BTNMOS.js +0 -421
- package/dist/chunk-P7BTNMOS.js.map +0 -7
- package/dist/chunk-PGCZMKZL.js +0 -68
- package/dist/chunk-PGCZMKZL.js.map +0 -7
- package/dist/chunk-PKXCLLK7.js +0 -609
- package/dist/chunk-PKXCLLK7.js.map +0 -7
- package/dist/chunk-PUN4NR6N.js +0 -389
- package/dist/chunk-PWTXVCZ4.js +0 -17
- package/dist/chunk-PWTXVCZ4.js.map +0 -7
- package/dist/chunk-QRZG6ZOQ.js +0 -593
- package/dist/chunk-QRZG6ZOQ.js.map +0 -7
- package/dist/chunk-RB5IPUK7.js +0 -496
- package/dist/chunk-SNJ7HF7A.js +0 -456
- package/dist/chunk-SNJ7HF7A.js.map +0 -7
- package/dist/chunk-TNWYWD33.js +0 -471
- package/dist/chunk-U6LQM5ZN.js +0 -219
- package/dist/chunk-UE2GNACI.js +0 -287
- package/dist/chunk-UIQRT242.js +0 -133
- package/dist/chunk-UUFZPMHA.js +0 -1385
- package/dist/chunk-UUFZPMHA.js.map +0 -7
- package/dist/chunk-VVD765YV.js +0 -172
- package/dist/chunk-VWAAOYZH.js +0 -506
- package/dist/chunk-W5MSYM3R.js +0 -295
- package/dist/chunk-WFANY24Z.js +0 -335
- package/dist/chunk-WMK7VUYQ.js +0 -2214
- package/dist/chunk-WMK7VUYQ.js.map +0 -7
- package/dist/chunk-WPMWODEH.js +0 -233
- package/dist/chunk-XNPZE2WZ.js +0 -1272
- package/dist/chunk-XOVDGXRX.js +0 -337
- package/dist/chunk-YQQK3HHV.js +0 -193
- package/dist/chunk-YUNMO4LV.js +0 -251
- package/dist/chunk-Z2BVISN7.js +0 -55
- package/dist/chunk-ZRUQHHLI.js +0 -114
- package/dist/chunk-ZRUQHHLI.js.map +0 -7
- package/dist/chunk-ZUXHWTIS.js +0 -1158
- package/dist/condition-ENXC72T7.js +0 -351
- package/dist/condition-ENXC72T7.js.map +0 -7
- package/dist/controls-KE64YGOW.js +0 -48
- package/dist/controls.config-ROGPIAS2.js +0 -44
- package/dist/cuminc-GPYPSTDW.js +0 -1184
- package/dist/cuminc-GPYPSTDW.js.map +0 -7
- package/dist/customdata.inputui-U7WDAHBT.js +0 -295
- package/dist/customdata.inputui-U7WDAHBT.js.map +0 -7
- package/dist/dataDownload-KVOKPGAH.js +0 -340
- package/dist/dataDownload-KVOKPGAH.js.map +0 -7
- package/dist/databrowser.ui-AWTK5DEK.js +0 -468
- package/dist/databrowser.ui-AWTK5DEK.js.map +0 -7
- package/dist/density-BSCDN4GB.js +0 -19
- package/dist/dictionary-3GC3G5ZE.js +0 -111
- package/dist/dictionary-3GC3G5ZE.js.map +0 -7
- package/dist/e2pca-KUOJJB35.js +0 -338
- package/dist/e2pca-KUOJJB35.js.map +0 -7
- package/dist/ep-MGFVUFBS.js +0 -1275
- package/dist/ep-MGFVUFBS.js.map +0 -7
- package/dist/expclust.gdc.spec-YTZOTDAG.js +0 -300
- package/dist/expclust.gdc.spec-YTZOTDAG.js.map +0 -7
- package/dist/facet-77P4ZYOE.js +0 -438
- package/dist/facet-77P4ZYOE.js.map +0 -7
- package/dist/geneExpClustering-ULFWB552.js +0 -279
- package/dist/geneExpClustering-ULFWB552.js.map +0 -7
- package/dist/geneExpression-437MUZKR.js +0 -313
- package/dist/geneExpression-FWUR3N2K.js +0 -61
- package/dist/geneExpression-FWUR3N2K.js.map +0 -7
- package/dist/geneExpression-O45ZRK5X.js +0 -57
- package/dist/geneORA-QTPGCSCO.js +0 -281
- package/dist/geneORA-QTPGCSCO.js.map +0 -7
- package/dist/geneVariant-BXTG7KIJ.js +0 -56
- package/dist/geneVariant-BXTG7KIJ.js.map +0 -7
- package/dist/geneVariant-MRX5FFUK.js +0 -385
- package/dist/geneVariant-MRX5FFUK.js.map +0 -7
- package/dist/genefusion.ui-S6NSIWSQ.js +0 -239
- package/dist/genefusion.ui-S6NSIWSQ.js.map +0 -7
- package/dist/geneset-UJMIMRZO.js +0 -211
- package/dist/geneset-UJMIMRZO.js.map +0 -7
- package/dist/genomeBrowser-M45R7UTC.js +0 -410
- package/dist/genomeBrowser-M45R7UTC.js.map +0 -7
- package/dist/genomeBrowser.controls-7USWCMS7.js +0 -51
- package/dist/genomeBrowser.spec-FPP73IGL.js +0 -262
- package/dist/genomeBrowser.spec-FPP73IGL.js.map +0 -7
- package/dist/groupsetting-X6E2Z5GU.js +0 -20
- package/dist/gsea-7J5ZJYZF.js +0 -336
- package/dist/gsea-7J5ZJYZF.js.map +0 -7
- package/dist/hierCluster-I5GYAJ67.js +0 -72
- package/dist/hierCluster-XV5XZRHW.js +0 -76
- package/dist/hierCluster.config-RLQNJMJK.js +0 -44
- package/dist/hierCluster.integration.spec-3Q6Q6SWU.js +0 -313
- package/dist/hierCluster.integration.spec-3Q6Q6SWU.js.map +0 -7
- package/dist/hierCluster.interactivity-7RNA4G33.js +0 -56
- package/dist/hierCluster.renderers-SSB7ZOMX.js +0 -22
- package/dist/imagePlot-4FBVKQ4N.js +0 -149
- package/dist/imagePlot-4FBVKQ4N.js.map +0 -7
- package/dist/launch.adhoc-TBBXX6SW.js +0 -54
- package/dist/leftlabel.sample-AYVRU4R5.js +0 -274
- package/dist/leftlabel.sample-AYVRU4R5.js.map +0 -7
- package/dist/legacyDataset-LM4FFTW3.js +0 -121
- package/dist/legacyDataset-LM4FFTW3.js.map +0 -7
- package/dist/lollipop-GTIUDECK.js +0 -109
- package/dist/lollipop-GTIUDECK.js.map +0 -7
- package/dist/maf-Z4FHNGXO.js +0 -372
- package/dist/maf-Z4FHNGXO.js.map +0 -7
- package/dist/maftimeline-AS6JKRXC.js +0 -603
- package/dist/maftimeline-AS6JKRXC.js.map +0 -7
- package/dist/matrix-PSBBYZHY.js +0 -72
- package/dist/matrix-VSVBKVHK.js +0 -67
- package/dist/matrix.cells-RO2BEWLS.js +0 -27
- package/dist/matrix.config-472MLJI3.js +0 -45
- package/dist/matrix.controls-3KV3A2SK.js +0 -44
- package/dist/matrix.data-APM7BGHQ.js +0 -30
- package/dist/matrix.groups-HHC5TA2L.js +0 -28
- package/dist/matrix.interactivity-YXFLANFQ.js +0 -46
- package/dist/matrix.layout-UY3I75BL.js +0 -24
- package/dist/matrix.legend-Y4S4HDWO.js +0 -21
- package/dist/matrix.renderers-C2Z5TP7R.js +0 -42
- package/dist/matrix.serieses-LXW6DVNY.js +0 -20
- package/dist/matrix.sort-ADYDTBHQ.js +0 -28
- package/dist/matrix.sort.unit.spec-SAITASIH.js +0 -477
- package/dist/matrix.sort.unit.spec-SAITASIH.js.map +0 -7
- package/dist/matrix.sorterUi-AHQ6OQSM.js +0 -19
- package/dist/matrix.sorterUi.unit.spec-EMMDTS65.js +0 -355
- package/dist/matrix.sorterUi.unit.spec-EMMDTS65.js.map +0 -7
- package/dist/mavb-KATYKKXJ.js +0 -742
- package/dist/mavb-KATYKKXJ.js.map +0 -7
- package/dist/mds.fimo-Z5FCON2A.js +0 -533
- package/dist/mds.fimo-Z5FCON2A.js.map +0 -7
- package/dist/mds.samplescatterplot-E2BO4L6O.js +0 -1680
- package/dist/mds.samplescatterplot-E2BO4L6O.js.map +0 -7
- package/dist/mds.survivalplot-WQQXHCQD.js +0 -494
- package/dist/mds.survivalplot-WQQXHCQD.js.map +0 -7
- package/dist/metaboliteIntensity-BRNMOEP7.js +0 -47
- package/dist/numeric-AKY5S4ZV.js +0 -43
- package/dist/numeric.binary-P5HXG7SW.js +0 -261
- package/dist/numeric.binary-P5HXG7SW.js.map +0 -7
- package/dist/numeric.continuous-HLZ235YY.js +0 -143
- package/dist/numeric.continuous-HLZ235YY.js.map +0 -7
- package/dist/numeric.discrete-Z27UIJL2.js +0 -51
- package/dist/numeric.spline-RCFY6OI5.js +0 -239
- package/dist/numeric.spline-RCFY6OI5.js.map +0 -7
- package/dist/numeric.toggle-ECHESLL6.js +0 -44
- package/dist/oncomatrix-QLSRANC6.js +0 -321
- package/dist/oncomatrix-QLSRANC6.js.map +0 -7
- package/dist/oncomatrix.spec-TMVS2MRS.js +0 -444
- package/dist/oncomatrix.spec-TMVS2MRS.js.map +0 -7
- package/dist/plot.2dvaf-4DSUOJLY.js +0 -363
- package/dist/plot.2dvaf-4DSUOJLY.js.map +0 -7
- package/dist/plot.app-TXH6JCHC.js +0 -53
- package/dist/plot.barplot-6VAQAJAQ.js +0 -86
- package/dist/plot.barplot-6VAQAJAQ.js.map +0 -7
- package/dist/plot.boxplot-SY7P5B43.js +0 -150
- package/dist/plot.boxplot-SY7P5B43.js.map +0 -7
- package/dist/plot.brainImaging-UWEE3ASQ.js +0 -56
- package/dist/plot.disco-Y7QJD6MY.js +0 -101
- package/dist/plot.disco-Y7QJD6MY.js.map +0 -7
- package/dist/plot.dzi-ACLWPR4N.js +0 -33
- package/dist/plot.ssgq-QSU55N6M.js +0 -133
- package/dist/plot.ssgq-QSU55N6M.js.map +0 -7
- package/dist/plot.vaf2cov-O4Q5OBYC.js +0 -246
- package/dist/plot.vaf2cov-O4Q5OBYC.js.map +0 -7
- package/dist/plot.wsi-XDP6H632.js +0 -32
- package/dist/profile.spec-MGAOZKFC.js +0 -162
- package/dist/profile.spec-MGAOZKFC.js.map +0 -7
- package/dist/profileBarchart-QBBPFWWC.js +0 -284
- package/dist/profileBarchart-QBBPFWWC.js.map +0 -7
- package/dist/profileHome-TFTR44T5.js +0 -128
- package/dist/profileHome-TFTR44T5.js.map +0 -7
- package/dist/profilePlot-W46V5WZY.js +0 -60
- package/dist/profilePolar-I22IOMQQ.js +0 -211
- package/dist/profilePolar-I22IOMQQ.js.map +0 -7
- package/dist/profileRadar-UNXOSJYG.js +0 -291
- package/dist/profileRadar-UNXOSJYG.js.map +0 -7
- package/dist/profileRadarFacility-4IPLM577.js +0 -281
- package/dist/profileRadarFacility-4IPLM577.js.map +0 -7
- package/dist/profileSummary-5M23GUCR.js +0 -113
- package/dist/profileSummary-5M23GUCR.js.map +0 -7
- package/dist/regression-3H3254JS.js +0 -73
- package/dist/regression.inputs-RN4ELCCQ.js +0 -65
- package/dist/regression.inputs.term-UU36JXKO.js +0 -65
- package/dist/regression.inputs.values.table-KNSYQELW.js +0 -62
- package/dist/regression.results-C7JMURE4.js +0 -40
- package/dist/sampleScatter-4FNFRHZ4.js +0 -82
- package/dist/sampleScatter.interactivity-XVLL4V3S.js +0 -56
- package/dist/sampleScatter.renderer-AT4NAZBS.js +0 -62
- package/dist/sampleView-24OQHMUF.js +0 -60
- package/dist/samplelst-CF23G24A.js +0 -119
- package/dist/samplelst-CF23G24A.js.map +0 -7
- package/dist/samplematrix-3EHMPDIQ.js +0 -2327
- package/dist/samplematrix-3EHMPDIQ.js.map +0 -7
- package/dist/scatter-M4XFDPFC.js +0 -374
- package/dist/scatter-M4XFDPFC.js.map +0 -7
- package/dist/selectGenomeWithTklst-XTQ4UXFG.js +0 -126
- package/dist/selectGenomeWithTklst-XTQ4UXFG.js.map +0 -7
- package/dist/singleCellCellType-XD5ZUVVS.js +0 -76
- package/dist/singleCellCellType-XD5ZUVVS.js.map +0 -7
- package/dist/singleCellGeneExpression-IBQJOINV.js +0 -53
- package/dist/singleCellPlot-5HXT5W34.js +0 -922
- package/dist/singleCellPlot-5HXT5W34.js.map +0 -7
- package/dist/singlecell-BSSUR3LC.js +0 -216
- package/dist/singlecell-BSSUR3LC.js.map +0 -7
- package/dist/singlecell-QAUS3LFJ.js +0 -856
- package/dist/singlecell-QAUS3LFJ.js.map +0 -7
- package/dist/snp-A2YNGQSD.js +0 -70
- package/dist/snp-A2YNGQSD.js.map +0 -7
- package/dist/snp-UQSHCWCJ.js +0 -79
- package/dist/snp-UQSHCWCJ.js.map +0 -7
- package/dist/snplocus-L6IAD5O2.js +0 -237
- package/dist/snplocus-L6IAD5O2.js.map +0 -7
- package/dist/spliceevent.a53ss.diagram-RWIHOT5N.js +0 -139
- package/dist/spliceevent.a53ss.diagram-RWIHOT5N.js.map +0 -7
- package/dist/spliceevent.exonskip.diagram-Q3XLNEQG.js +0 -261
- package/dist/spliceevent.exonskip.diagram-Q3XLNEQG.js.map +0 -7
- package/dist/spliceevent.noeventdiagram-2KYXXTHV.js +0 -463
- package/dist/spliceevent.noeventdiagram-2KYXXTHV.js.map +0 -7
- package/dist/summary-IBAGSXZC.js +0 -75
- package/dist/sunburst-BR6GCTIA.js +0 -274
- package/dist/sunburst-BR6GCTIA.js.map +0 -7
- package/dist/survival-7U5KRM4F.js +0 -66
- package/dist/survival-7U5KRM4F.js.map +0 -7
- package/dist/survival-H5ZRADT6.js +0 -1155
- package/dist/survival-H5ZRADT6.js.map +0 -7
- package/dist/svgraph-MKB3QQUM.js +0 -1425
- package/dist/svgraph-MKB3QQUM.js.map +0 -7
- package/dist/svmr-7G332AYS.js +0 -3977
- package/dist/svmr-7G332AYS.js.map +0 -7
- package/dist/table-KJXLZ2ZJ.js +0 -212
- package/dist/table-KJXLZ2ZJ.js.map +0 -7
- package/dist/tk-ENLUPDDN.js +0 -53
- package/dist/tp.ui-S7Q5QHJY.js +0 -1501
- package/dist/tp.ui-S7Q5QHJY.js.map +0 -7
- package/dist/tvs.geneVariant-J6BU4QWJ.js +0 -184
- package/dist/tvs.geneVariant-J6BU4QWJ.js.map +0 -7
- package/dist/tvs.numeric-3EKVOHHT.js +0 -23
- package/dist/violin-QV326UNM.js +0 -60
- package/dist/violin.interactivity-DTTFFLEM.js +0 -48
- package/dist/violin.renderer-X7IYO5OZ.js +0 -21
- package/dist/vocabulary-MQESDXTN.js +0 -50
- /package/dist/{WSIViewer-2L33KLK4.js.map → WSIViewer-CMI2NG5H.js.map} +0 -0
- /package/dist/{adSandbox-GLNWQRUP.js.map → adSandbox-3SUMXENO.js.map} +0 -0
- /package/dist/{app-E3YQIJAO.js.map → app-AFC7K3QJ.js.map} +0 -0
- /package/dist/{app-FWXMHBCV.js.map → app-KOFKVIHE.js.map} +0 -0
- /package/dist/{barchart-U34XCAS4.js.map → barchart-46A6ZUSK.js.map} +0 -0
- /package/dist/{barchart.data-GTPRPSXS.js.map → barchart.data-RAXR5Z4M.js.map} +0 -0
- /package/dist/{barchart.events-NOHHD6UP.js.map → barchart.events-FTQ6DCCY.js.map} +0 -0
- /package/dist/{bars.renderer-OOMLYTR5.js.map → bars.renderer-TPIVXMGV.js.map} +0 -0
- /package/dist/{block.init-6ESUW5F3.js.map → block.init-PSSP7HZM.js.map} +0 -0
- /package/dist/{categorical-DCXSZ4FW.js.map → categorical-DYB4UK3H.js.map} +0 -0
- /package/dist/{chunk-L6PTW3VL.js.map → chunk-2QZPEAAC.js.map} +0 -0
- /package/dist/{chunk-2TA7MXMQ.js.map → chunk-2TBUEEHC.js.map} +0 -0
- /package/dist/{chunk-3PMPFLEK.js.map → chunk-34ICXQIT.js.map} +0 -0
- /package/dist/{chunk-VWAAOYZH.js.map → chunk-3RMUHZP7.js.map} +0 -0
- /package/dist/{chunk-J4L5RHSK.js.map → chunk-43IAAZGD.js.map} +0 -0
- /package/dist/{chunk-3EAPD7JJ.js.map → chunk-43XN7MWL.js.map} +0 -0
- /package/dist/{chunk-Z2BVISN7.js.map → chunk-4VSIBQA2.js.map} +0 -0
- /package/dist/{chunk-UE2GNACI.js.map → chunk-5JAV4AND.js.map} +0 -0
- /package/dist/{chunk-WFANY24Z.js.map → chunk-5TRXIQ5D.js.map} +0 -0
- /package/dist/{chunk-KW2UVQY4.js.map → chunk-6RP3HKKV.js.map} +0 -0
- /package/dist/{chunk-C7BN5SOB.js.map → chunk-7KQS6G33.js.map} +0 -0
- /package/dist/{chunk-XOVDGXRX.js.map → chunk-7NMRJUVQ.js.map} +0 -0
- /package/dist/{chunk-34EXRT37.js.map → chunk-A6IPLGJ7.js.map} +0 -0
- /package/dist/{chunk-RB5IPUK7.js.map → chunk-AI4P4YBY.js.map} +0 -0
- /package/dist/{chunk-2JPSZLBQ.js.map → chunk-AJEQEARY.js.map} +0 -0
- /package/dist/{chunk-A4GCSMHF.js.map → chunk-BFEYWEIF.js.map} +0 -0
- /package/dist/{chunk-BWZULQJJ.js.map → chunk-CCUY32QB.js.map} +0 -0
- /package/dist/{chunk-FZXMYGIE.js.map → chunk-CMPUZHAK.js.map} +0 -0
- /package/dist/{chunk-FOSTUUJG.js.map → chunk-CVWXP35F.js.map} +0 -0
- /package/dist/{chunk-YQQK3HHV.js.map → chunk-DKFNDR6B.js.map} +0 -0
- /package/dist/{chunk-F2MOO6WD.js.map → chunk-DKM3C7EW.js.map} +0 -0
- /package/dist/{chunk-XNPZE2WZ.js.map → chunk-EHM2BRQX.js.map} +0 -0
- /package/dist/{chunk-2HB765M6.js.map → chunk-EKXE73PZ.js.map} +0 -0
- /package/dist/{chunk-YUNMO4LV.js.map → chunk-EW7ND3XZ.js.map} +0 -0
- /package/dist/{chunk-U6LQM5ZN.js.map → chunk-FPFJ7KA5.js.map} +0 -0
- /package/dist/{chunk-OUBSJVOW.js.map → chunk-FSKRSQBG.js.map} +0 -0
- /package/dist/{chunk-ZUXHWTIS.js.map → chunk-GB4U6TLN.js.map} +0 -0
- /package/dist/{chunk-H6RBOOCS.js.map → chunk-GCUGTS2F.js.map} +0 -0
- /package/dist/{chunk-PUN4NR6N.js.map → chunk-GFSWZVFJ.js.map} +0 -0
- /package/dist/{chunk-JEBLRUTI.js.map → chunk-GMAKKWKW.js.map} +0 -0
- /package/dist/{chunk-7TXNDPDZ.js.map → chunk-H54UZQBQ.js.map} +0 -0
- /package/dist/{chunk-HQSR7OMV.js.map → chunk-HBQOXTSD.js.map} +0 -0
- /package/dist/{chunk-JJ3EMEG5.js.map → chunk-IBN5BEOY.js.map} +0 -0
- /package/dist/{chunk-542K2WZ7.js.map → chunk-IPNHDLML.js.map} +0 -0
- /package/dist/{chunk-NZ7FIKRZ.js.map → chunk-JFRRERO5.js.map} +0 -0
- /package/dist/{chunk-I3L3IGAB.js.map → chunk-JOCEI72L.js.map} +0 -0
- /package/dist/{chunk-7HTQ4K63.js.map → chunk-KECEUABR.js.map} +0 -0
- /package/dist/{chunk-LRZTKKFF.js.map → chunk-LOEMEXB4.js.map} +0 -0
- /package/dist/{chunk-MWACWA3L.js.map → chunk-M6GWX3QG.js.map} +0 -0
- /package/dist/{chunk-NI43XRK3.js.map → chunk-MI3B3QMC.js.map} +0 -0
- /package/dist/{chunk-UIQRT242.js.map → chunk-MRCZTYKD.js.map} +0 -0
- /package/dist/{chunk-MBDAETWX.js.map → chunk-MWK77NSW.js.map} +0 -0
- /package/dist/{chunk-FBZOZZR4.js.map → chunk-MXIDZVHS.js.map} +0 -0
- /package/dist/{chunk-2EX476BR.js.map → chunk-NWTQKS22.js.map} +0 -0
- /package/dist/{chunk-NVZ3KU7Y.js.map → chunk-NZ44KDJL.js.map} +0 -0
- /package/dist/{chunk-AHQMETMT.js.map → chunk-ON6B4J6U.js.map} +0 -0
- /package/dist/{chunk-6XR2LO7D.js.map → chunk-OTWQWP6Z.js.map} +0 -0
- /package/dist/{chunk-IRSVZT57.js.map → chunk-PDB7U2LQ.js.map} +0 -0
- /package/dist/{chunk-4T6RODBA.js.map → chunk-PHPTWH37.js.map} +0 -0
- /package/dist/{chunk-HVMI7J4K.js.map → chunk-PN65XLN6.js.map} +0 -0
- /package/dist/{chunk-FZXP5CZS.js.map → chunk-QJGZWXLL.js.map} +0 -0
- /package/dist/{chunk-BVLEQWF7.js.map → chunk-QWEOZIHZ.js.map} +0 -0
- /package/dist/{chunk-VVD765YV.js.map → chunk-RWP3TLNT.js.map} +0 -0
- /package/dist/{chunk-2BIZZCIY.js.map → chunk-RZAXZKVC.js.map} +0 -0
- /package/dist/{chunk-TNWYWD33.js.map → chunk-SEACSRFV.js.map} +0 -0
- /package/dist/{chunk-MUGEX62S.js.map → chunk-SXGBW6OZ.js.map} +0 -0
- /package/dist/{chunk-F7VAC4AZ.js.map → chunk-TWMHUWQX.js.map} +0 -0
- /package/dist/{chunk-WPMWODEH.js.map → chunk-UBVVTQC3.js.map} +0 -0
- /package/dist/{chunk-H5PEOOWY.js.map → chunk-UM63WBJM.js.map} +0 -0
- /package/dist/{chunk-NF3ZP7DN.js.map → chunk-VU3I7SFL.js.map} +0 -0
- /package/dist/{chunk-452UVSLH.js.map → chunk-WTVD5AS2.js.map} +0 -0
- /package/dist/{chunk-W5MSYM3R.js.map → chunk-YR6I3PPZ.js.map} +0 -0
- /package/dist/{chunk-7F5D236F.js.map → chunk-ZODVYN2Z.js.map} +0 -0
- /package/dist/{chunk-7XHY4JRS.js.map → chunk-ZZILTP5U.js.map} +0 -0
- /package/dist/{controls-KE64YGOW.js.map → controls-IWAM6RFC.js.map} +0 -0
- /package/dist/{controls.config-ROGPIAS2.js.map → controls.config-TI77G7KY.js.map} +0 -0
- /package/dist/{density-BSCDN4GB.js.map → density-QSWCWH3N.js.map} +0 -0
- /package/dist/{geneExpression-437MUZKR.js.map → geneExpression-4VXMDANU.js.map} +0 -0
- /package/dist/{geneExpression-O45ZRK5X.js.map → geneExpression-ISHYTKOB.js.map} +0 -0
- /package/dist/{genomeBrowser.controls-7USWCMS7.js.map → genomeBrowser.controls-DD7JSNI3.js.map} +0 -0
- /package/dist/{groupsetting-X6E2Z5GU.js.map → groupsetting-VMK33QN3.js.map} +0 -0
- /package/dist/{hierCluster-I5GYAJ67.js.map → hierCluster-CBTA34XL.js.map} +0 -0
- /package/dist/{hierCluster-XV5XZRHW.js.map → hierCluster-EOTGIBVT.js.map} +0 -0
- /package/dist/{hierCluster.config-RLQNJMJK.js.map → hierCluster.config-4GZ46YHN.js.map} +0 -0
- /package/dist/{hierCluster.interactivity-7RNA4G33.js.map → hierCluster.interactivity-6SNGRTKW.js.map} +0 -0
- /package/dist/{hierCluster.renderers-SSB7ZOMX.js.map → hierCluster.renderers-ZPR7EDHZ.js.map} +0 -0
- /package/dist/{launch.adhoc-TBBXX6SW.js.map → launch.adhoc-DFJIN2WT.js.map} +0 -0
- /package/dist/{matrix-PSBBYZHY.js.map → matrix-B7ZILOQ7.js.map} +0 -0
- /package/dist/{matrix-VSVBKVHK.js.map → matrix-X6CPIDIV.js.map} +0 -0
- /package/dist/{matrix.cells-RO2BEWLS.js.map → matrix.cells-M4YYMUCX.js.map} +0 -0
- /package/dist/{matrix.config-472MLJI3.js.map → matrix.config-N3VRUIBE.js.map} +0 -0
- /package/dist/{matrix.controls-3KV3A2SK.js.map → matrix.controls-QZRCJ35M.js.map} +0 -0
- /package/dist/{matrix.data-APM7BGHQ.js.map → matrix.data-RT6C2K3X.js.map} +0 -0
- /package/dist/{matrix.groups-HHC5TA2L.js.map → matrix.groups-VWOCE2OX.js.map} +0 -0
- /package/dist/{matrix.interactivity-YXFLANFQ.js.map → matrix.interactivity-PUMHTQES.js.map} +0 -0
- /package/dist/{matrix.layout-UY3I75BL.js.map → matrix.layout-E23ZOPZ3.js.map} +0 -0
- /package/dist/{matrix.legend-Y4S4HDWO.js.map → matrix.legend-MWSRG6FJ.js.map} +0 -0
- /package/dist/{matrix.renderers-C2Z5TP7R.js.map → matrix.renderers-ALGBNBK2.js.map} +0 -0
- /package/dist/{matrix.serieses-LXW6DVNY.js.map → matrix.serieses-HKO6DYLL.js.map} +0 -0
- /package/dist/{matrix.sort-ADYDTBHQ.js.map → matrix.sort-63NHPQNT.js.map} +0 -0
- /package/dist/{matrix.sorterUi-AHQ6OQSM.js.map → matrix.sorterUi-QXXZTD4A.js.map} +0 -0
- /package/dist/{metaboliteIntensity-BRNMOEP7.js.map → metaboliteIntensity-BMKNKDXS.js.map} +0 -0
- /package/dist/{numeric-AKY5S4ZV.js.map → numeric-W63IFV67.js.map} +0 -0
- /package/dist/{numeric.discrete-Z27UIJL2.js.map → numeric.discrete-VOD3KY74.js.map} +0 -0
- /package/dist/{numeric.toggle-ECHESLL6.js.map → numeric.toggle-RCKPB7ZD.js.map} +0 -0
- /package/dist/{plot.app-TXH6JCHC.js.map → plot.app-I7VDXUNL.js.map} +0 -0
- /package/dist/{plot.brainImaging-UWEE3ASQ.js.map → plot.brainImaging-EUS4O2WC.js.map} +0 -0
- /package/dist/{plot.dzi-ACLWPR4N.js.map → plot.dzi-7JMXXJQ5.js.map} +0 -0
- /package/dist/{plot.wsi-XDP6H632.js.map → plot.wsi-K7X6UIFM.js.map} +0 -0
- /package/dist/{profilePlot-W46V5WZY.js.map → profilePlot-64ZHU4EX.js.map} +0 -0
- /package/dist/{regression-3H3254JS.js.map → regression-BSLYVSPL.js.map} +0 -0
- /package/dist/{regression.inputs-RN4ELCCQ.js.map → regression.inputs-PSLCZH3F.js.map} +0 -0
- /package/dist/{regression.inputs.term-UU36JXKO.js.map → regression.inputs.term-7I5ATFPY.js.map} +0 -0
- /package/dist/{regression.inputs.values.table-KNSYQELW.js.map → regression.inputs.values.table-ZHTQ5ODD.js.map} +0 -0
- /package/dist/{regression.results-C7JMURE4.js.map → regression.results-6BCE6DZ6.js.map} +0 -0
- /package/dist/{sampleScatter-4FNFRHZ4.js.map → sampleScatter-5CFQKO2N.js.map} +0 -0
- /package/dist/{sampleScatter.interactivity-XVLL4V3S.js.map → sampleScatter.interactivity-GNZ7P5QO.js.map} +0 -0
- /package/dist/{sampleScatter.renderer-AT4NAZBS.js.map → sampleScatter.renderer-XLFS24OP.js.map} +0 -0
- /package/dist/{sampleView-24OQHMUF.js.map → sampleView-K4ZUOIEI.js.map} +0 -0
- /package/dist/{singleCellGeneExpression-IBQJOINV.js.map → singleCellGeneExpression-PODHL6V6.js.map} +0 -0
- /package/dist/{summary-IBAGSXZC.js.map → summary-ERKCPDNZ.js.map} +0 -0
- /package/dist/{tk-ENLUPDDN.js.map → tk-II3BDHPV.js.map} +0 -0
- /package/dist/{tvs.numeric-3EKVOHHT.js.map → tvs.numeric-W2UF3S26.js.map} +0 -0
- /package/dist/{violin-QV326UNM.js.map → violin-PT2CYSKC.js.map} +0 -0
- /package/dist/{violin.interactivity-DTTFFLEM.js.map → violin.interactivity-SP5KDTDF.js.map} +0 -0
- /package/dist/{violin.renderer-X7IYO5OZ.js.map → violin.renderer-DDVZZIRT.js.map} +0 -0
- /package/dist/{vocabulary-MQESDXTN.js.map → vocabulary-P7P5QIKP.js.map} +0 -0
|
@@ -0,0 +1,1403 @@
|
|
|
1
|
+
import {
|
|
2
|
+
renderSandboxFormDiv
|
|
3
|
+
} from "./chunk-JVUJSWZ2.js";
|
|
4
|
+
import "./chunk-JV3G5Q3X.js";
|
|
5
|
+
import {
|
|
6
|
+
axisstyle,
|
|
7
|
+
bulk_badline,
|
|
8
|
+
font,
|
|
9
|
+
newpane,
|
|
10
|
+
newpane3,
|
|
11
|
+
sayerror,
|
|
12
|
+
to_svg
|
|
13
|
+
} from "./chunk-WTVD5AS2.js";
|
|
14
|
+
import {
|
|
15
|
+
Menu
|
|
16
|
+
} from "./chunk-7YY2KB6H.js";
|
|
17
|
+
import {
|
|
18
|
+
make_table_2col
|
|
19
|
+
} from "./chunk-2BM5YZ6X.js";
|
|
20
|
+
import "./chunk-5TRXIQ5D.js";
|
|
21
|
+
import {
|
|
22
|
+
mclass,
|
|
23
|
+
mclassnonstandard
|
|
24
|
+
} from "./chunk-EHM2BRQX.js";
|
|
25
|
+
import {
|
|
26
|
+
Symbol,
|
|
27
|
+
axisBottom,
|
|
28
|
+
axisLeft,
|
|
29
|
+
axisTop,
|
|
30
|
+
circle_default,
|
|
31
|
+
cross_default,
|
|
32
|
+
diamond_default,
|
|
33
|
+
square_default,
|
|
34
|
+
star_default,
|
|
35
|
+
triangle_default,
|
|
36
|
+
wye_default
|
|
37
|
+
} from "./chunk-L3BEUWSG.js";
|
|
38
|
+
import "./chunk-JASS6SUY.js";
|
|
39
|
+
import {
|
|
40
|
+
select_default
|
|
41
|
+
} from "./chunk-NUYFQ7WK.js";
|
|
42
|
+
import "./chunk-BT2NCQ7T.js";
|
|
43
|
+
import {
|
|
44
|
+
format,
|
|
45
|
+
linear
|
|
46
|
+
} from "./chunk-K3MEWWGO.js";
|
|
47
|
+
import "./chunk-CKF26VJ7.js";
|
|
48
|
+
import "./chunk-Y6SKTI7D.js";
|
|
49
|
+
import "./chunk-F3OQE4AZ.js";
|
|
50
|
+
|
|
51
|
+
// src/2dmaf.anchors.js
|
|
52
|
+
var Anchors = class {
|
|
53
|
+
constructor(opts) {
|
|
54
|
+
this.opts = opts;
|
|
55
|
+
this.anchorType = opts.anchorType;
|
|
56
|
+
this.shareheight = opts.shareheight;
|
|
57
|
+
this.sharewidth = opts.sharewidth;
|
|
58
|
+
const x = "x" in opts ? opts.x : 0;
|
|
59
|
+
const y = "y" in opts ? opts.y : 0;
|
|
60
|
+
this.settings = {
|
|
61
|
+
visible: true,
|
|
62
|
+
opacity: 0.3,
|
|
63
|
+
x,
|
|
64
|
+
y,
|
|
65
|
+
xOffset: opts.axiswidth + opts.sp + opts.sample2height,
|
|
66
|
+
yOffset: opts.shareheight,
|
|
67
|
+
currX: opts.axiswidth + opts.sp + opts.sample2height + x,
|
|
68
|
+
currY: opts.shareheight - y,
|
|
69
|
+
strokeWidth: "strokeWidth" in opts ? opts.strokeWidth : 5,
|
|
70
|
+
stroke: "stroke" in opts ? opts.stroke : "red",
|
|
71
|
+
xarmlen: "xarmlen" in opts ? opts.xarmlen : 25
|
|
72
|
+
};
|
|
73
|
+
this.addControls(this.anchorType ? null : this.opts.headerdiv);
|
|
74
|
+
}
|
|
75
|
+
setWrapper(g) {
|
|
76
|
+
this.opts.wrapper = g;
|
|
77
|
+
}
|
|
78
|
+
addControls(headerdiv = null) {
|
|
79
|
+
if (headerdiv) {
|
|
80
|
+
const anchorbtn = headerdiv.append("button").text("Anchors").on("click", (event) => {
|
|
81
|
+
this.anchormenu.showunder(event.target);
|
|
82
|
+
this.xInput.property("value", (this.settings.x / this.sharewidth).toFixed(2));
|
|
83
|
+
this.yInput.property("value", (this.settings.y / this.sharewidth).toFixed(2));
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
this.anchormenu = new Menu({ border: "solid 1px black" });
|
|
87
|
+
this.anchormenu.d.style("text-align", "center");
|
|
88
|
+
this.addCoordInput();
|
|
89
|
+
this.addColorInput();
|
|
90
|
+
this.addOpacityInput();
|
|
91
|
+
if (!this.anchorType)
|
|
92
|
+
this.addSubmitBtns();
|
|
93
|
+
else
|
|
94
|
+
this.addDeleteBtn();
|
|
95
|
+
}
|
|
96
|
+
addColorInput() {
|
|
97
|
+
const div = this.anchormenu.d.append("div");
|
|
98
|
+
div.append("label").html("Color: ");
|
|
99
|
+
this.strokeInput = div.append("input");
|
|
100
|
+
this.strokeInput.attr("this.anchorType", "text").property("value", this.settings.stroke).style("width", "50px");
|
|
101
|
+
}
|
|
102
|
+
addOpacityInput() {
|
|
103
|
+
const div = this.anchormenu.d.append("div");
|
|
104
|
+
div.append("label").html("Opacity: ");
|
|
105
|
+
this.opacityInput = div.append("input");
|
|
106
|
+
this.opacityInput.attr("this.anchorType", "number").attr("min", 0).attr("max", 1).attr("step", 0.01).property("value", this.settings.opacity).style("width", "50px");
|
|
107
|
+
}
|
|
108
|
+
addSubmitBtns() {
|
|
109
|
+
if (this.anchorType)
|
|
110
|
+
return;
|
|
111
|
+
const div = this.anchormenu.d.append("div");
|
|
112
|
+
div.append("label").html("Add Anchor: ");
|
|
113
|
+
div.append("button").html("R").on("click", () => {
|
|
114
|
+
new SyncedAnchors(this.getSettings("r"));
|
|
115
|
+
this.anchormenu.hide();
|
|
116
|
+
});
|
|
117
|
+
div.append("button").html("D").on("click", () => {
|
|
118
|
+
new SyncedAnchors(this.getSettings("d"));
|
|
119
|
+
this.anchormenu.hide();
|
|
120
|
+
});
|
|
121
|
+
div.append("button").html("X").on("click", () => {
|
|
122
|
+
new SyncedAnchors(this.getSettings("x"));
|
|
123
|
+
this.anchormenu.hide();
|
|
124
|
+
});
|
|
125
|
+
div.append("button").html("synced").on("click", () => {
|
|
126
|
+
new SyncedAnchors(this.getSettings("synced"));
|
|
127
|
+
this.anchormenu.hide();
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
getSettings(anchorType) {
|
|
131
|
+
return Object.assign({}, this.opts, {
|
|
132
|
+
anchorType,
|
|
133
|
+
opacity: this.opacityInput.property("value"),
|
|
134
|
+
x: this.xInput.property("value") * this.sharewidth,
|
|
135
|
+
y: this.yInput.property("value") * this.shareheight,
|
|
136
|
+
stroke: this.strokeInput.property("value")
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
addCoordInput() {
|
|
140
|
+
const xdiv = this.anchormenu.d.append("div");
|
|
141
|
+
xdiv.append("label").html("X: ");
|
|
142
|
+
this.xInput = xdiv.append("input");
|
|
143
|
+
this.xInput.attr("this.anchorType", "number").attr("min", 0).attr("max", 1).attr("step", 0.01).property("value", 0).style("width", "80px");
|
|
144
|
+
const ydiv = this.anchormenu.d.append("div");
|
|
145
|
+
ydiv.append("label").html("Y: ");
|
|
146
|
+
this.yInput = ydiv.append("input");
|
|
147
|
+
this.yInput.attr("this.anchorType", "number").attr("min", 0).attr("max", 1).attr("step", 0.01).property("value", 0).style("width", "80px");
|
|
148
|
+
}
|
|
149
|
+
addDeleteBtn() {
|
|
150
|
+
if (!this.anchorType)
|
|
151
|
+
return;
|
|
152
|
+
const div = this.anchormenu.d.append("div");
|
|
153
|
+
div.append("button").html("Delete").on("click", () => {
|
|
154
|
+
this.g_anchor.remove();
|
|
155
|
+
this.anchormenu.hide();
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
var SyncedAnchors = class extends Anchors {
|
|
160
|
+
constructor(opts) {
|
|
161
|
+
super(opts);
|
|
162
|
+
this.render();
|
|
163
|
+
this.strokeInput.on("change", () => {
|
|
164
|
+
this.settings.stroke = this.strokeInput.property("value");
|
|
165
|
+
this.g_anchor.style("stroke", this.settings.stroke);
|
|
166
|
+
this.anchormenu.hide();
|
|
167
|
+
});
|
|
168
|
+
this.opacityInput.on("change", () => {
|
|
169
|
+
this.settings.opacity = input.property("value");
|
|
170
|
+
this.g_anchor.style("opacity", this.settings.opacity);
|
|
171
|
+
this.anchormenu.hide();
|
|
172
|
+
});
|
|
173
|
+
this.xInput.on("change", () => {
|
|
174
|
+
this.settings.x = +this.xInput.property("value") * this.sharewidth;
|
|
175
|
+
this.settings.currX = this.settings.x + this.settings.xOffset;
|
|
176
|
+
if (this.d_anchor) {
|
|
177
|
+
this.d_anchor.transition().duration(1e3).attr("x1", this.settings.currX).attr("x2", this.settings.currX);
|
|
178
|
+
}
|
|
179
|
+
if (this.x_anchor) {
|
|
180
|
+
this.x_anchor.transition().duration(1e3).attr("transform", "translate(" + this.settings.currX + "," + this.settings.currY + ")");
|
|
181
|
+
}
|
|
182
|
+
this.anchormenu.hide();
|
|
183
|
+
});
|
|
184
|
+
this.yInput.on("change", () => {
|
|
185
|
+
this.settings.y = +this.yInput.property("value") * this.shareheight;
|
|
186
|
+
this.settings.currY = -this.settings.y + this.settings.yOffset;
|
|
187
|
+
if (this.r_anchor) {
|
|
188
|
+
this.r_anchor.transition().duration(1e3).attr("y1", this.settings.currY).attr("y2", this.settings.currY);
|
|
189
|
+
}
|
|
190
|
+
if (this.x_anchor) {
|
|
191
|
+
this.x_anchor.transition().duration(1e3).attr("transform", "translate(" + this.settings.currX + "," + this.settings.currY + ")");
|
|
192
|
+
}
|
|
193
|
+
this.anchormenu.hide();
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
render() {
|
|
197
|
+
this.g_anchor = this.opts.wrapper.append("g").style("stroke", this.settings.stroke).style("opacity", this.settings.opacity).style("display", this.settings.visible ? "" : "none").style("stroke-width", this.settings.strokeWidth).on(
|
|
198
|
+
"click",
|
|
199
|
+
this.anchorType == "synced" ? null : (event) => {
|
|
200
|
+
this.anchormenu.showunder(event.target);
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
this.renderD();
|
|
204
|
+
this.renderR();
|
|
205
|
+
this.renderX();
|
|
206
|
+
}
|
|
207
|
+
renderD() {
|
|
208
|
+
if (!["synced", "d"].includes(this.anchorType))
|
|
209
|
+
return;
|
|
210
|
+
this.d_anchor = this.g_anchor.append("line");
|
|
211
|
+
const o = this.opts;
|
|
212
|
+
this.updateD(o.shareheight + o.sp2, o.shareheight + o.sample1height);
|
|
213
|
+
}
|
|
214
|
+
updateD(y1, y2) {
|
|
215
|
+
if (!["synced", "d"].includes(this.anchorType))
|
|
216
|
+
return;
|
|
217
|
+
this.settings.D = { y1, y2 };
|
|
218
|
+
this.d_anchor.attr("x1", this.settings.currX).attr("x2", this.settings.currX).attr("y1", y1).attr("y2", y2);
|
|
219
|
+
}
|
|
220
|
+
renderR() {
|
|
221
|
+
if (!["synced", "r"].includes(this.anchorType))
|
|
222
|
+
return;
|
|
223
|
+
this.r_anchor = this.g_anchor.append("line");
|
|
224
|
+
const o = this.opts;
|
|
225
|
+
this.updateR(o.axiswidth + o.sp, o.sample2height + o.sp);
|
|
226
|
+
}
|
|
227
|
+
updateR(x1, x2) {
|
|
228
|
+
if (!["synced", "r"].includes(this.anchorType))
|
|
229
|
+
return;
|
|
230
|
+
this.settings.R = { x1, x2 };
|
|
231
|
+
this.r_anchor.attr("x1", x1).attr("x2", x2).attr("y1", this.settings.currY).attr("y2", this.settings.currY);
|
|
232
|
+
}
|
|
233
|
+
renderX() {
|
|
234
|
+
if (!["synced", "x"].includes(this.anchorType))
|
|
235
|
+
return;
|
|
236
|
+
this.x_anchor = this.g_anchor.append("g").attr("transform", "translate(" + this.settings.currX + "," + this.settings.currY + ")");
|
|
237
|
+
this.bindXDrag();
|
|
238
|
+
this.x_anchor.append("circle").attr("cx", 0).attr("cy", 0).attr("r", this.settings.xarmlen).style("opacity", 0);
|
|
239
|
+
this.x_anchor.append("line").attr("x1", -this.settings.xarmlen).attr("x2", this.settings.xarmlen).attr("y1", 0).attr("y2", 0);
|
|
240
|
+
this.x_anchor.append("line").attr("x1", 0).attr("x2", 0).attr("y1", this.settings.xarmlen).attr("y2", -this.settings.xarmlen);
|
|
241
|
+
}
|
|
242
|
+
bindXDrag() {
|
|
243
|
+
if (!["synced"].includes(this.anchorType))
|
|
244
|
+
return;
|
|
245
|
+
this.x_anchor.on("mousedown", (event) => {
|
|
246
|
+
const x = event.clientX;
|
|
247
|
+
const y = event.clientY;
|
|
248
|
+
let _x = this.settings.currX, _y = this.settings.currY;
|
|
249
|
+
this.x_anchor.on("mousemove", (event2) => {
|
|
250
|
+
_x = this.settings.currX - x + event2.clientX;
|
|
251
|
+
_y = this.settings.currY - y + event2.clientY;
|
|
252
|
+
this.r_anchor.attr("y1", _y).attr("y2", _y);
|
|
253
|
+
this.d_anchor.attr("x1", _x).attr("x2", _x);
|
|
254
|
+
this.x_anchor.attr("transform", "translate(" + _x + "," + _y + ")");
|
|
255
|
+
}).on("mouseup", (event2) => {
|
|
256
|
+
this.x_anchor.on("mousemove", null);
|
|
257
|
+
_x = this.settings.currX - x + event2.clientX;
|
|
258
|
+
_y = this.settings.currY - y + event2.clientY;
|
|
259
|
+
if (_x == this.settings.currX && _y == this.settings.currY) {
|
|
260
|
+
this.g_anchor.remove();
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
this.settings.x = _x < this.settings.xOffset ? 0 : _x - this.settings.xOffset;
|
|
264
|
+
this.settings.y = _y > this.settings.yOffset ? 0 : -(_y - this.settings.yOffset);
|
|
265
|
+
this.settings.currX = this.settings.x + this.settings.xOffset;
|
|
266
|
+
this.settings.currY = -this.settings.y + this.settings.yOffset;
|
|
267
|
+
this.r_anchor.transition().duration(100).attr("y1", this.settings.currY).attr("y2", this.settings.currY);
|
|
268
|
+
this.d_anchor.transition().duration(100).attr("x1", this.settings.currX).attr("x2", this.settings.currX);
|
|
269
|
+
this.x_anchor.transition().duration(100).attr("transform", "translate(" + this.settings.currX + "," + this.settings.currY + ")");
|
|
270
|
+
}).on("mouseleave", () => {
|
|
271
|
+
this.x_anchor.on("mousemove", null);
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
// src/2dmaf.js
|
|
278
|
+
var color1 = "#f9766c";
|
|
279
|
+
var color2 = "#609cff";
|
|
280
|
+
var colorshare = "#01b937";
|
|
281
|
+
var symbols = {
|
|
282
|
+
circle: circle_default,
|
|
283
|
+
cross: cross_default,
|
|
284
|
+
diamond: diamond_default,
|
|
285
|
+
square: square_default,
|
|
286
|
+
star: star_default,
|
|
287
|
+
triangle: triangle_default,
|
|
288
|
+
wye: wye_default
|
|
289
|
+
};
|
|
290
|
+
var symbolFilters = {
|
|
291
|
+
path: (d) => d.symbol,
|
|
292
|
+
circle: (d) => !d.symbol
|
|
293
|
+
};
|
|
294
|
+
var sharedFilters = {
|
|
295
|
+
path: (d) => d.symbol,
|
|
296
|
+
ellipse: (d) => !d.symbol
|
|
297
|
+
};
|
|
298
|
+
function d2mafui(genomes, holder) {
|
|
299
|
+
let pane, inputdiv, gselect, filediv, saydiv, visualdiv;
|
|
300
|
+
if (holder !== void 0)
|
|
301
|
+
[inputdiv, gselect, filediv, saydiv, visualdiv] = renderSandboxFormDiv(holder, genomes);
|
|
302
|
+
else {
|
|
303
|
+
;
|
|
304
|
+
[pane, inputdiv, gselect, filediv, saydiv, visualdiv] = newpane3(100, 100, genomes);
|
|
305
|
+
pane.header.text("2DMAF: mutant allele fraction plot between a pair of samples");
|
|
306
|
+
pane.body.style("margin", "10px");
|
|
307
|
+
}
|
|
308
|
+
inputdiv.append("div").style("margin-top", "20px").html(
|
|
309
|
+
'<ul><li><a href="https://docs.google.com/document/d/1anyEDMcW1lTSf8399Li2G9r57V-Fqp2591WvoODY7n4/edit#heading=h.mne2ecmp9m13" target=_blank>File format</a></li><li>To define samples differently than "Diagnosis/Relapse", <a href=https://plus.google.com/+XinZhou_s/posts/WqBVvmd3wYR target=_blank>see how</a>.</li></ul>'
|
|
310
|
+
);
|
|
311
|
+
inputdiv.append("p").html("<a href=https://proteinpaint.stjude.org/ppdemo/hg19/2dmaf/2dmaf.txt target=_blank>Example file</a>");
|
|
312
|
+
function cmt(t, red) {
|
|
313
|
+
saydiv.style("color", red ? "red" : "black").html(t);
|
|
314
|
+
}
|
|
315
|
+
const fileui = () => {
|
|
316
|
+
filediv.selectAll("*").remove();
|
|
317
|
+
const input2 = filediv.append("input").attr("type", "file").on("change", (event) => {
|
|
318
|
+
const file = event.target.files[0];
|
|
319
|
+
if (!file) {
|
|
320
|
+
fileui();
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
if (!file.size) {
|
|
324
|
+
cmt("Invalid file " + file.name);
|
|
325
|
+
fileui();
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const reader = new FileReader();
|
|
329
|
+
reader.onload = (event2) => {
|
|
330
|
+
const usegenome = gselect.options[gselect.selectedIndex].innerHTML;
|
|
331
|
+
const err = parseraw(event2.target.result.trim().split(/\r?\n/), genomes[usegenome], file.name, visualdiv);
|
|
332
|
+
if (err) {
|
|
333
|
+
cmt(err, 1);
|
|
334
|
+
fileui();
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
inputdiv.remove();
|
|
338
|
+
filediv.remove();
|
|
339
|
+
saydiv.remove();
|
|
340
|
+
};
|
|
341
|
+
reader.onerror = function() {
|
|
342
|
+
cmt("Error reading file " + file.name, 1);
|
|
343
|
+
fileui();
|
|
344
|
+
return;
|
|
345
|
+
};
|
|
346
|
+
reader.readAsText(file, "utf8");
|
|
347
|
+
});
|
|
348
|
+
setTimeout(() => input2.node().focus(), 1100);
|
|
349
|
+
};
|
|
350
|
+
fileui();
|
|
351
|
+
}
|
|
352
|
+
function d2mafparseinput(obj, holder) {
|
|
353
|
+
if (!obj.genome) {
|
|
354
|
+
sayerror(holder, ".genome missing for 2dmaf");
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (!obj.input) {
|
|
358
|
+
sayerror(holder, ".input missing for 2dmaf");
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
const err = parseraw(obj.input.trim().split(/\r?\n/), obj.genome, obj.datasetname || "unnamed dataset", holder);
|
|
362
|
+
if (err) {
|
|
363
|
+
sayerror(holder, "2DMAF data error: " + err);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function parseraw(lines, genome, filename, holder) {
|
|
367
|
+
const [headererror, header, headerattrlst] = parseheader(lines[0].trim());
|
|
368
|
+
if (headererror) {
|
|
369
|
+
return headererror;
|
|
370
|
+
}
|
|
371
|
+
const pairs = {};
|
|
372
|
+
const g2mlst = {};
|
|
373
|
+
const peoplehash = {};
|
|
374
|
+
const genehash = {};
|
|
375
|
+
const flag = {
|
|
376
|
+
good: 0,
|
|
377
|
+
purity1set: false,
|
|
378
|
+
purity2set: false,
|
|
379
|
+
pairsetname: {}
|
|
380
|
+
};
|
|
381
|
+
const badlines = [];
|
|
382
|
+
const mclasslabel2key = {};
|
|
383
|
+
for (const k in mclass) {
|
|
384
|
+
mclasslabel2key[mclass[k].label.toUpperCase()] = k;
|
|
385
|
+
}
|
|
386
|
+
for (let i = 1; i < lines.length; i++) {
|
|
387
|
+
if (lines[i] == "")
|
|
388
|
+
continue;
|
|
389
|
+
if (lines[i][0] == "#") {
|
|
390
|
+
if (lines[i].startsWith("##samplename")) {
|
|
391
|
+
const l = lines[i].trim().split(/[\s\t]+/);
|
|
392
|
+
if (l.length == 4) {
|
|
393
|
+
flag.pairsetname[l[1]] = { 1: l[2], 2: l[3] };
|
|
394
|
+
} else {
|
|
395
|
+
return "Line " + (i + 1) + ': invalid samplename line: must be "##samplename [patient] [sample1] [sample2]"';
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
const lst = lines[i].trim().split(" ");
|
|
401
|
+
const m = {};
|
|
402
|
+
for (let j = 0; j < header.length; j++) {
|
|
403
|
+
if (lst[j] != void 0 && lst[j] != "") {
|
|
404
|
+
m[header[j]] = lst[j];
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
if (!m.sample) {
|
|
408
|
+
return "Line " + (i + 1) + ": missing sample";
|
|
409
|
+
}
|
|
410
|
+
if (m.chr) {
|
|
411
|
+
if (m.chr.indexOf("chr") != 0) {
|
|
412
|
+
m.chr = "chr" + m.chr;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
if (m.chrstart) {
|
|
416
|
+
m.chrstart = Number.parseInt(m.chrstart);
|
|
417
|
+
if (Number.isNaN(m.chrstart)) {
|
|
418
|
+
return "Line " + (i + 1) + ": invalid chromosome position";
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
if (m.Dcnvloh) {
|
|
422
|
+
m.Dcnvlohraw = m.Dcnvloh;
|
|
423
|
+
const s2 = m.Dcnvloh.toLowerCase();
|
|
424
|
+
if (s2 == "yes" || s2 != "diploid" && s2 != "haploid") {
|
|
425
|
+
m.Dcnvloh = true;
|
|
426
|
+
} else {
|
|
427
|
+
m.Dcnvloh = false;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
if (m.Rcnvloh) {
|
|
431
|
+
m.Rcnvlohraw = m.Rcnvloh;
|
|
432
|
+
const s2 = m.Rcnvloh.toLowerCase();
|
|
433
|
+
if (s2 == "yes" || s2 != "diploid" && s2 != "haploid") {
|
|
434
|
+
m.Rcnvloh = true;
|
|
435
|
+
} else {
|
|
436
|
+
m.Rcnvloh = false;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
if (!m.call_d) {
|
|
440
|
+
badlines.push([i, "missing call_d", lst]);
|
|
441
|
+
continue;
|
|
442
|
+
}
|
|
443
|
+
if (m.call_d != "somatic" && m.call_d != "wildtype") {
|
|
444
|
+
badlines.push([i, "call_d is neither somatic nor wildtype", lst]);
|
|
445
|
+
continue;
|
|
446
|
+
}
|
|
447
|
+
if (!m.call_r) {
|
|
448
|
+
badlines.push([i, "missing call_r", lst]);
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
if (m.call_r != "somatic" && m.call_r != "wildtype") {
|
|
452
|
+
badlines.push([i, "call_r is neither somatic nor wildtype", lst]);
|
|
453
|
+
continue;
|
|
454
|
+
}
|
|
455
|
+
if (m.call_d == "somatic") {
|
|
456
|
+
if (m.call_r == "somatic") {
|
|
457
|
+
m.set_share = true;
|
|
458
|
+
} else {
|
|
459
|
+
m.set_1 = true;
|
|
460
|
+
}
|
|
461
|
+
} else {
|
|
462
|
+
if (m.call_r == "somatic") {
|
|
463
|
+
m.set_2 = true;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
if (!m.type) {
|
|
467
|
+
badlines.push([i, "missing type", lst]);
|
|
468
|
+
continue;
|
|
469
|
+
}
|
|
470
|
+
const s = m.type.toLowerCase();
|
|
471
|
+
if (s == "snv" || s == "snp" || s == "mnv" || s == "complex") {
|
|
472
|
+
m.issnv = true;
|
|
473
|
+
} else if (s == "indel" || s == "ins" || s == "del") {
|
|
474
|
+
m.isindel = true;
|
|
475
|
+
} else {
|
|
476
|
+
badlines.push([i, "type must be either SNV or INDEL", lst]);
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
let key = "MinD.D";
|
|
480
|
+
let a = Number.parseInt(m[key]);
|
|
481
|
+
if (Number.isNaN(a) || a < 0) {
|
|
482
|
+
badlines.push([i, "invalid " + key + " value", lst]);
|
|
483
|
+
continue;
|
|
484
|
+
}
|
|
485
|
+
m[key] = a;
|
|
486
|
+
key = "TinD.D";
|
|
487
|
+
a = Number.parseInt(m[key]);
|
|
488
|
+
if (Number.isNaN(a) || a < 0) {
|
|
489
|
+
badlines.push([i, "invalid " + key + " value", lst]);
|
|
490
|
+
continue;
|
|
491
|
+
}
|
|
492
|
+
m[key] = a;
|
|
493
|
+
if (m["TinD.D"] < m["MinD.D"]) {
|
|
494
|
+
badlines.push([i, "TinD.D value lower than MinD.D", lst]);
|
|
495
|
+
continue;
|
|
496
|
+
}
|
|
497
|
+
key = "MinN.D";
|
|
498
|
+
if (key in m) {
|
|
499
|
+
a = Number.parseInt(m[key]);
|
|
500
|
+
if (Number.isNaN(a) || a < 0) {
|
|
501
|
+
delete m[key];
|
|
502
|
+
} else {
|
|
503
|
+
m[key] = a;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
key = "TinN.D";
|
|
507
|
+
if (key in m) {
|
|
508
|
+
a = Number.parseInt(m[key]);
|
|
509
|
+
if (Number.isNaN(a) || a < 0) {
|
|
510
|
+
delete m[key];
|
|
511
|
+
} else {
|
|
512
|
+
m[key] = a;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
key = "MinD.R";
|
|
516
|
+
a = Number.parseInt(m[key]);
|
|
517
|
+
if (Number.isNaN(a) || a < 0) {
|
|
518
|
+
badlines.push([i, "invalid " + key + " value", lst]);
|
|
519
|
+
continue;
|
|
520
|
+
}
|
|
521
|
+
m[key] = a;
|
|
522
|
+
key = "TinD.R";
|
|
523
|
+
a = Number.parseInt(m[key]);
|
|
524
|
+
if (Number.isNaN(a) || a < 0) {
|
|
525
|
+
badlines.push([i, "invalid " + key + " value", lst]);
|
|
526
|
+
continue;
|
|
527
|
+
}
|
|
528
|
+
m[key] = a;
|
|
529
|
+
if (m["TinD.R"] < m["MinD.R"]) {
|
|
530
|
+
badlines.push([i, "TinD.R value lower than MinD.R", lst]);
|
|
531
|
+
continue;
|
|
532
|
+
}
|
|
533
|
+
key = "MinN.R";
|
|
534
|
+
if (key in m) {
|
|
535
|
+
a = Number.parseInt(m[key]);
|
|
536
|
+
if (Number.isNaN(a) || a < 0) {
|
|
537
|
+
delete m[key];
|
|
538
|
+
} else {
|
|
539
|
+
m[key] = a;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
key = "TinN.R";
|
|
543
|
+
if (key in m) {
|
|
544
|
+
a = Number.parseInt(m[key]);
|
|
545
|
+
if (Number.isNaN(a) || a < 0) {
|
|
546
|
+
delete m[key];
|
|
547
|
+
} else {
|
|
548
|
+
m[key] = a;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
if (m.symbol) {
|
|
552
|
+
if (!symbols[m.symbol]) {
|
|
553
|
+
badlines.push([i, "Invalid symbol value='" + m.symbol + "'", lst]);
|
|
554
|
+
continue;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
if (m.class) {
|
|
558
|
+
const s2 = m.class.toUpperCase();
|
|
559
|
+
if (s2 in mclasslabel2key) {
|
|
560
|
+
m.class = mclasslabel2key[s2];
|
|
561
|
+
} else {
|
|
562
|
+
badlines.push([i, "invalid mutation class " + m.class, lst]);
|
|
563
|
+
continue;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
m.style = {
|
|
567
|
+
fill: m.issnv ? "white" : "black",
|
|
568
|
+
fillhl: m.class ? mclass[m.class].color : "#ccc",
|
|
569
|
+
stroke: m.chr == "chrX" ? "black" : m.issnv ? "black" : "none",
|
|
570
|
+
strokehl: m.class ? mclass[m.class].color : "black",
|
|
571
|
+
fillopacity: m.issnv ? 0 : 0.2,
|
|
572
|
+
strokeopacity: 0.2
|
|
573
|
+
};
|
|
574
|
+
if (m["TinD.D"] > 0) {
|
|
575
|
+
m.maf1 = m["MinD.D"] / m["TinD.D"];
|
|
576
|
+
}
|
|
577
|
+
if (m["TinD.R"] > 0) {
|
|
578
|
+
m.maf2 = m["MinD.R"] / m["TinD.R"];
|
|
579
|
+
}
|
|
580
|
+
peoplehash[m.sample] = 1;
|
|
581
|
+
if (m.gene) {
|
|
582
|
+
genehash[m.gene] = 1;
|
|
583
|
+
}
|
|
584
|
+
if (!(m.sample in pairs)) {
|
|
585
|
+
pairs[m.sample] = {
|
|
586
|
+
name: m.sample,
|
|
587
|
+
shown: false,
|
|
588
|
+
header,
|
|
589
|
+
mlst: []
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
const v = pairs[m.sample];
|
|
593
|
+
v.mlst.push(m);
|
|
594
|
+
if (m.purity1) {
|
|
595
|
+
let p = Number.parseFloat(m.purity1);
|
|
596
|
+
if (Number.isNaN(p)) {
|
|
597
|
+
badlines.push([i, "diagnosis tumor purity should be a number"]);
|
|
598
|
+
p = 0;
|
|
599
|
+
} else {
|
|
600
|
+
if (p > 1) {
|
|
601
|
+
p /= 100;
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
if (p > 0) {
|
|
605
|
+
if (v.purity1 == void 0) {
|
|
606
|
+
v.purity1 = p;
|
|
607
|
+
flag.purity1set = true;
|
|
608
|
+
} else if (v.purity1 != p) {
|
|
609
|
+
badlines.push([
|
|
610
|
+
i,
|
|
611
|
+
"diagnosis tumor purity value " + p + " is different from existing value " + v.purity1 + " in " + m.sample,
|
|
612
|
+
lst
|
|
613
|
+
]);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
if (m.purity2) {
|
|
618
|
+
let p = Number.parseFloat(m.purity2);
|
|
619
|
+
if (Number.isNaN(p)) {
|
|
620
|
+
badlines.push([i, "relapse tumor purity should be a number"]);
|
|
621
|
+
p = 0;
|
|
622
|
+
} else {
|
|
623
|
+
if (p > 1) {
|
|
624
|
+
p /= 100;
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
if (p > 0) {
|
|
628
|
+
if (v.purity2 == void 0) {
|
|
629
|
+
v.purity2 = p;
|
|
630
|
+
flag.purity2set = true;
|
|
631
|
+
} else if (v.purity2 != p) {
|
|
632
|
+
badlines.push([
|
|
633
|
+
i,
|
|
634
|
+
"relapse tumor purity value " + p + " is different from existing value " + v.purity2 + " in " + m.sample,
|
|
635
|
+
lst
|
|
636
|
+
]);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
flag.good++;
|
|
641
|
+
}
|
|
642
|
+
if (badlines.length > 0) {
|
|
643
|
+
bulk_badline(header, badlines);
|
|
644
|
+
}
|
|
645
|
+
if (flag.good == 0) {
|
|
646
|
+
return "No valid data.";
|
|
647
|
+
}
|
|
648
|
+
holder.append("p").text("File: " + filename);
|
|
649
|
+
let peopletotal = 0;
|
|
650
|
+
for (const n in peoplehash)
|
|
651
|
+
peopletotal++;
|
|
652
|
+
let genetotal = 0;
|
|
653
|
+
for (const n in genehash)
|
|
654
|
+
genetotal++;
|
|
655
|
+
const boxh = 16;
|
|
656
|
+
const table = holder.append("table");
|
|
657
|
+
const tr = table.append("tr");
|
|
658
|
+
const td = tr.append("td").attr("valign", "top");
|
|
659
|
+
td.append("div").html(
|
|
660
|
+
'<div style="display:inline-block;width:' + boxh + "px;height:" + boxh + "px;background-color:" + color1 + '"></div> Diagnosis only <div style="display:inline-block;width:' + boxh + "px;height:" + boxh + "px;background-color:" + colorshare + '"></div> Shared <div style="display:inline-block;width:' + boxh + "px;height:" + boxh + "px;background-color:" + color2 + '"></div> Relapse only'
|
|
661
|
+
);
|
|
662
|
+
const peopleholder = td.append("div").style("margin-top", "10px").style("height", "200px").style("width", "300px").style("padding", "5px").style("overflow-y", "scroll").style("resize", "both").style("border", "solid 1px #ccc");
|
|
663
|
+
const geneholder = td.append("div").style("margin-top", "10px").style("height", "200px").style("width", "300px").style("padding", "5px").style("overflow-y", "scroll").style("resize", "both").style("border", "solid 1px #ccc");
|
|
664
|
+
const showholder = tr.append("td").style("vertical-align", "top");
|
|
665
|
+
for (const n in pairs) {
|
|
666
|
+
const ss = flag.pairsetname[n];
|
|
667
|
+
if (ss) {
|
|
668
|
+
pairs[n].setname = ss;
|
|
669
|
+
} else {
|
|
670
|
+
pairs[n].setname = { 1: "Diagnosis", 2: "Relapse" };
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
const odata = {
|
|
674
|
+
genome,
|
|
675
|
+
//dsname:dsname,
|
|
676
|
+
pairs,
|
|
677
|
+
color1,
|
|
678
|
+
color2,
|
|
679
|
+
colorshare,
|
|
680
|
+
rowh: boxh,
|
|
681
|
+
peoplewidth: 150,
|
|
682
|
+
genewidth: 150,
|
|
683
|
+
showholder,
|
|
684
|
+
//peoplelimit:Math.min(20,peopletotal),
|
|
685
|
+
genelimit: Math.min(20, genetotal),
|
|
686
|
+
purity1set: flag.purity1set,
|
|
687
|
+
purity2set: flag.purity2set
|
|
688
|
+
};
|
|
689
|
+
d2maf_peopletable(odata, peopleholder);
|
|
690
|
+
}
|
|
691
|
+
function parseheader(line) {
|
|
692
|
+
const lower = line.toLowerCase().split(" ");
|
|
693
|
+
const header = line.split(" ");
|
|
694
|
+
if (header.length <= 1) {
|
|
695
|
+
return ["invalid file header"];
|
|
696
|
+
}
|
|
697
|
+
const htry = (...lst) => {
|
|
698
|
+
for (const i2 of lst) {
|
|
699
|
+
const j = lower.indexOf(i2);
|
|
700
|
+
if (j != -1)
|
|
701
|
+
return j;
|
|
702
|
+
}
|
|
703
|
+
return -1;
|
|
704
|
+
};
|
|
705
|
+
let i = htry("person", "sample", "samplename", "patient");
|
|
706
|
+
if (i == -1)
|
|
707
|
+
return ["sample missing from header"];
|
|
708
|
+
header[i] = "sample";
|
|
709
|
+
i = htry("type");
|
|
710
|
+
if (i == -1)
|
|
711
|
+
return ["type missing from header"];
|
|
712
|
+
header[i] = "type";
|
|
713
|
+
i = htry("mind.d1_g1", "mind.d", "mind");
|
|
714
|
+
if (i == -1)
|
|
715
|
+
return ["MinD.D missing from header"];
|
|
716
|
+
header[i] = "MinD.D";
|
|
717
|
+
i = htry("tind.d1_g1", "tind.d", "tind");
|
|
718
|
+
if (i == -1)
|
|
719
|
+
return ["TinD.D missing from header"];
|
|
720
|
+
header[i] = "TinD.D";
|
|
721
|
+
i = htry("mind.r1_g1", "mind.r", "minr");
|
|
722
|
+
if (i == -1)
|
|
723
|
+
return ["MinD.R missing from header"];
|
|
724
|
+
header[i] = "MinD.R";
|
|
725
|
+
i = htry("tind.r1_g1", "tind.r", "tinr");
|
|
726
|
+
if (i == -1)
|
|
727
|
+
return ["TinD.R missing from header"];
|
|
728
|
+
header[i] = "TinD.R";
|
|
729
|
+
i = htry("call_d1_g1", "call_d");
|
|
730
|
+
if (i == -1)
|
|
731
|
+
return ["call_d missing from header"];
|
|
732
|
+
header[i] = "call_d";
|
|
733
|
+
i = htry("call_r1_g1", "call_r");
|
|
734
|
+
if (i == -1)
|
|
735
|
+
return ["call_r missing from header"];
|
|
736
|
+
header[i] = "call_r";
|
|
737
|
+
i = htry("genename", "gene");
|
|
738
|
+
if (i == -1)
|
|
739
|
+
return ["gene missing from header"];
|
|
740
|
+
header[i] = "gene";
|
|
741
|
+
i = htry("amino_acid_change", "annovar_sj_aachange", "aachange", "protein_change");
|
|
742
|
+
if (i == -1)
|
|
743
|
+
return ["amino_acid_change missing from header"];
|
|
744
|
+
header[i] = "mname";
|
|
745
|
+
i = htry("class", "mclass", "variant_class", "variant_classification", "annovar_sj_class");
|
|
746
|
+
if (i == -1)
|
|
747
|
+
return ["variant_class missing from header"];
|
|
748
|
+
header[i] = "class";
|
|
749
|
+
i = htry("chromosome", "chr");
|
|
750
|
+
if (i == -1)
|
|
751
|
+
return ["chromosome missing from header"];
|
|
752
|
+
header[i] = "chr";
|
|
753
|
+
i = htry("start", "start_position", "wu_hg19_pos", "chr_position");
|
|
754
|
+
if (i == -1)
|
|
755
|
+
return ["start missing from header"];
|
|
756
|
+
header[i] = "chrstart";
|
|
757
|
+
i = htry("minn.d1_g1", "minn.d");
|
|
758
|
+
if (i != -1)
|
|
759
|
+
header[i] = "MinN.D";
|
|
760
|
+
i = htry("tinn.d1_g1", "tinn.d");
|
|
761
|
+
if (i != -1)
|
|
762
|
+
header[i] = "TinN.D";
|
|
763
|
+
i = htry("minn.r1_g1", "minn.r");
|
|
764
|
+
if (i != -1)
|
|
765
|
+
header[i] = "MinN.R";
|
|
766
|
+
i = htry("tinn.r1_g1", "tinn.r");
|
|
767
|
+
if (i != -1)
|
|
768
|
+
header[i] = "TinN.R";
|
|
769
|
+
i = htry("mrna_accession", "refseq_mrna_id", "annovar_sj_filter_isoform", "refseq");
|
|
770
|
+
if (i != -1)
|
|
771
|
+
header[i] = "isoform";
|
|
772
|
+
i = htry("primary_purity", "purity_d");
|
|
773
|
+
if (i != -1)
|
|
774
|
+
header[i] = "purity1";
|
|
775
|
+
i = htry("relapse_purity", "purity_r");
|
|
776
|
+
if (i != -1)
|
|
777
|
+
header[i] = "purity2";
|
|
778
|
+
i = htry("tag_d_cnvloh", "cnvloh_d");
|
|
779
|
+
if (i != -1)
|
|
780
|
+
header[i] = "Dcnvloh";
|
|
781
|
+
i = htry("tag_r_cnvloh", "cnvloh_r");
|
|
782
|
+
if (i != -1)
|
|
783
|
+
header[i] = "Rcnvloh";
|
|
784
|
+
const atlst = [];
|
|
785
|
+
for (const j of header) {
|
|
786
|
+
switch (j) {
|
|
787
|
+
case "Dcnvloh":
|
|
788
|
+
atlst.push({
|
|
789
|
+
label: "D. CNV/LOH",
|
|
790
|
+
get: (m) => m.Dcnvlohraw
|
|
791
|
+
});
|
|
792
|
+
break;
|
|
793
|
+
case "Rcnvloh":
|
|
794
|
+
atlst.push({
|
|
795
|
+
label: "R. CNV/LOH",
|
|
796
|
+
get: (m) => m.Rcnvlohraw
|
|
797
|
+
});
|
|
798
|
+
break;
|
|
799
|
+
case "type":
|
|
800
|
+
atlst.push({
|
|
801
|
+
label: "Type",
|
|
802
|
+
get: (m) => m.type
|
|
803
|
+
});
|
|
804
|
+
break;
|
|
805
|
+
case "chr":
|
|
806
|
+
break;
|
|
807
|
+
case "chrstart":
|
|
808
|
+
atlst.push({
|
|
809
|
+
label: "Genome Loc.",
|
|
810
|
+
get: (m) => m.chr + ":" + (m.chrstart + 1)
|
|
811
|
+
});
|
|
812
|
+
break;
|
|
813
|
+
case "class":
|
|
814
|
+
atlst.push({
|
|
815
|
+
label: "Class",
|
|
816
|
+
get: (m) => {
|
|
817
|
+
if (m.class == mclassnonstandard) {
|
|
818
|
+
return m.originalclasslabel ? m.originalclasslabel : mclass[m.class].label;
|
|
819
|
+
}
|
|
820
|
+
return mclass[m.class].label;
|
|
821
|
+
}
|
|
822
|
+
});
|
|
823
|
+
break;
|
|
824
|
+
case "mname":
|
|
825
|
+
atlst.push({
|
|
826
|
+
label: "Mutation",
|
|
827
|
+
get: (m) => {
|
|
828
|
+
let s = m.mname;
|
|
829
|
+
if (!s)
|
|
830
|
+
s = m.cdna_change;
|
|
831
|
+
return s;
|
|
832
|
+
}
|
|
833
|
+
});
|
|
834
|
+
break;
|
|
835
|
+
case "MinD.D":
|
|
836
|
+
atlst.push({
|
|
837
|
+
ismaf: true,
|
|
838
|
+
width: 60,
|
|
839
|
+
height: 14,
|
|
840
|
+
readcountcredible: 30,
|
|
841
|
+
get: (m) => m.maf_diagnosis,
|
|
842
|
+
label: "D. tumor MAF",
|
|
843
|
+
fill: "#F7483B",
|
|
844
|
+
fillbg: "#FCBAB6"
|
|
845
|
+
});
|
|
846
|
+
break;
|
|
847
|
+
case "TinD.D":
|
|
848
|
+
break;
|
|
849
|
+
case "MinD.R":
|
|
850
|
+
atlst.push({
|
|
851
|
+
ismaf: true,
|
|
852
|
+
width: 60,
|
|
853
|
+
height: 14,
|
|
854
|
+
readcountcredible: 30,
|
|
855
|
+
get: (m) => m.maf_relapse,
|
|
856
|
+
label: "R. tumor MAF",
|
|
857
|
+
fill: "#146EFF",
|
|
858
|
+
fillbg: "#B6D5FC"
|
|
859
|
+
});
|
|
860
|
+
break;
|
|
861
|
+
case "TinD.R":
|
|
862
|
+
break;
|
|
863
|
+
case "MinN.D":
|
|
864
|
+
atlst.push({
|
|
865
|
+
ismaf: true,
|
|
866
|
+
width: 60,
|
|
867
|
+
height: 14,
|
|
868
|
+
readcountcredible: 30,
|
|
869
|
+
get: (m) => m.maf_diagnosis_normal,
|
|
870
|
+
label: "D. normal MAF",
|
|
871
|
+
fill: "#F7483B",
|
|
872
|
+
fillbg: "#FCBAB6"
|
|
873
|
+
});
|
|
874
|
+
break;
|
|
875
|
+
case "TinN.D":
|
|
876
|
+
break;
|
|
877
|
+
case "MinN.R":
|
|
878
|
+
atlst.push({
|
|
879
|
+
ismaf: true,
|
|
880
|
+
width: 60,
|
|
881
|
+
height: 14,
|
|
882
|
+
readcountcredible: 30,
|
|
883
|
+
get: (m) => m.maf_relapse_normal,
|
|
884
|
+
label: "R. normal MAF",
|
|
885
|
+
fill: "#146EFF",
|
|
886
|
+
fillbg: "#B6D5FC"
|
|
887
|
+
});
|
|
888
|
+
break;
|
|
889
|
+
case "TinN.R":
|
|
890
|
+
break;
|
|
891
|
+
case "call_d":
|
|
892
|
+
atlst.push({
|
|
893
|
+
label: "D. call",
|
|
894
|
+
get: (m) => m.call_d
|
|
895
|
+
});
|
|
896
|
+
break;
|
|
897
|
+
case "call_r":
|
|
898
|
+
atlst.push({
|
|
899
|
+
label: "R. call",
|
|
900
|
+
get: (m) => m.call_r
|
|
901
|
+
});
|
|
902
|
+
break;
|
|
903
|
+
case "purity1":
|
|
904
|
+
atlst.push({
|
|
905
|
+
label: "D. purity",
|
|
906
|
+
get: (m) => m.purity1
|
|
907
|
+
});
|
|
908
|
+
break;
|
|
909
|
+
case "purity2":
|
|
910
|
+
atlst.push({
|
|
911
|
+
label: "R. purity",
|
|
912
|
+
get: (m) => m.purity2
|
|
913
|
+
});
|
|
914
|
+
break;
|
|
915
|
+
default:
|
|
916
|
+
atlst.push({
|
|
917
|
+
label: j,
|
|
918
|
+
get: (m) => m[j]
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
return [null, header, atlst];
|
|
923
|
+
}
|
|
924
|
+
function d2maf_render(showholder, pdata) {
|
|
925
|
+
const tooltip = new Menu({ border: "solid 1px black" });
|
|
926
|
+
const set_1 = [];
|
|
927
|
+
const set_2 = [];
|
|
928
|
+
const set_share = [];
|
|
929
|
+
const mlst = pdata.mlst;
|
|
930
|
+
const person = mlst[0].sample;
|
|
931
|
+
const symbolgen = Symbol();
|
|
932
|
+
let maxtotal = 0;
|
|
933
|
+
let bysymbol = {};
|
|
934
|
+
const mclasses = {};
|
|
935
|
+
for (const m of mlst) {
|
|
936
|
+
if (m["TinD.D"] > 0) {
|
|
937
|
+
maxtotal = Math.max(maxtotal, m["TinD.D"]);
|
|
938
|
+
}
|
|
939
|
+
if (m["TinD.R"] > 0) {
|
|
940
|
+
maxtotal = Math.max(maxtotal, m["TinD.R"]);
|
|
941
|
+
}
|
|
942
|
+
if (m.set_share) {
|
|
943
|
+
set_share.push(m);
|
|
944
|
+
} else if (m.set_1) {
|
|
945
|
+
set_1.push(m);
|
|
946
|
+
} else if (m.set_2) {
|
|
947
|
+
set_2.push(m);
|
|
948
|
+
}
|
|
949
|
+
if (!(m.class in mclasses)) {
|
|
950
|
+
mclasses[m.class] = 0;
|
|
951
|
+
}
|
|
952
|
+
if (m.symbol) {
|
|
953
|
+
if (!bysymbol[m.symbol]) {
|
|
954
|
+
bysymbol[m.symbol] = { numlines: 0, label: m.symbollabel, hidden: false };
|
|
955
|
+
}
|
|
956
|
+
bysymbol[m.symbol].numlines++;
|
|
957
|
+
}
|
|
958
|
+
mclasses[m.class]++;
|
|
959
|
+
}
|
|
960
|
+
const a = Math.min(window.innerWidth, window.innerHeight);
|
|
961
|
+
const axiswidth = 50, sharewidth = a * 0.5, shareheight = a * 0.5, sample1height = shareheight / 2, sample2height = sharewidth / 2, sp = axiswidth / 3, sp2 = sample1height / 5, labelfontsize = Math.min(20, 12 * a / 500), radius = a / 40, indelboxw = radius * 0.7, r_cnvloh = 3;
|
|
962
|
+
const radiusscale = linear().domain([0, maxtotal]).range([radius / 2, radius]);
|
|
963
|
+
const radiustoarea = (d) => Math.PI * Math.pow(radiusscale(d), 2);
|
|
964
|
+
for (const m of mlst) {
|
|
965
|
+
m.radius = Math.max(m["TinD.D"] ? radiusscale(m["TinD.D"]) : 0, m["TinD.R"] ? radiusscale(m["TinD.R"]) : 0);
|
|
966
|
+
}
|
|
967
|
+
const outtable = showholder.append("table");
|
|
968
|
+
const tr = outtable.append("tr");
|
|
969
|
+
const tdgraph = tr.append("td").style("vertical-align", "top");
|
|
970
|
+
const tdgenetable = tr.append("td").style("vertical-align", "top");
|
|
971
|
+
tdgenetable.append("div").style("margin", "10px").text("Name: " + person);
|
|
972
|
+
const headerdiv = tdgraph.append("div");
|
|
973
|
+
headerdiv.append("button").text("Hide").on("click", () => {
|
|
974
|
+
pdata.shown = false;
|
|
975
|
+
if (pdata.handle) {
|
|
976
|
+
pdata.handle.attr("font-weight", "normal");
|
|
977
|
+
}
|
|
978
|
+
outtable.remove();
|
|
979
|
+
});
|
|
980
|
+
const anchors = new Anchors({ axiswidth, sp, sp2, sample1height, sample2height, shareheight, sharewidth, headerdiv });
|
|
981
|
+
headerdiv.append("button").text("Screenshot").on("click", () => {
|
|
982
|
+
to_svg(svg.node(), "2dmaf_" + pdata.name);
|
|
983
|
+
});
|
|
984
|
+
{
|
|
985
|
+
const mcselect = headerdiv.append("select").on("change", (event) => {
|
|
986
|
+
const v = event.target.options[event.target.selectedIndex].value;
|
|
987
|
+
if (v == "all") {
|
|
988
|
+
select_share.transition().attr("transform", (d) => d.posstring + " scale(1)");
|
|
989
|
+
select_set1.transition().attr("transform", (d) => d.posstring + " scale(1)");
|
|
990
|
+
select_set2.transition().attr("transform", (d) => d.posstring + " scale(1)");
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
select_share.transition().attr("transform", (d) => d.posstring + " scale(" + (d.class == v ? 1 : 0) + ")");
|
|
994
|
+
select_set1.transition().attr("transform", (d) => d.posstring + " scale(" + (d.class == v ? 1 : 0) + ")");
|
|
995
|
+
select_set2.transition().attr("transform", (d) => d.posstring + " scale(" + (d.class == v ? 1 : 0) + ")");
|
|
996
|
+
});
|
|
997
|
+
mcselect.append("option").text("Show all mutation classes").property("value", "all");
|
|
998
|
+
const lst = [];
|
|
999
|
+
for (const c3 in mclasses) {
|
|
1000
|
+
lst.push([c3, mclasses[c3]]);
|
|
1001
|
+
}
|
|
1002
|
+
lst.sort((a2, b) => b[1] - a2[1]);
|
|
1003
|
+
for (const i of lst) {
|
|
1004
|
+
mcselect.append("option").text((i[0] in mclass ? mclass[i[0]].label : i[0]) + " (" + i[1] + ")").property("value", i[0]);
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
const svg = tdgraph.append("svg").attr("width", axiswidth + sp + sample2height + sharewidth + sp * 2).attr("height", axiswidth + sp + sample1height + shareheight + sp * 2);
|
|
1008
|
+
const g = svg.append("g").attr("transform", "translate(" + sp + "," + sp + ")");
|
|
1009
|
+
anchors.setWrapper(g.append("g"));
|
|
1010
|
+
const scale1 = linear().domain([0, 1]).range([0, sharewidth]);
|
|
1011
|
+
const scalediv1 = g.append("g").attr("transform", "translate(" + (axiswidth + sp + sample2height) + "," + (shareheight + sample1height + sp) + ")").call(axisBottom().scale(scale1).tickSize(5));
|
|
1012
|
+
axisstyle({ axis: scalediv1, showline: true, fontsize: labelfontsize * 0.8 });
|
|
1013
|
+
const c = set_1.length + set_share.length;
|
|
1014
|
+
scalediv1.append("text").text(pdata.setname[1] + ", n=" + c + (pdata.purity1 ? ", purity=" + pdata.purity1 : "")).attr("x", sharewidth / 2).attr("y", axiswidth - 4).attr("text-anchor", "middle").attr("font-size", labelfontsize);
|
|
1015
|
+
const scale2 = linear().domain([0, 1]).range([shareheight, 0]);
|
|
1016
|
+
const scalediv2 = g.append("g").attr("transform", "translate(" + axiswidth + ",0)").call(axisLeft().scale(scale2).tickSize(5));
|
|
1017
|
+
axisstyle({ axis: scalediv2, showline: true, fontsize: labelfontsize * 0.8 });
|
|
1018
|
+
const c2 = set_2.length + set_share.length;
|
|
1019
|
+
scalediv2.append("text").text(pdata.setname[2] + ", n=" + c2 + (pdata.purity2 ? ", purity=" + pdata.purity2 : "")).attr("transform", "translate(" + (labelfontsize - axiswidth - 10) + "," + shareheight / 2 + ") rotate(-90)").attr("text-anchor", "middle").attr("font-size", labelfontsize);
|
|
1020
|
+
g.append("path").attr(
|
|
1021
|
+
"d",
|
|
1022
|
+
"M" + (axiswidth + sp) + ",0h" + (sample2height + sharewidth) + "v" + (shareheight + sample1height) + "h-" + sharewidth + "v-" + (sample1height + shareheight) + "M" + (axiswidth + sp) + ",0v" + shareheight + "h" + (sample2height + sharewidth) + "M" + (axiswidth + sp + sample2height) + "," + shareheight + "l" + sharewidth + ",-" + shareheight
|
|
1023
|
+
).attr("fill", "none").attr("stroke", "black").attr("shape-rendering", "crispEdges").attr("stroke-dasharray", "5,5");
|
|
1024
|
+
const select_share = g.append("g").attr("transform", "translate(" + (axiswidth + sp + sample2height) + ",0)").selectAll().data(set_share).enter().append("g").attr("transform", (d) => {
|
|
1025
|
+
d.posstring = "translate(" + scale1(d.maf1) + "," + scale2(d.maf2) + ")";
|
|
1026
|
+
return d.posstring;
|
|
1027
|
+
});
|
|
1028
|
+
select_share.filter((d) => d.Dcnvloh).append("circle").attr("cy", (d) => {
|
|
1029
|
+
return d.issnv ? radiusscale(d["TinD.R"]) : indelboxw / 2;
|
|
1030
|
+
}).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1031
|
+
select_share.filter((d) => d.Rcnvloh).append("circle").attr("cx", (d) => {
|
|
1032
|
+
return d.issnv ? -radiusscale(d["TinD.D"]) : -indelboxw / 2;
|
|
1033
|
+
}).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1034
|
+
let snv = select_share;
|
|
1035
|
+
for (const tagName in sharedFilters) {
|
|
1036
|
+
snv.filter(sharedFilters[tagName]).append(tagName).attr("rx", (d) => d.symbol ? null : radiusscale(d["TinD.D"])).attr("ry", (d) => d.symbol ? null : radiusscale(d["TinD.R"])).attr(
|
|
1037
|
+
"d",
|
|
1038
|
+
(d) => !d.symbol ? null : symbolgen.type(symbols[d.symbol]).size(radiustoarea(d["TinD.D"]) + radiustoarea(d["TinD.R"]) / 2)()
|
|
1039
|
+
).attr("fill", (d) => d.style.fill).attr("fill-opacity", (d) => d.style.fillopacity).attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("stroke-dasharray", (d) => d.chr == "chrX" ? "5,5" : "none").on("mouseover", (event, d) => d2maf_dotmover(event, d, tooltip)).on("mouseout", (event, d) => d2maf_dotmout(event, d, tooltip)).on("click", (event, d) => d2maf_minfo(event, pdata.header, d));
|
|
1040
|
+
}
|
|
1041
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", -3).attr("x2", 3).attr("y2", 3);
|
|
1042
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", 3).attr("x2", 3).attr("y2", -3);
|
|
1043
|
+
const set1totalscale = linear().domain([0, maxtotal]).range([sample1height - sp2, 0]);
|
|
1044
|
+
const g_set1 = g.append("g").attr("transform", "translate(" + (axiswidth + sp + sample2height) + "," + (shareheight + sp2) + ")");
|
|
1045
|
+
const emaflinecolor = "#FFBEAD";
|
|
1046
|
+
const emafline_1 = g_set1.append("rect").attr("fill", emaflinecolor).attr("fill-opacity", 0).attr("x", 0).attr("width", 3).attr("height", sample1height - sp2);
|
|
1047
|
+
axisstyle({
|
|
1048
|
+
axis: g_set1.call(axisLeft().scale(set1totalscale).tickValues([0, maxtotal])),
|
|
1049
|
+
showline: true,
|
|
1050
|
+
fontsize: labelfontsize * 0.8
|
|
1051
|
+
});
|
|
1052
|
+
g_set1.append("g").attr("transform", "translate(-" + labelfontsize / 2 + "," + (sample1height - sp2) / 2 + ")").append("text").text("D total").attr("font-size", labelfontsize * 0.8).attr("font-family", font).attr("fill", "black").attr("text-anchor", "middle").attr("dominant-baseline", "middle").attr("transform", "rotate(-90)");
|
|
1053
|
+
const select_set1 = g_set1.selectAll().data(set_1).enter().append("g").attr("transform", (d) => {
|
|
1054
|
+
d.posstring = "translate(" + scale1(d.maf1) + "," + set1totalscale(d["TinD.D"]) + ")";
|
|
1055
|
+
return d.posstring;
|
|
1056
|
+
});
|
|
1057
|
+
select_set1.filter((d) => d.Dcnvloh).append("circle").attr("cy", (d) => {
|
|
1058
|
+
return d.issnv ? radiusscale(d["TinD.R"]) : indelboxw / 2;
|
|
1059
|
+
}).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1060
|
+
select_set1.filter((d) => d.Rcnvloh).append("circle").attr("cx", (d) => d.issnv ? -radiusscale(d["TinD.D"]) : -indelboxw / 2).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1061
|
+
snv = select_set1;
|
|
1062
|
+
for (const tagName in symbolFilters) {
|
|
1063
|
+
snv.filter(symbolFilters[tagName]).append(tagName).attr("class", (d) => d.symbol ? "twodmaf-" + d.symbol : null).attr("r", (d) => d.symbol ? null : radiusscale(d["TinD.R"])).attr("d", (d) => !d.symbol ? null : symbolgen.type(symbols[d.symbol]).size(radiustoarea(d["TinD.R"]))()).attr("fill", (d) => d.style.fill).attr("fill-opacity", (d) => d.style.fillopacity).attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("stroke-dasharray", (d) => d.chr == "chrX" ? "5,5" : "none").on("mouseover", (event, d) => d2maf_dotmover(event, d, tooltip)).on("mouseout", (event, d) => d2maf_dotmout(event, d, tooltip)).on("click", (event, d) => d2maf_minfo(event, pdata.header, d));
|
|
1064
|
+
}
|
|
1065
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", -3).attr("x2", 3).attr("y2", 3);
|
|
1066
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", 3).attr("x2", 3).attr("y2", -3);
|
|
1067
|
+
const set2totalscale = linear().domain([0, maxtotal]).range([0, sample2height - sp2]);
|
|
1068
|
+
const g_set2 = g.append("g").attr("transform", "translate(" + (axiswidth + sp) + ",0)");
|
|
1069
|
+
const emafline_2 = g_set2.append("rect").attr("fill", emaflinecolor).attr("fill-opacity", 0).attr("y", shareheight).attr("width", sample2height - sp2).attr("height", 3);
|
|
1070
|
+
const g_set2_axis = g_set2.append("g").attr("transform", "translate(0," + shareheight + ")").call(axisBottom().scale(set2totalscale).tickValues([0, maxtotal]));
|
|
1071
|
+
axisstyle({
|
|
1072
|
+
axis: g_set2_axis,
|
|
1073
|
+
showline: true,
|
|
1074
|
+
fontsize: labelfontsize * 0.8
|
|
1075
|
+
});
|
|
1076
|
+
g_set2.append("text").text("R total").attr("font-size", labelfontsize * 0.8).attr("font-family", font).attr("fill", "black").attr("x", (sample2height - sp2) / 2).attr("y", shareheight + labelfontsize).attr("text-anchor", "middle");
|
|
1077
|
+
const select_set2 = g_set2.selectAll().data(set_2).enter().append("g").attr("transform", (d) => {
|
|
1078
|
+
d.posstring = "translate(" + set2totalscale(d["TinD.R"]) + "," + scale2(d.maf2) + ")";
|
|
1079
|
+
return d.posstring;
|
|
1080
|
+
});
|
|
1081
|
+
select_set2.filter((d) => d.Dcnvloh).append("circle").attr("cy", (d) => d.issnv ? radiusscale(d["TinD.R"]) : indelboxw / 2).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1082
|
+
select_set2.filter((d) => d.Rcnvloh).append("circle").attr("cx", (d) => d.issnv ? -radiusscale(d["TinD.D"]) : -indelboxw / 2).attr("fill", "#858585").attr("r", r_cnvloh);
|
|
1083
|
+
snv = select_set2;
|
|
1084
|
+
for (const tagName in symbolFilters) {
|
|
1085
|
+
snv.filter(symbolFilters[tagName]).append(tagName).attr("class", (d) => d.symbol ? "twodmaf-" + d.symbol : null).attr("r", (d) => d.symbol ? null : radiusscale(d["TinD.D"])).attr("d", (d) => !d.symbol ? null : symbolgen.type(symbols[d.symbol]).size(radiustoarea(d["TinD.R"]))()).attr("fill", (d) => d.style.fill).attr("fill-opacity", (d) => d.style.fillopacity).attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("stroke-dasharray", (d) => d.chr == "chrX" ? "5,5" : "none").on("mouseover", (event, d) => d2maf_dotmover(event, d, tooltip)).on("mouseout", (event, d) => d2maf_dotmout(event, d, tooltip)).on("click", (event, d) => d2maf_minfo(event, pdata.header, d));
|
|
1086
|
+
}
|
|
1087
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", -3).attr("x2", 3).attr("y2", 3);
|
|
1088
|
+
snv.append("line").attr("stroke", (d) => d.style.stroke).attr("stroke-opacity", (d) => d.style.strokeopacity).attr("x1", -3).attr("y1", 3).attr("x2", 3).attr("y2", -3);
|
|
1089
|
+
const leng = g.append("g").attr("transform", "translate(0," + (shareheight + sp2) + ")");
|
|
1090
|
+
let y = labelfontsize;
|
|
1091
|
+
leng.append("text").text(person).attr("font-size", labelfontsize).attr("y", y);
|
|
1092
|
+
const r1 = radiusscale(20), r2 = radiusscale(maxtotal);
|
|
1093
|
+
y += labelfontsize + r2;
|
|
1094
|
+
let x;
|
|
1095
|
+
leng.append("text").text("SNV coverage").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1096
|
+
x = this.getBBox().width;
|
|
1097
|
+
});
|
|
1098
|
+
x += r1 + 10;
|
|
1099
|
+
leng.append("circle").attr("cx", x).attr("cy", y).attr("r", r1).attr("stroke", "black").attr("fill", "none");
|
|
1100
|
+
leng.append("text").text(20).attr("x", x).attr("y", y).attr("text-anchor", "middle").attr("dominant-baseline", "middle");
|
|
1101
|
+
x += r1 + r2 + 10;
|
|
1102
|
+
leng.append("circle").attr("cx", x).attr("cy", y).attr("r", r2).attr("stroke", "black").attr("fill", "none");
|
|
1103
|
+
leng.append("text").text(maxtotal).attr("x", x).attr("y", y).attr("text-anchor", "middle").attr("dominant-baseline", "middle");
|
|
1104
|
+
y += r2 + 10;
|
|
1105
|
+
leng.append("text").text("Indel").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1106
|
+
x = this.getBBox().width;
|
|
1107
|
+
});
|
|
1108
|
+
leng.append("circle").attr("cx", x + 10 + indelboxw / 2).attr("cy", y).attr("r", indelboxw / 2).attr("fill", "black").attr("fill-opacity", 0.3);
|
|
1109
|
+
y += 30;
|
|
1110
|
+
leng.append("text").text("chrX").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1111
|
+
x = this.getBBox().width;
|
|
1112
|
+
});
|
|
1113
|
+
x += r1 + 10;
|
|
1114
|
+
leng.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("stroke", "black").attr("stroke-dasharray", "5,5").attr("fill", "none");
|
|
1115
|
+
y += 30;
|
|
1116
|
+
leng.append("text").text("D. CNV/LOH").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1117
|
+
x = this.getBBox().width;
|
|
1118
|
+
});
|
|
1119
|
+
x += r1 + 10;
|
|
1120
|
+
leng.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("stroke", "black").attr("fill", "none");
|
|
1121
|
+
leng.append("circle").attr("cx", x).attr("cy", y + 10).attr("r", r_cnvloh).attr("fill", "black");
|
|
1122
|
+
y += 30;
|
|
1123
|
+
leng.append("text").text("R. CNV/LOH").attr("y", y).attr("dominant-baseline", "central").each(function() {
|
|
1124
|
+
x = this.getBBox().width;
|
|
1125
|
+
});
|
|
1126
|
+
x += r1 + 10;
|
|
1127
|
+
leng.append("circle").attr("cx", x).attr("cy", y).attr("r", 10).attr("stroke", "black").attr("fill", "none");
|
|
1128
|
+
leng.append("circle").attr("cx", x - 10).attr("cy", y).attr("r", r_cnvloh).attr("fill", "black");
|
|
1129
|
+
y += 30;
|
|
1130
|
+
if (pdata.purity1 != void 0 || pdata.purity2 != void 0) {
|
|
1131
|
+
leng.append("text").text("Expected MAF").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1132
|
+
x = this.getBBox().width;
|
|
1133
|
+
});
|
|
1134
|
+
x += 10;
|
|
1135
|
+
leng.append("rect").attr("fill", emaflinecolor).attr("x", x).attr("y", y).attr("width", 40).attr("height", 3);
|
|
1136
|
+
y += 30;
|
|
1137
|
+
}
|
|
1138
|
+
const renderedsymbols = Object.keys(bysymbol);
|
|
1139
|
+
if (renderedsymbols.length) {
|
|
1140
|
+
leng.append("text").text("Symbols").attr("y", y).attr("dominant-baseline", "middle").each(function() {
|
|
1141
|
+
x = this.getBBox().width;
|
|
1142
|
+
});
|
|
1143
|
+
let x1;
|
|
1144
|
+
for (const symbolname in bysymbol) {
|
|
1145
|
+
const s = bysymbol[symbolname];
|
|
1146
|
+
const g3 = leng.append("g").on("click", () => {
|
|
1147
|
+
s.hidden = !s.hidden;
|
|
1148
|
+
svg.selectAll(".twodmaf-" + symbolname).style("display", s.hidden ? "none" : "");
|
|
1149
|
+
label.style("text-decoration", s.hidden ? "line-through" : "");
|
|
1150
|
+
});
|
|
1151
|
+
x1 = x + 20;
|
|
1152
|
+
g3.append("path").attr("transform", "translate(" + x1 + "," + y + ")").attr("d", symbolgen.type(symbols[symbolname]).size(100)()).attr("stroke", "black").attr("fill", "none").each(function() {
|
|
1153
|
+
x1 += this.getBBox().width;
|
|
1154
|
+
});
|
|
1155
|
+
const label = g3.append("text").text(s.label ? s.label + " (" + s.numlines + ")" : "").attr("y", y + 2).attr("x", x1).attr("dominant-baseline", "middle").style("text-decoration", s.hidden ? "line-through" : "");
|
|
1156
|
+
y += 30;
|
|
1157
|
+
}
|
|
1158
|
+
y += 30;
|
|
1159
|
+
}
|
|
1160
|
+
const g2m = {}, g1 = {}, g2 = {}, gs = {};
|
|
1161
|
+
for (const m of mlst) {
|
|
1162
|
+
if (!m.gene)
|
|
1163
|
+
continue;
|
|
1164
|
+
if (!(m.gene in g2m)) {
|
|
1165
|
+
g2m[m.gene] = [];
|
|
1166
|
+
}
|
|
1167
|
+
g2m[m.gene].push(m);
|
|
1168
|
+
if (m.set_1) {
|
|
1169
|
+
g1[m.gene] = 1;
|
|
1170
|
+
} else if (m.set_2) {
|
|
1171
|
+
g2[m.gene] = 1;
|
|
1172
|
+
} else if (m.set_share) {
|
|
1173
|
+
gs[m.gene] = 1;
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
const genelst = [];
|
|
1177
|
+
for (const n in g1) {
|
|
1178
|
+
genelst.push(n);
|
|
1179
|
+
}
|
|
1180
|
+
for (const n in g2) {
|
|
1181
|
+
if (!(n in g1)) {
|
|
1182
|
+
genelst.push(n);
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
for (const n in gs) {
|
|
1186
|
+
if (!(n in g1) && !(n in g2)) {
|
|
1187
|
+
genelst.push(n);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
const table = tdgenetable.append("div").style("height", shareheight + sample1height + "px").style("margin", "10px").style("padding", "10px").style("border", "solid 1px #ccc").style("overflow-y", "scroll").style("resize", "both").append("table");
|
|
1191
|
+
{
|
|
1192
|
+
const tr2 = table.append("tr");
|
|
1193
|
+
tr2.append("td").text("Gene");
|
|
1194
|
+
tr2.append("td").text(pdata.setname[1] + " only");
|
|
1195
|
+
tr2.append("td").text(pdata.setname[2] + " only");
|
|
1196
|
+
tr2.append("td").text("Shared");
|
|
1197
|
+
}
|
|
1198
|
+
let bg = true;
|
|
1199
|
+
for (const name of genelst) {
|
|
1200
|
+
const tr2 = table.append("tr");
|
|
1201
|
+
if (bg) {
|
|
1202
|
+
tr2.style("background-color", "#f3f3f3");
|
|
1203
|
+
}
|
|
1204
|
+
bg = !bg;
|
|
1205
|
+
tr2.append("td").text(name);
|
|
1206
|
+
let mlst2 = [];
|
|
1207
|
+
if (name in g2m) {
|
|
1208
|
+
mlst2 = g2m[name];
|
|
1209
|
+
}
|
|
1210
|
+
const s1 = [], s2 = [], ss = [];
|
|
1211
|
+
for (const m of mlst2) {
|
|
1212
|
+
if (m.set_share)
|
|
1213
|
+
ss.push(m);
|
|
1214
|
+
else if (m.set_1)
|
|
1215
|
+
s1.push(m);
|
|
1216
|
+
else if (m.set_2)
|
|
1217
|
+
s2.push(m);
|
|
1218
|
+
}
|
|
1219
|
+
let td = tr2.append("td");
|
|
1220
|
+
if (s1.length) {
|
|
1221
|
+
for (const m of s1) {
|
|
1222
|
+
const div = td.append("div").attr("class", "sja_clbtext").style("color", m.style.fillhl).text(m.mname || "").on("click", (event) => {
|
|
1223
|
+
click(event.target, m, select_set1);
|
|
1224
|
+
});
|
|
1225
|
+
if (m.labelIsVisible) {
|
|
1226
|
+
click(div.node(), m, select_set1);
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
td = tr2.append("td");
|
|
1231
|
+
if (s2.length) {
|
|
1232
|
+
for (const m of s2) {
|
|
1233
|
+
const div = td.append("div").attr("class", "sja_clbtext").style("color", m.style.fillhl).text(m.mname || "").on("click", (event) => {
|
|
1234
|
+
click(event.target, m, select_set2);
|
|
1235
|
+
});
|
|
1236
|
+
if (m.labelIsVisible) {
|
|
1237
|
+
click(div.node(), m, select_set1);
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1241
|
+
td = tr2.append("td");
|
|
1242
|
+
if (ss.length) {
|
|
1243
|
+
for (const m of ss) {
|
|
1244
|
+
const div = td.append("div").attr("class", "sja_clbtext").style("color", m.style.fillhl).text(m.mname || "").on("click", (event) => {
|
|
1245
|
+
click(event.target, m, select_share);
|
|
1246
|
+
});
|
|
1247
|
+
if (m.labelIsVisible) {
|
|
1248
|
+
click(div.node(), m, select_set1);
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
function click(butt, m, select) {
|
|
1254
|
+
if (m.selected) {
|
|
1255
|
+
butt.style.border = "";
|
|
1256
|
+
m.selected = false;
|
|
1257
|
+
} else {
|
|
1258
|
+
butt.style.border = "solid 1px black";
|
|
1259
|
+
m.selected = true;
|
|
1260
|
+
}
|
|
1261
|
+
const found = select.filter((d) => {
|
|
1262
|
+
return d.gene == m.gene && d.class == m.class && d.mname == m.mname;
|
|
1263
|
+
});
|
|
1264
|
+
found.selectAll("rect").attr("fill-opacity", m.selected ? 0.5 : m.style.fillopacity).attr("fill", m.selected ? m.style.fillhl : m.style.fill);
|
|
1265
|
+
found.selectAll("circle,ellipse,line").attr("stroke-opacity", m.selected ? 1 : m.style.strokeopacity).attr("stroke", m.selected ? m.style.strokehl : m.style.stroke).attr("stroke-width", m.selected ? 2 : 1);
|
|
1266
|
+
if (m.selected) {
|
|
1267
|
+
let x2 = Math.max(20, m.radius), y2 = 0;
|
|
1268
|
+
if ((m.set_1 || m.set_share) && m.maf1 >= 0.8) {
|
|
1269
|
+
x2 = -m.radius;
|
|
1270
|
+
y2 = m.radius * 2;
|
|
1271
|
+
}
|
|
1272
|
+
const g3 = found.append("g").attr("class", "sja_2dmaf_mlabel").attr("transform", "translate(" + x2 + "," + y2 + ")");
|
|
1273
|
+
let w;
|
|
1274
|
+
g3.append("text").text(m.labelAs ? m.labelAs : m.gene + " " + m.mname).attr("fill", m.style.fillhl).attr("dominant-baseline", "middle").attr("text-anchor", "start").attr("font-size", m.radius).each(function() {
|
|
1275
|
+
w = this.getBBox().width;
|
|
1276
|
+
});
|
|
1277
|
+
g3.append("rect").attr("y", -m.radius / 2).attr("width", w).attr("height", m.radius).attr("fill", "black").attr("fill-opacity", 0).on("mouseover", (event) => select_default(event.target).attr("fill-opacity", 0.2)).on("mouseout", (event) => select_default(event.target).attr("fill-opacity", 0)).on("mousedown", (event) => {
|
|
1278
|
+
const x0 = x2, y0 = y2, mx = event.clientX, my = event.clientY, body = select_default(document.body);
|
|
1279
|
+
body.on("mousemove", (event2) => {
|
|
1280
|
+
event2.preventDefault();
|
|
1281
|
+
x2 = x0 + event2.clientX - mx;
|
|
1282
|
+
y2 = y0 + event2.clientY - my;
|
|
1283
|
+
g3.attr("transform", "translate(" + x2 + "," + y2 + ")");
|
|
1284
|
+
});
|
|
1285
|
+
body.on("mouseup", () => {
|
|
1286
|
+
body.on("mousemove", null).on("mouseup", null);
|
|
1287
|
+
});
|
|
1288
|
+
});
|
|
1289
|
+
} else {
|
|
1290
|
+
found.select(".sja_2dmaf_mlabel").remove();
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
return outtable;
|
|
1294
|
+
}
|
|
1295
|
+
function d2maf_dotmover(event, m, tooltip) {
|
|
1296
|
+
if (!m.selected) {
|
|
1297
|
+
select_default(event.target).attr("fill", m.style.fillhl).attr("fill-opacity", 0.2);
|
|
1298
|
+
}
|
|
1299
|
+
tooltip.clear();
|
|
1300
|
+
tooltip.show(event.clientX, event.clientY);
|
|
1301
|
+
tooltip.d.append("div").html(
|
|
1302
|
+
(m.gene || "no gene") + ' <span style="color:' + m.style.fillhl + '">' + (m.mname || "") + "</span>" + (m.class ? ' <span style="font-size:70%">' + mclass[m.class].label + "</span>" : "")
|
|
1303
|
+
);
|
|
1304
|
+
}
|
|
1305
|
+
function d2maf_dotmout(event, m, tooltip) {
|
|
1306
|
+
if (!m.selected) {
|
|
1307
|
+
select_default(event.ele).attr("fill", m.style.fill).attr("fill-opacity", m.style.fillopacity).attr("stroke", m.style.stroke);
|
|
1308
|
+
}
|
|
1309
|
+
tooltip.hide();
|
|
1310
|
+
}
|
|
1311
|
+
function d2maf_minfo(event, header, m) {
|
|
1312
|
+
const pane = newpane({ x: event.clientX + 30, y: event.clientY - 30 });
|
|
1313
|
+
pane.header.text((m.gene ? m.gene : "No gene") + " " + (m.mname ? m.mname : ""));
|
|
1314
|
+
var data = [];
|
|
1315
|
+
for (let i = 0; i < header.length; i++) {
|
|
1316
|
+
data.push({ k: header[i], v: m[header[i]] });
|
|
1317
|
+
}
|
|
1318
|
+
make_table_2col(pane.body, data);
|
|
1319
|
+
}
|
|
1320
|
+
function d2maf_click(data, person) {
|
|
1321
|
+
const v = data.pairs[person];
|
|
1322
|
+
if (v.shown) {
|
|
1323
|
+
v.shown = false;
|
|
1324
|
+
v.holder.remove();
|
|
1325
|
+
if (v.handle) {
|
|
1326
|
+
v.handle.attr("font-weight", "normal");
|
|
1327
|
+
}
|
|
1328
|
+
} else {
|
|
1329
|
+
v.shown = true;
|
|
1330
|
+
if (v.holder) {
|
|
1331
|
+
data.showholder.node().appendChild(v.holder.node());
|
|
1332
|
+
} else {
|
|
1333
|
+
v.holder = d2maf_render(data.showholder, v);
|
|
1334
|
+
}
|
|
1335
|
+
if (v.handle) {
|
|
1336
|
+
v.handle.attr("font-weight", "bold");
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
function d2maf_peopletable(data, holder) {
|
|
1341
|
+
const plst = [];
|
|
1342
|
+
for (const n in data.pairs) {
|
|
1343
|
+
plst.push([n, data.pairs[n].mlst.length]);
|
|
1344
|
+
}
|
|
1345
|
+
holder.selectAll("*").remove();
|
|
1346
|
+
const searchrow = holder.append("div").style("margin-bottom", "5px");
|
|
1347
|
+
searchrow.append("span").text(plst.length + " individual" + (plst.length > 1 ? "s" : ""));
|
|
1348
|
+
const svg = holder.append("svg");
|
|
1349
|
+
const space = 5, axish = 20, rowh = data.rowh;
|
|
1350
|
+
let maxlabelw = 0;
|
|
1351
|
+
for (const s of plst) {
|
|
1352
|
+
svg.append("text").text(s[0]).attr("font-size", rowh).attr("font-family", font).each(function() {
|
|
1353
|
+
maxlabelw = Math.max(maxlabelw, this.getBBox().width);
|
|
1354
|
+
}).remove();
|
|
1355
|
+
}
|
|
1356
|
+
svg.attr("width", maxlabelw + space + data.peoplewidth + 30).attr("height", axish + space + rowh * plst.length);
|
|
1357
|
+
plst.sort((a, b) => b[1] - a[1]);
|
|
1358
|
+
let maxmcount = 0;
|
|
1359
|
+
for (const k in data.pairs) {
|
|
1360
|
+
maxmcount = Math.max(maxmcount, data.pairs[k].mlst.length);
|
|
1361
|
+
}
|
|
1362
|
+
const ag = svg.append("g").attr("transform", "translate(" + (maxlabelw + space) + "," + axish + ")").call(
|
|
1363
|
+
axisTop().scale(linear().domain([0, maxmcount]).range([0, data.peoplewidth])).tickFormat(format("d")).ticks(3)
|
|
1364
|
+
);
|
|
1365
|
+
axisstyle({
|
|
1366
|
+
axis: ag,
|
|
1367
|
+
showline: true,
|
|
1368
|
+
color: "black"
|
|
1369
|
+
});
|
|
1370
|
+
const wsf = data.peoplewidth / maxmcount;
|
|
1371
|
+
let y = axish + space;
|
|
1372
|
+
for (const s of plst) {
|
|
1373
|
+
const person = s[0];
|
|
1374
|
+
data.pairs[person].handle = svg.append("text").text(person).attr("class", "sja_svgtext2").attr("font-size", rowh - 2).attr("font-family", font).attr("x", maxlabelw).attr("y", y + space + rowh / 2).attr("text-anchor", "end").on("click", () => {
|
|
1375
|
+
d2maf_click(data, person);
|
|
1376
|
+
});
|
|
1377
|
+
let m1 = 0, m2 = 0, ms = 0;
|
|
1378
|
+
for (const m of data.pairs[person].mlst) {
|
|
1379
|
+
if (m.set_1)
|
|
1380
|
+
m1++;
|
|
1381
|
+
else if (m.set_2)
|
|
1382
|
+
m2++;
|
|
1383
|
+
else if (m.set_share)
|
|
1384
|
+
ms++;
|
|
1385
|
+
}
|
|
1386
|
+
const g = svg.append("g").attr("transform", "translate(" + (maxlabelw + space) + "," + y + ")");
|
|
1387
|
+
if (m1 > 0) {
|
|
1388
|
+
g.append("rect").attr("width", wsf * m1).attr("height", rowh - 1).attr("fill", data.color1);
|
|
1389
|
+
}
|
|
1390
|
+
if (ms > 0) {
|
|
1391
|
+
g.append("rect").attr("x", wsf * m1).attr("width", wsf * ms).attr("height", rowh - 1).attr("fill", data.colorshare);
|
|
1392
|
+
}
|
|
1393
|
+
if (m2 > 0) {
|
|
1394
|
+
g.append("rect").attr("x", wsf * (m1 + ms)).attr("width", wsf * m2).attr("height", rowh - 1).attr("fill", data.color2);
|
|
1395
|
+
}
|
|
1396
|
+
y += rowh;
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
export {
|
|
1400
|
+
d2mafparseinput,
|
|
1401
|
+
d2mafui
|
|
1402
|
+
};
|
|
1403
|
+
//# sourceMappingURL=2dmaf-MDLDUNEO.js.map
|