Overview CCP4mg is an extremely capable molecular graphics program. However, technology has moved on programming tools since the project began.
Strengths Very easy system(s) for building up complex scenes from simple parts. Simple way of generating animations from multiple data sets. Movies with ability for have arbitrary “key” scenes, with the objects displayed being able to change.
Strengths Output images/movies at any size with anti- aliasing. Hooks into CCP4i project system. Many drawing styles: atoms, bonds, ball and stick, ribbons, surfaces, nucleic acid base blocks and sticks, lipid cartoons, etc.
Weaknesses Slow. Half speed of competition or worse in many cases. (Somewhat) unstable. Although much better than in past, there can still be problems. Looks old. A trivial point perhaps, but Tk just isn’t as pretty as modern toolkits.
Solution Use a new toolkit. Choices were Qt or Gtk. Qt was chosen as it has native support on OS X, Linux and MS Windows. (Gtk status on OS X seems a little unclear).
Benefits Qt provides a complete framework for developing graphical program. –A very rich set of widgets for user interfaces. –An extremely easy to use OpenGL widget (for the “graphics”). –Easy access to fonts and other system resources. –Programs have native look and feel (on Mac and Windows).
Benefits for CCP4MG No need to use multiple technologies. Qt replaces Tk and Glut. –No need to worry about glut bindings for python, socket communication between gui and OpenGL. –Program doesn’t need to use multiple threads. (Though they can be handy).
Result of Using Qt Program more or less rock solid. Even when programmer does stupid things, Qt’s exception handling takes care of things. Much faster than Tk ccp4mg. Typically twice as fast, can be several orders of magnitude faster, depending on molecule size. Mouse input handling much more snappy.
Status Can display multiple sets of PDB data, multiple atom selections and styles. Extremely flexible new selection tools. Hydrogen bonds. Electron density from MTZ files, in multiple styles. (Not quite all those in Tk version). Atom labelling. Several dialogs already complete.
Status Even more selection tools than Tk version. Multiple views of scene, eg. side-by-side stereo and views down three orthogonal axes. Works on Linux, Windows and OS X. Broken at least on OS X/Leopard/intel.
To do Movies - quite some work, but much more easy now that we don’t have to worry about multiple threads. Picture Wizard. Some aspects can be used at molecule load time, but no part of GUI done. Structure superposition (straightforward). Electrostatics (should be trivial). More selection tools.
To do Clipping planes (easy) “Software” antialiasing and size selection of output. Documentation browser. This may involve zero work, depending on Qt releases. Many small missing features in GUI. Preferences, so that all ccp4mg drawing options can be used.
To do CCP4 map files (non-mtz data files). Povray/Postscript output (should be trivial). Background colour Save/restore status (important!) Lighting options Coot interface (trivial) Symmetry (important!)
To do Create distribution files. Currently if anyone wants to test this, then Qt4/PyQt4 must be installed. CCP4MG’s Tk incarnation shipped Python, Glut, Tcl/Tk/Itcl/BLT and possibly other Tk extensions. QtMG will therefore ship Python, Qt4 and PyQt4, so actually fewer dependencies.
Random other points Text is now displayed using textured quads rather than blitting bitmaps. In most cases (ie. graphics card from last 10 years) this results in much faster text. Without hardware texture support (vmware, qemu) the result is likely to be much slower text.
Future A test version will be available very shortly. This is likely to be just a couple of weeks. This will address some of the to do list, fix a few bugs and tackle distribution issues. Implementing the rest of the Tk version functionality is likely to take until August. No major obstacles have (yet) to be encountered, so work should be straightforward.