GSoC: Avogadro 2 - Biological Data Visualization

Dear Dale,

Thanks for your e-mail and I’m glad to hear from you. You may already have the background to understand different representations (e.g., cartoons, ribbons, etc.) so I apologize if some of the comments below are generic. I wrote this up for others interested in the project.

It’s important that Avogadro gains:
- Support for tracking data needed to render a protein (or nucleic acid or sugar) - storing residue information, sequence/chain, etc.
- How the rendering is done (e.g., how to use OpenGL or WebGL to draw a cartoon, ribbon, etc.)

For example:
- 3dmol.js - https://github.com/3dmol/3Dmol.js/blob/master/3Dmol/glcartoon.js
- ngl - https://github.com/arose/ngl/blob/master/src/representation/cartoon-representation.js
(I can't find the PyMol cartoon code, but it'd be worth finding that.)
- Avogadro1 - https://github.com/cryos/avogadro/blob/master/libavogadro/src/engines/cartoonmeshgenerator.cpp

There are also academic papers on protein rendering that would be useful to read:
- https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2672931/
- https://academic.oup.com/nar/article/43/W1/W576/2467902
- http://doi.wiley.com/10.1111/cgf.13072
- http://ieeexplore.ieee.org/document/1372203/
- http://ieeexplore.ieee.org/document/1320224/

Consider also, how can you use symmetry to improve rendering speed? Should the implementation use GPU, CPU or CPU/GPU hybrid approaches?

If you can’t access any of the articles, please let me know.

Hope that helps - let us know if you have further questions when drafting a proposal!
-Geoff