Project Timeline
07/01/2001 - 09/30/2001
Initial project specification and start of development:
- Decision to focus on interactive protein manipulation instead of energy function visualization.
- Proposal to use inverse kinematics on backbone dihedral angles as foundation for interactive manipulation.
- Design and implementation of data structure to represent proteins with secondary structure information. (Result: implementation of protein as undirected graph of atoms connected by covalent bonds.)
- Design and implementation of initial rendering techniques for protein visualization:
- Bond stick rendering using illuminated line segments.
- Backbone "cartoon" rendering using a single B-spline ribbon.
- Design of algorithm to apply a single or several 3D transformations to (parts of) a protein by traversing the atom graph.
- Design and implementation of algorithm to translate amino acid residue sequence into proper 3D protein structure:
- Provide template 3D structures for each amino acid residue occurring in proteins.
- Provide standard dihedral angles to create coil regions, beta strands and alpha helices.
- Accumulate rigid body transformations along protein backbone while concatenating amino acid residue templates to form protein structure.
10/01/2001 - 11/15/2001
Initial development of interactive manipulation:
- Rotation around single backbone bond by dragging.
- Implementation of basic inverse kinematics algorithm outside of protein data structure, to later be merged into protein interaction code.
Preparation of protein manipulation demonstration for IEEE Supercomputing 2001 conference.
11/16/2001 - 06/30/2002
Preparation for use of protein manipulation program during CASP5 protein structure prediction competition to be held in summer 2002. Completion of first beta version of program, now dubbed "ProtoShop". Distribution of ProtoShop to collaborators at UC Berkeley and University of Colorado, Boulder.
- Merging of separate inverse kinematics code into protein code to allow manipulation of protein structure by dragging selected secondary structures.
- Implementation of new protein visualization techniques:
- Atom rendering using spheres.
- Bond stick rendering using capped cylinders.
- Cartoon rendering using B-spline based glyphs for coil regions, beta strands and alpha helices.
- Design and implementation of visual guides to support manual alignment of secondary structures:
- Real-time Detection and rendering of hydrogen bonds during interaction.
- Visualization of hydrogen bond sites as "zippers" or atom cages.
- Real-time detection and rendering of atom collisions during interaction.
- Design and implementation of ProtoShop user interface using FLTK v1.0.10 GUI toolkit.
- Implementation of new adaptive-stepsize inverse kinematics algorithm to improve stability of interaction with large proteins.
- Implementation of arbitrary-level undo/redo functionality.
- Packaging of ProtoShop beta version for distribution:
- Preparation of program documentation (User's Guide) in HTML format.
- Merging of third-party library code into ProtoShop code base.
- Creation of makefile and build facilities to compile ProtoShop from source on multiple Unix versions.
07/01/2002 - 09/30/2002
Participation in CASP5: ProtoShop is used to create hundreds of protein structures later to be used for global optimization and proves its value in dealing with large proteins (400-500 amino acid residues). Parallel improvements in manipulation code and user interface to solve problems encountered during use in production environment.
- Semi-automatic formation of parallel/anti-parallel beta sheets by selecting two amino acid residues to form a parallel/anti-parallel hydrogen bond pair.
- Saving/loading of backbone dihedral angle sequences to later mix and match partial tertiary structures and rapidly create permutations of beta sheet alignments.
- Entire redesign of protein manipulation code to allow inverse kinematics on multiple selected coil regions at the same time, increasing interactivity for larger proteins or proteins with loops consisting of several short coil regions.
- Performance improvements in inverse kinematics code to increase interactivity for large loop regions.
- Implementation of configuration file facility to allow users to adjust almost all previously hard-coded program parameters to their needs without having to access source code or recompile.
10/01/2002 - 11/15/2002
Preparation of ProtoShop demos for IEEE Supercomputing 2002 conference and CASP5 protein structure prediction conference. Incorporation of energy computation code written by UC Berkeley collaborators to evaluate and visualize internal protein energy during interaction. Implementation of computational steering framework to couple ProtoShop with global optimization code written by collaborators.
- Rewrite of major parts of energy computation code to make it restartable, i.e., to be able to load several different proteins in a single ProtoShop session.
- Design of computational steering framework to connect ProtoShop session to remote global optimization process at any time:
- Design of TCP/IP-based communications protocol between ProtoShop (frontend) and global optimization scheduler (backend).
- Addition of "server socket" to backend to handle frontend communications without interfering with ongoing global optimization, and without having to change backend source code.
- Discovery that, due to design flaws in backend, major parts of backend have to be rewritten anyways to guarantee backend data integrity and freedom from race conditions under user interaction.
- Port of backend source code to Intel/AMD Linux platform to allow use of new NERSC Linux cluster for demonstration of computational steering during IEEE SC 2002 and CASP5 conferences.
- Development of tree visualization program to monitor overall process of ongoing global optimization; tree visualization not yet integrated into ProtoShop.
- Design of algorithm to associate parts of computed internal energy to atoms inside protein, to localize these energies for further visualization.
- Implementation of initial energy visualization technique by color-coding atom spheres according to their internal energies.
ProtoShop makes a major splash at the CASP5 protein structure prediction conference. Many researchers in the protein structure prediction community believe ProtoShop - or, more precisely, the interactive manipulation paradigm at its core - would be very beneficial for their own structure prediction techniques, ranging from pattern matching over energy-based methods to artificial intelligence approaches. ProtoShop should be released to the community very soon, preferrably under an appropriate source code distribution model to allow researchers to adapt it to their various needs.
11/16/2002 - 02/14/2003
Further improvements in global optimization backend code. Packaging and distribution of most recent ProtoShop version to collaborators. Discussion how - and when - to release ProtoShop to the protein structure prediction community.
02/15/2003 - 03/31/2003
Decision is made to release ProtoShop in binary form initially, at no cost for research institutions, and to offer a source code release for interested parties later. Release engineering to get ProtoShop into a publishable state. Release of underlying geometry library (Templatized Geometry Library) under the GNU General Public License. External sources suggest changing program name; interim name is chosen to be "ProteinShop" - not quite as snazzy. Prot(o/ein)Shop download web site goes online at http://proteinshop.lbl.gov. Preparation of application-track paper about ProtoShop for the IEEE Visualization conference.
04/01/2003 - today
Continuation of incremental development and bug fixing in ProtoShop. IEEE Visualization paper gets accepted.
Log of current development:
- 11/16/2002 - ?: Development of additional energy visualization techniques.
- 11/16/2002 - ?: Improvement of user interface to manipulate proteins both in 3D cartesian space and 1D sequence space.
- 12/18/2002 - ?: Overhaul of ProtoShop main program structure in preparation for source code release.
- 01/10/2003 - ?: Incorporation of new secondary structure template dihedral angles calculated by locally optimizing template proteins.
- 06/24/2003 - ?: Preparation of collaborative version of ProtoShop, allowing two or more researchers to view and manipulate the same protein structure at the same time.