問題:球のリストが与えられたとき、球で完全に囲まれているすべての空きスペースを見つけます。
詳細:これは私が取り組んでいる問題で、タンパク質にある空洞を特定しようとしています。タンパク質を構成する原子のリスト ((x,y,z) 座標と半径) が与えられます。次に、アルゴリズムを実行して、他の球体と衝突することなく (指定された半径の) プローブを配置できるかどうかを確認することで、タンパク質の境界内にあるすべての空のスペースを見つけます。空きスペースには、ボイド スペースとキャビティの 2 種類があります。空隙は、タンパク質につながるか、またはタンパク質の外側にある空間です。空洞は、タンパク質原子によって完全に囲まれた空の空間です。これは、私たちが扱っているサンプル「タンパク質」の画像です。
こちらで立体的に見ることができます。
タンパク質の中心近くに空洞があります。タンパク質を通過するトンネルは、原子によって完全に囲まれていないため、ボイド スペースと見なされます。
例: 26 個のアトムのリストが与えられた場合、これらのアトムは 3 次元グリッドで (0,0,0) から (1,1,1) まで等間隔に配置されます。各原子の半径は 0.25 で、任意の軸の 0、0.5、または 1 に配置されます。ポイント (0.5, 0.5, 0.5) にはアトムはありません。これらの原子を 3D で描くと、中心が欠けた立方体のような形になります。キャビティは、半径 0.25 の (0.5,0.5,0.5) に指定されます。この空洞は四方をタンパク質に囲まれていると考えられます。
画像例:
上記は立方体とタンパク質の 2D 表現に過ぎないことに注意してください。それは実際には3Dです。
はるかに大きくて不規則な形状の原子グループの空隙と空洞をどのように決定するのでしょうか?
すべての方向をチェックしてグラフの最大境界と最小境界に到達できるかどうかを確認する再帰アルゴリズムを実装することを考えていましたが、これが正しい方法であるかどうかはわかりません。
おまけ:タンパク質の外側に到達するための非常に小さな「経路」があるため、例の空洞が実際には空隙であると言う別のアルゴリズムはありますか? 空洞が存在するには、原子によって完全に囲まれている必要があります。タンパク質の外側へのパス (任意の方向、必ずしも直線ではない) を持つ空隙は、空洞とは見なされません。