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.