Caleydo / caleydo

Caleydo - Visualization for Molecular Biology
http://caleydo.org
BSD 3-Clause "New" or "Revised" License
58 stars 14 forks source link

selecting a categorical clinical variable when adding new (independent) column crashes StratomeX #1288

Closed ngehlenborg closed 11 years ago

ngehlenborg commented 11 years ago

Example: BRCA data set, select "ethnicity".

Seems to be a casting issue.

Exception:

!ENTRY org.caleydo.core.util.exception.ExceptionHandler@3c179ae1 4 0 2013-06-18 11:11:05.928
!MESSAGE Caught Exception: java.lang.String cannot be cast to java.lang.Integer
!STACK 0
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
    at org.caleydo.view.kaplanmeier.GLKaplanMeier.calculateMaxAxisTime(GLKaplanMeier.java:201)
    at org.caleydo.view.kaplanmeier.KaplanMeierRemoteViewCreator.createRemoteView(KaplanMeierRemoteViewCreator.java:65)
    at org.caleydo.core.view.ViewManager.createRemotePlugInView(ViewManager.java:584)
    at org.caleydo.core.view.opengl.layout.util.multiform.MultiFormRenderer$ViewInfo.create(MultiFormRenderer.java:212)
    at org.caleydo.core.view.opengl.layout.util.multiform.MultiFormRenderer$ViewInfo.setActive(MultiFormRenderer.java:192)
    at org.caleydo.core.view.opengl.layout.util.multiform.MultiFormRenderer.ensureValidRenderer(MultiFormRenderer.java:477)
    at org.caleydo.core.view.opengl.layout.util.multiform.MultiFormRenderer.setElementLayout(MultiFormRenderer.java:710)
    at org.caleydo.core.view.opengl.layout.ElementLayout.setRenderer(ElementLayout.java:461)
    at org.caleydo.view.stratomex.brick.layout.HeaderBrickLayoutTemplate.setStaticLayouts(HeaderBrickLayoutTemplate.java:165)
    at org.caleydo.core.view.opengl.layout.LayoutManager.setStaticLayoutConfiguration(LayoutManager.java:100)
    at org.caleydo.view.stratomex.brick.GLBrick.setBrickLayoutTemplate(GLBrick.java:695)
    at org.caleydo.view.stratomex.brick.GLBrick.init(GLBrick.java:313)
    at org.caleydo.view.stratomex.brick.GLBrick.initRemote(GLBrick.java:399)
    at org.caleydo.view.stratomex.column.BrickColumn.display(BrickColumn.java:687)
    at org.caleydo.view.stratomex.GLStratomex.display(GLStratomex.java:617)
    at org.caleydo.view.stratomex.GLStratomex.displayLocal(GLStratomex.java:492)
    at org.caleydo.core.view.opengl.canvas.AGLView.display(AGLView.java:364)
    at org.caleydo.core.view.opengl.canvas.internal.swt.SWTGLCanvas.fireDisplay(SWTGLCanvas.java:126)
    at org.caleydo.core.view.opengl.canvas.internal.swt.SWTGLCanvas$2.display(SWTGLCanvas.java:104)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:373)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:358)
    at com.jogamp.opengl.swt.GLCanvas$2.run(GLCanvas.java:137)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:655)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:594)
    at com.jogamp.opengl.swt.GLCanvas$3.run(GLCanvas.java:148)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
    at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4875)
    at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5241)
    at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
    at org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:94)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.caleydo.core.internal.Application.start(Application.java:87)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
sgratzl commented 11 years ago

ethnicity is a string category and can therefore not be used for a kaplan maier plot. But I don't know what else to use for such kind of a dependent column

alexsb commented 11 years ago

Here we should automatically show a histogram.

ngehlenborg commented 11 years ago

A histogram would work, but I think a bar chart would be better. Until we have one, we should not let users select this for Kaplan-Meier plots.

alexsb commented 11 years ago

What's the difference between a histogram and a bar chart in this case?

sgratzl commented 11 years ago

till we have the chart via #1294 I implemented a filter that only the Integer clinical variables will be shown

ngehlenborg commented 11 years ago

A histogram gives you the distribution of a univariate, numerical variable (e.g. good for age or weight), a bar chart shows you the number of times a category is mentioned in a categorical variable with multiple categories.

alexsb commented 11 years ago

semantics ;). It's the same in the end.