Niektóre algorytmy są dostępne z kodu źródłowego dla różnych pakietów. PyMol jest jednym z nich, a źródło VMD jest również dostępne.
Zaimplementowałem algorytm wstążki VMD w latach 90. Pierwszym krokiem jest określenie struktury - gdzie są aminokwasy? które są połączone w łańcuch? gdzie są atomy C-alfa?
Następnie, jak powiedział Kyle, jest splajn. VMD używa splajnu Catmull – Rom, z punktami C jako punktami kontrolnymi. Jest to splajn trzeciego rzędu, a splajny przechodzą przez litery C. Jeśli opracujesz matematykę, istnieje jeden wolny parametr, który odpowiada sztywności splajnu wokół punktu kontrolnego. Próbowałem kilku wartości, dopóki nie znalazłem tej, która była estetyczna.
Jest też pewna podstępność, jak radzić sobie z końcem, który nie ma wystarczającej liczby liter C. Ekstrapolowałem, aby uzyskać inne punkty.
To daje ścieżkę. Okrągły profil wzdłuż ścieżki daje rurkę. Możesz zmieniać promienie przekroju, aby uzyskać elipsę, a przy odrobinie pracy zdefiniować wstążkę.
Problem polega na znalezieniu właściwej normy, aby wstążki były wyrównane z helisą alfa. Próbowałem różnych rzeczy, potem się poddałem, spojrzałem na implementację Raster3D, uzyskałem pozwolenie na jej użycie i dodałem ją do VMD. Jest to skumulowana suma poprzedniej normy wektorowej i bieżącej normy określonej przez ślad C-alfa. Musiałbym spojrzeć na źródło, aby dowiedzieć się, jak to działa ponownie. Co ciekawe, Ethan Merritt, autor Raster3D, zauważył, że otrzymał ten fragment kodu od FRODO, więc ma on długą historię.
VMD ma teraz „NewRibbons”, który został zaimplementowany po moim czasie. Nie wiem jak to działa.
Najprostszym sposobem wykonania helisy alfa jest narysowanie linii od pierwszej do ostatniej reszty; wyciągnij okrąg wzdłuż linii i masz cylinder. Możesz również wykonać liniowy najlepiej dopasowany do helisy, ale myślę, że spowodowało to problemy dla krótkich helis. Prawdopodobnie są bardziej sprytne sposoby, w tym takie jak sugerował Kyle, które pozwalają na łagodne zakręty.
Nici beta są łatwe. Istnieją dwie ścieżki kontroli, po jednej dla każdej strony. Określają one ścieżkę i normalną. Trzeba trochę uważać na skręty, aby nici nie skręcały się o 290 stopni, kiedy powinny się skręcać o 70 stopni, ale nie było to trudne.
Trudną częścią, o której nie wspomniałeś, jest to, jak wykryć, gdzie znajdują się nici alfa-helisa i beta-nici. Niektóre rekordy PDB zawierają to, ale nie wszystkie. Zrobiłem to i użyłem do tego narzędzia STRIDE innej firmy. Warren zaimplementował własny algorytm. Roger Sayle zaimplementował własną wersję DSSP dla Raster3D.