Home
SUMMON

Updates

2011.07.17 - Bug fixes and more examples summon-1.8.10.

2010.12.20 - More bug fixes and examples available in summon-1.8.9.

2009.07.06 - A few bug fixes and more examples are available in the new release summon-1.8.8.

2009.05.27 - I have just released summon-1.8.7. This is mainly a bug fix release.

2008.02.24 - Added a new release and some videos of visualizations created with SUMMON.

2008.01.30 - Added two new tutorials for transforms and hotspots.

2008.01.24 - The new release summon-1.8.4 contains updates for the core library and SUMMATRIX (change log). SUMMATRIX can now display hierarchical trees next to matrices (see manual), which is useful for visualizing clusterings. I have also begun to add a quick online tutorial. I plan to add more tutorials in the future. If there are any features that you would like me to discuss next, let me know (rasmus[AT]mit[DOT]edu).

2007.10.26 - I released summon-1.8.3. It contains many bug fixes, speed ups, and a few new features for SUMMATRIX and SUMTREE.

2007.9.18 - I just added a new Windows Installer for summon-1.8.2 for those of you who run Windows. I also added more documentation for SUMMATRIX in the manual.

[older updates]

What is SUMMON

SUMMON is a python extension module that provides rapid prototyping of 2D visualizations. By heavily relying on the python scripting language, SUMMON allows the user to rapidly prototype a custom visualization for their data, without the overhead of designing a graphical user interface or recompiling native code. By simplifying the task of designing a visualization, users can spend more time on understanding their data.

SUMMON is designed to be a fast interface for developing interactive visualizations (via scene graphs) for OpenGL. Although python libraries already exist for accessing OpenGL, python is relatively slow for real-time interaction with large visualizations (trees with 100,000 leaves, sparse matrices with a million non-zeros, etc.). Therefore, with SUMMON all real-time interaction is handled with compiled native C++ code (via extension module). Python is only executed in the construction and occasional interaction with the visualization. This arrangement provides the best of both worlds.

SUMMON was designed with several philosophies. First, a scripting language (Python) is used to speed up the development process and avoid overhead such as code compilation. Second, design of graphical user interfaces should be minimized. Designing a good interface takes planning and time to layout buttons, scrollbars, and dialog boxes. Yet a poor interface is very painful to work with. Even when one has a good interface, rarely can it be automated for batch mode. Instead, SUMMON relies on the Python prompt for most interaction. This allows the users direct access to the underlying code, which is more expressive, and can be automated through scripting.

For more information and documentation, see the manual or browse the online tutorial.

Features

Screenshots

Several simple examples of SUMMON API (left text editor), a summon window with the visualization (upper right), and the interactive python prompt with an example of dynamically changing visualization (lower right). In the second screenshot, an example of using hotspots is shown. Simply define a rectangle in your visualization's coordinate system (choose whatever units make sense for you, don't worry about pixels) and tell SUMMON to call a python function of your choice whenever a click occurs within the hotspot rectangle. The third screenshot demonstrates the use of transforms (translate, rotate, etc). Lastly, a screenshot of SUMMON running on Windows using the IDLE Python IDE. SUMMON easily integrates into the IDE of your choice.

screenshot screenshot screenshot screenshot

A large tree visualization (sumtree, demo included) of the clustering of olfactory genes from mammalian genomes (left, center). A phylogeny of mammalian species in a horizontal orientation with branch lengths and species names (right).

screenshot screenshot screenshot

A large sparse matrix visualization (summatrix, demo included) of all vs. all BLAST scores between genes in human and mouse (three levels of zoom):

screenshot screenshot screenshot

More examples of using summatrix to visualize matrices. Summatrix can permute rows and columns to display data clustering. Labels can be displayed next to the matrix or in separate panels that never leave the field of view while zooming.

screenshot screenshot

A custom visualization using SUMMON that displays multiple genome alignments and highlighted orthologs (~1 megabase). The second screenshot shows a close up of the alignment.

screenshot screenshot

More examples of custom visualizations. Left is a genome overview of every ORF colored by pathogenicity in the fungal species Candida albicans. Right is a gene family visualized using a phylogenetic tree, pair-wise distance matrix, and protein alignment.

screenshot screenshot


Videos

These are demos of the tree visualizer (left) and an example of animation (right).


[more videos]

The YouTube videos are very compressed. For clearer movies check out these high-quality videos here.



Documentation


Download

See change log for update details. Installation instructions are available in the INSTALL file. The platform independent downloads are known to work for Linux, Windows (XP, Vista), and Mac OS X platforms.

WINDOWS NOTE: If you download the Windows Installer, also download the ZIP archive, which contains useful examples and documentation.

