예제 #1
0
  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());
    }
  }