Skip to content

Commit 402000b

Browse files
committed
Show size of maximum overlap in PA dialog.
1 parent c991b6e commit 402000b

File tree

5 files changed

+35
-23
lines changed

5 files changed

+35
-23
lines changed

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/task/postanalysis/PAMostSimilarTaskParallel.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
import org.cytoscape.work.ObservableTask;
2020
import org.cytoscape.work.TaskMonitor;
2121

22+
import com.google.common.collect.Sets;
23+
24+
2225
/**
2326
* Post Analysis.
2427
* Computes similarities between the signature gene sets that are being added and the
@@ -66,6 +69,7 @@ public List<SigGeneSetDescriptor> compute(TaskMonitor tm, ExecutorService execut
6669

6770
boolean first = true;
6871
double mostSimilar = Double.NaN;
72+
int largestOverlap = 0;
6973
boolean passes = false;
7074

7175
loop:
@@ -78,6 +82,9 @@ public List<SigGeneSetDescriptor> compute(TaskMonitor tm, ExecutorService execut
7882
GeneSet enrGeneSet = dataSet.getGeneSetsOfInterest().getGeneSetByName(geneSetName);
7983
if(enrGeneSet != null) {
8084

85+
int overlap = Sets.intersection(sigGeneSet.getGenes(), enrGeneSet.getGenes()).size();
86+
largestOverlap = Math.max(largestOverlap, overlap);
87+
8188
FilterMetric metric = metrics.get(dataSetName);
8289
try {
8390
double value = metric.computeValue(enrGeneSet.getGenes(), sigGeneSet.getGenes(), null);
@@ -98,7 +105,7 @@ public List<SigGeneSetDescriptor> compute(TaskMonitor tm, ExecutorService execut
98105
}
99106
}
100107

101-
results.add(new SigGeneSetDescriptor(sigGeneSet, mostSimilar, passes));
108+
results.add(new SigGeneSetDescriptor(sigGeneSet, largestOverlap, mostSimilar, passes));
102109
taskMonitor.inc();
103110
});
104111
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/postanalysis/PADialogPage.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -360,14 +360,11 @@ public void runLoadFromUrlTasks(URL url, CardDialog webLoadDialog) {
360360
private synchronized void updateTable(List<SigGeneSetDescriptor> filteredGenesets, PostAnalysisFilterType type, boolean preserveWidths) {
361361
TableColumnModel columnModel = table.getColumnModel();
362362

363-
int[] widths = {60, 510, 80, 230};
363+
int[] widths = {60, 480, 80, 140, 230};
364364
if(preserveWidths) {
365-
widths = new int[] {
366-
columnModel.getColumn(0).getWidth(),
367-
columnModel.getColumn(1).getWidth(),
368-
columnModel.getColumn(2).getWidth(),
369-
columnModel.getColumn(3).getWidth()
370-
};
365+
for(int i = 0; i < 5; i++) {
366+
widths[i] = columnModel.getColumn(i).getWidth();
367+
}
371368
}
372369

373370
tableModel = new SigGeneSetTableModel(filteredGenesets, type);
@@ -380,14 +377,13 @@ private synchronized void updateTable(List<SigGeneSetDescriptor> filteredGeneset
380377
}
381378
});
382379

383-
columnModel.getColumn(0).setPreferredWidth(widths[0]);
384-
columnModel.getColumn(1).setPreferredWidth(widths[1]);
385-
columnModel.getColumn(2).setPreferredWidth(widths[2]);
386-
columnModel.getColumn(3).setPreferredWidth(widths[3]);
380+
for(int i = 0; i < 5; i++) {
381+
columnModel.getColumn(i).setPreferredWidth(widths[i]);
382+
}
387383

388384
// Auto-sort
389385
TableRowSorter<?> sorter = ((TableRowSorter<?>)table.getRowSorter());
390-
RowSorter.SortKey sortKey = new RowSorter.SortKey(SigGeneSetTableModel.COL_OVERLAP, getSortOrder(type));
386+
RowSorter.SortKey sortKey = new RowSorter.SortKey(SigGeneSetTableModel.COL_SIMILARITY, getSortOrder(type));
391387
sorter.setSortKeys(Arrays.asList(sortKey));
392388
sorter.sort();
393389

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/postanalysis/SigGeneSetCellRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public Component getTableCellRendererComponent(JTable table, Object value, boole
2222
label.setOpaque(true); //MUST do this for background to show up.
2323
SwingUtil.makeSmall(label);
2424

25-
if(col == SigGeneSetTableModel.COL_OVERLAP && value instanceof Number) {
25+
if(col == SigGeneSetTableModel.COL_SIMILARITY && value instanceof Number) {
2626
double val = ((Number)value).doubleValue();
2727
label.setToolTipText(String.valueOf(val));
2828

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/postanalysis/SigGeneSetDescriptor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
public class SigGeneSetDescriptor {
88

99
private final GeneSet geneSet;
10+
private final int largestOverlap;
1011
private final double mostSimilar;
1112
private final boolean passes;
1213

1314
private boolean wanted = true;
1415

15-
public SigGeneSetDescriptor(GeneSet geneSet, double mostSimilar, boolean passes) {
16+
public SigGeneSetDescriptor(GeneSet geneSet, int largestOverlap, double mostSimilar, boolean passes) {
1617
this.geneSet = Objects.requireNonNull(geneSet);
18+
this.largestOverlap = largestOverlap;
1719
this.mostSimilar = mostSimilar;
1820
this.passes = passes;
1921
}
@@ -30,6 +32,10 @@ public String getName() {
3032
return geneSet.getName();
3133
}
3234

35+
public int getLargestOverlap() {
36+
return largestOverlap;
37+
}
38+
3339
public int getGeneCount() {
3440
return geneSet.getGenes().size();
3541
}

EnrichmentMapPlugin/src/main/java/org/baderlab/csplugins/enrichmentmap/view/postanalysis/SigGeneSetTableModel.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
@SuppressWarnings("serial")
1212
public class SigGeneSetTableModel extends AbstractTableModel {
1313

14-
public static final int COL_WANTED = 0, COL_NAME = 1, COL_GENES = 2, COL_OVERLAP = 3;
14+
public static final int COL_WANTED = 0, COL_NAME = 1, COL_GENES = 2, COL_OVERLAP = 3, COL_SIMILARITY = 4;
1515

1616
private final List<SigGeneSetDescriptor> geneSets;
1717
private final PostAnalysisFilterType filterType;
@@ -43,7 +43,7 @@ public int getRowCount() {
4343

4444
@Override
4545
public int getColumnCount() {
46-
return 4;
46+
return 5;
4747
}
4848

4949
public PostAnalysisFilterType getFilterType() {
@@ -63,10 +63,11 @@ public int getSelectedCount() {
6363
public Object getValueAt(int row, int col) {
6464
SigGeneSetDescriptor geneSet = geneSets.get(row);
6565
switch(col) {
66-
case COL_WANTED: return geneSet.isWanted();
67-
case COL_NAME: return geneSet.getName();
68-
case COL_GENES: return geneSet.getGeneCount();
69-
case COL_OVERLAP: return geneSet.getMostSimilar();
66+
case COL_WANTED: return geneSet.isWanted();
67+
case COL_NAME: return geneSet.getName();
68+
case COL_GENES: return geneSet.getGeneCount();
69+
case COL_OVERLAP: return geneSet.getLargestOverlap();
70+
case COL_SIMILARITY: return geneSet.getMostSimilar();
7071
}
7172
return null;
7273
}
@@ -77,7 +78,8 @@ public String getColumnName(int col) {
7778
case COL_WANTED: return "Import";
7879
case COL_NAME: return "Name";
7980
case COL_GENES: return "Genes";
80-
case COL_OVERLAP:
81+
case COL_OVERLAP: return "Largest Overlap";
82+
case COL_SIMILARITY:
8183
switch(filterType) {
8284
case HYPERGEOM: return "Hypergeometric";
8385
case MANN_WHIT_GREATER: return "Mann-Whitney (Greater)";
@@ -98,7 +100,8 @@ public Class<?> getColumnClass(int col) {
98100
case COL_WANTED: return Boolean.class;
99101
case COL_NAME: return String.class;
100102
case COL_GENES: return Integer.class;
101-
case COL_OVERLAP: return Double.class;
103+
case COL_OVERLAP: return Integer.class;
104+
case COL_SIMILARITY: return Double.class;
102105
}
103106
return null;
104107
}

0 commit comments

Comments
 (0)