Search in sources :

Example 16 with Node

use of edu.cmu.tetrad.graph.Node in project tetrad by cmu-phil.

the class TestDM method rtest13.

@Ignore
public void rtest13() {
    // setting seed for debug.
    RandomUtil.getInstance().setSeed(29483818483L);
    Graph graph = emptyGraph(12);
    Node X0 = graph.getNode("X0");
    Node X1 = graph.getNode("X1");
    Node X2 = graph.getNode("X2");
    Node X3 = graph.getNode("X3");
    Node X4 = graph.getNode("X4");
    Node X5 = graph.getNode("X5");
    Node X6 = graph.getNode("X6");
    Node X7 = graph.getNode("X7");
    Node X8 = graph.getNode("X8");
    Node X9 = graph.getNode("X9");
    Node X10 = graph.getNode("X10");
    Node X11 = graph.getNode("X11");
    graph.addDirectedEdge(X0, X6);
    graph.addDirectedEdge(X1, X6);
    graph.addDirectedEdge(X1, X7);
    graph.addDirectedEdge(X1, X8);
    graph.addDirectedEdge(X2, X8);
    graph.addDirectedEdge(X3, X8);
    graph.addDirectedEdge(X3, X9);
    graph.addDirectedEdge(X3, X10);
    graph.addDirectedEdge(X3, X9);
    graph.addDirectedEdge(X4, X10);
    graph.addDirectedEdge(X4, X11);
    graph.addDirectedEdge(X5, X11);
    // 
    // graph.addDirectedEdge(X1, X8);
    // graph.addDirectedEdge(X2, X6);
    // graph.addDirectedEdge(X2, X7);
    // graph.addDirectedEdge(X2, X8);
    // 
    // 
    // graph.addDirectedEdge(X3, X8);
    // graph.addDirectedEdge(X3, X7);
    // graph.addDirectedEdge(X4, X8);
    // graph.addDirectedEdge(X4, X7);
    // 
    // 
    // graph.addDirectedEdge(X5, X8);
    RandomUtil.getInstance().setSeed(29483818483L);
    SemPm pm = new SemPm(graph);
    SemIm im = new SemIm(pm);
    DataSet data = im.simulateData(100000, false);
    DMSearch search = new DMSearch();
    search.setInputs(new int[] { 0, 1, 2, 3, 4, 5 });
    search.setOutputs(new int[] { 6, 7, 8, 9, 10, 11 });
    search.setData(data);
    search.setTrueInputs(search.getInputs());
    search.search();
    print("");
    print("" + search.getDmStructure());
    print("graph.existsDirectedCycle: " + search.getDmStructure().latentStructToEdgeListGraph(search.getDmStructure()).existsDirectedCycle());
    print("Graph structure: " + search);
    assertTrue(true);
}
Also used : EdgeListGraph(edu.cmu.tetrad.graph.EdgeListGraph) Graph(edu.cmu.tetrad.graph.Graph) DataSet(edu.cmu.tetrad.data.DataSet) Node(edu.cmu.tetrad.graph.Node) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) DMSearch(edu.cmu.tetrad.search.DMSearch) Ignore(org.junit.Ignore)

Example 17 with Node

use of edu.cmu.tetrad.graph.Node in project tetrad by cmu-phil.

the class TestDM method rtest12.

@Ignore
public void rtest12() {
    // setting seed for debug.
    RandomUtil.getInstance().setSeed(29483818483L);
    Graph graph = emptyGraph(9);
    Node X0 = graph.getNode("X0");
    Node X1 = graph.getNode("X1");
    Node X2 = graph.getNode("X2");
    Node X3 = graph.getNode("X3");
    Node X4 = graph.getNode("X4");
    Node X5 = graph.getNode("X5");
    Node X6 = graph.getNode("X6");
    Node X7 = graph.getNode("X7");
    Node X8 = graph.getNode("X8");
    graph.addDirectedEdge(X0, X6);
    graph.addDirectedEdge(X0, X7);
    graph.addDirectedEdge(X0, X8);
    graph.addDirectedEdge(X1, X6);
    graph.addDirectedEdge(X1, X7);
    graph.addDirectedEdge(X1, X8);
    graph.addDirectedEdge(X2, X6);
    graph.addDirectedEdge(X2, X7);
    graph.addDirectedEdge(X2, X8);
    graph.addDirectedEdge(X3, X8);
    graph.addDirectedEdge(X3, X7);
    graph.addDirectedEdge(X4, X8);
    graph.addDirectedEdge(X4, X7);
    graph.addDirectedEdge(X5, X8);
    RandomUtil.getInstance().setSeed(29483818483L);
    SemPm pm = new SemPm(graph);
    SemIm im = new SemIm(pm);
    DataSet data = im.simulateData(100000, false);
    DMSearch search = new DMSearch();
    search.setInputs(new int[] { 0, 1, 2, 3, 4, 5 });
    search.setOutputs(new int[] { 6, 7, 8 });
    search.setData(data);
    search.setTrueInputs(search.getInputs());
    search.search();
    print("");
    print("" + search.getDmStructure());
    print("graph.existsDirectedCycle: " + search.getDmStructure().latentStructToEdgeListGraph(search.getDmStructure()).existsDirectedCycle());
    print("Graph structure: " + search);
    assertTrue(true);
}
Also used : EdgeListGraph(edu.cmu.tetrad.graph.EdgeListGraph) Graph(edu.cmu.tetrad.graph.Graph) DataSet(edu.cmu.tetrad.data.DataSet) Node(edu.cmu.tetrad.graph.Node) SemPm(edu.cmu.tetrad.sem.SemPm) SemIm(edu.cmu.tetrad.sem.SemIm) DMSearch(edu.cmu.tetrad.search.DMSearch) Ignore(org.junit.Ignore)

