Python Developers Campは近場開催だ

Python Developers Camp 2006 夏 参加者募集

9月末に静岡県富士市でPythonに特化した合宿を計画しています。プログラムもPython初学者向けの内容から、最近注目のLLフレームワークを題材としたスプリントなど、非常に多彩なものがそろっておりますので、Pythonにご興味のある方はふるってご参加ください。

Python初学者ってどのくらい参加するんだろうか。うーん、結構気になる。

みんなのpython読んだ

メタモ前に時間が空いていたので、みんなのpython全部読んでしまった。

ProductName みんなのPython
柴田 淳
ソフトバンククリエイティブ / ?円 ( 2006-08-22 )


一通り読んで、doctestって便利な仕組みだとプチ感動。あと、リスト内包表記が使えるので便利そうだけど、表記の仕方がhaskellのほうが(見た目)わかりやすいかなってとこ。

Rとかbiopythonみたいな科学技術計算関連でちょっと使ってみようと思っているが、その前にTurboGearsDjangoをさわってみる。

みんなのpythonが届いた

Higher-order Perlの4章を読み終わった。iteratorの章だが100ページ近くあってなかなかの読み応えでちょっと読み疲れた。

ProductName Higher-Order Perl: Transforming Programs with Programs
Mark Jason Dominus
Morgan Kaufmann / 5574円 ( 2005-03-28 )


さぁ、5章だと思ったら、みんなのpythonが届いた。

ProductName みんなのPython
柴田 淳
ソフトバンククリエイティブ / ?円 ( 2006-08-22 )


うーん読む暇をみつけないといけないが、haskellのあとだなぁ。

planet

ずっと以前からPlanet Plaggerって便利だナァと思っていたので、planetをFC5に入れてみた。

http://www.planetplanet.org/

FC5だとextrasにあるんで

yum install planet

でインストールが完了するヨ、お手軽すぎ。

$rpm -ql planet
/usr/share/doc/planet-1.0
/usr/share/doc/planet-1.0/AUTHORS
/usr/share/doc/planet-1.0/INSTALL
/usr/share/doc/planet-1.0/LICENCE
/usr/share/doc/planet-1.0/NEWS
/usr/share/doc/planet-1.0/README
/usr/share/doc/planet-1.0/THANKS
/usr/share/doc/planet-1.0/examples

と/usr/share/doc/planet-1.0/examplesにサンプルが入ってるのでコピーしてきてconfig.iniをいじってcronかなんかで定期的に実行させればいい。

静的なファイルができるので、負荷対策とかあんま考えなくていいのが素敵。

planet chemoinformatics とかで使う予定。

PyQuanteをWindowsでも動かしたいと思ったが

PyQuanteはCのコード入っているから、Windowsだとインストかませないだろうナァとわかっているが駄目もとでやってみたら駄目だった。

running install running build running build_py running build_ext error: The .NET Framework SDK needs to be installed before building extensions f or Python.

調べてみると、MSもコンパイラ配布しているようだ(やるではないか)。ということで、.NET Framework SDKをダウンロードしてきてインストール。100M超えているので結構だるかった。

で、インストールが終了したら、環境変数の設定のために以下のコマンドたたく。

C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat

再度、python setup.pu install

running install running build running build_py running build_ext building 'PyQuante.cints' extension error: Python was built with version 7.1 of Visual Studio, and extensions need t o be built with the same version of the compiler, but it isn't installed.

あれ、コンパイラのバージョンが違うと出てくる。ここのとおりにパッチ当ててみるか

Windowsにpatchコマンドあるのか?

あるのね、、、

無事にパッチを当てたら、3度目のpython setup.py installだ!

running install running build running build_py running build_ext building 'PyQuante.cints' extension C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe /c /nologo /Ox /MD /W3 /GX /DNDEBUG -IC:\Python24\include -IC:\Python24\PC /TcSrc/cints.c /Fob uild\temp.win32-2.4\Release\Src/cints.obj cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できま せん。 cints.c c:\Python24\include\pyconfig.h(130) : fatal error C1083: インクルード ファイルを 開けません。'basetsd.h': No such file or directory error: command '"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.e xe"' failed with exit status 2

