Need startup suggestions for writing a MSA viewer GUI in python

hg hg at nospam.org
Wed Jan 10 03:37:41 EST 2007


Joel Hedlund wrote:

> Hi!
> 
> I've been thinking about writing a good multiple sequence alignment
> (MSA) viewer in python. Sort of like ClustalX, only with better zoom and
> pan tools. I've been using python in my work for a couple of years, but
> this is my first shot at making a GUI so I'd very much appreciate some
> ideas from you people to get me going in the right direction. Despite my
> GUI n00b-ness I need to get it good and usable with an intuitive look
> and feel.
> 
> What do you think I should do? What packages should I use?
> 
> For you non-bioinformatic guys out there, an MSA is basically a big
> matrix (~1000 cols x ~100 rows) of letters, where each row represents a
> biological sequence (gene, protein, etc...). Each sequence has an ID
> that is usually shorter than 40 characters (typically, 8-12). Usually,
> msa visualizers color the letters and their backgrouds according to
> chemical properties.
> 
> I want the look and feel to be pretty much like a modern midi sequencer
> (like cubase, nuendo, reason etc...). This means the GUI should have
> least three panes; one to the left to hold the IDs, one in the bottom to
> hold graphs and plots (e.g: user configurable tracks), and the main one
> that holds the actual MSA and occupies most of the space. The left and
> bottom panes should be resizable and foldable.
> 
> I would like to be able to zoom and pan x and y axes independently to
> view different portions of the MSA, and the left and bottom panes should
> follow the main pane. I would also like to be able to use drag'n'drop on
> IDs for reordering sequences, and possibly also on the MSA itself to
> shift sequences left and right. Furthermore, I would like to be able to
> select sequences and positions (individually, in ranges or sparsely). I
> would like to have a context sensitive menu on the right mouse button,
> possibly with submenus. Finally, I'd like to be able to export printable
> figures (eps?) of regions and whole MSAs.
> 
> I'm thinking all three panes may have to be rendered using some sort of
> scalable graphics because of the coloring and since I'd like to be able
> to zoom freely. I'll also need to draw graphs and plots for the tracks.
> Is pygame good for this, or is there a better way of doing it?
> 
> I want my viewer to behave and look like any other program, so I'm
> thinking maybe I should use some standard GUI toolkit instead, say PyQT
> or PyGTK? Would they still allow me to render the MSA nicely?
> 
> Does this seem like a humongous project?
> 
> Thanks for taking the time!
> /Joel Hedlund

I do not know if PyGtk and PyQT have demos, but wxPython does and includes
PyPlot: an easy way to look at the basic features.

hg





More information about the Python-list mailing list