Skip to content

Commit b4a8cec

Browse files
committed
Load from STRING networks. Refs #377
1 parent fac4958 commit b4a8cec

15 files changed

+351
-187
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/commands/TableCommandTask.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.baderlab.csplugins.enrichmentmap.commands.tunables.TableTunables;
88
import org.baderlab.csplugins.enrichmentmap.model.DataSetParameters;
99
import org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters;
10-
import org.baderlab.csplugins.enrichmentmap.model.EMDataSet.Method;
1110
import org.baderlab.csplugins.enrichmentmap.model.TableParameters;
1211
import org.baderlab.csplugins.enrichmentmap.task.CreateEnrichmentMapTaskFactory;
1312
import org.cytoscape.work.AbstractTask;
@@ -36,7 +35,7 @@ public void run(TaskMonitor taskMonitor) {
3635
TableParameters tableParams = tableArgs.getTableParameters();
3736

3837
String dataSetName = filterArgs.networkName == null ? "Data Set 1" : filterArgs.networkName;
39-
DataSetParameters dsParams = new DataSetParameters(dataSetName, Method.Generic, tableParams);
38+
DataSetParameters dsParams = new DataSetParameters(dataSetName, tableParams);
4039
List<DataSetParameters> dataSets = Collections.singletonList(dsParams);
4140

4241
CreateEnrichmentMapTaskFactory taskFactory = taskFactoryFactory.create(creationParams, dataSets);

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/commands/tunables/TableTunables.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public TableParameters getTableParameters() throws IllegalArgumentException {
5858
validateColumn(table, pvalueColumn, false, Double.class, true);
5959
validateColumn(table, descriptionColumn, false, String.class, false);
6060

61-
return new TableParameters(table, nameColumn, genesColumn, pvalueColumn, descriptionColumn);
61+
return new TableParameters(table, nameColumn, genesColumn, pvalueColumn, descriptionColumn, null);
6262
}
6363

6464

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public DataSetParameters(String name, Method method, DataSetFiles files) {
3434
this.genemaniaParameters = null;
3535
}
3636

37-
public DataSetParameters(String name, Method method, TableParameters tableParameters) {
37+
public DataSetParameters(String name, TableParameters tableParameters) {
3838
this.name = Objects.requireNonNull(name);
39-
this.method = Objects.requireNonNull(method);
39+
this.method = Method.Generic;
4040
this.files = new DataSetFiles();
4141
this.tableParameters = Objects.requireNonNull(tableParameters);
4242
this.genemaniaParameters = null;

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import java.util.Objects;
44
import java.util.Optional;
5+
import java.util.function.Predicate;
56

7+
import javax.annotation.Nullable;
8+
9+
import org.cytoscape.model.CyRow;
610
import org.cytoscape.model.CyTable;
711

812
public class TableParameters {
@@ -13,12 +17,16 @@ public class TableParameters {
1317
private final String pvalueColumn;
1418
private final Optional<String> descriptionColumn;
1519

16-
public TableParameters(CyTable table, String nameColumn, String genesColumn, String pvalueColumn, String descriptionColumn) {
20+
private final @Nullable Predicate<CyRow> filter;
21+
22+
23+
public TableParameters(CyTable table, String nameColumn, String genesColumn, String pvalueColumn, String descriptionColumn, Predicate<CyRow> filter) {
1724
this.table = Objects.requireNonNull(table);
1825
this.nameColumn = Objects.requireNonNull(nameColumn);
1926
this.genesColumn = Objects.requireNonNull(genesColumn);
2027
this.pvalueColumn = Objects.requireNonNull(pvalueColumn);
2128
this.descriptionColumn = Optional.ofNullable(descriptionColumn);
29+
this.filter = filter;
2230
}
2331

2432
public CyTable getTable() {
@@ -40,5 +48,9 @@ public String getPvalueColumn() {
4048
public Optional<String> getDescriptionColumn() {
4149
return descriptionColumn;
4250
}
51+
52+
public Predicate<CyRow> getFilter() {
53+
return filter;
54+
}
4355

4456
}

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

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Collection;
44
import java.util.List;
55
import java.util.Map;
6+
import java.util.function.Predicate;
67

78
import org.baderlab.csplugins.enrichmentmap.model.EMDataSet;
89
import org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap;
@@ -41,36 +42,39 @@ public void run(TaskMonitor taskMonitor) {
4142
SetOfEnrichmentResults enrichments = dataset.getEnrichments();
4243
Map<String,GeneSet> genesets = dataset.getSetOfGeneSets().getGeneSets();
4344

45+
Predicate<CyRow> filter = tableParams.getFilter();
46+
4447
for(CyRow row : table.getAllRows()) {
45-
List<String> genes = row.getList(tableParams.getGenesColumn(), String.class);
46-
String name = row.get(tableParams.getNameColumn(), String.class);
47-
Double pvalue = row.get(tableParams.getPvalueColumn(), Double.class);
48-
49-
// Skip row if data is invalid in any way
50-
if(genes == null || genes.isEmpty() || name == null || name.isEmpty() || pvalue == null)
51-
continue;
52-
53-
String description = null;
54-
if(tableParams.getDescriptionColumn().isPresent()) {
55-
description = row.get(tableParams.getDescriptionColumn().get(), String.class);
56-
}
57-
58-
// Build the GeneSet object
59-
ImmutableSet.Builder<Integer> builder = ImmutableSet.builder();
60-
61-
for(String gene : genes) {
62-
Integer hash = map.addGene(gene);
63-
if(hash != null)
64-
builder.add(hash);
48+
if(filter == null || filter.test(row)) {
49+
List<String> genes = row.getList(tableParams.getGenesColumn(), String.class);
50+
String name = row.get(tableParams.getNameColumn(), String.class);
51+
Double pvalue = row.get(tableParams.getPvalueColumn(), Double.class);
52+
53+
// Skip row if data is invalid in any way
54+
if(genes == null || genes.isEmpty() || name == null || name.isEmpty() || pvalue == null)
55+
continue;
56+
57+
String description = null;
58+
if(tableParams.getDescriptionColumn().isPresent()) {
59+
description = row.get(tableParams.getDescriptionColumn().get(), String.class);
60+
}
61+
62+
// Build the GeneSet object
63+
ImmutableSet.Builder<Integer> builder = ImmutableSet.builder();
64+
65+
for(String gene : genes) {
66+
Integer hash = map.addGene(gene);
67+
if(hash != null)
68+
builder.add(hash);
69+
}
70+
71+
GeneSet gs = new GeneSet(name, description, builder.build());
72+
int gsSize = gs.getGenes().size();
73+
genesets.put(name, gs);
74+
75+
GenericResult result = new GenericResult(name, description, pvalue, gsSize);
76+
enrichments.getEnrichments().put(name, result);
6577
}
66-
67-
GeneSet gs = new GeneSet(name, description, builder.build());
68-
int gsSize = gs.getGenes().size();
69-
genesets.put(name, gs);
70-
71-
GenericResult result = new GenericResult(name, description, pvalue, gsSize);
72-
enrichments.getEnrichments().put(name, result);
73-
7478
tm.inc();
7579
}
7680

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/control/ControlPanelMediator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
import org.baderlab.csplugins.enrichmentmap.view.control.io.ViewParams.CutoffParam;
8080
import org.baderlab.csplugins.enrichmentmap.view.creation.CreationDialogShowAction;
8181
import org.baderlab.csplugins.enrichmentmap.view.creation.genemania.GenemaniaDialogShowAction;
82-
import org.baderlab.csplugins.enrichmentmap.view.creation.string.StringDialogShowAction;
82+
import org.baderlab.csplugins.enrichmentmap.view.creation.genemania.StringDialogShowAction;
8383
import org.baderlab.csplugins.enrichmentmap.view.heatmap.HeatMapMediator;
8484
import org.baderlab.csplugins.enrichmentmap.view.legend.CreationParametersPanel;
8585
import org.baderlab.csplugins.enrichmentmap.view.legend.LegendPanelMediator;
Lines changed: 6 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,43 @@
11
package org.baderlab.csplugins.enrichmentmap.view.creation.genemania;
22

3-
import java.awt.GridBagConstraints;
4-
import java.awt.GridBagLayout;
5-
import java.util.Collections;
6-
import java.util.List;
7-
8-
import javax.swing.JOptionPane;
93
import javax.swing.JPanel;
104

115
import org.baderlab.csplugins.enrichmentmap.model.DataSetParameters;
12-
import org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters;
136
import org.baderlab.csplugins.enrichmentmap.model.GenemaniaParameters;
14-
import org.baderlab.csplugins.enrichmentmap.task.CreateEnrichmentMapTaskFactory;
15-
import org.baderlab.csplugins.enrichmentmap.task.InitializeGenesetsOfInterestTask.MissingGenesetStrategy;
16-
import org.baderlab.csplugins.enrichmentmap.view.creation.CutoffPropertiesPanel;
17-
import org.baderlab.csplugins.enrichmentmap.view.creation.NamePanel;
18-
import org.baderlab.csplugins.enrichmentmap.view.util.GBCFactory;
197
import org.baderlab.csplugins.enrichmentmap.view.util.dialog.CardDialogCallback;
20-
import org.baderlab.csplugins.enrichmentmap.view.util.dialog.CardDialogPage;
218
import org.cytoscape.application.CyApplicationManager;
229
import org.cytoscape.model.CyNetwork;
23-
import org.cytoscape.work.TaskIterator;
24-
import org.cytoscape.work.swing.DialogTaskManager;
2510

2611
import com.google.inject.Inject;
2712

28-
public class GenemaniaDialogPage implements CardDialogPage {
13+
public class GenemaniaDialogPage extends NetworkLoadDialogPage {
2914

3015
@Inject private CyApplicationManager applicationManager;
31-
@Inject private CreateEnrichmentMapTaskFactory.Factory taskFactoryFactory;
32-
@Inject private DialogTaskManager dialogTaskManager;
33-
34-
@Inject private CutoffPropertiesPanel cutoffPanel;
3516

36-
private CardDialogCallback callback;
37-
private NamePanel networkNamePanel;
3817
private CyNetwork genemaniaNetwork;
3918

4019

41-
@Override
42-
public String getID() {
43-
return getClass().getSimpleName();
44-
}
45-
46-
@Override
47-
public String getPageComboText() {
48-
return "Create Enrichment Map";
49-
}
50-
51-
5220
private String getOrganismName() {
5321
return genemaniaNetwork.getRow(genemaniaNetwork).get("organism", String.class);
5422
}
5523

5624
@Override
5725
public JPanel createBodyPanel(CardDialogCallback callback) {
58-
this.callback = callback;
59-
cutoffPanel.setGeneMania();
60-
26+
JPanel panel = super.createBodyPanel(callback);
27+
networkNamePanel.setAutomaticName(getOrganismName());
6128
// Assume GenemaniaDialogShowAction did its job of validating the current network.
6229
genemaniaNetwork = applicationManager.getCurrentNetwork();
63-
64-
networkNamePanel = new NamePanel("Network Name");
65-
networkNamePanel.setAutomaticName(getOrganismName());
66-
67-
JPanel panel = new JPanel(new GridBagLayout());
68-
panel.add(networkNamePanel, GBCFactory.grid(0,0).insets(0).weightx(1.0).fill(GridBagConstraints.HORIZONTAL).get());
69-
panel.add(cutoffPanel, GBCFactory.grid(0,1).insets(0).weightx(1.0).fill(GridBagConstraints.HORIZONTAL).get());
7030
return panel;
7131
}
7232

7333
@Override
74-
public void finish() {
75-
EMCreationParameters params = getCreationParameters();
76-
34+
public DataSetParameters getDataSetParameters() {
7735
String dataSetName = getOrganismName();
7836
if(dataSetName == null)
7937
dataSetName = "Genemania";
8038

81-
GenemaniaParameters genemaniaParams = new GenemaniaParameters(genemaniaNetwork);
82-
DataSetParameters dsParams = new DataSetParameters(dataSetName, genemaniaParams);
83-
List<DataSetParameters> dataSets = Collections.singletonList(dsParams);
84-
85-
CreateEnrichmentMapTaskFactory taskFactory = taskFactoryFactory.create(params, dataSets);
86-
TaskIterator tasks = taskFactory.createTaskIterator(MissingGenesetStrategy.IGNORE);
87-
88-
dialogTaskManager.execute(tasks);
89-
90-
callback.setFinishButtonEnabled(true);
91-
callback.close();
92-
}
93-
94-
private EMCreationParameters getCreationParameters() {
95-
EMCreationParameters params = cutoffPanel.getCreationParameters();
96-
params.setNetworkName(networkNamePanel.getNameText());
97-
return params;
98-
}
99-
100-
@Override
101-
public void extraButtonClicked(String actionCommand) {
102-
if(GenemaniaDialogParameters.RESET_BUTTON_ACTION.equals(actionCommand))
103-
reset();
39+
GenemaniaParameters params = new GenemaniaParameters(genemaniaNetwork);
40+
return new DataSetParameters(dataSetName, params);
10441
}
10542

106-
private void reset() {
107-
int result = JOptionPane.showConfirmDialog(callback.getDialogFrame(),
108-
"Clear inputs and restore default values?", "EnrichmentMap: Reset", JOptionPane.OK_CANCEL_OPTION);
109-
if(result == JOptionPane.OK_OPTION) {
110-
cutoffPanel.reset();
111-
callback.setFinishButtonEnabled(false);
112-
}
113-
}
114-
11543
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/creation/genemania/GenemaniaDialogParameters.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
public class GenemaniaDialogParameters implements CardDialogParameters {
1717

18-
static final String RESET_BUTTON_ACTION = "reset";
19-
2018
@Inject private Provider<GenemaniaDialogPage> genemaniaDialogPage;
2119

2220
@Override
@@ -42,7 +40,7 @@ public Dimension getMinimumSize() {
4240
@Override
4341
public AbstractButton[] getExtraButtons() {
4442
JButton resetButton = new JButton("Reset");
45-
resetButton.setActionCommand(RESET_BUTTON_ACTION);
43+
resetButton.setActionCommand("reset");
4644

4745
return new JButton[] { resetButton };
4846
}

0 commit comments

Comments
 (0)