回答:
一部のアルゴリズムは、さまざまなパッケージのソースコードから入手できます。PyMolもその1つであり、VMDのソースにもアクセスできます。
1990年代にVMDのリボンアルゴリズムを実装しました。最初のステップは構造決定です-アミノ酸はどこにありますか?チェーンに接続されていますか?C-アルファ原子はどこにありますか?
次に、カイルが言ったように、スプラインです。VMDはCatmull–Romスプラインを使用し、Cアルファを制御点として使用します。これは3次スプラインであり、スプラインはCアルファを通過します。数学を計算すると、1つの自由なパラメーターがあります。これは、コントロールポイントの周りのスプラインの硬さに対応します。審美的に楽しい値が見つかるまで、いくつかの値を試しました。
また、Cアルファを十分に持たない、最後の処理方法についても注意が必要です。他のポイントを取得するために外挿しました。
それはパスを提供します。パスに沿った円形の押し出しにより、チューブが作成されます。断面半径を変化させて楕円を作成し、もう少し手間をかけてリボンを定義できます。
問題は、リボンがアルファヘリックスに揃えられるように、正しいノルムを見つけることです。さまざまなことを試してみましたが、あきらめ、Raster3Dの実装を見て、それを使用する許可を得て、それをVMDに追加しました。これは、前のベクトルノルムとCアルファトレースによって定義された現在のノルムの累積和です。それがどのように再び機能するかについては、ソースを見る必要があります。興味深いことに、Raster3Dの作者であるEthan Merrittは、FRODOからそのコードを少し受け取ったので、長い歴史があると指摘しました。
現在、VMDには「NewRibbons」があり、これは私の時間の後に実装されました。どのように機能するのかわかりません。
アルファヘリックスを行う最も簡単な方法は、最初の残基から最後の残基まで線を引くことです。線に沿って円を押し出すと、円柱ができます。らせんに線形の最適化を行うこともできますが、短いらせんでは問題が発生したと思います。カイルが提案したようにソフトベンドを可能にする方法を含む、それを行うためのより賢い方法がありそうです。
ベータストランドは簡単です。各側に1つずつ、2つの制御パスがあります。これらは、ストランドパスと法線を定義します。撚りに少し注意する必要があります。そのため、撚り線を70度ねじるときに290度ねじらないようにしますが、それは難しくありませんでした。
あなたが言及しなかった難しい部分は、アルファヘリックスとベータストランドがどこにあるかを検出する方法です。一部のPDBレコードにはそれが含まれていますが、すべてではありません。そのために、サードパーティのツールSTRIDEを使用しました。ウォーレンは独自のアルゴリズムを実装しました。Roger Sayleは、Raster3D用にDSSPの独自バージョンを実装しました。
私はそれに刺します。
タンパク質漫画(リボンとも呼ばれる)表現は、3種類のタンパク質二次構造に対応する3つの部分で構成されています。
リボンダイアグラムのウィキペディアのページには、タンパク質構造を表示するためのこのタイプの視覚化の起源に関する追加情報があります。