diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html
index 04f20ef31a2b64cfe26155dc7ba98f96bc75260f..a65196b7089f59f7717194d6c29b939c42ab7738 100644
--- a/src/app/pages/explorer-page/explorer-page.component.html
+++ b/src/app/pages/explorer-page/explorer-page.component.html
@@ -48,23 +48,23 @@
       </header>
       <div class="card-content">
         <div class="content">
-          <nav class="level">
+          <nav class="level" *ngIf="proteinData">
             <div class="level-item has-text-centered">
               <div>
                 <p class="heading">Effects</p>
-                <p class="title"> {{ numberOfEffects }}</p>
+                <p class="title"> {{ proteinData.effects.length }}</p>
               </div>
             </div>
             <div class="level-item has-text-centered">
               <div>
                 <p class="heading">Protein Groups</p>
-                <p class="title">{{ numberOfProteinGroups }}</p>
+                <p class="title">{{ proteinData.proteinGroups.length }}</p>
               </div>
             </div>
             <div class="level-item has-text-centered">
               <div>
                 <p class="heading">Interactions</p>
-                <p class="title">{{ numberOfInteractions }}</p>
+                <p class="title">{{ proteinData.edges.length }}</p>
               </div>
             </div>
           </nav>
@@ -102,10 +102,14 @@
       <div class="card-content">
         <div class="content">
           <p><b>Baits</b></p>
-          <label class="checkbox" *ngFor="let baitName of baitNames">
-            <input type="checkbox" class="checkbox">
-            {{ baitName }}
-          </label>
+          <div class="bait-frame">
+            <div *ngFor="let bait of baitProteins">
+              <label class="checkbox">
+                <input type="checkbox" class="checkbox" [ngModel]="bait.checked" (ngModelChange)="bait.checked = $event; filterNodes()">
+                Bait {{ bait.data.name }}
+              </label>
+            </div>
+          </div>
         </div>
       </div>
       <footer class="card-footer">
diff --git a/src/app/pages/explorer-page/explorer-page.component.scss b/src/app/pages/explorer-page/explorer-page.component.scss
index 230c9db23bc69c20eda1da9a21c0b05c93ebbbdb..378457d713ef9525321187bcf190f3f6cfe27333 100644
--- a/src/app/pages/explorer-page/explorer-page.component.scss
+++ b/src/app/pages/explorer-page/explorer-page.component.scss
@@ -7,3 +7,8 @@
 .card-block{
   height: 100%;
 }
+
+.bait-frame {
+  height: 300px;
+  overflow: scroll;
+}
diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts
index 814ca57730befd38450de0e6cdee8fbcffc9a65c..b7b63484ab7c7c13bc1f6c57702058d0228ce8aa 100644
--- a/src/app/pages/explorer-page/explorer-page.component.ts
+++ b/src/app/pages/explorer-page/explorer-page.component.ts
@@ -1,6 +1,8 @@
 import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';
 import {ActivatedRoute, Router} from '@angular/router';
