diff --git a/.gitignore b/.gitignore
index 4ae60b46c42bb5177b09053f05fc72177c8fab0f..c22e1c12b2d67c2408316b73f470d299a9dcd06e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,4 +47,4 @@ Thumbs.db
 
 .idea
 drugsTone-build
-package-lock.json
+package-lock.json
\ No newline at end of file
diff --git a/src/app/components/analysis-panel/analysis-panel.component.html b/src/app/components/analysis-panel/analysis-panel.component.html
index a362738660911993bbf64f74785fc7e0a8ae312b..553ba0a6f9983687d7a1b46c5cafa24857b1c340 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.html
+++ b/src/app/components/analysis-panel/analysis-panel.component.html
@@ -329,16 +329,16 @@
           </a>
         </div>
         <p-table *ngIf="tableProteins.length > 0" selectionMode="multiple"
-                 [value]="tableProteins" [selection]="tableSelectedProteins" dataKey="proteinAc"
+                 [value]="tableProteins" [selection]="tableSelectedProteins" dataKey="uniprotAc"
                  (selectionChange)="tableProteinSelection($event)">
           <ng-template pTemplate="header">
             <tr>
               <th class="checkbox-col">
                 <p-tableHeaderCheckbox></p-tableHeaderCheckbox>
               </th>
-              <th [pSortableColumn]="'proteinAc'">
+              <th [pSortableColumn]="'uniprotAc'">
                 UniProt Code
-                <p-sortIcon [field]="'proteinAc'"></p-sortIcon>
+                <p-sortIcon [field]="'uniprotAc'"></p-sortIcon>
               </th>
               <th [pSortableColumn]="'name'">
                 Gene
@@ -367,7 +367,7 @@
               <td>
                 <p-tableCheckbox [value]="e"></p-tableCheckbox>
               </td>
-              <td><a href="https://www.uniprot.org/uniprot/{{ e.proteinAc }}" target="_blank">{{ e.proteinAc }}</a></td>
+              <td><a href="https://www.uniprot.org/uniprot/{{ e.uniprotAc }}" target="_blank">{{ e.uniprotAc }}</a></td>
               <td>{{e.name}}</td>
               <td>{{e.proteinName}}</td>
               <td *ngIf="tableHasScores">{{e.score | number}}</td>
diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts
index c8899ca189c6e9c54d75e5db0ca257713641d55e..3dd02f0d935d16e45e25b1c0bddf839e7d7132e8 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.ts
+++ b/src/app/components/analysis-panel/analysis-panel.component.ts
@@ -379,56 +379,33 @@ export class AnalysisPanelComponent implements OnInit, OnChanges {
     const details = attributes.details || {};
     const wrappers: { [key: string]: Wrapper } = {};
     for (const node of network.nodes) {
-
-      if (nodeTypes[node] === 'protein') {
-        this.proteins.push(details[node]);
-        wrappers[node] = getWrapperFromNode(details[node]);
-      } else if (nodeTypes[node] === 'drug') {
-        wrappers[node] = getWrapperFromDrug(details[node]);
+      // backend converts object keys to PascalCase: p_123 --> p123
+      const nodeObjectKey = node.split('_').join('')
+      if (nodeTypes[nodeObjectKey] === 'protein') {
+        this.proteins.push(details[nodeObjectKey]);
+        wrappers[node] = getWrapperFromNode(details[nodeObjectKey]);
+      } else if (nodeTypes[nodeObjectKey] === 'drug') {
+        wrappers[node] = getWrapperFromDrug(details[nodeObjectKey]);
       }
-      nodes.push(this.mapNode(this.inferNodeType(node), details[node], isSeed[node], scores[node]));
-    }
 
+      nodes.push(this.mapNode(this.inferNodeType(node), wrappers[node], isSeed[nodeObjectKey], scores[nodeObjectKey]));
+    }
     for (const edge of network.edges) {
       edges.push(this.mapEdge(edge, 'protein-protein', wrappers));
     }
-
     return {
       nodes,
       edges,
     };
   }
 
