Search in sources :

Example 1 with CyNode

use of org.cytoscape.model.CyNode in project EnrichmentMapApp by BaderLab.

the class HeatMapMediator method getDataSetRankOptions.

private List<RankingOption> getDataSetRankOptions(EnrichmentMap map, CyNetwork network, List<CyNode> nodes, List<CyEdge> edges) {
    List<RankingOption> options = new ArrayList<>();
    for (EMDataSet dataset : map.getDataSetList()) {
        if (nodes.size() == 1 && edges.isEmpty() && dataset.getMethod() == Method.GSEA && contains(dataset, network, nodes.get(0))) {
            String geneSetName = network.getRow(nodes.get(0)).get(CyNetwork.NAME, String.class);
            Map<String, Ranking> ranks = dataset.getExpressionSets().getRanks();
            ranks.forEach((name, ranking) -> {
                options.add(new GSEALeadingEdgeRankingOption(dataset, geneSetName, name));
            });
        } else if (contains(network, dataset, nodes, edges)) {
            Map<String, Ranking> ranks = dataset.getExpressionSets().getRanks();
            ranks.forEach((name, ranking) -> {
                options.add(new BasicRankingOption(ranking, dataset, name));
            });
        }
    }
    return options;
}
Also used : CyNode(org.cytoscape.model.CyNode) Inject(com.google.inject.Inject) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) Operator(org.baderlab.csplugins.enrichmentmap.view.heatmap.HeatMapParams.Operator) Ranking(org.baderlab.csplugins.enrichmentmap.model.Ranking) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) CyRow(org.cytoscape.model.CyRow) CyNetwork(org.cytoscape.model.CyNetwork) Map(java.util.Map) SetCurrentNetworkViewEvent(org.cytoscape.application.events.SetCurrentNetworkViewEvent) CyServiceRegistrar(org.cytoscape.service.util.CyServiceRegistrar) CyTableUtil(org.cytoscape.model.CyTableUtil) Method(org.baderlab.csplugins.enrichmentmap.model.EMDataSet.Method) EMStyleBuilder(org.baderlab.csplugins.enrichmentmap.style.EMStyleBuilder) Properties(java.util.Properties) Transform(org.baderlab.csplugins.enrichmentmap.view.heatmap.HeatMapParams.Transform) Collection(java.util.Collection) SetCurrentNetworkViewListener(org.cytoscape.application.events.SetCurrentNetworkViewListener) Set(java.util.Set) CyNetworkManager(org.cytoscape.model.CyNetworkManager) EnrichmentMapManager(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMapManager) CytoPanel(org.cytoscape.application.swing.CytoPanel) RowsSetEvent(org.cytoscape.model.events.RowsSetEvent) RowsSetListener(org.cytoscape.model.events.RowsSetListener) List(java.util.List) CytoPanelComponent(org.cytoscape.application.swing.CytoPanelComponent) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) CyApplicationManager(org.cytoscape.application.CyApplicationManager) CySwingApplication(org.cytoscape.application.swing.CySwingApplication) CyNetworkView(org.cytoscape.view.model.CyNetworkView) CyEdge(org.cytoscape.model.CyEdge) Collections(java.util.Collections) Singleton(com.google.inject.Singleton) Ranking(org.baderlab.csplugins.enrichmentmap.model.Ranking) ArrayList(java.util.ArrayList) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) Map(java.util.Map)

Example 2 with CyNode

use of org.cytoscape.model.CyNode in project EnrichmentMapApp by BaderLab.

the class HeatMapMediator method updateHeatMap.

private void updateHeatMap(CyNetworkView networkView) {
    if (heatMapPanel == null)
        return;
    CyNetwork network = networkView.getModel();
    EnrichmentMap map = emManager.getEnrichmentMap(network.getSUID());
    if (map == null)
        return;
    List<CyNode> selectedNodes = CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
    List<CyEdge> selectedEdges = CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, true);
    String prefix = map.getParams().getAttributePrefix();
    this.onlyEdges = selectedNodes.isEmpty() && !selectedEdges.isEmpty();
    Set<String> union = unionGenesets(network, selectedNodes, selectedEdges, prefix);
    Set<String> inter = intersectionGenesets(network, selectedNodes, selectedEdges, prefix);
    List<RankingOption> rankOptions = getDataSetRankOptions(map, network, selectedNodes, selectedEdges);
    HeatMapParams params = getHeatMapParams(map, network.getSUID(), onlyEdges);
    heatMapPanel.selectGenes(map, params, rankOptions, union, inter);
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyNode(org.cytoscape.model.CyNode) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) CyEdge(org.cytoscape.model.CyEdge)

Example 3 with CyNode

use of org.cytoscape.model.CyNode in project EnrichmentMapApp by BaderLab.

the class HeatMapMediator method getDataSetRankOptions.

public List<RankingOption> getDataSetRankOptions(EnrichmentMap map) {
    CyNetwork network = networkManager.getNetwork(map.getNetworkID());
    List<CyNode> selectedNodes = CyTableUtil.getNodesInState(network, CyNetwork.SELECTED, true);
    List<CyEdge> selectedEdges = CyTableUtil.getEdgesInState(network, CyNetwork.SELECTED, true);
    return getDataSetRankOptions(map, network, selectedNodes, selectedEdges);
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge)