-import {Network, Edge, Node} from 'vis-network';
+import {Effect, ProteinNetwork} from '../protein-network';
+
+declare var vis: any;
 
 @Component({
   selector: 'app-explorer-page',
@@ -17,11 +19,14 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
   public proteinACs: Array<string> = [];
   public baitNames: Array<string> = [];
 
-  public numberOfInteractions = 0;
-  public numberOfEffects = 0;
-  public numberOfProteinGroups = 0;
+  public baitProteins: Array<{ checked: boolean; data: Effect }> = [];
+
+  public proteinData: ProteinNetwork;
 
-  private network: Network;
+  private network: any;
+  private nodeData: { nodes: any, edges: any } = {nodes: null, edges: null};
+
+  private seed = 1;  // TODO: Remove this
 
   @ViewChild('network', {static: false}) networkEl: ElementRef;
 
@@ -65,12 +70,9 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
   ngOnInit() {
   }
 
-  ngAfterViewInit() {
-    console.log(this.network);
-    if (this.network) {
-      return;
-    } else {
-      this.createNetwork();
+  async ngAfterViewInit() {
+    if (!this.network) {
+      await this.createNetwork();
     }
   }
 
@@ -96,817 +98,35 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
     await this.router.navigate(['explorer']);
   }
 
-  private createNetwork() {
-    // create an array with nodes
-    const nodes: Node[] = [
-      {id: 0, label: 'pg0', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 1, label: 'pg1', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 2, label: 'pg2', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 3, label: 'pg3', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 4, label: 'pg4', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 5, label: 'pg5', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 6, label: 'pg6', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 7, label: 'pg7', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 8, label: 'pg8', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 9, label: 'pg9', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 10, label: 'pg10', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 11, label: 'pg11', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 12, label: 'pg12', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 13, label: 'pg13', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 14, label: 'pg14', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 15, label: 'pg15', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 16, label: 'pg16', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 17, label: 'pg17', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 18, label: 'pg18', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 19, label: 'pg19', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 20, label: 'pg20', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 21, label: 'pg21', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 22, label: 'pg22', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 23, label: 'pg23', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 24, label: 'pg24', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 25, label: 'pg25', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 26, label: 'pg26', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 27, label: 'pg27', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 28, label: 'pg28', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 29, label: 'pg29', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 30, label: 'pg30', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 31, label: 'pg31', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 32, label: 'pg32', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 33, label: 'pg33', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 34, label: 'pg34', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 35, label: 'pg35', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 36, label: 'pg36', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 37, label: 'pg37', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 38, label: 'pg38', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 39, label: 'pg39', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 40, label: 'pg40', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 41, label: 'pg41', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 42, label: 'pg42', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 43, label: 'pg43', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 44, label: 'pg44', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 45, label: 'pg45', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 46, label: 'pg46', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 47, label: 'pg47', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 48, label: 'pg48', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 49, label: 'pg49', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 50, label: 'pg50', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 51, label: 'pg51', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 52, label: 'pg52', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 53, label: 'pg53', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 54, label: 'pg54', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 55, label: 'pg55', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 56, label: 'pg56', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 57, label: 'pg57', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 58, label: 'pg58', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 59, label: 'pg59', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 60, label: 'pg60', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 61, label: 'pg61', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 62, label: 'pg62', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 63, label: 'pg63', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 64, label: 'pg64', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 65, label: 'pg65', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 66, label: 'pg66', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 67, label: 'pg67', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 68, label: 'pg68', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 69, label: 'pg69', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 70, label: 'pg70', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 71, label: 'pg71', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 72, label: 'pg72', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 73, label: 'pg73', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 74, label: 'pg74', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 75, label: 'pg75', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 76, label: 'pg76', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 77, label: 'pg77', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 78, label: 'pg78', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 79, label: 'pg79', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 80, label: 'pg80', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 81, label: 'pg81', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 82, label: 'pg82', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 83, label: 'pg83', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 84, label: 'pg84', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 85, label: 'pg85', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 86, label: 'pg86', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 87, label: 'pg87', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 88, label: 'pg88', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 89, label: 'pg89', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 90, label: 'pg90', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 91, label: 'pg91', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 92, label: 'pg92', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 93, label: 'pg93', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 94, label: 'pg94', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 95, label: 'pg95', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 96, label: 'pg96', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 97, label: 'pg97', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 98, label: 'pg98', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 99, label: 'pg99', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 100, label: 'pg100', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 101, label: 'pg101', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 102, label: 'pg102', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 103, label: 'pg103', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 104, label: 'pg104', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 105, label: 'pg105', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 106, label: 'pg106', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 107, label: 'pg107', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 108, label: 'pg108', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 109, label: 'pg109', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 110, label: 'pg110', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 111, label: 'pg111', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 112, label: 'pg112', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 113, label: 'pg113', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 114, label: 'pg114', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 115, label: 'pg115', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 116, label: 'pg116', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 117, label: 'pg117', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 118, label: 'pg118', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 119, label: 'pg119', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 120, label: 'pg120', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 121, label: 'pg121', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 122, label: 'pg122', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 123, label: 'pg123', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 124, label: 'pg124', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 125, label: 'pg125', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 126, label: 'pg126', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 127, label: 'pg127', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 128, label: 'pg128', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 129, label: 'pg129', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 130, label: 'pg130', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 131, label: 'pg131', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 132, label: 'pg132', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 133, label: 'pg133', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 134, label: 'pg134', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 135, label: 'pg135', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 136, label: 'pg136', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 137, label: 'pg137', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 138, label: 'pg138', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 139, label: 'pg139', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 140, label: 'pg140', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 141, label: 'pg141', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 142, label: 'pg142', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 143, label: 'pg143', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 144, label: 'pg144', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 145, label: 'pg145', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 146, label: 'pg146', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 147, label: 'pg147', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 148, label: 'pg148', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 149, label: 'pg149', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 150, label: 'pg150', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 151, label: 'pg151', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 152, label: 'pg152', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 153, label: 'pg153', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 154, label: 'pg154', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 155, label: 'pg155', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 156, label: 'pg156', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 157, label: 'pg157', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 158, label: 'pg158', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 159, label: 'pg159', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 160, label: 'pg160', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 161, label: 'pg161', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 162, label: 'pg162', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 163, label: 'pg163', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 164, label: 'pg164', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 165, label: 'pg165', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 166, label: 'pg166', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 167, label: 'pg167', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 168, label: 'pg168', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 169, label: 'pg169', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 170, label: 'pg170', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 171, label: 'pg171', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 172, label: 'pg172', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 173, label: 'pg173', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 174, label: 'pg174', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 175, label: 'pg175', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 176, label: 'pg176', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 177, label: 'pg177', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 178, label: 'pg178', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 179, label: 'pg179', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 180, label: 'pg180', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 181, label: 'pg181', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 182, label: 'pg182', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 183, label: 'pg183', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 184, label: 'pg184', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 185, label: 'pg185', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 186, label: 'pg186', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 187, label: 'pg187', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 188, label: 'pg188', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 189, label: 'pg189', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 190, label: 'pg190', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 191, label: 'pg191', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 192, label: 'pg192', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 193, label: 'pg193', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 194, label: 'pg194', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 195, label: 'pg195', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 196, label: 'pg196', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 197, label: 'pg197', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 198, label: 'pg198', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 199, label: 'pg199', size: 5, color: '#ADADAD', shape: 'square', shadow: true},
-      {id: 200, label: 'eff0', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 201, label: 'eff1', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 202, label: 'eff2', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 203, label: 'eff3', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 204, label: 'eff4', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 205, label: 'eff5', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 206, label: 'eff6', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 207, label: 'eff7', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 208, label: 'eff8', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 209, label: 'eff9', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 210, label: 'eff10', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 211, label: 'eff11', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 212, label: 'eff12', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 213, label: 'eff13', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 214, label: 'eff14', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 215, label: 'eff15', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 216, label: 'eff16', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 217, label: 'eff17', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 218, label: 'eff18', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 219, label: 'eff19', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 220, label: 'eff20', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 221, label: 'eff21', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 222, label: 'eff22', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 223, label: 'eff23', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 224, label: 'eff24', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 225, label: 'eff25', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 226, label: 'eff26', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 227, label: 'eff27', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 228, label: 'eff28', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 229, label: 'eff29', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 230, label: 'eff30', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 231, label: 'eff31', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 232, label: 'eff32', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 233, label: 'eff33', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 234, label: 'eff34', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 235, label: 'eff35', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 236, label: 'eff36', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 237, label: 'eff37', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 238, label: 'eff38', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 239, label: 'eff39', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 240, label: 'eff40', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 241, label: 'eff41', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 242, label: 'eff42', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 243, label: 'eff43', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 244, label: 'eff44', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 245, label: 'eff45', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 246, label: 'eff46', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 247, label: 'eff47', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 248, label: 'eff48', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-      {id: 249, label: 'eff49', size: 10, color: '#118AB2', shape: 'circle', shadow: true},
-    ];
-
-    // create an array with edges
-    const edges: Edge[] = [
-      {from: 200, to: 154, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 116, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 181, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 22, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 126, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 130, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 111, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 30, color: {color: 'black', opacity: 0.5}},
-      {from: 200, to: 110, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 150, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 100, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 132, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 136, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 122, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 41, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 85, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 173, color: {color: 'black', opacity: 0.5}},
-      {from: 201, to: 80, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 180, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 146, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 130, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 107, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 1, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 12, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 16, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 169, color: {color: 'black', opacity: 0.5}},
-      {from: 202, to: 11, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 76, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 29, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 31, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 170, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 14, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 6, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 141, color: {color: 'black', opacity: 0.5}},
-      {from: 203, to: 59, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 137, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 16, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 185, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 96, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 189, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 139, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 67, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 140, color: {color: 'black', opacity: 0.5}},
-      {from: 204, to: 198, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 51, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 61, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 171, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 192, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 42, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 103, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 190, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 16, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 56, color: {color: 'black', opacity: 0.5}},
-      {from: 205, to: 163, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 176, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 80, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 54, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 174, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 47, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 144, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 52, color: {color: 'black', opacity: 0.5}},
-      {from: 206, to: 152, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 33, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 74, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 71, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 73, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 93, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 175, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 133, color: {color: 'black', opacity: 0.5}},
-      {from: 207, to: 24, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 174, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 167, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 42, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 117, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 174, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 72, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 59, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 55, color: {color: 'black', opacity: 0.5}},
-      {from: 208, to: 15, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 6, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 189, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 174, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 140, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 49, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 98, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 197, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 179, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 19, color: {color: 'black', opacity: 0.5}},
-      {from: 209, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 143, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 21, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 126, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 8, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 14, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 72, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 104, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 80, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 128, color: {color: 'black', opacity: 0.5}},
-      {from: 210, to: 6, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 49, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 152, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 39, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 16, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 170, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 88, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 99, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 56, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 51, color: {color: 'black', opacity: 0.5}},
-      {from: 211, to: 126, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 106, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 15, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 75, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 63, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 71, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 89, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 97, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 144, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 100, color: {color: 'black', opacity: 0.5}},
-      {from: 212, to: 150, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 160, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 67, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 96, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 178, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 163, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 190, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 47, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 172, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 35, color: {color: 'black', opacity: 0.5}},
-      {from: 213, to: 99, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 135, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 158, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 81, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 196, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 173, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 121, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 0, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 4, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 16, color: {color: 'black', opacity: 0.5}},
-      {from: 214, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 34, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 119, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 5, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 25, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 121, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 167, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 153, color: {color: 'black', opacity: 0.5}},
-      {from: 215, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 170, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 69, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 158, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 61, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 52, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 106, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 72, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 151, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 148, color: {color: 'black', opacity: 0.5}},
-      {from: 216, to: 107, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 76, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 166, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 92, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 135, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 138, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 101, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 123, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 50, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 165, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 149, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 90, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 84, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 155, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 45, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 162, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 109, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 115, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 37, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 161, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 10, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 66, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 108, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 26, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 20, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 78, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 118, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 83, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 114, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 120, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 131, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 178, color: {color: 'black', opacity: 0.5}},
-      {from: 217, to: 187, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 51, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 135, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 46, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 144, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 75, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 164, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 156, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 63, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 178, color: {color: 'black', opacity: 0.5}},
-      {from: 218, to: 116, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 67, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 14, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 97, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 74, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 21, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 198, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 199, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 143, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 62, color: {color: 'black', opacity: 0.5}},
-      {from: 219, to: 60, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 40, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 35, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 36, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 34, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 93, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 107, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 137, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 190, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 82, color: {color: 'black', opacity: 0.5}},
-      {from: 220, to: 172, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 192, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 1, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 8, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 129, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 72, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 18, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 117, color: {color: 'black', opacity: 0.5}},
-      {from: 221, to: 85, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 141, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 53, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 23, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 196, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 150, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 166, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 133, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 31, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 179, color: {color: 'black', opacity: 0.5}},
-      {from: 222, to: 107, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 22, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 11, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 121, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 13, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 2, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 153, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 151, color: {color: 'black', opacity: 0.5}},
-      {from: 223, to: 25, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 96, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 172, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 142, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 197, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 148, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 116, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 21, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 55, color: {color: 'black', opacity: 0.5}},
-      {from: 224, to: 87, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 17, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 163, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 134, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 51, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 122, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 12, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 93, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 60, color: {color: 'black', opacity: 0.5}},
-      {from: 225, to: 3, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 35, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 80, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 171, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 157, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 40, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 127, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 13, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 54, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 185, color: {color: 'black', opacity: 0.5}},
-      {from: 226, to: 187, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 80, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 102, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 44, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 70, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 79, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 30, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 104, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 48, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 36, color: {color: 'black', opacity: 0.5}},
-      {from: 227, to: 128, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 60, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 74, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 44, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 12, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 32, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 164, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 71, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 87, color: {color: 'black', opacity: 0.5}},
-      {from: 228, to: 33, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 184, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 62, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 105, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 98, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 193, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 191, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 89, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 160, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 32, color: {color: 'black', opacity: 0.5}},
-      {from: 229, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 42, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 64, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 134, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 146, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 111, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 178, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 42, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 104, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 41, color: {color: 'black', opacity: 0.5}},
-      {from: 230, to: 133, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 187, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 122, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 130, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 13, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 25, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 42, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 175, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 7, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 98, color: {color: 'black', opacity: 0.5}},
-      {from: 231, to: 110, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 112, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 164, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 131, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 193, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 126, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 137, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 140, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 144, color: {color: 'black', opacity: 0.5}},
-      {from: 232, to: 113, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 24, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 186, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 36, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 160, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 119, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 95, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 22, color: {color: 'black', opacity: 0.5}},
-      {from: 233, to: 87, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 178, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 71, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 171, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 168, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 44, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 5, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 74, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 71, color: {color: 'black', opacity: 0.5}},
-      {from: 234, to: 58, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 97, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 14, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 27, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 175, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 145, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 13, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 94, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 75, color: {color: 'black', opacity: 0.5}},
-      {from: 235, to: 59, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 147, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 48, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 134, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 2, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 41, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 128, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 136, color: {color: 'black', opacity: 0.5}},
-      {from: 236, to: 169, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 106, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 54, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 40, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 76, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 152, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 177, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 92, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 186, color: {color: 'black', opacity: 0.5}},
-      {from: 237, to: 152, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 2, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 54, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 173, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 154, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 46, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 5, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 98, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 188, color: {color: 'black', opacity: 0.5}},
-      {from: 238, to: 192, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 125, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 190, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 173, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 44, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 64, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 61, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 131, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 181, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 58, color: {color: 'black', opacity: 0.5}},
-      {from: 239, to: 106, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 143, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 194, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 55, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 55, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 183, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 46, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 188, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 69, color: {color: 'black', opacity: 0.5}},
-      {from: 240, to: 133, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 85, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 136, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 99, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 60, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 188, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 137, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 57, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 6, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 73, color: {color: 'black', opacity: 0.5}},
-      {from: 241, to: 192, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 182, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 159, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 32, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 97, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 22, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 186, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 146, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 56, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 75, color: {color: 'black', opacity: 0.5}},
-      {from: 242, to: 175, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 95, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 28, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 170, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 18, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 137, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 111, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 48, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 136, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 36, color: {color: 'black', opacity: 0.5}},
-      {from: 243, to: 30, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 91, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 86, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 183, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 98, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 28, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 32, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 77, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 124, color: {color: 'black', opacity: 0.5}},
-      {from: 244, to: 72, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 65, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 11, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 159, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 64, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 28, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 179, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 117, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 15, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 2, color: {color: 'black', opacity: 0.5}},
-      {from: 245, to: 116, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 68, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 176, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 48, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 95, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 27, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 79, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 87, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 119, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 180, color: {color: 'black', opacity: 0.5}},
-      {from: 246, to: 148, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 82, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 106, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 197, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 156, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 62, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 25, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 3, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 9, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 14, color: {color: 'black', opacity: 0.5}},
-      {from: 247, to: 24, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 132, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 130, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 133, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 188, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 146, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 159, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 99, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 38, color: {color: 'black', opacity: 0.5}},
-      {from: 248, to: 79, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 48, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 29, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 69, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 167, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 171, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 43, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 150, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 199, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 195, color: {color: 'black', opacity: 0.5}},
-      {from: 249, to: 186, color: {color: 'black', opacity: 0.5}},
-    ];
-
-    const savedPositions = localStorage.getItem('positions');
-
-    nodes.forEach((node) => {
-      if (node.shape === 'circle') {
-        this.numberOfEffects += 1;
-      } else {
-        this.numberOfProteinGroups += 1;
-      }
-    });
+  private async createNetwork() {
+    const {proteinGroups, effects, edges: proteinEdges} = await this.loadNetwork();
+    this.proteinData = new ProteinNetwork(proteinGroups, effects, proteinEdges);
+    this.proteinData.loadPositions();
+    this.proteinData.linkNodes();
 
-    if (savedPositions) {
-      const nodePositions = JSON.parse(savedPositions);
-      nodes.forEach((node) => {
-        const nodePosition = nodePositions[node.id];
-        if (nodePosition) {
-          (node as any).x = nodePosition.x;
-          (node as any).y = nodePosition.y;
-        }
+    // Populate baits
+    this.proteinData.effects.forEach((effect) => {
+      this.baitProteins.push({
+        checked: false,
+        data: effect,
       });
-    }
+    });
 
-    this.numberOfInteractions = edges.length;
+    const {nodes, edges} = this.mapDataToNodes(this.proteinData);
+
+    console.log(nodes, edges);
+
+    this.nodeData.nodes = new vis.DataSet(nodes);
+    this.nodeData.edges = new vis.DataSet(edges);
 
     const container = this.networkEl.nativeElement;
-    const data = {nodes, edges};
     const options = {
       layout: {
         improvedLayout: false,
       },
+      edges: {
+        smooth: false,
+      },
       physics: {
         stabilization: {
           enabled: false,
@@ -914,20 +134,18 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
       },
     };
 
-    this.network = new Network(container, data, options);
+    this.network = new vis.Network(container, this.nodeData, options);
     this.network.on('click', (properties) => {
       const id: Array<string> = properties.nodes;
       // TODO use groupID
       console.log(id);
       if (id.length > 0) {
+        console.log('clicked node:', id);
         this.openSummary(id[0]);
-      } else {
-        this.closeSummary();
       }
     });
 
-
-    if (!savedPositions) {
+    if (!localStorage.getItem('positions')) {
       this.network.on('stabilizationIterationsDone', () => {
         localStorage.setItem('positions', JSON.stringify(this.network.getPositions()));
       });
@@ -940,4 +158,154 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
   }
 
 
+  public async filterNodes() {
+    const visibleIds = new Set<string>(this.nodeData.nodes.getIds());
+
+    const removeIds = new Set<string>();
+    const addNodes = new Map<string, Node>();
+
+    const showAll = !this.baitProteins.find((eff) => eff.checked);
+    console.log(showAll);
+
+    const connectedProteinGroupIds = new Set<number>();
+    this.baitProteins.forEach((bait) => {
+      const nodeId = `eff${bait.data.id}`;
+      const found = visibleIds.has(nodeId);
+      if ((bait.checked || showAll) && !found) {
+        const node = this.mapEffectToNode(bait.data);
+        // this.nodeData.nodes.add(node);
+        addNodes.set(node.id, node);
+      } else if ((!showAll && !bait.checked) && found) {
+        // this.nodeData.nodes.remove(nodeId);
+        removeIds.add(nodeId);
+      }
+      if (bait.checked || showAll) {
+        bait.data.proteinGroups.forEach((pg) => {
+          connectedProteinGroupIds.add(pg.id);
+        });
+      }
+    });
+    for (const proteinGroup of this.proteinData.proteinGroups) {
+      const nodeId = `pg${proteinGroup.id}`;
+      const contains = connectedProteinGroupIds.has(proteinGroup.id);
+      const found = visibleIds.has(nodeId);
+      if (contains && !found) {
+        const node = this.mapProteinGroupToNode(proteinGroup);
+        // this.nodeData.nodes.add(node);
+        addNodes.set(node.id, node);
+      } else if (!contains && found) {
+        // this.nodeData.nodes.remove(nodeId);
+        removeIds.add(nodeId);
+      }
+    }
+
+    this.nodeData.nodes.remove(Array.from(removeIds.values()));
+    this.nodeData.nodes.add(Array.from(addNodes.values()));
+  }
+
+  private async loadNetwork(): Promise<any> {
+    // TODO: Load from backend instead of generating random stuff here...
+
+    const proteinGroupCount = 10000;
+    const effectCount = 50;
+    const edgeCount = 2000;
+
+    const proteinGroups = [];
+    const effects = [];
+    const edges = [];
+
+    for (let i = 0; i < effectCount; i++) {
+      effects.push({
+        id: i,
+        name: `eff${i}`,
+      });
+    }
+
+    const proteinGroupIds = [];
+    for (let i = 0; i < edgeCount; i++) {
+      const proteinGroupId = Math.floor(this.random() * proteinGroupCount);
+      const effectId = Math.floor(this.random() * effects.length);
+      let found = false;
+      for (const edge of edges) {
+        if (edge.proteinGroupId === proteinGroupId && edge.effectId === effectId) {
+          found = true;
+          break;
+        }
+      }
+      if (!found) {
+        edges.push({
+          proteinGroupId, effectId
+        });
+        if (proteinGroupIds.indexOf(proteinGroupId) === -1) {
+          proteinGroupIds.push(proteinGroupId);
+        }
+      }
+    }
+
+    for (const proteinGroupId of proteinGroupIds) {
+      proteinGroups.push({
+        id: proteinGroupId,
+        name: `pg${proteinGroupId}`,
+      });
+    }
+
+    return {
+      proteinGroups,
+      effects,
+      edges
+    };
+  }
+
+  private mapProteinGroupToNode(proteinGroup: any): any {
+    return {
+      id: `pg${proteinGroup.id}`,
+      label: `pg${proteinGroup.id}`,
+      size: 5, color: '#ADADAD', shape: 'square', shadow: true,
+      x: proteinGroup.x,
+      y: proteinGroup.y
+    };
+  }
+
+  private mapEffectToNode(effect: any): any {
+    return {
+      id: `eff${effect.id}`,
+      label: `eff${effect.id}`,
+      size: 10, color: '#118AB2', shape: 'circle', shadow: true,
+      x: effect.x,
+      y: effect.y
+    };
+  }
+
+  private mapEdge(edge: any): any {
+    return {from: `pg${edge.proteinGroupId}`, to: `eff${edge.effectId}`};
+  }
+
+  private mapDataToNodes(data: ProteinNetwork): { nodes: any[], edges: any[] } {
+    const nodes = [];
+    const edges = [];
+
+    for (const proteinGroup of data.proteinGroups) {
+      nodes.push(this.mapProteinGroupToNode(proteinGroup));
+    }
+
+    for (const effect of data.effects) {
+      nodes.push(this.mapEffectToNode(effect));
+    }
+
+    for (const edge of data.edges) {
+      edges.push(this.mapEdge(edge));
+    }
+
+    return {
+      nodes,
+      edges,
+    };
+  }
+
+  // TODO: Remove this:
+  private random() {
+    const x = Math.sin(this.seed++) * 10000;
+    return x - Math.floor(x);
+  }
+
 }
diff --git a/src/app/pages/protein-network.ts b/src/app/pages/protein-network.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2398b9f2d05209a3924756680a48802dc04738e8
--- /dev/null
+++ b/src/app/pages/protein-network.ts
@@ -0,0 +1,74 @@
+export interface ProteinGroup {
+  id: number;
+  name: string;
+  effects?: Effect[];
+  x?: number;
+  y?: number;
+}
+
+export interface Effect {
+  id: number;
+  name: string;
+  proteinGroups?: ProteinGroup[];
+  x?: number;
+  y?: number;
+}
+
+export interface Edge {
+  proteinGroupId: number;
+  effectId: number;
+}
+
+export class ProteinNetwork {
+
+  constructor(public proteinGroups: ProteinGroup[], public effects: Effect[], public edges: Edge[]) {
+  }
+
+  public loadPositions() {
+    const savedPositions = localStorage.getItem('positions');
+    if (!savedPositions) {
+      return;
+    }
+    const nodePositions = JSON.parse(savedPositions);
+    this.proteinGroups.forEach((node) => {
+      const nodePosition = nodePositions[`pg${node.id}`];
+      if (nodePosition) {
+        node.x = nodePosition.x;
+        node.y = nodePosition.y;
+      }
+    });
+    this.effects.forEach((node) => {
+      const nodePosition = nodePositions[`eff${node.id}`];
+      if (nodePosition) {
+        node.x = nodePosition.x;
+        node.y = nodePosition.y;
+      }
+    });
+  }
+
+  public getProteinGroup(id: number): ProteinGroup {
+    return this.proteinGroups.find((pg) => pg.id === id);
+  }
+
+  public getEffect(id: number): Effect {
+    return this.effects.find((eff) => eff.id === id);
+  }
+
+  public linkNodes() {
+    this.proteinGroups.forEach((pg) => {
+      pg.effects = [];
+    });
+    this.effects.forEach((eff) => {
+      eff.proteinGroups = [];
+    });
+    this.edges.forEach((edge) => {
+      const proteinGroup = this.getProteinGroup(edge.proteinGroupId);
+      const effect = this.getEffect(edge.effectId);
+      if (proteinGroup && effect) {
+        proteinGroup.effects.push(effect);
+        effect.proteinGroups.push(proteinGroup);
+      }
+    });
+  }
+
+}
diff --git a/src/index.html b/src/index.html
index 82b85d025b288c79124f834415b62d664a6bc593..df4348ce5e8685a8abc46c4dad87ab89f9e47184 100644
--- a/src/index.html
+++ b/src/index.html
@@ -7,6 +7,7 @@
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link rel="icon" type="image/ico" href="../../assets/logo.png">
   <script src="https://kit.fontawesome.com/3ad4fe992f.js" crossorigin="anonymous"></script>
+  <script type="text/javascript" src="https://unpkg.com/vis-network/standalone/umd/vis-network.min.js"></script>
 </head>
 <body>
   <app-root></app-root>