-  private mapNode(nodeType: WrapperType, details: Node, isSeed?: boolean, score?: number): any {
-    /*let nodeLabel;
-    // let wrapper: Wrapper;
-    let drugType;
-    let drugInTrial;*/
-    /*if (nodeType === 'protein') {
-      const protein = details as Node;
-      // wrapper = getWrapperFromNode(protein);
-      nodeLabel = protein.name;
-      if (!protein.name) {
-        nodeLabel = protein.id;
-      }
-    } else if (nodeType === 'drug') {
-      // const drug = details as Drug;
-      // wrapper = getWrapperFromDrug(drug);
-      drugType = drug.status;
-      drugInTrial = drug.inTrial;
-      if (drugType === 'approved') {
-        nodeLabel = drug.name;
-      } else {
-        nodeLabel = drug.drugId;
-      }
-    }*/
-    const wrapper = getWrapperFromNode(details)
+  private mapNode(nodeType: WrapperType, wrapper: Wrapper, isSeed?: boolean, score?: number): any {
     const node = NetworkSettings.getNodeStyle('gene', isSeed, this.analysis.inSelection(wrapper));
-    node.id = details.id;
-    node.label = details.name;
+    node.id = wrapper.id;
+    node.label = wrapper.data.name;
     node.nodeType = nodeType;
     node.isSeed = isSeed;
-    node.wrapper = details;
+    node.wrapper = wrapper;
     return node;
   }
 
@@ -500,7 +477,8 @@ export class AnalysisPanelComponent implements OnInit, OnChanges {
         }
 
         for (const interaction of edges) {
-          const edge = {from: interaction.proteinAc, to: interaction.drugId};
+          console.log(interaction)
+          const edge = {from: interaction.uniprotAc, to: interaction.drugId};
           this.drugEdges.push(this.mapEdge(edge, 'to-drug'));
         }
         this.nodeData.nodes.add(Array.from(this.drugNodes.values()));
diff --git a/src/app/components/query-tile/query-tile.component.html b/src/app/components/query-tile/query-tile.component.html
index 43af39b09ad3afa893b05d63a912e84a9efa0986..2afbd5738d3a0a8851c6bd1dec338e3fa743a710 100644
--- a/src/app/components/query-tile/query-tile.component.html
+++ b/src/app/components/query-tile/query-tile.component.html
@@ -4,7 +4,7 @@
     <ng-template ng-option-tmp let-item="item">
       <b *ngIf="item.type == 'protein'"> {{item.data.name}}</b>
       <span><small *ngIf="item.type === 'protein'">Host Protein</small> | </span>
-      <span *ngIf="item.type == 'protein'"><small>AC: <b>{{item.data.proteinAc}}</b></small> </span>
+      <span *ngIf="item.type == 'protein'"><small>AC: <b>{{item.data.uniprotAc}}</b></small> </span>
     </ng-template>
   </ng-select>
 </div>
diff --git a/src/app/dialogs/launch-analysis/launch-analysis.component.ts b/src/app/dialogs/launch-analysis/launch-analysis.component.ts
index 5f17dca036b7888ab48dd2fb309b73cb07ddad4e..9493b61e4f4839c21f416ebcddca840c6b4f51d1 100644
--- a/src/app/dialogs/launch-analysis/launch-analysis.component.ts
+++ b/src/app/dialogs/launch-analysis/launch-analysis.component.ts
@@ -11,6 +11,7 @@ import {
   TRUSTRANK
 } from '../../services/analysis/analysis.service';
 import {Wrapper} from '../../interfaces';
+import { IConfig } from 'src/app/config';
 
 @Component({
   selector: 'app-launch-analysis',
@@ -25,6 +26,8 @@ export class LaunchAnalysisComponent implements OnInit, OnChanges {
   public target: 'drug' | 'drug-target';
   @Input()
   public inputNetwork: {nodes: any, edges: any};
+  @Input()
+  public config: IConfig;
   @Output()
   public showChange = new EventEmitter<boolean>();
 
@@ -103,15 +106,17 @@ export class LaunchAnalysisComponent implements OnInit, OnChanges {
   public async startTask() {
     const parameters: any = {
       seeds: this.analysis.getSelection().map((item) => item.data.netexId),
+      config: this.config,
+      input_network: this.inputNetwork
     };
 
-    parameters.target_or_drugs = this.target === 'drug' ? 'drug' : 'protein';
+    parameters.target = this.target === 'drug' ? 'drug' : 'drug-target';
     // pass network data to reconstruct network in analysis result to connect non-proteins to results
     // drop interactions in nodes beforehand to no cause cyclic error, information is contained in edges
     this.inputNetwork.nodes.forEach(node => {
       delete node.interactions
     });
-    parameters.input_network = this.inputNetwork;
+    console.log(this.inputNetwork)
 
     if (this.algorithm === 'trustrank') {
       parameters.damping_factor = this.trustrankDampingFactor;
diff --git a/src/app/interfaces.ts b/src/app/interfaces.ts
index 7a9fb7a4feddc5bc852cb050a0bbe6698deae0b0..f894c0085ba521e765b2cf4d108a62b27877cd73 100644
--- a/src/app/interfaces.ts
+++ b/src/app/interfaces.ts
@@ -98,10 +98,14 @@ export function getNodeId(node: Node) {
   /**
    * Returns backend_id of Gene object
    */
-  return node.id.toString();
+   if ('netexId' in node) {
+     return node['netexId']
+   } else {
+     return node.id
+   }
 }
 
-export function getGeneNodeId(gene: Node) {
+export function getId(gene: Node) {
   /**
    * Returns the network node id based on a given gene
    */
@@ -115,7 +119,7 @@ export function getWrapperFromNode(gene: Node): Wrapper {
    */
   return {
     id: getNodeId(gene),
-    nodeId: getGeneNodeId(gene),
+    nodeId: getNodeId(gene),
     type: 'gene',
     data: gene,
   };
diff --git a/src/app/pages/explorer-page/explorer-page.component.html b/src/app/pages/explorer-page/explorer-page.component.html
index 85f5b25de169500c3ed5044d353799744f901240..b3723b06fa2d8dccd91da991ec862896eb1a16ba 100644
--- a/src/app/pages/explorer-page/explorer-page.component.html
+++ b/src/app/pages/explorer-page/explorer-page.component.html
@@ -3,6 +3,7 @@
 
   <app-launch-analysis [(show)]="showAnalysisDialog"
                        [target]="analysisDialogTarget"
+                       [config]="myConfig"
                        [inputNetwork]="{nodes:proteins, edges:edges}">
   </app-launch-analysis>