Search in sources :

Example 31 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class NodeInteractionFilter method isHit.

private boolean isHit(CyNode pNode, List<CyEdge> edges) {
    // Get the list of relevant edges for this node
    List<CyEdge> adjacentEdges = null;
    if (nodeType == NODE_SOURCE) {
        adjacentEdges = network.getAdjacentEdgeList(pNode, Type.OUTGOING);
    } else if (nodeType == NODE_TARGET) {
        adjacentEdges = network.getAdjacentEdgeList(pNode, Type.INCOMING);
    } else if (nodeType == NODE_SOURCE_TARGET) {
        adjacentEdges = network.getAdjacentEdgeList(pNode, Type.ANY);
    } else {
        // nodeType == NODE_UNDEFINED --Neither source or target is selected
        return false;
    }
    if (adjacentEdges == null || adjacentEdges.size() == 0) {
        return false;
    }
    BitSet passFilter_edgeBits = passFilter.getEdgeBits();
    if (passFilter_edgeBits == null)
        return false;
    int edgeIndex = -1;
    for (int i = 0; i < adjacentEdges.size(); i++) {
        edgeIndex = edges.indexOf(adjacentEdges.get(i));
        if (passFilter_edgeBits.get(edgeIndex) == true) {
            return true;
        }
    }
    return false;
}
Also used : BitSet(java.util.BitSet) CyEdge(org.cytoscape.model.CyEdge)

Example 32 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class NodeInteractionFilter method apply.

public void apply() {
    if (!childChanged)
        return;
    if (network == null) {
        setNetwork(applicationManager.getCurrentNetwork());
    }
    if (network == null) {
        return;
    }
    // Make sure the pass filter is current
    if (passFilter == null) {
        passFilter = new CompositeFilter("None");
    }
    if (!passFilter.getName().equalsIgnoreCase("None")) {
        passFilter.setNetwork(network);
        passFilter.apply();
    }
    List<CyNode> nodes_list = network.getNodeList();
    List<CyEdge> edges = network.getEdgeList();
    // NodeInteractionFilter will select node only
    int objectCount = nodes_list.size();
    // all the bits are false at very beginning
    nodeBits = new BitSet(objectCount);
    if ((nodeType != NODE_UNDEFINED) && (!passFilter.getName().equalsIgnoreCase("None"))) {
        for (int i = 0; i < objectCount; i++) {
            if (isHit(nodes_list.get(i), edges)) {
                nodeBits.set(i);
            }
        }
    }
    if (negation) {
        nodeBits.flip(0, objectCount);
    }
    childChanged = false;
}
Also used : BitSet(java.util.BitSet) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge)

Example 33 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class EdgeInteractionFilter method apply.

public void apply() {
    if (!childChanged)
        return;
    if (network == null) {
        setNetwork(applicationManager.getCurrentNetwork());
    }
    if (network == null) {
        return;
    }
    // Make sure the pass filter is current
    if (passFilter == null) {
        passFilter = new CompositeFilter("None");
    }
    if (!passFilter.getName().equalsIgnoreCase("None")) {
        passFilter.setNetwork(network);
        passFilter.apply();
    }
    BitSet passFilter_nodeBits = passFilter.getNodeBits();
    List<CyEdge> edges_list = network.getEdgeList();
    List<CyNode> nodes = network.getNodeList();
    // EdgeInteractionFilter will select edge only
    int objectCount = edges_list.size();
    // all the bits are false at very beginning
    edgeBits = new BitSet(objectCount);
    if (nodeType != NODE_UNDEFINED) {
        for (int i = 0; i < objectCount; i++) {
            if (isHit(edges_list.get(i), passFilter_nodeBits, nodes)) {
                edgeBits.set(i);
            }
        }
    }
    if (negation) {
        edgeBits.flip(0, objectCount);
    }
    childChanged = false;
}
Also used : BitSet(java.util.BitSet) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge)

Example 34 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class EnhancedSearchIndex method BuildIndex.

