12012010 chemoinformatics Python pluto
そういえば多数の化合物からなるsdfからExactMassってどうやって計算したらいいのかね?と尋ねられて、
うーんそれはね、perlでChemistry::OpenBabelモジュールを使ってだなぁ、ごにょごにょとやればいいんだよ、ほら楽勝だろ。
とか言ってみたんだけど、別にpythonでもいいので書いてみた。
import openbabel as ob
obconv = ob.OBConversion()
obconv.SetInFormat("sdf");
obmol = ob.OBMol()
notatend = obconv.ReadFile(obmol, "test.sdf");
while notatend:
print obmol.GetExactMass()
obmol = ob.OBMol()
notatend = obconv.Read(obmol)
たぶんPlutoだったら
from pluto import *
for mol in Molecule.readfile("test.sdf"):
print mol.ExactMass
と書けるようになるはず。
でも今夜はOBChemTsfmとかいうクラスがねーとかいう謎の深みにはまりかけ、SWIGやらC++にやられっぱなしでそれどころじゃないのであった。