arq5x / scurgen

A tool for detecting patterns in genomic data with space filling curves
9 stars 4 forks source link

Which GUI framework to use #24

Open daler opened 11 years ago

daler commented 11 years ago

I have no idea how to do things like #21 (color picker for the GUI) in matplotlib. While the current GUI seems to work really well for testing, I have a feeling we're going to hit the limits of what mpl can do natively.

Reading up a bit, I get the sense that PySide (LGPL version of PyQt4) is the up-and-coming framework to use. It has support for Mac/Linux/Windows, and a lot material out there to learn from (see, for example, https://github.com/PySide/Examples).

I was able to get a simple matplotlib demo working with PySide, but the zooming and panning controls get lost. I think this happens with wxWindows as well. So there's some existing functionality that will need to be re-written, but hopefully moving to a more robust framework (PySide or otherwise) will give the GUI more room to grow.

Thoughts?

arq5x commented 11 years ago

This stuff is all very foreign to me - what are the dependencies involved? Would the user have to go through the drudgery of installing Qt first? I recall doing this a couple of years ago and I nearly smashed my computer. Or is it straightforward to install the dependencies for PySide as part of the setup.py?

I agree that long term it is probably better. I guess in the short term, to me it depends on how difficult it is to get working and how onerous the packaging/distribution is.

daler commented 11 years ago

No idea about dependencies. Luckily Ubuntu has a python-pyside package, so installing was straightforward for me.

This stuff is mostly foreign to me, too. Perhaps the question is, who is the target audience for scurgen? That is, would a simple HC viewer be sufficient, with most of the work being done in user-created scripts/command line calls, or will everything be done via GUI? If the former, then mpl is probably fine; if the latter then maybe the dependency headaches are just a necessary cost of using the more flexible framework.

arq5x commented 11 years ago

Sorry for radio silence...been otherwise occupied. My sense is that for now, a simple MPL GUI is sufficient for most analyses. I would be more interested in rounding out the command line / static image generation, and basic N-way GUI support. This way the CL interface could plot images for many single and N-way comparisons, whereas the GUI could be used for deeply exploring 1 or more datasets in an interactive manner. I think that if we can add the track-level plotting of the underly intervals in the GUI, we would have a tool that is very useful for exploring patterns in datasets such as ENCODE.

Then, we could possibly fork the project to make a more sophisticated GUI. What do you think? In terms of the needs of my lab and the original intent for the tool, I think the existing MPL GUI (with the track level support) is sufficient.

daler commented 11 years ago

For my needs, the mpl GUI works fine, too. It would take a lot of time to get something working in PySide or whatever, without much (if any) gain in analysis power and functionality.

The static image generation will take some experimenting, but should be reasonably straightforward.

As for the track plotting, I'll start another issue on that because it may take some discussion . . .