Algunos de los algoritmos están disponibles en el código fuente para los diferentes paquetes. PyMol es uno de ellos, y la fuente de VMD también es accesible.
Implementé el algoritmo de cinta de VMD en la década de 1990. El primer paso es la determinación de la estructura: ¿dónde están los aminoácidos? ¿Cuáles están conectados en una cadena? ¿Dónde están los átomos de C-alfa?
Luego, como dijo Kyle, está la spline. VMD utiliza una spline Catmull-Rom, con los C-alfa como puntos de control. Esta es una spline de tercer orden, y las splines pasan por los C-alfa. Si calcula las matemáticas, hay un único parámetro libre, que corresponde a la rigidez de la spline alrededor del punto de control. Probé algunos valores hasta que encontré el que era estéticamente agradable.
También hay algunos trucos sobre cómo manejar el final, que no tiene suficientes C-alfa. Extrapolé para obtener los otros puntos.
Eso da el camino. Una extrusión circular a lo largo del camino da un tubo. Puede variar el radio de la sección transversal para obtener una elipse y, con un poco más de trabajo, definir la cinta.
El problema es encontrar la norma correcta, de modo que las cintas estén alineadas con una hélice alfa. Intenté varias cosas y luego me di por vencido, miré la implementación de Raster3D, obtuve permiso para usarlo y lo agregué a VMD. Es una suma acumulativa de la norma del vector anterior y la norma actual definida por la traza C-alfa. Tendría que mirar la fuente para ver cómo funciona nuevamente. Curiosamente, Ethan Merritt, el autor de Raster3D, señaló que obtuvo ese código de FRODO, por lo que tiene una larga historia.
VMD ahora tiene "NewRibbons", que se implementó después de mi tiempo. No se como funciona.
La forma más fácil de hacer una hélice alfa es dibujar una línea desde el primer hasta el último residuo; extruye un círculo a lo largo de la línea y tienes un cilindro. También puede hacer un mejor ajuste lineal a la hélice, pero creo que eso causó problemas para las hélices cortas. Es probable que haya formas más inteligentes de hacerlo, incluidas formas como la sugerida por Kyle, que permite curvas suaves.
Los filamentos beta son fáciles. Hay dos rutas de control, una para cada lado. Esos definen el camino del filamento y lo normal. Debes tener un poco de cuidado con los giros, para que tu hilo no gire 290 grados cuando debería girar 70 grados, pero eso no fue difícil de manejar.
Una parte difícil, que no mencionó, es cómo detectar dónde se encuentran las cadenas alfa-hélice y beta. Algunos registros PDB contienen eso, pero no todos. Golpeé y usé una herramienta de terceros, STRIDE, para eso. Warren implementó su propio algoritmo. Roger Sayle implementó su propia versión de DSSP para Raster3D.