Example 4 with CyNode

use of org.cytoscape.model.CyNode in project EnrichmentMapApp by BaderLab.

the class HeatMapMediator method intersectionGenesets.

private static Set<String> intersectionGenesets(CyNetwork network, List<CyNode> nodes, List<CyEdge> edges, String prefix) {
    Set<String> inter = null;
    for (CyNode node : nodes) {
        Collection<String> genes = getGenes(network, node, prefix);
        if (inter == null)
            inter = new HashSet<>(genes);
        else
            inter.retainAll(genes);
    }
    for (CyEdge edge : edges) {
        Collection<String> genes = getGenes(network, edge.getSource(), prefix);
        if (inter == null)
            inter = new HashSet<>(genes);
        else
            inter.retainAll(genes);
        inter.retainAll(getGenes(network, edge.getTarget(), prefix));
    }
    return inter == null ? Collections.emptySet() : inter;
}
Also used : CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge) HashSet(java.util.HashSet)

Example 5 with CyNode

use of org.cytoscape.model.CyNode in project EnrichmentMapApp by BaderLab.

the class BaseNetworkTest method runPostAnalysis.

protected void runPostAnalysis(CyNetwork emNetwork, PostAnalysisParameters.Builder builder, String dataSetName) throws Exception {
    // Set up mocks
    when(applicationManager.getCurrentNetwork()).thenReturn(emNetwork);
    CyNetworkView networkViewMock = mock(CyNetworkView.class);
    when(applicationManager.getCurrentNetworkView()).thenReturn(networkViewMock);
    when(networkViewManager.getNetworkViews(emNetwork)).thenReturn(Arrays.asList(networkViewMock));
    @SuppressWarnings("unchecked") View<CyNode> nodeViewMock = Mockito.mock(View.class);
    when(networkViewMock.getNodeView(Matchers.<CyNode>anyObject())).thenReturn(nodeViewMock);
    when(nodeViewMock.getVisualProperty(BasicVisualLexicon.NODE_Y_LOCATION)).thenReturn(Double.valueOf(0.0));
    EnrichmentMap map = emManager.getEnrichmentMap(emNetwork.getSUID());
    assertNotNull(map);
    // Load the gene-sets from the file
    SerialTestTaskManager testTaskManager = new SerialTestTaskManager();
    File file = new File(builder.getSignatureGMTFileName());
    LoadSignatureSetsActionListener loader = loadSignatureSetsActionListenerFactory.create(file, new FilterMetric.None(), map);
    loader.setTaskManager(testTaskManager);
    loader.setGeneSetCallback(builder::setLoadedGMTGeneSets);
    loader.setFilteredSignatureSetsCallback(builder::addSelectedGeneSetNames);
    loader.actionPerformed(null);
    PostAnalysisParameters paParams = builder.build();
    // Run post-analysis
    EMDataSet dataSet = map.getDataSet(dataSetName);
    CreateDiseaseSignatureTaskParallel signatureTask = buildDiseaseSignatureTaskFactory.create(paParams, map, Arrays.asList(dataSet));
    testTaskManager = new SerialTestTaskManager();
    testTaskManager.execute(new TaskIterator(signatureTask));
}
Also used : SerialTestTaskManager(org.baderlab.csplugins.enrichmentmap.SerialTestTaskManager) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) FilterMetric(org.baderlab.csplugins.enrichmentmap.task.postanalysis.FilterMetric) CreateDiseaseSignatureTaskParallel(org.baderlab.csplugins.enrichmentmap.task.postanalysis.CreateDiseaseSignatureTaskParallel) PostAnalysisParameters(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisParameters) TaskIterator(org.cytoscape.work.TaskIterator) LoadSignatureSetsActionListener(org.baderlab.csplugins.enrichmentmap.actions.LoadSignatureSetsActionListener) CyNode(org.cytoscape.model.CyNode) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) CyNetworkView(org.cytoscape.view.model.CyNetworkView) File(java.io.File)

Aggregations

CyNode (org.cytoscape.model.CyNode)70 Test (org.junit.Test)46 CyEdge (org.cytoscape.model.CyEdge)37 DummyCyNode (org.cytoscape.model.DummyCyNode)20 DummyCyEdge (org.cytoscape.model.DummyCyEdge)18 CyNetwork (org.cytoscape.model.CyNetwork)16 ArrayList (java.util.ArrayList)9 CyRow (org.cytoscape.model.CyRow)9 CyNetworkView (org.cytoscape.view.model.CyNetworkView)7 EMDataSet (org.baderlab.csplugins.enrichmentmap.model.EMDataSet)6 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)4 List (java.util.List)4 Set (java.util.Set)4 EnrichmentMap (org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap)4 View (org.cytoscape.view.model.View)4 Paint (java.awt.Paint)3 Map (java.util.Map)3 Collectors (java.util.stream.Collectors)3 PostAnalysisParameters (org.baderlab.csplugins.enrichmentmap.model.PostAnalysisParameters)3