Search in sources :

Example 1 with CyNetwork

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

the class FilterNodesEdgesTask method filterEdges.

private void filterEdges(Set<CyNode> nodes, Set<CyEdge> edges, TaskMonitor taskMonitor, double initialProgress) {
    CyNetwork net = networkView.getModel();
    List<CyEdge> edgeList = net.getEdgeList();
    int total = edgeList.size();
    int count = 0;
    float progress = (float) initialProgress;
    for (CyEdge e : edgeList) {
        if (cancelled)
            return;
        final View<CyEdge> ev = networkView.getEdgeView(e);
        if (ev == null)
            // Should never happen!
            continue;
        boolean filteredIn = edges.contains(e) && nodes.contains(e.getSource()) && nodes.contains(e.getTarget());
        // Don't forget to remove all locked values first!
        ev.clearValueLock(EDGE_VISIBLE);
        ev.clearValueLock(EDGE_TRANSPARENCY);
        ev.clearValueLock(EDGE_LABEL_TRANSPARENCY);
        if (filteredIn) {
            if (filterMode == FilterMode.SELECT)
                net.getRow(e).set(CyNetwork.SELECTED, true);
        } else {
            switch(filterMode) {
                case HIDE:
                    net.getRow(e).set(CyNetwork.SELECTED, false);
                    ev.setLockedValue(EDGE_VISIBLE, false);
                    break;
                case HIGHLIGHT:
                    ev.setLockedValue(EDGE_TRANSPARENCY, FILTERED_OUT_EDGE_TRANSPARENCY);
                    ev.setLockedValue(EDGE_LABEL_TRANSPARENCY, FILTERED_OUT_EDGE_TRANSPARENCY);
                    break;
                case SELECT:
                    net.getRow(e).set(CyNetwork.SELECTED, false);
                    break;
            }
        }
        // Use only 2 decimals to avoid too many UI updates when setting very small numbers
        float newProgress = Math.round((initialProgress + count * (1 - initialProgress) / total) * 100) / 100.0f;
        if (newProgress != progress) {
            taskMonitor.setProgress(newProgress);
            progress = newProgress;
        }
        count++;
    }
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyEdge(org.cytoscape.model.CyEdge)

Example 2 with CyNetwork

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

the class CreateEMNetworkTask method createEMNetwork.

private long createEMNetwork() {
    // Create the CyNetwork
    CyNetwork network = networkFactory.createNetwork();
    network.getRow(network).set(CyNetwork.NAME, networkNaming.getSuggestedNetworkTitle(LegacySupport.EM_NAME));
    map.setNetworkID(network.getSUID());
    createNodeColumns(network);
    createEdgeColumns(network);
    Map<String, CyNode> nodes = createNodes(network);
    createEdges(network, nodes);
    networkManager.addNetwork(network);
    emManager.registerEnrichmentMap(map);
    return network.getSUID();
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyNode(org.cytoscape.model.CyNode)

Example 3 with CyNetwork

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

the class CreateEMViewTask method visualizeMap.

private void visualizeMap() {
    CyNetwork network = networkManager.getNetwork(map.getNetworkID());
    CyNetworkView view = networkViewFactory.createNetworkView(network);
    networkViewManager.addNetworkView(view);
    //apply force directed layout
    CyLayoutAlgorithm layout = layoutManager.getLayout("force-directed");
    if (layout == null)
        layout = layoutManager.getDefaultLayout();
    Task styleTask = applyStyleTaskFactory.create(new EMStyleOptions(view, map), null, false);
    TaskIterator layoutTasks = layout.createTaskIterator(view, layout.createLayoutContext(), CyLayoutAlgorithm.ALL_NODE_VIEWS, null);
    TaskIterator moreTasks = new TaskIterator();
    moreTasks.append(styleTask);
    moreTasks.append(layoutTasks);
    insertTasksAfterCurrentTask(moreTasks);
}
Also used : EMStyleOptions(org.baderlab.csplugins.enrichmentmap.style.EMStyleOptions) Task(org.cytoscape.work.Task) AbstractTask(org.cytoscape.work.AbstractTask) TaskIterator(org.cytoscape.work.TaskIterator) CyLayoutAlgorithm(org.cytoscape.view.layout.CyLayoutAlgorithm) CyNetwork(org.cytoscape.model.CyNetwork) CyNetworkView(org.cytoscape.view.model.CyNetworkView)

Example 4 with CyNetwork

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

the class LegacySessionLoader method loadSession.

/**
	 * Restore Enrichment maps
	 *
	 * @param pStateFileList - list of files associated with thie session
	 */
@SuppressWarnings("unchecked")
public void loadSession(CySession session) {
    Map<Long, EnrichmentMapParameters> paramsMap = new HashMap<>();
    Map<Long, EnrichmentMap> enrichmentMapMap = new HashMap<>();
    List<File> fileList = session.getAppFileListMap().get(CyActivator.APP_NAME);
    try {
        //go through the prop files first to create the correct objects to be able to add other files to.
        for (File prop_file : fileList) {
            if (prop_file.getName().contains(".props")) {
                InputStream reader = streamUtil.getInputStream(prop_file.getAbsolutePath());
                String fullText = new Scanner(reader, "UTF-8").useDelimiter("\\A").next();
                //Given the file with all the parameters create a new parameter
                EnrichmentMapParameters params = enrichmentMapParametersFactory.create(fullText);
                EnrichmentMap em = new EnrichmentMap(params.getCreationParameters(), serviceRegistrar);
                //get the network name
                String param_name = em.getName();
                //TODO:distinguish between GSEA and EM saved sessions
                String props_name = (prop_file.getName().split("\\."))[0];
                String networkName = param_name;
                //related to bug ticket #49
                if (!props_name.equalsIgnoreCase(param_name))
                    networkName = props_name;
                //after associated the properties with the network
                //initialized each Dataset that we have files for
                HashMap<String, DataSetFiles> files = params.getFiles();
                for (Iterator<String> j = params.getFiles().keySet().iterator(); j.hasNext(); ) {
                    String current_dataset = j.next();
                    Method method = EnrichmentMapParameters.stringToMethod(params.getMethod());
                    em.createDataSet(current_dataset, method, files.get(current_dataset));
                }
                CyNetwork network = getNetworkByName(networkName);
                Long suid = network.getSUID();
                em.setNetworkID(suid);
                paramsMap.put(suid, params);
                enrichmentMapMap.put(suid, em);
            }
        }
        // go through the rest of the files
        for (File propFile : fileList) {
            FileNameParts parts = ParseFileName(propFile);
            if (parts == null || propFile.getName().contains(".props"))
                continue;
            CyNetwork net = getNetworkByName(parts.name);
            EnrichmentMap em = net == null ? null : enrichmentMapMap.get(net.getSUID());
            EnrichmentMapParameters params = paramsMap.get(net.getSUID());
            Method method = EnrichmentMapParameters.stringToMethod(params.getMethod());
            if (em == null) {
                System.out.println("network for file" + propFile.getName() + " does not exist.");
            } else if ((!propFile.getName().contains(".props")) && (!propFile.getName().contains(".expression1.txt")) && (!propFile.getName().contains(".expression2.txt"))) {
                HashMap<String, String> props = params.getProps();
                //if this a dataset specific file make sure there is a dataset object for it
                if (!(parts.dataset == null) && em.getDataSet(parts.dataset) == null && !parts.dataset.equalsIgnoreCase("signature"))
                    em.createDataSet(parts.dataset, method, params.getFiles().get(parts.dataset));
                if (parts.type == null)
                    System.out.println("Sorry, unable to determine the type of the file: " + propFile.getName());
                //read the file
                InputStream reader = streamUtil.getInputStream(propFile.getAbsolutePath());
                String fullText = new Scanner(reader, "UTF-8").useDelimiter("\\A").next();
                //if the file is empty then skip it
                if (fullText == null || fullText.equalsIgnoreCase(""))
                    continue;
                if (propFile.getName().contains(".gmt")) {
                    HashMap<String, GeneSet> gsMap = (HashMap<String, GeneSet>) params.repopulateHashmap(fullText, 1);
                    if (propFile.getName().contains(".signature.gmt")) {
                        // TODO Find a better way to serialize EMSignatureDataSet
                        String sdsName = propFile.getName().replace(".signature.gmt", "");
                        sdsName = NamingUtil.getUniqueName(sdsName, em.getSignatureDataSets().keySet());
                        EMSignatureDataSet sigDataSet = new EMSignatureDataSet(sdsName);
                        em.addSignatureDataSet(sigDataSet);
                        SetOfGeneSets sigGeneSets = sigDataSet.getGeneSetsOfInterest();
                        gsMap.forEach((k, v) -> sigGeneSets.addGeneSet(k, v));
                    } else if (propFile.getName().contains(".set2.gmt")) {
                        // account for legacy session files
                        if (em.getAllGeneSets().containsKey(LegacySupport.DATASET2)) {
                            SetOfGeneSets gs = new SetOfGeneSets(LegacySupport.DATASET2, props);
                            gs.setGeneSets(gsMap);
                        }
                    } else {
                        SetOfGeneSets gs = new SetOfGeneSets(parts.dataset, props);
                        gs.setGeneSets(gsMap);
                        em.getDataSets().get(parts.dataset).setSetOfGeneSets(gs);
                    }
                }
                if (propFile.getName().contains(".genes.txt")) {
                    HashMap<String, Integer> genes = params.repopulateHashmap(fullText, 2);
                    genes.forEach(em::addGene);
                    //ticket #188 - unable to open session files that have empty enrichment maps.
                    if (genes != null && !genes.isEmpty())
                        // Ticket #107 : restore also gene count (needed to determine the next free hash in case we do PostAnalysis with a restored session)
                        em.setNumberOfGenes(Math.max(em.getNumberOfGenes(), Collections.max(genes.values()) + 1));
                }
                if (propFile.getName().contains(".hashkey2genes.txt")) {
                    HashMap<Integer, String> hashkey2gene = params.repopulateHashmap(fullText, 5);
                    //ticket #188 - unable to open session files that have empty enrichment maps.
                    if (hashkey2gene != null && !hashkey2gene.isEmpty())
                        // Ticket #107 : restore also gene count (needed to determine the next free hash in case we do PostAnalysis with a restored session)
                        em.setNumberOfGenes(Math.max(em.getNumberOfGenes(), Collections.max(hashkey2gene.keySet()) + 1));
                }
                if ((parts.type != null && (parts.type.equalsIgnoreCase("ENR") || (parts.type.equalsIgnoreCase("SubENR")))) || propFile.getName().contains(".ENR1.txt") || propFile.getName().contains(".SubENR1.txt")) {
                    SetOfEnrichmentResults enrichments;
                    int temp = 1;
                    //check to see if this dataset has enrichment results already
                    if (parts.dataset != null && em.getDataSet(parts.dataset).getEnrichments() != null) {
                        enrichments = em.getDataSet(parts.dataset).getEnrichments();
                    } else if (parts.dataset == null) {
                        enrichments = em.getDataSet(LegacySupport.DATASET1).getEnrichments();
                    /*enrichments = new SetOfEnrichmentResults(EnrichmentMap.DATASET1,props);
                			em.getDataset(EnrichmentMap.DATASET1).setEnrichments(enrichments);*/
                    } else {
                        enrichments = new SetOfEnrichmentResults(parts.dataset, props);
                        em.getDataSet(parts.dataset).setEnrichments(enrichments);
                    }
                    if (parts.type.equalsIgnoreCase("ENR") || propFile.getName().contains(".ENR1.txt")) {
                        if (params.getMethod().equalsIgnoreCase(EnrichmentMapParameters.method_GSEA))
                            enrichments.setEnrichments(params.repopulateHashmap(fullText, 3));
                        else
                            enrichments.setEnrichments(params.repopulateHashmap(fullText, 4));
                    }
                }
                //it would only happen for sessions saved with version 0.8
                if (propFile.getName().contains(".RANKS1.txt") || propFile.getName().contains(".RANKS1Genes.txt")) {
                    Ranking new_ranking;
                    //Check to see if there is already GSEARanking
                    if (em.getDataSet(LegacySupport.DATASET1).getExpressionSets().getAllRanksNames().contains(Ranking.GSEARanking)) {
                        new_ranking = em.getDataSet(LegacySupport.DATASET1).getExpressionSets().getRanksByName(Ranking.GSEARanking);
                    } else {
                        new_ranking = new Ranking();
                        em.getDataSet(LegacySupport.DATASET1).getExpressionSets().addRanks(Ranking.GSEARanking, new_ranking);
                    }
                    if (propFile.getName().contains(".RANKS1.txt")) {
                        Map<Integer, Rank> ranks = (Map<Integer, Rank>) params.repopulateHashmap(fullText, 7);
                        ranks.forEach(new_ranking::addRank);
                    }
                //						if(prop_file.getName().contains(".RANKS1Genes.txt"))
                //							new_ranking.setRank2gene(em.getParams().repopulateHashmap(fullText,7));
                //						if(prop_file.getName().contains(".RANKS1.txt"))
                //							new_ranking.setRanking(em.getParams().repopulateHashmap(fullText,6));
                }
                if (propFile.getName().contains(".RANKS.txt")) {
                    if (parts.ranks_name == null) {
                        //we need to get the name of this set of rankings
                        // network_name.ranking_name.ranks.txt --> split by "." and get 2
                        String[] file_name_tokens = (propFile.getName()).split("\\.");
                        if ((file_name_tokens.length == 4) && (file_name_tokens[1].equals("Dataset 1 Ranking") || file_name_tokens[1].equals("Dataset 2 Ranking")) || (propFile.getName().contains(Ranking.GSEARanking)))
                            parts.ranks_name = Ranking.GSEARanking;
                        else //this is an extra rank file for backwards compatability.  Ignore it.
                        if ((file_name_tokens.length == 4) && (file_name_tokens[1].equals("Dataset 1") || file_name_tokens[1].equals("Dataset 2")) && file_name_tokens[2].equals("RANKS"))
                            continue;
                        else
                            //file name is not structured properly --> default to file name
                            parts.ranks_name = propFile.getName();
                    }
                    Ranking new_ranking = new Ranking();
                    Map<Integer, Rank> ranks = (Map<Integer, Rank>) params.repopulateHashmap(fullText, 6);
                    ranks.forEach(new_ranking::addRank);
                    if (parts.dataset != null)
                        em.getDataSet(parts.dataset).getExpressionSets().addRanks(parts.ranks_name, new_ranking);
                    else
                        em.getDataSet(LegacySupport.DATASET1).getExpressionSets().addRanks(parts.ranks_name, new_ranking);
                }
                //Deal with legacy issues                    
                if (params.isTwoDatasets()) {
                    //make sure there is a Dataset2
                    if (!em.getDataSets().containsKey(LegacySupport.DATASET2))
                        em.createDataSet(LegacySupport.DATASET2, method, new DataSetFiles());
                    if (propFile.getName().contains(".ENR2.txt") || propFile.getName().contains(".SubENR2.txt")) {
                        SetOfEnrichmentResults enrichments;
                        //check to see if this dataset has enrichment results already
                        if (em.getDataSet(LegacySupport.DATASET2).getEnrichments() != null) {
                            enrichments = em.getDataSet(LegacySupport.DATASET2).getEnrichments();
                        } else {
                            enrichments = new SetOfEnrichmentResults(LegacySupport.DATASET2, props);
                            em.getDataSet(LegacySupport.DATASET2).setEnrichments(enrichments);
                        }
                        if (propFile.getName().contains(".ENR2.txt")) {
                            if (params.getMethod().equalsIgnoreCase(EnrichmentMapParameters.method_GSEA))
                                enrichments.setEnrichments(params.repopulateHashmap(fullText, 3));
                            else
                                enrichments.setEnrichments(params.repopulateHashmap(fullText, 4));
                        }
                    }
                    //it would only happen for sessions saved with version 0.8
                    if (propFile.getName().contains(".RANKS2.txt") || propFile.getName().contains(".RANKS2Genes.txt")) {
                        Ranking new_ranking;
                        // Check to see if there is already GSEARanking
                        if (em.getDataSet(LegacySupport.DATASET2).getExpressionSets().getAllRanksNames().contains(Ranking.GSEARanking)) {
                            new_ranking = em.getDataSet(LegacySupport.DATASET2).getExpressionSets().getRanksByName(Ranking.GSEARanking);
                        } else {
                            new_ranking = new Ranking();
                            em.getDataSet(LegacySupport.DATASET2).getExpressionSets().addRanks(Ranking.GSEARanking, new_ranking);
                        }
                        if (propFile.getName().contains(".RANKS2.txt")) {
                            Map<Integer, Rank> ranks = (Map<Integer, Rank>) params.repopulateHashmap(fullText, 6);
                            ranks.forEach(new_ranking::addRank);
                        }
                    }
                }
            }
        }
        //info from the parameters
        for (int i = 0; i < fileList.size(); i++) {
            File prop_file = fileList.get(i);
            FileNameParts parts_exp = ParseFileName(prop_file);
            //unrecognized file
            if ((parts_exp == null) || (parts_exp.name == null))
                continue;
            CyNetwork net = getNetworkByName(parts_exp.name);
            EnrichmentMap map = net == null ? null : enrichmentMapMap.get(net.getSUID());
            EnrichmentMapParameters params = paramsMap.get(net.getSUID());
            Map<String, String> props = params.getProps();
            if (parts_exp.type != null && parts_exp.type.equalsIgnoreCase("expression")) {
                if (map.getDataSets().containsKey(parts_exp.dataset)) {
                    EMDataSet ds = map.getDataSet(parts_exp.dataset);
                    ds.getDataSetFiles().setExpressionFileName(prop_file.getAbsolutePath());
                    ds.getExpressionSets().setFilename(prop_file.getAbsolutePath());
                    ExpressionFileReaderTask expressionFile1 = new ExpressionFileReaderTask(ds);
                    GeneExpressionMatrix matrix = expressionFile1.parse();
                    matrix.restoreProps(parts_exp.dataset, props);
                }
            }
            //Deal with legacy session files.
            if (prop_file.getName().contains("expression1.txt")) {
                EMDataSet ds1 = map.getDataSet(LegacySupport.DATASET1);
                ds1.getDataSetFiles().setExpressionFileName(prop_file.getAbsolutePath());
                ds1.getExpressionSets().setFilename(prop_file.getAbsolutePath());
                ExpressionFileReaderTask expressionFile1 = new ExpressionFileReaderTask(ds1);
                expressionFile1.parse();
            }
            if (prop_file.getName().contains("expression2.txt")) {
                EMDataSet ds2 = map.getDataSet(LegacySupport.DATASET2);
                ds2.getDataSetFiles().setExpressionFileName(prop_file.getAbsolutePath());
                ds2.getExpressionSets().setFilename(prop_file.getAbsolutePath());
                ExpressionFileReaderTask expressionFile2 = new ExpressionFileReaderTask(ds2);
                expressionFile2.parse();
                //are dealing with two distinct expression files.
                if (map.getDataSet(LegacySupport.DATASET2) != null && map.getDataSet(LegacySupport.DATASET2).getGeneSetsOfInterest() != null && !map.getDataSet(LegacySupport.DATASET2).getGeneSetsOfInterest().getGeneSets().isEmpty()) {
                    map.setDistinctExpressionSets(true);
                    map.getDataSet(LegacySupport.DATASET1).setDataSetGenes(new HashSet<Integer>((Set<Integer>) map.getDataSet(LegacySupport.DATASET1).getExpressionSets().getGeneIds()));
                    map.getDataSet(LegacySupport.DATASET2).setDataSetGenes(new HashSet<Integer>((Set<Integer>) map.getDataSet(LegacySupport.DATASET2).getExpressionSets().getGeneIds()));
                }
            }
        }
        //iterate over the networks
        for (Iterator<Long> j = enrichmentMapMap.keySet().iterator(); j.hasNext(); ) {
            Long id = j.next();
            EnrichmentMap map = enrichmentMapMap.get(id);
            //only initialize objects if there is a map for this network
            if (map != null) {
                if (map.getDataSets().size() > 1) {
                    Set<Integer> dataset1_genes = map.getDataSets().get(LegacySupport.DATASET1).getDataSetGenes();
                    Set<Integer> dataset2_genes = map.getDataSets().get(LegacySupport.DATASET2).getDataSetGenes();
                    if (!dataset1_genes.equals(dataset2_genes))
                        map.setDistinctExpressionSets(true);
                }
                //initialize the Genesets (makes sure the leading edge is set correctly)
                //Initialize the set of genesets and GSEA results that we want to compute over
                InitializeGenesetsOfInterestTask genesets_init = new InitializeGenesetsOfInterestTask(map);
                // MKTODO really?
                genesets_init.setThrowIfMissing(false);
                genesets_init.initializeSets(null);
            //					//for each map compute the similarity matrix, (easier than storing it) compute the geneset similarities
            //					ComputeSimilarityTask similarities = new ComputeSimilarityTask(map, ComputeSimilarityTask.ENRICHMENT);
            //					Map<String, GenesetSimilarity> similarity_results = similarities.computeGenesetSimilarities(null);
            //					map.setGenesetSimilarity(similarity_results);
            //
            //					// also compute geneset similarities between Enrichment- and Signature Genesets (if any)
            //					if (! map.getSignatureGenesets().isEmpty()){
            //						ComputeSimilarityTask sigSimilarities = new ComputeSimilarityTask(map, ComputeSimilarityTask.SIGNATURE);
            //						Map<String, GenesetSimilarity> sig_similarity_results = sigSimilarities.computeGenesetSimilarities(null);
            //						map.getGenesetSimilarity().putAll(sig_similarity_results);
            //					}
            }
        //end of if(map != null)
        }
        for (Iterator<Long> j = enrichmentMapMap.keySet().iterator(); j.hasNext(); ) {
            Long id = j.next();
            CyNetwork currentNetwork = cyNetworkManager.getNetwork(id);
            EnrichmentMap map = enrichmentMapMap.get(id);
            map.setLegacy(true);
            emManager.registerEnrichmentMap(map);
            if (!j.hasNext()) {
                //set the last network to be the one viewed and initialize the parameters panel
                cyApplicationManager.setCurrentNetwork(currentNetwork);
            }
        }
    } catch (Exception ee) {
        ee.printStackTrace();
    }
}
Also used : DataSetFiles(org.baderlab.csplugins.enrichmentmap.model.DataSetFiles) NamingUtil(org.baderlab.csplugins.enrichmentmap.util.NamingUtil) CySession(org.cytoscape.session.CySession) Inject(com.google.inject.Inject) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) EnrichmentMapParameters(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMapParameters) Scanner(java.util.Scanner) ExpressionFileReaderTask(org.baderlab.csplugins.enrichmentmap.parsers.ExpressionFileReaderTask) HashMap(java.util.HashMap) Ranking(org.baderlab.csplugins.enrichmentmap.model.Ranking) CyActivator(org.baderlab.csplugins.enrichmentmap.CyActivator) StreamUtil(org.cytoscape.io.util.StreamUtil) SetOfEnrichmentResults(org.baderlab.csplugins.enrichmentmap.model.SetOfEnrichmentResults) HashSet(java.util.HashSet) GeneExpressionMatrix(org.baderlab.csplugins.enrichmentmap.model.GeneExpressionMatrix) CyNetwork(org.cytoscape.model.CyNetwork) Map(java.util.Map) CyServiceRegistrar(org.cytoscape.service.util.CyServiceRegistrar) Method(org.baderlab.csplugins.enrichmentmap.model.EMDataSet.Method) Iterator(java.util.Iterator) LegacySupport(org.baderlab.csplugins.enrichmentmap.model.LegacySupport) GeneSet(org.baderlab.csplugins.enrichmentmap.model.GeneSet) Set(java.util.Set) CyNetworkManager(org.cytoscape.model.CyNetworkManager) EnrichmentMapManager(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMapManager) SetOfGeneSets(org.baderlab.csplugins.enrichmentmap.model.SetOfGeneSets) File(java.io.File) List(java.util.List) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) CyApplicationManager(org.cytoscape.application.CyApplicationManager) Rank(org.baderlab.csplugins.enrichmentmap.model.Rank) EMSignatureDataSet(org.baderlab.csplugins.enrichmentmap.model.EMSignatureDataSet) Collections(java.util.Collections) InitializeGenesetsOfInterestTask(org.baderlab.csplugins.enrichmentmap.task.InitializeGenesetsOfInterestTask) InputStream(java.io.InputStream) Scanner(java.util.Scanner) EMSignatureDataSet(org.baderlab.csplugins.enrichmentmap.model.EMSignatureDataSet) HashSet(java.util.HashSet) GeneSet(org.baderlab.csplugins.enrichmentmap.model.GeneSet) Set(java.util.Set) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) EMSignatureDataSet(org.baderlab.csplugins.enrichmentmap.model.EMSignatureDataSet) HashMap(java.util.HashMap) CyNetwork(org.cytoscape.model.CyNetwork) SetOfGeneSets(org.baderlab.csplugins.enrichmentmap.model.SetOfGeneSets) Ranking(org.baderlab.csplugins.enrichmentmap.model.Ranking) ExpressionFileReaderTask(org.baderlab.csplugins.enrichmentmap.parsers.ExpressionFileReaderTask) GeneSet(org.baderlab.csplugins.enrichmentmap.model.GeneSet) InputStream(java.io.InputStream) InitializeGenesetsOfInterestTask(org.baderlab.csplugins.enrichmentmap.task.InitializeGenesetsOfInterestTask) Rank(org.baderlab.csplugins.enrichmentmap.model.Rank) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) Method(org.baderlab.csplugins.enrichmentmap.model.EMDataSet.Method) GeneExpressionMatrix(org.baderlab.csplugins.enrichmentmap.model.GeneExpressionMatrix) EnrichmentMapParameters(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMapParameters) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) File(java.io.File) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) HashMap(java.util.HashMap) Map(java.util.Map) DataSetFiles(org.baderlab.csplugins.enrichmentmap.model.DataSetFiles) SetOfEnrichmentResults(org.baderlab.csplugins.enrichmentmap.model.SetOfEnrichmentResults)

