CancelDeath / chibe

Automatically exported from code.google.com/p/chibe
0 stars 0 forks source link

Selecting nodes based on expression range #10

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
We can discuss addition of a new method for selecting nodes on the graph, which 
will be useful while analyzing microarray data. This method will get an 
expression range from the user and then select nodes whose expression value is 
within this range. Instead of selecting, we can highlight these nodes or 
generate a new view consisting of these selected nodes. 
To get the input from user, we can use Slider or Scale classes of SWT. 
Alternatively, a text field based way which requires the user to write the 
minimum and/or maximum values can be followed.  

Original issue reported on code.google.com by mervecak...@gmail.com on 19 Jul 2012 at 2:37

GoogleCodeExporter commented 8 years ago
I am neutral about this issue. If you really believe that it will be useful, 
then yes we can add it. I never needed to select nodes with their expression 
range. I can imagine that this feature may be useful when the graph is very 
large. Maybe instead of (or in addition to) selecting nodes on the current 
view, we can let user create a new pathway with the neighborhood of the 
expression-in-range nodes in the background model. About the flexibility of 
determining the range.. the only use case I can think of is selecting 
differentially expressed genes (if data is a comparison) or selecting values 
over a threshold (if data is intensity, for filtering in expressed genes). So, 
too powerful range selection mechanism may not be very useful. What do you 
think?

Original comment by ozgunba...@gmail.com on 23 Jul 2012 at 2:32

GoogleCodeExporter commented 8 years ago
We have implemented a version in which nodes falling within the specified range 
are highlighted. Two sliders - one for lower bound and one for upper bound - 
are used for input. Users can also directly specify the values in the 
associated text fields. What do you think about this, any suggestions/comments?

Original comment by mervecak...@gmail.com on 30 Jul 2012 at 2:27

GoogleCodeExporter commented 8 years ago

Original comment by ugurdogr...@gmail.com on 19 Sep 2012 at 12:53

GoogleCodeExporter commented 8 years ago
I think instead of highlighting the nodes in the specified range, we should 
highlight the nodes that are outside the range. This way, user can see 
upregulated and downregulated genes highlighted with one step. 

Original comment by ozgunba...@gmail.com on 19 Sep 2012 at 10:09

GoogleCodeExporter commented 8 years ago
I am actually thinking whether we can find a way to offer both. Choosing the 
outer range is a better way to observe up/downregulations but there might be 
cases where inner range can be useful. (maybe visualizing one experiment and 
trying to eliminate too low or too high values?) But if we are going to choose 
one, you are right, highlighting the outer range is a better idea. 

Original comment by mervecak...@gmail.com on 5 Oct 2012 at 1:09

GoogleCodeExporter commented 8 years ago
You can add an option (a radio button for instance) to select out of or in the 
range.

Original comment by ozgunba...@gmail.com on 5 Oct 2012 at 9:17

GoogleCodeExporter commented 8 years ago
I have added radio buttons with "within the specified range" and "outside the 
specified range" options. They are enabled only if both min and max selections 
are checked, to prevent confusion in cases where only one of them is selected.  
Can you please verify whether it is working properly? Any suggestions/feedbacks 
are also welcome.

Original comment by mervecak...@gmail.com on 15 Oct 2012 at 10:05

GoogleCodeExporter commented 8 years ago
Looks good.
Minor correction "... the specified ..." -> "... specified ..."

Original comment by ugurdogr...@gmail.com on 15 Oct 2012 at 12:27

GoogleCodeExporter commented 8 years ago
Also we get an exception in the use of this feature I think when no node is 
associated with cancer data:

Loading multiple data types...
java.util.NoSuchElementException
    at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
    at java.util.HashMap$ValueIterator.next(HashMap.java:822)
    at java.util.Collections.max(Collections.java:640)
    at org.gvt.action.HighlightWithDataValuesAction.run(HighlightWithDataValuesAction.java:85)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
    at org.eclipse.jface.window.Window.open(Window.java:787)
    at org.gvt.ChisioMain.main(ChisioMain.java:208)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)

Original comment by ugurdogr...@gmail.com on 15 Oct 2012 at 12:28

GoogleCodeExporter commented 8 years ago
The dialog does not remember user's last selection. It would be easier to use 
if it remembers. Users may like to slightly change their thresholds.

Original comment by ozgunba...@gmail.com on 15 Oct 2012 at 9:33

GoogleCodeExporter commented 8 years ago
I have added a warning dialog for cases where there is no association between 
nodes and loaded data. I have also realized that the dialog was only working 
with L3 models so fixed that as well. 

Original comment by mervecak...@gmail.com on 17 Oct 2012 at 3:31

GoogleCodeExporter commented 8 years ago
Why is it working only with L3 models? Can we extend it to cover L2?

Original comment by ozgunba...@gmail.com on 17 Oct 2012 at 4:25

GoogleCodeExporter commented 8 years ago
I have extended and it's now working also for L2. 
Previously, I was mistakenly using an L3 specific implementation of a class and 
so I have replaced it with the more general one. 

Original comment by mervecak...@gmail.com on 17 Oct 2012 at 6:41

GoogleCodeExporter commented 8 years ago
Yes, it'd be very nice to remember latest selection.

Original comment by ugurdogr...@gmail.com on 19 Oct 2012 at 11:36

GoogleCodeExporter commented 8 years ago
OK, it is now remembering the latest selection. 
The dialog starts from scratch only if minimum and maximum values of the scale 
is changed, which implies that the loaded data is changed. I think it is better 
to offer a fresh dialog when user prefers to analyze different data. Also, 
ranges of these different experiments can be incompatible, preventing the 
persistence of values of scales (ie. one data may be between -5 and 3, and 
other between 100-1000).

Original comment by mervecak...@gmail.com on 23 Oct 2012 at 9:35

GoogleCodeExporter commented 8 years ago
I think this turned out to be very nice. I verified that it works properly.
Can we just get rid of the extra/unncessary borders around OK & Cancel buttons?

Original comment by ugurdogr...@gmail.com on 23 Oct 2012 at 1:55

GoogleCodeExporter commented 8 years ago
Border around OK-Cancel buttons is removed. 

Original comment by mervecak...@gmail.com on 30 Oct 2012 at 9:54

GoogleCodeExporter commented 8 years ago

Original comment by ugurdogr...@gmail.com on 15 Nov 2012 at 9:22

GoogleCodeExporter commented 8 years ago

Original comment by ugurdogr...@gmail.com on 15 Nov 2012 at 9:33