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);
}
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);
}
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);
}
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);
}
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();
}
}
}
Aggregations