Author: ruschein
Date: 2010-01-12 12:53:43 -0800 (Tue, 12 Jan 2010)
New Revision: 18879

Added:
   
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/EdgeProperties.java
Modified:
   
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/NestedNetworkCreator.java
   
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/tests/org/cytoscape/DenovoPGNetworkAlignmentPlugin/ConvertCyNetworkToSFNetworksTest.java
Log:
Work in progress.

Added: 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/EdgeProperties.java
===================================================================
--- 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/EdgeProperties.java
                         (rev 0)
+++ 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/EdgeProperties.java
 2010-01-12 20:53:43 UTC (rev 18879)
@@ -0,0 +1,22 @@
+package org.cytoscape.DenovoPGNetworkAlignmentPlugin;
+
+
+/**
+ * A data class that collects various properties of a module edge.
+ */
+class EdgeProperties {
+       final int sourceNodeIndex;
+       final int targetNodeIndex;
+       final float edgeScore; // a.k.a. "link"
+
+       EdgeProperties(final int sourceNodeIndex, final int targetNodeIndex, 
final float edgeScore) {
+               this.sourceNodeIndex = sourceNodeIndex;
+               this.targetNodeIndex = targetNodeIndex;
+               this.edgeScore = edgeScore;
+       }
+
+       int getSourceNodeIndex() { return sourceNodeIndex; }
+       int getTargetNodeIndex() { return targetNodeIndex; }
+       float getEdgeScore() { return edgeScore; }
+}
+

Modified: 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/NestedNetworkCreator.java
===================================================================
--- 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/NestedNetworkCreator.java
   2010-01-12 20:09:15 UTC (rev 18878)
+++ 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/src/org/cytoscape/DenovoPGNetworkAlignmentPlugin/NestedNetworkCreator.java
   2010-01-12 20:53:43 UTC (rev 18879)
@@ -1,53 +1,89 @@
 package org.cytoscape.DenovoPGNetworkAlignmentPlugin;
 
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import networks.denovoPGNetworkAlignment.BFEdge;
 import networks.linkedNetworks.TypedLinkNetwork;
 import networks.linkedNetworks.TypedLinkNode;
 import networks.linkedNetworks.TypedLinkNodeModule;
+import cytoscape.CyEdge;
 import cytoscape.CyNetwork;
 import cytoscape.CyNode;
 import cytoscape.Cytoscape;
+import cytoscape.data.CyAttributes;
+import cytoscape.data.Semantics;
 
