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 | このブログの読者になる | 更新情報をチェックする

広告


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

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

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