From 7f6059103ba1e00a2b3dd44536e49938bcf1cfdd Mon Sep 17 00:00:00 2001 From: AndiMajore <andi.majore@googlemail.com> Date: Fri, 4 Nov 2022 21:01:17 +0100 Subject: [PATCH] added tissue based tmp normalization --- .../components/info-tile/info-tile.component.html | 4 ++-- src/app/components/network/network.component.ts | 14 ++++++++++---- .../netex-controller/netex-controller.service.ts | 7 +++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/app/components/info-tile/info-tile.component.html b/src/app/components/info-tile/info-tile.component.html index 9b1cf0a4..5906f7e2 100644 --- a/src/app/components/info-tile/info-tile.component.html +++ b/src/app/components/info-tile/info-tile.component.html @@ -72,11 +72,11 @@ *ngIf="getExpressionScore() != null" [ngClass]="{ 'text-normal': drugstoneConfig.smallStyle }" > - <b><span>Expression:</span></b> + <b><span>Median tissue expression (TPM):</span></b> <span class="is-capitalized"> {{ getExpressionScore() | number }}</span> <span class="icon has-text-info" - pTooltip="Tissue expression data is provided by the GTEx project. Unit is transcript per million." + pTooltip="Median expression data is provided by the GTEx project. Unit is TPM (transcript per million)." [tooltipStyleClass]="'drgstn drgstn-tooltip drgstn-tooltip-left'" tooltipPosition="left" > diff --git a/src/app/components/network/network.component.ts b/src/app/components/network/network.component.ts index fbd90923..5487e379 100644 --- a/src/app/components/network/network.component.ts +++ b/src/app/components/network/network.component.ts @@ -426,7 +426,7 @@ export class NetworkComponent implements OnInit { proteinNodes.push(element); } }); - this.netex.tissueExpressionGenes(this.selectedTissue, proteinNodes).subscribe((response) => { + this.netex.tissueExpressionGenes(this.selectedTissue, proteinNodes).subscribe(async (response) => { this.expressionMap = response; const updatedNodes = []; this.nodeRenderer = pieChartContextRenderer; @@ -443,7 +443,13 @@ export class NetworkComponent implements OnInit { }); } }); - const maxExpr = Math.max(...Object.values(this.expressionMap)); + let maxExpr = 1_000_000; + await this.netex.maxTissueExpression(this.selectedTissue).then(response => { + maxExpr = response.max; + }).catch(err => { + console.error(err); + maxExpr = Math.max(...Object.values(this.expressionMap)); + }); const exprMap = {}; for (const [drugstoneId, expressionlvl] of Object.entries(this.expressionMap)) { networkIdMapping[drugstoneId].forEach(networkId => { @@ -501,7 +507,7 @@ export class NetworkComponent implements OnInit { } public getGradient(nodeId: string) { - return (Object.keys(this.gradientMap).length && this.gradientMap[nodeId] != null) ? this.gradientMap[nodeId] : 1.0; + return (Object.keys(this.gradientMap).length && this.gradientMap[nodeId] != null) ? this.gradientMap[nodeId] : 1.0; } /** @@ -542,7 +548,7 @@ export class NetworkComponent implements OnInit { this.nodeRenderer ) ), - updatedNodes.push(node); + updatedNodes.push(node); } this.nodeData.nodes.update(updatedNodes); this.loadingScreen.stateUpdate(false); diff --git a/src/app/services/netex-controller/netex-controller.service.ts b/src/app/services/netex-controller/netex-controller.service.ts index f4aa4e37..e54280e5 100644 --- a/src/app/services/netex-controller/netex-controller.service.ts +++ b/src/app/services/netex-controller/netex-controller.service.ts @@ -47,6 +47,13 @@ export class NetexControllerService { return this.http.post('https://api.digest-validation.net/set', payload).toPromise(); } + public maxTissueExpression(tissue: Tissue): Promise<any> { + const params = new HttpParams() + .set('tissue', tissue.drugstoneId); + return this.http.get(environment.backend + 'tissue_max_expression/', {params}).toPromise(); + } + + public tissueExpressionGenes(tissue: Tissue, nodes: Node[]): Observable<any> { /** * Returns the expression in the given tissue for given nodes and cancerNodes -- GitLab