Skip to content

Commit e88e61e

Browse files
committed
NESFilter now used to decide which enrichment files to load rather than
used to filter each individual gene set. Refactored enrichment parsers. Fixes #216.
1 parent 7226058 commit e88e61e

File tree

14 files changed

+133
-120
lines changed

14 files changed

+133
-120
lines changed

EnrichmentMapIntegrationTest/src/test/java/org/baderlab/csplugins/enrichmentmap/integration/task/CreateEnrichmentMapTaskTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ public void testEnrichmentMapBuildMapTask() throws Exception {
6565

6666
PropertyManager pm = new PropertyManager();
6767
EMCreationParameters params =
68-
new EMCreationParameters("EM1_", pm.getPvalue(), pm.getQvalue(), NESFilter.ALL, Optional.empty(), SimilarityMetric.JACCARD,
69-
pm.getJaccardCutoff(), pm.getCombinedConstant(), EdgeStrategy.COMPOUND);
68+
new EMCreationParameters("EM1_", pm.getValue(PropertyManager.P_VALUE), pm.getValue(PropertyManager.Q_VALUE),
69+
NESFilter.ALL, Optional.empty(), SimilarityMetric.JACCARD,
70+
LegacySupport.jaccardCutOff_default, LegacySupport.combinedConstant_default, EdgeStrategy.COMPOUND);
7071

7172
DataSetFiles dataset1files = new DataSetFiles();
7273
dataset1files.setGMTFileName(geneSetsFile);

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/model/GSEAResult.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
package org.baderlab.csplugins.enrichmentmap.model;
12
/**
23
** EnrichmentMap Cytoscape Plugin
34
**
@@ -41,9 +42,6 @@
4142
// $LastChangedBy$
4243
// $HeadURL$
4344

44-
package org.baderlab.csplugins.enrichmentmap.model;
45-
46-
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentResultFilterParams.NESFilter;
4745

4846
/**
4947
* Class representing a specialized enrichment result generated from Gene set
@@ -122,10 +120,10 @@ public GSEAResult(String[] tokens) {
122120
//returns false if it doesn't pass one or both the pvalue or qvalue cut-offs
123121
@Override
124122
public boolean geneSetOfInterest(EnrichmentResultFilterParams params) {
125-
if(params.getNESFilter() == NESFilter.POSITIVE && getNES() <= 0)
126-
return false;
127-
if(params.getNESFilter() == NESFilter.NEGATIVE && getNES() >= 0)
128-
return false;
123+
// if(params.getNESFilter() == NESFilter.POSITIVE && getNES() <= 0)
124+
// return false;
125+
// if(params.getNESFilter() == NESFilter.NEGATIVE && getNES() >= 0)
126+
// return false;
129127

130128
return (getPvalue() <= params.getPvalue()) && (this.fdrqvalue <= params.getQvalue());
131129
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/model/GenericResult.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
package org.baderlab.csplugins.enrichmentmap.model;
12
/**
23
** EnrichmentMap Cytoscape Plugin
34
**
@@ -35,16 +36,6 @@
3536
**
3637
**/
3738

38-
// $Id$
39-
// $LastChangedDate$
40-
// $LastChangedRevision$
41-
// $LastChangedBy$
42-
// $HeadURL$
43-
44-
package org.baderlab.csplugins.enrichmentmap.model;
45-
46-
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentResultFilterParams.NESFilter;
47-
4839
/**
4940
* Created by User: risserlin Date: Jan 28, 2009 Time: 3:25:51 PM
5041
* <p>
@@ -133,10 +124,10 @@ public GenericResult(String name, String description, double pvalue, int gssize,
133124
*/
134125
@Override
135126
public boolean geneSetOfInterest(EnrichmentResultFilterParams params) {
136-
if(params.getNESFilter() == NESFilter.POSITIVE && getNES() <= 0)
137-
return false;
138-
if(params.getNESFilter() == NESFilter.NEGATIVE && getNES() >= 0)
139-
return false;
127+
// if(params.getNESFilter() == NESFilter.POSITIVE && getNES() <= 0)
128+
// return false;
129+
// if(params.getNESFilter() == NESFilter.NEGATIVE && getNES() >= 0)
130+
// return false;
140131

141132
double pvalue = params.getPvalue();
142133
double fdrqvalue = params.getQvalue();

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/ClassFileReaderTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public static String[] parseClasses(String classFile) {
3636
return null;
3737

3838
try {
39-
List<String> lines = DatasetLineParser.readLines(classFile, 4);
39+
List<String> lines = LineReader.readLines(classFile, 4);
4040

4141
/*
4242
* GSEA class files will have 3 lines in the following format: 6 2 1

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/DatasetLineParser.java

Lines changed: 0 additions & 72 deletions
This file was deleted.

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/ExpressionFileReaderTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public GeneExpressionMatrix parse(TaskMonitor taskMonitor) throws IOException {
103103
EnrichmentMap map = dataset.getMap();
104104

105105
String expressionFileName = dataset.getExpressionSets().getFilename();
106-
List<String> lines = DatasetLineParser.readLines(expressionFileName);
106+
List<String> lines = LineReader.readLines(expressionFileName);
107107

108108
int currentProgress = 0;
109109
int maxValue = lines.size();
@@ -276,7 +276,7 @@ private String[] setClasses(String classFile) throws IOException {
276276
//check to see if the file was opened successfully
277277

278278
if(!classFile.equalsIgnoreCase(null)) {
279-
List<String> lines = DatasetLineParser.readLines(classFile);
279+
List<String> lines = LineReader.readLines(classFile);
280280

281281
//the class file can be split by a space or a tab
282282
String[] classes = lines.get(2).split("\\s");
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.baderlab.csplugins.enrichmentmap.parsers;
2+
3+
import java.io.BufferedReader;
4+
import java.io.FileReader;
5+
import java.io.IOException;
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
9+
public class LineReader {
10+
11+
// MKTODO Its not very memory efficient to read the entire file into memory. Replace with streams.
12+
13+
public static List<String> readLines(String fileName, int limit) throws IOException {
14+
try(BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
15+
List<String> lines = new ArrayList<>();
16+
int count = 0;
17+
for(String line; (line = reader.readLine()) != null;) {
18+
lines.add(line);
19+
count++;
20+
if(count >= limit) {
21+
break;
22+
}
23+
}
24+
return lines;
25+
}
26+
}
27+
28+
public static List<String> readLines(String fileName) throws IOException {
29+
try(BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
30+
List<String> lines = new ArrayList<>();
31+
for(String line; (line = reader.readLine()) != null;) {
32+
lines.add(line);
33+
}
34+
return lines;
35+
}
36+
}
37+
38+
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/ParseBingoEnrichmentResults.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.baderlab.csplugins.enrichmentmap.parsers;
22

3+
import java.io.IOException;
34
import java.util.List;
45
import java.util.Map;
56

@@ -9,22 +10,27 @@
910
import org.baderlab.csplugins.enrichmentmap.model.GeneSet;
1011
import org.baderlab.csplugins.enrichmentmap.model.GenericResult;
1112
import org.baderlab.csplugins.enrichmentmap.util.NullTaskMonitor;
13+
import org.cytoscape.work.AbstractTask;
1214
import org.cytoscape.work.TaskMonitor;
1315

1416
import com.google.common.collect.ImmutableSet;
1517

16-
public class ParseBingoEnrichmentResults extends DatasetLineParser {
18+
public class ParseBingoEnrichmentResults extends AbstractTask {
1719

20+
private final EMDataSet dataset;
21+
1822
public ParseBingoEnrichmentResults(EMDataSet dataset) {
19-
super(dataset);
23+
this.dataset = dataset;
2024
}
21-
25+
2226
@Override
23-
public void parseLines(List<String> lines, EMDataSet dataset, TaskMonitor taskMonitor) {
27+
public void run(TaskMonitor taskMonitor) throws IOException {
2428
if(taskMonitor == null)
2529
taskMonitor = new NullTaskMonitor();
2630
taskMonitor.setTitle("Parsing Bingo Enrichment Result file");
27-
31+
32+
List<String> lines = LineReader.readLines(dataset.getEnrichments().getFilename1());
33+
2834
//with Bingo results there are no genesets defined. first pass through the file
2935
// needs to parse the genesets
3036

@@ -170,4 +176,6 @@ else if(!gene.isEmpty()) {
170176
}
171177

172178

179+
180+
173181
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/ParseDavidEnrichmentResults.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.baderlab.csplugins.enrichmentmap.parsers;
22

3+
import java.io.IOException;
34
import java.util.List;
45
import java.util.Map;
56

@@ -9,25 +10,30 @@
910
import org.baderlab.csplugins.enrichmentmap.model.GeneSet;
1011
import org.baderlab.csplugins.enrichmentmap.model.GenericResult;
1112
import org.baderlab.csplugins.enrichmentmap.util.NullTaskMonitor;
13+
import org.cytoscape.work.AbstractTask;
1214
import org.cytoscape.work.TaskMonitor;
1315

1416
import com.google.common.collect.ImmutableSet;
1517

16-
public class ParseDavidEnrichmentResults extends DatasetLineParser {
18+
public class ParseDavidEnrichmentResults extends AbstractTask {
1719

20+
private final EMDataSet dataset;
21+
1822
public ParseDavidEnrichmentResults(EMDataSet dataset) {
19-
super(dataset);
23+
this.dataset = dataset;
2024
}
2125

2226
/**
2327
* Parse david enrichment results file
2428
*/
2529
@Override
26-
public void parseLines(List<String> lines, EMDataSet dataset, TaskMonitor taskMonitor) {
30+
public void run(TaskMonitor taskMonitor) throws IOException {
2731
if(taskMonitor == null)
2832
taskMonitor = new NullTaskMonitor();
2933
taskMonitor.setTitle("Parsing David Enrichment Result file");
3034

35+
List<String> lines = LineReader.readLines(dataset.getEnrichments().getFilename1());
36+
3137
//with David results there are no genesets defined. first pass through the file
3238
// needs to parse the genesets
3339

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/parsers/ParseGREATEnrichmentResults.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,38 @@
11
package org.baderlab.csplugins.enrichmentmap.parsers;
22

3+
import java.io.IOException;
34
import java.util.List;
45
import java.util.Map;
56

6-
import org.baderlab.csplugins.enrichmentmap.model.EMDataSet;
77
import org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters;
88
import org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters.GreatFilter;
9+
import org.baderlab.csplugins.enrichmentmap.model.EMDataSet;
910
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap;
1011
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentResult;
1112
import org.baderlab.csplugins.enrichmentmap.model.GeneSet;
1213
import org.baderlab.csplugins.enrichmentmap.model.GenericResult;
1314
import org.baderlab.csplugins.enrichmentmap.util.NullTaskMonitor;
15+
import org.cytoscape.work.AbstractTask;
1416
import org.cytoscape.work.TaskMonitor;
1517

1618
import com.google.common.collect.ImmutableSet;
1719

18-
public class ParseGREATEnrichmentResults extends DatasetLineParser {
20+
public class ParseGREATEnrichmentResults extends AbstractTask {
1921

22+
private final EMDataSet dataset;
23+
2024
public ParseGREATEnrichmentResults(EMDataSet dataset) {
21-
super(dataset);
25+
this.dataset = dataset;
2226
}
2327

2428
@Override
25-
public void parseLines(List<String> lines, EMDataSet dataset, TaskMonitor taskMonitor) {
29+
public void run(TaskMonitor taskMonitor) throws IOException {
2630
if(taskMonitor == null)
2731
taskMonitor = new NullTaskMonitor();
2832
taskMonitor.setTitle("Parsing Enrichment Result file");
2933

34+
List<String> lines = LineReader.readLines(dataset.getEnrichments().getFilename1());
35+
3036
boolean hasBackground = false;
3137

3238
EMCreationParameters params = dataset.getMap().getParams();

0 commit comments

Comments
 (0)