QtMG - CCP4: Software for Macromolecular Crystallography

Download Report

Transcript QtMG - CCP4: Software for Macromolecular Crystallography

QtMG
CCP4 Developers’ Meeting,
Abingdon, 17th-19th March, 2008
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 antialiasing.
• 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.
Screenshots
Screenshots
Screenshots
Screenshots
Screenshots
Screenshots
Screenshots
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.