Example 18 with Node

use of edu.cmu.tetrad.graph.Node in project tetrad by cmu-phil.

the class TestDM method cycleExists.

public boolean cycleExists(Graph graph, List<Node> adjacentNodes, List<Node> path, Node currentNode) {
    if (adjacentNodes.isEmpty() && path.isEmpty()) {
        for (Node node : graph.getNodes()) {
            adjacentNodes = graph.getAdjacentNodes(node);
            if (adjacentNodes.isEmpty()) {
                continue;
            }
            path.add(node);
            currentNode = node;
            print("RAN: " + adjacentNodes + " " + path + " " + currentNode);
            return (cycleExists(graph, adjacentNodes, path, currentNode));
        }
    } else {
        adjacentNodes = graph.getAdjacentNodes(currentNode);
        for (Node node : adjacentNodes) {
            if (path.lastIndexOf(node) == (path.size() - 1)) {
                continue;
            } else {
                path.add(node);
                currentNode = node;
                return (cycleExists(graph, adjacentNodes, path, currentNode));
            }
        }
        if (listHasDuplicates(path)) {
            return (true);
        }
    }
    return (false);
}
Also used : Node(edu.cmu.tetrad.graph.Node)

Example 19 with Node

use of edu.cmu.tetrad.graph.Node in project tetrad by cmu-phil.

the class ExploreAutisticsNeurotypicals method restrictDataRange.

private static DataSet restrictDataRange(DataSet dataSet, double lowerRange, double upperRange) {
    int total = dataSet.getNumRows();
    List<Node> nodes = dataSet.getVariables();
    for (Node node : new ArrayList<>(nodes)) {
        if ("Group".equals(node.getName())) {
            continue;
        }
        int col = dataSet.getColumn(node);
        int count = 0;
        for (int i = 0; i < total; i++) {
            if (dataSet.getDouble(i, col) > 0) {
                count++;
            }
        }
        if (count < lowerRange * total || count > upperRange * total) {
            nodes.remove(node);
        }
    }
    return dataSet.subsetColumns(nodes);
}
Also used : Node(edu.cmu.tetrad.graph.Node) ArrayList(java.util.ArrayList)

Example 20 with Node

use of edu.cmu.tetrad.graph.Node in project tetrad by cmu-phil.

the class ExploreAutisticsNeurotypicals method printDegreeData.

public void printDegreeData() {
    // String path = "/Users/jdramsey/Documents/LAB_NOTEBOOK.2012.04.20/data/Joe_108_Variable";
    String path = "/Users/jdramsey/Documents/LAB_NOTEBOOK.2012.04.20/data/USM_Datasets/all";
    List<List<DataSet>> allDatasets = loadData(path, "ROI_data_autistic", "ROI_data_typical");
    List<List<Graph>> allGraphs = runAlgorithm(path, allDatasets, 10);
    List<List<Graph>> graphs = reconcileNodes(allGraphs);
    List<Node> nodes = graphs.get(0).get(0).getNodes();
    System.out.print("Group\t");
    for (Node node : nodes) {
        System.out.print(node.getName() + "\t");
    }
    System.out.println();
    for (int i = 0; i < graphs.size(); i++) {
        List<Graph> _graphs = graphs.get(i);
        for (Graph _graph : _graphs) {
            System.out.print(i + "\t");
            for (Node node : nodes) {
                System.out.print(_graph.getAdjacentNodes(node).size() + "\t");
            }
            System.out.println();
        }
    }
}
Also used : Graph(edu.cmu.tetrad.graph.Graph) Node(edu.cmu.tetrad.graph.Node) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

Node (edu.cmu.tetrad.graph.Node)674 ArrayList (java.util.ArrayList)129 Graph (edu.cmu.tetrad.graph.Graph)106 GraphNode (edu.cmu.tetrad.graph.GraphNode)64 DataSet (edu.cmu.tetrad.data.DataSet)59 LinkedList (java.util.LinkedList)55 ContinuousVariable (edu.cmu.tetrad.data.ContinuousVariable)48 Test (org.junit.Test)48 EdgeListGraph (edu.cmu.tetrad.graph.EdgeListGraph)46 List (java.util.List)45 Dag (edu.cmu.tetrad.graph.Dag)41 TetradMatrix (edu.cmu.tetrad.util.TetradMatrix)41 DiscreteVariable (edu.cmu.tetrad.data.DiscreteVariable)40 ChoiceGenerator (edu.cmu.tetrad.util.ChoiceGenerator)37 Endpoint (edu.cmu.tetrad.graph.Endpoint)29 DisplayNode (edu.cmu.tetradapp.workbench.DisplayNode)26 ColtDataSet (edu.cmu.tetrad.data.ColtDataSet)25 Edge (edu.cmu.tetrad.graph.Edge)23 SemIm (edu.cmu.tetrad.sem.SemIm)19 DepthChoiceGenerator (edu.cmu.tetrad.util.DepthChoiceGenerator)19