Search in sources :

Example 1 with GSEAResult

use of org.baderlab.csplugins.enrichmentmap.model.GSEAResult in project EnrichmentMapApp by BaderLab.

the class ParseGSEAEnrichmentResults method parseLines.

@Override
public void parseLines(List<String> lines, EMDataSet dataset, TaskMonitor taskMonitor) {
    if (taskMonitor == null)
        taskMonitor = new NullTaskMonitor();
    taskMonitor.setTitle("Parsing Bingo Enrichment Result file");
    //skip the first line which just has the field names (start i=1)
    dataset.getMap().getParams().setFDR(true);
    int currentProgress = 0;
    int maxValue = lines.size();
    taskMonitor.setStatusMessage("Parsing Enrichment Results file - " + maxValue + " rows");
    Map<String, EnrichmentResult> results = dataset.getEnrichments().getEnrichments();
    for (int i = 1; i < lines.size(); i++) {
        String line = lines.get(i);
        String[] tokens = line.split("\t");
        int size = 0;
        double ES = 0.0;
        double NES = 0.0;
        double pvalue = 1.0;
        double FDRqvalue = 1.0;
        double FWERqvalue = 1.0;
        int rankAtMax = -1;
        double scoreAtMax = DefaultScoreAtMax;
        //The first column of the file is the name of the geneset
        String Name = tokens[0].toUpperCase().trim();
        //The fourth column is the size of the geneset
        if (!tokens[3].isEmpty()) {
            size = Integer.parseInt(tokens[3]);
        }
        //The fifth column is the Enrichment score (ES)
        if (!tokens[4].isEmpty()) {
            ES = Double.parseDouble(tokens[4]);
        }
        //The sixth column is the Normalize Enrichment Score (NES)
        if (!tokens[5].isEmpty()) {
            NES = Double.parseDouble(tokens[5]);
        }
        //The seventh column is the nominal p-value
        if (!tokens[6].isEmpty()) {
            pvalue = Double.parseDouble(tokens[6]);
        }
        //the eighth column is the FDR q-value
        if (!tokens[7].isEmpty()) {
            FDRqvalue = Double.parseDouble(tokens[7]);
        }
        //the ninth column is the FWER q-value
        if (!tokens[8].isEmpty()) {
            FWERqvalue = Double.parseDouble(tokens[8]);
        }
        //the tenth column is the rankatmax
        if (!tokens[9].isEmpty()) {
            rankAtMax = Integer.parseInt(tokens[9]);
        }
        GSEAResult result = new GSEAResult(Name, size, ES, NES, pvalue, FDRqvalue, FWERqvalue, rankAtMax, scoreAtMax);
        // Calculate Percentage.  This must be a value between 0..100.
        int percentComplete = (int) (((double) currentProgress / maxValue) * 100);
        taskMonitor.setProgress(percentComplete);
        currentProgress++;
        results.put(Name, result);
    }
}
Also used : EnrichmentResult(org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult) GSEAResult(org.baderlab.csplugins.enrichmentmap.model.GSEAResult) NullTaskMonitor(org.baderlab.csplugins.enrichmentmap.util.NullTaskMonitor)

Example 2 with GSEAResult

use of org.baderlab.csplugins.enrichmentmap.model.GSEAResult in project EnrichmentMapApp by BaderLab.

the class LegacySessionLoadTest method test_1_LoadedLegacyData.

