Skip to content

Commit 58da1e2

Browse files
author
Michael P Schroeder
committed
MutexAnalysisEditor
1 parent d78ac0e commit 58da1e2

File tree

29 files changed

+463
-39
lines changed

29 files changed

+463
-39
lines changed

org.gitools.api/src/main/java/org/gitools/api/analysis/IAnalysis.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
*/
2222
package org.gitools.api.analysis;
2323

24+
import org.gitools.api.resource.IResource;
25+
2426
import java.util.Date;
2527

26-
public interface IAnalysis {
28+
public interface IAnalysis extends IResource {
2729
Date getStartTime();
2830

2931
long getElapsedTime();

org.gitools.api/src/main/java/org/gitools/api/resource/IResource.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,11 @@ public interface IResource {
2929

3030
void setLocator(IResourceLocator locator);
3131

32+
void setGitoolsVersion(SemanticVersion v);
33+
34+
SemanticVersion getGitoolsVersion();
35+
36+
String getTitle();
37+
38+
void setTitle(String title);
3239
}

org.gitools.resource/src/main/java/org/gitools/resource/SemanticVersion.java renamed to org.gitools.api/src/main/java/org/gitools/api/resource/SemanticVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* <http://www.gnu.org/licenses/gpl-3.0.html>.
2020
* #L%
2121
*/
22-
package org.gitools.resource;
22+
package org.gitools.api.resource;
2323

2424

2525
import javax.xml.bind.annotation.XmlAccessType;

org.gitools.heatmap/src/main/java/org/gitools/heatmap/plugins/AbstractPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import com.jgoodies.binding.beans.Model;
2626
import org.gitools.api.plugins.IPlugin;
27-
import org.gitools.resource.SemanticVersion;
27+
import org.gitools.api.resource.SemanticVersion;
2828

2929
import javax.xml.bind.annotation.XmlAccessType;
3030
import javax.xml.bind.annotation.XmlAccessorType;

org.gitools.matrix/src/main/java/org/gitools/matrix/geneset/GeneSet.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,15 @@
2424

2525
import org.gitools.api.resource.IResource;
2626
import org.gitools.api.resource.IResourceLocator;
27+
import org.gitools.api.resource.SemanticVersion;
2728

2829
import java.util.LinkedHashSet;
2930

3031
public class GeneSet extends LinkedHashSet<String> implements IResource {
3132

3233
private IResourceLocator locator;
34+
private String title;
35+
private SemanticVersion gitoolsVersion;
3336

3437
public GeneSet() {
3538
super();
@@ -47,4 +50,25 @@ public IResourceLocator getLocator() {
4750
public void setLocator(IResourceLocator locator) {
4851
this.locator = locator;
4952
}
53+
54+
public SemanticVersion getGitoolsVersion() {
55+
if (gitoolsVersion == null) {
56+
return new SemanticVersion(SemanticVersion.OLD_VERSION);
57+
}
58+
return gitoolsVersion;
59+
}
60+
61+
public void setGitoolsVersion(SemanticVersion gitoolsVersion) {
62+
this.gitoolsVersion = gitoolsVersion;
63+
}
64+
65+
public String getTitle() {
66+
return title;
67+
}
68+
69+
public void setTitle(String title) {
70+
String oldValue = this.title;
71+
this.title = title;
72+
//firePropertyChange(PROPERTY_TITLE, oldValue, title);
73+
}
5074
}

org.gitools.matrix/src/main/java/org/gitools/matrix/model/MatrixWrapper.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import org.gitools.api.matrix.*;
2525
import org.gitools.api.resource.IResourceLocator;
26+
import org.gitools.api.resource.SemanticVersion;
2627

2728
public abstract class MatrixWrapper implements IMatrix {
2829

@@ -116,4 +117,24 @@ public IResourceLocator getLocator() {
116117
public void setLocator(IResourceLocator locator) {
117118
wrapMatrix.setLocator(locator);
118119
}
120+
121+
@Override
122+
public void setGitoolsVersion(SemanticVersion v) {
123+
124+
}
125+
126+
@Override
127+
public SemanticVersion getGitoolsVersion() {
128+
return null;
129+
}
130+
131+
@Override
132+
public String getTitle() {
133+
return null;
134+
}
135+
136+
@Override
137+
public void setTitle(String title) {
138+
139+
}
119140
}

org.gitools.plugins.mutex/src/main/java/org/gitools/plugins/mutex/analysis/MutualExclusiveAnalysis.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
import org.gitools.analysis.clustering.annotations.AnnPatClusteringData;
2929
import org.gitools.analysis.clustering.annotations.AnnPatClusteringMethod;
3030
import org.gitools.api.analysis.Clusters;
31+
import org.gitools.api.matrix.IKey;
3132
import org.gitools.api.matrix.IMatrixDimension;
33+
import org.gitools.api.matrix.Key;
3234
import org.gitools.api.matrix.MatrixDimensionKey;
3335
import org.gitools.api.modulemap.IModuleMap;
3436
import org.gitools.api.resource.ResourceReference;
@@ -40,10 +42,12 @@
4042
import org.gitools.heatmap.decorator.impl.PValueDecorator;
4143
import org.gitools.heatmap.decorator.impl.ZScoreDecorator;
4244
import org.gitools.matrix.modulemap.HashModuleMap;
45+
import org.gitools.resource.Property;
4346
import org.gitools.ui.platform.settings.Settings;
4447
import org.gitools.utils.progressmonitor.DefaultProgressMonitor;
4548

4649
import javax.xml.bind.annotation.XmlRootElement;
50+
import javax.xml.bind.annotation.XmlTransient;
4751
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
4852
import java.util.HashMap;
4953
import java.util.Map;
@@ -52,6 +56,9 @@
5256
@XmlRootElement
5357
public class MutualExclusiveAnalysis extends Analysis {
5458

59+
@XmlTransient
60+
public static IKey<MutualExclusiveAnalysis> CACHE_KEY_MUTEX_ANALYSIS = new Key<>();
61+
5562
private String layer;
5663

5764
@XmlJavaTypeAdapter(ResourceReferenceXmlAdapter.class)
@@ -66,12 +73,13 @@ public class MutualExclusiveAnalysis extends Analysis {
6673
@XmlJavaTypeAdapter(ResourceReferenceXmlAdapter.class)
6774
private ResourceReference<IModuleMap> columnsModuleMap;
6875

69-
private IMatrixDimension testDimension;
76+
private MatrixDimensionKey testDimensionKey;
7077

71-
private IMatrixDimension weightDimension;
78+
private MatrixDimensionKey weightDimensionKey;
7279

7380
private int iterations = 10000;
7481

82+
@XmlTransient
7583
private NonEventToNullFunction eventFunction;
7684

7785
private boolean discardEmpty = false;
@@ -80,6 +88,10 @@ public MutualExclusiveAnalysis(Heatmap heatmap) {
8088
setData(heatmap);
8189
}
8290

91+
public MutualExclusiveAnalysis() {
92+
//JAXB requirement
93+
}
94+
8395
public static HashModuleMap createModules(String columnPattern, boolean allItemGroup, HeatmapDimension columns) {
8496

8597
HashModuleMap moduleMap = new HashModuleMap();
@@ -109,13 +121,13 @@ public static HashModuleMap createModules(String columnPattern, boolean allItemG
109121

110122

111123
public IMatrixDimension getTestDimension() {
112-
return testDimension;
124+
return getData().get().getDimension(testDimensionKey);
113125
}
114126

115127
public void setTestDimension(IMatrixDimension testDimension) {
116-
this.testDimension = testDimension;
117-
this.weightDimension = data.get().getDimension(testDimension.getId().equals(MatrixDimensionKey.ROWS) ?
118-
MatrixDimensionKey.COLUMNS : MatrixDimensionKey.ROWS);
128+
this.testDimensionKey = testDimension.getId();
129+
this.weightDimensionKey = testDimensionKey.equals(MatrixDimensionKey.ROWS) ?
130+
MatrixDimensionKey.COLUMNS : MatrixDimensionKey.ROWS;
119131
}
120132

121133
public ResourceReference<IModuleMap> getRowsModuleMap() {
@@ -188,7 +200,7 @@ public void setResults(ResourceReference<Heatmap> results) {
188200
}
189201

190202
public IMatrixDimension getWeightDimension() {
191-
return weightDimension;
203+
return getData().get().getDimension(weightDimensionKey);
192204
}
193205

194206
public int getIterations() {
@@ -200,6 +212,7 @@ public void setIterations(int iterations) {
200212
}
201213

202214
public NonEventToNullFunction getEventFunction() {
215+
this.addProperty(new Property("Events", eventFunction.getDescription()));
203216
return eventFunction;
204217
}
205218

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* #%L
3+
* gitools-core
4+
* %%
5+
* Copyright (C) 2013 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.analysis;
23+
24+
import org.gitools.api.PersistenceException;
25+
import org.gitools.api.analysis.IProgressMonitor;
26+
import org.gitools.api.persistence.FileFormat;
27+
import org.gitools.api.resource.IResourceLocator;
28+
import org.gitools.resource.AbstractXmlFormat;
29+
30+
import javax.enterprise.context.ApplicationScoped;
31+
32+
@ApplicationScoped
33+
public class MutualExclusiveAnalysisFormat extends AbstractXmlFormat<MutualExclusiveAnalysis> {
34+
35+
public static final String EXTENSION = "mutex";
36+
public static final FileFormat FILE_FORMAT = new FileFormat("MutEx & Cooc analysis", EXTENSION, true, false, true);
37+
38+
public MutualExclusiveAnalysisFormat() {
39+
super(EXTENSION, MutualExclusiveAnalysis.class);
40+
}
41+
42+
@Override
43+
protected void writeResource(IResourceLocator resourceLocator, MutualExclusiveAnalysis resource, IProgressMonitor monitor) throws PersistenceException {
44+
45+
//TODO Find a better solution for this error
46+
resource.getData().get();
47+
resource.getResults().get();
48+
49+
super.writeResource(resourceLocator, resource, monitor);
50+
}
51+
52+
53+
54+
}

org.gitools.plugins.mutex/src/main/java/org/gitools/plugins/mutex/control/MutualExclusiveAnalysisCommand.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ public void execute(IProgressMonitor monitor) throws CommandException {
6767

6868
MutualExclusiveProcessor processor = new MutualExclusiveProcessor(analysis);
6969
processor.run(monitor);
70-
71-
results = analysis.getResults().get();
72-
73-
ApplicationContext.getEditorManger().addEditor(results);
70+
ApplicationContext.getEditorManger().addEditor(analysis);
7471
}
7572

7673
public static void prepareSingularAnalysis(MutualExclusiveAnalysis analysis, IMatrixDimension testDimension, ArrayList<String> singleModuleIds, Heatmap hm) {

0 commit comments

Comments
 (0)