@sjcrh/proteinpaint-client 2.76.2 → 2.77.1
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-f240211f.js → 2dmaf-dbeff225.js} +1 -1
- package/dist/{AppHeader-c9432a24.js → AppHeader-1fc7f7bd.js} +1 -1
- package/dist/{ColorScale-b991fc9e.js → ColorScale-23c17654.js} +1 -1
- package/dist/{DEanalysis-bbfad00d.js → DEanalysis-a3cf1900.js} +1 -1
- package/dist/{Disco-b7c9bf72.js → Disco-b26a0556.js} +1 -1
- package/dist/{Disco.UI-a5296c36.js → Disco.UI-891c4c35.js} +1 -1
- package/dist/{DragControls-ca3fa0cf.js → DragControls-2fabac26.js} +1 -1
- package/dist/{DziViewer-28915c11.js → DziViewer-5b830c31.js} +1 -1
- package/dist/FilterRxComp-fb608459.js +1 -0
- package/dist/FilterStateless-fc4e4e1b.js +1 -0
- package/dist/{HicApp-e713aa40.js → HicApp-5ed85d49.js} +1 -1
- package/dist/{OrbitControls-2466d420.js → OrbitControls-604f40af.js} +1 -1
- package/dist/{WSIViewer-957695a8.js → WSIViewer-dcce2a10.js} +1 -1
- package/dist/{adSandbox-27d93bc0.js → adSandbox-5fa90964.js} +1 -1
- package/dist/app-0de0ae35.js +1 -0
- package/dist/{app-d215327f.js → app-7f695ce7.js} +1 -1
- package/dist/app-977b083f.js +1 -0
- package/dist/app.js +1 -1
- package/dist/{bam-d67e5315.js → bam-06a5a6a2.js} +1 -1
- package/dist/{barchart-2898d229.js → barchart-978fb21a.js} +1 -1
- package/dist/{barchart.events-426d737a.js → barchart.events-9b482604.js} +1 -1
- package/dist/{bars.renderer-71935d34.js → bars.renderer-d7461d5d.js} +1 -1
- package/dist/{block-75d4ff92.js → block-3db9c74c.js} +1 -1
- package/dist/block.lazyload-19a55cac.js +1 -0
- package/dist/{block.legend-93d85a6e.js → block.legend-97401467.js} +1 -1
- package/dist/{block.mds-84b9d1c1.js → block.mds-dc409568.js} +1 -1
- package/dist/{block.mds.cnv-a991ed79.js → block.mds.cnv-cdabd3f6.js} +1 -1
- package/dist/{block.mds.expressionrank-33b858de.js → block.mds.expressionrank-d768640f.js} +1 -1
- package/dist/{block.mds.expressionstat-3093599f.js → block.mds.expressionstat-7e40426f.js} +1 -1
- package/dist/{block.mds.geneboxplot-b8391d18.js → block.mds.geneboxplot-dae9cfa3.js} +1 -1
- package/dist/{block.mds.junction-69708c7f.js → block.mds.junction-3bc8baea.js} +1 -1
- package/dist/{block.mds.svcnv-322baea6.js → block.mds.svcnv-456dc845.js} +1 -1
- package/dist/{block.mds.svcnv.share-c5c38237.js → block.mds.svcnv.share-4776459b.js} +1 -1
- package/dist/{block.mds2-de4811dd.js → block.mds2-cc586d9d.js} +1 -1
- package/dist/{block.svg-ac9fec2d.js → block.svg-adf47e3a.js} +1 -1
- package/dist/{block.tk.aicheck-ac4b8d4d.js → block.tk.aicheck-f284f080.js} +1 -1
- package/dist/{block.tk.ase-6dc0f9f1.js → block.tk.ase-0477c9f4.js} +1 -1
- package/dist/{block.tk.bam-8f68b41d.js → block.tk.bam-d4c998d4.js} +1 -1
- package/dist/{block.tk.bedgraphdot-d8878860.js → block.tk.bedgraphdot-0177d836.js} +1 -1
- package/dist/{block.tk.bigwig.ui-f6ed051c.js → block.tk.bigwig.ui-95531269.js} +1 -1
- package/dist/{block.tk.hicstraw-725bdc8a.js → block.tk.hicstraw-06e97317.js} +1 -1
- package/dist/{block.tk.junction-f8b0b51d.js → block.tk.junction-18b6b825.js} +1 -1
- package/dist/{block.tk.junction.textmatrixui-252e7d7e.js → block.tk.junction.textmatrixui-ffdbdf81.js} +1 -1
- package/dist/{block.tk.ld-11acf730.js → block.tk.ld-2b56500f.js} +1 -1
- package/dist/{block.tk.menu-5e04436d.js → block.tk.menu-707a4226.js} +1 -1
- package/dist/{block.tk.pgv-fef17dc4.js → block.tk.pgv-63c956c4.js} +1 -1
- package/dist/{boxplot-4c9a5479.js → boxplot-1f229616.js} +1 -1
- package/dist/{brainImaging-7716bc66.js → brainImaging-a0c72fad.js} +1 -1
- package/dist/{brush-9faa7ae7.js → brush-4c775f74.js} +1 -1
- package/dist/{categorical-1dea48ba.js → categorical-25b06bc5.js} +1 -1
- package/dist/{condition-ebac4f75.js → condition-70084a85.js} +1 -1
- package/dist/{controls-268e40e6.js → controls-1f3ac9d0.js} +1 -1
- package/dist/controls.btns-5b44e5d0.js +1 -0
- package/dist/{controls.config-2f0fa061.js → controls.config-b0339f96.js} +1 -1
- package/dist/{cuminc-8dffb765.js → cuminc-6d1de932.js} +1 -1
- package/dist/{customdata.inputui-b229d3a0.js → customdata.inputui-5ad0f25c.js} +1 -1
- package/dist/{dataDownload-452ae3cd.js → dataDownload-a60d80e4.js} +1 -1
- package/dist/databrowser.ui-a5c8194c.js +1 -0
- package/dist/{density-09feb0c9.js → density-30dbad8b.js} +1 -1
- package/dist/{dictionary-a132a3cc.js → dictionary-d8435ddc.js} +1 -1
- package/dist/{drag-2e9c80bb.js → drag-ad04f964.js} +1 -1
- package/dist/{e2pca-4f1648e3.js → e2pca-02adebbd.js} +1 -1
- package/dist/{ep-1d4c58b4.js → ep-b2e464fe.js} +1 -1
- package/dist/{facet-fa4fe49c.js → facet-e7612200.js} +1 -1
- package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
- package/dist/{fusion.parse-7dfd6988.js → fusion.parse-68670e99.js} +1 -1
- package/dist/{geneExpClustering-ed9121b8.js → geneExpClustering-d96c27ef.js} +1 -1
- package/dist/geneExpression-072e0be1.js +1 -0
- package/dist/{geneExpression-394672ff.js → geneExpression-4901955e.js} +1 -1
- package/dist/{geneExpression-66208299.js → geneExpression-65346c08.js} +1 -1
- package/dist/{geneORA-9456872c.js → geneORA-e3d6619e.js} +1 -1
- package/dist/geneVariant-9fc29f37.js +1 -0
- package/dist/{geneVariant-beaf9adb.js → geneVariant-f6bbc247.js} +1 -1
- package/dist/{genefusion.ui-9238ec7f.js → genefusion.ui-a5a08183.js} +1 -1
- package/dist/{genesearch-ffd88bf2.js → genesearch-5fa13afa.js} +1 -1
- package/dist/{geneset-0315daf8.js → geneset-c36036bd.js} +1 -1
- package/dist/genomeBrowser-d4515002.js +1 -0
- package/dist/{genomeBrowser.controls-2601cab5.js → genomeBrowser.controls-b89629b0.js} +1 -1
- package/dist/{groupsetting-e3a4ecd5.js → groupsetting-a3de9ec7.js} +1 -1
- package/dist/{gsea-0c0cf8de.js → gsea-af1a7cec.js} +1 -1
- package/dist/{hierCluster-7ab62ca5.js → hierCluster-8aa2265a.js} +1 -1
- package/dist/hierCluster.config-11a176e2.js +1 -0
- package/dist/{hierCluster.interactivity-7f475259.js → hierCluster.interactivity-103b2f0f.js} +1 -1
- package/dist/{hierCluster.renderers-19b79639.js → hierCluster.renderers-48bdf7a6.js} +1 -1
- package/dist/{html.legend-80b2b3ec.js → html.legend-455f7881.js} +1 -1
- package/dist/{imagePlot-1ef24562.js → imagePlot-862c7baf.js} +1 -1
- package/dist/{lasso-1a02a545.js → lasso-e12204af.js} +1 -1
- package/dist/launch.adhoc-b8af0ace.js +1 -0
- package/dist/leftlabel.sample-784c5aeb.js +1 -0
- package/dist/{legacyDataset-fbaa5ebb.js → legacyDataset-501a0298.js} +1 -1
- package/dist/{log-c26b6cfd.js → log-d560d2a5.js} +1 -1
- package/dist/{lollipop-3aebe5d3.js → lollipop-aa25084e.js} +1 -1
- package/dist/{maf-c439c851.js → maf-13befc91.js} +1 -1
- package/dist/{maftimeline-0da64e54.js → maftimeline-f9ee156e.js} +1 -1
- package/dist/{matrix-38cd47c3.js → matrix-971b44da.js} +1 -1
- package/dist/{matrix.cells-a018d731.js → matrix.cells-92037b17.js} +1 -1
- package/dist/{matrix.cluster-a6e713e8.js → matrix.cluster-0bca59fd.js} +1 -1
- package/dist/{matrix.config-2c550b5d.js → matrix.config-b8d8faef.js} +1 -1
- package/dist/matrix.controls-07c6128c.js +1 -0
- package/dist/{matrix.data-2b814c9f.js → matrix.data-1090f6c7.js} +1 -1
- package/dist/{matrix.dom-1e0da5b3.js → matrix.dom-1154156c.js} +1 -1
- package/dist/{matrix.groups-824a7244.js → matrix.groups-f10a8c05.js} +1 -1
- package/dist/{matrix.interactivity-1cb56534.js → matrix.interactivity-99de0399.js} +1 -1
- package/dist/{matrix.layout-47e44357.js → matrix.layout-405db70f.js} +1 -1
- package/dist/{matrix.legend-9af0c757.js → matrix.legend-d06de359.js} +1 -1
- package/dist/{matrix.renderers-337ce240.js → matrix.renderers-2211c4b2.js} +1 -1
- package/dist/{matrix.serieses-7b7184c9.js → matrix.serieses-f0803a76.js} +1 -1
- package/dist/{matrix.sort-1ac05842.js → matrix.sort-3d376f1a.js} +1 -1
- package/dist/{matrix.sorterUi-1c60c145.js → matrix.sorterUi-469ed804.js} +1 -1
- package/dist/{mavb-da8d1a0a.js → mavb-e5cbd894.js} +1 -1
- package/dist/{mds.fimo-8604c3f8.js → mds.fimo-f9215ef6.js} +1 -1
- package/dist/{mds.samplescatterplot-3f09ae0e.js → mds.samplescatterplot-6fce6594.js} +1 -1
- package/dist/{mds.survivalplot-1d8f2b7e.js → mds.survivalplot-16e9e8c5.js} +1 -1
- package/dist/{metaboliteIntensity-bbb23c76.js → metaboliteIntensity-b47fb792.js} +1 -1
- package/dist/{niceNumLabels-29a7c6ca.js → niceNumLabels-1bd7a93b.js} +1 -1
- package/dist/{nodrag-b2737073.js → nodrag-0fa60f70.js} +1 -1
- package/dist/{notify-0cb8904f.js → notify-42149e65.js} +1 -1
- package/dist/{numeric-24dacbee.js → numeric-5b626171.js} +1 -1
- package/dist/{numeric.binary-f382cc98.js → numeric.binary-07e15211.js} +1 -1
- package/dist/numeric.continuous-76dd29ba.js +1 -0
- package/dist/numeric.discrete-6d697c68.js +1 -0
- package/dist/{numeric.spline-a35cfbf0.js → numeric.spline-cf331bad.js} +1 -1
- package/dist/{numeric.toggle-2f98d6e5.js → numeric.toggle-332c2578.js} +1 -1
- package/dist/oncomatrix-7c84c94b.js +1 -0
- package/dist/{parseData-292648dd.js → parseData-05ab5f81.js} +1 -1
- package/dist/{plot.2dvaf-6ae22dc1.js → plot.2dvaf-1debbf12.js} +1 -1
- package/dist/plot.app-0b02df66.js +1 -0
- package/dist/{plot.barplot-34841e70.js → plot.barplot-45b57df9.js} +1 -1
- package/dist/{plot.boxplot-87ac2ce9.js → plot.boxplot-06cef6e2.js} +1 -1
- package/dist/{plot.brainImaging-32a484b6.js → plot.brainImaging-07795744.js} +1 -1
- package/dist/{plot.disco-1fdfee3c.js → plot.disco-9c631d77.js} +1 -1
- package/dist/{plot.dzi-e3d0f610.js → plot.dzi-a9a81de5.js} +1 -1
- package/dist/{plot.ssgq-d33113d5.js → plot.ssgq-02ffde06.js} +1 -1
- package/dist/{plot.vaf2cov-9f4f1776.js → plot.vaf2cov-c111c5fb.js} +1 -1
- package/dist/{plot.wsi-dea124a7.js → plot.wsi-6ccc7bb2.js} +1 -1
- package/dist/{profileBarchart-58f0a8c0.js → profileBarchart-0c97e8c9.js} +1 -1
- package/dist/{profileHome-7f404152.js → profileHome-2255d66d.js} +1 -1
- package/dist/profilePlot-ba7e03ab.js +1 -0
- package/dist/{profilePolar-50b8e40e.js → profilePolar-d38d502f.js} +1 -1
- package/dist/{profileRadar-fff0b004.js → profileRadar-f95cfa87.js} +1 -1
- package/dist/{profileRadarFacility-d6d34c15.js → profileRadarFacility-7e200a91.js} +1 -1
- package/dist/profileSummary-8c41a731.js +1 -0
- package/dist/{recover-299ffdb3.js → recover-6f2f3379.js} +1 -1
- package/dist/{regression.inputs-14df7c31.js → regression.inputs-b515101d.js} +1 -1
- package/dist/{regression.inputs.values.table-d79efa9e.js → regression.inputs.values.table-f8a0cad9.js} +1 -1
- package/dist/{regression.results-4767144e.js → regression.results-91a486f0.js} +1 -1
- package/dist/{renderPvalueTable-002cc8ff.js → renderPvalueTable-d4d2624c.js} +1 -1
- package/dist/sampleScatter-7c2773de.js +1 -0
- package/dist/{sampleScatter.rendererThree-ef289434.js → sampleScatter.rendererThree-b6db5a09.js} +2 -2
- package/dist/{sampleView-1dff3fca.js → sampleView-8885e86b.js} +1 -1
- package/dist/{samplelst-d2db0f24.js → samplelst-83e593da.js} +1 -1
- package/dist/{samplematrix-0841387f.js → samplematrix-a8b3f845.js} +1 -1
- package/dist/{scatter-f8285107.js → scatter-34d52e2d.js} +1 -1
- package/dist/{select2Terms-d48d037e.js → select2Terms-d9320d21.js} +1 -1
- package/dist/{selectGenomeWithTklst-9af86d31.js → selectGenomeWithTklst-fed6a2ea.js} +1 -1
- package/dist/shapes-21ebfec4.js +1 -0
- package/dist/singleCellCellType-e6848f45.js +1 -0
- package/dist/{singleCellGeneExpression-537f1157.js → singleCellGeneExpression-d3a5394e.js} +1 -1
- package/dist/singleCellPlot-3cad6bd8.js +1 -0
- package/dist/{singlecell-38336cbc.js → singlecell-0754aab0.js} +1 -1
- package/dist/{singlecell-87b4b9a9.js → singlecell-7c57cd77.js} +1 -1
- package/dist/{snp-b81ef740.js → snp-6b23e7a6.js} +1 -1
- package/dist/snp-a0cdd2a5.js +1 -0
- package/dist/snplocus-c60eab56.js +1 -0
- package/dist/{spliceevent.a53ss.diagram-5f8352eb.js → spliceevent.a53ss.diagram-8714f740.js} +1 -1
- package/dist/{spliceevent.exonskip.diagram-0d30a735.js → spliceevent.exonskip.diagram-40c1e363.js} +1 -1
- package/dist/spliceevent.exonskip.getdefault-4bb6f19f.js +1 -0
- package/dist/{spliceevent.noeventdiagram-df9ce4bc.js → spliceevent.noeventdiagram-41a56db9.js} +1 -1
- package/dist/{spliceevent.phrase-a8401d53.js → spliceevent.phrase-7f34e3b1.js} +1 -1
- package/dist/{stattable-46cde32c.js → stattable-78dc5c34.js} +1 -1
- package/dist/{style.gdc-72d730f2.js → style.gdc-cd49882c.js} +1 -1
- package/dist/summary-45c56298.js +1 -0
- package/dist/{sunburst-fe95832e.js → sunburst-2140e468.js} +1 -1
- package/dist/{survival-57ff3c03.js → survival-db972025.js} +1 -1
- package/dist/{survival-52714cd3.js → survival-ed4bdad2.js} +1 -1
- package/dist/{svg.download-f4aa48e4.js → svg.download-a5e20a92.js} +1 -1
- package/dist/{svg.legend-749348e0.js → svg.legend-8d21872d.js} +1 -1
- package/dist/{svgraph-b46f1f92.js → svgraph-f6a28b78.js} +1 -1
- package/dist/{svmr-9a76c6d4.js → svmr-8b4b4c59.js} +1 -1
- package/dist/{table-bf40249b.js → table-1cbe3a36.js} +1 -1
- package/dist/{table-0daf2b89.js → table-e2a307e6.js} +1 -1
- package/dist/{termInfo-491b10af.js → termInfo-5477ba96.js} +1 -1
- package/dist/termdb.bins-7ecc48db.js +1 -0
- package/dist/{termsetting-492eefa7.js → termsetting-2e75e729.js} +1 -1
- package/dist/tk-a8a4481a.js +1 -0
- package/dist/{toggleButtons-c4d6f260.js → toggleButtons-7ce58d97.js} +1 -1
- package/dist/{tp.ui-0a476325.js → tp.ui-be14f635.js} +1 -1
- package/dist/{tvs.density-034b506d.js → tvs.density-8b953cef.js} +1 -1
- package/dist/{tvs.geneVariant-c59c8b54.js → tvs.geneVariant-ecad287d.js} +1 -1
- package/dist/{tvs.numeric-aa1f892f.js → tvs.numeric-b56a5aba.js} +1 -1
- package/dist/{tvs.samplelst-515f27b9.js → tvs.samplelst-3150e0b7.js} +1 -1
- package/dist/{uiUtils-ea7dfea2.js → uiUtils-71cc22de.js} +1 -1
- package/dist/{variantBrowser-14d5c3f6.js → variantBrowser-df2f9c22.js} +1 -1
- package/dist/{vcf-d357ce08.js → vcf-3e370c9b.js} +1 -1
- package/dist/{violin-74d26b75.js → violin-4595cef4.js} +1 -1
- package/dist/{violin.interactivity-bf40ddde.js → violin.interactivity-8b63e000.js} +1 -1
- package/dist/{violin.renderer-469fa0ff.js → violin.renderer-0b7431a2.js} +1 -1
- package/dist/{violinRenderer-14fa200d.js → violinRenderer-7b0a4e98.js} +1 -1
- package/dist/{viridis-cc59f478.js → viridis-725f66e0.js} +1 -1
- package/dist/{y-59cbff5e.js → y-300bac24.js} +1 -1
- package/dist/{zoom-f445cfef.js → zoom-d3d38b3b.js} +1 -1
- package/package.json +2 -4
- package/dist/FilterRxComp-02e68f1b.js +0 -1
- package/dist/FilterStateless-16a33070.js +0 -1
- package/dist/app-42f69951.js +0 -1
- package/dist/app-6fb77603.js +0 -1
- package/dist/block.lazyload-d2951c91.js +0 -1
- package/dist/controls.btns-5bf9e7d7.js +0 -1
- package/dist/databrowser.ui-2197fc73.js +0 -1
- package/dist/downloadTextfile-5723af95.js +0 -1
- package/dist/geneExpression-c61e8f1c.js +0 -1
- package/dist/geneVariant-f17cda85.js +0 -1
- package/dist/genomeBrowser-608b924e.js +0 -1
- package/dist/hierCluster.config-f4daaf92.js +0 -1
- package/dist/launch.adhoc-e124c993.js +0 -1
- package/dist/leftlabel.sample-59f99ef5.js +0 -1
- package/dist/matrix.controls-42ad4912.js +0 -1
- package/dist/numeric.continuous-6feb34a7.js +0 -1
- package/dist/numeric.discrete-ed10bbc1.js +0 -1
- package/dist/oncomatrix-c0b2d635.js +0 -1
- package/dist/plot.app-2a805759.js +0 -1
- package/dist/profilePlot-4db8ca78.js +0 -1
- package/dist/profileSummary-04b8b15b.js +0 -1
- package/dist/sampleScatter-55d9eb74.js +0 -1
- package/dist/singleCellCellType-fd1606b8.js +0 -1
- package/dist/singleCellPlot-eff5760b.js +0 -1
- package/dist/snp-f6123244.js +0 -1
- package/dist/snplocus-acafb1ba.js +0 -1
- package/dist/spliceevent.exonskip.getdefault-237c481c.js +0 -1
- package/dist/summary-a6c15c9e.js +0 -1
- package/dist/termdb.bins-39d11f24.js +0 -1
- package/dist/tk-ac524564.js +0 -1
|
@@ -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-0de0ae35.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-0de0ae35.js";import{G as i}from"./recover-6f2f3379.js";import{f as o}from"./termsetting-2e75e729.js";import"./FilterRxComp-fb608459.js";import"./table-e2a307e6.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"./FilterStateless-fc4e4e1b.js";import"./app-7f695ce7.js";import"./termInfo-5477ba96.js";import"./toggleButtons-7ce58d97.js";import"path";import"./genesearch-5fa13afa.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-0de0ae35.js";import{a as n}from"./genesearch-5fa13afa.js";import"./termsetting-2e75e729.js";import{g as r}from"./FilterRxComp-fb608459.js";import{f as l}from"./filter-67d51c09.js";import{mayUpdateGroupTestMethodsIdx as c,gbControlsInit as p}from"./genomeBrowser.controls-b89629b0.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./table-e2a307e6.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"./checkbox-96437f4d.js";import"./FilterStateless-fc4e4e1b.js";import"./toggleButtons-7ce58d97.js";import"./app-7f695ce7.js";import"./termInfo-5477ba96.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-0de0ae35.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-3db9c74c.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-6fb77603.js";import{m as i}from"./checkbox-96437f4d.js";import{f as n}from"./FilterStateless-16a33070.js";import{g as s,a as o}from"./FilterRxComp-02e68f1b.js";import"./termsetting-492eefa7.js";import{T as a}from"./toggleButtons-c4d6f260.js";import{appInit as r}from"./app-d215327f.js";import"./table-0daf2b89.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-39d11f24.js";import"path";import"./termInfo-491b10af.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-0de0ae35.js";import{m as i}from"./checkbox-96437f4d.js";import{f as n}from"./FilterStateless-fc4e4e1b.js";import{g as s,a as o}from"./FilterRxComp-fb608459.js";import"./termsetting-2e75e729.js";import{T as a}from"./toggleButtons-7ce58d97.js";import{appInit as r}from"./app-7f695ce7.js";import"./table-e2a307e6.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"path";import"./termInfo-5477ba96.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-6fb77603.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-0de0ae35.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-e2a307e6.js";import{M as t,P as s,h as a,D as l,b as i}from"./app-0de0ae35.js";import{controlsInit as o}from"./controls-1f3ac9d0.js";import"./tslib.es6-c3c2d88f.js";import"./controls.btns-5b44e5d0.js";import"./controls.config-b0339f96.js";import"./termsetting-2e75e729.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 h(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 h(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 h(e){return await i("genesetEnrichment",{body:e})}export{g as componentInit,c as getPlotConfig,p as gseaInit,u as makeChartBtnMenu};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Matrix as e}from"./matrix-
|
|
1
|
+
import{Matrix as e}from"./matrix-971b44da.js";import{F as t,b as r,I as s,bR as i,h as a}from"./app-0de0ae35.js";import{r as o}from"./hierCluster.renderers-48bdf7a6.js";import{c as l,d as n,i as c}from"./hierCluster.interactivity-103b2f0f.js";import{k as m}from"./termsetting-2e75e729.js";import{g as d,c as h}from"./FilterRxComp-fb608459.js";export{getPlotConfig}from"./hierCluster.config-11a176e2.js";import"./matrix.dom-1154156c.js";import"./matrix.interactivity-99de0399.js";import"./table-e2a307e6.js";import"./tslib.es6-c3c2d88f.js";import"./pointer-c7475677.js";import"./matrix.renderers-2211c4b2.js";import"./matrix.cluster-0bca59fd.js";import"./matrix.controls-07c6128c.js";import"./controls.config-b0339f96.js";import"path";import"./matrix.sorterUi-469ed804.js";import"./radiobutton-09bff425.js";import"./checkbox-96437f4d.js";import"./recover-6f2f3379.js";import"./FilterStateless-fc4e4e1b.js";import"./app-7f695ce7.js";import"./termInfo-5477ba96.js";import"./toggleButtons-7ce58d97.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"./genesearch-5fa13afa.js";import"./rehydrateFilter-12d118cb.js";import"./svg.legend-8d21872d.js";import"./matrix.data-1090f6c7.js";import"./matrix.layout-405db70f.js";import"./axis-747c801e.js";import"./matrix.serieses-f0803a76.js";import"./matrix.cells-92037b17.js";import"./matrix.legend-d06de359.js";import"./legacy-d3-polyfill-bdb2d792.js";import"./matrix.groups-f10a8c05.js";import"./filter-67d51c09.js";import"./matrix.sort-3d376f1a.js";import"./matrix.config-b8d8faef.js";function p(e,t){let r;let s;if(t===undefined){for(const t of e){if(t!=null){if(r===undefined){if(t>=t)r=s=t}else{if(r>t)r=t;if(s<t)s=t}}}}else{let i=-1;for(let a of e){if((a=t(a,++i,e))!=null){if(r===undefined){if(a>=a)r=s=a}else{if(r>a)r=a;if(s<a)s=a}}}}return[r,s]}class f extends e{constructor(e){super(e);this.type="hierCluster";this.chartType="hierCluster"}async init(e){await super.init(e);this.maySetSandboxHeader();this.hcClipId=this.seriesClipId+"-hc";this.dom.hcClipRect=this.dom.svg.select("defs").append("clipPath").attr("id",this.hcClipId).attr("clipPathUnits","userSpaceOnUse").append("rect").attr("display","block");this.dom.topDendrogram=this.dom.svg.insert("g","g").attr("clip-path",`url(#${this.hcClipId})`).append("g").attr("class","sjpp-matrix-dendrogram").attr("data-testid","hierCluster_top_dendrogram").on("click",(e=>{const t=this.getClusterFromTopDendrogram(e);if(t){this.clickedClusterIds=this.getAllChildrenClusterIds(t);this.clickedClusterIds.push(t);const r=this.hierClusterData.clustering.col.mergedClusters.get(t);const s=r.children.map((e=>e.name));this.addSelectedSamplesOptions(s,e)}else{delete this.clickedClusterIds}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 r=this.hierClusterData.clustering.row.mergedClusters.get(t);const s=r.children.map((e=>e.name));this.addSelectedRowsOptions(s,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 r=new AbortController;const[s,i]=await this.api.detectStale((()=>this.requestData({signal:r.signal})),{abortCtrl:r});if(i)throw`stale sequenceId`;if(s.error)throw s.error;this.currServerData=structuredClone(s);if(!t(this.prevServerData,this.currServerData)){delete this.clickedClusterIds}const a=this.settings.hierCluster;const o=this.hcTermGroup.lst;if(!s.clustering){if(s.gene){throw`Cannot do clustering: data is only available for 1 gene (${s.gene}). Try again by adding more genes.`}}this.hierClusterData=s;const l=this.hierClusterData.clustering;this.setHierColorScale(l);this.settings.hierCluster.zScoreCap;const n={};for(const[e,t]of l.col.order.entries()){n[t.name]={sample:t.name};for(const[r,s]of l.row.order.entries()){const i=o.find((e=>e.term.name===s.name));const c=l.matrix[r][e];n[t.name][i.$id]={key:i.term.name,values:[{sample:t.name,dt:m[this.state.config.dataType],label:a.termGroupName,value:c}]}}}this.hcTermNameOrder=l.row.order.map((e=>e.name));this.hcTermSorter=(e,t)=>{const r=this.hcTermNameOrder.indexOf(e.tw.term.name);const s=this.hcTermNameOrder.indexOf(t.tw.term.name);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};this.hcSampleNameOrder=l.col.order.map((e=>e.name));this.hcSampleSorter=(e,t)=>{const r=this.hcSampleNameOrder.indexOf(e.sample);const s=this.hcSampleNameOrder.indexOf(t.sample);if(r==-1&&s==-1)return 0;if(r==-1)return 1;if(s==-1)return-1;return r-s};const c={};for(const e of o){if(s.byTermId[e.term.name])c[e.$id]=s.byTermId[e.term.name]}this.hierClusterSamples={refs:{byTermId:c,bySampleId:s.bySampleId},lst:l.col.order.map((e=>n[e.name])),samples:n}}async requestData({signal:e}){const t=this.currRequestOpts?.hierCluster||this.getHCRequestBody(this.state);const s=await r("termdb/cluster",{body:t,signal:e});return s}getHCRequestBody(e){this.hcTermGroup=this.config.termgroups.find((e=>e.type=="hierCluster"))||this.termOrder?.find((e=>e.grp.type=="hierCluster"))?.grp;const t=e.config.settings.hierCluster;const r={type:"tvslst",in:true,join:"and",lst:e.config.legendValueFilter.lst.filter((e=>!e.tvs.legendFilterType))};const s=this.getClusterRowTermsAsParameter();if(!s.length)throw"no data";if(!l.find((e=>e.value==t.clusterMethod)))throw"Invalid cluster method";if(!n.find((e=>e.value==t.distanceMethod)))throw"Invalid distance method";const i={genome:e.vocab.genome,dslabel:e.vocab.dslabel,dataType:e.config.dataType,clusterMethod:t.clusterMethod,distanceMethod:t.distanceMethod,terms:s,filter:d(h([e.filter,r])),filter0:e.filter0};return i}combineData(){if(!this.hierClusterSamples)return;const e=this.data;const t={};const r=[];for(const s in this.hierClusterSamples.samples){const i=this.hierClusterSamples.samples[s];t[s]=i;r.push(i);if(s in e.samples)Object.assign(i,e.samples[s]);const a=this.hierClusterSamples.refs.bySampleId[s]||{};if(!i._ref_)i._ref_=a;else Object.assign(i._ref_,a)}const s=this.hierClusterSamples.refs.byTermId;for(const t of Object.keys(s)){e.refs.byTermId[t]=Object.assign({},e.refs.byTermId[t]||{},s[t])}this.data={samples:t,lst:r,refs:e.refs}}setHierColorScale(e){const t=this.settings.hierCluster;const r=s(i[t.colorScale].domain,i[t.colorScale].range).clamp(true);const a=[];for(const t of e.matrix){a.push(...p(t))}const o=Math.min(t.zScoreCap,Math.max(...p(a).map(Math.abs)));const[l,n]=[-o,o];this.hierClusterValues={scale:r,min:l,max:n}}getValueColor(e){const t=this.settings.hierCluster.zScoreCap;return this.hierClusterValues.scale((e- -t)/(t*2))}getClusterRowTermsAsParameter(){const e=[...this.hcTermGroup.lst.map((e=>e.term))];e.sort(((e,t)=>e.name<t.name?-1:1));return e}}for(const e of[o,c]){for(const t in e)f.prototype[t]=e[t]}const u=a(f);const g=u;export{f as HierCluster,g as componentInit,u as hierClusterInit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e}from"./app-0de0ae35.js";import{getPlotConfig as t}from"./matrix.config-b8d8faef.js";import{T as r,f as s}from"./termsetting-2e75e729.js";import"./matrix.sort-3d376f1a.js";import"./tslib.es6-c3c2d88f.js";import"path";async function a(a={},i){a.chartType="hierCluster";const o=await t(a,i);delete o.genes;o.settings.hierCluster={dataType:o.dataType,clusterSamples:true,clusterMethod:"average",distanceMethod:"euclidean",zScoreCap:5,xDendrogramHeight:100,yDendrogramHeight:200,colorScale:"blueWhiteRed"};const n=i.vocabApi.termdbConfig.hierCluster||{};e(o.settings.hierCluster,n.settings,a.settings?.hierCluster||{});{const e=o.settings.hierCluster.colorScale;if(!e)throw"colorScale missing"}o.settings.matrix.collabelpos="top";const p=o.settings.hierCluster.termGroupName;const m=o.termgroups.find((e=>e.type=="hierCluster"||e.name==p))||{name:p};m.type="hierCluster";if(!m.lst?.length){if(!Array.isArray(a.terms))throw"opts.terms[] not array (may show geneset edit ui)";const e=[];for(const t of a.terms){const a=t.term?t:{term:t};if(!a.term.type){if(o.dataType==r.GENE_EXPRESSION||o.dataType==r.METABOLITE_INTENSITY){a.term.type=o.dataType}else{throw`term type missing and cannot be assigned by dataType`}}else if(!["geneExpression","metaboliteIntensity","float"].includes(a.term.type)){throw"term type not supported in hierCluster"}else if(o.dataType&&a.term.type!==o.dataType){throw`cannot have term type ${a.term.type} in ${o.dataType} term group`}e.push(s(a,i.vocabApi))}m.lst=await Promise.all(e);if(o.termgroups.indexOf(m)==-1)o.termgroups.unshift(m)}o.settings.matrix.maxSample=1e5;return o}export{a as getPlotConfig};
|
package/dist/{hierCluster.interactivity-7f475259.js → hierCluster.interactivity-103b2f0f.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./table-
|
|
1
|
+
import{r as e}from"./table-e2a307e6.js";const t=[{label:"Average",value:"average",title:`Cluster by average value`},{label:`Complete`,value:"complete",title:`Use the complete clustering method`},{label:`Single`,value:"single",title:`Use the single clustering method`},{label:`Ward.D`,value:"ward.D",title:`Use the ward.D clustering method`},{label:`Ward.D2`,value:"ward.D2",title:`Use the ward.D2 clustering method`},{label:`Mcquitty`,value:"mcquitty",title:`Use the Mcquity clustering method`}];const l=[{label:"Euclidean",value:"euclidean",title:`Calculate distance using euclidean method`},{label:"Maximum",value:"maximum",title:`Maximum distance between two components of x and y`},{label:"Manhattan",value:"manhattan",title:`Calculate distance using the absolute distance between the two vectors`},{label:"Canberra",value:"canberra",title:`Calculate distance using Canberra method`}];function s(e,t){const l=t?this.hierClusterData.clustering.row.mergedClusters:this.hierClusterData.clustering.col.mergedClusters;const s=l.get(e).childrenClusters||[];let a=[...s];for(const e of s){a=a.concat(this.getAllChildrenClusterIds(e,t))}return a}function a(e,t){const l=this.settings.matrix.controlLabels;const s=this.opts.allow2selectSamples;const a=[{label:"Zoom in",callback:()=>{this.triggerZoomBranch(this,e)}},{label:`List ${e.length} ${l.samples}`,callback:()=>this.showTable4selectedSamples(e)}];if(s){a.push({label:s.buttonText||`Select ${l.samples}`,callback:async()=>{s.callback({samples:e.map((e=>({"cases.case_id":e}))),source:s.defaultSelectionLabel||`Selected ${l.samples} from gene expression`})}})}else{if(this.state.nav&&this.state.nav.header_mode!=="hidden"){const t=e.map((e=>this.sampleOrder.find((t=>t.row.sample==e)).row));for(const e of t){if(!e.sampleId)e.sampleId=e.sample}a.push({label:"Add to a group",callback:async()=>{const e={name:"Group",items:t};this.addGroup(e)}})}}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(a).enter().append("div").attr("class","sja_menuoption").style("border-radius","0px").html((e=>e.label)).attr("data-testid",(e=>`hierCluster_dendro_menu_${e.label.split(" ")[0]}`)).on("click",(e=>{this.dom.dendroClickMenu.d.selectAll("*").remove();e.target.__data__.callback()}));this.dom.dendroClickMenu.show(t.clientX,t.clientY)}function i(e,t){const l=this.config.dataType=="geneExpression"?"genes":this.config.dataType=="metaboliteIntensity"?"metabolites":"items";const s=[{label:`List ${e.length} ${l}`,callback:()=>this.showTable4selectedRows(e,l)}];if(this.app.opts.genome.termdbs){s.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 l={sample_genes:t.toString(),genome:this.app.vocabApi.opts.state.vocab.genome};const s={chartType:"geneORA",geneORAparams:l};this.app.dispatch({type:"plot_create",config:s})}})}this.mouseout();this.dom.tip.hide();this.dom.dendroClickMenu.d.selectAll("*").remove();this.dom.dendroClickMenu.d.selectAll("div").data(s).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 n(e,t){if(e.zoomArea){e.zoomArea.remove();delete e.zoomArea}const l={startCell:e.serieses[0].cells.find((e=>e.sample==t[0])),endCell:e.serieses[0].cells.find((e=>e.sample==t[t.length-1]))};const s=e.settings.matrix;const a=e.dimensions;const i=l.startCell.totalIndex<l.endCell.totalIndex?l.startCell:l.endCell;const n=Math.floor(i.totalIndex+Math.abs(l.endCell.totalIndex-l.startCell.totalIndex)/2);const o=e.sampleOrder[n];const r=e.computedSettings.colw||e.settings.matrix.colw;const c=s.colwMax/r;const d=s.colwMin/r;const h=Math.max(1,s.zoomLevel*a.mainw/Math.max(l.endCell.x-l.startCell.x,2*a.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:o.grpIndex}}}});e.resetInteractions()}function o(t){const l=this.state.termdbConfig.urlTemplates;const s=l?.sample?t.map((e=>[{value:this.hierClusterData.bySampleId[e].label,url:`${l.sample.base}${e}`}])):t.map((e=>[{value:this.hierClusterData.bySampleId[e].label}]));const a=[{label:this.settings.matrix.controlLabels.Sample}];e({rows:s,columns:a,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}function r(t,l){const s=this.state.termdbConfig.urlTemplates;const a=s?.gene&&this.config.dataType=="geneExpression"&&this.hierClusterData.byTermId?t.map((e=>this.hierClusterData.byTermId[e]?.gencodeId?[{value:e,url:`${s.gene.base}${this.hierClusterData.byTermId[e].gencodeId}`}]:[{value:e}])):t.map((e=>[{value:e}]));const i=[{label:l}];e({rows:a,columns:i,div:this.dom.dendroClickMenu.clear().d.append("div").style("margin","10px"),showLines:true,maxHeight:"35vh",resize:true})}async function c(e){e.plotId=this.id;await this.app.vocabApi.addGroup(e);this.dom.tip.hide()}function d(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const l=this.dimensions.xMin;const s=e.clientX-this.imgBox.x-e.target.clientLeft+l;for(const[e,l]of this.hierClusterData.clustering.col.mergedClusters){const{x1:a,y1:i,x2:n,y2:o,clusterY:r}=l.clusterPosition;if(a<=s&&s<=n&&r-5<t&&t<r+5||r<=t&&t<=i&&a-5<s&&s<a+5||r<=t&&t<=o&&n-5<s&&s<n+5){return e}}}function h(e){if(e.target.tagName=="image")this.imgBox=e.target.getBoundingClientRect();else return;const t=e.clientY-this.imgBox.y-e.target.clientTop;const l=this.dimensions.xMin;const s=e.clientX-this.imgBox.x-e.target.clientLeft+l;for(const[e,l]of this.hierClusterData.clustering.row.mergedClusters){const{x1:a,y1:i,x2:n,y2:o,clusterX:r}=l.clusterPosition;if(i<=t&&t<=o&&r-5<s&&s<r+5||r<=s&&s<=a&&i-5<t&&t<i+5||r<=s&&s<=n&&o-5<t&&t<o+5){return e}}}function m(e,s){const a=this.config.settings.matrix.controlLabels;const i=`Cluster ${a.Samples}`;e.append("button").datum({label:`Clustering`,rows:[{label:i,title:`Option to enable ${a.samples} clustering, instead of enable ${a.samples} sorting.`,type:"checkbox",chartType:"hierCluster",settingsKey:"clusterSamples",boxLabel:`Cluster ${a.samples} (Disable ${a.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:t},{label:`Distance Method`,title:`Sets which distance method to use for clustering`,type:"radio",chartType:"hierCluster",settingsKey:"distanceMethod",options:l},{label:`Column Dendrogram Height`,title:`The maximum height to render the column dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"yDendrogramHeight",getDisplayStyle(e){return e.settings.hierCluster.clusterSamples?"table-row":"none"}},{label:`Row Dendrogram Width`,title:`The maximum width to render the row dendrogram`,type:"number",chartType:"hierCluster",settingsKey:"xDendrogramHeight"},{label:`z-score Cap`,title:`Cap the z-score scale to not exceed this absolute value`,type:"number",chartType:"hierCluster",settingsKey:"zScoreCap"},{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",s)}var u=Object.freeze({__proto__:null,getAllChildrenClusterIds:s,addSelectedSamplesOptions:a,addSelectedRowsOptions:i,triggerZoomBranch:n,showTable4selectedSamples:o,showTable4selectedRows:r,addGroup:c,getClusterFromTopDendrogram:d,getClusterFromLeftDendrogram:h,setClusteringBtn:m});export{t as c,l as d,u as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as e}from"./termsetting-
|
|
1
|
+
import{T as e}from"./termsetting-2e75e729.js";function t(){if(!this.dom.header)return;switch(this.config.dataType){case e.GENE_EXPRESSION:this.dom.header.text("Gene Expression Clustering");break;case e.METABOLITE_INTENSITY:this.dom.header.text("Metabolite Intensity Clustering");break;default:throw`dataType '${this.config.dataType}' not recognized`}}function n(e){const t=this.dimensions;const n=this.config.settings.matrix;t.seriesXoffset;const s=window.devicePixelRatio<=1?1:window.devicePixelRatio;const r=this.hierClusterData.clustering;const a=r.row;const c=r.col;const h=this.settings.matrix.clusterRowh,{xDendrogramHeight:l,yDendrogramHeight:d}=this.settings.hierCluster,g=this.dimensions.dx;if(e!=="left"){if(!this.settings.hierCluster.clusterSamples){this.dom.topDendrogram.selectAll("*").remove()}else{const e=o(c.height,d);const t=d+1e-7;const r=g*c.inputOrder.length;const a=new OffscreenCanvas(r*s,t*s);const h=a.getContext("2d");h.scale(s,s);h.imageSmoothingEnabled=false;h.imageSmoothingQuality="high";h.strokeStyle="black";const u=new Map;for(const[t,n]of c.merge.entries()){const s=t+1;const o=[];const r=[];let a,l,m,p;if(n.n1<0){const[e,t]=i(n.n1,c.inputOrder,c.order);a=g*(t+.5);m=d;o.push({name:e})}else{if(!u.has(n.n1))throw"pair.n1 is positive but not seen before";const e=u.get(n.n1);a=e.x;m=e.y;o.push(...e.children);r.push(n.n1)}if(n.n2<0){const[e,t]=i(n.n2,c.inputOrder,c.order);l=g*(t+.5);p=d;o.push({name:e})}else{if(!u.has(n.n2))throw"pair.n1 is positive but not seen before";const e=u.get(n.n2);l=e.x;p=e.y;o.push(...e.children);r.push(n.n2)}const f=d-c.height[t].height*e;const x=this.clickedClusterIds?.includes(s);h.strokeStyle=x?"red":"black";h.beginPath();h.moveTo(a,m);h.lineTo(a,f);h.lineTo(l,f);h.lineTo(l,p);h.stroke();h.closePath();u.set(s,{x:(a+l)/2,y:f,children:o,childrenClusters:r,clusterPosition:{x1:a,x2:l,y1:m,y2:p,clusterY:f}})}this.renderImage(this.dom.topDendrogram,a,r,t,l+.5*g,n.margin.top+n.scrollHeight);c.mergedClusters=u}}if(e!=="top"){const e=o(a.height,l);const t=l+1e-7;const r=h*a.inputOrder.length;const c=new OffscreenCanvas(t*s,r*s);const g=c.getContext("2d");g.scale(s,s);g.imageSmoothingEnabled=false;g.imageSmoothingQuality="high";g.strokeStyle="black";const u=new Map;for(const[t,n]of a.merge.entries()){const s=t+1;const o=[];const r=[];let c,d,m,p;if(n.n1<0){const[e,t]=i(n.n1,a.inputOrder,a.order);m=h*(t+.5);c=l;o.push({name:e})}else{if(!u.has(n.n1))throw"pair.n1 is positive but not seen before";const e=u.get(n.n1);c=e.x;m=e.y;o.push(...e.children);r.push(n.n1)}if(n.n2<0){const[e,t]=i(n.n2,a.inputOrder,a.order);p=h*(t+.5);d=l;o.push({name:e})}else{if(!u.has(n.n2))throw"pair.n1 is positive but not seen before";const e=u.get(n.n2);d=e.x;p=e.y;o.push(...e.children);r.push(n.n2)}const f=l-a.height[t].height*e;const x=this.clickedLeftClusterIds?.includes(s);g.strokeStyle=x?"red":"black";g.beginPath();g.moveTo(c,m);g.lineTo(f,m);g.lineTo(f,p);g.lineTo(d,p);g.stroke();g.closePath();u.set(s,{x:f,y:(m+p)/2,children:o,childrenClusters:r,clusterPosition:{x1:c,x2:d,y1:m,y2:p,clusterX:f}})}const m=this.termOrder.find((e=>e.grp.type=="hierCluster"||e.grp.name==this.hcTermGroup.name));const p=m.grpIndex*n.rowgspace+m.prevGrpTotalIndex*n.rowh+m.totalHtAdjustments+n.margin.top+n.scrollHeight+d;this.renderImage(this.dom.leftDendrogram,c,t,r,0,p);a.mergedClusters=u}}async function s(e,t,n,s,o,i){const r=new FileReader;r.addEventListener("load",(()=>{e.selectAll("*").remove();e.append("image").attr("x",o+.033).attr("y",i+.033).attr("xlink:href",r.result).attr("width",n).attr("height",s)}),false);const a=await t.convertToBlob({quality:1});r.readAsDataURL(a)}function o(e,t){let n=e[0].height;for(const t of e)n=Math.max(n,t.height);return t/n}function i(e,t,n){const s=t[-e-1];if(!s)throw"minus not in inputOrder";const o=n.findIndex((e=>e.name==s));if(o==-1)throw"name not found in hc$order";return[s,o]}var r=Object.freeze({__proto__:null,maySetSandboxHeader:t,plotDendrogramHclust:n,renderImage:s});export{r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as e,r as t}from"./app-
|
|
1
|
+
import{d as e,r as t}from"./app-0de0ae35.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-0de0ae35.js";import{controlsInit as s}from"./controls-1f3ac9d0.js";import"./controls.btns-5b44e5d0.js";import"./controls.config-b0339f96.js";import"./termsetting-2e75e729.js";import"./tslib.es6-c3c2d88f.js";import"path";class e{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 e=await this.app.vocabApi.getSampleImages(i.sample.sampleId);if(e.error)throw e.error;for(const t of e.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 o(i,s){let e=n();if(i.settings)t(e,i.settings);const o={settings:{controls:{isOpen:false},imagePlot:e}};const a=t(o,i);return a}function n(){return{width:500,height:500}}const a=i(e);const r=a;async function p(t,i,s){const e={holder:i,state:{vocab:t.vocab,plots:[{chartType:"imagePlot",sample:s}]}};const o=await import("./plot.app-0b02df66.js");await o.appInit(e)}export{r as componentInit,n as getDefaultImagePlotSettings,o as getPlotConfig,a as imagePlotInit,p as renderImagePlot};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as t}from"./drag-
|
|
1
|
+
import{d as t}from"./drag-ad04f964.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 e}from"./plot.app-0b02df66.js";import{ai as o,z as s}from"./app-0de0ae35.js";import"./recover-6f2f3379.js";import"./termsetting-2e75e729.js";import"path";import"./FilterRxComp-fb608459.js";import"./table-e2a307e6.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"./FilterStateless-fc4e4e1b.js";import"./app-7f695ce7.js";import"./termInfo-5477ba96.js";import"./toggleButtons-7ce58d97.js";import"./genesearch-5fa13afa.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 o(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 e(p);return u}))}function r(e){return t(this,void 0,void 0,(function*(){if(Array.isArray(e.mlst)){return[e.mlst,null]}const t=[];const o=[];if(e.snvText)i(e.snvText,t,o);if(e.svText)c(e.svText,t,o);if(e.cnvText)p(e.cnvText,t,o);return[t,o]}))}function i(t,e,o){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length!=5){o.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],o)}}catch(t){o.push(t);continue}e.push(n)}}function c(t,e,o){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length<4||t.length>6){o.push("sv input not equal to 4 or 6 columns");continue}let n;try{const e=t.length;if(e==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){o.push(t);continue}e.push(n)}}function p(t,e,o){for(const s of t.trim().split("\n")){const t=s.trim().split("\t");if(t.length!=4){o.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){o.push(t);continue}e.push(n)}}function u(t,e){const o=t.toLowerCase();const n=Object.values(s).find((t=>t.key.toLowerCase()===o||t.label.toLowerCase()===o));if(n){return n.key}else{e.push(`Invalid mutation class: ${t}`)}}export{n as launch};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as t,g as e,d as s}from"./tk-a8a4481a.js";import{T as a}from"./toggleButtons-7ce58d97.js";import{aN as o}from"./app-0de0ae35.js";import{r as l}from"./table-e2a307e6.js";import{f as n}from"./FilterStateless-fc4e4e1b.js";import{g as i}from"./FilterRxComp-fb608459.js";import"./termsetting-2e75e729.js";import{v as r}from"./violinRenderer-7b0a4e98.js";import"./block.legend-97401467.js";import"./vcf-3e370c9b.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-91a486f0.js";import"./axisstyle-fac7f76b.js";import"./ColorScale-23c17654.js";import"./log-d560d2a5.js";import"./block-3db9c74c.js";import"./checkbox-96437f4d.js";import"./pointer-c7475677.js";import"./shapes-21ebfec4.js";import"./radiobutton-09bff425.js";import"./niceNumLabels-1bd7a93b.js";import"./rehydrateFilter-12d118cb.js";import"./tslib.es6-c3c2d88f.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-7ecc48db.js";import"path";import"./brush-4c775f74.js";import"./nodrag-0fa60f70.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aM as t,aL as o,a8 as r}from"./app-
|
|
1
|
+
import{aM as t,aL as o,a8 as r}from"./app-0de0ae35.js";import{s as e}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(e)}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-0de0ae35.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 u(t){return Math.exp(t)}function f(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,u);const e=n.domain;let s=10;let g;let m;function b(){g=M(s),m=h(s);if(e()[0]<0){g=p(g),m=p(m);t(f,c)}else{t(l,u)}return n}n.base=function(t){return arguments.length?(s=+t,b()):s};n.domain=function(t){return arguments.length?(e(t),b()):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 u=g(o);let f;let c;const h=t==null?10:+t;let M=[];if(!(s%1)&&u-l<h){l=Math.floor(l),u=Math.ceil(u);if(i>0)for(;l<=u;++l){for(f=1;f<s;++f){c=l<0?f/m(-l):f*m(l);if(c<i)continue;if(c>o)break;M.push(c)}}else for(;l<=u;++l){for(f=s-1;f>=1;--f){c=l>0?f/m(-l):f*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,u,Math.min(u-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-5fa13afa.js";import{M as o,b as s,e as t}from"./app-0de0ae35.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-0de0ae35.js";import{r as c}from"./table-e2a307e6.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};
|