Skip to content

Commit c76a8fe

Browse files
author
Michael P Schroeder
committed
Mutex tool and command
1 parent 57df380 commit c76a8fe

31 files changed

+196
-72
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* #%L
3+
* org.gitools.ui.app
4+
* %%
5+
* Copyright (C) 2013 - 2014 Universitat Pompeu Fabra - Biomedical Genomics group
6+
* %%
7+
* This program is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU General Public License as
9+
* published by the Free Software Foundation, either version 3 of the
10+
* License, or (at your option) any later version.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU General Public
18+
* License along with this program. If not, see
19+
* <http://www.gnu.org/licenses/gpl-3.0.html>.
20+
* #L%
21+
*/
22+
package org.gitools.plugins.mutex.control;
23+
24+
import org.gitools.api.analysis.IProgressMonitor;
25+
import org.gitools.api.matrix.MatrixDimensionKey;
26+
import org.gitools.plugins.mutex.sort.MutualExclusiveMatrixViewSorter;
27+
import org.gitools.ui.core.commands.HeaderCommand;
28+
import org.gitools.ui.platform.settings.Settings;
29+
30+
import java.util.HashSet;
31+
import java.util.List;
32+
33+
34+
public class SortMutexCommand extends HeaderCommand {
35+
36+
37+
private final List<String> items;
38+
39+
public SortMutexCommand(String heatmap, MatrixDimensionKey dimension, String sort, List<String> items, String pattern) {
40+
super(heatmap, dimension, sort, pattern);
41+
42+
this.items = items;
43+
}
44+
45+
46+
@Override
47+
public void execute(IProgressMonitor monitor) throws CommandException {
48+
super.execute(monitor);
49+
dimension.equals(MatrixDimensionKey.COLUMNS);
50+
MutualExclusiveMatrixViewSorter.sortByMutualExclusion(
51+
heatmap,
52+
pattern,
53+
new HashSet<>(items),
54+
false,
55+
dimension.equals(MatrixDimensionKey.COLUMNS),
56+
monitor,
57+
Settings.get().isShowMutualExclusionProgress()
58+
);
59+
}
60+
61+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* #%L
3+
* org.gitools.mutex
4+
* %%
5+
* Copyright (C) 2013 - 2014 Universitat Pompeu Fabra - Biomedical Genomics group
6+
* %%
7+
* This program is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU General Public License as
9+
* published by the Free Software Foundation, either version 3 of the
10+
* License, or (at your option) any later version.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU General Public
18+
* License along with this program. If not, see
19+
* <http://www.gnu.org/licenses/gpl-3.0.html>.
20+
* #L%
21+
*/
22+
package org.gitools.plugins.mutex.control;
23+
24+
import org.gitools.ui.core.commands.Command;
25+
import org.gitools.ui.core.commands.tools.HeaderTool;
26+
import org.kohsuke.args4j.Option;
27+
28+
import java.util.List;
29+
30+
31+
public class SortMutexTool extends HeaderTool {
32+
33+
public SortMutexTool() {
34+
super();
35+
}
36+
37+
@Option(name = "-s", aliases = "--sort", metaVar = "<sort>", required = true,
38+
usage = "Sort according to header. Specify either asc[ending] or desc[ending].")
39+
protected String sort;
40+
41+
@Option(name = "-i", aliases = "--identifier", metaVar = "<identifier>", required = false,
42+
usage = "Specify this option for each identifier which you want to include in the mutex sorting")
43+
private List<String> ids;
44+
45+
@Override
46+
protected Command newJob() {
47+
return new SortMutexCommand(heatmap, dimensionKey, sort, ids, pattern);
48+
}
49+
50+
@Override
51+
public String getName() {
52+
return "sort-mutex";
53+
}
54+
}

org.gitools.ui.app/src/main/java/org/gitools/ui/app/actions/data/analysis/SortByHierarchicalClusteringCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import org.gitools.heatmap.HeatmapDimension;
2828
import org.gitools.heatmap.header.HierarchicalCluster;
2929
import org.gitools.matrix.sort.SortByLabelComparator;
30-
import org.gitools.ui.app.commands.AbstractCommand;
3130
import org.gitools.ui.core.Application;
31+
import org.gitools.ui.core.commands.AbstractCommand;
3232

3333
import java.util.HashMap;
3434
import java.util.Map;

org.gitools.ui.app/src/main/java/org/gitools/ui/app/actions/data/analysis/ViewGroupComparisonResultDataAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void run(IProgressMonitor monitor) throws Exception {
126126
}
127127
}
128128
if (!hasHeader) {
129-
new AddHeaderColoredLabelsCommand(heatmapEditor.getName(), "COLUMNS", "${" + GROUP_GC_ANALYSIS_ANNOTATION + "}",
129+
new AddHeaderColoredLabelsCommand(heatmapEditor.getName(), MatrixDimensionKey.COLUMNS, "${" + GROUP_GC_ANALYSIS_ANNOTATION + "}",
130130
null, null, true, true, "").execute(monitor);
131131
}
132132

org.gitools.ui.app/src/main/java/org/gitools/ui/app/actions/file/OpenIntegrativeGenomicViewerAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
import org.apache.commons.lang.StringUtils;
2626
import org.gitools.api.analysis.IProgressMonitor;
2727
import org.gitools.heatmap.Heatmap;
28-
import org.gitools.ui.app.commands.AbstractCommand;
2928
import org.gitools.ui.core.Application;
3029
import org.gitools.ui.core.actions.HeatmapAction;
30+
import org.gitools.ui.core.commands.AbstractCommand;
3131
import org.gitools.ui.platform.icons.IconNames;
3232
import org.gitools.ui.platform.progress.JobRunnable;
3333
import org.gitools.ui.platform.progress.JobThread;

org.gitools.ui.app/src/main/java/org/gitools/ui/app/batch/CommandExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
*/
2222
package org.gitools.ui.app.batch;
2323

24-
import org.gitools.ui.app.batch.tools.ITool;
24+
import org.gitools.ui.core.commands.tools.ITool;
2525

2626
import java.io.PrintWriter;
2727
import java.util.ArrayList;

org.gitools.ui.app/src/main/java/org/gitools/ui/app/batch/ToolFactory.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
*/
2222
package org.gitools.ui.app.batch;
2323

24+
import org.gitools.plugins.mutex.control.SortMutexTool;
2425
import org.gitools.ui.app.batch.tools.*;
26+
import org.gitools.ui.core.commands.tools.ITool;
2527

2628
import java.util.HashMap;
2729
import java.util.Map;
@@ -36,6 +38,7 @@ public class ToolFactory {
3638
addTool(new AddHeaderColoredLabelsTool());
3739
addTool(new SortByAnnotationTool());
3840
addTool(new CloseAndSaveHeatmapTool());
41+
addTool(new SortMutexTool());
3942
addTool(new HelpTool(TOOLS.keySet())); //Last!
4043
}
4144

org.gitools.ui.app/src/main/java/org/gitools/ui/app/batch/tools/AddHeaderColoredLabelsTool.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,14 @@
2222
package org.gitools.ui.app.batch.tools;
2323

2424
import org.gitools.ui.app.commands.AddHeaderColoredLabelsCommand;
25-
import org.gitools.ui.app.commands.Command;
25+
import org.gitools.ui.core.commands.Command;
26+
import org.gitools.ui.core.commands.tools.HeaderTool;
2627
import org.kohsuke.args4j.Option;
2728

2829
import java.util.List;
2930

3031
public class AddHeaderColoredLabelsTool extends HeaderTool {
3132

32-
@Option(name = "-p", aliases = "--pattern", metaVar = "<pattern>", required = true,
33-
usage = "The pattern of annotations as e.g. ${annotation-id}")
34-
private String pattern;
35-
3633
@Option(name = "-c", aliases = "--color", metaVar = "<color>", required = false,
3734
usage = "A Hex color corresponding to the string for id: #FF0000")
3835
private List<String> colors;
@@ -66,7 +63,7 @@ public String getName() {
6663

6764
@Override
6865
protected Command newJob() {
69-
return new AddHeaderColoredLabelsCommand(heatmap, side.name(), pattern, colors, ids, !noAutoGenerate, textVisible, sort);
66+
return new AddHeaderColoredLabelsCommand(heatmap, dimensionKey, pattern, colors, ids, !noAutoGenerate, textVisible, sort);
7067
}
7168

7269
}

org.gitools.ui.app/src/main/java/org/gitools/ui/app/batch/tools/AddHeaderTextLabelsTool.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
package org.gitools.ui.app.batch.tools;
2323

2424
import org.gitools.ui.app.commands.AddHeaderTextLabelsCommand;
25-
import org.gitools.ui.app.commands.Command;
25+
import org.gitools.ui.core.commands.Command;
26+
import org.gitools.ui.core.commands.tools.HeaderTool;
2627
import org.kohsuke.args4j.Option;
2728

2829
public class AddHeaderTextLabelsTool extends HeaderTool {
@@ -31,10 +32,6 @@ public class AddHeaderTextLabelsTool extends HeaderTool {
3132
usage = "Sort according to header. Specify either asc[ending] or desc[ending].")
3233
protected String sort;
3334

34-
@Option(name = "-p", aliases = "--pattern", metaVar = "<pattern>", required = true,
35-
usage = "The pattern of annotations as e.g. ${annotation-id}")
36-
private String pattern;
37-
3835
public AddHeaderTextLabelsTool() {
3936
super();
4037
}
@@ -48,6 +45,6 @@ public String getName() {
4845

4946
@Override
5047
protected Command newJob() {
51-
return new AddHeaderTextLabelsCommand(heatmap, side.name(), pattern, sort);
48+
return new AddHeaderTextLabelsCommand(heatmap, dimensionKey, pattern, sort);
5249
}
5350
}

org.gitools.ui.app/src/main/java/org/gitools/ui/app/batch/tools/CloseAndSaveHeatmapTool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
package org.gitools.ui.app.batch.tools;
2323

2424
import org.gitools.ui.app.commands.CloseAndSaveCommand;
25-
import org.gitools.ui.app.commands.Command;
25+
import org.gitools.ui.core.commands.Command;
26+
import org.gitools.ui.core.commands.tools.HeatmapTool;
2627
import org.kohsuke.args4j.Option;
2728

2829
import java.io.File;

0 commit comments

Comments
 (0)