From f7e7a0f5674fc2d185ea814ba620eae52b5dba3f Mon Sep 17 00:00:00 2001
From: Julian Matschinske <ge93nar@mytum.de>
Date: Thu, 4 Jun 2020 19:40:09 +0200
Subject: [PATCH] Fix betweenness

---
 .../info-tile/info-tile.component.html        |  2 +-
 .../launch-analysis.component.html            | 30 +++++++++++++++++++
 .../launch-analysis.component.ts              |  8 +++++
 3 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/src/app/components/info-tile/info-tile.component.html b/src/app/components/info-tile/info-tile.component.html
index abc58f66..26cbec22 100644
--- a/src/app/components/info-tile/info-tile.component.html
+++ b/src/app/components/info-tile/info-tile.component.html
@@ -51,7 +51,7 @@
     <p *ngIf="wrapper.data.inTrial">
       <b>In trial(s) </b> <span class="icon is-small"><i class="fas fa-check"></i></span>
     </p>
-    <div *ngIf="wrapper.data.trialLinks.length > 0" class="list">
+    <div *ngIf="wrapper.data.inTrial && wrapper.data.trialLinks.length > 0" class="list">
       <div *ngFor="let link of wrapper.data.trialLinks" class="list-item">
         <a [href]="link" target="_blank">{{beautify(link)}}</a>
       </div>
diff --git a/src/app/dialogs/launch-analysis/launch-analysis.component.html b/src/app/dialogs/launch-analysis/launch-analysis.component.html
index 04521325..3fee026f 100644
--- a/src/app/dialogs/launch-analysis/launch-analysis.component.html
+++ b/src/app/dialogs/launch-analysis/launch-analysis.component.html
@@ -331,6 +331,36 @@
           </div>
         </div>
 
+        <div class="field">
+          <label class="label" for="betweenness-md">Maximum degree</label>
+          <div class="control">
+            <input [(ngModel)]="betweennessMaxDeg" id="betweenness-md" class="input" type="number"
+                   placeholder="Maximum degree" min="0" max="1" required>
+          </div>
+          <p class="help">
+            All nodes with degree greater than this value will be ignored. Disabled if equal to 0.
+          </p>
+        </div>
+
+        <div class="field">
+          <label class="label" for="betweenness-hp">Hub penalty</label>
+          <div class="control">
+            <input [(ngModel)]="betweennessHubPenalty" id="betweenness-hp" class="input" type="number"
+                   placeholder="Maximum degree" min="0" max="1" required>
+          </div>
+          <p class="help">
+            Penalty parameter for hubs.
+          </p>
+        </div>
+
+        <div class="field">
+          <label class="label">Include non-seed viral proteins</label>
+          <app-toggle textOn="Include" textOff="Ignore"
+                      tooltipOn="Include viral proteins that are not seeds."
+                      tooltipOff="Exclude viral proteins that are not seeds."
+                      [(value)]="betweennessIncludeViralNonSeeds"></app-toggle>
+        </div>
+
         <div class="box">
           <article class="media">
             <div class="media-left">
diff --git a/src/app/dialogs/launch-analysis/launch-analysis.component.ts b/src/app/dialogs/launch-analysis/launch-analysis.component.ts
index 640fc909..8fe85ae8 100644
--- a/src/app/dialogs/launch-analysis/launch-analysis.component.ts
+++ b/src/app/dialogs/launch-analysis/launch-analysis.component.ts
@@ -61,6 +61,9 @@ export class LaunchAnalysisComponent implements OnInit, OnChanges {
   public proximityResultSize = 20;
 
   // Betweenness Parameters
+  public betweennessIncludeViralNonSeeds = true;
+  public betweennessMaxDeg = 0;
+  public betweennessHubPenalty = 0.0;
   public betweennessResultSize = 20;
 
   // Keypathwayminer Parameters
@@ -144,6 +147,11 @@ export class LaunchAnalysisComponent implements OnInit, OnChanges {
       parameters.hub_penalty = this.proximityHubPenalty;
       parameters.result_size = this.proximityResultSize;
     } else if (this.algorithm === 'betweenness') {
+      parameters.ignore_non_seed_baits = !this.betweennessIncludeViralNonSeeds;
+      if (this.betweennessMaxDeg && this.betweennessMaxDeg > 0) {
+        parameters.max_deg = this.betweennessMaxDeg;
+      }
+      parameters.hub_penalty = this.betweennessHubPenalty;
       parameters.result_size = this.betweennessResultSize;
     } else if (this.algorithm === 'keypathwayminer') {
       parameters.k = this.keypathwayminerK;
-- 
GitLab