arq5x/scurgen — pull request #22 by daler (2012-09-13 18:53:06+00:00)
Title: GUI refactor

plotting.py changed a lot. I propagated all your committed changes over to it, along with the latest changes to hilbert.py so hopefully it will be a clean merge.

This refactor:
- divides the previously-monolithic plot() method into a bunch of smaller methods that should be easier to work on and improve
- if we need to move to a different GUI framework (I'm thinking this will be the case eventually) then this refactor will make it a lot easier to do so
- now supports N-way comparsions
- uses a dictionary or optionally a YAML filename containing config info, allowing multiple files to be loaded and configured (see discussion on #15)
- currently the only file-level config options are filename and colormap, but I see this expanding -- say, which min values to initially mask at
- for access from the command line: converting from an argparse options object to a config dict suitable for HilbertGUI should be trivial -- this should make it easy to expose any future changes in HilbertGUI to be CL-accessible
- adds an example config.yaml
- adds a function, plotting.plot_hilbert(), which provides a simpler interface to the more flexible HilbertGUI

Known issues:

- I temporarily removed the min sliders. Trying to decide whether to manually create slider Axes or to keep the existing method (appending Axes objects using self.divider.append). I'm leaning towards the former, in which case the min sliders will come back.
- Slider colors are all default now. It's unclear which color to use for them given an arbitrary colormap -- I guess the max?
- In my hands, when moving the 2nd or 3rd alpha slider, the chrom coords axes up top flickers. The first slider works fine. I don't yet know why this is happening.