cdk-20060714には、新たにorg.openscience.cdk.similarityパッケージが追加されています。この中にあるTanimotoクラスを用いて、2つのFingerprintからTanimoto係数を計算してみます。
Fingerprinter fp = new Fingerprinter();
try {
BitSet fing1 = fp.getFingerprint(mol1);
BitSet fing2 = fp.getFingerprint(mol2);
float dist = Tanimoto.calculate(fing1,fing2);
System.out.println("Tanimoto Coefficient = " + dist);
} catch (Exception e) {
e.printStackTrace();
}
注意が必要なところは、cdk-20050826では、FingerprinterクラスのgetFingerprint(AtomContainer ac)メソッドはstaticであったのに対し、cdk-20060714ではstaticではないところです。Tanimoto係数自体は自分で書いても簡単に実装できますが、今後org.openscience.cdk.similarityパッケージに様々な係数が追加されることを期待しています。
人気ブログランキング(クリックして応援してね)
2006年08月31日
2006年08月30日
EclipseでGroovy
GroovyのEclipse Pluginのインストールメモです。
Eclipse Pluginのインストール:
1. Eclipse(3.2)を起動し、[Help]→[Software Updates]→[Find and Install]
2. Search for new features to installを選択し、Nextボタンを押す。
3. New Remote Siteボタンを押し、新しく開くダイアログに以下の情報を入力し、Finishボタンを押す。
Name : Groovy Site
URL: http://dist.codehaus.org/groovy/distributions/update/
4. Groovy Siteをチェックし、Nextボタンを押す。
5. 後は、ライセンスに関する質問などに答え、進んでください。
実行例:
1. [File]→[New]→[Project]でJava Projectを選択しNextボタンを押す。
2. Project name(ここでは、TestGrPro)を入力しFinishボタンを押す。
3. Package Explorer内のTestGrProを選択し、右クリックする。そして、[New]→[Other]→[Groovy]→[Groovy Class]を選択し、Nextボタンを押す。
4. Name:(ここでは、TestGr)を入力し、Finishボタンを押す。そうするとTestGr.groovyファイルに以下のようなclassの雛形が作成されます(青字は私が追加したもの)。
class TestGr {
static void main(args) {
print "Hello World!"
}
}
5. [Run]→[Run]→[Groovy]を選択し、Newボタンを押す。
6. Main classをSearchし、Runボタンを押す。
Hello World!
と無事実行されました。
人気ブログランキング(クリックして応援してね)
Eclipse Pluginのインストール:
1. Eclipse(3.2)を起動し、[Help]→[Software Updates]→[Find and Install]
2. Search for new features to installを選択し、Nextボタンを押す。
3. New Remote Siteボタンを押し、新しく開くダイアログに以下の情報を入力し、Finishボタンを押す。
Name : Groovy Site
URL: http://dist.codehaus.org/groovy/distributions/update/
4. Groovy Siteをチェックし、Nextボタンを押す。
5. 後は、ライセンスに関する質問などに答え、進んでください。
実行例:
1. [File]→[New]→[Project]でJava Projectを選択しNextボタンを押す。
2. Project name(ここでは、TestGrPro)を入力しFinishボタンを押す。
3. Package Explorer内のTestGrProを選択し、右クリックする。そして、[New]→[Other]→[Groovy]→[Groovy Class]を選択し、Nextボタンを押す。
4. Name:(ここでは、TestGr)を入力し、Finishボタンを押す。そうするとTestGr.groovyファイルに以下のようなclassの雛形が作成されます(青字は私が追加したもの)。
class TestGr {
static void main(args) {
print "Hello World!"
}
}
5. [Run]→[Run]→[Groovy]を選択し、Newボタンを押す。
6. Main classをSearchし、Runボタンを押す。
Hello World!
と無事実行されました。
人気ブログランキング(クリックして応援してね)
2006年08月29日
CDKでSSSR その2
前回、CDKを用いてSSSRの検出を行い、各ringをsdf形式で保存しました。今回は、以下のように結合しているring同士は1つのfragmentとして取り扱い、sdf形式で保存したいと思います。
まずは、SSSRFinderクラスのfindSSSR()メソッドを用いて、SSSRの検出を行います。SSSRはIRingSetとして取得します。ここまでは、前回と同じです。
SSSRFinder sssrf = new SSSRFinder(mol);
IRingSet rs = sssrf.findSSSR();
次にRingPartitionerクラスのpartitionRings(IRingSet ringSet)メソッドを用いて、結合しているring同士を1つのRingSetとし、Vectorで結果を取得します。
Vector rings = RingPartitioner.partitionRings(rs);
最後に、convertToAtomContainer(IRingSet ringSet)メソッドを用いて、RingSetをAtomContainerへと変換し、ファイル出力します。
for(int i=0;i<rings.size();i++){
IRingSet crs = (IRingSet)rings.get(i);
IAtomContainer ac = RingPartitioner.convertToAtomContainer(crs);
try {
mw.write(new Molecule(ac));
} catch (CDKException e) {
e.printStackTrace();
}
}
人気ブログランキング(クリックして応援してね)
まずは、SSSRFinderクラスのfindSSSR()メソッドを用いて、SSSRの検出を行います。SSSRはIRingSetとして取得します。ここまでは、前回と同じです。
SSSRFinder sssrf = new SSSRFinder(mol);
IRingSet rs = sssrf.findSSSR();
次にRingPartitionerクラスのpartitionRings(IRingSet ringSet)メソッドを用いて、結合しているring同士を1つのRingSetとし、Vectorで結果を取得します。
Vector rings = RingPartitioner.partitionRings(rs);
最後に、convertToAtomContainer(IRingSet ringSet)メソッドを用いて、RingSetをAtomContainerへと変換し、ファイル出力します。
for(int i=0;i<rings.size();i++){
IRingSet crs = (IRingSet)rings.get(i);
IAtomContainer ac = RingPartitioner.convertToAtomContainer(crs);
try {
mw.write(new Molecule(ac));
} catch (CDKException e) {
e.printStackTrace();
}
}
人気ブログランキング(クリックして応援してね)
2006年08月28日
GroovyでCDK
Groovyは“Javaのためのスクリプト言語”ともいえるスクリプト言語らしく、文法自体もJavaに類似していることから、Javaユーザであれば、容易にGroovyを利用できると思います。PythonやRubyは使えないけど、スクリプトでCDKを利用したいというJavaユーザの方にお勧めです。
インストール:
@Groovyのダウンロード
Groovyを以下のサイトからダウンロードします。
http://groovy.codehaus.org/Home
今回は、groovy-1.0-jsr-06.zipを取得し、Windows上の適当なフォルダ下に展開します。
A環境変数の設定1
以下の3つの環境変数を適切に設定してください。
JAVA_HOME
GROOVY_HOME
PATH (%GROOVY_HOME%binを追加する)
B環境変数の設定2
環境変数CLASSPATHにcdk-20060714.jarを追加。
これで、インストールは完了です。
例として、先日作成したSSSRのsdf出力プログラムをGroovyで作成してみます。
sssr.groovy:
実行:
> groovy sssr.groovy input.mol output.sdf
ずいぶんプログラムが短くなりました。Javaとほとんど同じ感覚でプログラムできますね。
人気ブログランキング(クリックして応援してね)
インストール:
@Groovyのダウンロード
Groovyを以下のサイトからダウンロードします。
http://groovy.codehaus.org/Home
今回は、groovy-1.0-jsr-06.zipを取得し、Windows上の適当なフォルダ下に展開します。
A環境変数の設定1
以下の3つの環境変数を適切に設定してください。
JAVA_HOME
GROOVY_HOME
PATH (%GROOVY_HOME%binを追加する)
B環境変数の設定2
環境変数CLASSPATHにcdk-20060714.jarを追加。
これで、インストールは完了です。
例として、先日作成したSSSRのsdf出力プログラムをGroovyで作成してみます。
sssr.groovy:
実行:
> groovy sssr.groovy input.mol output.sdf
ずいぶんプログラムが短くなりました。Javaとほとんど同じ感覚でプログラムできますね。
人気ブログランキング(クリックして応援してね)
2006年08月27日
グラフ理論入門
ケムインフォマティクスを学習する上でグラフ理論の理解は重要な項目の一つだと思います。私はソースコード付きの書籍を好んで買うのですが、実際にサンプルプログラムを動かしながら学習する方が理解しやすいからです。
グラフ理論関連の出版物で私の一番のお勧めはC MAGAZINE 2005年2月号です。
書籍としては、「グラフ理論入門 C言語によるプログラムと応用問題」です。
ちなみに、Pythonでは、NetworkXなどのgraph libraryがあります。
それにしても「C MAGAZINE」の休刊は本当に残念です。
人気ブログランキング(クリックして応援してね)
グラフ理論関連の出版物で私の一番のお勧めはC MAGAZINE 2005年2月号です。
書籍としては、「グラフ理論入門 C言語によるプログラムと応用問題」です。
ちなみに、Pythonでは、NetworkXなどのgraph libraryがあります。
それにしても「C MAGAZINE」の休刊は本当に残念です。
人気ブログランキング(クリックして応援してね)
2006年08月26日
JRubyでCDK
CDKのmailing listで知ったのですが、JRubyでCDK及びOctetを用いたソースコードが公開されています。
(CDK)
http://depth-first.com/articles/2006/08/24/scripting-cdk-with-jruby
(Octet)
http://depth-first.com/articles/2006/08/23/scripting-octet-with-jruby
恥ずかしながらJRuby知りませんでした。
CDK利用できるのですね。すばらしい!!
人気ブログランキング(クリックして応援してね)
(CDK)
http://depth-first.com/articles/2006/08/24/scripting-cdk-with-jruby
(Octet)
http://depth-first.com/articles/2006/08/23/scripting-octet-with-jruby
恥ずかしながらJRuby知りませんでした。
CDK利用できるのですね。すばらしい!!
人気ブログランキング(クリックして応援してね)
2006年08月25日
CDKでSSSR
CDKでSmallest Set of Smallest Rings(SSSR)の検出を行い、各ringをsdf形式で保存したいと思います。
まずは、SSSRFinderクラスのfindSSSR()メソッドを用いて、SSSRの検出を行います。SSSRはIRingSetとして取得します。
SSSRFinder sssrf = new SSSRFinder(mol);
IRingSet rs = sssrf.findSSSR();
次に、各ringをIRingSetから取り出す作業を行います。
IRingSetはISetOfAtomContainersのサブインターフェースです。ここでは、ISetOfAtomContainersのメソッドであるgetAtomContainer(int number)とgetAtomContainerCount()を用いて各ringを取り出し、ファイル出力を行っています。
for(int i=0;i<rs.getAtomContainerCount();i++){
IAtomContainer ac = rs.getAtomContainer(i);
try {
mw.write(new Molecule(ac));
} catch (CDKException e) {
e.printStackTrace();
}
}
以下のように各ringに分割されたものがsdf形式で出力できます。
(今回用いたcdkはcdk-20060714です)
人気ブログランキング(クリックして応援してね)
まずは、SSSRFinderクラスのfindSSSR()メソッドを用いて、SSSRの検出を行います。SSSRはIRingSetとして取得します。
SSSRFinder sssrf = new SSSRFinder(mol);
IRingSet rs = sssrf.findSSSR();
次に、各ringをIRingSetから取り出す作業を行います。
IRingSetはISetOfAtomContainersのサブインターフェースです。ここでは、ISetOfAtomContainersのメソッドであるgetAtomContainer(int number)とgetAtomContainerCount()を用いて各ringを取り出し、ファイル出力を行っています。
for(int i=0;i<rs.getAtomContainerCount();i++){
IAtomContainer ac = rs.getAtomContainer(i);
try {
mw.write(new Molecule(ac));
} catch (CDKException e) {
e.printStackTrace();
}
}
以下のように各ringに分割されたものがsdf形式で出力できます。
(今回用いたcdkはcdk-20060714です)
人気ブログランキング(クリックして応援してね)
2006年08月24日
みんなのPython
2006年08月23日
MMTK: Normal Mode Calculation
MMTKを使ってNormal Modeの計算を行ってみます。Energy Minimizationの後、以下の作業で計算できます。
#Normal Modes
modes = NormalModes(universe)
#Print mode
for mode in modes:
print mode
#View
view(modes[6])
ここでは、以下のモジュールのimportが必要となります。
from MMTK.NormalModes import NormalModes
最後のviewで各モードを分子Viewerで視覚化でき、とても便利なのですが、Windows上で実施する場合、いくつか注意点があります。まずは、環境変数PDBVIEWERに分子Viewerの名前を指定します。現在は、アニメーション表示可能なViewerとしてXmolとVmdをサポートしているようです。ここでは、vmdと設定します。そうすると、MMTKは、Tempフォルダ下にvmd script、pdb、dcdの3つのファイルを出力します(Tempフォルダは、環境変数で各自設定されている場所です。通常はLocal Settingsフォルダ下だと思います)。
うまく動作すれば、vmdが自動起動され、vmd scriptを読み込み、アニメーション処理となるのでしょうが、私の環境?では、vmdが一瞬起動し、終了してしまいます。vmd scriptを見るとファイルの指定が以下のようになっていました。
c:\temp\tmpbjpved
このファイル指定を以下のように変更します。
c:\\temp\\tmpbjpved
変更後、vmdを立ち上げ、プロンプトからscriptを実行すれば、アニメーションが無事、表示されます。
人気ブログランキング(クリックして応援してね)
#Normal Modes
modes = NormalModes(universe)
#Print mode
for mode in modes:
print mode
#View
view(modes[6])
ここでは、以下のモジュールのimportが必要となります。
from MMTK.NormalModes import NormalModes
最後のviewで各モードを分子Viewerで視覚化でき、とても便利なのですが、Windows上で実施する場合、いくつか注意点があります。まずは、環境変数PDBVIEWERに分子Viewerの名前を指定します。現在は、アニメーション表示可能なViewerとしてXmolとVmdをサポートしているようです。ここでは、vmdと設定します。そうすると、MMTKは、Tempフォルダ下にvmd script、pdb、dcdの3つのファイルを出力します(Tempフォルダは、環境変数で各自設定されている場所です。通常はLocal Settingsフォルダ下だと思います)。
うまく動作すれば、vmdが自動起動され、vmd scriptを読み込み、アニメーション処理となるのでしょうが、私の環境?では、vmdが一瞬起動し、終了してしまいます。vmd scriptを見るとファイルの指定が以下のようになっていました。
c:\temp\tmpbjpved
このファイル指定を以下のように変更します。
c:\\temp\\tmpbjpved
変更後、vmdを立ち上げ、プロンプトからscriptを実行すれば、アニメーションが無事、表示されます。
人気ブログランキング(クリックして応援してね)