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 -- http://mail.python.org/mailman/listinfo/python-list