Search in sources :

Example 21 with Edge

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;
}
Also used : RandomGraph(edu.cmu.tetrad.algcomparison.graph.RandomGraph) EdgeListGraph(edu.cmu.tetrad.graph.EdgeListGraph) Graph(edu.cmu.tetrad.graph.Graph) Node(edu.cmu.tetrad.graph.Node) EdgeListGraph(edu.cmu.tetrad.graph.EdgeListGraph) Edge(edu.cmu.tetrad.graph.Edge)

Example 22 with Edge

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;
}
Also used : Endpoint(edu.cmu.tetrad.graph.Endpoint) GraphNode(edu.cmu.tetrad.graph.GraphNode) Node(edu.cmu.tetrad.graph.Node) JSONArray(org.json.JSONArray) JSONException(org.json.JSONException) Edge(edu.cmu.tetrad.graph.Edge) Endpoint(edu.cmu.tetrad.graph.Endpoint)

Example 23 with 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;
}
Also used : Triple(edu.cmu.tetrad.graph.Triple) GraphNode(edu.cmu.tetrad.graph.GraphNode) Node(edu.cmu.tetrad.graph.Node) EdgeListGraphSingleConnections(edu.cmu.tetrad.graph.EdgeListGraphSingleConnections) Edge(edu.cmu.tetrad.graph.Edge)

Example 24 with Edge

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);
}
Also used : Node(edu.cmu.tetrad.graph.Node) SessionNode(edu.cmu.tetrad.session.SessionNode) SessionEditorIndirectRef(edu.cmu.tetradapp.util.SessionEditorIndirectRef) Edge(edu.cmu.tetrad.graph.Edge)

Example 25 with Edge

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();
}
Also used : SessionNodeWrapper(edu.cmu.tetradapp.model.SessionNodeWrapper) Node(edu.cmu.tetrad.graph.Node) SessionNode(edu.cmu.tetrad.session.SessionNode) Edge(edu.cmu.tetrad.graph.Edge)

Aggregations

Edge (edu.cmu.tetrad.graph.Edge)43 Node (edu.cmu.tetrad.graph.Node)23 Graph (edu.cmu.tetrad.graph.Graph)14 EdgeListGraph (edu.cmu.tetrad.graph.EdgeListGraph)11 ArrayList (java.util.ArrayList)7 GraphNode (edu.cmu.tetrad.graph.GraphNode)5 Endpoint (edu.cmu.tetrad.graph.Endpoint)4 SessionNode (edu.cmu.tetrad.session.SessionNode)4 List (java.util.List)4 Knowledge2 (edu.cmu.tetrad.data.Knowledge2)3 Parameters (edu.cmu.tetrad.util.Parameters)3 SessionNodeWrapper (edu.cmu.tetradapp.model.SessionNodeWrapper)3 Point (java.awt.Point)3 HashSet (java.util.HashSet)3 TakesInitialGraph (edu.cmu.tetrad.algcomparison.utils.TakesInitialGraph)2 IKnowledge (edu.cmu.tetrad.data.IKnowledge)2 KnowledgeBoxInput (edu.cmu.tetrad.data.KnowledgeBoxInput)2 KnowledgeEdge (edu.cmu.tetrad.data.KnowledgeEdge)2 TetradLogger (edu.cmu.tetrad.util.TetradLogger)2 TetradSerializableUtils (edu.cmu.tetrad.util.TetradSerializableUtils)2