@Test
@SessionFile("em_session_2.2.cys")
public void test_1_LoadedLegacyData() throws Exception {
    EnrichmentMap map = getEnrichmentMap();
    assertEquals("EM1_Enrichment Map", map.getName());
    CyNetwork network = networkManager.getNetwork(map.getNetworkID());
    assertNotNull(network);
    assertEquals(1, map.getDataSetCount());
    assertEquals(14067, map.getNumberOfGenes());
    assertEquals(14067, map.getAllGenes().size());
    // Number of edges: 3339 - that's how many geneset similarity objects there should be!!!
    CyTable edgeTable = network.getDefaultEdgeTable();
    assertEquals(3339, edgeTable.getRowCount());
    EMCreationParameters params = map.getParams();
    String prefix = params.getAttributePrefix();
    assertEquals("EM1_", prefix);
    assertEquals(0.5, params.getCombinedConstant(), 0.0);
    assertFalse(params.isEMgmt());
    assertEquals("Geneset_Overlap", params.getEnrichmentEdgeType());
    assertTrue(params.isFDR());
    assertEquals(GreatFilter.HYPER, params.getGreatFilter());
    assertEquals(0.005, params.getPvalue(), 0.0);
    assertEquals(1.0, params.getPvalueMin(), 0.0);
    assertEquals(0.1, params.getQvalue(), 0.0);
    assertEquals(1.0, params.getQvalueMin(), 0.0);
    assertEquals(0.5, params.getSimilarityCutoff(), 0.0);
    assertEquals(SimilarityMetric.OVERLAP, params.getSimilarityMetric());
    //		assertFalse(params.isDistinctExpressionSets());
    String geneset1 = "RESOLUTION OF SISTER CHROMATID COHESION%REACTOME%REACT_150425.2";
    String geneset2 = "CHROMOSOME, CENTROMERIC REGION%GO%GO:0000775";
    Collection<CyRow> rows = edgeTable.getMatchingRows(CyNetwork.NAME, geneset1 + " (Geneset_Overlap) " + geneset2);
    assertEquals(1, rows.size());
    CyRow row = rows.iterator().next();
    assertEquals("Geneset_Overlap", row.get(CyEdge.INTERACTION, String.class));
    assertEquals(0.6097560975609756, EMStyleBuilder.Columns.EDGE_SIMILARITY_COEFF.get(row, prefix), 0.0);
    EMDataSet dataset = map.getDataSet("Dataset 1");
    assertNotNull(dataset);
    assertSame(map, dataset.getMap());
    assertEquals(Method.GSEA, dataset.getMethod());
    assertEquals(12653, dataset.getDataSetGenes().size());
    assertEquals(389, dataset.getGeneSetsOfInterest().getGeneSets().size());
    //		assertEquals(17259, dataset.getSetofgenesets().getGenesets().size()); // MKTODO why? what is this used for
    assertEndsWith(dataset.getSetOfGeneSets().getFilename(), "Human_GO_AllPathways_no_GO_iea_April_15_2013_symbol.gmt");
    for (long suid : dataset.getNodeSuids()) {
        assertNotNull(network.getNode(suid));
    }
    GeneSet geneset = dataset.getGeneSetsOfInterest().getGeneSets().get("NCRNA PROCESSING%GO%GO:0034470");
    assertEquals(88, geneset.getGenes().size());
    assertEquals("NCRNA PROCESSING%GO%GO:0034470", geneset.getName());
    assertEquals("ncRNA processing", geneset.getDescription());
    assertEquals(Optional.of("GO"), geneset.getSource());
    SetOfEnrichmentResults enrichments = dataset.getEnrichments();
    assertEquals(4756, enrichments.getEnrichments().size());
    assertEndsWith(enrichments.getFilename1(), "gsea_report_for_ES12_1473194913081.xls");
    assertEndsWith(enrichments.getFilename2(), "gsea_report_for_NT12_1473194913081.xls");
    assertEquals("ES12", enrichments.getPhenotype1());
    assertEquals("NT12", enrichments.getPhenotype2());
    EnrichmentResult result = enrichments.getEnrichments().get("RIBONUCLEOSIDE TRIPHOSPHATE BIOSYNTHETIC PROCESS%GO%GO:0009201");
    assertTrue(result instanceof GSEAResult);
    GSEAResult gseaResult = (GSEAResult) result;
    assertEquals("RIBONUCLEOSIDE TRIPHOSPHATE BIOSYNTHETIC PROCESS%GO%GO:0009201", gseaResult.getName());
    assertEquals(0.42844063, gseaResult.getES(), 0.0);
    assertEquals(0.45225498, gseaResult.getFdrqvalue(), 0.0);
    assertEquals(1.0, gseaResult.getFwerqvalue(), 0.0);
    assertEquals(23, gseaResult.getGsSize());
    assertEquals(1.1938541, gseaResult.getNES(), 0.0);
    assertEquals(0.2457786, gseaResult.getPvalue(), 0.0);
    assertEquals(4689, gseaResult.getRankAtMax());
    assertEquals(Optional.of("GO"), gseaResult.getSource());
    GeneExpressionMatrix expressions = dataset.getExpressionSets();
    assertEquals(20326, expressions.getExpressionUniverse());
    assertEquals(3.686190609, expressions.getClosesttoZero(), 0.0);
    //		assertEndsWith(expressions.getFilename(), "MCF7_ExprMx_v2_names.gct");
    assertEquals(15380.42388, expressions.getMaxExpression(), 0.0);
    assertEquals(3.686190609, expressions.getMinExpression(), 0.0);
    assertEquals(20, expressions.getNumConditions());
    assertEquals(12653, expressions.getExpressionMatrix().size());
    assertEquals(12653, expressions.getExpressionMatrix_rowNormalized().size());
    GeneExpression expression = expressions.getExpressionMatrix().get(0);
    assertEquals("MOCOS", expression.getName());
    assertEquals("MOCOS (molybdenum cofactor sulfurase)", expression.getDescription());
    assertEquals(18, expression.getExpression().length);
    Ranking ranking = expressions.getRanks().get("GSEARanking");
    assertEquals(12653, ranking.getAllRanks().size());
    assertEquals(12653, ranking.getRanking().size());
    Rank rank = ranking.getRanking().get(0);
    assertEquals("MOCOS", rank.getName());
    assertEquals(1238, rank.getRank().intValue());
    assertEquals(0.54488367, rank.getScore(), 0.0);
    DataSetFiles files = dataset.getDataSetFiles();
    assertEndsWith(files.getClassFile(), "ES_NT.cls");
    assertEndsWith(files.getEnrichmentFileName1(), "gsea_report_for_ES12_1473194913081.xls");
    assertEndsWith(files.getEnrichmentFileName2(), "gsea_report_for_NT12_1473194913081.xls");
    //		assertEndsWith(files.getExpressionFileName(), "MCF7_ExprMx_v2_names.gct");
    assertEndsWith(files.getGMTFileName(), "Human_GO_AllPathways_no_GO_iea_April_15_2013_symbol.gmt");
    assertEndsWith(files.getGseaHtmlReportFile(), "estrogen_treatment_12hr_gsea_enrichment_results.Gsea.1473194913081/index.html");
    assertEndsWith(files.getRankedFile(), "ranked_gene_list_ES12_versus_NT12_1473194913081.xls");
    assertEquals("ES12", files.getPhenotype1());
    assertEquals("NT12", files.getPhenotype2());
}
Also used : EnrichmentResult(org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult) EMCreationParameters(org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters) GSEAResult(org.baderlab.csplugins.enrichmentmap.model.GSEAResult) CyNetwork(org.cytoscape.model.CyNetwork) Rank(org.baderlab.csplugins.enrichmentmap.model.Rank) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) CyRow(org.cytoscape.model.CyRow) GeneExpressionMatrix(org.baderlab.csplugins.enrichmentmap.model.GeneExpressionMatrix) CyTable(org.cytoscape.model.CyTable) Ranking(org.baderlab.csplugins.enrichmentmap.model.Ranking) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) GeneSet(org.baderlab.csplugins.enrichmentmap.model.GeneSet) GeneExpression(org.baderlab.csplugins.enrichmentmap.model.GeneExpression) DataSetFiles(org.baderlab.csplugins.enrichmentmap.model.DataSetFiles) SetOfEnrichmentResults(org.baderlab.csplugins.enrichmentmap.model.SetOfEnrichmentResults) BaseIntegrationTest(org.baderlab.csplugins.enrichmentmap.integration.BaseIntegrationTest) Test(org.junit.Test) SessionFile(org.baderlab.csplugins.enrichmentmap.integration.SessionFile)

