Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Most "Canvas" widgets in common GUI toolkits offer low level operations like drawing basic shapes of different colors/line-width/etc, or displaying sprites and images. Some seem to have slightly more advanced features like the ability to treat primitives drawn on the canvas as "actors" so they can be moved and manipulated independently after drawing.

How do you go from such low-level operations to highly complex and interactive visualizations, for example the Integrative Genomics Viewer (screenshot 1, screenshot 2, screenshot 3)? This tool lets you navigate various annotations and features located on a genome in a variety of ways, at the single-nucleotide level (ie, very low detail) to the whole-genome level (very high level overviews), handles very large data sets (100's of gb) and incorporates many different plot types many of which are unique to the application or at least bioinformatics.

Beyond MVC, is there underlying theory or model as to how you should structure such an application?

share|improve this question
Pragmatism. . . . – Robert Harvey Jul 29 '13 at 4:53
Are you asking about human-machine interaction design, or application development? – Simon Jul 29 '13 at 5:10
@simon Application development.. I'm not trying to do anything revolutionary, I just want to know if there is any practical models or theories on how to structure such programs, as there is for, say, database theory. – user2243865 Jul 29 '13 at 8:44
up vote 2 down vote accepted

This is a topic with a lot of public funding (both for genomics and national security) and there are many scientific papers on the various details of it. As a starting point for further search here are some on designing the visualization side of such systems:

For big datasets performance is more important and there are specialized display techniques to fit as much information as possible into every single pixel, but I don't have any links at hand right now.

share|improve this answer
would you mind expanding a bit on what each of these resources have and why do you recommend these as answering the question asked? "Link-only answers" are not quite welcome at Stack Exchange – gnat Jul 29 '13 at 6:40
Why the hostility? I found his answer useful. – user2243865 Jul 29 '13 at 7:02

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.