Algoritmaların bazıları farklı paketler için kaynak kodundan edinilebilir. PyMol böyledir ve VMD'nin kaynağına da erişilebilir.
VMD'nin şerit algoritmasını 1990'larda uyguladım. İlk adım yapı tayini - amino asitler nerede? hangisi bir zincire bağlı? C-alfa atomları nerede?
Sonra, Kyle'ın dediği gibi, spline. VMD, kontrol noktaları olarak C-alfaları olan bir Catmull-Rom spline kullanır. Bu 3. dereceden bir spline ve spline C-alfalarından geçer. Matematiği çalıştırırsanız, spline'ın kontrol noktasının ne kadar sert olduğuna karşılık gelen tek bir serbest parametre vardır. Estetik açıdan hoş olanı bulana kadar birkaç değer denedim.
Ayrıca, yeterli C-alfa içermeyen, sonun nasıl ele alınacağına dair bir hile var. Ben diğer noktaları almak için tahmin.
Bu yolu verir. Yol boyunca dairesel bir ekstrüzyon bir tüp verir. Bir elips vermek için kesit yarıçaplarını değiştirebilirsiniz ve biraz daha fazla çalışma ile şeridi tanımlayın.
Sorun, doğru normu bulmaktır, böylece şeritler bir alfa sarmalı ile hizalanır. Çeşitli şeyleri denedim, vazgeçtim, Raster3D uygulamasına baktım, kullanma izni aldım ve bunu VMD'ye ekledim. Bu, önceki vektör normunun ve C-alfa izi tarafından tanımlanan geçerli normun kümülatif bir toplamıdır. Tekrar nasıl çalıştığı için kaynağa bakmalıydım. İlginç bir şekilde, Raster3D yazarı Ethan Merritt, FRODO'dan biraz kod aldığını belirtti, bu yüzden uzun bir geçmişi var.
VMD artık benim zamanımdan sonra uygulanan "NewRibbons" a sahip. Nasıl çalıştığını bilmiyorum.
Bir alfa sarmalı yapmanın en kolay yolu, ilk kalıntıdan son kalıntıya doğru bir çizgi çizmektir; çizgi boyunca bir daire ekstrüde edin ve bir silindiriniz var. Ayrıca, sarmal için en uygun olanı da yapabilirsiniz, ancak bence kısa sarmallar için sorunlara neden oldu. Kyle'ın önerdiği yumuşak virajlara izin veren yollar da dahil olmak üzere muhtemelen daha akıllı yollar var.
Beta telleri kolaydır. Her iki taraf için bir tane olmak üzere iki kontrol yolu vardır. Bunlar iplikçik yolunu ve normal olanı tanımlar. Bükülmelere karşı biraz dikkatli olmalısın, böylece iplikçik 70 dereceyi bükmesi gerektiğinde 290 derece bükmez, ancak bu işlemek zor değildi.
Bahsetmediğiniz sert bir kısım, alfa sarmalının ve beta tellerinin nerede bulunduğunu nasıl tespit edeceğinizdir. Bazı PDB kayıtları bunu içerir, ancak hepsini içermez. Bunun için bir üçüncü taraf aracı STRIDE kullandım ve kullandım. Warren kendi algoritmasını uyguladı. Roger Sayle Raster3D için kendi DSSP sürümünü uyguladı.