2006年07月11日

CDKで分子のfragmentation その2

前回は、削除するbondを手動で設定しました。今回は、削除の候補となるbondを“Ringに含まれない単結合”と定義して、これを列挙する方法をメモしたいと思います。

まず、SSSRFinderクラスを用いて、Smallest Set of Smallest Rings (SSSR)の検出を行います。

 SSSRFinder sssr = new SSSRFinder(mol);
 RingSet rs = sssr.findSSSR();

次にMoleculeクラスのgetBondAt(int number)メソッドを用いて、bondを列挙し、各bondはRingSetクラスのgetRings(Bond bond)によりSSSRに含まれていないかチェックを行います。bondがSSSRに含まれていなければ、このメソッドは空のVectorを返しますので、これを利用します。単結合の判定はBondクラスのgetOrder()メソッドを用いて行うことができます。

 for(int i=0;i<mol.getBondCount();i++){
  Bond b = mol.getBondAt(i);
  Vector v = rs.getRings(b);
  if(v.size()==0&&b.getOrder()==1.0){
  System.out.println("bond_"+i);
  }
 }

もっとスマートな方法があるかもしれませんが、私は上記のような方法で“Ringに含まれない単結合”の判定を行っています。


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


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

広告


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

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

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