private void createEdge(final Interaction itr, final CySubNetwork subNetwork) { CyNode sourceNode = nMap.get(itr.getSource()); if (sourceNode == null) { sourceNode = subNetwork.addNode(); subNetwork.getRow(sourceNode).set(CyNetwork.NAME, itr.getSource()); nMap.put(itr.getSource(), subNetwork.getRootNetwork().getNode(sourceNode.getSUID())); } for (final String target : itr.getTargets()) { CyNode targetNode = nMap.get(target); if (targetNode == null) { targetNode = subNetwork.addNode(); subNetwork.getRow(targetNode).set(CyNetwork.NAME, target); nMap.put(target, subNetwork.getRootNetwork().getNode(targetNode.getSUID())); } // Add the sourceNode and targetNode to subNetwork if (!subNetwork.containsNode(sourceNode)) { subNetwork.addNode(sourceNode); } if (!subNetwork.containsNode(targetNode)) { subNetwork.addNode(targetNode); } final CyEdge edge = subNetwork.addEdge(sourceNode, targetNode, true); subNetwork.getRow(edge).set(CyNetwork.NAME, getEdgeName(itr, target)); subNetwork.getRow(edge).set(CyEdge.INTERACTION, itr.getType()); } }