2011.07.16
SUMMON 1.8.10:       summon-1.8.10.tar.gz   (platform independent)
2011.07.16
SUMMON 1.8.10:       summon-1.8.10.zip   (platform independent)
2011.07.16
SUMMON 1.8.10:       summon-1.8.10-1.i386.rpm   (Linux Binary RPM)
2010.12.20
SUMMON 1.8.9:       summon-1.8.9.tar.gz   (platform independent)
2010.12.20
SUMMON 1.8.9:       summon-1.8.9.zip   (platform independent)
2010.12.20
SUMMON 1.8.9:       summon-1.8.9-1.i386.rpm   (Linux Binary RPM)
2009.07.06
SUMMON 1.8.8:       summon-1.8.8.tar.gz   (platform independent)
2009.07.06
SUMMON 1.8.8:       summon-1.8.8.zip   (platform independent)
2009.07.06
SUMMON 1.8.8:       summon-1.8.8-1.i386.rpm   (Linux Binary RPM)
2009.07.06
SUMMON 1.8.8:       summon-1.8.8.win32-py24.exe   (Windows Installer)
2009.05.27
SUMMON 1.8.7:       summon-1.8.7.tar.gz   (platform independent)
2009.05.27
SUMMON 1.8.7:       summon-1.8.7.zip   (platform independent)
2009.05.27
SUMMON 1.8.7:       summon-1.8.7-1.i386.rpm   (Linux Binary RPM)
2009.05.27
SUMMON 1.8.7:       summon-1.8.7.win32-py24.exe   (Windows Installer)
2008.02.24
SUMMON 1.8.6:       summon-1.8.6.tar.gz   (platform independent)
2008.02.24
SUMMON 1.8.6:       summon-1.8.6.zip   (platform independent)
2008.02.24
SUMMON 1.8.6:       summon-1.8.6-1.i386.rpm   (Linux Binary RPM)
2008.02.24
SUMMON 1.8.6:       summon-1.8.6.win32-py24.exe   (Windows Installer)
2008.02.04
SUMMON 1.8.5:       summon-1.8.5.tar.gz   (platform independent)
2008.02.04
SUMMON 1.8.5:       summon-1.8.5.zip   (platform independent)
2008.02.04
SUMMON 1.8.5:       summon-1.8.5-1.i386.rpm   (Linux Binary RPM)
2008.01.24
SUMMON 1.8.4:       summon-1.8.4.tar.gz   (platform independent)
2008.01.24
SUMMON 1.8.4:       summon-1.8.4.zip   (platform independent)
2008.01.24
SUMMON 1.8.4:       summon-1.8.4-1.i386.rpm   (Linux Binary RPM)
2007.10.26
SUMMON 1.8.3:       summon-1.8.3.tar.gz   (platform independent)
2007.10.26
SUMMON 1.8.3:       summon-1.8.3-1.i386.rpm   (Linux Binary RPM)
2007.09.16
SUMMON 1.8.2:       summon-1.8.2.tar.gz   (platform independent)
2007.09.16
SUMMON 1.8.2:       summon-1.8.2-1.i386.rpm   (Linux Binary RPM)
2007.09.16
SUMMON 1.8.2:       summon-1.8.2.win32-py24.exe   (Windows Installer)
2007.08.27
SUMMON 1.8.1:       summon-1.8.1.tar.gz   (platform independent)
2007.08.27
SUMMON 1.8.1:       summon-1.8.1-1.i386.rpm   (Linux Binary RPM)
2007.08.25
SUMMON 1.8:       summon-1.8.tar.gz   (platform independent)
2007.08.25
SUMMON 1.8:       summon-1.8-1.i386.rpm   (Linux Binary RPM)
2007.07.10
SUMMON 1.7.2:       summon-1.7.2.tar.gz   (platform independent)
2007.07.10
SUMMON 1.7.2:       summon-1.7.2-1.i386.rpm   (Linux Binary RPM)
2007.06.01
SUMMON 1.7.1:       summon-1.7.1.tar.gz   (platform independent)
2007.06.01
SUMMON 1.7.1:       summon-1.7.1-1.i386.rpm   (Linux Binary RPM)
2007.05.06
SUMMON 1.7:       summon-1.7.tar.gz   (platform independent)
2007.04.06
SUMMON 1.6.1:       summon-1.6.1.tar.gz   (platform independent)
2007.04.05
SUMMON 1.6:       summon-1.6.tar.gz   (platform independent)
2006.08.30
SUMMON 1.1:       summon-1.1.tar.gz   (platform independent)
2005.08.25
SUMMON 1.0:       summon-1.0.tar.gz   (platform independent)
[older versions]

SUMMON is also available on the Python Package Index and can be installed with easy_install using the following command:

easy_install summon

The latest development version of SUMMON is always available from my github page.

Requirements

SUMMON is developed to be cross platform. It is known to work on the following platforms (but possibly others as well):

To use SUMMON, the following third-party libraries are needed (they are all cross-platform):

On Debian, required packages can be install with this command:

    apt-get install python freeglut3-dev libsdl1.2-dev

Different distributions should name their packages similarly. Also, to use SUMMON you should be familiar with the python programming language.


Notes

SUMMON is experimental code. I only make it available in hopes that someone else will find it useful. If you find any bugs or experience any other problems I would be interested to know. My email is rasmus[at]mit[dot]edu. Enjoy!




Last Updated: Mon Dec 20 19:09:23 EST 2010