private void BuildIndex(RAMDirectory idx, CyNetwork network) {
    try {
        // Make a writer to create the index, empty set of stop words (redmine #3808)
        StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_30, Collections.emptySet());
        analyzer.setMaxTokenLength(1024 * 10);
        IndexWriter writer = new IndexWriter(idx, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);
        // Add a document for each graph object - node and edge
        List<CyNode> nodeList = network.getNodeList();
        this.taskMonitor.setProgress(0.1);
        for (CyNode cyNode : nodeList) {
            writer.addDocument(createDocument(network, cyNode, EnhancedSearch.NODE_TYPE, cyNode.getSUID()));
        }
        this.taskMonitor.setProgress(0.6);
        List<CyEdge> edgeList = network.getEdgeList();
        for (CyEdge cyEdge : edgeList) {
            writer.addDocument(createDocument(network, cyEdge, EnhancedSearch.EDGE_TYPE, cyEdge.getSUID()));
        }
        // Optimize and close the writer to finish building the index
        writer.optimize();
        writer.close();
    } catch (IOException ioe) {
        ioe.printStackTrace();
    }
    this.taskMonitor.setProgress(0.95);
}
Also used : IndexWriter(org.apache.lucene.index.IndexWriter) StandardAnalyzer(org.apache.lucene.analysis.standard.StandardAnalyzer) CyNode(org.cytoscape.model.CyNode) IOException(java.io.IOException) CyEdge(org.cytoscape.model.CyEdge)

Example 35 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class SelectTask method getResults.

public Object getResults(Class type) {
    List<CyIdentifiable> identifiables = new ArrayList();
    if (selectedNodes != null)
        identifiables.addAll(selectedNodes);
    if (selectedEdges != null)
        identifiables.addAll(selectedEdges);
    if (type.equals(List.class)) {
        return identifiables;
    } else if (type.equals(String.class)) {
        if (identifiables.size() == 0)
            return "<none>";
        String ret = "";
        if (selectedNodes != null && selectedNodes.size() > 0) {
            ret += "Nodes selected: \n";
            for (CyNode node : selectedNodes) {
                ret += "   " + network.getRow(node).get(CyNetwork.NAME, String.class) + "\n";
            }
        }
        if (selectedEdges != null && selectedEdges.size() > 0) {
            ret += "Edges selected: \n";
            for (CyEdge edge : selectedEdges) {
                ret += "   " + network.getRow(edge).get(CyNetwork.NAME, String.class) + "\n";
            }
        }
        return ret;
    } else if (type.equals(JSONResult.class)) {
        JSONResult res = () -> {
            if (identifiables == null || identifiables.size() == 0)
                return "{}";
            else {
                CyJSONUtil cyJSONUtil = registrar.getService(CyJSONUtil.class);
                String result = "{\"nodes\":";
                if (selectedNodes == null || selectedNodes.size() == 0)
                    result += "[]";
                else
                    result += cyJSONUtil.cyIdentifiablesToJson(selectedNodes);
                result += ", \"edges\":";
                if (selectedEdges == null || selectedEdges.size() == 0)
                    result += "[]";
                else
                    result += cyJSONUtil.cyIdentifiablesToJson(selectedEdges);
                return result + "}";
            }
        };
        return res;
    }
    return identifiables;
}
Also used : JSONResult(org.cytoscape.work.json.JSONResult) ArrayList(java.util.ArrayList) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge) CyIdentifiable(org.cytoscape.model.CyIdentifiable) CyJSONUtil(org.cytoscape.util.json.CyJSONUtil)

Aggregations

CyEdge (org.cytoscape.model.CyEdge)302 CyNode (org.cytoscape.model.CyNode)231 CyNetwork (org.cytoscape.model.CyNetwork)103 ArrayList (java.util.ArrayList)77 Test (org.junit.Test)71 CyNetworkView (org.cytoscape.view.model.CyNetworkView)55 HashSet (java.util.HashSet)42 CyRow (org.cytoscape.model.CyRow)41 CyIdentifiable (org.cytoscape.model.CyIdentifiable)29 HashMap (java.util.HashMap)26 CySubNetwork (org.cytoscape.model.subnetwork.CySubNetwork)25 CyTable (org.cytoscape.model.CyTable)21 DummyCyEdge (org.cytoscape.model.DummyCyEdge)21 VisualStyle (org.cytoscape.view.vizmap.VisualStyle)18 DummyCyNode (org.cytoscape.model.DummyCyNode)17 View (org.cytoscape.view.model.View)16 List (java.util.List)13 CyEventHelper (org.cytoscape.event.CyEventHelper)12 CyGroup (org.cytoscape.group.CyGroup)12 VisualMappingManager (org.cytoscape.view.vizmap.VisualMappingManager)12