From 4e99fb73bccdb3e30ce239cad681327a9f538709 Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Thu, 13 Apr 2023 16:40:36 +0200 Subject: [PATCH] filtering duplicate node IDs when loading networks --- .../explorer-page/explorer-page.component.ts | 21 +++++++++++++++++-- src/index.html | 2 +- src/version.ts | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts index 441f3721..23834610 100644 --- a/src/app/pages/explorer-page/explorer-page.component.ts +++ b/src/app/pages/explorer-page/explorer-page.component.ts @@ -25,6 +25,7 @@ import * as JSON5 from 'json5'; import {DrugstoneConfigService} from 'src/app/services/drugstone-config/drugstone-config.service'; import {NetworkHandlerService} from 'src/app/services/network-handler/network-handler.service'; import {LegendService} from '../../services/legend-service/legend-service.service'; +import {ToastService} from '../../services/toast/toast.service'; declare var vis: any; @@ -47,7 +48,7 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { @Input() public id: undefined | string; - @ViewChild('analysis') analysisElement + @ViewChild('analysis') analysisElement; public reset() { // const analysisNetwork = this.networkHandler.networks['analysis']; @@ -212,7 +213,9 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { public drugstoneConfig: DrugstoneConfigService, public netex: NetexControllerService, public networkHandler: NetworkHandlerService, - public legendService: LegendService) { + public legendService: LegendService, + public toast: ToastService, + ) { this.showDetails = false; this.analysis.subscribeList(async (items, selected) => { @@ -429,6 +432,20 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit { edges = edges.filter(el => el.from !== el.to); } + const duplicateNodeIds = []; + const uniqueNodeIds = []; + const uniqueNodes = []; + nodes.forEach(node => { + if (uniqueNodeIds.includes(node.id)) { + duplicateNodeIds.push(node.id); + } else { + uniqueNodeIds.push(node.id); + uniqueNodes.push(node); + } + }); + this.toast.setNewToast({message: 'Duplicate node ids removed: ' + duplicateNodeIds.join(', '), type: 'warning'}); + nodes = uniqueNodes; + this.nodeData.nodes = new vis.DataSet(nodes); this.nodeData.edges = new vis.DataSet(edges); diff --git a/src/index.html b/src/index.html index dbef3b20..c25ff979 100644 --- a/src/index.html +++ b/src/index.html @@ -116,7 +116,7 @@ menu<br> <drugst-one id="netexp1" groups='{"nodeGroups":{"important":{"type":"gene","color":"#ff881f","font":{"color":"#000000"},"groupName":"Seed","shape":"star"},"gene":{"type":"gene","color":"#4da300","font":{"color":"#f0f0f0"},"groupName":"Discovered target","shape":"circle"},"foundDrug":{"type":"drug","color":"#F12590","font":{"color":"#000000"},"groupName":"Drug","shape":"diamond"}},"edgeGroups":{"default":{"color":"#000000","groupName":"default edge"}}}' config='{"customEdges":{"default":true, "selectable":false}, "showAdvAnalysisContent":["drug-search", "enrichment-gprofiler", "enrichment-digest", "search-ndex"],"identifier":"symbol","title":"ROBUST output network", "taskDrugName": "Drug Search", "showLegendNodes": true, "showLegendEdges": true, "showSidebar": "left", "showOverview": true, "legendPos": "left", "legendClass": "legend", "showQuery": true, "showItemSelector": true,"showSimpleAnalysis": false,"showAdvAnalysis": true,"showSelection": true,"showTasks": true,"showNetworkMenu": "right","showLegend": true,"showNetworkMenuButtonExpression": true, "showNetworkMenuButtonScreenshot": true,"showNetworkMenuButtonExportGraphml": true,"showNetworkMenuButtonAdjacentDrugs": true,"showNetworkMenuButtonCenter": true,"showConnectGenes": false,"networkMenuButtonAdjacentDrugsLabel": "Drugs","showNetworkMenuButtonAdjacentDisordersProteins": true,"networkMenuButtonAdjacentDisordersProteinsLabel": "Disorders (protein)","showNetworkMenuButtonAdjacentDisordersDrugs": true,"networkMenuButtonAdjacentDisordersDrugsLabel": "Disorders (drug)","showNetworkMenuButtonAnimation": true,"networkMenuButtonAnimationLabel": "Animation", "autofillEdges": false, "physicsOn": false,"useNedrexLicenced": true,"selfReferences": false, "interactionDrugProtein": "NeDRex", "indicationDrugDisorder": "NeDRex","nodeShadow": true,"edgeShadow": true, "algorithms": {"drug": ["trustrank", "closeness", "degree", "proximity"], "drug-target": ["trustrank", "multisteiner", "keypathwayminer", "degree", "closeness", "betweenness"]}, "associatedProteinDisorder": "NeDRex", "nodeGroups":{"important":{"type":"gene","color":"#ff881f","font":{"color":"#000000"},"groupName":"Seed","shape":"star"},"gene":{"type":"gene","color":"#4da300","font":{"color":"#f0f0f0"},"groupName":"Discovered target","shape":"circle"},"foundDrug":{"type":"drug","color":"#F12590","font":{"color":"#000000"},"groupName":"Drug","shape":"diamond"}},"edgeGroups":{"default":{"color":"#000000","groupName":"default edge"}}}' - network='{"nodes": [{"id": "DEFA1", "group": "gene"}, {"id": "CST6", "group": "gene"}, {"id": "IGFBP2", "group": "gene"}, {"id": "TNFSF8", "group": "gene"}, {"id": "COPRS", "group": "gene"}, {"id": "AGT", "group": "important"}, {"id": "IL6", "group": "important"}, {"id": "A2M", "group": "gene"}, {"id": "NLRP3", "group": "important"}, {"id": "TLR4", "group": "important"}, {"id": "TNFSF9", "group": "gene"}, {"id": "RPL18", "group": "gene"}, {"id": "F5", "group": "gene"}, {"id": "IVL", "group": "gene"}, {"id": "IL6R", "group": "gene"}, {"id": "CPB2", "group": "gene"}, {"id": "CCDC8", "group": "gene"}, {"id": "SERPINB6", "group": "gene"}, {"id": "MBL2", "group": "important"}, {"id": "IL1B", "group": "important"}, {"id": "HIST1H3E", "group": "gene"}, {"id": "IL24", "group": "gene"}, {"id": "GSDMB", "group": "gene"}, {"id": "NOTCH2", "group": "gene"}, {"id": "F2", "group": "important"}, {"id": "CCR5", "group": "important"}, {"id": "SERPINB8", "group": "gene"}, {"id": "KRT1", "group": "gene"}, {"id": "IL1RN", "group": "important"}, {"id": "PLAT", "group": "gene"}, {"id": "URB1", "group": "gene"}, {"id": "FCF1", "group": "gene"}, {"id": "ACE", "group": "important"}, {"id": "THBS3", "group": "gene"}, {"id": "CALML3", "group": "gene"}, {"id": "PSMA5", "group": "gene"}, {"id": "NDUFA3", "group": "gene"}, {"id": "PARK2", "group": "gene"}, {"id": "FANCB", "group": "gene"}, {"id": "SERPINB2", "group": "gene"}, {"id": "KLRG2", "group": "gene"}, {"id": "FAM19A3", "group": "gene"}, {"id": "CRYZL1", "group": "gene"}, {"id": "HEATR1", "group": "gene"}, {"id": "IGHG2", "group": "gene"}, {"id": "C17orf70", "group": "gene"}, {"id": "TINAG", "group": "gene"}, {"id": "RSPRY1", "group": "gene"}, {"id": "TMPRSS11A", "group": "gene"}, {"id": "SLC18A1", "group": "gene"}, {"id": "PSMD1", "group": "gene"}, {"id": "PCDHB15", "group": "gene"}, {"id": "TSR3", "group": "gene"}, {"id": "FGL1", "group": "gene"}, {"id": "C7orf60", "group": "gene"}, {"id": "SSR3", "group": "gene"}, {"id": "REN", "group": "gene"}, {"id": "MYH14", "group": "gene"}, {"id": "TBCK", "group": "gene"}, {"id": "DARS", "group": "gene"}, {"id": "C16orf70", "group": "gene"}, {"id": "DQX1", "group": "gene"}, {"id": "RPL30", "group": "gene"}, {"id": "FBXO30", "group": "gene"}, {"id": "EPPK1", "group": "gene"}, {"id": "LAMA1", "group": "gene"}, {"id": "AP4E1", "group": "gene"}, {"id": "AP4S1", "group": "gene"}, {"id": "HIST1H1B", "group": "gene"}, {"id": "AFP", "group": "gene"}], "edges": [{"from": "DEFA1", "to": "PLAT", "group": "default"}, {"from": "DEFA1", "to": "IGFBP2", "group": "default"}, {"from": "CST6", "to": "FCF1", "group": "default"}, {"from": "CST6", "to": "NOTCH2", "group": "default"}, {"from": "IGFBP2", "to": "GSDMB", "group": "default"}, {"from": "TNFSF8", "to": "F5", "group": "default"}, {"from": "TNFSF8", "to": "TNFSF9", "group": "default"}, {"from": "COPRS", "to": "HIST1H3E", "group": "default"}, {"from": "COPRS", "to": "IL6R", "group": "default"}, {"from": "AGT", "to": "ACE", "group": "default"}, {"from": "AGT", "to": "GSDMB", "group": "default"}, {"from": "AGT", "to": "NDUFA3", "group": "default"}, {"from": "AGT", "to": "REN", "group": "default"}, {"from": "IL6", "to": "IL6R", "group": "default"}, {"from": "A2M", "to": "IL1B", "group": "default"}, {"from": "A2M", "to": "CPB2", "group": "default"}, {"from": "NLRP3", "to": "URB1", "group": "default"}, {"from": "NLRP3", "to": "HIST1H1B", "group": "default"}, {"from": "TLR4", "to": "TNFSF9", "group": "default"}, {"from": "TNFSF9", "to": "KLRG2", "group": "default"}, {"from": "RPL18", "to": "FCF1", "group": "default"}, {"from": "RPL18", "to": "URB1", "group": "default"}, {"from": "F5", "to": "F2", "group": "default"}, {"from": "F5", "to": "CCDC8", "group": "default"}, {"from": "F5", "to": "KLRG2", "group": "default"}, {"from": "IVL", "to": "FCF1", "group": "default"}, {"from": "IVL", "to": "KRT1", "group": "default"}, {"from": "IL6R", "to": "FANCB", "group": "default"}, {"from": "IL6R", "to": "CRYZL1", "group": "default"}, {"from": "IL6R", "to": "C17orf70", "group": "default"}, {"from": "IL6R", "to": "TBCK", "group": "default"}, {"from": "CPB2", "to": "F2", "group": "default"}, {"from": "CPB2", "to": "TINAG", "group": "default"}, {"from": "CCDC8", "to": "HEATR1", "group": "default"}, {"from": "CCDC8", "to": "PSMD1", "group": "default"}, {"from": "CCDC8", "to": "DARS", "group": "default"}, {"from": "SERPINB6", "to": "F2", "group": "default"}, {"from": "SERPINB6", "to": "SERPINB8", "group": "default"}, {"from": "SERPINB6", "to": "TMPRSS11A", "group": "default"}, {"from": "SERPINB6", "to": "C16orf70", "group": "default"}, {"from": "MBL2", "to": "KRT1", "group": "default"}, {"from": "IL24", "to": "NOTCH2", "group": "default"}, {"from": "IL24", "to": "CCR5", "group": "default"}, {"from": "F2", "to": "PLAT", "group": "default"}, {"from": "CCR5", "to": "PSMA5", "group": "default"}, {"from": "CCR5", "to": "AFP", "group": "default"}, {"from": "SERPINB8", "to": "FCF1", "group": "default"}, {"from": "IL1RN", "to": "FCF1", "group": "default"}, {"from": "PLAT", "to": "SERPINB2", "group": "default"}, {"from": "PLAT", "to": "FGL1", "group": "default"}, {"from": "PLAT", "to": "LAMA1", "group": "default"}, {"from": "FCF1", "to": "CALML3", "group": "default"}, {"from": "FCF1", "to": "SERPINB2", "group": "default"}, {"from": "FCF1", "to": "IGHG2", "group": "default"}, {"from": "FCF1", "to": "MYH14", "group": "default"}, {"from": "FCF1", "to": "RPL30", "group": "default"}, {"from": "FCF1", "to": "EPPK1", "group": "default"}, {"from": "THBS3", "to": "NDUFA3", "group": "default"}, {"from": "THBS3", "to": "FANCB", "group": "default"}, {"from": "CALML3", "to": "PARK2", "group": "default"}, {"from": "PSMA5", "to": "PARK2", "group": "default"}, {"from": "PSMA5", "to": "HEATR1", "group": "default"}, {"from": "PSMA5", "to": "PSMD1", "group": "default"}, {"from": "PSMA5", "to": "DARS", "group": "default"}, {"from": "NDUFA3", "to": "SLC18A1", "group": "default"}, {"from": "NDUFA3", "to": "DQX1", "group": "default"}, {"from": "FAM19A3", "to": "CRYZL1", "group": "default"}, {"from": "RSPRY1", "to": "TMPRSS11A", "group": "default"}, {"from": "RSPRY1", "to": "SLC18A1", "group": "default"}, {"from": "PCDHB15", "to": "SSR3", "group": "default"}, {"from": "PCDHB15", "to": "TBCK", "group": "default"}, {"from": "TSR3", "to": "FGL1", "group": "default"}, {"from": "TSR3", "to": "C7orf60", "group": "default"}, {"from": "C7orf60", "to": "REN", "group": "default"}, {"from": "SSR3", "to": "MYH14", "group": "default"}, {"from": "C16orf70", "to": "FBXO30", "group": "default"}, {"from": "DQX1", "to": "FBXO30", "group": "default"}, {"from": "LAMA1", "to": "AP4E1", "group": "default"}, {"from": "AP4E1", "to": "AP4S1", "group": "default"}, {"from": "AP4S1", "to": "AFP", "group": "default"}]}'> + network='{"nodes": [{"id": "DEFA1", "group": "gene"},{"id": "DEFA1", "group": "gene"}, {"id": "CST6", "group": "gene"}, {"id": "IGFBP2", "group": "gene"}, {"id": "TNFSF8", "group": "gene"}, {"id": "COPRS", "group": "gene"}, {"id": "AGT", "group": "important"}, {"id": "IL6", "group": "important"}, {"id": "A2M", "group": "gene"}, {"id": "NLRP3", "group": "important"}, {"id": "TLR4", "group": "important"}, {"id": "TNFSF9", "group": "gene"}, {"id": "RPL18", "group": "gene"}, {"id": "F5", "group": "gene"}, {"id": "IVL", "group": "gene"}, {"id": "IL6R", "group": "gene"}, {"id": "CPB2", "group": "gene"}, {"id": "CCDC8", "group": "gene"}, {"id": "SERPINB6", "group": "gene"}, {"id": "MBL2", "group": "important"}, {"id": "IL1B", "group": "important"}, {"id": "HIST1H3E", "group": "gene"}, {"id": "IL24", "group": "gene"}, {"id": "GSDMB", "group": "gene"}, {"id": "NOTCH2", "group": "gene"}, {"id": "F2", "group": "important"}, {"id": "CCR5", "group": "important"}, {"id": "SERPINB8", "group": "gene"}, {"id": "KRT1", "group": "gene"}, {"id": "IL1RN", "group": "important"}, {"id": "PLAT", "group": "gene"}, {"id": "URB1", "group": "gene"}, {"id": "FCF1", "group": "gene"}, {"id": "ACE", "group": "important"}, {"id": "THBS3", "group": "gene"}, {"id": "CALML3", "group": "gene"}, {"id": "PSMA5", "group": "gene"}, {"id": "NDUFA3", "group": "gene"}, {"id": "PARK2", "group": "gene"}, {"id": "FANCB", "group": "gene"}, {"id": "SERPINB2", "group": "gene"}, {"id": "KLRG2", "group": "gene"}, {"id": "FAM19A3", "group": "gene"}, {"id": "CRYZL1", "group": "gene"}, {"id": "HEATR1", "group": "gene"}, {"id": "IGHG2", "group": "gene"}, {"id": "C17orf70", "group": "gene"}, {"id": "TINAG", "group": "gene"}, {"id": "RSPRY1", "group": "gene"}, {"id": "TMPRSS11A", "group": "gene"}, {"id": "SLC18A1", "group": "gene"}, {"id": "PSMD1", "group": "gene"}, {"id": "PCDHB15", "group": "gene"}, {"id": "TSR3", "group": "gene"}, {"id": "FGL1", "group": "gene"}, {"id": "C7orf60", "group": "gene"}, {"id": "SSR3", "group": "gene"}, {"id": "REN", "group": "gene"}, {"id": "MYH14", "group": "gene"}, {"id": "TBCK", "group": "gene"}, {"id": "DARS", "group": "gene"}, {"id": "C16orf70", "group": "gene"}, {"id": "DQX1", "group": "gene"}, {"id": "RPL30", "group": "gene"}, {"id": "FBXO30", "group": "gene"}, {"id": "EPPK1", "group": "gene"}, {"id": "LAMA1", "group": "gene"}, {"id": "AP4E1", "group": "gene"}, {"id": "AP4S1", "group": "gene"}, {"id": "HIST1H1B", "group": "gene"}, {"id": "AFP", "group": "gene"}], "edges": [{"from": "DEFA1", "to": "PLAT", "group": "default"}, {"from": "DEFA1", "to": "IGFBP2", "group": "default"}, {"from": "CST6", "to": "FCF1", "group": "default"}, {"from": "CST6", "to": "NOTCH2", "group": "default"}, {"from": "IGFBP2", "to": "GSDMB", "group": "default"}, {"from": "TNFSF8", "to": "F5", "group": "default"}, {"from": "TNFSF8", "to": "TNFSF9", "group": "default"}, {"from": "COPRS", "to": "HIST1H3E", "group": "default"}, {"from": "COPRS", "to": "IL6R", "group": "default"}, {"from": "AGT", "to": "ACE", "group": "default"}, {"from": "AGT", "to": "GSDMB", "group": "default"}, {"from": "AGT", "to": "NDUFA3", "group": "default"}, {"from": "AGT", "to": "REN", "group": "default"}, {"from": "IL6", "to": "IL6R", "group": "default"}, {"from": "A2M", "to": "IL1B", "group": "default"}, {"from": "A2M", "to": "CPB2", "group": "default"}, {"from": "NLRP3", "to": "URB1", "group": "default"}, {"from": "NLRP3", "to": "HIST1H1B", "group": "default"}, {"from": "TLR4", "to": "TNFSF9", "group": "default"}, {"from": "TNFSF9", "to": "KLRG2", "group": "default"}, {"from": "RPL18", "to": "FCF1", "group": "default"}, {"from": "RPL18", "to": "URB1", "group": "default"}, {"from": "F5", "to": "F2", "group": "default"}, {"from": "F5", "to": "CCDC8", "group": "default"}, {"from": "F5", "to": "KLRG2", "group": "default"}, {"from": "IVL", "to": "FCF1", "group": "default"}, {"from": "IVL", "to": "KRT1", "group": "default"}, {"from": "IL6R", "to": "FANCB", "group": "default"}, {"from": "IL6R", "to": "CRYZL1", "group": "default"}, {"from": "IL6R", "to": "C17orf70", "group": "default"}, {"from": "IL6R", "to": "TBCK", "group": "default"}, {"from": "CPB2", "to": "F2", "group": "default"}, {"from": "CPB2", "to": "TINAG", "group": "default"}, {"from": "CCDC8", "to": "HEATR1", "group": "default"}, {"from": "CCDC8", "to": "PSMD1", "group": "default"}, {"from": "CCDC8", "to": "DARS", "group": "default"}, {"from": "SERPINB6", "to": "F2", "group": "default"}, {"from": "SERPINB6", "to": "SERPINB8", "group": "default"}, {"from": "SERPINB6", "to": "TMPRSS11A", "group": "default"}, {"from": "SERPINB6", "to": "C16orf70", "group": "default"}, {"from": "MBL2", "to": "KRT1", "group": "default"}, {"from": "IL24", "to": "NOTCH2", "group": "default"}, {"from": "IL24", "to": "CCR5", "group": "default"}, {"from": "F2", "to": "PLAT", "group": "default"}, {"from": "CCR5", "to": "PSMA5", "group": "default"}, {"from": "CCR5", "to": "AFP", "group": "default"}, {"from": "SERPINB8", "to": "FCF1", "group": "default"}, {"from": "IL1RN", "to": "FCF1", "group": "default"}, {"from": "PLAT", "to": "SERPINB2", "group": "default"}, {"from": "PLAT", "to": "FGL1", "group": "default"}, {"from": "PLAT", "to": "LAMA1", "group": "default"}, {"from": "FCF1", "to": "CALML3", "group": "default"}, {"from": "FCF1", "to": "SERPINB2", "group": "default"}, {"from": "FCF1", "to": "IGHG2", "group": "default"}, {"from": "FCF1", "to": "MYH14", "group": "default"}, {"from": "FCF1", "to": "RPL30", "group": "default"}, {"from": "FCF1", "to": "EPPK1", "group": "default"}, {"from": "THBS3", "to": "NDUFA3", "group": "default"}, {"from": "THBS3", "to": "FANCB", "group": "default"}, {"from": "CALML3", "to": "PARK2", "group": "default"}, {"from": "PSMA5", "to": "PARK2", "group": "default"}, {"from": "PSMA5", "to": "HEATR1", "group": "default"}, {"from": "PSMA5", "to": "PSMD1", "group": "default"}, {"from": "PSMA5", "to": "DARS", "group": "default"}, {"from": "NDUFA3", "to": "SLC18A1", "group": "default"}, {"from": "NDUFA3", "to": "DQX1", "group": "default"}, {"from": "FAM19A3", "to": "CRYZL1", "group": "default"}, {"from": "RSPRY1", "to": "TMPRSS11A", "group": "default"}, {"from": "RSPRY1", "to": "SLC18A1", "group": "default"}, {"from": "PCDHB15", "to": "SSR3", "group": "default"}, {"from": "PCDHB15", "to": "TBCK", "group": "default"}, {"from": "TSR3", "to": "FGL1", "group": "default"}, {"from": "TSR3", "to": "C7orf60", "group": "default"}, {"from": "C7orf60", "to": "REN", "group": "default"}, {"from": "SSR3", "to": "MYH14", "group": "default"}, {"from": "C16orf70", "to": "FBXO30", "group": "default"}, {"from": "DQX1", "to": "FBXO30", "group": "default"}, {"from": "LAMA1", "to": "AP4E1", "group": "default"}, {"from": "AP4E1", "to": "AP4S1", "group": "default"}, {"from": "AP4S1", "to": "AFP", "group": "default"}]}'> </drugst-one> diff --git a/src/version.ts b/src/version.ts index b8eb2903..cb13b55d 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const version = 'v1.1.16-rc9'; +export const version = 'v1.1.16-rc10'; -- GitLab