Skip to content

Commit 154f0c8

Browse files
committed
Some bugfixes related to LD triangle plot and some performance improvements
1 parent 5569351 commit 154f0c8

File tree

16 files changed

+306
-131
lines changed

16 files changed

+306
-131
lines changed

gwasviewer-sample/gwasviewer-sample.iml

+27-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,35 @@
2929
<orderEntry type="library" name="Maven: org.ow2.asm:asm-util:5.0.3" level="project" />
3030
<orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:5.0.3" level="project" />
3131
<orderEntry type="library" name="Maven: org.ow2.asm:asm-commons:5.0.3" level="project" />
32-
<orderEntry type="library" name="Maven: com.googlecode.gwt-charts:gwt-charts:0.9.10" level="project" />
33-
<orderEntry type="module" module-name="gwasgeneviewer" />
34-
<orderEntry type="module" module-name="ldviewer" />
32+
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.14.v20151106" level="project" />
33+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.2.14.v20151106" level="project" />
34+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.2.14.v20151106" level="project" />
35+
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-common:9.2.14.v20151106" level="project" />
36+
<orderEntry type="library" name="Maven: org.eclipse.jetty.websocket:websocket-api:9.2.14.v20151106" level="project" />
37+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-webapp:9.2.14.v20151106" level="project" />
38+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-xml:9.2.14.v20151106" level="project" />
39+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.14.v20151106" level="project" />
40+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.2.14.v20151106" level="project" />
41+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.14.v20151106" level="project" />
42+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.14.v20151106" level="project" />
43+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.2.14.v20151106" level="project" />
44+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-annotations:9.2.14.v20151106" level="project" />
45+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-plus:9.2.14.v20151106" level="project" />
46+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jndi:9.2.14.v20151106" level="project" />
47+
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
48+
<orderEntry type="library" name="Maven: org.eclipse.jetty:apache-jsp:9.2.14.v20151106" level="project" />
49+
<orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.2.14.v20151106" level="project" />
50+
<orderEntry type="library" name="Maven: org.eclipse.jetty.toolchain:jetty-schemas:3.1.M0" level="project" />
51+
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
52+
<orderEntry type="library" name="Maven: org.mortbay.jasper:apache-jsp:8.0.9.M3" level="project" />
53+
<orderEntry type="library" name="Maven: org.mortbay.jasper:apache-el:8.0.9.M3" level="project" />
54+
<orderEntry type="module" module-name="gwasviewer" />
3555
<orderEntry type="module" module-name="geneviewer" />
56+
<orderEntry type="module" module-name="processingjs-gwt" />
3657
<orderEntry type="module" module-name="dygraphs-gwt" />
58+
<orderEntry type="library" name="Maven: com.googlecode.gwt-charts:gwt-charts:0.9.10" level="project" />
59+
<orderEntry type="module" module-name="ldviewer" />
60+
<orderEntry type="module" module-name="processingjs-gwt" />
3761
</component>
3862
<component name="org.twodividedbyzero.idea.findbugs">
3963
<option name="_basePreferences">

gwasviewer-sample/src/main/java/sample/client/SampleEntryPoint.java