Example 3 with GSEAResult

use of org.baderlab.csplugins.enrichmentmap.model.GSEAResult in project EnrichmentMapApp by BaderLab.

the class GSEALeadingEdgeRankingOption method initializeLeadingEdge.

/**
	 * Collates the current selected nodes genes to represent the expression of
	 * the genes that are in all the selected nodes. and sets the expression
	 * sets (both if there are two datasets)
	 */
private void initializeLeadingEdge() {
    Map<String, EnrichmentResult> results = dataset.getEnrichments().getEnrichments();
    GSEAResult result = (GSEAResult) results.get(geneSetName);
    scoreAtMax = result.getScoreAtMax();
    if (scoreAtMax == DetermineEnrichmentResultFileReader.DefaultScoreAtMax) {
        scoreAtMax = result.getNES();
    }
    rankAtMax = result.getRankAtMax();
}
Also used : EnrichmentResult(org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult) GSEAResult(org.baderlab.csplugins.enrichmentmap.model.GSEAResult)

Example 4 with GSEAResult

use of org.baderlab.csplugins.enrichmentmap.model.GSEAResult in project EnrichmentMapApp by BaderLab.

the class CreateEMNetworkTask method createNodes.

private Map<String, CyNode> createNodes(CyNetwork network) {
    Map<String, CyNode> nodes = new HashMap<>();
    Map<String, Set<Integer>> geneSets = map.unionAllGeneSetsOfInterest();
    for (String genesetName : geneSets.keySet()) {
        CyNode node = network.addNode();
        nodes.put(genesetName, node);
        // Set common attributes
        CyRow row = network.getRow(node);
        row.set(CyNetwork.NAME, genesetName);
        Columns.NODE_FORMATTED_NAME.set(row, prefix, null, formatLabel(genesetName));
        // MKTODO why is this column needed?
        Columns.NODE_NAME.set(row, prefix, null, genesetName);
        Columns.NODE_GS_DESCR.set(row, prefix, null, map.findGeneSetDescription(genesetName));
        Columns.NODE_GS_TYPE.set(row, prefix, null, Columns.NODE_GS_TYPE_ENRICHMENT);
        Set<Integer> geneIds = geneSets.get(genesetName);
        List<String> genes = geneIds.stream().map(map::getGeneFromHashKey).collect(Collectors.toList());
        Columns.NODE_GENES.set(row, prefix, null, genes);
        Columns.NODE_GS_SIZE.set(row, prefix, null, genes.size());
        // Set attributes specific to each dataset
        for (EMDataSet ds : map.getDataSetList()) {
            if (ds.getGeneSetsOfInterest().getGeneSets().containsKey(genesetName))
                ds.addNodeSuid(node.getSUID());
            Map<String, EnrichmentResult> enrichmentResults = ds.getEnrichments().getEnrichments();
            EnrichmentResult result = enrichmentResults.get(genesetName);
            // if result is null it will fail both instanceof checks
            if (result instanceof GSEAResult)
                setGSEAResultNodeAttributes(row, ds.getName(), (GSEAResult) result);
            else if (result instanceof GenericResult)
                setGenericResultNodeAttributes(row, ds.getName(), (GenericResult) result);
        }
    }
    return nodes;
}
Also used : EnrichmentResult(org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult) GSEAResult(org.baderlab.csplugins.enrichmentmap.model.GSEAResult) Set(java.util.Set) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet) HashMap(java.util.HashMap) CyRow(org.cytoscape.model.CyRow) GenericResult(org.baderlab.csplugins.enrichmentmap.model.GenericResult) CyNode(org.cytoscape.model.CyNode) EMDataSet(org.baderlab.csplugins.enrichmentmap.model.EMDataSet)

