org.gersteinlab.tyna.core.graph
Interface AdvancedDirectedGraph

All Superinterfaces:
DirectedGraph, Graph, java.io.Serializable
All Known Implementing Classes:
DirectedMultiGraph, DirectedSimpleGraph

public interface AdvancedDirectedGraph
extends DirectedGraph

        This interface declares advanced methods for directed graphs such as
        motif mining that are not mandatory for basic implementations of
        DirectedGraph classes.

        The methods are not synchronized for efficiency reasons. May need to
        change in the future if concurrent access is required.
        

Version:
1.0 (December 9, 2005) Change History: 1.0 - Initial version
Author:
Kevin Yuk-Lap Yip

Method Summary
 java.util.List getFeedforwardLoops(int minSize, int maxSize)
          Get all chains of distinct nodes that .
 java.util.List getMaximalCompleteTwoLayerSubgraphs(int minSize1, int maxSize1, int minSize2)
          Get all maximal motifs that contain two layers of nodes such that .
 
Methods inherited from interface org.gersteinlab.tyna.core.graph.DirectedGraph
getInDegree, getInDegrees, getInEdges, getInNeighbors, getOutDegree, getOutDegrees, getOutEdges, getOutNeighbors
 
Methods inherited from interface org.gersteinlab.tyna.core.graph.Graph
addEdge, addNode, containsEdge, containsNode, getAttr, getAttrs, getEdgeCount, getEdgeIterator, getEdgeNodePairs, getNode, getNodeCount, getNodeIterator, setAttr
 

Method Detail

getFeedforwardLoops

java.util.List getFeedforwardLoops(int minSize,
                                   int maxSize)
                                   throws java.lang.IllegalArgumentException
Get all chains of distinct nodes that . Have at least minSize nodes . Have at most maxSize nodes . Have the first node connected to the last one

Returns:
A list of Node[], each representing a feed-forward loop by an array of distinct nodes
Throws:
java.lang.IllegalArgumentException - If the input sizes are invalid

getMaximalCompleteTwoLayerSubgraphs

java.util.List getMaximalCompleteTwoLayerSubgraphs(int minSize1,
                                                   int maxSize1,
                                                   int minSize2)
                                                   throws java.lang.IllegalArgumentException
Get all maximal motifs that contain two layers of nodes such that . There are at least minSize1 nodes in the first layer . There are at most maxSize1 nodes in the first layer . There are at least minSize2 nodes in the second layer . All nodes in the first layer has a directed edge to all nodes in the second layer . There does not exist any node not in the first layer also has a directed edge to all nodes in the second layer . There does not exist any node not in the second layer also has a directed edge from all nodes in the first layer

Returns:
A list of Node[][], each representing an array of two arrays of nodes, the first one for the first layer and the second one for the second layer
Throws:
java.lang.IllegalArgumentException - If the input sizes are invalid