+
 /**
  * Creates an overview network for the detected complexes and nested networks
  * for each complex.
  */
 class NestedNetworkCreator {
-       CyNetwork overviewNetwork = null;
+       private CyNetwork overviewNetwork = null;
+       private Map<Integer, String> nodeIndexToNodeNameMap;
 
+
        /**
         * Instantiates an overview network of complexes (modules) and one 
nested
         * network for each node in the overview network.
         */
-       NestedNetworkCreator(
-                       final TypedLinkNetwork<TypedLinkNodeModule<String, 
BFEdge>, BFEdge> networkOfModules) {
-               createOverviewNetwork(networkOfModules.nodes());
+       NestedNetworkCreator(final TypedLinkNetwork<TypedLinkNodeModule<String, 
BFEdge>, BFEdge> networkOfModules,
+                            final List<EdgeProperties> edgeProperties)
+       {
+               nodeIndexToNodeNameMap = new HashMap<Integer, String>();
+               createOverviewNetworkNodes(networkOfModules.nodes());
+               createOverviewNetworkEdges(edgeProperties);
        }
 
+
        CyNetwork getOverviewNetwork() {
                return overviewNetwork;
        }
 
-       private void createOverviewNetwork(
-                       final Set<TypedLinkNode<TypedLinkNodeModule<String, 
BFEdge>, BFEdge>> overviewNodes) {
-               overviewNetwork = Cytoscape.createNetwork(
-                               findNextAvailableNetworkName("Complex Search 
Result: " + new java.util.Date()), /* create_view = */
-                               true);
 
+       private void createOverviewNetworkNodes(final 
Set<TypedLinkNode<TypedLinkNodeModule<String, BFEdge>, BFEdge>> overviewNodes) {
+               overviewNetwork = 
Cytoscape.createNetwork(findNextAvailableNetworkName("Complex Search Result: " 
+ new java.util.Date()),
+                                                         /* create_view = */ 
true);
+
                int nodeIndex = 1;
                for (final TypedLinkNode<TypedLinkNodeModule<String, BFEdge>, 
BFEdge> module : overviewNodes) {
-                       final String nodeName = 
findNextAvailableNodeName("Complex"
-                                       + nodeIndex);
-                       final CyNode newNode = Cytoscape.getCyNode(nodeName, /* 
create = */
-                                       true);
+                       final String nodeName = 
findNextAvailableNodeName("Complex" + nodeIndex);
+                       nodeIndexToNodeNameMap.put(nodeIndex, nodeName);
+                       final CyNode newNode = Cytoscape.getCyNode(nodeName, /* 
create = */ true);
                        overviewNetwork.addNode(newNode);
 
                        ++nodeIndex;
                }
        }
 
+
+       private void createOverviewNetworkEdges(final List<EdgeProperties> 
edgeProperties) {
+               final CyAttributes edgeAttribs = Cytoscape.getEdgeAttributes();
+
+               for (final EdgeProperties edgeProps : edgeProperties) {
+                       final String sourceNodeName = 
nodeIndexToNodeNameMap.get(Integer.valueOf(edgeProps.getSourceNodeIndex()));
+                       if (sourceNodeName == null)
+                               throw new IllegalStateException("this should be 
impossible: can't find source node name!");
+
+                       final String targetNodeName = 
nodeIndexToNodeNameMap.get(Integer.valueOf(edgeProps.getTargetNodeIndex()));
+                       if (targetNodeName == null)
+                               throw new IllegalStateException("this should be 
impossible: can't find target node name!");
+
+                       final CyNode sourceNode = 
Cytoscape.getCyNode(sourceNodeName);
+                       final CyNode targetNode = 
Cytoscape.getCyNode(targetNodeName);
+                       final CyEdge newEdge = Cytoscape.getCyEdge(sourceNode, 
targetNode, Semantics.INTERACTION, "complex-complex",
+                                                                  /* create = 
*/ true);
+                       
+
+                       edgeAttribs.setAttribute(newEdge.getIdentifier(), "edge 
score", Double.valueOf(edgeProps.getEdgeScore()));
+               }
+       }
+
+
        /**
         * Finds an unused network name starting with a first choice. If the 
first
         * choice is not available, we will successively try to append -1 -2, 
-3 and
@@ -71,6 +107,7 @@
                }
        }
 
+
        /**
         * Finds an unused node name starting with a first choice. If the first
         * choice is not available, we will successively try to append -1 -2, 
-3 and
@@ -95,6 +132,7 @@
                }
        }
 
+
        /**
         * Returns the first network with title "networkTitle" or null, if 
there is
         * no network w/ this title.

Modified: 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/tests/org/cytoscape/DenovoPGNetworkAlignmentPlugin/ConvertCyNetworkToSFNetworksTest.java
===================================================================
--- 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/tests/org/cytoscape/DenovoPGNetworkAlignmentPlugin/ConvertCyNetworkToSFNetworksTest.java
     2010-01-12 20:09:15 UTC (rev 18878)
+++ 
csplugins/trunk/ucsd/ruschein/DenovoPGNetworkAlignment/tests/org/cytoscape/DenovoPGNetworkAlignmentPlugin/ConvertCyNetworkToSFNetworksTest.java
     2010-01-12 20:53:43 UTC (rev 18879)
@@ -5,6 +5,6 @@
 
 
 public class ConvertCyNetworkToSFNetworksTest extends TestCase {
-       public void testNothing() {
+       public void testConversion() {
        }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.


Reply via email to