use of edu.cmu.tetrad.graph.Edge in project tetrad by cmu-phil.
the class LinearSineSimulation method makeMixedGraph.
private static Graph makeMixedGraph(Graph g, Map<String, Integer> m) {
List<Node> nodes = g.getNodes();
for (int i = 0; i < nodes.size(); i++) {
Node n = nodes.get(i);
int nL = m.get(n.getName());
if (nL > 0) {
Node nNew = new DiscreteVariable(n.getName(), nL);
nodes.set(i, nNew);
} else {
Node nNew = new ContinuousVariable(n.getName());
nodes.set(i, nNew);
}
}
Graph outG = new EdgeListGraph(nodes);
for (Edge e : g.getEdges()) {
Node n1 = e.getNode1();
Node n2 = e.getNode2();
Edge eNew = new Edge(outG.getNode(n1.getName()), outG.getNode(n2.getName()), e.getEndpoint1(), e.getEndpoint2());
outG.addEdge(eNew);
}
return outG;
}
use of edu.cmu.tetrad.graph.Edge in project tetrad by cmu-phil.
the class JsonUtils method parseJSONObjectToTetradEdge.
public static Edge parseJSONObjectToTetradEdge(Graph graph, JSONObject jObj) {
Node node1 = graph.getNode(jObj.getJSONObject("node1").getString("name"));
Node node2 = graph.getNode(jObj.getJSONObject("node2").getString("name"));
Endpoint endpoint1 = Endpoint.TYPES[jObj.getJSONObject("endpoint1").getInt("ordinal")];
Endpoint endpoint2 = Endpoint.TYPES[jObj.getJSONObject("endpoint2").getInt("ordinal")];
Edge edge = new Edge(node1, node2, endpoint1, endpoint2);
try {
// properties
JSONArray jArray = jObj.getJSONArray("properties");
if (jArray != null) {
for (int i = 0; i < jArray.length(); i++) {
edge.addProperty(parseJSONObjectToEdgeProperty(jArray.getString(i)));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
try {
// properties
JSONArray jArray = jObj.getJSONArray("edgeTypeProbabilities");
if (jArray != null) {
for (int i = 0; i < jArray.length(); i++) {
edge.addEdgeTypeProbability(parseJSONObjectToEdgeTypeProperty(jArray.getJSONObject(i)));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
return edge;
}
use of edu.cmu.tetrad.graph.Edge in project tetrad by cmu-phil.
the class JsonUtils method parseJSONObjectToTetradGraph.
public static Graph parseJSONObjectToTetradGraph(JSONObject jObj) {
// Node
List<Node> nodes = parseJSONArrayToTetradNodes(jObj.getJSONArray("nodes"));
EdgeListGraphSingleConnections graph = new EdgeListGraphSingleConnections(nodes);
// Edge
Set<Edge> edges = parseJSONArrayToTetradEdges(graph, jObj.getJSONArray("edgesSet"));
for (Edge edge : edges) {
graph.addEdge(edge);
}
// ambiguousTriples
Set<Triple> ambiguousTriples = parseJSONArrayToTetradTriples(jObj.getJSONArray("ambiguousTriples"));
for (Triple triple : ambiguousTriples) {
graph.addAmbiguousTriple(triple.getX(), triple.getY(), triple.getZ());
}
// underLineTriples
Set<Triple> underLineTriples = parseJSONArrayToTetradTriples(jObj.getJSONArray("underLineTriples"));
for (Triple triple : underLineTriples) {
graph.addUnderlineTriple(triple.getX(), triple.getY(), triple.getZ());
}
// dottedUnderLineTriples
Set<Triple> dottedUnderLineTriples = parseJSONArrayToTetradTriples(jObj.getJSONArray("dottedUnderLineTriples"));
for (Triple triple : dottedUnderLineTriples) {
graph.addDottedUnderlineTriple(triple.getX(), triple.getY(), triple.getZ());
}
// stuffRemovedSinceLastTripleAccess
boolean stuffRemovedSinceLastTripleAccess = jObj.getBoolean("stuffRemovedSinceLastTripleAccess");
graph.setStuffRemovedSinceLastTripleAccess(stuffRemovedSinceLastTripleAccess);
// highlightedEdges
Set<Edge> highlightedEdges = parseJSONArrayToTetradEdges(graph, jObj.getJSONArray("highlightedEdges"));
for (Edge edge : highlightedEdges) {
graph.setHighlighted(edge, true);
}
return graph;
}
use of edu.cmu.tetrad.graph.Edge in project tetrad by cmu-phil.
the class ConstructTemplateAction method selectSubgraph.
private static void selectSubgraph(List<Node> nodes) {
SessionEditorIndirectRef sessionEditorRef = DesktopController.getInstance().getFrontmostSessionEditor();
SessionEditor sessionEditor = (SessionEditor) sessionEditorRef;
SessionEditorWorkbench sessionWorkbench = sessionEditor.getSessionWorkbench();
for (Node node : nodes) {
sessionWorkbench.selectNode(node);
}
Set<Edge> edges = sessionWorkbench.getGraph().getEdges();
for (Edge edge : edges) {
Node node1 = edge.getNode1();
Node node2 = edge.getNode2();
if (nodes.contains(node1) && nodes.contains(node2)) {
sessionWorkbench.selectEdge(edge);
}
}
sessionWorkbench.scrollNodesToVisible(nodes);
}
use of edu.cmu.tetrad.graph.Edge in project tetrad by cmu-phil.
the class ConstructTemplateAction method addEdge.
public void addEdge(String nodeName1, String nodeName2) {
// Retrieve the nodes from the session wrapper.
Node node1 = getSessionWrapper().getNode(nodeName1);
Node node2 = getSessionWrapper().getNode(nodeName2);
// Make sure nodes existed in the session wrapper by these names.
if (node1 == null) {
throw new RuntimeException("There was no node by name nodeName1 in " + "the session wrapper: " + nodeName1);
}
if (node2 == null) {
throw new RuntimeException("There was no node by name nodeName2 in " + "the session wrapper: " + nodeName2);
}
// Construct an edge.
SessionNodeWrapper nodeWrapper1 = (SessionNodeWrapper) node1;
SessionNodeWrapper nodeWrapper2 = (SessionNodeWrapper) node2;
Edge edge = new Edge(nodeWrapper1, nodeWrapper2, Endpoint.TAIL, Endpoint.ARROW);
// Add the edge.
getSessionWrapper().addEdge(edge);
getSessionWorkbench().revalidate();
getSessionWorkbench().repaint();
}
Aggregations