01092006 Python
Python Developers Camp 2006 夏 参加者募集
9月末に静岡県富士市でPythonに特化した合宿を計画しています。プログラムもPython初学者向けの内容から、最近注目のLLフレームワークを題材としたスプリントなど、非常に多彩なものがそろっておりますので、Pythonにご興味のある方はふるってご参加ください。
Python初学者ってどのくらい参加するんだろうか。うーん、結構気になる。
01092006 Python
Python Developers Camp 2006 夏 参加者募集
9月末に静岡県富士市でPythonに特化した合宿を計画しています。プログラムもPython初学者向けの内容から、最近注目のLLフレームワークを題材としたスプリントなど、非常に多彩なものがそろっておりますので、Pythonにご興味のある方はふるってご参加ください。
Python初学者ってどのくらい参加するんだろうか。うーん、結構気になる。
27082006 Python
メタモ前に時間が空いていたので、みんなのpython全部読んでしまった。
一通り読んで、doctestって便利な仕組みだとプチ感動。あと、リスト内包表記が使えるので便利そうだけど、表記の仕方がhaskellのほうが(見た目)わかりやすいかなってとこ。
Rとかbiopythonみたいな科学技術計算関連でちょっと使ってみようと思っているが、その前にTurboGearsとDjangoをさわってみる。
Higher-order Perlの4章を読み終わった。iteratorの章だが100ページ近くあってなかなかの読み応えでちょっと読み疲れた。
さぁ、5章だと思ったら、みんなのpythonが届いた。
うーん読む暇をみつけないといけないが、haskellのあとだなぁ。
ずっと以前からPlanet Plaggerって便利だナァと思っていたので、planetをFC5に入れてみた。
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 とかで使う予定。
22012006 Python
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に入れたのを使って遊ぼう。
22012006 Python
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もラッパー書けばいいじゃんって言われそうな気もするが。
最近PyMOLいじったり、RSOAPで遊んだりと、Python触ることが多いので、Pythonちゃんと勉強しようかナァと思っていた。
そんな折、コンピューター強い企業のヒトとpythonは日本語の書籍でイイのがないんだよね的ナ話をしてたら、ちょっとしたものを開発するにはJythonがエエヨ的な情報を教えてもらったので、ちょっといじってみるかなと思った。
日本だとrubyが結構強くてpythonはパッとしないんだけど、海外のソフトに関して言えば、実は結構python多くて(あたり前だけどrubyはナイ)製薬系だったら覚えておいて損はないのかなと思ったり。webサービス触るんだったらはperlがいいけどな。
Jythonのサイトからjython-21.classをダウンロード
java -cp . jython-21
でGUIのインストーラーが起動するので、普通にインストール。いれてはみたものの、いまいち使い方がわからないのは、そもそもpythonの知識がないからか。