2006年07月13日

CDKで塩・溶媒分子の除去

mol形式には一つの分子だけでなく下図のように2つ以上の分子(塩・溶媒分子など)が含まれているケースがよくあります。これはこれでいいのですが、ドッキングや物性計算を行う場合、塩・溶媒分子などは除去したいことがあります。

remove.png

先日、分子のfragmentationで利用したConnectivityCheckerクラスを用いれば、上記内容を実装できます。ただし、今回は、“mol形式に含まれる最も大きな分子を残して、あとは除去”というシンプルな手段で代替したいと思います。

fragmentationの時と同様にpartitionIntoMolecules(Molecule mol)メソッドを使って分割を行います。

 SetOfMolecules result = ConnectivityChecker.
  partitionIntoMolecules(mol);
 Molecule mols[] = result.getMolecules();


次に、Mwの方が適切かもしれませんが、もっとも多く原子を有している分子を検索します。

 int max_size=mols[0].getAtomCount();
 int max_mol=0;
 for(int i=1;i<mols.length;i++){
  if(max_size < mols[i].getAtomCount()){
    max_size = mols[i].getAtomCount();
    max_mol = i;
  }
 }

最後に、検索された分子のみを出力します。
 try {
  mw.writeMolecule(mols[max_mol]);
 } catch (Exception e1) {
 e1.printStackTrace();
 }

単純ですが、少し手を加えれば実際に利用できると思います。


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


posted by わばのり at 07:52| Comment(0) | TrackBack(0) | CDK | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック