Need startup suggestions for writing a MSA viewer GUI in python

Chris Mellon arkanes at gmail.com
Wed Jan 10 10:10:04 EST 2007


On 1/10/07, Joel Hedlund <joel.hedlund at gmail.com> 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

This will probably be a major, but not humongous project. wxPython,
pyGTk, and pyQt all have the architecture and basics you'll need, it
will probably be about the same amount of work to create in all of
them. Pick the one that best suites your licensing and platform needs.



More information about the Python-list mailing list