基本的には、ランダムに配座を発生させ、最安定な配座を探すというランダム探索法を採用しています。
Step 1. 初期配座の入力
↓
Step 2. torsion角をランダムに設定し、新しい配座の生成。
↓
Step 3. Energy Minimization
↓
Step 4. 前に発生させた配座と異なっていれば保持する。
↓
Step 5. 終了判定
終了するまでは、Step2からStep5を繰り返します。
ここで、Step2はobrotateを、Step3はobenergyとobminimizeを、そしてStep4はobfitを参考にすることができます。簡単ですので、興味のある方は、作ってみてください。
例としてペンタンを使ってテストしました。
実用レベルで使うには、環構造を考慮したり、ヒューリスティックなアルゴリズムを採用したりとまだまだ改良する部分は多いですが、全くのゼロからobconfoptに相当するプログラムを書くのは、相当大変ですので、OpenBablの便利さを再認識しました。