Aggregations

EnrichmentResult (org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult)4 GSEAResult (org.baderlab.csplugins.enrichmentmap.model.GSEAResult)4 EMDataSet (org.baderlab.csplugins.enrichmentmap.model.EMDataSet)2 CyRow (org.cytoscape.model.CyRow)2 HashMap (java.util.HashMap)1 Set (java.util.Set)1 BaseIntegrationTest (org.baderlab.csplugins.enrichmentmap.integration.BaseIntegrationTest)1 SessionFile (org.baderlab.csplugins.enrichmentmap.integration.SessionFile)1 DataSetFiles (org.baderlab.csplugins.enrichmentmap.model.DataSetFiles)1 EMCreationParameters (org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters)1 EnrichmentMap (org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap)1 GeneExpression (org.baderlab.csplugins.enrichmentmap.model.GeneExpression)1 GeneExpressionMatrix (org.baderlab.csplugins.enrichmentmap.model.GeneExpressionMatrix)1 GeneSet (org.baderlab.csplugins.enrichmentmap.model.GeneSet)1 GenericResult (org.baderlab.csplugins.enrichmentmap.model.GenericResult)1 Rank (org.baderlab.csplugins.enrichmentmap.model.Rank)1 Ranking (org.baderlab.csplugins.enrichmentmap.model.Ranking)1 SetOfEnrichmentResults (org.baderlab.csplugins.enrichmentmap.model.SetOfEnrichmentResults)1 NullTaskMonitor (org.baderlab.csplugins.enrichmentmap.util.NullTaskMonitor)1 CyNetwork (org.cytoscape.model.CyNetwork)1