@sjcrh/proteinpaint-client 2.77.0 → 2.78.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-acb8cfdd.js → 2dmaf-7dddba15.js} +1 -1
- package/dist/{AppHeader-315dbd3a.js → AppHeader-67cea623.js} +1 -1
- package/dist/{ColorScale-4b4ea8a2.js → ColorScale-7a36cc17.js} +1 -1
- package/dist/{DEanalysis-28ddd620.js → DEanalysis-417e1f88.js} +1 -1
- package/dist/{Disco-3c427131.js → Disco-30abd4cb.js} +1 -1
- package/dist/{Disco.UI-b071cf7a.js → Disco.UI-ea58ee03.js} +1 -1
- package/dist/{DragControls-7961799c.js → DragControls-a5072cfd.js} +1 -1
- package/dist/{DziViewer-aa5b5706.js → DziViewer-af3c5a76.js} +1 -1
- package/dist/FilterRxComp-cb149666.js +1 -0
- package/dist/FilterStateless-bdd1416d.js +1 -0
- package/dist/{HicApp-674a148d.js → HicApp-fe8682af.js} +1 -1
- package/dist/{OrbitControls-58ca2292.js → OrbitControls-0d20d46b.js} +1 -1
- package/dist/{WSIViewer-afe97e2e.js → WSIViewer-64e55fb8.js} +1 -1
- package/dist/{adSandbox-791d704e.js → adSandbox-5753745b.js} +1 -1
- package/dist/app-488d9fd6.js +1 -0
- package/dist/{app-bd9f016b.js → app-5aa892cb.js} +1 -1
- package/dist/app-d9433820.js +1 -0
- package/dist/app.js +1 -1
- package/dist/bam-4e0df8b6.js +1 -0
- package/dist/{barchart-e3dcfc5f.js → barchart-687ae584.js} +1 -1
- package/dist/{barchart.events-cecb7bf5.js → barchart.events-9e2c1acf.js} +1 -1
- package/dist/{bars.renderer-58e38632.js → bars.renderer-95f7250f.js} +1 -1
- package/dist/{block-944afb9f.js → block-2f22e7fd.js} +1 -1
- package/dist/block.lazyload-143ae987.js +1 -0
- package/dist/{block.legend-3dbc41a8.js → block.legend-aa831169.js} +1 -1
- package/dist/{block.mds-b3967ce5.js → block.mds-64d95cf9.js} +1 -1
- package/dist/{block.mds.cnv-6de3115e.js → block.mds.cnv-2520897d.js} +1 -1
- package/dist/{block.mds.expressionrank-553613e8.js → block.mds.expressionrank-582ed7bc.js} +1 -1
- package/dist/{block.mds.expressionstat-2c396bb9.js → block.mds.expressionstat-483c9bc9.js} +1 -1
- package/dist/{block.mds.geneboxplot-552fe571.js → block.mds.geneboxplot-c1276cba.js} +1 -1
- package/dist/{block.mds.junction-1e25c13d.js → block.mds.junction-4a132819.js} +1 -1
- package/dist/{block.mds.svcnv-462d762d.js → block.mds.svcnv-a532eca7.js} +1 -1
- package/dist/{block.mds.svcnv.share-766e4b22.js → block.mds.svcnv.share-6575b7cf.js} +1 -1
- package/dist/{block.mds2-6e04432d.js → block.mds2-9ce41a23.js} +1 -1
- package/dist/{block.svg-40b47da8.js → block.svg-adb13c76.js} +1 -1
- package/dist/{block.tk.aicheck-cc42cbaf.js → block.tk.aicheck-ef6b634b.js} +1 -1
- package/dist/{block.tk.ase-da848c5f.js → block.tk.ase-1b119031.js} +1 -1
- package/dist/{block.tk.bam-8053c97e.js → block.tk.bam-2aa824aa.js} +1 -1
- package/dist/{block.tk.bedgraphdot-79cb0faf.js → block.tk.bedgraphdot-983fe4b3.js} +1 -1
- package/dist/{block.tk.bigwig.ui-a8decec7.js → block.tk.bigwig.ui-fb6401ee.js} +1 -1
- package/dist/{block.tk.hicstraw-3d1e9d41.js → block.tk.hicstraw-c6732591.js} +1 -1
- package/dist/{block.tk.junction-81eae755.js → block.tk.junction-429b654c.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-4c45b69a.js → block.tk.junction.textmatrixui-15bd752c.js} +1 -1
- package/dist/{block.tk.ld-997fca31.js → block.tk.ld-fba14536.js} +1 -1
- package/dist/{block.tk.menu-d3e7ccbb.js → block.tk.menu-1299ae5e.js} +1 -1
- package/dist/{block.tk.pgv-ae1d1f59.js → block.tk.pgv-c946527f.js} +1 -1
- package/dist/{boxplot-fed0a86b.js → boxplot-dbf30a19.js} +1 -1
- package/dist/{brainImaging-b455fd0c.js → brainImaging-b2865ba3.js} +1 -1
- package/dist/{brush-06989a5e.js → brush-1a123226.js} +1 -1
- package/dist/{categorical-82722704.js → categorical-f67752ed.js} +1 -1
- package/dist/{condition-f68cc8d1.js → condition-dcc70001.js} +1 -1
- package/dist/{controls-1d99916a.js → controls-f4648f7f.js} +1 -1
- package/dist/controls.btns-26bb6ef1.js +1 -0
- package/dist/{controls.config-00ce9f0b.js → controls.config-9870bdea.js} +1 -1
- package/dist/{cuminc-879690b0.js → cuminc-2273cdd3.js} +1 -1
- package/dist/{customdata.inputui-c563c695.js → customdata.inputui-fb1b24dc.js} +1 -1
- package/dist/{dataDownload-087ac205.js → dataDownload-b94871d0.js} +1 -1
- package/dist/{databrowser.ui-9f98f6b3.js → databrowser.ui-8ace51c3.js} +1 -1
- package/dist/{density-e0aff1d0.js → density-e023c28f.js} +1 -1
- package/dist/{dictionary-fe0ea1d6.js → dictionary-321e19f9.js} +1 -1
- package/dist/{drag-e11d6644.js → drag-1b98e43e.js} +1 -1
- package/dist/{e2pca-b3250d5c.js → e2pca-00e78fdc.js} +1 -1
- package/dist/{ep-9ca01df0.js → ep-b0d6177c.js} +1 -1
- package/dist/{facet-397afad5.js → facet-26292a3d.js} +1 -1
- package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
- package/dist/{fusion.parse-e5312047.js → fusion.parse-7e3a6071.js} +1 -1
- package/dist/{geneExpClustering-4383ff2c.js → geneExpClustering-a2cf1bb9.js} +1 -1
- package/dist/{geneExpression-52678025.js → geneExpression-d1d5a7ca.js} +1 -1
- package/dist/{geneExpression-cfb86b5d.js → geneExpression-dc10af2c.js} +1 -1
- package/dist/{geneExpression-2422f66b.js → geneExpression-e4a5a2cd.js} +1 -1
- package/dist/{geneORA-81220ec0.js → geneORA-248baba7.js} +1 -1
- package/dist/{geneVariant-18f9591a.js → geneVariant-447d6af9.js} +1 -1
- package/dist/{geneVariant-4d22b146.js → geneVariant-7366f3d1.js} +1 -1
- package/dist/{genefusion.ui-e38778dd.js → genefusion.ui-e219424a.js} +1 -1
- package/dist/{genesearch-0587c713.js → genesearch-d8780180.js} +1 -1
- package/dist/{geneset-604d0529.js → geneset-1f67d4c9.js} +1 -1
- package/dist/genomeBrowser-52c639b4.js +1 -0
- package/dist/{genomeBrowser.controls-204f007e.js → genomeBrowser.controls-3a7a1c94.js} +1 -1
- package/dist/{groupsetting-53dfd5e5.js → groupsetting-697a1503.js} +1 -1
- package/dist/{gsea-a1b04406.js → gsea-d3286c53.js} +1 -1
- package/dist/hierCluster-00268175.js +1 -0
- package/dist/{html.legend-6807e9ad.js → html.legend-0abd27ff.js} +1 -1
- package/dist/{imagePlot-f96cdc61.js → imagePlot-f6398b6e.js} +1 -1
- package/dist/{lasso-845446b8.js → lasso-48317f42.js} +1 -1
- package/dist/launch.adhoc-98dc0421.js +1 -0
- package/dist/{leftlabel.sample-3a6037c2.js → leftlabel.sample-591bc38d.js} +1 -1
- package/dist/legacyDataset-354f1a29.js +1 -0
- package/dist/{log-0ea548ec.js → log-1001ca83.js} +1 -1
- package/dist/{lollipop-75e11e9a.js → lollipop-40c4c5cb.js} +1 -1
- package/dist/{maf-e4af10d7.js → maf-10526648.js} +1 -1
- package/dist/{maftimeline-cc2e866c.js → maftimeline-a77349ad.js} +1 -1
- package/dist/matrix-1190d4b3.js +1 -0
- package/dist/matrix-bc0ccf83.js +1 -0
- package/dist/{mavb-b2dd74f6.js → mavb-0d28dd97.js} +1 -1
- package/dist/{mds.fimo-f19840cd.js → mds.fimo-929b9e65.js} +1 -1
- package/dist/{mds.samplescatterplot-254f1de6.js → mds.samplescatterplot-5a4ee6b6.js} +1 -1
- package/dist/{mds.survivalplot-f440db10.js → mds.survivalplot-b04947ee.js} +1 -1
- package/dist/metaboliteIntensity-f407ad0c.js +1 -0
- package/dist/niceNumLabels-621ef5c3.js +1 -0
- package/dist/{nodrag-f6c0801c.js → nodrag-b2866dd8.js} +1 -1
- package/dist/{notify-da3afe99.js → notify-91f0bc5d.js} +1 -1
- package/dist/{numeric-1d0318e8.js → numeric-eb1d29b3.js} +1 -1
- package/dist/{numeric.binary-88bf9e0d.js → numeric.binary-da92d665.js} +1 -1
- package/dist/numeric.continuous-92d1dea8.js +1 -0
- package/dist/numeric.discrete-cd8f09b1.js +1 -0
- package/dist/{numeric.spline-b3968b77.js → numeric.spline-9a9987b6.js} +1 -1
- package/dist/{numeric.toggle-ab8b79be.js → numeric.toggle-8f68f077.js} +1 -1
- package/dist/{oncomatrix-5f4326a8.js → oncomatrix-c29e6de9.js} +1 -1
- package/dist/{parseData-62083461.js → parseData-3bf0ef9f.js} +1 -1
- package/dist/{plot.2dvaf-eccd8ef3.js → plot.2dvaf-9e59c7d1.js} +1 -1
- package/dist/plot.app-fc3608a9.js +1 -0
- package/dist/plot.barplot-122296f7.js +1 -0
- package/dist/{plot.boxplot-0c538ebe.js → plot.boxplot-99c5aac5.js} +1 -1
- package/dist/{plot.brainImaging-ee3a0272.js → plot.brainImaging-a7bb79d6.js} +1 -1
- package/dist/{plot.disco-c9249cbd.js → plot.disco-ccdf741c.js} +1 -1
- package/dist/{plot.dzi-dfd72ddf.js → plot.dzi-aafdf56b.js} +1 -1
- package/dist/plot.ssgq-146075f5.js +1 -0
- package/dist/{plot.vaf2cov-4081decd.js → plot.vaf2cov-41e13dd9.js} +1 -1
- package/dist/{plot.wsi-f6325d95.js → plot.wsi-2327ad63.js} +1 -1
- package/dist/{profileBarchart-f4da0483.js → profileBarchart-46616916.js} +1 -1
- package/dist/profileHome-121aaddb.js +1 -0
- package/dist/profilePlot-a2591a28.js +1 -0
- package/dist/{profilePolar-996784ad.js → profilePolar-006a56b1.js} +1 -1
- package/dist/{profileRadar-79299186.js → profileRadar-3320d932.js} +1 -1
- package/dist/{profileRadarFacility-00e31213.js → profileRadarFacility-7a9cea80.js} +1 -1
- package/dist/{profileSummary-df75e6ff.js → profileSummary-7a747b4e.js} +1 -1
- package/dist/recover-edcdde38.js +1 -0
- package/dist/{regression.inputs-e647b716.js → regression.inputs-d5d44e49.js} +1 -1
- package/dist/{regression.inputs.values.table-b283619d.js → regression.inputs.values.table-daf7bcda.js} +1 -1
- package/dist/regression.results-31a8884d.js +1 -0
- package/dist/{renderPvalueTable-0ed37e90.js → renderPvalueTable-05c29ccf.js} +1 -1
- package/dist/sampleScatter-f6c04130.js +1 -0
- package/dist/{sampleScatter.rendererThree-aa51e3c8.js → sampleScatter.rendererThree-448689c6.js} +2 -2
- package/dist/{sampleView-e4819da2.js → sampleView-0931e571.js} +1 -1
- package/dist/{samplelst-9d9ff205.js → samplelst-27115b0e.js} +1 -1
- package/dist/{samplematrix-3556e5c0.js → samplematrix-2bb2480b.js} +1 -1
- package/dist/{scatter-ff17f653.js → scatter-a8d7c2a0.js} +1 -1
- package/dist/select2Terms-480025f5.js +1 -0
- package/dist/{selectGenomeWithTklst-84f4ff79.js → selectGenomeWithTklst-71344af2.js} +1 -1
- package/dist/{singleCellCellType-a2ce9bfa.js → singleCellCellType-b4061c59.js} +1 -1
- package/dist/{singleCellGeneExpression-a2b45c7a.js → singleCellGeneExpression-547149f2.js} +1 -1
- package/dist/singleCellPlot-2f5ad46a.js +1 -0
- package/dist/{singlecell-a5b8a39b.js → singlecell-1c3bee25.js} +1 -1
- package/dist/{singlecell-63cb06d8.js → singlecell-281a74a6.js} +1 -1
- package/dist/snp-32b8cbd8.js +1 -0
- package/dist/{snp-6e312b4c.js → snp-6bbefa83.js} +1 -1
- package/dist/snplocus-84450f3d.js +1 -0
- package/dist/{spliceevent.a53ss.diagram-aa2df5d7.js → spliceevent.a53ss.diagram-c04f46f1.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-0b792984.js → spliceevent.exonskip.diagram-a514c12e.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-a9a45dfc.js +1 -0
- package/dist/{spliceevent.noeventdiagram-e6e29a6e.js → spliceevent.noeventdiagram-b1be922c.js} +1 -1
- package/dist/{spliceevent.phrase-5f65a5f4.js → spliceevent.phrase-57659f7c.js} +1 -1
- package/dist/{stattable-775a5af5.js → stattable-7fa50fd2.js} +1 -1
- package/dist/{style.gdc-519a42d8.js → style.gdc-6b6a2e0c.js} +1 -1
- package/dist/{summary-5866c75f.js → summary-54587ccf.js} +1 -1
- package/dist/{sunburst-f928bfd2.js → sunburst-c24faf27.js} +1 -1
- package/dist/{survival-405514f6.js → survival-21e6637b.js} +1 -1
- package/dist/survival-538cddc2.js +1 -0
- package/dist/{svg.download-cd895635.js → svg.download-0dd56dfd.js} +1 -1
- package/dist/{svg.legend-812ea603.js → svg.legend-21629769.js} +1 -1
- package/dist/{svgraph-037fd7b6.js → svgraph-76e34d5e.js} +1 -1
- package/dist/{svmr-3bd143c3.js → svmr-89b80ea2.js} +1 -1
- package/dist/table-10183501.js +1 -0
- package/dist/{table-e013d8fc.js → table-bb97b5c9.js} +1 -1
- package/dist/{termInfo-e16f90f2.js → termInfo-4d954045.js} +1 -1
- package/dist/termdb.bins-06fd21c1.js +1 -0
- package/dist/termsetting-c12f1c69.js +1 -0
- package/dist/{tk-25ae65c4.js → tk-b96367f7.js} +1 -1
- package/dist/{toggleButtons-2144daab.js → toggleButtons-bb9aca2f.js} +1 -1
- package/dist/{tp.ui-38bc5890.js → tp.ui-f01b186b.js} +1 -1
- package/dist/tvs.density-064e5767.js +1 -0
- package/dist/{tvs.geneVariant-f99fe353.js → tvs.geneVariant-3fac6bed.js} +1 -1
- package/dist/{tvs.numeric-d9108473.js → tvs.numeric-86aacc82.js} +1 -1
- package/dist/{tvs.samplelst-3b8ee998.js → tvs.samplelst-1b00d7b6.js} +1 -1
- package/dist/{uiUtils-57f4b1ba.js → uiUtils-5aad7e13.js} +1 -1
- package/dist/{variantBrowser-56ebc7e1.js → variantBrowser-2c465d02.js} +1 -1
- package/dist/{vcf-e43b533a.js → vcf-55bf2c83.js} +1 -1
- package/dist/{violin-1352dab2.js → violin-edbe9a63.js} +1 -1
- package/dist/violin.interactivity-57637244.js +1 -0
- package/dist/{violin.renderer-4273257d.js → violin.renderer-4cab7448.js} +1 -1
- package/dist/{violinRenderer-7f46e468.js → violinRenderer-24abe5fd.js} +1 -1
- package/dist/{viridis-87a8b605.js → viridis-8a8f3e12.js} +1 -1
- package/dist/{y-cac91178.js → y-6fe1bb7b.js} +1 -1
- package/dist/{zoom-001c2f01.js → zoom-6a36fb2b.js} +1 -1
- package/package.json +6 -5
- package/dist/FilterRxComp-e8de560c.js +0 -1
- package/dist/FilterStateless-75514d37.js +0 -1
- package/dist/app-3d14cbe4.js +0 -1
- package/dist/app-8b5b982a.js +0 -1
- package/dist/bam-fa90bae8.js +0 -1
- package/dist/block.lazyload-4c4e81ff.js +0 -1
- package/dist/controls.btns-237b3154.js +0 -1
- package/dist/genomeBrowser-9f0e8a60.js +0 -1
- package/dist/hierCluster-edaaacc5.js +0 -1
- package/dist/hierCluster.config-a84f69a3.js +0 -1
- package/dist/hierCluster.interactivity-dd917fd3.js +0 -1
- package/dist/hierCluster.renderers-4d33e96a.js +0 -1
- package/dist/launch.adhoc-cb00917b.js +0 -1
- package/dist/legacyDataset-c9bab1e6.js +0 -1
- package/dist/matrix-8b3341c4.js +0 -1
- package/dist/matrix.cells-4dd055e7.js +0 -1
- package/dist/matrix.cluster-7ab94fb5.js +0 -1
- package/dist/matrix.config-b3b56456.js +0 -1
- package/dist/matrix.controls-6e0e9692.js +0 -1
- package/dist/matrix.data-baabaf57.js +0 -1
- package/dist/matrix.dom-cb1f4872.js +0 -1
- package/dist/matrix.groups-9990aade.js +0 -1
- package/dist/matrix.interactivity-3f3cf44d.js +0 -1
- package/dist/matrix.layout-50bc2ea5.js +0 -1
- package/dist/matrix.legend-024e2d50.js +0 -1
- package/dist/matrix.renderers-1aed44e5.js +0 -1
- package/dist/matrix.serieses-dc18fcc2.js +0 -1
- package/dist/matrix.sort-89b98e83.js +0 -1
- package/dist/matrix.sorterUi-0ad98ef0.js +0 -1
- package/dist/metaboliteIntensity-4d905d93.js +0 -1
- package/dist/niceNumLabels-ef07b7ad.js +0 -1
- package/dist/numeric.continuous-d27197cf.js +0 -1
- package/dist/numeric.discrete-b826f33b.js +0 -1
- package/dist/plot.app-4dc30ebc.js +0 -1
- package/dist/plot.barplot-331715f6.js +0 -1
- package/dist/plot.ssgq-b5f68395.js +0 -1
- package/dist/profileHome-11b7d146.js +0 -1
- package/dist/profilePlot-5dd1fe71.js +0 -1
- package/dist/recover-4888c2a9.js +0 -1
- package/dist/regression.results-f61b4a25.js +0 -1
- package/dist/sampleScatter-b96546e9.js +0 -1
- package/dist/select2Terms-eb437c2a.js +0 -1
- package/dist/singleCellPlot-e7e57b0f.js +0 -1
- package/dist/snp-41aa88d1.js +0 -1
- package/dist/snplocus-0653ba82.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-af1943e3.js +0 -1
- package/dist/survival-10dd3d28.js +0 -1
- package/dist/table-be2a9975.js +0 -1
- package/dist/termdb.bins-a60aaa77.js +0 -1
- package/dist/termsetting-7467350f.js +0 -1
- package/dist/tvs.density-060d3006.js +0 -1
- package/dist/violin.interactivity-2502dcd8.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,e as t,b as n,c as s}from"./uiUtils-
|
|
1
|
+
import{a as e,e as t,b as n,c as s}from"./uiUtils-5aad7e13.js";import{j as a,d as o,aT as p}from"./app-488d9fd6.js";import{T as i}from"./toggleButtons-bb9aca2f.js";import"./tslib.es6-c3c2d88f.js";function r(t,n){const s=t.append("div").style("margin","20px 20px 20px 40px").style("font-family","'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif").style("place-items","center left").style("overflow","hidden").classed("sjpp-app-ui",true);const a={};l(s,a);const o=s.append("div").style("display","flex").style("align-items","center").style("margin","10px");d(o,n,a);c(o,a);const p=s.append("div").style("display","flex").style("align-items","center").style("margin","40px 0px 40px 130px");m(p,a,t);e(p,a,".genefusion_input").style("margin","0px 10px");y(s);return a}function l(e,n){const s=t({div:e,cols:50,placeholder:"Example: PAX5,chr9,37002646,-::JAK2,chr9,5081726,+"}).style("border","1px solid rgb(138, 177, 212)").style("margin","0px 0px 0px 20px").classed("genefusion_input",true).on("keyup",(async()=>{n.data=s.property("value").trim()}))}async function d(e,t,s){const a=e.append("div").style("margin-left","40px");const o=n(a,t).style("border","1px solid rgb(138, 177, 212)");s.genome=o.node()}async function c(e,t){const n=e.append("div");const s=n.append("select").style("border-radius","5px").style("padding","5px 10px").style("margin","1px 10px 1px 10px");s.append("option").text("Codon position").property("value","codon");s.append("option").text("RNA position").property("value","rna");s.append("option").text("Genomic position").property("value","genomic").attr("selected",true);t.posType=s.node()}function m(e,t,n){const p=s({div:e,text:"Submit"});const i=e.append("div");p.style("display","block").on("click",(()=>{if(!t.data||t.data==undefined){const e=i.append("div").style("display","inline-block").style("max-width","20vw");a(e,"Please provide data");setTimeout((()=>e.remove()),3e3)}else{o(".sjpp-app-ui").remove();const e={host:sessionStorage.getItem("hostURL"),nobox:true,noheader:true,parseurl:false,genome:t.genome.options[t.genome.selectedIndex].text};u(t,n,e)}}))}function y(e){e.append("div").style("margin","10px").style("opacity","0.65").html(`Limited to two-gene fusion products.<br>\n\t\tOne product per line.<br>\n\t\tEach line has eight fields. four fields for each gene. For each gene join the following fields separated by a comma:\n\t\t<ol><li>Gene symbol</li>\n\t\t<li>Chromosome</li>\n\t\t<li>Position</li>\n\t\t<li>Strand</li>\n\t\t</ol>\n\t\tSeparate the two genes by a double colon (::). <br><br>\n\t\tExample: <br>\n\t\t<p style="margin-left: 10px">\n\t\tPAX5,chr9,37002646,-::JAK2,chr9,5081726,+<br>\n\t\tZCCHC7,chr9,37257786,-::PAX5,chr9,37024824,-<br>\n\t\tBCR,chr22,23524427,+::ABL1,chr9,133729449,+<p>`)}function u(e,t,n){if(e.data.split(/[\r\n]/).length==1){const s=e.data.trim().split("::");const a=s[0].split(",");const o=s[1].split(",");return x(t,n,a,o)}const s=t.append("div").append("select").style("border-radius","5px").style("padding","5px 10px").style("margin","1px 10px 1px 10px");s.append("option").text(`Select Fusion (${e.data.split(/[\r\n]/).length})`);const a=t.append("div").style("margin","20px");const o=new Map;for(const t of e.data.split(/[\r\n]/)){const e=t.trim().split("::");const n=e[0].split(",");const s=e[1].split(",");o.set(`${n[0]}-${s[0]}`,[n,s])}for(const e of o){s.append("option").property("value",e[0]).text(e[0])}s.on("change",(()=>{a.selectAll("*").remove();const e=o.get(s.property("value"));x(a,n,e[0],e[1])}))}function x(e,t,n,s){const a=[{label:n[0],callback:async(e,a)=>{p(a.contentHolder);const o={holder:a.contentHolder.append("div").style("margin","20px").node(),gene:n[0],tracks:[{type:"mds3",name:n[0],custom_variants:[{gene1:n[0],chr1:n[1],pos1:parseInt(n[2]),strand1:n[3],gene2:s[0],chr2:s[1],pos2:parseInt(s[2]),strand2:s[3],dt:2,class:"Fuserna"}]}]};runproteinpaint(Object.assign(t,o));delete a.callback}},{label:s[0],callback:async(e,a)=>{p(a.contentHolder);const o={holder:a.contentHolder.append("div").style("margin","20px").node(),gene:s[0],tracks:[{type:"mds3",name:s[0],custom_variants:[{gene1:n[0],chr1:n[1],pos1:parseInt(n[2]),strand1:n[3],gene2:s[0],chr2:s[1],pos2:parseInt(s[2]),strand2:s[3],dt:2,class:"Fuserna"}]}]};runproteinpaint(Object.assign(t,o));delete a.callback}}];new i({holder:e,tabs:a}).main()}export{r as init_geneFusionUI};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./tslib.es6-c3c2d88f.js";import{k as t,c as n,a as r,b as o,w as i,x as s}from"./app-
|
|
1
|
+
import{_ as e}from"./tslib.es6-c3c2d88f.js";import{k as t,c as n,a as r,b as o,w as i,x as s}from"./app-488d9fd6.js";function l(s){const l=s.tip,c=s.row;const u={};if((s===null||s===void 0?void 0:s.searchOnly)=="snp"&&!s.genome.hasSNP){c.append("span").text('Cannot support .searchOnly = "snp". Genome lacks SNP');return u}let d,f=150;if("placeholder"in s){d=s.placeholder}else if((s===null||s===void 0?void 0:s.searchOnly)=="gene"){d="Gene";f=100}else{d=(s===null||s===void 0?void 0:s.searchOnly)=="snp"?"Position":"Gene, position";if(s.genome.hasSNP){d+=", dbSNP";f+=40}if(s.allowVariant){d+=", variant";f+=40}}const p=c.append("input").attr("type","text").attr("placeholder",d).attr("aria-label","Gene symbol, position, or alias").attr("class","sja_genesearchinput").style("width",f+"px").on("focus",(e=>{e.target.select()})).on("keyup",(r=>e(this,void 0,void 0,(function*(){const e=r.target;const o=e.value.trim();if(s.emptyInputCallback&&o.length==0&&t(r)){l.hide();s.emptyInputCallback();m.word.text("");m.mark.html("");return}if(o.length<=1)return l.hide();m.mark.html("");m.word.style("font-size","0.7em");if(s.hideHelp){m.word.text("")}else{m.word.text("Press ENTER to search, ESC to cancel")}if(t(r)){e.blur();l.hide();if((s===null||s===void 0?void 0:s.searchOnly)!="snp"){const e=l.d.select(".sja_menuoption[isgene='1']");if(e.size()){const t=e.datum();(s===null||s===void 0?void 0:s.searchOnly)=="gene"?b({geneSymbol:t},t):yield v(t);return}}if((s===null||s===void 0?void 0:s.searchOnly)=="gene"){b(null,"Gene not found");return}if(s.allowVariant){const e=yield a(o,s.genome);if(e){b(e,o);return}}const t=l.d.select(".sja_menuoption[issnp='1']");if(t.size()){const e=t.datum();b({chr:e.chrom,start:e.chromStart,stop:e.chromEnd,ref:e.ref,alt:e.alt},e.name||o);return}if((s===null||s===void 0?void 0:s.searchOnly)=="snp"){b(null,"Variant not found");return}const r=n(o,s.genome);if(r){b(r,"Valid coordinate");return}b(null,"No match");return}if(r.code=="Escape"){l.hide();if(u.chr){b(u,u.fromWhat)}else if(s.defaultCoord){const t=s.defaultCoord;e.value=t.chr+(t.isVariant?"."+t.pos+"."+t.ref+"."+t.alt:":"+t.start+"-"+t.stop)}e.blur();return}if(r.key=="ArrowDown"){l.d.selectAll(".sja_menuoption").attr("tabindex",0).on("keyup",(e=>{if(e.key=="Enter"){e.target.click()}else if(e.key=="ArrowDown"){if(e.target.nextSibling)e.target.nextSibling.focus()}else if(e.key=="ArrowUp"){if(e.target.previousSibling)e.target.previousSibling.focus()}}));l.d.select(".sja_menuoption").node().focus();return}g()}))));if(!s.focusOff)p.node().focus();const m={mark:c.append("span").style("margin-left","5px"),word:c.append("span").style("margin-left","5px").style("font-size",".8em").style("opacity",.6)};function h(){var t,r;return e(this,void 0,void 0,(function*(){const i=p.property("value").trim();if(!i)return;l.showunder(p.node()).clear();if((s===null||s===void 0?void 0:s.searchOnly)!="snp"){const n=yield o("genelookup",{body:{genome:s.genome.name,input:i}});if(n.error)throw n.error;if((t=n.hits)===null||t===void 0?void 0:t.length){l.d.selectAll("div").data(n.hits).join("div").text((e=>e)).attr("class","sja_menuoption").style("border-radius","0px").attr("isgene",1).on("click",((t,n)=>e(this,void 0,void 0,(function*(){if((s===null||s===void 0?void 0:s.searchOnly)=="gene"){b({geneSymbol:n},n);l.hide()}else{yield v(n)}}))));return}}if((s===null||s===void 0?void 0:s.searchOnly)=="gene")return;if(s.allowVariant){const e=yield a(i,s.genome);if(e)return}const c=yield o("snp",{body:{byName:true,genome:s.genome.name,lst:[i]}});if(c.error)throw c.error;if(c.results.length){y(l,c.results);return}const u=n(i,s.genome,true);if(u){if((s===null||s===void 0?void 0:s.searchOnly)=="snp"){if(!((r=u.actualposition)===null||r===void 0?void 0:r.len))return;const e=u.chr;const t=u.actualposition.position-1;const n=t+u.actualposition.len;const i=[{start:t,stop:n}];const a=yield o("snp",{body:{byCoord:true,genome:s.genome.name,chr:e,ranges:i}});if(a.error)throw a.error;if(a.results.length){const e=u.actualposition.len==1?a.results.filter((e=>e.chromStart==t)):a.results;y(l,e)}}return}}))}const g=r.debounce(h,500);function y(e,t){e.d.selectAll("div").data(t).join("div").text((e=>{const t=`${e.chrom}:${e.chromStart+1}`;const n=`${e.ref}>${e.alt.join(",")}`;return`${e.name} (${t} ${n})`})).attr("class","sja_menuoption").style("border-radius","0px").attr("issnp",1).on("click",((t,n)=>{b({chr:n.chrom,start:n.chromStart,stop:n.chromEnd,ref:n.ref,alt:n.alt},n.name);e.hide()}))}function v(t){var n;return e(this,void 0,void 0,(function*(){l.hide();const e=yield o("genelookup",{body:{genome:s.genome.name,input:t,deep:1}});if(e.error)throw e.error;if(!((n=e.gmlst)===null||n===void 0?void 0:n.length))throw"cannot retrieve gene coordinates";const r=i(e.gmlst);if(r.length==1){b(r[0],t,t);return}l.showunder(p.node()).clear();l.d.selectAll("div").data(r).join("div").attr("class","sja_menuoption").style("border-radius","0px").text((e=>e.name+" "+e.chr+":"+e.start+"-"+e.stop)).on("click",((e,n)=>{l.hide();b(n,t+", "+n.name,n.name)}))}))}if(s.defaultCoord){const e=s.defaultCoord;if(e.isVariant){p.property("value",e.chr+"."+e.pos+"."+e.ref+"."+e.alt);u.pos=e.pos;u.ref=e.ref;u.alt=e.alt}else{p.property("value",e.chr+":"+e.start+"-"+e.stop);u.start=e.start;u.stop=e.stop}u.chr=e.chr}function b(t,n,r){return e(this,void 0,void 0,(function*(){if(t){for(const e in u)delete u[e];if(t.isVariant){u.chr=t.chr;u.pos=t.pos;u.ref=t.ref;u.alt=t.alt}else if(t.chr){p.property("value",t.chr+":"+t.start+"-"+t.stop);u.chr=t.chr;u.start=t.start;u.stop=t.stop;if(t.ref)u.ref=t.ref;if(t.alt)u.alt=t.alt}else if(t.geneSymbol){p.property("value",t.geneSymbol);u.geneSymbol=t.geneSymbol}m.mark.style("color","green").html("✓");if(r){u.geneSymbol=r}}else{m.mark.style("color","red").html("✗")}m.word.text(n||"");u.fromWhat=n;if(t&&s.callback){yield s.callback()}}))}if(s.geneSymbol){p.property("value",s.geneSymbol);setTimeout((()=>b({geneSymbol:s.geneSymbol},s.geneSymbol)),10)}return u}function a(t,n){return e(this,void 0,void 0,(function*(){const e=c(t,n);if(e){return e}return yield u(t,n)}))}function c(e,t){const n=e.split(".");if(n.length!=4)return;const r=n[0];const o=Number(n[1]);const i=s(t,r,o,o);if(i)return;return{isVariant:true,chr:r,pos:o,ref:n[2],alt:n[3]}}function u(t,n){return e(this,void 0,void 0,(function*(){const e=t.split(":g.");if(e.length!=2){return}const r=e[0];if(e[1].includes("delins")){return yield m(r,e[1],n)}if(e[1].includes("del")){return yield p(r,e[1],n)}if(e[1].includes("ins")){return f(r,e[1])}return d(r,e[1])}))}function d(e,t){const n=t.match(/^(\d+)([ATCG])>([ATCG])$/);if(!n||n.length!=4){return}const r=Number(n[1]);if(!Number.isInteger(r))return;return{isVariant:true,chr:e,pos:r,ref:n[2],alt:n[3]}}function f(e,t){const[n,r]=t.split("ins");if(!r)return;const o=Number(n.split("_")[0]);if(!Number.isInteger(o))return;return{isVariant:true,chr:e,pos:o+1,ref:"-",alt:r}}function p(t,n,r){return e(this,void 0,void 0,(function*(){const[e,o]=n.split("del");if(o){const n=Number(e.split("_")[0]);if(!Number.isInteger(n))return;return{isVariant:true,chr:t,pos:n,ref:o,alt:"-"}}const[i,s]=e.split("_");const l=Number(i);const a=s?Number(s):l+1;if(!Number.isInteger(l)||!Number.isInteger(a))return;const c=yield h(t,l,a,r);return{isVariant:true,chr:t,ref:c,alt:"-"}}))}function m(t,n,r){return e(this,void 0,void 0,(function*(){const e=n.match(/^(\d+)_(\d+)delins([ATCG]+)$/);if(!e||e.length!=4){return}const o=Number(e[1]),i=Number(e[2]),s=e[3];if(!Number.isInteger(o)||!Number.isInteger(i))return;const l=yield h(t,o,i,r);return{isVariant:true,chr:t,pos:o,ref:l,alt:s}}))}function h(t,n,r,i){return e(this,void 0,void 0,(function*(){const e={coord:t+":"+n+"-"+r,genome:i.name};const s=yield o("ntseq",{body:e});return s.seq}))}export{l as a,a as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as e,P as t,b as s}from"./app-
|
|
1
|
+
import{h as e,P as t,b as s}from"./app-488d9fd6.js";import{G as i}from"./recover-edcdde38.js";import{f as o}from"./termsetting-c12f1c69.js";import"./FilterRxComp-cb149666.js";import"./table-10183501.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"./FilterStateless-bdd1416d.js";import"./app-5aa892cb.js";import"./termInfo-4d954045.js";import"./toggleButtons-bb9aca2f.js";import"path";import"./genesearch-d8780180.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";class a{constructor(e){this.type="geneset";this.dom={holder:e.holder.style("position","relative").style("min-height","300px"),body:e.holder.append("div"),loadingOverlay:e.holder.append("div").attr("class","sjpp-spinner").style("display","none").style("position","absolute").style("background-color","#fff").style("z-index",10).style("opacity","0.5")}}init(){if(this.opts.reactsTo)this.reactsTo=this.opts.reactsTo}getState(e){const t=e.plots.find((e=>e.id===this.id));return{vocab:e.vocab,filter0:e.termfilter.filter0,config:t}}async main(){this.dom.body.selectAll("*").remove();this.dom.loadingOverlay.style("display","");this.noWait().catch(console.warn)}async noWait(){const e=new AbortController;try{const[t,s]=await this.api.detectStale((()=>this.getGenes({signal:e.signal})),{abortCtrl:e});if(s)return;if(!t?.length)this.render();else this.opts.callback(this.api,t)}catch(e){if(e=="stale sequenceId"||e.name=="AbortError")return;else{if(this.opts.showWaitMessage){this.dom.body.style("margin","20px").html(e)}throw e}}}async getGenes({signal:e}){this.opts.genes;const t=this.state.config.settings;if(this.opts.genes){if(!Array.isArray(this.opts.genes)||this.opts.genes.length==0)throw".genes[] is not non-empty array";return await this.getTwLst(this.opts.genes)}let i;if(this.opts.showWaitMessage){i=this.dom.body.append("div").style("margin","20px");this.opts.showWaitMessage(i)}let o;if(this.opts.mode=="geneVariant"){const i={};if(t.maxGenes)i.maxGenes=t.maxGenes;if(t.geneFilter)i.geneFilter=t.geneFilter;if(this.state.filter0)i.filter0=this.state.filter0;o=await s("gdc/topMutatedGenes",{body:i,signal:e},{cacheAs:"decoded"})}else if(this.opts.mode=="geneExpression"){const i={genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,maxGenes:t.maxGenes};if(this.state.filter0)i.filter0=this.state.filter0;o=await s("termdb/topVariablyExpressedGenes",{body:i,signal:e},{cacheAs:"decoded"})}else{throw"unknown opts.mode [geneset.js]"}if(!o)throw"invalid server response";if(o.error)throw o.error;if(!o.genes)return[];i.remove();this.dom.loadingOverlay?.style("display","none");return await this.getTwLst(o.genes)}async getTwLst(e){return await Promise.all(e.map((async e=>typeof e=="string"?await o({term:{gene:e,type:this.opts.mode}},this.app.vocabApi):await o({term:{gene:e.gene||e.name,type:this.opts.mode}},this.app.vocabApi))))}async render(){if(!this.dom?.holder)return;this.dom.body.append("p").text(`No default genes. Please change the cohort or define a gene set to launch ${this.state.config.toolName}.`);new i({holder:this.dom.body.append("div"),genome:this.opts.genome,mode:this.opts.mode,vocabApi:this.app.vocabApi,callback:async e=>{const t=await Promise.all(e.geneList.map((async e=>o({term:{gene:e.gene||e.name||e,type:"geneVariant"}},this.app.vocabApi))));this.opts.callback(this.api,t)}});this.dom.loadingOverlay?.style("display","none")}destroy(){this.dom.holder.selectAll("*").remove();this.dom.holder.remove();for(const e in this.dom){delete this.dom[e]}}}const n=e(a);const r=n;async function l(e={},s){const i=t({chartType:"geneset"},e);return i}export{r as componentInit,n as genesetInit,l as getPlotConfig};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as t,h as e,P as s,y as a,b as o,f as i}from"./app-488d9fd6.js";import{a as n}from"./genesearch-d8780180.js";import"./termsetting-c12f1c69.js";import{g as r}from"./FilterRxComp-cb149666.js";import{f as l}from"./filter-67d51c09.js";import{mayUpdateGroupTestMethodsIdx as c,gbControlsInit as p}from"./genomeBrowser.controls-3a7a1c94.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./table-10183501.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"./checkbox-96437f4d.js";import"./FilterStateless-bdd1416d.js";import"./toggleButtons-bb9aca2f.js";import"./app-5aa892cb.js";import"./termInfo-4d954045.js";const f=new t({padding:"0px"});class d{constructor(){this.type="genomeBrowser"}async init(){const e=this.opts.holder.append("div");this.opts.header.append("div").style("opacity",.6).style("padding-left","10px").style("font-size","0.75em").text("GENOME BROWSER");const s=e.append("div");const a=e.append("div").style("margin-left","25px");a.append("span").html(" ");this.dom={tip:new t,holder:e,errDiv:s,loadingDiv:a.append("span").text("Loading..."),controlsDiv:e.append("div").style("margin-left","25px"),blockHolder:e.append("div")};this.components={gbControls:await p({app:this.app,id:this.id,holder:this.dom.controlsDiv})}}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e)throw`No plot with id='${this.id}' found`;return{config:e,termdbConfig:t.termdbConfig,filter:r(t.termfilter.filter)}}async main(){this.dom.loadingDiv.style("display","inline");try{if(this.state.config?.snvindel?.details){await this.launchCustomMds3tk()}else if(this.state.config?.trackLst){await this.launchBlockWithTracks(this.state.config.trackLst)}else{const t={type:"mds3",dslabel:this.app.opts.state.vocab.dslabel,newChartHolder:this.opts.plotDiv};if(this.state.filter?.lst?.length>0){t.filterObj=structuredClone(this.state.filter)}const e=[t];if(this.state.config?.subTkFilters){for(const s of this.state.config.subTkFilters){const a={type:"mds3",dslabel:this.app.opts.state.vocab.dslabel,newChartHolder:this.opts.plotDiv};a.filterObj=t.filterObj?l(t.filterObj,s):structuredClone(s);e.push(a)}}await this.launchBlockWithTracks(e)}this.updateLDtrack()}catch(t){a(this.dom.errDiv,t.message||t);if(t.stack)console.log(t.stack)}this.dom.loadingDiv.style("display","none")}async launchCustomMds3tk(){const t=await this.preComputeData();this.mayDisplaySampleCountInControls(t);if(this.blockInstance){const e=this.blockInstance.tklst.find((t=>t.type=="mds3"));e.custom_variants=t.mlst;y(this,e.skewer.viewModes.find((t=>t.type=="numeric")));e.load();return}const e={type:"numeric",inuse:true,byAttribute:"nm_axis_value"};y(this,e);const s={type:"mds3",dslabel:this.app.opts.state.vocab.dslabel,name:"Variants",custom_variants:t.mlst,skewerModes:[e]};await this.launchBlockWithTracks([s])}mayDisplaySampleCountInControls(t){if(Number.isInteger(t.totalSampleCount_group1)||Number.isInteger(t.totalSampleCount_group2)){const e={appState:{plots:[{id:this.components.gbControls.id,_partialData:{groupSampleCounts:[t.totalSampleCount_group1,t.totalSampleCount_group2],pop2average:t.pop2average}}]}};this.components.gbControls.update(e)}}async preComputeData(){const t={genome:this.app.opts.state.vocab.genome,dslabel:this.app.opts.state.vocab.dslabel,for:"mds3variantData",chr:this.state.config.geneSearchResult.chr,start:this.state.config.geneSearchResult.start,stop:this.state.config.geneSearchResult.stop,details:this.state.config.snvindel.details,filter:this.state.filter,variantFilter:this.state.config.variantFilter?.filter};const e=await o("termdb",{body:t});if(e.error)throw e.error;return e}async launchBlockWithTracks(t){this.dom.blockHolder.selectAll("*").remove();const e={holder:this.dom.blockHolder,genome:this.app.opts.genome,nobox:true,tklst:await this.getTracks2show(t),debugmode:this.app.opts.debug,onloadalltk_always:t=>{this.maySaveMds3SubtkToState(t)}};if(this.state.termdbConfig?.queries.defaultBlock2GeneMode&&this.state.config.geneSearchResult.geneSymbol){e.query=this.state.config.geneSearchResult.geneSymbol;const t=await import("./app-488d9fd6.js").then((function(t){return t.c3}));await t.default(e);this.blockInstance=e.__blockInstance;this.opts.header.text(e.query);return}e.chr=this.state.config.geneSearchResult.chr;e.start=this.state.config.geneSearchResult.start;e.stop=this.state.config.geneSearchResult.stop;i(this.app.opts.genome,e.tklst);e.onCoordinateChange=async t=>{await this.app.dispatch({type:"plot_edit",id:this.id,config:{geneSearchResult:{chr:t[0].chr,start:t[0].start,stop:t[0].stop}}})};const s=await import("./block-2f22e7fd.js").then((function(t){return t.c}));this.blockInstance=new s.Block(e)}async getTracks2show(t){const e=[];for(const s of t){if(s.isfacet){const t=JSON.parse(JSON.stringify(s));if(!this.app.opts.genome.tkset)this.app.opts.genome.tkset=[];if(!t.tklst)throw".tklst[] missing from a facet table";if(!Array.isArray(t.tklst))throw".tklst[] not an array from a facet table";for(const s of t.tklst){if(!s.assay)throw".assay missing from a facet track";if(!s.sample)throw".sample missing from a facet track";s.tkid=Math.random().toString();if(s.defaultShown)e.push(s)}this.app.opts.genome.tkset.push(t)}else{e.push(s)}}return e}updateLDtrack(){if(!this.state.config.ld)return;if(!this.blockInstance)return;for(const t of this.state.config.ld.tracks){const e=this.blockInstance.tklst.findIndex((e=>e.file==t.file0));if(t.shown){if(e==-1){const e={type:"ld",name:t.name,file:t.file0};const s=this.blockInstance.block_addtk_template(e);this.blockInstance.tk_load(s)}continue}if(e==-1)continue;this.blockInstance.tk_remove(e)}}async maySaveMds3SubtkToState(t){const e=structuredClone(this.state.config);e.subTkFilters=[];for(const s of t.tklst){if(s.filterObj){e.subTkFilters.push(s.filterObj)}}await this.app.save({type:"plot_edit",id:this.id,config:e})}}const h=e(d);const u=h;async function m(t,e){try{return await b(e.vocabApi,t)}catch(t){throw`${t} [genomeBrowser getPlotConfig()]`}}function g(t,e){const s=e.app.opts.genome;if(typeof s!="object")throw"chartsInstance.app.opts.genome not an object and needed for gene search box";const a={tip:f,genome:s,row:t.append("div").style("margin","10px"),callback:async()=>{try{const t=await b(e.app.vocabApi);t.chartType="genomeBrowser";t.geneSearchResult=o;const s={config:t};e.prepPlot(s)}catch(e){t.append("div").text("Error: "+(e.message||e));console.log(e)}}};if(!e.state.termdbConfig.queries.defaultBlock2GeneMode){a.defaultCoord=e.state.termdbConfig.queries.defaultCoord}else{a.searchOnly="gene"}const o=n(a)}async function b(t,e){const a=await t.getMds3queryDetails();const o=await t.get_variantFilter();if(o?.filter){a.variantFilter=o}const i=e?s(a,e):a;if(i.snvindel?.details){c({state:{config:i}},i.snvindel.details)}return i}function y(t,e){delete e.tooltipPrintValue;const[s,a]=t.state.config.snvindel.details.groups;if(s&&a){if(s.type=="info"||a.type=="info"){e.label="Value difference";return}const o=t.state.config.snvindel.details.groupTestMethods[t.state.config.snvindel.details.groupTestMethodsIdx];e.label=o.axisLabel||o.name;if(o.name=="Allele frequency difference"){e.tooltipPrintValue=t=>[{k:"AF diff",v:t.nm_axis_value}]}else if(o.name=="Fisher's exact test"){e.tooltipPrintValue=t=>[{k:"p-value",v:t.p_value}]}else;return}if(s.type=="info"){const a=t.state.config.variantFilter?.terms?.find((t=>t.id==s.infoKey));e.label=a?.name||s.infoKey;e.tooltipPrintValue=t=>[{k:e.label,v:t.info[s.infoKey]}];return}if(s.type=="filter"){e.label="Allele frequency";e.tooltipPrintValue=t=>[{k:"Allele frequency",v:t.nm_axis_value}];return}if(s.type=="population"){e.label="Allele frequency";e.tooltipPrintValue=t=>[{k:"Allele frequency",v:t.nm_axis_value}];return}throw"unknown type of the only group"}export{u as componentInit,h as genomeBrowserInit,m as getPlotConfig,g as makeChartBtnMenu};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as t,h as e}from"./app-3d14cbe4.js";import{m as i}from"./checkbox-96437f4d.js";import{f as n}from"./FilterStateless-75514d37.js";import{g as s,a as o}from"./FilterRxComp-e8de560c.js";import"./termsetting-7467350f.js";import{T as a}from"./toggleButtons-2144daab.js";import{appInit as r}from"./app-bd9f016b.js";import"./table-be2a9975.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-a60aaa77.js";import"path";import"./termInfo-e16f90f2.js";const l=new t({padding:"0px"});class p{constructor(t){this.type="gbControls";this.filterUI={}}async init(t){this.initUI(this.getState(t))}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e)throw`No plot with id='${this.id}' found`;if(e._partialData){this._partialData=e._partialData;return}return{config:e,termdbConfig:t.termdbConfig,filter:s(t.termfilter.filter)}}async main(){const t=this.state.config.snvindel?.details?.groups;if(t){this.render1group(0);this.render1group(1);if(this.state.config.snvindel.details.groupTestMethods){this.renderTestMethod()}}if(this.state.config.variantFilter){if(!this.variantFilterRendered){this.variantFilterRendered=true;this.makeVariantFilter()}}}async makeVariantFilter(){n({joinWith:this.state.config.variantFilter.opts.joinWith,emptyLabel:"+Add Filter",holder:this.dom.variantFilterHolder,vocab:{terms:this.state.config.variantFilter.terms},callback:async t=>{await this.app.dispatch({type:"plot_edit",id:this.id,config:{variantFilter:{filter:t}}})}}).main(this.state.config.variantFilter.filter)}render1group(t){const e=this.state.config.snvindel.details.groups[t];const i=t==0?this.dom.group1div:this.dom.group2div;let n=false;if(e?.type=="filter"&&this.filterUI[t]){n=true}else{delete this.filterUI[t];i.selectAll("*").remove()}if(!e){h(this,t,i);return}if(!n)m(this,t,i);if(e.type=="info")return c(this,t,e,i);if(e.type=="population")return f(this,t,e,i);if(e.type=="filter")return u(this,t,e,i);throw"render1group: unknown group type"}renderTestMethod(){const t=this.dom.testMethodDiv;t.selectAll("*").remove();const[e,i]=this.state.config.snvindel.details.groups;if(!i){return}t.append("span").text("TEST METHOD").style("font-size",".8em").style("opacity",.6);if(e.type!="filter"&&i.type!="filter"){t.append("span").style("padding-left","10px").text("Value difference").style("opacity",.6);return}const n=t.append("select").style("margin-left","10px").on("change",(()=>{this.app.dispatch({type:"plot_edit",id:this.id,config:{snvindel:{details:{groupTestMethodsIdx:n.property("selectedIndex")}}}})}));for(const t of this.state.config.snvindel.details.groupTestMethods){n.append("option").text(t.name)}n.property("selectedIndex",this.state.config.snvindel.details.groupTestMethodsIdx)}initUI(t){this.dom={};const e=[];if(t.config.snvindel?.details){e.push({label:"Variant values",active:true})}if(t.config.variantFilter){e.push({label:"Variant filter"})}if(t.config.ld){e.push({label:"LD map"})}if(e.length==0){return}const n=new a({holder:this.opts.holder.append("div").style("border-bottom","solid 1px #ccc").style("padding-bottom","20px"),tabs:e});n.main();{const t=e[0].contentHolder.append("div");this.dom.group1div=t.append("div");this.dom.group2div=t.append("div");this.dom.testMethodDiv=t.append("div").style("margin-top","3px")}let s=1;if(t.config.variantFilter){this.dom.variantFilterHolder=e[s++].contentHolder.append("div").style("white-space","normal")}if(t.config.ld){const n=structuredClone(t.config.ld.tracks);const o=e[s++].contentHolder.append("div");o.append("div").text("Show/hide linkage disequilibrium map from an ancestry:").style("opacity",.5);for(const[t,e]of n.entries()){i({labeltext:e.name,checked:e.shown,holder:o,callback:()=>{n[t].shown=!n[t].shown;this.app.dispatch({type:"plot_edit",id:this.id,config:{ld:{tracks:n}}})}})}}}}const d=e(p);function c(t,e,i,n){let s=i.infoKey;if(t.state.config.variantFilter?.terms){const e=t.state.config.variantFilter.terms.find((t=>t.id==i.infoKey));if(e&&e.name)s=e.name}n.append("span").text(s).attr("class","sja_menuoption").on("click",(n=>{if(t.state.config.variantFilter.terms.length<=1){return}l.clear().showunder(n.target).d.append("div").text("Replace with:").style("margin","10px").style("font-size",".8em");for(const n of t.state.config.variantFilter.terms){if(n.type!="integer"&&n.type!="float")continue;if(n.id==i.infoKey)continue;l.d.append("div").text(n.name).attr("class","sja_menuoption").on("click",(()=>{l.hide();const i=structuredClone(t.state.config.snvindel.details.groups);i[e].infoKey=n.id;i[e].type="info";t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:i}}}})}))}}));n.append("span").text("PER-VARIANT NUMERICAL VALUES").style("font-size",".7em").style("opacity",.6).style("margin-left","10px")}function f(t,e,i,n){n.append("span").text(i.label).attr("class","sja_menuoption").on("click",(n=>{if(t.state.config.snvindel.populations.length<=1){return}l.clear().showunder(n.target).d.append("div").text("Replace with:").style("margin","10px").style("font-size",".8em");for(const n of t.state.config.snvindel.populations){if(n.key==i.key)continue;l.d.append("div").text(n.label).attr("class","sja_menuoption").on("click",(()=>{l.hide();const i=structuredClone(t.state.config.snvindel.details.groups);i[e]=structuredClone(n);i[e].type="population";t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:i}}}})}))}}));n.append("span").text(`POPULATION${i.adjust_race?", RACE ADJUSTED":""}`).style("font-size",".7em").style("margin-left","10px").style("opacity",.6);if(t._partialData?.pop2average){if(t.state.config.snvindel.details.groups[e==1?0:1]?.type=="filter"){const s=[];for(const e in t._partialData.pop2average){const i=t._partialData.pop2average[e];if(!Number.isFinite(i))continue;s.push(`${e}=${i.toFixed(2)}`)}if(s.length){n.append("span").text(`Group ${e==1?1:2} average admixture: ${s.join(", ")}`).style("margin-left","20px").attr("class","sja_clbtext").on("click",(t=>{l.clear().showunder(t.target).d.append("div").style("margin","10px").style("width","500px").html(`These are average admixture coefficients based on current Group ${e==1?1:2} samples.\n\t\t\t\t\t\tThey are used to adjust variant allele counts of matching ancestries from <span class=sja_menuoption style="padding:2px 5px">${i.label}</span>,\n\t\t\t\t\t\tso that the adjusted allele counts can be compared against Group ${e==1?1:2} allele counts.\n\t\t\t\t\t\tThis allows to account for ancestry composition difference between the two groups.\n\t\t\t\t\t\t`)}))}}}}async function u(t,e,i,s){if(!t.filterUI[e]){t.filterUI[e]=await n({holder:s,vocab:t.app.opts.state.vocab,emptyLabel:"Entire cohort",termdbConfig:t.state.termdbConfig,callback:async i=>{const n=JSON.parse(JSON.stringify(t.state.config.snvindel.details.groups));n[e].filter=i;t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:n}}}})}})}t.filterUI[e].main(g(t,i));s.select(".sjpp-gb-filter-count").remove();const o=t._partialData?.groupSampleCounts?.[e];if(Number.isInteger(o)){s.append("span").attr("class","sjpp-gb-filter-count").style("margin-left","10px").style("opacity",.5).style("font-size",".9em").text("n="+o)}}function g(t,e){const i=structuredClone(t.state.filter||{type:"tvslst",in:true,join:"",lst:[]});const n=structuredClone(e.filter);n.tag="filterUiRoot";i.lst.push(n);i.join="and";return i}function h(t,e,i){i.append("div").style("display","inline-block").text("Create Group 2").attr("class","sja_clbtext").style("margin","10px").on("click",(i=>{l.showunder(i.target).clear();y(t,e,l.d)}))}function m(t,e,i){i.append("div").style("display","inline-block").text("Group "+(e+1)).attr("class","sja_menuoption").style("margin-right","10px").on("click",(i=>{l.showunder(i.target).clear();if(e==0){y(t,0,l.d);return}l.d.append("div").text("Change").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{y(t,1,l.clear().d)}));l.d.append("div").text("Delete").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{l.hide();const e=[t.state.config.snvindel.details.groups[0]];t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:e}}}})}))}))}function y(t,e,i){const n={holder:i.append("div").style("margin","5px"),tabs:t.state.config.snvindel.details.groupTypes.map((t=>({label:t.name}))),tabsPosition:"vertical",linePosition:"right"};new a(n).main();for(const[i,s]of t.state.config.snvindel.details.groupTypes.entries()){const o=n.tabs[i];o.contentHolder.style("margin","10px");if(s.type=="info"){if(!t.state.config.variantFilter?.terms)throw"looking for snvindel info fields but self.state.config.variantFilter.terms[] missing";for(const i of t.state.config.variantFilter.terms){if(i.type!="integer"&&i.type!="float")continue;o.contentHolder.append("div").text(i.name).attr("class","sja_menuoption").on("click",(()=>{l.hide();const n={type:"info",infoKey:i.id};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}))}continue}if(s.type=="population"){if(!t.state.config.snvindel.populations)throw"state.config.snvindel.populations missing";for(const i of t.state.config.snvindel.populations){o.contentHolder.append("div").text(i.label).attr("class","sja_menuoption").on("click",(()=>{l.hide();const n={type:"population",key:i.key,label:i.label,allowto_adjust_race:i.allowto_adjust_race,adjust_race:i.adjust_race};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}))}continue}if(s.type=="filter"){const i={holder:o.contentHolder,vocabApi:t.app.vocabApi,state:{termfilter:{filter:t.state.filter}},tree:{click_term2select_tvs:i=>{l.hide();const n={type:"filter",filter:{in:true,join:"",type:"tvslst",lst:[{type:"tvs",tvs:i}]}};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}}};const n=x(t);if(Number.isInteger(n))i.state.activeCohort=n;r(i);continue}throw"unknown group type"}}function v(t,e,i){const n={groups:JSON.parse(JSON.stringify(t.state.config.snvindel.details.groups))};n.groups[i]=e;return n}function b(t,e){if(e.groups.length!=2)return;const[i,n]=e.groups;if(i.type=="info"||n.type=="info"||i.type=="population"&&n.type=="population"){const i=t.state.config.snvindel.details.groupTestMethods.findIndex((t=>t.name=="Allele frequency difference"));if(i==-1)throw"Allele frequency difference not found";e.groupTestMethodsIdx=i}}function x(t){if(!t.state.config.filter)return;const e=o(t.config.filter,"cohortFilter");if(e&&t.state.termdbConfig.selectCohort){const i=e.tvs.values.map((t=>t.key)).sort().join(",");const n=t.state.termdbConfig.selectCohort.values.findIndex((t=>t.keys.sort().join(",")==i));if(n==-1)throw"subcohort key is not in selectCohort.values[]";return n}}export{d as gbControlsInit,b as mayUpdateGroupTestMethodsIdx};
|
|
1
|
+
import{M as t,h as e}from"./app-488d9fd6.js";import{m as i}from"./checkbox-96437f4d.js";import{f as n}from"./FilterStateless-bdd1416d.js";import{g as s,a as o}from"./FilterRxComp-cb149666.js";import"./termsetting-c12f1c69.js";import{T as a}from"./toggleButtons-bb9aca2f.js";import{appInit as r}from"./app-5aa892cb.js";import"./table-10183501.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"path";import"./termInfo-4d954045.js";const l=new t({padding:"0px"});class p{constructor(t){this.type="gbControls";this.filterUI={}}async init(t){this.initUI(this.getState(t))}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e)throw`No plot with id='${this.id}' found`;if(e._partialData){this._partialData=e._partialData;return}return{config:e,termdbConfig:t.termdbConfig,filter:s(t.termfilter.filter)}}async main(){const t=this.state.config.snvindel?.details?.groups;if(t){this.render1group(0);this.render1group(1);if(this.state.config.snvindel.details.groupTestMethods){this.renderTestMethod()}}if(this.state.config.variantFilter){if(!this.variantFilterRendered){this.variantFilterRendered=true;this.makeVariantFilter()}}}async makeVariantFilter(){n({joinWith:this.state.config.variantFilter.opts.joinWith,emptyLabel:"+Add Filter",holder:this.dom.variantFilterHolder,vocab:{terms:this.state.config.variantFilter.terms},callback:async t=>{await this.app.dispatch({type:"plot_edit",id:this.id,config:{variantFilter:{filter:t}}})}}).main(this.state.config.variantFilter.filter)}render1group(t){const e=this.state.config.snvindel.details.groups[t];const i=t==0?this.dom.group1div:this.dom.group2div;let n=false;if(e?.type=="filter"&&this.filterUI[t]){n=true}else{delete this.filterUI[t];i.selectAll("*").remove()}if(!e){h(this,t,i);return}if(!n)m(this,t,i);if(e.type=="info")return c(this,t,e,i);if(e.type=="population")return f(this,t,e,i);if(e.type=="filter")return u(this,t,e,i);throw"render1group: unknown group type"}renderTestMethod(){const t=this.dom.testMethodDiv;t.selectAll("*").remove();const[e,i]=this.state.config.snvindel.details.groups;if(!i){return}t.append("span").text("TEST METHOD").style("font-size",".8em").style("opacity",.6);if(e.type!="filter"&&i.type!="filter"){t.append("span").style("padding-left","10px").text("Value difference").style("opacity",.6);return}const n=t.append("select").style("margin-left","10px").on("change",(()=>{this.app.dispatch({type:"plot_edit",id:this.id,config:{snvindel:{details:{groupTestMethodsIdx:n.property("selectedIndex")}}}})}));for(const t of this.state.config.snvindel.details.groupTestMethods){n.append("option").text(t.name)}n.property("selectedIndex",this.state.config.snvindel.details.groupTestMethodsIdx)}initUI(t){this.dom={};const e=[];if(t.config.snvindel?.details){e.push({label:"Variant values",active:true})}if(t.config.variantFilter){e.push({label:"Variant filter"})}if(t.config.ld){e.push({label:"LD map"})}if(e.length==0){return}const n=new a({holder:this.opts.holder.append("div").style("border-bottom","solid 1px #ccc").style("padding-bottom","20px"),tabs:e});n.main();{const t=e[0].contentHolder.append("div");this.dom.group1div=t.append("div");this.dom.group2div=t.append("div");this.dom.testMethodDiv=t.append("div").style("margin-top","3px")}let s=1;if(t.config.variantFilter){this.dom.variantFilterHolder=e[s++].contentHolder.append("div").style("white-space","normal")}if(t.config.ld){const n=structuredClone(t.config.ld.tracks);const o=e[s++].contentHolder.append("div");o.append("div").text("Show/hide linkage disequilibrium map from an ancestry:").style("opacity",.5);for(const[t,e]of n.entries()){i({labeltext:e.name,checked:e.shown,holder:o,callback:()=>{n[t].shown=!n[t].shown;this.app.dispatch({type:"plot_edit",id:this.id,config:{ld:{tracks:n}}})}})}}}}const d=e(p);function c(t,e,i,n){let s=i.infoKey;if(t.state.config.variantFilter?.terms){const e=t.state.config.variantFilter.terms.find((t=>t.id==i.infoKey));if(e&&e.name)s=e.name}n.append("span").text(s).attr("class","sja_menuoption").on("click",(n=>{if(t.state.config.variantFilter.terms.length<=1){return}l.clear().showunder(n.target).d.append("div").text("Replace with:").style("margin","10px").style("font-size",".8em");for(const n of t.state.config.variantFilter.terms){if(n.type!="integer"&&n.type!="float")continue;if(n.id==i.infoKey)continue;l.d.append("div").text(n.name).attr("class","sja_menuoption").on("click",(()=>{l.hide();const i=structuredClone(t.state.config.snvindel.details.groups);i[e].infoKey=n.id;i[e].type="info";t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:i}}}})}))}}));n.append("span").text("PER-VARIANT NUMERICAL VALUES").style("font-size",".7em").style("opacity",.6).style("margin-left","10px")}function f(t,e,i,n){n.append("span").text(i.label).attr("class","sja_menuoption").on("click",(n=>{if(t.state.config.snvindel.populations.length<=1){return}l.clear().showunder(n.target).d.append("div").text("Replace with:").style("margin","10px").style("font-size",".8em");for(const n of t.state.config.snvindel.populations){if(n.key==i.key)continue;l.d.append("div").text(n.label).attr("class","sja_menuoption").on("click",(()=>{l.hide();const i=structuredClone(t.state.config.snvindel.details.groups);i[e]=structuredClone(n);i[e].type="population";t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:i}}}})}))}}));n.append("span").text(`POPULATION${i.adjust_race?", RACE ADJUSTED":""}`).style("font-size",".7em").style("margin-left","10px").style("opacity",.6);if(t._partialData?.pop2average){if(t.state.config.snvindel.details.groups[e==1?0:1]?.type=="filter"){const s=[];for(const e in t._partialData.pop2average){const i=t._partialData.pop2average[e];if(!Number.isFinite(i))continue;s.push(`${e}=${i.toFixed(2)}`)}if(s.length){n.append("span").text(`Group ${e==1?1:2} average admixture: ${s.join(", ")}`).style("margin-left","20px").attr("class","sja_clbtext").on("click",(t=>{l.clear().showunder(t.target).d.append("div").style("margin","10px").style("width","500px").html(`These are average admixture coefficients based on current Group ${e==1?1:2} samples.\n\t\t\t\t\t\tThey are used to adjust variant allele counts of matching ancestries from <span class=sja_menuoption style="padding:2px 5px">${i.label}</span>,\n\t\t\t\t\t\tso that the adjusted allele counts can be compared against Group ${e==1?1:2} allele counts.\n\t\t\t\t\t\tThis allows to account for ancestry composition difference between the two groups.\n\t\t\t\t\t\t`)}))}}}}async function u(t,e,i,s){if(!t.filterUI[e]){t.filterUI[e]=await n({holder:s,vocab:t.app.opts.state.vocab,emptyLabel:"Entire cohort",termdbConfig:t.state.termdbConfig,callback:async i=>{const n=JSON.parse(JSON.stringify(t.state.config.snvindel.details.groups));n[e].filter=i;t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:n}}}})}})}t.filterUI[e].main(g(t,i));s.select(".sjpp-gb-filter-count").remove();const o=t._partialData?.groupSampleCounts?.[e];if(Number.isInteger(o)){s.append("span").attr("class","sjpp-gb-filter-count").style("margin-left","10px").style("opacity",.5).style("font-size",".9em").text("n="+o)}}function g(t,e){const i=structuredClone(t.state.filter||{type:"tvslst",in:true,join:"",lst:[]});const n=structuredClone(e.filter);n.tag="filterUiRoot";i.lst.push(n);i.join="and";return i}function h(t,e,i){i.append("div").style("display","inline-block").text("Create Group 2").attr("class","sja_clbtext").style("margin","10px").on("click",(i=>{l.showunder(i.target).clear();y(t,e,l.d)}))}function m(t,e,i){i.append("div").style("display","inline-block").text("Group "+(e+1)).attr("class","sja_menuoption").style("margin-right","10px").on("click",(i=>{l.showunder(i.target).clear();if(e==0){y(t,0,l.d);return}l.d.append("div").text("Change").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{y(t,1,l.clear().d)}));l.d.append("div").text("Delete").attr("class","sja_menuoption").style("border-radius","0px").on("click",(()=>{l.hide();const e=[t.state.config.snvindel.details.groups[0]];t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:{groups:e}}}})}))}))}function y(t,e,i){const n={holder:i.append("div").style("margin","5px"),tabs:t.state.config.snvindel.details.groupTypes.map((t=>({label:t.name}))),tabsPosition:"vertical",linePosition:"right"};new a(n).main();for(const[i,s]of t.state.config.snvindel.details.groupTypes.entries()){const o=n.tabs[i];o.contentHolder.style("margin","10px");if(s.type=="info"){if(!t.state.config.variantFilter?.terms)throw"looking for snvindel info fields but self.state.config.variantFilter.terms[] missing";for(const i of t.state.config.variantFilter.terms){if(i.type!="integer"&&i.type!="float")continue;o.contentHolder.append("div").text(i.name).attr("class","sja_menuoption").on("click",(()=>{l.hide();const n={type:"info",infoKey:i.id};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}))}continue}if(s.type=="population"){if(!t.state.config.snvindel.populations)throw"state.config.snvindel.populations missing";for(const i of t.state.config.snvindel.populations){o.contentHolder.append("div").text(i.label).attr("class","sja_menuoption").on("click",(()=>{l.hide();const n={type:"population",key:i.key,label:i.label,allowto_adjust_race:i.allowto_adjust_race,adjust_race:i.adjust_race};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}))}continue}if(s.type=="filter"){const i={holder:o.contentHolder,vocabApi:t.app.vocabApi,state:{termfilter:{filter:t.state.filter}},tree:{click_term2select_tvs:i=>{l.hide();const n={type:"filter",filter:{in:true,join:"",type:"tvslst",lst:[{type:"tvs",tvs:i}]}};const s=v(t,n,e);b(t,s);t.app.dispatch({type:"plot_edit",id:t.id,config:{snvindel:{details:s}}})}}};const n=x(t);if(Number.isInteger(n))i.state.activeCohort=n;r(i);continue}throw"unknown group type"}}function v(t,e,i){const n={groups:JSON.parse(JSON.stringify(t.state.config.snvindel.details.groups))};n.groups[i]=e;return n}function b(t,e){if(e.groups.length!=2)return;const[i,n]=e.groups;if(i.type=="info"||n.type=="info"||i.type=="population"&&n.type=="population"){const i=t.state.config.snvindel.details.groupTestMethods.findIndex((t=>t.name=="Allele frequency difference"));if(i==-1)throw"Allele frequency difference not found";e.groupTestMethodsIdx=i}}function x(t){if(!t.state.config.filter)return;const e=o(t.config.filter,"cohortFilter");if(e&&t.state.termdbConfig.selectCohort){const i=e.tvs.values.map((t=>t.key)).sort().join(",");const n=t.state.termdbConfig.selectCohort.values.findIndex((t=>t.keys.sort().join(",")==i));if(n==-1)throw"subcohort key is not in selectCohort.values[]";return n}}export{d as gbControlsInit,b as mayUpdateGroupTestMethodsIdx};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./tslib.es6-c3c2d88f.js";import{t,z as s,d as a,a as n}from"./app-3d14cbe4.js";class r{constructor(e,t={}){this.tsInstance=e;this.opts=t;this.dom={menuWrapper:t.holder||e.dom.tip.d.append("div")};this.minGrpNum=3;this.defaultMaxGrpNum=5;this.data={groups:[],values:[]};o(this)}processInput(e){const a=new Set([0,1,2]);const n=structuredClone(e);if(this.tsInstance.q.type=="values"){for(const e of Object.values(n)){if(e.uncomputable)return;if((e===null||e===void 0?void 0:e.group)>this.defaultMaxGrpNum)t(`The maximum number of groups is ${this.defaultMaxGrpNum}. The group index for value = ${e.label} is ${e.group}`);const s={key:e.key,label:e.label,group:e.group||1,samplecount:e.samplecount};this.data.values.push(s);a.add(s.group)}}else if(this.tsInstance.q.type=="custom-groupset"){this.formatCustomset(a,n)}else if(this.tsInstance.q.type=="predefined-groupset"){if(this.tsInstance.term.type=="geneVariant"){const e=this.tsInstance.q;const t=this.tsInstance.term;const r=n.find((t=>t.dt==e.dt));const o=r.classes.byOrigin?r.classes.byOrigin[e.origin]:r.classes;const i=t.groupsetting.lst[e.predefined_groupset_idx];let p=0;for(const e of i.groups){const t=e;const n=t.uncomputable?0:++p;this.data.groups.push({currentIdx:n,type:"values",name:n===0?"Excluded categories":t.name});a.delete(n);for(const[e,a]of Object.entries(o)){if(t.values.some((t=>t.key==e))){this.data.values.push({key:e,label:s[e].label,group:n,samplecount:a})}}}}}else{throw"q.type not recognized"}if(this.data.values.length==0)t(`Missing values`);this.data.values.forEach((e=>{var t;if(!e.samplecount){if(this.tsInstance.term.type=="geneVariant"){const t=this.tsInstance.q;const s=this.tsInstance.category2samplecount.find((e=>e.dt==t.dt));const a=s.classes.byOrigin&&t.origin?s.classes.byOrigin[t.origin]:s.classes;e.samplecount=a[e.key]}else{e.samplecount=this.tsInstance.category2samplecount?(t=this.tsInstance.category2samplecount.find((t=>t.key==e.key)))===null||t===void 0?void 0:t.samplecount:"n/a"}}}));for(const e of Array.from(a)){this.data.groups.push({currentIdx:e,type:"values",name:e===0?`Excluded categories`:`Group ${e.toString()}`})}this.data.groups.sort(((e,t)=>e.currentIdx-t.currentIdx))}formatCustomset(e,t){var a;const n=this.tsInstance.q;for(const[t,s]of n.customset.groups.entries()){const n=s;if(n.uncomputable)return;this.data.groups.push({currentIdx:Number(t)+1,type:"values",name:n.name});e.delete(t+1);for(const e of n.values){const s=e.label?e.label:this.tsInstance.category2samplecount?(a=this.tsInstance.category2samplecount.find((t=>t.key==e.key)))===null||a===void 0?void 0:a.label:e.key;this.data.values.push({key:e.key,label:s,group:t+1,samplecount:null})}}if(this.tsInstance.term.type=="geneVariant"){const e=this.tsInstance.q;const t=this.tsInstance.category2samplecount.find((t=>t.dt==e.dt));const a=t.classes.byOrigin&&e.origin?t.classes.byOrigin[e.origin]:t.classes;if(this.data.values.length!==Object.keys(a).length){for(const[e,t]of Object.entries(a)){if(!this.data.values.some((t=>t.key==e))){this.data.values.push({key:e,label:s[e].label,group:0,samplecount:t})}}}}else if(this.data.values.length!==Object.keys(t).length&&this.tsInstance.q.type!="predefined-groupset"&&this.tsInstance.q.type!="custom-groupset"){Object.entries(t).filter((e=>!this.data.values.some((t=>t.key==e[1].label)))).forEach((e=>{var t;this.data.values.push({key:e[0],label:e[1].label,group:0,samplecount:this.tsInstance.category2samplecount?(t=this.tsInstance.category2samplecount.find((t=>t.key==e[0])))===null||t===void 0?void 0:t.samplecount:"n/a"})}))}else if(this.data.values.length!==this.tsInstance.category2samplecount.length){this.tsInstance.category2samplecount.filter((e=>!this.data.values.some((t=>t.key==e.key)))).forEach((e=>{this.data.values.push({key:e.key,label:e.label,group:0,samplecount:e.samplecount})}))}}main(){return e(this,void 0,void 0,(function*(){try{const e=this.tsInstance.q.type=="custom-groupset"&&this.tsInstance.q.customset||this.tsInstance.category2samplecount||this.tsInstance.term.values;this.processInput(e);yield this.initGrpSetUI()}catch(e){if(e.stack)console.log(e.stack);else t(e)}}))}}function o(t){t.initGrpSetUI=function(){return e(this,void 0,void 0,(function*(){t.maxGrpNum=t.data.values.length>=t.defaultMaxGrpNum?t.defaultMaxGrpNum+1:t.data.values.length;t.tsInstance.dom.tip.showunder(t.tsInstance.dom.holder.node());yield t.showDraggables()}))};t.showDraggables=function(){return e(this,void 0,void 0,(function*(){t.dom.actionDiv=t.dom.menuWrapper.append("div").attr("class","sjpp-group-actions").style("padding","10px");const s=t.data.groups.filter((e=>e.name.startsWith("New Group")));let n=s.length>0?s[s.length-1].name.replace(`New Group `,""):0;t.dom.actionDiv.addGroup=t.dom.actionDiv.append("button").classed("sjpp_grpset_addGrp_btn",true).style("display","inline-block").style("text-align","center").style("cursor",t.tsInstance.q.mode=="binary"?"default":"pointer").property("disabled",t.tsInstance.q.mode=="binary"?true:t.data.groups.length>=t.maxGrpNum).text("Add Group").on("click",(()=>e(this,void 0,void 0,(function*(){n++;t.data.groups.push({currentIdx:t.data.groups.length,type:"values",name:`New Group${n!=1?` ${n}`:""}`});const e=t.data.groups[t.data.groups.length-1];yield o(e);yield t.update()}))));t.dom.actionDiv.applyBtn=t.dom.actionDiv.append("button").classed("sjpp_grpset_apply_btn",true).style("display",t.opts.hideApply?"none":"inline-block").style("text-align","center").style("float","right").style("cursor","pointer").text("Apply").on("click",(()=>{t.processDraggables();t.tsInstance.dom.tip.hide();t.tsInstance.runCallback()}));t.dom.menuWrapper.append("div").style("margin","5px 2px").style("font-size",".6em").style("color","#999").text("Drag-and-drop to assign categories to groups.");t.dom.grpsWrapper=t.dom.menuWrapper.append("div").classed("sjpp-groups-wrapper",true);t.dom.includedWrapper=t.dom.grpsWrapper.append("div").classed("sjpp-groups-include",true).classed("sjpp-group-edit-div",true).style("display","flex");t.dom.excludedWrapper=t.dom.grpsWrapper.append("div").classed("sjpp-groups-exclude",true).classed("sjpp-group-edit-div",true).classed("sjpp-drag-drop-div",true);yield o(t.data.groups.find((e=>e.currentIdx===0)));yield t.dom.includedWrapper.selectAll("div").data(t.data.groups.filter((e=>e.currentIdx!=0))).enter().append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top").each((function(t){return e(this,void 0,void 0,(function*(){t.wrapper=a(this);yield o(t)}))}))}))};t.processDraggables=()=>{if(!s&&!r)return;const e={groups:[]};for(const s of t.data.groups){if(s.currentIdx===0)continue;const a=t.data.values.filter((e=>e.group==s.currentIdx)).map((e=>({key:e.key,label:e.label})));if(a.length==0)continue;e.groups.push({name:s.name,type:s.type,values:a})}t.tsInstance.q.type="custom-groupset";t.tsInstance.q.customset=e;delete t.tsInstance.q.predefined_groupset_idx};let s;let r;function o(a){return e(this,void 0,void 0,(function*(){const r=a.currentIdx===0?t.dom.excludedWrapper:t.dom.includedWrapper;a.type="values";if(!a.wrapper)a.wrapper=r.append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top");a.wrapper.on("drop",(function(e){const n=s.node().__data__;if(n.group===a.currentIdx)return;a.draggables.node().appendChild(s.node());s.style("transition-property","background-color").style("transition-duration","1s").style("background-color","#fff2cc");t.data.values.find((e=>e===n)).group=a.currentIdx;e.preventDefault();e.stopPropagation()})).on("dragleave",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color","#fff")})).on("dragend",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color","#fff")})).on("dragover",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color",a.currentIdx!==s.node().__data__.group?"#cfe2f3":"#fff")})).on("dragenter",(function(e){if(s.node().__data__.group===a.currentIdx)return;e.preventDefault();e.stopPropagation();a.wrapper.style("background-color",a.currentIdx!==s.node().__data__.group?"#cfe2f3":"#fff")}));if(a.currentIdx===0){a.title=a.wrapper.append("div").style("display","inline-block").style("padding","3px 10px").style("text-align","left").style("font-size",".6em").style("text-transform","uppercase").style("color","#999").text(a.name)}else{a.dragActionDiv=a.wrapper.append("div").style("display","flex").style("align-items","center");a.input=a.dragActionDiv.append("input").attr("size",12).attr("value",a.name).style("margin","5px").style("margin-left","8px").style("display","inline-block").style("font-size",".8em").style("width","87%").on("keyup",(()=>{n.debounce(t.onKeyUp(a),1e3)}));a.inputMessage=a.dragActionDiv.append("span").style("color","red").style("font-size","0.7em").text("NOT unique").style("display","none");a.destroyBtn=a.dragActionDiv.append("button").style("display","inline-block").style("padding","0px 4px").property("disabled",t.data.groups.length<=t.minGrpNum).text("x").on("click",(()=>e(this,void 0,void 0,(function*(){if(t.data.groups.length<=t.minGrpNum)return;t.data.groups=t.data.groups.filter((e=>e.currentIdx!=a.currentIdx));yield t.removeGroup(a)}))))}a.draggables=a.wrapper.append("div").classed("sjpp-drag-list-div",true);yield t.addItems(a)}))}t.onKeyUp=function(s){return e(this,void 0,void 0,(function*(){if(s.name==s.input.node().value)return;r=true;const e=t.data.groups.filter((e=>e.name==s.input.node().value));if(e.length>0){t.dom.actionDiv.applyBtn.property("disabled",true);s.inputMessage.style("display","block")}else{t.dom.actionDiv.applyBtn.property("disabled",false);s.inputMessage.style("display","none");t.data.groups[s.currentIdx].name=s.input.node().value.trim()}}))};t.addItems=function(n){return e(this,void 0,void 0,(function*(){yield n.draggables.selectAll("div").data(t.data.values.filter((e=>e.group==n.currentIdx))).enter().append("div").attr("draggable","true").attr("class","sjpp-drag-item").style("margin","3px").style("cursor","default").style("padding","3px 10px").style("border-radius","5px").style("color",(e=>e.samplecount==0?"#777":"black")).text((e=>`${e.label}${e.samplecount!==undefined?` (n=${e.samplecount})`:""}`)).style("background-color","#eee").each((function(){const e=a(this).on("dragstart",(function(){e.style("background-color","#fff2cc");s=e})).on("mouseenter",(function(){e.style("background-color","#fff2cc")})).on("mouseleave",(function(){e.style("background-color","#eee")}))}))}))};t.removeGroup=function(s){return e(this,void 0,void 0,(function*(){const e=s.wrapper.selectAll(".sjpp-drag-item").nodes();if(e.length===0)s.wrapper.remove();else{s.input.remove();s.destroyBtn.remove();s.wrapper.remove();for(const e of t.data.values){if(e.group==s.currentIdx)e.group=0}}yield t.update()}))};t.update=function(){return e(this,void 0,void 0,(function*(){t.dom.actionDiv.addGroup.property("disabled",t.data.groups.length>=t.maxGrpNum);for(const[e,s]of t.data.groups.entries()){if(e===0)continue;if(s.currentIdx!=e){t.data.values.filter((e=>e.group==s.currentIdx)).forEach((t=>t.group=e));s.currentIdx=e}}t.dom.grpsWrapper.selectAll(".sjpp-drag-drop-div").data(t.data.groups).each((s=>e(this,void 0,void 0,(function*(){if(s.currentIdx!==0){s.input.node().value=s.name;s.destroyBtn.property("disabled",t.data.groups.length<=t.minGrpNum)}yield t.addItems(s)}))))}))}}export{r as GroupSettingMethods};
|
|
1
|
+
import{_ as e}from"./tslib.es6-c3c2d88f.js";import{t,z as s,d as a,a as n}from"./app-488d9fd6.js";class r{constructor(e,t={}){this.tsInstance=e;this.opts=t;this.dom={menuWrapper:t.holder||e.dom.tip.d.append("div")};this.minGrpNum=3;this.defaultMaxGrpNum=5;this.data={groups:[],values:[]};o(this)}processInput(e){const a=new Set([0,1,2]);const n=structuredClone(e);if(this.tsInstance.q.type=="values"){for(const e of Object.values(n)){if(e.uncomputable)return;if((e===null||e===void 0?void 0:e.group)>this.defaultMaxGrpNum)t(`The maximum number of groups is ${this.defaultMaxGrpNum}. The group index for value = ${e.label} is ${e.group}`);const s={key:e.key,label:e.label,group:e.group||1,samplecount:e.samplecount};this.data.values.push(s);a.add(s.group)}}else if(this.tsInstance.q.type=="custom-groupset"){this.formatCustomset(a,n)}else if(this.tsInstance.q.type=="predefined-groupset"){if(this.tsInstance.term.type=="geneVariant"){const e=this.tsInstance.q;const t=this.tsInstance.term;const r=n.find((t=>t.dt==e.dt));const o=r.classes.byOrigin?r.classes.byOrigin[e.origin]:r.classes;const i=t.groupsetting.lst[e.predefined_groupset_idx];let p=0;for(const e of i.groups){const t=e;const n=t.uncomputable?0:++p;this.data.groups.push({currentIdx:n,type:"values",name:n===0?"Excluded categories":t.name});a.delete(n);for(const[e,a]of Object.entries(o)){if(t.values.some((t=>t.key==e))){this.data.values.push({key:e,label:s[e].label,group:n,samplecount:a})}}}}}else{throw"q.type not recognized"}if(this.data.values.length==0)t(`Missing values`);this.data.values.forEach((e=>{var t;if(!e.samplecount){if(this.tsInstance.term.type=="geneVariant"){const t=this.tsInstance.q;const s=this.tsInstance.category2samplecount.find((e=>e.dt==t.dt));const a=s.classes.byOrigin&&t.origin?s.classes.byOrigin[t.origin]:s.classes;e.samplecount=a[e.key]}else{e.samplecount=this.tsInstance.category2samplecount?(t=this.tsInstance.category2samplecount.find((t=>t.key==e.key)))===null||t===void 0?void 0:t.samplecount:"n/a"}}}));for(const e of Array.from(a)){this.data.groups.push({currentIdx:e,type:"values",name:e===0?`Excluded categories`:`Group ${e.toString()}`})}this.data.groups.sort(((e,t)=>e.currentIdx-t.currentIdx))}formatCustomset(e,t){var a;const n=this.tsInstance.q;for(const[t,s]of n.customset.groups.entries()){const n=s;if(n.uncomputable)return;this.data.groups.push({currentIdx:Number(t)+1,type:"values",name:n.name});e.delete(t+1);for(const e of n.values){const s=e.label?e.label:this.tsInstance.category2samplecount?(a=this.tsInstance.category2samplecount.find((t=>t.key==e.key)))===null||a===void 0?void 0:a.label:e.key;this.data.values.push({key:e.key,label:s,group:t+1,samplecount:null})}}if(this.tsInstance.term.type=="geneVariant"){const e=this.tsInstance.q;const t=this.tsInstance.category2samplecount.find((t=>t.dt==e.dt));const a=t.classes.byOrigin&&e.origin?t.classes.byOrigin[e.origin]:t.classes;if(this.data.values.length!==Object.keys(a).length){for(const[e,t]of Object.entries(a)){if(!this.data.values.some((t=>t.key==e))){this.data.values.push({key:e,label:s[e].label,group:0,samplecount:t})}}}}else if(this.data.values.length!==Object.keys(t).length&&this.tsInstance.q.type!="predefined-groupset"&&this.tsInstance.q.type!="custom-groupset"){Object.entries(t).filter((e=>!this.data.values.some((t=>t.key==e[1].label)))).forEach((e=>{var t;this.data.values.push({key:e[0],label:e[1].label,group:0,samplecount:this.tsInstance.category2samplecount?(t=this.tsInstance.category2samplecount.find((t=>t.key==e[0])))===null||t===void 0?void 0:t.samplecount:"n/a"})}))}else if(this.data.values.length!==this.tsInstance.category2samplecount.length){this.tsInstance.category2samplecount.filter((e=>!this.data.values.some((t=>t.key==e.key)))).forEach((e=>{this.data.values.push({key:e.key,label:e.label,group:0,samplecount:e.samplecount})}))}}main(){return e(this,void 0,void 0,(function*(){try{const e=this.tsInstance.q.type=="custom-groupset"&&this.tsInstance.q.customset||this.tsInstance.category2samplecount||this.tsInstance.term.values;this.processInput(e);yield this.initGrpSetUI()}catch(e){if(e.stack)console.log(e.stack);else t(e)}}))}}function o(t){t.initGrpSetUI=function(){return e(this,void 0,void 0,(function*(){t.maxGrpNum=t.data.values.length>=t.defaultMaxGrpNum?t.defaultMaxGrpNum+1:t.data.values.length;t.tsInstance.dom.tip.showunder(t.tsInstance.dom.holder.node());yield t.showDraggables()}))};t.showDraggables=function(){return e(this,void 0,void 0,(function*(){t.dom.actionDiv=t.dom.menuWrapper.append("div").attr("class","sjpp-group-actions").style("padding","10px");const s=t.data.groups.filter((e=>e.name.startsWith("New Group")));let n=s.length>0?s[s.length-1].name.replace(`New Group `,""):0;t.dom.actionDiv.addGroup=t.dom.actionDiv.append("button").classed("sjpp_grpset_addGrp_btn",true).style("display","inline-block").style("text-align","center").style("cursor",t.tsInstance.q.mode=="binary"?"default":"pointer").property("disabled",t.tsInstance.q.mode=="binary"?true:t.data.groups.length>=t.maxGrpNum).text("Add Group").on("click",(()=>e(this,void 0,void 0,(function*(){n++;t.data.groups.push({currentIdx:t.data.groups.length,type:"values",name:`New Group${n!=1?` ${n}`:""}`});const e=t.data.groups[t.data.groups.length-1];yield o(e);yield t.update()}))));t.dom.actionDiv.applyBtn=t.dom.actionDiv.append("button").classed("sjpp_grpset_apply_btn",true).style("display",t.opts.hideApply?"none":"inline-block").style("text-align","center").style("float","right").style("cursor","pointer").text("Apply").on("click",(()=>{t.processDraggables();t.tsInstance.dom.tip.hide();t.tsInstance.runCallback()}));t.dom.menuWrapper.append("div").style("margin","5px 2px").style("font-size",".6em").style("color","#999").text("Drag-and-drop to assign categories to groups.");t.dom.grpsWrapper=t.dom.menuWrapper.append("div").classed("sjpp-groups-wrapper",true);t.dom.includedWrapper=t.dom.grpsWrapper.append("div").classed("sjpp-groups-include",true).classed("sjpp-group-edit-div",true).style("display","flex");t.dom.excludedWrapper=t.dom.grpsWrapper.append("div").classed("sjpp-groups-exclude",true).classed("sjpp-group-edit-div",true).classed("sjpp-drag-drop-div",true);yield o(t.data.groups.find((e=>e.currentIdx===0)));yield t.dom.includedWrapper.selectAll("div").data(t.data.groups.filter((e=>e.currentIdx!=0))).enter().append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top").each((function(t){return e(this,void 0,void 0,(function*(){t.wrapper=a(this);yield o(t)}))}))}))};t.processDraggables=()=>{if(!s&&!r)return;const e={groups:[]};for(const s of t.data.groups){if(s.currentIdx===0)continue;const a=t.data.values.filter((e=>e.group==s.currentIdx)).map((e=>({key:e.key,label:e.label})));if(a.length==0)continue;e.groups.push({name:s.name,type:s.type,values:a})}t.tsInstance.q.type="custom-groupset";t.tsInstance.q.customset=e;delete t.tsInstance.q.predefined_groupset_idx};let s;let r;function o(a){return e(this,void 0,void 0,(function*(){const r=a.currentIdx===0?t.dom.excludedWrapper:t.dom.includedWrapper;a.type="values";if(!a.wrapper)a.wrapper=r.append("div").classed("sjpp-drag-drop-div",true).style("border","1px solid #efefef").style("display","block").style("padding","10px").style("vertical-align","top");a.wrapper.on("drop",(function(e){const n=s.node().__data__;if(n.group===a.currentIdx)return;a.draggables.node().appendChild(s.node());s.style("transition-property","background-color").style("transition-duration","1s").style("background-color","#fff2cc");t.data.values.find((e=>e===n)).group=a.currentIdx;e.preventDefault();e.stopPropagation()})).on("dragleave",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color","#fff")})).on("dragend",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color","#fff")})).on("dragover",(function(e){e.preventDefault();e.stopPropagation();a.wrapper.style("background-color",a.currentIdx!==s.node().__data__.group?"#cfe2f3":"#fff")})).on("dragenter",(function(e){if(s.node().__data__.group===a.currentIdx)return;e.preventDefault();e.stopPropagation();a.wrapper.style("background-color",a.currentIdx!==s.node().__data__.group?"#cfe2f3":"#fff")}));if(a.currentIdx===0){a.title=a.wrapper.append("div").style("display","inline-block").style("padding","3px 10px").style("text-align","left").style("font-size",".6em").style("text-transform","uppercase").style("color","#999").text(a.name)}else{a.dragActionDiv=a.wrapper.append("div").style("display","flex").style("align-items","center");a.input=a.dragActionDiv.append("input").attr("size",12).attr("value",a.name).style("margin","5px").style("margin-left","8px").style("display","inline-block").style("font-size",".8em").style("width","87%").on("keyup",(()=>{n.debounce(t.onKeyUp(a),1e3)}));a.inputMessage=a.dragActionDiv.append("span").style("color","red").style("font-size","0.7em").text("NOT unique").style("display","none");a.destroyBtn=a.dragActionDiv.append("button").style("display","inline-block").style("padding","0px 4px").property("disabled",t.data.groups.length<=t.minGrpNum).text("x").on("click",(()=>e(this,void 0,void 0,(function*(){if(t.data.groups.length<=t.minGrpNum)return;t.data.groups=t.data.groups.filter((e=>e.currentIdx!=a.currentIdx));yield t.removeGroup(a)}))))}a.draggables=a.wrapper.append("div").classed("sjpp-drag-list-div",true);yield t.addItems(a)}))}t.onKeyUp=function(s){return e(this,void 0,void 0,(function*(){if(s.name==s.input.node().value)return;r=true;const e=t.data.groups.filter((e=>e.name==s.input.node().value));if(e.length>0){t.dom.actionDiv.applyBtn.property("disabled",true);s.inputMessage.style("display","block")}else{t.dom.actionDiv.applyBtn.property("disabled",false);s.inputMessage.style("display","none");t.data.groups[s.currentIdx].name=s.input.node().value.trim()}}))};t.addItems=function(n){return e(this,void 0,void 0,(function*(){yield n.draggables.selectAll("div").data(t.data.values.filter((e=>e.group==n.currentIdx))).enter().append("div").attr("draggable","true").attr("class","sjpp-drag-item").style("margin","3px").style("cursor","default").style("padding","3px 10px").style("border-radius","5px").style("color",(e=>e.samplecount==0?"#777":"black")).text((e=>`${e.label}${e.samplecount!==undefined?` (n=${e.samplecount})`:""}`)).style("background-color","#eee").each((function(){const e=a(this).on("dragstart",(function(){e.style("background-color","#fff2cc");s=e})).on("mouseenter",(function(){e.style("background-color","#fff2cc")})).on("mouseleave",(function(){e.style("background-color","#eee")}))}))}))};t.removeGroup=function(s){return e(this,void 0,void 0,(function*(){const e=s.wrapper.selectAll(".sjpp-drag-item").nodes();if(e.length===0)s.wrapper.remove();else{s.input.remove();s.destroyBtn.remove();s.wrapper.remove();for(const e of t.data.values){if(e.group==s.currentIdx)e.group=0}}yield t.update()}))};t.update=function(){return e(this,void 0,void 0,(function*(){t.dom.actionDiv.addGroup.property("disabled",t.data.groups.length>=t.maxGrpNum);for(const[e,s]of t.data.groups.entries()){if(e===0)continue;if(s.currentIdx!=e){t.data.values.filter((e=>e.group==s.currentIdx)).forEach((t=>t.group=e));s.currentIdx=e}}t.dom.grpsWrapper.selectAll(".sjpp-drag-drop-div").data(t.data.groups).each((s=>e(this,void 0,void 0,(function*(){if(s.currentIdx!==0){s.input.node().value=s.name;s.destroyBtn.property("disabled",t.data.groups.length<=t.minGrpNum)}yield t.addItems(s)}))))}))}}export{r as GroupSettingMethods};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./table-
|
|
1
|
+
import{r as e}from"./table-10183501.js";import{M as t,P as s,h as a,D as l,b as i}from"./app-488d9fd6.js";import{controlsInit as o}from"./controls-f4648f7f.js";import"./tslib.es6-c3c2d88f.js";import"./controls.btns-26bb6ef1.js";import"./controls.config-9870bdea.js";import"./termsetting-c12f1c69.js";import"path";new t;const n=[{label:"Pathway name"},{label:"enrichment score"},{label:"normalized enrichment score"},{label:"Geneset size"},{label:"pvalue"},{label:"sidak"},{label:"FDR"},{label:"Leading edge"}];class r{constructor(){this.type="gsea"}async init(e){e.plots.find((e=>e.id===this.id));const t=this.opts.holder.append("div").style("display","inline-block");const s=this.opts.holder.append("div").style("display","inline-block").style("margin-left","50px");const a=s.append("div").style("display","inline-block");const l=s.append("div").style("display","inline-block").style("vertical-align","top").style("margin-top","50px");const i=this.opts.holder.append("div").style("margin-left","50px");this.dom={holder:a,header:this.opts.header,controlsDiv:t,detailsDiv:l,tableDiv:i}}async setControls(){this.dom.controlsDiv.selectAll("*").remove();const e=[{label:"P-value filter cutoff (linear scale)",type:"number",chartType:"gsea",settingsKey:"pvalue",title:"P-value significance",min:0,max:1},{label:"P-value filter type",type:"radio",chartType:"gsea",settingsKey:"adjusted_original_pvalue",title:"Toggle between original and adjusted pvalues for volcano plot",options:[{label:"adjusted",value:"adjusted"},{label:"original",value:"original"}]}];const t={label:"Gene set group",type:"dropdown",chartType:"gsea",settingsKey:"pathway",title:"Display table showing original and adjusted pvalues corresponding to each significant pathway",boxLabel:"",options:[{label:"BP: subset of GO",value:"BP: subset of GO"},{label:"MF: subset of GO",value:"MF: subset of GO"},{label:"CC: subset of GO",value:"CC: subset of GO"},{label:"WikiPathways subset of CP",value:"WikiPathways subset of CP"},{label:"REACTOME subset of CP",value:"REACTOME subset of CP"},{label:"H: hallmark gene sets",value:"H: hallmark gene sets"}]};if(!this.settings.pathway){t.options.unshift({label:"-",value:"-"});this.settings.pathway="-"}e.push(t);this.components={controls:await o({app:this.app,id:this.id,holder:this.dom.controlsDiv,inputs:e})};this.components.controls.on("downloadClick.gsea",(()=>{downloadTable(this.table_rows,this.table_cols)}))}getState(e){const t=e.plots.find((e=>e.id===this.id));if(!t)throw`No plot with id='${this.id}' found`;return{config:t}}async main(){this.config=structuredClone(this.state.config);this.settings=this.config.settings.gsea;await this.setControls();if(this.dom.header)this.dom.header.style("opacity",.6).style("padding-left","10px").style("font-size","0.75em").text("GENE SET ENRICHMENT ANALYSIS");d(this)}}async function d(t){if(t.settings.pathway!="-"){t.dom.detailsDiv.selectAll("*").remove();t.dom.holder.selectAll("*").remove();t.dom.tableDiv.selectAll("*").remove();t.config.gsea_params.geneSetGroup=t.settings.pathway;const s=t.dom.detailsDiv.append("div").text("Loading...");let a;try{a=await f(t.config.gsea_params);s.remove();if(a.error){throw a.error}}catch(e){alert("Error: "+e);return}const i=l({holder:t.dom.detailsDiv});const[o,r]=i.addRow();r.style("text-align","center").style("font-size","0.8em").style("opacity","0.8").text("COUNT");const d=[{label:"Gene sets analyzed",values:Object.keys(a.data).length}];for(const e of d){const[t,s]=i.addRow();t.text(e.label);s.style("text-align","end").text(e.values)}t.gsea_table_rows=[];for(const e of Object.keys(a.data)){const s=a.data[e];if(t.settings.adjusted_original_pvalue=="adjusted"&&t.settings.pvalue>=s.fdr){let a;if(s.es){a=s.es.toPrecision(4)}else{a=s.es}let l;if(s.nes){l=s.nes.toPrecision(4)}else{l=s.nes}let i;if(s.pval){i=s.pval.toPrecision(4)}else{i=s.pval}let o;if(s.sidak){o=s.sidak.toPrecision(4)}else{o=s.sidak}let n;if(s.fdr){n=s.fdr.toPrecision(4)}else{n=s.fdr}t.gsea_table_rows.push([{value:e},{value:a},{value:l},{value:s.geneset_size},{value:i},{value:o},{value:n},{value:s.leading_edge}])}else if(t.settings.adjusted_original_pvalue=="original"&&t.settings.pvalue>=s.pval){let a;if(s.pval){a=s.pval.toPrecision(4)}else{a=s.pval}let l;if(s.sidak){l=s.sidak.toPrecision(4)}else{l=s.sidak}let i;if(s.fdr){i=s.fdr.toPrecision(4)}else{i=s.fdr}t.gsea_table_rows.push([{value:e},{value:s.es.toPrecision(4)},{value:s.nes.toPrecision(4)},{value:s.geneset_size},{value:a},{value:l},{value:i},{value:s.leading_edge}])}}t.dom.tableDiv.selectAll("*").remove();const c=t.dom.tableDiv.append("div");e({columns:n,rows:t.gsea_table_rows,div:c,showLines:true,maxHeight:"30vh",singleMode:true,resize:true,noButtonCallback:async e=>{const s={genome:t.config.gsea_params.genome,geneset_name:t.gsea_table_rows[e][0].value,genes:t.config.gsea_params.genes,fold_change:t.config.gsea_params.fold_change,geneSetGroup:t.config.gsea_params.geneSetGroup,pickle_file:a.pickle_file};const l=t.dom.holder;l.selectAll("*").remove();const i=l.append("div").text("Loading...");const o=await f(s);i.remove();if(o.error)throw o.error;const n=URL.createObjectURL(o);const r=600;const d=400;l.append("img").attr("width",r).attr("height",d).attr("src",n)}})}}async function c(e,t){try{const t={settings:{gsea:{pvalue:1,adjusted_original_pvalue:"adjusted",pathway:undefined},controls:{isOpen:true}}};return s(t,e)}catch(e){throw`${e} [gsea getPlotConfig()]`}}const p=a(r);const g=p;function u(e,t){t.prepPlot({config:{chartType:"gsea"}})}async function f(e){return await i("genesetEnrichment",{body:e})}export{g as componentInit,c as getPlotConfig,p as gseaInit,u as makeChartBtnMenu};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as e,g as t}from"./matrix-bc0ccf83.js";import{F as s,b as r,I as i,bM as l,h as n,P as a}from"./app-488d9fd6.js";import{T as o,k as c,f as d}from"./termsetting-c12f1c69.js";import{r as h}from"./table-10183501.js";import{g as m,c as u}from"./FilterRxComp-cb149666.js";import"./pointer-c7475677.js";import"./controls.config-9870bdea.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./checkbox-96437f4d.js";import"./recover-edcdde38.js";import"./FilterStateless-bdd1416d.js";import"./app-5aa892cb.js";import"./termInfo-4d954045.js";import"./toggleButtons-bb9aca2f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"./genesearch-d8780180.js";import"./rehydrateFilter-12d118cb.js";import"./radiobutton-09bff425.js";import"./axis-747c801e.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./filter-67d51c09.js";import"./svg.legend-21629769.js";function p(e,t){let s;let r;if(t===undefined){for(const t of e){if(t!=null){if(s===undefined){if(t>=t)s=r=t}else{if(s>t)s=t;if(r<t)r=t}}}}else{let i=-1;for(let l of e){if((l=t(l,++i,e))!=null){if(s===undefined){if(l>=l)s=r=l}else{if(s>l)s=l;if(r<l)r=l}}}}return[s,r]}function g(){if(!this.dom.header)return;switch(this.config.dataType){case o.GENE_EXPRESSION:this.dom.header.text("Gene Expression Clustering");break;case o.METABOLITE_INTENSITY:this.dom.header.text("Metabolite Intensity Clustering");break;default:throw`dataType '${this.config.dataType}' not recognized`}}function f(e){const t=this.dimensions;const s=this.config.settings.matrix;t.seriesXoffset;const r=window.devicePixelRatio<=1?1:window.devicePixelRatio;const i=this.hierClusterData.clustering;const l=i.row;const n=i.col;const a=this.settings.matrix.clusterRowh,{xDendrogramHeight:o,yDendrogramHeight:c}=this.settings.hierCluster,d=this.dimensions.dx;if(e!=="left"){if(!this.settings.hierCluster.clusterSamples){this.dom.topDendrogram.selectAll("*").remove()}else{const e=C(n.height,c);const t=c+1e-7;const i=d*n.inputOrder.length;const l=new OffscreenCanvas(i*r,t*r);const a=l.getContext("2d");a.scale(r,r);a.imageSmoothingEnabled=false;a.imageSmoothingQuality="high";a.strokeStyle="black";const h=new Map;for(const[t,s]of n.merge.entries()){const r=t+1;const i=[];const l=[];let o,m,u,p;if(s.n1<0){const[e,t]=y(s.n1,n.inputOrder,n.order);o=d*(t+.5);u=c;i.push({name:e})}else{if(!h.has(s.n1))throw"pair.n1 is positive but not seen before";const e=h.get(s.n1);o=e.x;u=e.y;i.push(...e.children);l.push(s.n1)}if(s.n2<0){const[e,t]=y(s.n2,n.inputOrder,n.order);m=d*(t+.5);p=c;i.push({name:e})}else{if(!h.has(s.n2))throw"pair.n1 is positive but not seen before";const e=h.get(s.n2);m=e.x;p=e.y;i.push(...e.children);l.push(s.n2)}const g=c-n.height[t].height*e;const f=this.clickedClusterIds?.includes(r);a.strokeStyle=f?"red":"black";a.beginPath();a.moveTo(o,u);a.lineTo(o,g);a.lineTo(m,g);a.lineTo(m,p);a.stroke();a.closePath();h.set(r,{x:(o+m)/2,y:g,children:i,childrenClusters:l,clusterPosition:{x1:o,x2:m,y1:u,y2:p,clusterY:g}})}this.renderImage(this.dom.topDendrogram,l,i,t,o+.5*d,s.margin.top+s.scrollHeight);n.mergedClusters=h}}if(e!=="top"){const e=C(l.height,o);const t=o+1e-7;const i=a*l.inputOrder.length;const n=new OffscreenCanvas(t*r,i*r);const d=n.getContext("2d");d.scale(r,r);d.imageSmoothingEnabled=false;d.imageSmoothingQuality="high";d.strokeStyle="black";const h=new Map;for(const[t,s]of l.merge.entries()){const r=t+1;const i=[];const n=[];let c,m,u,p;if(s.n1<0){const[e,t]=y(s.n1,l.inputOrder,l.order);u=a*(t+.5);c=o;i.push({name:e})}else{if(!h.has(s.n1))throw"pair.n1 is positive but not seen before";const e=h.get(s.n1);c=e.x;u=e.y;i.push(...e.children);n.push(s.n1)}if(s.n2<0){const[e,t]=y(s.n2,l.inputOrder,l.order);p=a*(t+.5);m=o;i.push({name:e})}else{if(!h.has(s.n2))throw"pair.n1 is positive but not seen before";const e=h.get(s.n2);m=e.x;p=e.y;i.push(...e.children);n.push(s.n2)}const g=o-l.height[t].height*e;const f=this.clickedLeftClusterIds?.includes(r);d.strokeStyle=f?"red":"black";d.beginPath();d.moveTo(c,u);d.lineTo(g,u);d.lineTo(g,p);d.lineTo(m,p);d.stroke();d.closePath();h.set(r,{x:g,y:(u+p)/2,children:i,childrenClusters:n,clusterPosition:{x1:c,x2:m,y1:u,y2:p,clusterX:g}})}const m=this.termOrder.find((e=>e.grp.type=="hierCluster"||e.grp.name==this.hcTermGroup.name));const u=m.grpIndex*s.rowgspace+m.prevGrpTotalIndex*s.rowh+m.totalHtAdjustments+s.margin.top+s.scrollHeight+c;this.renderImage(this.dom.leftDendrogram,n,t,i,0,u);l.mergedClusters=h}}async function b(e,t,s,r,i,l){const n=new FileReader;n.addEventListener("load",(()=>{e.selectAll("*").remove();e.append("image").attr("x",i+.033).attr("y",l+.033).attr("xlink:href",n.result).attr("width",s).attr("height",r)}),false);const a=await t.convertToBlob({quality:1});n.readAsDataURL(a)}function C(e,t){let s=e[0].height;for(const t of e)s=Math.max(s,t.height);return t/s}function y(e,t,s){const r=t[-e-1];if(!r)throw"minus not in inputOrder";const i=s.findIndex((e=>e.name==r));if(i==-1)throw"name not found in hc$order";return[r,i]}var x=Object.freeze({__proto__:null,maySetSandboxHeader:g,plotDendrogramHclust:f,renderImage:b});const w=[{label:"Average",value:"average",title:`Cluster by average value`},{label:`Complete`,value:"complete",title:`Use the complete clustering method`},{label:`Single`,value:"single",title:`Use the single clustering method`},{label:`Ward.D`,value:"ward.D",title:`Use the ward.D clustering method`},{label:`Ward.D2`,value:"ward.D2",title:`Use the ward.D2 clustering method`},{label:`Mcquitty`,value:"mcquitty",title:`Use the Mcquity clustering method`}];const v=[{label:"Euclidean",value:"euclidean",title:`Calculate distance using euclidean method`},{label:"Maximum",value:"maximum",title:`Maximum distance between two components of x and y`},{label:"Manhattan",value:"manhattan",title:`Calculate distance using the absolute distance between the two vectors`},{label:"Canberra",value:"canberra",title:`Calculate distance using Canberra method`}];function S(e,t){const s=t?this.hierClusterData.clustering.row.mergedClusters:this.hierClusterData.clustering.col.mergedClusters;const r=s.get(e).childrenClusters||[];let i=[...r];for(const e of r){i=i.concat(this.getAllChildrenClusterIds(e,t))}return i}function T(e,t){const s=this.settings.matrix.controlLabels;const r=this.opts.allow2selectSamples;const i=[{label:"Zoom in",callback:()=>{this.triggerZoomBranch(this,e)}},{label:`List ${e.length} ${s.samples}`,callback:()=>this.showTable4selectedSamples(e)}];if(r){i.push({label:r.buttonText||`Select ${s.samples}`,callback:async()=>{r.callback({samples:e.map((e=>({"cases.case_id":e}))),source:r.defaultSelectionLabel||`Selected ${s.samples} from gene expression`})}})}else{if(this.state.nav&&this.state.nav.header_mode!=="hidden"){const t=e.map((e=>this.sampleOrder.find((t=>t.row.sample==e)).row));for(const e of t){if(!e.sampleId)e.sampleId=e.sample}i.push({label:"Add to a group",callback:async()=>{const e={name:"Group",items:t};this.addGroup(e)}})}}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(i).enter().append("div").attr("class","sja_menuoption").style("border-radius","0px").html((e=>e.label)).attr("data-testid",(e=>`hierCluster_dendro_menu_${e.label.split(" ")[0]}`)).on("click",(e=>{this.dom.dendroClickMenu.d.selectAll("*").remove();e.target.__data__.callback()}));this.dom.dendroClickMenu.show(t.clientX,t.clientY)}function I(e,t){const s=this.config.dataType=="geneExpression"?"genes":this.config.dataType=="metaboliteIntensity"?"metabolites":"items";const r=[{label:`List ${e.length} ${s}`,callback:()=>this.showTable4selectedRows(e,s)}];if(this.app.opts.genome.termdbs){r.push({label:`Gene set overrepresentation analysis`,disabled:e.length<15||e.length>500,callback:()=>{if(e.length<15||e.length>500)return;this.dom.dendroClickMenu.d.selectAll("*").remove();const t=e;const s={sample_genes:t.toString(),genome:this.app.vocabApi.opts.state.vocab.genome};const r={chartType:"geneORA",geneORAparams:s};this.app.dispatch({type:"plot_create",config:r})}})}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(r).enter().append("div").attr("class",(e=>e.disabled?"sja_menuoption_not_interactive":"sja_menuoption")).style("opacity",(e=>e.disabled?.5:1)).style("border-radius","0px").html((e=>e.disabled?`${e.label} <span style="font-size: 0.6em; display: block; margin-left: 2px; margin-top: 2px;">Only available when 15 - 500 genes selected</span>`:e.label)).attr("data-testid",(e=>`hierCluster_dendro_menu_${e.label.split(" ")[0]}`)).on("click",(e=>{if(e.target.__data__?.callback)e.target.__data__.callback()}));this.dom.dendroClickMenu.show(t.clientX,t.clientY)}function k(e,t){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea}const s={startCell:e.serieses[0].cells.find((e=>e.sample==t[0])),endCell:e.serieses[0].cells.find((e=>e.sample==t[t.length-1]))};const r=e.settings.matrix;const i=e.dimensions;const l=s.startCell.totalIndex<s.endCell.totalIndex?s.startCell:s.endCell;const n=Math.floor(l.totalIndex+Math.abs(s.endCell.totalIndex-s.startCell.totalIndex)/2);const a=e.sampleOrder[n];const o=e.computedSettings.colw||e.settings.matrix.colw;const c=r.colwMax/o;const d=r.colwMin/o;const h=Math.max(1,r.zoomLevel*i.mainw/Math.max(s.endCell.x-s.startCell.x,2*i.colw)*.7);const m=Math.max(d,Math.min(h,c));e.app.dispatch({type:"plot_edit",id:e.id,config:{settings:{matrix:{zoomLevel:m,zoomCenterPct:.5,zoomIndex:n,zoomGrpIndex:a.grpIndex}}}});e.resetInteractions()}function D(e){const t=this.state.termdbConfig.urlTemplates;const s=t?.sample?e.map((e=>[{value:this.hierClusterData.bySampleId[e].label,url:`${t.sample.base}${e}`}])):e.map((e=>[{value:this.hierClusterData.bySampleId[e].label}]));const r=[{label:this.settings.matrix.controlLabels.Sample}];h({rows:s,columns:r,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}function _(e,t){const s=this.state.termdbConfig.urlTemplates;const r=s?.gene&&this.config.dataType=="geneExpression"&&this.hierClusterData.byTermId?e.map((e=>this.hierClusterData.byTermId[e]?.gencodeId?[{value:e,url:`${s.gene.base}${this.hierClusterData.byTermId[e].gencodeId}`}]:[{value:e}])):e.map((e=>[{value:e}]));const i=[{label:t}];h({rows:r,columns:i,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}async function M(e){e.plotId=this.id;await this.app.vocabApi.addGroup(e);this.dom.tip.hide()}function O(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const s=this.dimensions.xMin;const r=e.clientX-this.imgBox.x-e.target.clientLeft+s;for(const[e,s]of this.hierClusterData.clustering.col.mergedClusters){const{x1:i,y1:l,x2:n,y2:a,clusterY:o}=s.clusterPosition;if(i<=r&&r<=n&&o-5<t&&t<o+5||o<=t&&t<=l&&i-5<r&&r<i+5||o<=t&&t<=a&&n-5<r&&r<n+5){return e}}}function j(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const s=this.dimensions.xMin;const r=e.clientX-this.imgBox.x-e.target.clientLeft+s;for(const[e,s]of this.hierClusterData.clustering.row.mergedClusters){const{x1:i,y1:l,x2:n,y2:a,clusterX:o}=s.clusterPosition;if(l<=t&&t<=a&&o-5<r&&r<o+5||o<=r&&r<=i&&l-5<t&&t<l+5||o<=r&&r<=n&&a-5<t&&t<a+5){return e}}}function R(e,t){const s=this.config.settings.matrix.controlLabels;const r=`Cluster ${s.Samples}`;e.append("button").datum({label:`Clustering`,rows:[{label:r,title:`Option to enable ${s.samples} clustering, instead of enable ${s.samples} sorting.`,type:"checkbox",chartType:"hierCluster",settingsKey:"clusterSamples",boxLabel:`Cluster ${s.samples} (Disable ${s.samples} sorting)`,callback:e=>{if(!e){this.config.settings.hierCluster.yDendrogramHeight=0;this.config.settings.hierCluster.clusterSamples=false}else{this.config.divideBy=null;this.config.settings.hierCluster.yDendrogramHeight=200;this.config.settings.hierCluster.clusterSamples=true}this.app.dispatch({type:"plot_edit",id:this.id,config:this.config})}},{label:`Clustering Method`,title:`Sets which clustering method to use`,type:"radio",chartType:"hierCluster",settingsKey:"clusterMethod",options:w},{label:`Distance Method`,title:`Sets which distance method to use for clustering`,type:"radio",chartType:"hierCluster",settingsKey:"distanceMethod",options:v},{label:`Column Dendrogram Height`,title:`The maximum height to render the column dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"yDendrogramHeight",getDisplayStyle(e){return e.settings.hierCluster.clusterSamples?"table-row":"none"}},{label:`Row Dendrogram Width`,title:`The maximum width to render the row dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"xDendrogramHeight"},{label:`z-score Cap`,title:`Cap the z-score scale to not exceed this absolute value`,type:"number",chartType:"hierCluster",settingsKey:"zScoreCap"},{label:`Color Scheme`,title:`Sets which color scheme to use`,type:"radio",chartType:"hierCluster",settingsKey:"colorScale",options:[{label:"Blue-White-Red",value:"blueWhiteRed",title:`color scheme Blue-White-Red`},{label:"Green-Black-Red",value:"greenBlackRed",title:`color scheme Green-Black-Red`},{label:"Blue-Yellow-Red",value:"blueYellowRed",title:`color scheme Blue-Yellow-Red`},{label:"Green-White-Red",value:"greenWhiteRed",title:`color scheme Green-White-Red`},{label:"Blue-Black-Yellow",value:"blueBlackYellow",title:`color scheme Blue-Black-Yellow`}]}]}).html((e=>e.label)).style("margin","2px 0").on("click",t)}var A=Object.freeze({__proto__:null,getAllChildrenClusterIds:S,addSelectedSamplesOptions:T,addSelectedRowsOptions:I,triggerZoomBranch:k,showTable4selectedSamples:D,showTable4selectedRows:_,addGroup:M,getClusterFromTopDendrogram:O,getClusterFromLeftDendrogram:j,setClusteringBtn:R});class B extends e{constructor(e){super(e);this.type="hierCluster";this.chartType="hierCluster"}async init(e){await super.init(e);this.maySetSandboxHeader();this.hcClipId=this.seriesClipId+"-hc";this.dom.hcClipRect=this.dom.svg.select("defs").append("clipPath").attr("id",this.hcClipId).attr("clipPathUnits","userSpaceOnUse").append("rect").attr("display","block");this.dom.topDendrogram=this.dom.svg.insert("g","g").attr("clip-path",`url(#${this.hcClipId})`).append("g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_top_dendrogram").on("click",(e=>{const t=this.getClusterFromTopDendrogram(e);if(t){this.clickedClusterIds=this.getAllChildrenClusterIds(t);this.clickedClusterIds.push(t);const s=this.hierClusterData.clustering.col.mergedClusters.get(t);const r=s.children.map((e=>e.name));this.addSelectedSamplesOptions(r,e)}else{delete this.clickedClusterIds}if(this.clickedLeftClusterIds){delete this.clickedLeftClusterIds;this.plotDendrogramHclust()}else this.plotDendrogramHclust("top")}));this.dom.leftDendrogram=this.dom.svg.insert("g","g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_left_dendrogram").on("click",(e=>{const t=this.getClusterFromLeftDendrogram(e);if(t){this.clickedLeftClusterIds=this.getAllChildrenClusterIds(t,true);this.clickedLeftClusterIds.push(t);const s=this.hierClusterData.clustering.row.mergedClusters.get(t);const r=s.children.map((e=>e.name));this.addSelectedRowsOptions(r,e)}else{delete this.clickedLeftClusterIds}if(this.clickedClusterIds){delete this.clickedClusterIds;this.plotDendrogramHclust()}else this.plotDendrogramHclust("left")}))}async setHierClusterData(e={}){this.prevServerData=this.currServerData;const t=new AbortController;const[r,i]=await this.api.detectStale((()=>this.requestData({signal:t.signal})),{abortCtrl:t});if(i)throw`stale sequenceId`;if(r.error)throw r.error;this.currServerData=structuredClone(r);if(!s(this.prevServerData,this.currServerData)){delete this.clickedClusterIds}const l=this.settings.hierCluster;const n=this.hcTermGroup.lst;if(!r.clustering){if(r.gene){throw`Cannot do clustering: data is only available for 1 gene (${r.gene}). Try again by adding more genes.`}}this.hierClusterData=r;const a=this.hierClusterData.clustering;this.setHierColorScale(a);this.settings.hierCluster.zScoreCap;const o={};for(const[e,t]of a.col.order.entries()){o[t.name]={sample:t.name};for(const[s,r]of a.row.order.entries()){const i=n.find((e=>e.term.name===r.name));const d=a.matrix[s][e];o[t.name][i.$id]={key:i.term.name,values:[{sample:t.name,dt:c[this.state.config.dataType],label:l.termGroupName,value:d}]}}}this.hcTermNameOrder=a.row.order.map((e=>e.name));this.hcTermSorter=(e,t)=>{const s=this.hcTermNameOrder.indexOf(e.tw.term.name);const r=this.hcTermNameOrder.indexOf(t.tw.term.name);if(s==-1&&r==-1)return 0;if(s==-1)return 1;if(r==-1)return-1;return s-r};this.hcSampleNameOrder=a.col.order.map((e=>e.name));this.hcSampleSorter=(e,t)=>{const s=this.hcSampleNameOrder.indexOf(e.sample);const r=this.hcSampleNameOrder.indexOf(t.sample);if(s==-1&&r==-1)return 0;if(s==-1)return 1;if(r==-1)return-1;return s-r};const d={};for(const e of n){if(r.byTermId[e.term.name])d[e.$id]=r.byTermId[e.term.name]}this.hierClusterSamples={refs:{byTermId:d,bySampleId:r.bySampleId},lst:a.col.order.map((e=>o[e.name])),samples:o}}async requestData({signal:e}){const t=this.currRequestOpts?.hierCluster||this.getHCRequestBody(this.state);const s=await r("termdb/cluster",{body:t,signal:e});return s}getHCRequestBody(e){this.hcTermGroup=this.config.termgroups.find((e=>e.type=="hierCluster"))||this.termOrder?.find((e=>e.grp.type=="hierCluster"))?.grp;const t=e.config.settings.hierCluster;const s={type:"tvslst",in:true,join:"and",lst:e.config.legendValueFilter.lst.filter((e=>!e.tvs.legendFilterType))};const r=this.getClusterRowTermsAsParameter();if(!r.length)throw"no data";if(!w.find((e=>e.value==t.clusterMethod)))throw"Invalid cluster method";if(!v.find((e=>e.value==t.distanceMethod)))throw"Invalid distance method";const i={genome:e.vocab.genome,dslabel:e.vocab.dslabel,dataType:e.config.dataType,clusterMethod:t.clusterMethod,distanceMethod:t.distanceMethod,terms:r,filter:m(u([e.filter,s])),filter0:e.filter0};return i}combineData(){if(!this.hierClusterSamples)return;const e=this.data;const t={};const s=[];for(const r in this.hierClusterSamples.samples){const i=this.hierClusterSamples.samples[r];t[r]=i;s.push(i);if(r in e.samples)Object.assign(i,e.samples[r]);const l=this.hierClusterSamples.refs.bySampleId[r]||{};if(!i._ref_)i._ref_=l;else Object.assign(i._ref_,l)}const r=this.hierClusterSamples.refs.byTermId;for(const t of Object.keys(r)){e.refs.byTermId[t]=Object.assign({},e.refs.byTermId[t]||{},r[t])}this.data={samples:t,lst:s,refs:e.refs}}setHierColorScale(e){const t=this.settings.hierCluster;const s=i(l[t.colorScale].domain,l[t.colorScale].range).clamp(true);const r=[];for(const t of e.matrix){r.push(...p(t))}const n=Math.min(t.zScoreCap,Math.max(...p(r).map(Math.abs)));const[a,o]=[-n,n];this.hierClusterValues={scale:s,min:a,max:o}}getValueColor(e){const t=this.settings.hierCluster.zScoreCap;return this.hierClusterValues.scale((e- -t)/(t*2))}getClusterRowTermsAsParameter(){const e=[...this.hcTermGroup.lst.map((e=>e.term))];e.sort(((e,t)=>e.name<t.name?-1:1));return e}}for(const e of[x,A]){for(const t in e)B.prototype[t]=e[t]}const H=n(B);const $=H;async function L(e={},s){e.chartType="hierCluster";const r=await t(e,s);delete r.genes;r.settings.hierCluster={dataType:r.dataType,clusterSamples:true,clusterMethod:"average",distanceMethod:"euclidean",zScoreCap:5,xDendrogramHeight:100,yDendrogramHeight:200,colorScale:"blueWhiteRed"};const i=s.vocabApi.termdbConfig.hierCluster||{};a(r.settings.hierCluster,i.settings,e.settings?.hierCluster||{});{const e=r.settings.hierCluster.colorScale;if(!e)throw"colorScale missing"}r.settings.matrix.collabelpos="top";const l=r.settings.hierCluster.termGroupName;const n=r.termgroups.find((e=>e.type=="hierCluster"||e.name==l))||{name:l};n.type="hierCluster";if(!n.lst?.length){if(!Array.isArray(e.terms))throw"opts.terms[] not array (may show geneset edit ui)";const t=[];for(const i of e.terms){const e=i.term?i:{term:i};if(!e.term.type){if(r.dataType==o.GENE_EXPRESSION||r.dataType==o.METABOLITE_INTENSITY){e.term.type=r.dataType}else{throw`term type missing and cannot be assigned by dataType`}}else if(!["geneExpression","metaboliteIntensity","float"].includes(e.term.type)){throw"term type not supported in hierCluster"}else if(r.dataType&&e.term.type!==r.dataType){throw`cannot have term type ${e.term.type} in ${r.dataType} term group`}t.push(d(e,s.vocabApi))}n.lst=await Promise.all(t);if(r.termgroups.indexOf(n)==-1)r.termgroups.unshift(n)}r.settings.matrix.maxSample=1e5;return r}export{B as HierCluster,$ as componentInit,L as getPlotConfig,H as hierClusterInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e,r as t}from"./app-
|
|
1
|
+
import{d as e,r as t}from"./app-488d9fd6.js";function l(l,n={settings:{},handlers:{}},i){function s(e,t={}){const s=n.settings;if(!t.div)l.selectAll("*").remove();if(e.every((e=>Array.isArray(e)))){for(let t=0;t<e.length;t++){const l=i.select(`.pp-sbar-div:nth-child(${t+1})`);o(e[t],s,l)}}else if(e.every((e=>typeof e=="object"))){o(e,s,t.div||l)}else{throw"render() only takes an array of objects or an array of arrays"}}function o(e,t,l){l.selectAll(".pp-sbar-div-oneLegend").remove();l.append("div").attr("class","pp-sbar-div-oneLegend").attr("data-testid","pp-sbar-div-oneLegend").style("width",t.mainWidth||"").style("text-align",e.legendTextAlign||t.legendTextAlign||(t.legendOrientation=="vertical"?"left":"center")).style("display",t.legendOrientation=="grid"?"grid":"").style("grid-template-rows",t.legendOrientation=="grid"?"auto auto":"").style("gap",t.legendOrientation=="grid"?"10px":"").selectAll("div").data(e).enter().append("div").each(a);if(t.legendChartSide=="right"){setTimeout((()=>{const e=n.dom.container.node().parentNode.getBoundingClientRect();const t=n.dom.container.node().getBoundingClientRect();const l=n.dom.legendDiv.node().getBoundingClientRect();const i=parseFloat(n.dom.legendDiv.style("padding-top"));const s=e.height-t.height+(t.height-l.height+i)/2;if(Math.abs(i-s)<20)return;n.dom.legendDiv.transition().duration(100).style("padding-top",s<0?0:s+"px")}),1200)}}function a(t){const l=n.settings;const i=e(this).style("display",l.legendOrientation=="vertical"||l.legendOrientation=="grid"?"block":"inline-block");if(t.name){if(l.legendChartSide=="right"){i.style("text-align","left");i.append("div").style("font-size",l.legendFontSize).style("font-weight",600).html(t.name);i.append("div").selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-right","5px").each(d)}else{i.style("white-space","nowrap").style("width",l.legendOrientation=="vertical"?"fit-content":null);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("width",t.rowLabelHangLeft?t.rowLabelHangLeft+"px":null).style("margin-left",l.legendOrientation=="vertical"?"15px":null).style("text-align",t.rowLabelHangLeft?"right":null).style("font-weight",600).style("vertical-align","top").html(t.name);i.append("div").style("display",l.legendOrientation=="grid"||l.legendOrientation=="vertical"?"block":"inline-block").style("max-width",1.2*t.rowLabelHangLeft+"px").style("white-space","normal").style("vertical-align","top").selectAll("div").data(t.items).enter().append("div").style("display","inline-block").style("margin-left","15px").each(d)}}else{i.selectAll("div").data(t.items).enter().append("div").style("display",l.legendOrientation=="vertical"?"block":"inline-block").style("margin-left","15px").each(d)}}function d(l){const i=n.settings;const s=e(this);const o=l.fill?l.fill:l.stroke?l.stroke:l.color;s.attr("class","legend-row").classed("sjpp-hidden-legend-item",l.isHidden?true:false).style("display",i.legendOrientation=="vertical"?"block":"inline-block").style("width",i.legendOrientation=="vertical"?"fit-content":null);if(l.svg){s.append("svg").attr("width",l.svgw).attr("height",l.svgh).style("display","inline-block").style("vertical-align","top").style("border",l.border).html((e=>e.svg))}else if(!l.noIcon){const e=l.noEditColor?o:t(o).darker();s.append("div").style("display","inline-block").style("position","relative").style("min-width","12px").style("height","12px").style("top","1px").style("border",l.border?l.border:"1px solid "+e).style("border-radius",l.shape=="circle"?"6px":"").style("background-color",l.shape=="circle"?"":o).style("cursor","isHidden"in l?"pointer":"default").style("color",l.textColor?l.textColor:"#fff").style("font-size","10px").style("vertical-align",l.inset?"top":"").style("padding",l.inset?"0 3px":"").text(l.inset).on("click",n.handlers.legend?.onColorClick)}s.append("div").classed("sjpp-htmlLegend",true).style("display","inline-block").style("margin-left",l.svg?"1px":"3px").style("cursor",l.isHidden?"pointer":"default").style("font-size",i.legendFontSize).style("line-height",i.legendFontSize).style("vertical-align",l.svg?"top":null).style("text-decoration",l.isHidden?"line-through":"none").html(l.text).on("click",n.handlers.legend?.click);if(Object.keys(n.handlers).length){s.on("mouseover",n.handlers.legend.mouseover).on("mouseout",n.handlers.legend.mouseout)}}return s}export{l as h};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as t,h as i}from"./app-
|
|
1
|
+
import{P as t,h as i}from"./app-488d9fd6.js";import{controlsInit as s}from"./controls-f4648f7f.js";import"./controls.btns-26bb6ef1.js";import"./controls.config-9870bdea.js";import"./termsetting-c12f1c69.js";import"./tslib.es6-c3c2d88f.js";import"path";class o{constructor(){this.type="imagePlot"}async init(t){const i=t.plots.find((t=>t.id===this.id));this.getState(t);const s=this.opts.holder.append("div");this.dom={holder:s,controlsHolder:s.append("div").style("display","inline-block"),imageHolder:s.append("div").style("display","inline-block")};this.setControls();const o=await this.app.vocabApi.getSampleImages(i.sample.sampleId);if(o.error)throw o.error;for(const t of o.images){this.dom.imageHolder.append("img").style("padding","10px").attr("src",t.src).attr("width",i.settings.imagePlot.width).attr("height",i.settings.imagePlot.height)}}async setControls(){this.components={controls:await s({app:this.app,id:this.id,holder:this.dom.controlsHolder,inputs:[{label:"Chart width",type:"number",chartType:this.type,settingsKey:"width"},{label:"Chart height",type:"number",chartType:this.type,settingsKey:"height"}]})}}getState(t){const i=t.plots.find((t=>t.id===this.id));if(!i){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:i,termfilter:t.termfilter,vocab:t.vocab}}}async function e(i,s){let o=n();if(i.settings)t(o,i.settings);const e={settings:{controls:{isOpen:false},imagePlot:o}};const a=t(e,i);return a}function n(){return{width:500,height:500}}const a=i(o);const r=a;async function p(t,i,s){const o={holder:i,state:{vocab:t.vocab,plots:[{chartType:"imagePlot",sample:s}]}};const e=await import("./plot.app-fc3608a9.js");await e.appInit(o)}export{r as componentInit,n as getDefaultImagePlotSettings,e as getPlotConfig,a as imagePlotInit,p as renderImagePlot};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as t}from"./drag-
|
|
1
|
+
import{d as t}from"./drag-1b98e43e.js";import{p as e}from"./pointer-c7475677.js";function s(){let s=[],n,o={start:function(){},draw:function(){},end:function(){}};function l(l){const r=l.append("g").attr("class","lasso");const i=r.append("path").attr("class","drawn").style("stroke","#505050").style("stroke-width","2px").style("fill-opacity",".05");const a=r.append("circle").attr("class","origin").style("fill","#3399FF").style("fill-opacity",".5");let c,u;let f=t().on("start",d).on("drag",_).on("end",p);n.call(f);function d(t){u=[];c="";i.attr("d",null);s.nodes().forEach((function(t){t.__lasso.possible=false;t.__lasso.selected=false;t.__lasso.loopSelect=false;let e=t.getBoundingClientRect();t.__lasso.lassoPoint=[Math.round(e.left+e.width/2),Math.round(e.top+e.height/2)]}));o.start(t)}function _(t){let n,l;if(t.sourceEvent.type==="touchmove"){n=t.sourceEvent.touches[0].clientX;l=t.sourceEvent.touches[0].clientY}else{n=t.sourceEvent.clientX;l=t.sourceEvent.clientY}let[r,f]=e(t,this);if(c===""){c=c+"M "+r+" "+f;a.attr("cx",r).attr("cy",f).attr("r",7).attr("display",null)}else{c=c+" L "+r+" "+f}u.push([n,l]);i.attr("d",c);s.nodes().forEach((function(t){t.__lasso.loopSelect=h(t.__lasso.lassoPoint,u);t.__lasso.possible=t.__lasso.loopSelect}));o.draw(t)}function p(t){s.on("mouseover.lasso",null);s.nodes().forEach((function(t){t.__lasso.selected=t.__lasso.possible;t.__lasso.possible=false}));i.attr("d",null);a.attr("display","none");o.end(t)}function h(t,e){let s,n,o,l,r,i=t[0],a=t[1],c=false;for(let t=0,u=e.length-1;t<e.length;u=t++){s=e[t][0];o=e[t][1];n=e[u][0];l=e[u][1];r=o>a!=l>a&&i<(n-s)*(a-o)/(l-o)+s;if(r)c=!c}return c}}l.items=function(t){if(!arguments.length)return s;s=t;const e=s.nodes();e.forEach((function(t){t.__lasso={possible:false,selected:false}}));return l};l.possibleItems=function(){return s.filter((function(){return this.__lasso.possible}))};l.selectedItems=function(){return s.filter((function(){return this.__lasso.selected}))};l.notPossibleItems=function(){return s.filter((function(){return!this.__lasso.possible}))};l.notSelectedItems=function(){return s.filter((function(){return!this.__lasso.selected}))};l.on=function(t,e){if(!arguments.length)return o;if(arguments.length===1)return o[t];const s=["start","draw","end"];if(s.indexOf(t)>-1){o[t]=e}return l};l.targetArea=function(t){if(!arguments.length)return n;n=t;return l};return l}export{s as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t}from"./tslib.es6-c3c2d88f.js";import{appInit as o}from"./plot.app-fc3608a9.js";import{ai as e,z as s}from"./app-488d9fd6.js";import"./recover-edcdde38.js";import"./termsetting-c12f1c69.js";import"path";import"./FilterRxComp-cb149666.js";import"./table-10183501.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"./FilterStateless-bdd1416d.js";import"./app-5aa892cb.js";import"./termInfo-4d954045.js";import"./toggleButtons-bb9aca2f.js";import"./genesearch-d8780180.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";function n(s,n,i){return t(this,void 0,void 0,(function*(){const[t,c]=yield r(s);if(c===null||c===void 0?void 0:c.length){return e(c,i)}const p={holder:i,vocabApi:{vocab:{terms:[]},main:()=>{},getTermdbConfig:()=>({})},state:{args:{data:t,genome:n},plots:[{chartType:"Disco",subfolder:"disco",extension:"ts"}]}};const u=yield o(p);return u}))}function r(o){return t(this,void 0,void 0,(function*(){if(Array.isArray(o.mlst)){return[o.mlst,null]}const t=[];const e=[];if(o.snvText)i(o.snvText,t,e);if(o.svText)c(o.svText,t,e);if(o.cnvText)p(o.cnvText,t,e);return[t,e]}))}function i(t,o,e){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length!=5){e.push("snv input not equal to 5 columns");continue}let n;try{n={dt:1,chr:t[0],position:Number(t[1]),gene:t[2],mname:t[3],class:u(t[4],e)}}catch(t){e.push(t);continue}o.push(n)}}function c(t,o,e){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length<4||t.length>6){e.push("sv input not equal to 4 or 6 columns");continue}let n;try{const o=t.length;if(o==4){n={dt:2,chrA:t[0],posA:Number(t[1]),chrB:t[2],posB:Number(t[3])}}else{n={dt:2,chrA:t[0],posA:Number(t[1]),geneA:t[2],chrB:t[3],posB:Number(t[4]),geneB:t[5]}}}catch(t){e.push(t);continue}o.push(n)}}function p(t,o,e){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length!=4){e.push("cnv input not equal to 4 columns");continue}let n;try{n={dt:4,chr:t[0],start:Number(t[1]),stop:Number(t[2]),value:Number(t[3])}}catch(t){e.push(t);continue}o.push(n)}}function u(t,o){const e=t.toLowerCase();const n=Object.values(s).find((t=>t.key.toLowerCase()===e||t.label.toLowerCase()===e));if(n){return n.key}else{o.push(`Invalid mutation class: ${t}`)}}export{n as launch};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as t,g as e,d as s}from"./tk-
|
|
1
|
+
import{m as t,g as e,d as s}from"./tk-b96367f7.js";import{T as a}from"./toggleButtons-bb9aca2f.js";import{aN as o}from"./app-488d9fd6.js";import{r as l}from"./table-10183501.js";import{f as n}from"./FilterStateless-bdd1416d.js";import{g as i}from"./FilterRxComp-cb149666.js";import"./termsetting-c12f1c69.js";import{v as r}from"./violinRenderer-24abe5fd.js";import"./block.legend-aa831169.js";import"./vcf-55bf2c83.js";import"./partition-db811f6b.js";import"./arc-3d6751aa.js";import"./constant-426a1483.js";import"./math-2fb199c6.js";import"./axis-747c801e.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./regression.results-31a8884d.js";import"./axisstyle-fac7f76b.js";import"./ColorScale-7a36cc17.js";import"./log-1001ca83.js";import"./block-2f22e7fd.js";import"./checkbox-96437f4d.js";import"./pointer-c7475677.js";import"./shapes-21ebfec4.js";import"./radiobutton-09bff425.js";import"./niceNumLabels-621ef5c3.js";import"./rehydrateFilter-12d118cb.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-06fd21c1.js";import"path";import"./brush-1a123226.js";import"./nodrag-b2866dd8.js";import"./line-264f8f9e.js";import"./basis-3870f5ba.js";function m(e,s,a,o){if(!s.leftlabels.doms.samples){s.leftlabels.doms.samples=t(s,a,o)}if(e.sampleTotalNumber){s.leftlabels.doms.samples.attr("class","sja_clbtext2").style("opacity",1).text(`${e.sampleTotalNumber} sample${e.sampleTotalNumber>1?"s":""}`).attr("data-testid","sjpp_mds3tk_samples_label").on("click",(async t=>{s.menutip.clear().showunder(t.target);await d(s,a);const o=s.menutip.d.append("div").style("margin","10px");g(o,e,s,a)}))}else{s.leftlabels.doms.samples.text("No samples").attr("class","").style("opacity",.5).on("click",null)}}function c(s,a,o,l){if(!a.leftlabels.doms.filterObj){a.leftlabels.doms.filterObj=t(a,o,l)}a.leftlabels.doms.filterObj.text(e(a.filterObj)).on("click",(async t=>{a.menutip.clear().showunder(t.target);const e={holder:a.menutip.d.append("div").style("margin","10px"),vocabApi:a.mds.termdb.vocabApi,callback:t=>{a.filterObj=t;a.load()}};p(e,o);n(e).main(a.filterObj)}))}function p(t,e){if(e.usegm){t.getCategoriesArguments={currentGeneNames:[e.usegm.name]}}else{t.getCategoriesArguments={rglst:structuredClone(e.rglst)}}}async function d(t,e){if(!t.mds.variant2samples.twLst){return}const s=t.menutip.d.append("div").style("margin","10px");const a=s.append("div").text("Loading...");try{const{summary:o}=await t.mds.getSamples({isSummary:true});t.leftlabels.__samples_data=o;a.remove();await f(o,s.append("div").attr("class","sja_mds3samplesummarydiv"),t,e)}catch(t){a.text(`Error: ${t.message||t}`);if(t.stack)console.log(t.stack)}}async function f(t,e,s,o){const l=[];for(const{termid:e,numbycategory:a}of t){l.push({label:s.mds.variant2samples.twLst.find((t=>t.term.id==e)).term.name+(a?`<span style="opacity:.8;font-size:.8em;float:right;margin-left: 5px;">n=${a.length}</span>`:"")})}new a({holder:e,tabsPosition:"vertical",linePosition:"right",tabs:l}).main();for(const[e,a]of t.entries()){const t=l[e].contentHolder.style("padding-left","20px");if(a.numbycategory){t.append("div").text("Click a category to create new track.").style("margin-bottom","10px").style("font-size",".8em").style("opacity",.5);b(a.termid,t,a.numbycategory,s,o);continue}if(a.density_data){if(!Number.isFinite(a.density_data.minvalue)||!Number.isFinite(a.density_data.maxvalue)){t.append("div").text("No data");continue}t.append("div").text("Select a range to create new track.").style("margin-bottom","10px").style("font-size",".8em").style("opacity",.5);y(a.termid,t,a,s,o);continue}throw"unknown summary data"}}function b(t,e,s,a,n){const i=a.mds.variant2samples.twLst.find((e=>e.term.id==t));if(!i)throw"showSummary4oneTerm(): tw not found from variant2samples.twLst";const r=[];for(const[t,e,a]of s){const s=[{value:i.term.values?.[t]?.label||t},{html:a==undefined?"":o(null,{f:e/a,v1:e,v2:a})},{html:e+(a?' <span style="font-size:.8em">/ '+a+"</span>":"")}];r.push(s)}l({div:e,rows:r,columns:[{nowrap:true},{},{}],showHeader:false,singleMode:true,noRadioBtn:true,noButtonCallback:t=>{m(s[t][0])}});async function m(e){a.menutip.clear();const o=await a.mds.termdb.vocabApi.getterm(t);if(!o.values||Object.keys(o.values).length==0){o.values={};for(const t of s){o.values[t[0]]={label:t[0],samplecount:t[1]}}}const l={type:"tvs",tvs:{term:o,values:[{key:e}]}};const i={type:"mds3",dslabel:a.dslabel,filter0:a.filter0,showCloseLeftlabel:true,filterObj:u(a,l),allow2selectSamples:a.allow2selectSamples};const r=n.block_addtk_template(i);n.tk_load(r)}}function u(t,e){if(t.filterObj){return i({type:"tvslst",join:"and",in:true,lst:[t.filterObj,e]})}return{type:"tvslst",in:true,join:"",lst:[e]}}async function y(t,e,s,a,o){const l=await a.mds.termdb.vocabApi.getterm(t);const n=async t=>{a.menutip.clear();const e={type:"tvs",tvs:{term:l,ranges:[{start:t.range_start,stop:t.range_end}]}};const s={type:"mds3",dslabel:a.dslabel,filter0:a.filter0,showCloseLeftlabel:true,filterObj:u(a,e),allow2selectSamples:a.allow2selectSamples};const n=o.block_addtk_template(s);o.tk_load(n)};const i=l.valueConversion?l.valueConversion.scaleFactor:1;const m=new r(e,s.density_data,400,100,10,20,n,i);m.render()}function g(t,e,a,o){t.append("div").text(`List ${e.sampleTotalNumber} sample${e.sampleTotalNumber>1?"s":""}`).attr("class","sja_menuoption sja_mds3_slb_sampletablebtn").on("click",(async()=>{a.menutip.clear();const t=a.menutip.d.append("div").text("Loading...").style("margin","15px");try{const{samples:e}=await a.mds.getSamples();await s(e,{div:a.menutip.d,tk:a,block:o});t.remove()}catch(e){t.text(e.message||e);console.log(e)}}))}export{c as makeSampleFilterLabel,m as makeSampleLabel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aM as t,aL as o,a8 as r}from"./app-488d9fd6.js";import{s as n}from"./legacy-d3-polyfill-bdb2d792.js";function a(a){if(a.geneexpression){if(a.geneexpression.maf){try{a.geneexpression.maf.get=new Function(...a.geneexpression.maf.get)}catch(t){return"invalid Javascript for get() of expression.maf of "+a.label}}}if(a.cohort){if(a.cohort.raw&&a.cohort.tosampleannotation){if(!a.cohort.key4annotation){return"cohort.tosampleannotation in use by .key4annotation missing of "+a.label}if(!a.cohort.annotation){a.cohort.annotation={}}let t=0;for(const o of a.cohort.raw){const r=o[a.cohort.tosampleannotation.samplekey];if(r){const t={};for(const r in o){t[r]=o[r]}a.cohort.annotation[r]=t}else{t++}}if(t)return t+" rows has no sample name from sample annotation of "+a.label;delete a.cohort.tosampleannotation}if(a.cohort.levels){if(a.cohort.raw){const r=t(a.cohort.raw,a.cohort.levels);a.cohort.root=o()(r);a.cohort.root.sum((t=>t.value))}}if(a.cohort.raw){delete a.cohort.raw}a.cohort.suncolor=r(n)}if(a.snvindel_attributes){for(const t of a.snvindel_attributes){if(t.get){try{t.get=new Function(...t.get)}catch(o){return"invalid Javascript for getter of "+JSON.stringify(t)}}else if(t.lst){for(const o of t.lst){if(o.get){try{o.get=new Function(...o.get)}catch(t){return"invalid Javascript for getter of "+JSON.stringify(o)}}}}}}if(a.stratify){if(!Array.isArray(a.stratify)){return"stratify is not an array in "+a.label}for(const t of a.stratify){if(!t.label){return"stratify method lacks label in "+a.label}if(t.bycohort){if(!a.cohort){return"stratify method "+t.label+" using cohort but no cohort in "+a.label}}else{if(!t.attr1){return"stratify method "+t.label+" not using cohort but no attr1 in "+a.label}if(!t.attr1.label){return".attr1.label missing in "+t.label+" in "+a.label}if(!t.attr1.k){return".attr1.k missing in "+t.label+" in "+a.label}}}}if(a.url4variant){for(const t of a.url4variant){t.makelabel=new Function(...t.makelabel);t.makeurl=new Function(...t.makeurl)}}}export{a as validate_oldds};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a1 as t,a2 as n,a3 as e,a4 as r,a5 as i,W as o}from"./app-
|
|
1
|
+
import{a1 as t,a2 as n,a3 as e,a4 as r,a5 as i,W as o}from"./app-488d9fd6.js";function a(t,n){t=t.slice();var e=0,r=t.length-1,i=t[e],o=t[r],a;if(o<i){a=e,e=r,r=a;a=i,i=o,o=a}t[e]=n.floor(i);t[r]=n.ceil(o);return t}function l(t){return Math.log(t)}function f(t){return Math.exp(t)}function u(t){return-Math.log(-t)}function c(t){return-Math.exp(-t)}function s(t){return isFinite(t)?+("1e"+t):t<0?0:t}function h(t){return t===10?s:t===Math.E?Math.exp:n=>Math.pow(t,n)}function M(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}function p(t){return(n,e)=>-t(-n,e)}function g(t){const n=t(l,f);const e=n.domain;let s=10;let g;let m;function d(){g=M(s),m=h(s);if(e()[0]<0){g=p(g),m=p(m);t(u,c)}else{t(l,f)}return n}n.base=function(t){return arguments.length?(s=+t,d()):s};n.domain=function(t){return arguments.length?(e(t),d()):e()};n.ticks=t=>{const n=e();let i=n[0];let o=n[n.length-1];const a=o<i;if(a)[i,o]=[o,i];let l=g(i);let f=g(o);let u;let c;const h=t==null?10:+t;let M=[];if(!(s%1)&&f-l<h){l=Math.floor(l),f=Math.ceil(f);if(i>0)for(;l<=f;++l){for(u=1;u<s;++u){c=l<0?u/m(-l):u*m(l);if(c<i)continue;if(c>o)break;M.push(c)}}else for(;l<=f;++l){for(u=s-1;u>=1;--u){c=l>0?u/m(-l):u*m(l);if(c<i)continue;if(c>o)break;M.push(c)}}if(M.length*2<h)M=r(i,o,h)}else{M=r(l,f,Math.min(f-l,h)).map(m)}return a?M.reverse():M};n.tickFormat=(t,e)=>{if(t==null)t=10;if(e==null)e=s===10?"s":",";if(typeof e!=="function"){if(!(s%1)&&(e=i(e)).precision==null)e.trim=true;e=o(e)}if(t===Infinity)return e;const r=Math.max(1,s*t/n.ticks().length);return t=>{let n=t/m(Math.round(g(t)));if(n*s<s-.5)n*=s;return n<=r?e(t):""}};n.nice=()=>e(a(e(),{floor:t=>m(Math.floor(g(t))),ceil:t=>m(Math.ceil(g(t)))}));return n}function m(){const r=g(t()).domain([1,10]);r.copy=()=>n(r,m()).base(r.base());e.apply(r,arguments);return r}export{m as l,a as n};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./genesearch-
|
|
1
|
+
import{a as e}from"./genesearch-d8780180.js";import{M as o,b as s,e as t}from"./app-488d9fd6.js";import"./tslib.es6-c3c2d88f.js";const n="hg38";const a="GDC";const r=new o({padding:""});async function i(o,i,c){const m=c[n];if(!m)throw n+" missing";const f=i.append("div").style("margin-left","20px");f.append("div").text("To view GDC mutations on a gene, enter one of gene symbol (MYC), alias (c-Myc), GENCODE accession (ENSG00000136997, ENST00000621592), or RefSeq accession (NM_002467).");const d=i.append("div").attr("class","sja_geneSearch4GDCmds3_blockdiv");const p={genome:m,tip:r,row:f,searchOnly:"gene",callback:h,geneSymbol:o.geneSymbol};const g=e(p);let y;if(typeof o.geneSearch4GDCmds3.postRender=="function"){await o.geneSearch4GDCmds3.postRender({tip:r})}async function h(e=true){if(!g.geneSymbol){if(e)throw"geneSymbol missing"}d.selectAll("*").remove();const r=(await s(`genelookup?deep=1&input=${g.geneSymbol}&genome=${n}`)).gmlst;if(!Array.isArray(r)||r.length==0)throw"gmlst is not non-empty array";y=l(g,r);const i={query:y,genome:m,holder:d,gmmode:r.some((e=>e.coding))?"protein":"exon only",hide_dsHandles:o.hide_dsHandles,tklst:o.tracks?o.tracks:[{type:"mds3",dslabel:a,allow2selectSamples:o.allow2selectSamples}]};if(typeof o.geneSearch4GDCmds3.onloadalltk_always=="function"){i.onloadalltk_always=o.geneSearch4GDCmds3.onloadalltk_always}return await t(i)}const u={update:e=>{Object.assign(o,e);o.isoform=y;h(false)}};return u}function l(e,o){if(e.fromWhat){if(o.some((o=>o.isoform.toUpperCase()==e.fromWhat.toUpperCase()))){return e.fromWhat}if(e.fromWhat.toUpperCase().startsWith("ENSG")){for(const e of o){if(e.isdefault&&e.isoform.startsWith("ENST"))return e.isoform}}}const s=o.find((e=>e.isdefault));if(s)return s.isoform;return o[0].isoform}export{i as init};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as e,y as t,b as l}from"./app-
|
|
1
|
+
import{M as e,y as t,b as l}from"./app-488d9fd6.js";import{r as c}from"./table-10183501.js";import{m as n}from"./radiobutton-09bff425.js";import"./tslib.es6-c3c2d88f.js";function o(e){if(e>1e9)return(e/1e9).toFixed(2)+" GB";if(e>1e6)return(e/1e6).toFixed(2)+" MB";if(e>1e3)return(e/1e3).toFixed(2)+" KB";return e+" Bytes"}const u=new e;const r=[{label:"Case"},{label:"Project"},{label:"Samples"},{label:"File Size"}];const s=[{column:"Hugo_Symbol",selected:true},{column:"Entrez_Gene_Id",selected:true},{column:"Center",selected:true},{column:"NCBI_Build",selected:true},{column:"Chromosome",selected:true},{column:"Start_Position",selected:true},{column:"End_Position",selected:true},{column:"Strand",selected:true},{column:"Variant_Classification",selected:true},{column:"Variant_Type",selected:true},{column:"Reference_Allele",selected:true},{column:"Tumor_Seq_Allele1",selected:true},{column:"Tumor_Seq_Allele2",selected:true},{column:"dbSNP_RS",selected:true},{column:"dbSNP_Val_Status",selected:true},{column:"Tumor_Sample_Barcode",selected:true},{column:"Matched_Norm_Sample_Barcode",selected:true},{column:"Match_Norm_Seq_Allele1",selected:true},{column:"Match_Norm_Seq_Allele2",selected:true},{column:"Tumor_Validation_Allele1",selected:true},{column:"Tumor_Validation_Allele2",selected:true},{column:"Match_Norm_Validation_Allele1",selected:true},{column:"Match_Norm_Validation_Allele2",selected:true},{column:"Verification_Status",selected:true},{column:"Validation_Status",selected:true},{column:"Mutation_Status",selected:true},{column:"Sequencing_Phase",selected:true},{column:"Sequence_Source",selected:true},{column:"Validation_Method",selected:true},{column:"Score",selected:true},{column:"BAM_File",selected:true},{column:"Sequencer",selected:true},{column:"Tumor_Sample_UUID",selected:true},{column:"Matched_Norm_Sample_UUID",selected:true},{column:"HGVSc",selected:true},{column:"HGVSp",selected:true},{column:"HGVSp_Short",selected:true},{column:"Transcript_ID",selected:true},{column:"Exon_Number",selected:true},{column:"t_depth",selected:true},{column:"t_ref_count",selected:true},{column:"t_alt_count",selected:true},{column:"n_depth",selected:true},{column:"n_ref_count",selected:true},{column:"n_alt_count",selected:true},{column:"all_effects",selected:true},{column:"Allele",selected:true},{column:"Gene",selected:true},{column:"Feature",selected:true},{column:"Feature_type",selected:true},{column:"One_Consequence",selected:true},{column:"Consequence",selected:true},{column:"cDNA_position",selected:true},{column:"CDS_position",selected:true},{column:"Protein_position",selected:true},{column:"Amino_acids",selected:true},{column:"Codons",selected:true},{column:"Existing_variation",selected:true},{column:"DISTANCE",selected:true},{column:"TRANSCRIPT_STRAND",selected:true},{column:"SYMBOL",selected:true},{column:"SYMBOL_SOURCE",selected:true},{column:"HGNC_ID",selected:true},{column:"BIOTYPE",selected:true},{column:"CANONICAL",selected:true},{column:"CCDS",selected:true},{column:"ENSP",selected:true},{column:"SWISSPROT",selected:true},{column:"TREMBL",selected:true},{column:"UNIPARC",selected:true},{column:"UNIPROT_ISOFORM",selected:true},{column:"RefSeq",selected:true},{column:"MANE",selected:true},{column:"APPRIS",selected:true},{column:"FLAGS",selected:true},{column:"SIFT",selected:true},{column:"PolyPhen",selected:true},{column:"EXON",selected:true},{column:"INTRON",selected:true},{column:"DOMAINS",selected:true},{column:"1000G_AF",selected:true},{column:"1000G_AFR_AF",selected:true},{column:"1000G_AMR_AF",selected:true},{column:"1000G_EAS_AF",selected:true},{column:"1000G_EUR_AF",selected:true},{column:"1000G_SAS_AF",selected:true},{column:"ESP_AA_AF",selected:true},{column:"ESP_EA_AF",selected:true},{column:"gnomAD_AF",selected:true},{column:"gnomAD_AFR_AF",selected:true},{column:"gnomAD_AMR_AF",selected:true},{column:"gnomAD_ASJ_AF",selected:true},{column:"gnomAD_EAS_AF",selected:true},{column:"gnomAD_FIN_AF",selected:true},{column:"gnomAD_NFE_AF",selected:true},{column:"gnomAD_OTH_AF",selected:true},{column:"gnomAD_SAS_AF",selected:true},{column:"MAX_AF",selected:true},{column:"MAX_AF_POPS",selected:true},{column:"gnomAD_non_cancer_AF",selected:true},{column:"gnomAD_non_cancer_AFR_AF",selected:true},{column:"gnomAD_non_cancer_AMI_AF",selected:true},{column:"gnomAD_non_cancer_AMR_AF",selected:true},{column:"gnomAD_non_cancer_ASJ_AF",selected:true},{column:"gnomAD_non_cancer_EAS_AF",selected:true},{column:"gnomAD_non_cancer_FIN_AF",selected:true},{column:"gnomAD_non_cancer_MID_AF",selected:true},{column:"gnomAD_non_cancer_NFE_AF",selected:true},{column:"gnomAD_non_cancer_OTH_AF",selected:true},{column:"gnomAD_non_cancer_SAS_AF",selected:true},{column:"gnomAD_non_cancer_MAX_AF_adj",selected:true},{column:"gnomAD_non_cancer_MAX_AF_POPS_adj",selected:true},{column:"CLIN_SIG",selected:true},{column:"SOMATIC",selected:true},{column:"PUBMED",selected:true},{column:"TRANSCRIPTION_FACTORS",selected:true},{column:"MOTIF_NAME",selected:true},{column:"MOTIF_POS",selected:true},{column:"HIGH_INF_POS",selected:true},{column:"MOTIF_SCORE_CHANGE",selected:true},{column:"miRNA",selected:true},{column:"IMPACT",selected:true},{column:"PICK",selected:true},{column:"VARIANT_CLASS",selected:true},{column:"TSL",selected:true},{column:"HGVS_OFFSET",selected:true},{column:"PHENO",selected:true},{column:"GENE_PHENO",selected:true},{column:"CONTEXT",selected:true},{column:"case_id",selected:true},{column:"GDC_FILTER",selected:true},{column:"COSMIC",selected:true},{column:"hotspot",selected:true},{column:"tumor_bam_uuid",selected:true},{column:"normal_bam_uuid",selected:true},{column:"RNA_Support",selected:true},{column:"RNA_depth",selected:true},{column:"RNA_ref_count",selected:true},{column:"RNA_alt_count",selected:true},{column:"callers",selected:true}];async function d({holder:e,filter0:l,callbacks:c,debugmode:n=false}){try{{const e=new Set;for(const t of s){if(!t.column)throw".column missing from an element";if(e.has(t.column))throw"duplicate column: "+t.column;e.add(t.column)}}o({filter0:l})}catch(l){console.log(l);t(e,l.message||l)}async function o({filter0:t}){e.selectAll("*").remove();const l={errDiv:e.append("div"),controlDiv:e.append("div"),tableDiv:e.append("div"),opts:{filter0:t,experimentalStrategy:"WXS"}};a(l);await m(l);if(typeof c?.postRender=="function"){c.postRender(u)}}const u={update:o};return u}function a(e){const t=e.controlDiv.append("table");{const l=t.append("tr");l.append("td").style("opacity",.7).text("Access");l.append("td").text("Open")}{const o=t.append("tr");o.append("td").style("opacity",.7).text("Workflow Type");o.append("td").text("Aliquot Ensemble Somatic Variant Merging and Masking")}{const r=t.append("tr");r.append("td").style("opacity",.7).text("Experimental Strategy");const d=r.append("td");n({holder:d,options:[{label:"WXS",value:"WXS",checked:e.opts.experimentalStrategy=="WXS"},{label:"Targeted Sequencing",value:"Targeted Sequencing",checked:e.opts.experimentalStrategy=="Targeted Sequencing"}],styles:{display:"inline"},callback:async t=>{e.opts.experimentalStrategy=t;await m(e)}})}{const a=t.append("tr");a.append("td").style("opacity",.7).text("Output Columns");const i=a.append("td");const _=i.append("span").attr("class","sja_clbtext").on("click",(e=>{const t=[],l=[];for(const[e,c]of s.entries()){t.push([{value:c.column}]);if(c.selected)l.push(e)}c({div:u.clear().showunder(e.target).d,rows:t,columns:[{label:"Column Name"}],selectedRows:l,noButtonCallback:(e,t)=>{s[e].selected=t.checked;p()}})}));p();function p(){_.text(`${s.reduce(((e,t)=>e+(t.selected?1:0)),0)} of ${s.length} columns selected, click to change`)}}}async function m(e){e.tableDiv.selectAll("*").remove();const n=e.tableDiv.append("div").text("Loading...");const u={experimentalStrategy:e.opts.experimentalStrategy};if(e.opts.filter0)u.filter0=e.opts.filter0;const d=await l("gdc/maf",{body:u});if(d.error)throw d.error;n.remove();{const t=e.tableDiv.append("div").style("margin","20px");if(d.filesTotal>d.files.length){t.append("div").text(`Showing first ${d.files.length} files out of ${d.filesTotal} total.`)}else{t.append("div").text(`Showing ${d.files.length} files.`)}}const a=[];for(const e of d.files){const t=[{html:`<a href=https://portal.gdc.cancer.gov/cases/${e.case_uuid} target=_blank>${e.case_submitter_id}</a>`},{value:e.project_id},{html:e.sample_types.map((e=>'<span class="sja_mcdot" style="padding:1px 8px;background:#ddd;color:black;white-space:nowrap">'+e+"</span>")).join(" ")},{value:o(e.file_size),url:"https://portal.gdc.cancer.gov/files/"+e.id}];a.push(t)}c({rows:a,columns:r,resize:true,div:e.tableDiv.append("div"),selectAll:true,dataTestId:"sja_mafFileTable",buttons:[{text:"Aggregate selected MAF files and download",onChange:m,callback:i}]});function m(e,t){let l=0;for(const t of e)l+=d.files[t].file_size;if(l==0){t.innerHTML="No file selected";t.disabled=true;return}t.disabled=false;t.innerHTML=l<d.maxTotalSizeCompressed?`Download ${o(l)} compressed MAF data`:`Download ${o(d.maxTotalSizeCompressed)} compressed MAF data (${o(l)} selected)`}async function i(c,n){const o=s.filter((e=>e.selected)).map((e=>e.column));if(o.length==0){window.alert("No output columns selected.");return}const u=[];for(const e of c){u.push(d.files[e].id)}if(u.length==0)return;const r=n.innerHTML;n.innerHTML="Loading... Please wait";n.disabled=true;let a;try{a=await l("gdc/mafBuild",{body:{fileIdLst:u,columns:o}});if(a.error)throw a.error}catch(l){t(e.errDiv,l);n.innerHTML=r;n.disabled=false;return}n.innerHTML=r;n.disabled=false;const m=document.createElement("a");m.href=URL.createObjectURL(a);m.download=`cohortMAF.${(new Date).toISOString().split("T")[0]}.gz`;m.style.display="none";document.body.appendChild(m);m.click();document.body.removeChild(m)}}export{d as gdcMAFui};
|