+28-27
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.github.timeu.gwtlibs.gwasviewer.client.DisplayFeature;
2424
import com.github.timeu.gwtlibs.gwasviewer.client.GWASViewer;
2525
import com.github.timeu.gwtlibs.gwasviewer.client.Track;
26-
import com.github.timeu.gwtlibs.gwasviewer.client.events.ClickPointEvent;
26+
import com.github.timeu.gwtlibs.gwasviewer.client.events.PointClickEvent;
2727
import com.github.timeu.gwtlibs.gwasviewer.client.events.DeleteTrackEvent;
2828
import com.github.timeu.gwtlibs.gwasviewer.client.events.FetchGeneInfoCallback;
2929
import com.github.timeu.gwtlibs.gwasviewer.client.events.FetchGenesCallback;
@@ -112,8 +112,8 @@ public interface GWASData {
112112
GWASViewer gwasviewer;
113113

114114

115-
private String[] colors = {"blue", "green", "red", "cyan", "purple"};
116-
private String[] gene_mark_colors = {"red", "red", "blue", "red", "green"};
115+
private String[] colors = {"green","blue", "red", "cyan", "purple"};
116+
private String[] gene_mark_colors = {"red","red", "blue", "red", "green"};
117117
private boolean showFeatures = false;
118118
private SNPPopup snpPopup = new SNPPopup();
119119
GWASData data;
@@ -194,7 +194,7 @@ public void onClick(ClickEvent clickEvent) {
194194
@Override
195195
public void onClick(ClickEvent clickEvent) {
196196
LDData ldData = getLDData();
197-
gwasviewer.loadLDPlot(ldData.getPositions(), ldData.getR2(), ldData.getStart(), ldData.getEnd());
197+
gwasviewer.loadLDPlot(ldData.getSnps(), ldData.getR2(), ldData.getStart(), ldData.getEnd());
198198
logEvent("LDTriangle option clicked");
199199
}
200200
});
@@ -229,7 +229,7 @@ public void onClick(ClickEvent clickEvent) {
229229
selections.add(1220);
230230
selections.add(2240);
231231
gwasviewer.setSelections(selections,false);
232-
setSelectionBtn.setText("Clear SNP selections");
232+
setSelectionBtn.setText("Clearfromat SNP selections");
233233
hasSNPSelections = true;
234234
}
235235

