2006年08月14日

CDKでMDL形式の読み込み その2

SDF形式では、'M END'と'$$$$'の間に様々な情報が付加されていることがあります。例えば以下のような情報が挙げられます。

....
M END
> <CAS_Number>
XXXXXX

> <Catolog_Number>
XXXXXX

> <logP>
XXX
$$$$

CDKではこれら付加情報も分子情報と共に読み込んでいますので、次のような方法で具体的な値を得ることができます。

  fr = new FileReader(new File(filename));
  imr = new IteratingMDLReader(fr,
     DefaultChemObjectBuilder.getInstance());
  while (imr.hasNext()){
   mol = (IMolecule)imr.next();
   String mol_id = (String)mol.getProperty("CAS_Number");
   String cat_num = (String)mol.getProperty("Catalog_Number");
   String logP = (String)mol.getProperty("logP");
   System.out.println(mol_id+" "+cat_num+" "+logP);
  }

内部的にはHashtableに'CAS_Number'はキー、'XXXXXX'は値として格納されています。getProperties()メソッドを用いれてば、一度に全てのキーと値の情報を取得することができ便利です。

 Hashtable ht = (Hashtable)mol.getProperties();
 System.out.println(ht);


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


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

広告


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

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

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