OpenBabel:ユーザー定義の原子電荷情報を付与

2021年5月28日金曜日

【alvaDesc】 【Q-Chem】 【Spartan】 【オープンソース】

t f B! P L

 AmberToolのantechamberを用いるとGaussianの出力ファイルから、RESP電荷情報をもつmol2ファイルを生成することができます。しかし、力場パラメータのない金属等を含む場合、うまく変換できないと思います(新バージョン等で状況変わっていたらすみません)。

そんな時は、OpenBabelの--partialchargeオプションで、ユーザ定義の原子電荷情報を直接指定することができます。


以下は、Q-Chemの出力ファイルから原子電荷情報の部分を抜粋したものです。

 

           Ground-State Mulliken Net Atomic Charges

     Atom                 Charge (a.u.)
  ----------------------------------------
      1 Ni                    1.253182
      2 C                    -0.265257
      3 C                    -0.264842
      4 C                    -0.265452
      5 C                    -0.265213
      6 O                    -0.047971
      7 O                    -0.048197
      8 O                    -0.048100
      9 O                    -0.048149
  ----------------------------------------
  Sum of atomic charges =     0.000000

 

これを、次のような"原子名 原子電荷"の行から構成されるテキストファイルとして保存します(この例では、charge.txt)。



Ni 1.253182
C -0.265257
C -0.264842
C -0.265452
C -0.265213
O -0.047971
O -0.048197
O -0.048100
O -0.048149

 

 3D座標は、SDFファイルから読み込むこととし、次のコマンドを実行すると、


obabel -isdf input.sdf -omol2 -O output.mol2 --partialcharge fromfile:charge.txt

 

以下のように、電荷情報を含むmol2ファイルが生成されます。

 

@<TRIPOS>MOLECULE
NICO4
 9 8 0 0 0
SMALL
USER_CHARGES

@<TRIPOS>ATOM
      1 NI          0.0007    0.0003    0.0003 Ni      1  UNL1        1.2532
      2 C           0.0007    0.0000    1.7836 C.1     1  UNL1       -0.2653
      3 C          -1.6809    0.0001   -0.5941 C.1     1  UNL1       -0.2653
      4 C           0.8407    1.4563   -0.5946 C.1     1  UNL1       -0.2653
      5 C           0.8406   -1.4560   -0.5942 C.1     1  UNL1       -0.2653
      6 O          -2.7642   -0.0001   -0.9781 O.3     1  UNL1       -0.0480
      7 O           1.3809    2.3953   -0.9784 O.3     1  UNL1       -0.0480
      8 O           0.0006   -0.0005    2.9329 O.3     1  UNL1       -0.0480
      9 O           1.3808   -2.3953   -0.9774 O.3     1  UNL1       -0.0480
@<TRIPOS>BOND
     1     1     2    1
     2     1     3    1
     3     1     4    1
     4     1     5    1
     5     3     6    3
     6     4     7    3
     7     2     8    3
     8     5     9    3

ユーザ定義ではなく、gasteigerなど他の計算方法を用いる場合は、次のように実行します。
 

obabel -isdf input.sdf -omol2 -O output.mol2 --partialcharge gasteiger

obabel -isdf input.sdf -omol2 -O output.mol2 --partialcharge qeq

 

詳しくは、

obabel -L charges

を実行し、その出力内容をご確認ください。また、次のドキュメントも参考になると思います。


obabel and babel - Convert, Filter and Manipulate Chemical Data
https://openbabel.org/docs/dev/Command-line_tools/babel.html


なお、分子モデリングソフトのSpartanでは、計算結果をmol2形式で保存しようとすると、電荷タイプを指定するダイアログが表示され、部分電荷情報を備えたmol2ファイルを簡単に作成することができます。


 

 

また、OpenBabelがサポートしているGaussianバージョンであれば、単に変換するだけで、Mulliken, Hirshfeld, ESP電荷が自動アサインされる(ref. gaussformat.cpp)。


実行例:
babel -ig09 h2o.out -omol2 h2o.mol2

h2o.mol2:
@<TRIPOS>MOLECULE
h2o.out
 3 2 0 0 0
SMALL
MULLIKEN_CHARGES
****
Gaussian 09 # HF/STO-3G Opt Charge
@<TRIPOS>ATOM
      1 O           0.0000    0.1272    0.0000 O.3     1  HOH1       -0.3306
      2 H           0.7579   -0.5087    0.0000 H       0  HOH0        0.1653
      3 H          -0.7579   -0.5087    0.0000 H       0  HOH0        0.1653
@<TRIPOS>BOND
     1     1     2    1
     2     1     3    1
 

 

このようにして作成したMOL2ファイルは、分子記述子・FP計算ソフトalvaDescで読み込むことができ、3D記述子や電荷関連の記述子計算に利用することができます。 


code-prettify

このブログを検索

ページビューの合計

人気の投稿

QooQ