@@ -257,55 +257,56 @@ private void loadChr(int chr) {
257257

258258

259259
private void sinkEvents() {
260-
gwasviewer.addHandler(new ClickGeneEvent.Handler() {
260+
gwasviewer.addClickGeneHandler(new ClickGeneEvent.Handler() {
261261
@Override
262262
public void onClickGene(ClickGeneEvent event) {
263263
logEvent("ClickGeneEvent called: Gene: " + getMessageFromGene(event.getGene()));
264264
}
265-
}, ClickGeneEvent.getType());
265+
});
266266

267-
gwasviewer.addHandler(new UnhighlightGeneEvent.Handler() {
267+
gwasviewer.addUnhighlightGeneHandler(new UnhighlightGeneEvent.Handler() {
268268

269269
@Override
270270
public void onUnhighlightGene(UnhighlightGeneEvent event) {
271271
logEvent("UnhighlightGeneEvent called");
272272
}
273-
}, UnhighlightGeneEvent.getType());
274-
gwasviewer.addHandler(new HighlightGeneEvent.Handler() {
273+
});
274+
gwasviewer.addHighlightGeneHandler(new HighlightGeneEvent.Handler() {
275275
@Override
276276
public void onHightlightGene(HighlightGeneEvent event) {
277277
logEvent("HighlightGeneEvent called: Gene: " + getMessageFromGene(event.getGene()));
278278
}
279-
}, HighlightGeneEvent.getType());
279+
});
280280

281-
gwasviewer.addHandler(new ZoomChangeEvent.Handler() {
281+
gwasviewer.addZoomChangeHandler(new ZoomChangeEvent.Handler() {
282282
@Override
283283
public void onZoomResize(ZoomChangeEvent event) {
284284
//zoomLabel.setHTML("<b>" + event.start + "</b> - <b>" + event.stop + "</b>");
285285
logEvent("ZoomResizeEvent called: start: " + event.start + ", end:" + event.stop);
286286
}
287-
},ZoomChangeEvent.getType());
288-
gwasviewer.addHandler(new HighlightPointEvent.Handler() {
287+
});
288+
gwasviewer.addHighlightPointHandler(new HighlightPointEvent.Handler() {
289289

290290
@Override
291291
public void onHighlight(HighlightPointEvent event) {
292292
//logEvent("HighlightPointEvent called: Points: " + getMessageFromPoints(event.points));
293293
}
294-
}, HighlightPointEvent.getType());
294+
});
295295

296-
gwasviewer.addHandler(new ClickPointEvent.Handler() {
296+
gwasviewer.addPointClickHandler(new PointClickEvent.Handler() {
297297
@Override
298-
public void onClick(ClickPointEvent event) {
299-
logEvent("ClickPointEvent called: x: " + event.x + ", Point: " + getMessageFromPoints(event.points));
300-
snpPopup.setDataPoint(4, (int) event.x);
298+
public void onClick(PointClickEvent event) {
299+
logEvent("ClickPointEvent called:Point: " + getMessageFromPoint(event.point));
300+
int x = (int)event.point.getXval();
301+
snpPopup.setDataPoint(4, x);
301302
snpPopup.setPopupPosition(event.event.getClientX(), event.event.getClientY() - 47);
302-
if (event.x == 276143) {
303+
if (x == 276143) {
303304
snpPopup.show();
304305
}
305306
}
306-
},ClickPointEvent.getType());
307+
});
307308

308-
gwasviewer.addHandler(new SelectTrackEvent.Handler() {
309+
gwasviewer.addSelectTrackHandler(new SelectTrackEvent.Handler() {
309310
@Override
310311
public void onSelectTrack(SelectTrackEvent event) {
311312
logEvent("SelectTrackEvent called: id: " + event.getId()+", isStacked: " + event.isStacked());
@@ -340,22 +341,22 @@ else if (event.getId().equalsIgnoreCase("clr")) {
340341
gwasviewer.setTrackData(event.getId(), event.isStacked(),table);
341342
}
342343
}
343-
},SelectTrackEvent.getType());
344+
});
344345

345-
gwasviewer.addHandler(new UploadTrackEvent.Handler() {
346+
gwasviewer.addUploadTrackHandler(new UploadTrackEvent.Handler() {
346347
@Override
347348
public void onUploadTack(UploadTrackEvent event) {
348349
initTracks();
349350
}
350-
},UploadTrackEvent.getType());
351+
});
351352

352-
gwasviewer.addHandler(new DeleteTrackEvent.Handler() {
353+
gwasviewer.addDeleteTrackHandler(new DeleteTrackEvent.Handler() {
353354
@Override
354355
public void onDeleteTrack(DeleteTrackEvent event) {
355356
localStore.removeItem(statsprefix+event.getId());
356357
initTracks();
357358
}
358-
}, DeleteTrackEvent.getType());
359+
});
359360
}
360361

361362
//FIXME until https://github.com/google/gwt-charts/issues/60 is fixed

gwasviewer-sample/src/main/module.gwt.xml

+3
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@
44
<source path="client"/>
55

66
<entry-point class="sample.client.SampleEntryPoint"/>
7+
8+
<set-configuration-property name="CssResource.gssDefaultInUiBinder" value="true"/>
9+
<set-configuration-property name="CssResource.enableGss" value="true"/>
710
</module>

gwasviewer-sample/src/main/resources/sample/client/data/ld_sample_data.json

+1-1
Large diffs are not rendered by default.

gwasviewer-sample/src/main/resources/sample/public/index.html

+6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
<head>
44
<title>GWASViewer Sample Application</title>
55
<script type="text/javascript" src="gwasviewersample.nocache.js"></script>
6+
<style>
7+
* {
8+
box-sizing:border-box;
9+
}
10+
</style>
611
</head>
12+
713
<body>
814
</body>
915
</html>

gwasviewer/gwasviewer.iml

+27-1
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,44 @@
2020
</content>
2121
<orderEntry type="inheritedJdk" />
2222
<orderEntry type="sourceFolder" forTests="false" />
23-
<orderEntry type="module" module-name="dygraphs" />
2423
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.gwt:gwt-dev:2.8.0-SNAPSHOT" level="project" />
2524
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
2625
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-util:5.0.3" level="project" />
2726
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-tree:5.0.3" level="project" />
2827
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm-commons:5.0.3" level="project" />
28+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty.websocket:websocket-client:9.2.14.v20151106" level="project" />
29+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-util:9.2.14.v20151106" level="project" />
30+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-io:9.2.14.v20151106" level="project" />
31+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty.websocket:websocket-common:9.2.14.v20151106" level="project" />
32+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty.websocket:websocket-api:9.2.14.v20151106" level="project" />
33+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-webapp:9.2.14.v20151106" level="project" />
34+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-xml:9.2.14.v20151106" level="project" />
35+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-servlet:9.2.14.v20151106" level="project" />
36+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-security:9.2.14.v20151106" level="project" />
37+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-servlets:9.2.14.v20151106" level="project" />
38+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-continuation:9.2.14.v20151106" level="project" />
39+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-http:9.2.14.v20151106" level="project" />
40+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-annotations:9.2.14.v20151106" level="project" />
41+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-plus:9.2.14.v20151106" level="project" />
42+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-jndi:9.2.14.v20151106" level="project" />
43+
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.annotation:javax.annotation-api:1.2" level="project" />
44+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:apache-jsp:9.2.14.v20151106" level="project" />
45+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty:jetty-server:9.2.14.v20151106" level="project" />
46+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jetty.toolchain:jetty-schemas:3.1.M0" level="project" />
47+
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
48+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mortbay.jasper:apache-jsp:8.0.9.M3" level="project" />
49+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.mortbay.jasper:apache-el:8.0.9.M3" level="project" />
2950
<orderEntry type="library" name="Maven: com.google.gwt:gwt-user:2.8.0-SNAPSHOT" level="project" />
3051
<orderEntry type="library" name="Maven: com.google.jsinterop:jsinterop-annotations:1.0.0-SNAPSHOT" level="project" />
3152
<orderEntry type="library" name="Maven: com.google.jsinterop:jsinterop-annotations:sources:1.0.0-SNAPSHOT" level="project" />
3253
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.0.0.GA" level="project" />
3354
<orderEntry type="library" name="Maven: javax.validation:validation-api:sources:1.0.0.GA" level="project" />
55+
<orderEntry type="module" module-name="geneviewer" />
56+
<orderEntry type="module" module-name="processingjs-gwt" />
57+
<orderEntry type="module" module-name="dygraphs-gwt" />
3458
<orderEntry type="library" name="Maven: com.googlecode.gwt-charts:gwt-charts:0.9.10" level="project" />
59+
<orderEntry type="module" module-name="ldviewer" />
60+
<orderEntry type="module" module-name="processingjs-gwt" />
3561
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
3662
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
3763
</component>

gwasviewer/pom.xml

-3
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,14 @@
4848
<dependency>
4949
<groupId>com.github.timeu.gwt-libs.geneviewer</groupId>
5050
<artifactId>geneviewer</artifactId>
51-
<type>gwt-lib</type>
5251
</dependency>
5352
<dependency>
5453
<groupId>com.github.timeu.gwt-libs.dygraphs-gwt</groupId>
5554
<artifactId>dygraphs-gwt</artifactId>
56-
<type>gwt-lib</type>
5755
</dependency>
5856
<dependency>
5957
<groupId>com.github.timeu.gwt-libs.ldviewer</groupId>
6058
<artifactId>ldviewer</artifactId>
61-
<type>gwt-lib</type>
6259
</dependency>
6360
<!-- Test dependencies -->
6461
<dependency>

gwasviewer/src/main/java/com/github/timeu/gwtlibs/gwasviewer/client/DisplayFeature.java

+20
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,26 @@ public DisplayFeature(String name, int start, int end,String color) {
1616
this.start = start;
1717
this.end = end;
1818
this.color = color;
19+
}
20+
21+
@Override
22+
public boolean equals(Object o) {
23+
if (this == o) return true;
24+
if (o == null || getClass() != o.getClass()) return false;
25+
26+
DisplayFeature that = (DisplayFeature) o;
27+
28+
if (start != that.start) return false;
29+
if (end != that.end) return false;
30+
return name != null ? name.equals(that.name) : that.name == null;
31+
32+
}
1933

34+
@Override
35+
public int hashCode() {
36+
int result = name != null ? name.hashCode() : 0;
37+
result = 31 * result + start;
38+
result = 31 * result + end;
39+
return result;
2040
}
2141
}

0 commit comments

Comments
 (0)