2006年07月10日

CDKで分子のfragmentation

CDKを用いたシンプルな分子のfragmentation法についてメモしたいと思います。分子のfragmentationといえばRECAP(Retrosynthetic Combinatorial Analysis Procedure)法が有名なアルゴリズムですね。

RECAP:J Chem Inf Comput Sci. 1998;38(3):511-522

さて、ここでは、単純に分子中の任意の1つのbondを削除し、生成された2つの分子を取得したいと思います。
任意のbondとして下図左のbond(7-8)を削除したいと思います。Moleculeクラス(AtomContainerクラス)のremoveBond(Atom atom1, Atom atom2)メソッドを用いて削除しますが、CDKでは、原子の番号は0からn-1になりますので、以下のように記述します。

 mol.removeBond(mol.getAtomAt(6),mol.getAtomAt(7));

次に、ConnectivityCheckerクラスのpartitionIntoMolecules(AtomContainer atomContainer)メソッドを用いて共有結合で結ばれている原子の集合を分子とし、分割を行います。

 SetOfMolecules result = ConnectivityChecker.
  partitionIntoMolecules(mol);

最後に、SetOfMoleculeクラスのgetMolecules()メソッドによりfragmentを取得します。

 Molecule mols[] = result.getMolecules();

あとは、以下のように単純にファイル出力することにより、fragmentをsdf形式等で取得できます。

 for(int i=0;i<mols.length;i++){
  Molecule frag = mols[i];
  try {
   mw.writeMolecule(frag);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

シンプルですが、便利な機能だと思います。

frag.png


banner_02.gif
人気ブログランキング(クリックして応援してね)


posted by わばのり at 08:14| Comment(0) | TrackBack(0) | CDK | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。