Example 5 with CyNetwork

use of org.cytoscape.model.CyNetwork 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)

Aggregations

CyNetwork (org.cytoscape.model.CyNetwork)517 CyNode (org.cytoscape.model.CyNode)183 CyNetworkView (org.cytoscape.view.model.CyNetworkView)129 CyEdge (org.cytoscape.model.CyEdge)108 Test (org.junit.Test)107 ArrayList (java.util.ArrayList)87 CyTable (org.cytoscape.model.CyTable)75 CyApplicationManager (org.cytoscape.application.CyApplicationManager)70 CyIdentifiable (org.cytoscape.model.CyIdentifiable)57 CyRow (org.cytoscape.model.CyRow)48 HashSet (java.util.HashSet)45 CyNetworkManager (org.cytoscape.model.CyNetworkManager)40 HashMap (java.util.HashMap)35 CyRootNetwork (org.cytoscape.model.subnetwork.CyRootNetwork)35 CySubNetwork (org.cytoscape.model.subnetwork.CySubNetwork)32 CyNetworkViewManager (org.cytoscape.view.model.CyNetworkViewManager)31 VisualStyle (org.cytoscape.view.vizmap.VisualStyle)30 AbstractNetworkReaderTest (org.cytoscape.io.internal.read.AbstractNetworkReaderTest)27 TaskIterator (org.cytoscape.work.TaskIterator)27 List (java.util.List)26