もう少頑張ればいけるのか、そもそも駄目なのかわからなくて、はまる予感がする。というわけで、これ以上突っ込まないことに。おとなしくlinuxに入れたのを使って遊ぼう。

PyQuante

pythonの量子化学計算用モジュールで遊んでみた。最初は、量子化学計算みたいなコストのかかる計算をスクリプト言語で書いてどうすんの?みたいに思ったが、速くしなきゃならん部分だけCで書いてあとはPythonでもいいのかも?いや逆にトータルの生産性はこっちのほうがいいのかもしれないゾと思ったり。

あとは、モパクーガウシーゲムスーもそもそもインプットからしてややこしいから、よりシンプルな記述で計算できるとベター。だからOOPな感じで書けるのは有用かもん。

GUIでインプットのややこしさをラップすればいいじゃん的ナ発想もあるんだろうが、複雑なオプション与えたいときに、GUIの操作ほうが余計複雑になっちゃったりとか、結局自分でインプットいじらなあかんていうことが良くあるしな。なにより、バッチとか、スクリプトに組み込むときメンドイ。

特にUserGuideの例にあるように、同じ分子をアルゴリズム変えたり、基底関数変えて計算したいとかいうときには、スクリプトのほうが便利だ。

ユーザーガイドには水素分子の計算が例として挙げられているが、ちょっとだけいじった、水分子のHF計算をのせておく

from PyQuante.hartree_fock import rhf from PyQuante.Molecule import Molecule h2o = Molecule('H2O', atomlist = [(8,(0,0,0)), (1,(0.959,0,0)), (1,(-.230,0.930,0))], units = 'Angstrom') en,orbe,orbs = rhf(h2o,verbose=True)

モジュールのインポートをしたら、moleculeオブジェクトで水分子を作ったら、rhfでh2oを計算。これだけ。

お手軽!!

$ python test.py Nbf = 25 Nclosed = 5 Optimization of HF orbitals 0 -68.2710764842 1 -71.4107153837 2 -73.8915175997 3 -75.0373719156 4 -75.6459826198 5 -75.8850728221 6 -75.9751560983 7 -76.0064588121 8 -76.0173702077 9 -76.0210974045 10 -76.0223774136 11 -76.0228145355 12 -76.0229641837 13 -76.023015328

結果はこんな感じで。verbose=Trueのオプションつけたからずらずら出てくるが、普通はエネルギーを出力させるくらいでいいでしょう。

計算時間は、C3マシンで実行したので3分程度かかったが、今のスペックならほとんど一瞬で終わるのではないかな。

Chemruby,PerlMol,CDKなどで、ある程度まともな3次元構造立ち上げられるようになったら、

構造立ち上げ -> MMで構造最適化 -> 半経験的MO構造最適化 -> いい基底関数とMP2レベルでシングルポイントの電子状態計算

という、トラディッショナルな構造最適ルーチンをスクリプトで実行したくなるだろうなぁ。

Corinaレベルの構造立ち上げライブラリでオープンなものってあるのだろうか?職場だったら、corina用モジュール書けばいいのだろうが。MMはTinker使えるような気がするが使ったことないからわからん。mopacもラッパー書けばいいじゃんって言われそうな気もするが。

Jythonどうなんだろうか?

最近PyMOLいじったり、RSOAPで遊んだりと、Python触ることが多いので、Pythonちゃんと勉強しようかナァと思っていた。

そんな折、コンピューター強い企業のヒトとpythonは日本語の書籍でイイのがないんだよね的ナ話をしてたら、ちょっとしたものを開発するにはJythonがエエヨ的な情報を教えてもらったので、ちょっといじってみるかなと思った。

日本だとrubyが結構強くてpythonはパッとしないんだけど、海外のソフトに関して言えば、実は結構python多くて(あたり前だけどrubyはナイ)製薬系だったら覚えておいて損はないのかなと思ったり。webサービス触るんだったらはperlがいいけどな。

Jythonインストール

Jythonのサイトからjython-21.classをダウンロード

java -cp . jython-21

でGUIのインストーラーが起動するので、普通にインストール。いれてはみたものの、いまいち使い方がわからないのは、そもそもpythonの知識がないからか。

© kzfm 2003-2021