3 ms·
Back in the 90s I implemented a ribbon diagram representation for VMD, a visualization program. The first problem is secondary structure assignment, that is, w
by dalke 2y ago
Back in the 90s I implemented a ribbon diagram representation for VMD, a visualization program.
The first problem is secondary structure assignment, that is, which are the alpha helices, beta sheets, and other (coil/turns). The standard approach was from Kabsch and Sander, but their implementation, DSSP, wasn't really meant for library/automated use.
Instead of re-implementing it (like Roger Sayle did for RasMol, for example), I used Stride, from Frishman and Argos, which we distributed with VMD.
The alpha helix path was pretty simple - use a Catmull-Rom spline using the C-alphas as control points. There's a free variable which corresponds, as I recall, to tension. I tweaked it until it looked right. (By this time I had stared at a lot of ribbon diagrams.)
Getting the plane of the ribbon was hard. I never figured it out. I looked at the Raster3D implementation to get the algorithm. I then asked the main developer, Ethan Merritt, for permission to use the method. He said yes, and added that they in turn got it from the O molecular modeling program.
The beta sheets were mostly a matter of fitting a curve to the alternating C-alphas, being careful to keep twists less than 180 degrees.
Then there's a bit more to make things joined up.
It was decent, but not great. For one, our internal display lists didn't handle norms in a way that would result in smooth curves. All we had were cylindrical segments.
It was latter rewritten, which is why the current version is(was?) called "New Ribbons".
For what it's worth, I did meet Jane Richardson once, when she visited our lab.