From 289263c6aba27278c190881736c0c8e87eb43067 Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Tue, 31 Jan 2023 17:46:57 +0100 Subject: [PATCH] added modular linkout line to info panel --- .../info-tile/info-tile.component.html | 39 +++++++++++-------- .../info-tile/info-tile.component.ts | 37 +++++++++++++++++- src/index.html | 12 +++--- 3 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/app/components/info-tile/info-tile.component.html b/src/app/components/info-tile/info-tile.component.html index fa82534b..a7b9aabe 100644 --- a/src/app/components/info-tile/info-tile.component.html +++ b/src/app/components/info-tile/info-tile.component.html @@ -29,7 +29,6 @@ </p> - <p *ngIf="wrapper.data.uniprot" [ngClass]="{ 'text-normal': drugstoneConfig.smallStyle }" @@ -74,11 +73,11 @@ [ngClass]="{ 'text-normal': drugstoneConfig.smallStyle }" > <b - ><span - >Median expression in - {{ "'" + networkHandler.activeNetwork.selectedTissue.name + "'" }} - (TPM):</span - ></b + ><span + >Median expression in + {{ "'" + networkHandler.activeNetwork.selectedTissue.name + "'" }} + (TPM):</span + ></b > <span class="is-capitalized"> {{ getExpressionScore() | number }}</span> <span @@ -104,10 +103,10 @@ <b><span>ICD10:</span></b> <span class="is-capitalized"> {{ - wrapper.data.icd10.length === 0 || - (wrapper.data.icd10.length === 1 && wrapper.data.icd10[0].length === 0) - ? "-" - : wrapper.data.icd10 + wrapper.data.icd10.length === 0 || + (wrapper.data.icd10.length === 1 && wrapper.data.icd10[0].length === 0) + ? "-" + : wrapper.data.icd10 }}</span > </p> @@ -137,6 +136,13 @@ <span class="is-capitalized"> MONDO:{{ wrapper.data.disorderId }}</span> </a> </p> +<p *ngIf="showLinks()" + [ngClass]="{ 'text-normal': drugstoneConfig.smallStyle }"> + <b><span>Links:</span></b> + <span *ngFor="let target of linkoutMap | keyvalue " > + <a *ngIf="showLinkout(target.key)" [href]="getLinkoutURL(target.key)" target="_blank"> {{target.value}}</a> + </span> +</p> <p *ngIf=" drugstoneConfig.currentConfig().nodeGroups[ @@ -153,16 +159,17 @@ <b><span>Group:</span></b> <span class="is-capitalized"> {{ - drugstoneConfig.currentConfig().nodeGroups[ - networkHandler.activeNetwork.selectedWrapper.data[ - networkHandler.activeNetwork.selectedWrapper.data.group === - "selectedNode" - ? "_group" - : "group" + drugstoneConfig.currentConfig().nodeGroups[ + networkHandler.activeNetwork.selectedWrapper.data[ + networkHandler.activeNetwork.selectedWrapper.data.group === + "selectedNode" + ? "_group" + : "group" ] ].groupName }}</span > + </p> <app-toggle diff --git a/src/app/components/info-tile/info-tile.component.ts b/src/app/components/info-tile/info-tile.component.ts index 9ae830a2..e857bbed 100644 --- a/src/app/components/info-tile/info-tile.component.ts +++ b/src/app/components/info-tile/info-tile.component.ts @@ -3,6 +3,7 @@ import {DrugstoneConfigService} from 'src/app/services/drugstone-config/drugston import {Wrapper} from '../../interfaces'; import {AnalysisService} from '../../services/analysis/analysis.service'; import {NetworkHandlerService} from '../../services/network-handler/network-handler.service'; +import {validateComponent} from 'codelyzer/walkerFactory/walkerFn'; @Component({ @@ -14,6 +15,8 @@ export class InfoTileComponent implements OnInit { @Input() public wrapper: Wrapper; @Input() public expressions: any; + public linkoutMap = {iid: 'IID'}; + constructor(public drugstoneConfig: DrugstoneConfigService, public analysis: AnalysisService, public networkHandler: NetworkHandlerService) { } @@ -22,7 +25,7 @@ export class InfoTileComponent implements OnInit { } public getExpressionScore() { - return this.expressions[this.wrapper.id] + return this.expressions[this.wrapper.id]; } public beautify(url: string): string { @@ -46,4 +49,36 @@ export class InfoTileComponent implements OnInit { } return out; } + + showLinks() { + const idSpace = this.drugstoneConfig.currentConfig().identifier; + const iidActive = (['symbol', 'uniprot', 'entrez'].includes(idSpace) && this.wrapper.data[idSpace] != null) || this.wrapper.data.uniprot != null; + return iidActive; + } + + showLinkout(target) { + const idSpace = this.drugstoneConfig.currentConfig().identifier; + switch (target) { + case 'iid': + return (['symbol', 'uniprot', 'entrez'].includes(idSpace) && this.wrapper.data[idSpace] != null) || this.wrapper.data.uniprot != null; + } + return false; + } + + getIIDQuery() { + const idSpace = this.drugstoneConfig.currentConfig().identifier; + if (['symbol', 'uniprot', 'entrez'].includes(idSpace) && this.wrapper.data[idSpace] != null) { + return this.wrapper.data[idSpace][0]; + } + return this.wrapper.data.uniprot[0]; + } + + getLinkoutURL(target) { + // const idSpace = this.drugstoneConfig.currentConfig().identifier; + switch (target) { + case 'iid': + return 'http://iid.ophid.utoronto.ca/SearchPPIs/protein/' + this.getIIDQuery(); + } + return ''; + } } diff --git a/src/index.html b/src/index.html index 6e573bd8..46feb301 100644 --- a/src/index.html +++ b/src/index.html @@ -118,12 +118,12 @@ menu<br> <!-- network='{"nodes":[{"id":"CFTr","group":"important","label":"CFTR"},{"id":"TGFB1","group":"gene","label":"TGFB1"},{"id":"TNFRSF1A","group":"gene","label":"TNFRSF1A"},{"id":"FCGR2A","group":"gene","label":"FCGR2A"},{"id":"ENG","group":"gene","label":"ENG"},{"id":"DCTN4","group":"gene","label":"DCTN4"},{"id":"CLCA4","group":"gene","label":"CLCA4"},{"id":"STX1A","group":"gene","label":"STX1A"},{"id":"SCNN1G","group":"gene","label":"SCNN1G"},{"id":"SCNN1A","group":"gene","label":"SCNN1A"},{"id":"SCNN1B","group":"gene","label":"SCNN1B"}],"edges":[{"from":"DCTN4","to":"CFTR", "weight": "5"},{"from":"STX1A","to":"SCNN1B","group":"default"},{"from":"SCNN1A","to":"SCNN1G","group":"default"},{"from":"SCNN1B","to":"SCNN1G","group":"default"}]}'>--> <!-- ></drugst-one>--> - <!-- <drugst-one id="netexp1"--> - <!-- pluginId="2"--> - <!-- groups='{"nodeGroups":{}}'--> - <!-- config='{"identifier":"entrez","title":"Breast cancer example network","nodeShadow":true,"edgeShadow":false,"autofillEdges":true,"interactionProteinProtein":"STRING","selfReferences":false}'--> - <!-- network='{"nodes":[{"id":"7040","label":"7040"}]}'>--> - <!-- </drugst-one>--> +<!-- <drugst-one id="netexp1"--> +<!-- pluginId="2"--> +<!-- groups='{"nodeGroups":{}}'--> +<!-- config='{"identifier":"entrez","title":"Breast cancer example network","nodeShadow":true,"edgeShadow":false,"autofillEdges":true,"interactionProteinProtein":"STRING","selfReferences":false}'--> +<!-- network='{"nodes":[{"id":"7040","label":"7040"}]}'>--> +<!-- </drugst-one>--> <!--ENSEMBL test--> -- GitLab