diff --git a/src/app/components/analysis-panel/analysis-panel.component.ts b/src/app/components/analysis-panel/analysis-panel.component.ts
index 0dad7c02620d3b98c0ed94aa109e6bad9763580f..24f483cc26fafec8ed71f78ad06b4e5fd4da95fd 100644
--- a/src/app/components/analysis-panel/analysis-panel.component.ts
+++ b/src/app/components/analysis-panel/analysis-panel.component.ts
@@ -248,6 +248,14 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit
           });
         });
       }).then(() => {
+        this.networkHandler.activeNetwork.networkInternal.on('dragEnd', (properties) => {
+          const node_ids = this.networkHandler.activeNetwork.networkInternal.getSelectedNodes();
+          if (node_ids.length === 0) {
+            return;
+          }
+          this.analysis.addNodesByIdsToSelection(node_ids);
+          this.networkHandler.activeNetwork.networkInternal.unselectAll();
+        });
         this.networkHandler.activeNetwork.networkInternal.on('deselectNode', (properties) => {
           this.showDetailsChange.emit(null);
         });
@@ -484,7 +492,14 @@ export class AnalysisPanelComponent implements OnInit, OnChanges, AfterViewInit
             setTimeout(() => {
               this.networkHandler.activeNetwork.networkInternal.setData(this.nodeData);
             }, 1000);
-
+            this.networkHandler.activeNetwork.networkInternal.on('dragEnd', (properties) => {
+              const node_ids = this.networkHandler.activeNetwork.networkInternal.getSelectedNodes();
+              if (node_ids.length === 0) {
+                return;
+              }
+              this.analysis.addNodesByIdsToSelection(node_ids);
+              this.networkHandler.activeNetwork.networkInternal.unselectAll();
+            });
             this.networkHandler.activeNetwork.networkInternal.on('deselectNode', (properties) => {
               this.showDetailsChange.emit(null);
             });
diff --git a/src/app/pages/explorer-page/explorer-page.component.ts b/src/app/pages/explorer-page/explorer-page.component.ts
index 95842d65310ecb6c0b35a60cd7c695d1cd3090d9..9bbe642914da231a35d93ad4b5d3553729ecd93c 100644
--- a/src/app/pages/explorer-page/explorer-page.component.ts
+++ b/src/app/pages/explorer-page/explorer-page.component.ts
@@ -459,10 +459,20 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
       });
 
       this.networkHandler.activeNetwork.networkInternal.on('dragEnd', (properties) => {
-        let genes = this.networkHandler.activeNetwork.networkInternal.getSelectedNodes();
-        if (genes.length > 0) {
-          console.log(genes);
+        let node_ids = this.networkHandler.activeNetwork.networkInternal.getSelectedNodes();
+        if (node_ids.length === 0) {
+          return;
+        }
+        this.analysis.addNodesByIdsToSelection(node_ids);
+        this.networkHandler.activeNetwork.networkInternal.unselectAll();
+      });
+      this.networkHandler.activeNetwork.networkInternal.on('dragEnd', (properties) => {
+        let node_ids = this.networkHandler.activeNetwork.networkInternal.getSelectedNodes();
+        if (node_ids.length === 0) {
+          return;
         }
+        this.analysis.addNodesByIdsToSelection(node_ids);
+        this.networkHandler.activeNetwork.networkInternal.unselectAll();
       });
 
       this.networkHandler.activeNetwork.networkInternal.on('deselectNode', (properties) => {
@@ -549,66 +559,66 @@ export class ExplorerPageComponent implements OnInit, AfterViewInit {
     this.drugstoneConfig.smallStyle = this.windowWidth < 1250;
   }
 
-  public initNetworkListeners(resolve) {
-    this.networkHandler.activeNetwork.networkInternal.on('doubleClick', (properties) => {
-      const nodeIds: Array<string> = properties.nodes;
-      if (nodeIds != null && nodeIds.length > 0) {
-        const nodeId = nodeIds[0];
-        const node = this.nodeData.nodes.get(nodeId);
-        if (node.drugstoneId === undefined || node.drugstoneType !== 'protein') {
-          this.analysis.unmappedNodeToast();
-          // skip if node is not a protein mapped to backend
-          return;
-        }
-        const wrapper = getWrapperFromNode(node);
-        if (this.analysis.inSelection(node)) {
-          this.analysis.removeItems([wrapper]);
-        } else {
-          this.analysis.addItems([wrapper]);
-        }
-      }
-    });
-
-    this.networkHandler.activeNetwork.networkInternal.on('click', (properties) => {
-      if (properties.nodes.length === 0 && properties.edges.length === 1) {
-        // clicked on one edge
-        const edgeId = properties.edges[0];
-        this.networkHandler.activeNetwork.openEdgeSummary(edgeId);
-      } else {
-        // clicked not on one edge
-        const nodeIds: Array<string> = properties.nodes;
-        if (nodeIds != null && nodeIds.length > 0) {
-          const nodeId = nodeIds[0];
-          const node = this.nodeData.nodes.get(nodeId);
-          const wrapper = getWrapperFromNode(node);
-          this.openNodeSummary(wrapper, false);
-        } else {
-          this.closeSummary();
-        }
-      }
-    });
-
-    this.networkHandler.activeNetwork.networkInternal.on('deselectNode', (properties) => {
-      this.closeSummary();
-    });
-
-    if (this.networkHandler.activeNetwork.selectedWrapper) {
-      this.zoomToNode(this.networkHandler.activeNetwork.selectedWrapper.id);
-    }
-
-    this.networkHandler.activeNetwork.currentViewNodes = this.nodeData.nodes;
-    this.networkHandler.activeNetwork.currentViewEdges = this.nodeData.edges;
-
-    this.networkHandler.activeNetwork.queryItems = [];
-    this.networkHandler.activeNetwork.updateQueryItems();
-    this.networkHandler.activeNetwork.currentViewProteins = this.networkHandler.activeNetwork.inputNetwork.nodes;
-    // this.fillQueryItems(this.currentViewNodes);
-    if (this.networkHandler.activeNetwork.selectedWrapper) {
-      this.networkHandler.activeNetwork.networkInternal.selectNodes([this.networkHandler.activeNetwork.selectedWrapper.id]);
-    }
-
-    resolve(true);
-  }
+  // public initNetworkListeners(resolve) {
+  //   this.networkHandler.activeNetwork.networkInternal.on('doubleClick', (properties) => {
+  //     const nodeIds: Array<string> = properties.nodes;
+  //     if (nodeIds != null && nodeIds.length > 0) {
+  //       const nodeId = nodeIds[0];
+  //       const node = this.nodeData.nodes.get(nodeId);
+  //       if (node.drugstoneId === undefined || node.drugstoneType !== 'protein') {
+  //         this.analysis.unmappedNodeToast();
+  //         // skip if node is not a protein mapped to backend
+  //         return;
+  //       }
+  //       const wrapper = getWrapperFromNode(node);
+  //       if (this.analysis.inSelection(node)) {
+  //         this.analysis.removeItems([wrapper]);
+  //       } else {
+  //         this.analysis.addItems([wrapper]);
+  //       }
+  //     }
+  //   });
+  //
+  //   this.networkHandler.activeNetwork.networkInternal.on('click', (properties) => {
+  //     if (properties.nodes.length === 0 && properties.edges.length === 1) {
+  //       // clicked on one edge
+  //       const edgeId = properties.edges[0];
+  //       this.networkHandler.activeNetwork.openEdgeSummary(edgeId);
+  //     } else {
+  //       // clicked not on one edge
+  //       const nodeIds: Array<string> = properties.nodes;
+  //       if (nodeIds != null && nodeIds.length > 0) {
+  //         const nodeId = nodeIds[0];
+  //         const node = this.nodeData.nodes.get(nodeId);
+  //         const wrapper = getWrapperFromNode(node);
+  //         this.openNodeSummary(wrapper, false);
+  //       } else {
+  //         this.closeSummary();
+  //       }
+  //     }
+  //   });
+  //
+  //   this.networkHandler.activeNetwork.networkInternal.on('deselectNode', (properties) => {
+  //     this.closeSummary();
+  //   });
+  //
+  //   if (this.networkHandler.activeNetwork.selectedWrapper) {
+  //     this.zoomToNode(this.networkHandler.activeNetwork.selectedWrapper.id);
+  //   }
+  //
+  //   this.networkHandler.activeNetwork.currentViewNodes = this.nodeData.nodes;
+  //   this.networkHandler.activeNetwork.currentViewEdges = this.nodeData.edges;
+  //
+  //   this.networkHandler.activeNetwork.queryItems = [];
+  //   this.networkHandler.activeNetwork.updateQueryItems();
+  //   this.networkHandler.activeNetwork.currentViewProteins = this.networkHandler.activeNetwork.inputNetwork.nodes;
+  //   // this.fillQueryItems(this.currentViewNodes);
+  //   if (this.networkHandler.activeNetwork.selectedWrapper) {
+  //     this.networkHandler.activeNetwork.networkInternal.selectNodes([this.networkHandler.activeNetwork.selectedWrapper.id]);
+  //   }
+  //
+  //   resolve(true);
+  // }
 
   public async openNodeSummary(item: Wrapper, zoom: boolean) {
     // close edge summary if open
diff --git a/src/app/services/analysis/analysis.service.ts b/src/app/services/analysis/analysis.service.ts
index b631e2e49861d23ba2fab6b751de0c61205d12f2..ae29d2cf693450a17b996fcb0dec329cb3baae0e 100644
--- a/src/app/services/analysis/analysis.service.ts
+++ b/src/app/services/analysis/analysis.service.ts
@@ -213,6 +213,25 @@ export class AnalysisService {
     }
   }
 
+  public addNodesByIdsToSelection(ids: string[]) {
+    const wrappers: Wrapper[] = [];
+    const unmappedNodes = [];
+    this.networkHandler.activeNetwork.currentViewNodes.forEach((node) => {
+      if (ids.indexOf(node.id) > -1) {
+        if (node.drugstoneType !== 'drug' && node.drugstoneType !== 'disorder' && node.drugstoneId === undefined) {
+          unmappedNodes.push(node.label);
+        } else {
+          // only consider proteins
+          wrappers.push(getWrapperFromNode(node));
+        }
+      }
+    });
+    this.addItems(wrappers);
+    if (unmappedNodes.length > 0) {
+      this.unmappedNodesToast(unmappedNodes);
+    }
+  }
+
 
   // Adds first neighbors of selected nodes to selection
   public addFirstNeighbors() {