अलग-अलग पैकेज के लिए कुछ एल्गोरिदम स्रोत कोड से उपलब्ध हैं। PyMol एक ऐसा है, और VMD का स्रोत भी सुलभ है।
मैंने 1990 के दशक में वीएमडी के रिबन एल्गोरिथ्म को लागू किया। पहला कदम संरचना निर्धारण है - अमीनो एसिड कहां हैं? जो एक श्रृंखला में जुड़े हुए हैं? C- अल्फा परमाणु कहाँ हैं?
अगला, जैसा कि काइल ने कहा था, वह तख़्ती है। VMD नियंत्रण बिंदुओं के रूप में C-अल्फाजों के साथ एक कैटमूल-रोम स्लाइन का उपयोग करता है। यह एक तीसरा क्रम है, और स्प्लिन सी-अल्फा के माध्यम से जाता है। यदि आप गणित का काम करते हैं, तो एक एकल निशुल्क पैरामीटर है, जो नियंत्रण बिंदु के चारों ओर घूमने के लिए कितना कठोर है। मैंने कुछ मूल्यों की कोशिश की जब तक कि मुझे वह नहीं मिला, जो एस्टिथेटिक रूप से प्रसन्न था।
अंत को कैसे संभालना है, इसके बारे में भी कुछ चालाकी है, जिसमें पर्याप्त सी-अल्फ़ा नहीं है। मैंने अन्य अंक प्राप्त करने के लिए अतिरिक्त कदम उठाए।
वह रास्ता देता है। पथ के साथ एक परिपत्र बाहर निकालना एक ट्यूब देता है। आप एक दीर्घवृत्त देने के लिए क्रॉस-सेक्शन की रेडियों को अलग-अलग कर सकते हैं, और थोड़ा अधिक काम के साथ रिबन को परिभाषित कर सकते हैं।
समस्या सही मानदंड खोजने की है, ताकि रिबन को अल्फा हेलिक्स के साथ जोड़ दिया जाए। मैंने विभिन्न चीजों की कोशिश की, फिर छोड़ दिया, Raster3D कार्यान्वयन को देखा, इसे उपयोग करने की अनुमति प्राप्त की, और कहा कि VMD में जोड़ा गया। यह पिछले वेक्टर मानदंड और सी-अल्फा ट्रेस द्वारा परिभाषित वर्तमान मानदंड है। मुझे इस बात पर ध्यान देना होगा कि यह फिर से कैसे काम करता है। दिलचस्प बात यह है कि रैस्टर 3 डी के लेखक ईथन मेरिट ने बताया कि उन्हें एफआरडीओ से वह बिट कोड मिला है, इसलिए इसका एक लंबा इतिहास है।
वीएमडी में अब "न्यूब्रिक्स" है, जिसे मेरे समय के बाद लागू किया गया था। मुझे नहीं पता कि यह कैसे काम करता है।
एक अल्फा हेलिक्स करने का सबसे आसान तरीका पहली से आखिरी अवशेषों तक एक रेखा खींचना है; रेखा के साथ एक वृत्त निकालें और आपके पास एक सिलेंडर है। आप हेलिक्स के लिए एक रैखिक सर्वश्रेष्ठ-फिट भी कर सकते हैं, लेकिन मुझे लगता है कि छोटे हेलिकॉप्टर के लिए समस्याएं पैदा हुईं। ऐसा करने के लिए अधिक चालाक तरीके होने की संभावना है, जिसमें काइल जैसे तरीकों का सुझाव दिया गया है, जो नरम झुकता की अनुमति देता है।
बीटा स्ट्रैंड आसान हैं। दो नियंत्रण पथ हैं, प्रत्येक पक्ष के लिए एक। वे स्ट्रैंड पथ और सामान्य को परिभाषित करते हैं। आपको ट्विस्ट के साथ थोड़ा सावधान रहना होगा, ताकि आपके स्ट्रैंड में 290 डिग्री तक ट्विस्ट न हो जब इसे 70 डिग्री पर ट्विस्ट करना चाहिए, लेकिन इसे हैंडल करना मुश्किल नहीं था।
एक कठिन हिस्सा, जिसका आपने उल्लेख नहीं किया है, यह पता लगाने का तरीका है कि अल्फा-हेलिक्स और बीटा-स्ट्रैंड्स कहाँ स्थित हैं। कुछ पीडीबी रिकॉर्ड में यह सब नहीं होता है। मैंने उसके लिए एक 3-पार्टी टूल, स्ट्राइड, का उपयोग किया और उसका उपयोग किया। वारेन ने अपना खुद का एल्गोरिदम लागू किया। रोजर सायले ने Raster3D के लिए DSSP का अपना संस्करण लागू किया।