InChiKeyで出力したい

InChiKeyはInChiを固定長の文字列(25文字)で表現したもので、化合物表現ではなく単なるハッシュ値が欲しい時に便利です。特に、化合物の大きさによらず固定長の文字列となるので見た目にもよろしいです。

openbabelモジュールを利用する場合には'K'オプションを与えることでInChiではなくInChiKeyを出力するようになります。キラリティを決められない場合にwarningが出るのでそれを抑止するためにwオプションも与えています。

import openbabel as ob 
mol = ob.OBMol()       
obc = ob.OBConversion()

obc.SetInAndOutFormats('smi','inchi')
obc.AddOption('w',ob.OBConversion.OUTOPTIONS)
obc.AddOption('K',ob.OBConversion.OUTOPTIONS)

obc.ReadString(mol, 'CCC(O)Cl')
print obc.WriteString(mol,True)