Chimera 2 Density Map Progress
Tom Goddard
May 2, 2013
- Using Qt 5, PyQt, OpenGL 3.2 core profile, PyOpenGL, Numpy, Python 3.3
- Open maps, surface/mesh/grayscale/orthoplanes/box/outlines display.
- Mouse modes to adjust contour levels, resize volume, move planes, move molecules.
- Molecules sphere style, opengl instancing, color by chain or atom, biological unit.
- Fast molecule load, 0.5 seconds for 400,000 atom 2 ribosomes 3u5* (8 files). 25 seconds in Chimera 1, 15x less memory use.
- Fit molecules in maps.
- Save sessions, session thumbnails (textures on surfaces), session history,
sessions contain data only.
- Save images (no supersampling).
- Camera view matrix for rotation, translation, zoom.
- Keyboard shortcuts, open/save dialogs.
- Density map C++ code all in one library (e.g. interpolation, histogram calc, ...).
- Python interface to C++ hand coded.
- Not using Chimera 1 opengl code, _chimera core library, wrappy, _molecule library.
Observations
- Much of Chimera 1 core _chimera.so could be in Python.
- OpenGL 3 can be done in Python -- few calls operating on arrays.
- Overlays in graphics is simpler user interface.
Things to try
- Try selection highlighting by dimming all unselected models.
- Try tiled display of all models for showing and hiding and other model panel actions.
- Add column of mouse mode buttons in main window.
- Use Sphinx for documenting APIs.
- Add volume histogram graphics overlay.
- Side view and lighting could be graphics overlays.
- Fly through animation with new camera interpolation.
- Map display from asymmetric unit for large EMDB maps.
Things to port
- AutoPack surface models.
- Surface clipping and capping.
- Surface coloring (radial, electrostatics, ...).
- Marker placement.
Direction
- What new features can make Chimera 2 enticing to users?
- What user interface improvements can make Chimera 2 enticing to users?
- What demonstrations of Chimera 2 will help sell it?