Beberapa algoritma tersedia dari kode sumber untuk paket yang berbeda. PyMol adalah salah satunya, dan sumber VMD juga dapat diakses.
Saya menerapkan algoritma pita VMD pada 1990-an. Langkah pertama adalah penentuan struktur - di mana asam amino? yang terhubung ke suatu rantai? dimana atom C-alpha?
Selanjutnya, seperti kata Kyle, adalah spline. VMD menggunakan spline Catmull-Rom, dengan C-alpha sebagai titik kontrol. Ini adalah spline urutan ke-3, dan spline melewati C-alpha. Jika Anda menghitung matematika, ada satu parameter gratis, yang sesuai dengan seberapa kaku spline di sekitar titik kontrol. Saya mencoba beberapa nilai sampai saya menemukan satu yang secara estetika menyenangkan.
Ada juga beberapa trik tentang bagaimana menangani akhir, yang tidak memiliki cukup C-alpha. Saya memperkirakan untuk mendapatkan poin lainnya.
Itu memberi jalan. Ekstrusi melingkar di sepanjang jalan memberikan tabung. Anda dapat memvariasikan jari-jari melintang untuk memberikan elips, dan dengan sedikit kerja lebih banyak menentukan pita.
Masalahnya adalah untuk menemukan norma yang benar, sehingga pita disejajarkan dengan alfa helix. Saya mencoba berbagai hal kemudian menyerah, melihat implementasi Raster3D, mendapat izin untuk menggunakannya, dan menambahkannya ke VMD. Ini adalah jumlah kumulatif dari norma vektor sebelumnya dan norma saat ini yang didefinisikan oleh jejak C-alpha. Saya harus melihat sumbernya untuk mengetahui cara kerjanya lagi. Menariknya, Ethan Merritt, penulis Raster3D, menunjukkan bahwa ia mendapat sedikit kode dari FRODO, sehingga memiliki sejarah panjang.
VMD sekarang memiliki "NewRibbons", yang diimplementasikan setelah waktu saya. Saya tidak tahu cara kerjanya.
Cara termudah untuk melakukan heliks alfa adalah menggambar garis dari residu pertama ke residu terakhir; mengusir lingkaran di sepanjang garis dan Anda memiliki silinder. Anda juga dapat melakukan linear paling cocok dengan heliks, tetapi saya pikir itu menyebabkan masalah untuk heliks pendek. Kemungkinan ada cara yang lebih cerdas untuk melakukannya, termasuk cara-cara seperti yang disarankan Kyle, yang memungkinkan untuk tikungan lunak.
Untaian beta mudah. Ada dua jalur kontrol, satu untuk setiap sisi. Itu menentukan jalur untai, dan normal. Anda harus sedikit berhati-hati dengan tikungan, sehingga untai Anda tidak memelintir 290 derajat padahal seharusnya memutar 70 derajat, tetapi itu tidak sulit untuk ditangani.
Bagian yang sulit, yang tidak Anda sebutkan, adalah bagaimana mendeteksi di mana helai alpha-helix dan beta-berada. Beberapa catatan PDB berisi itu, tetapi tidak semua. Saya menarik dan menggunakan alat pihak ke-3, STRIDE, untuk itu. Warren menerapkan algoritma sendiri. Roger Sayle mengimplementasikan DSSP versinya sendiri untuk Raster3D.