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?

  • Pragmatism. . . . Jul 29, 2013 at 4:53
  • 1
    Are you asking about human-machine interaction design, or application development? Jul 29, 2013 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. Jul 29, 2013 at 8:44

1 Answer 1


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.

  • 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, 2013 at 6:40
  • 2
    Why the hostility? I found his answer useful. Jul 29, 2013 at 7:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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