はじめに
mordredで計算エラーとなるパターンをそろそろ整理しようと思う。
環境
- python 3.6
- morded 1.1.2
調査方法
MoleculeNetで使われているESOLのデータ(https://s3-us-west-1.amazonaws.com/deepchem.io/datasets/molnet_publish/ESOL.zip) の全1128件に対しmordredの記述子計算を行い、例外が発生した場合の全てのエラーメッセージを列挙する。またそのエラーが発生する代表的な記述子、化合物を列挙し、原因を考察する。なお、3次元記述子も計算対象にしたが、化合物の3次元立ち上げは面倒臭かったので実施しなかった。
結果
以下、エラーメッセージ毎に結果を記載する。
なお、mordredの記述子一覧は、https://mordred-descriptor.github.io/documentation/master/descriptors.html を参照。
1. divide by zero encountered in log
発生する記述子例
VR3_A, VR3_D, VR3_Dt 等多数
発生理由の考察
原子が1つしかないとか、水素を除く結合が1つもない等のイレギュラー化合物のため、0にlogを適用しようとしたということではないだろうか。
発生する化合物例
以下はVR3_Dzmで発生した化合物の例
smiles | strucure |
---|---|
C | ![]() |
2. float division by zero
発生する記述子例
- MDEC, MDEN, MDEO, Kier, AXpで始まるもの等多数
発生理由の考察
発生理由、発生条件は良くわからないが、0除算が発生したためだろう。
発生する化合物例
以下AXp-2dでエラーとなった化合物の例
smiles | strucure |
---|---|
CO | ![]() |
3. invalid value encountered in double_scalars
発生する記述子例
- AAT, GATS, MATSで始まるもの等多数。
発生理由の考察
これもよくわからないが桁あふれ等のためdouble型で表現できなくなったとか?
発生する化合物例
以下は、MATS8cでエラーとなった化合物の例である。
smiles | strucure |
---|---|
c1ccsc1 | ![]() |
4.max() arg is an empty sequence
発生する記述子例
- MAXから始まる多数の記述子
発生理由の考察
おそらくある原子タイプの最大値を計算しようとしたところ、その原子タイプ自体が含まれてなかったため最大が計算できなかったということであろう。
発生する化合物例
以下はMAXsNH2でエラーとなる化合物の例である。
smiles | strucure |
---|---|
N#CC(OC1OC(COC2OC(CO)C(O)C(O)C2O)C(O)C(O)C1O)c1ccccc1 | ![]() |
5. min() arg is an empty sequence
発生する記述子例
- MINから始まる多数の記述子
発生理由の考察、発生する化合物例
maxの場合と同様と思われるため省略
6. missing 3D coordinate
発生する記述子例
- DPSA1等、三次元記述子
発生理由の考察
単に三次元座標のないmolに対して三次元座標が必要な記述子を適用しようとした場合に発生すると思われる。
7. missing intrinsic state for ['C']
発生する記述子例
- AATS, GATS, MATS, BCUTs等で始まる多数の記述子等
発生理由の考察
これも良くわからないが、結合がないため、何かの計算ができない?
発生する化合物例
以下はMATS3sでエラーとなる化合物の例である。
smiles | strucure |
---|---|
C | ![]() |
8. single atom
発生する記述子例
- AETA_eta_B, AETA_eta_BR_C, ETA_eta_B, ETA_eta_BR
発生理由の考察
これも良くわからないが、原子が1つしかないため、計算ができないということだろう。
発生する化合物例
以下はAETAでエラーとなる化合物の例である。
smiles | strucure |
---|---|
C | ![]() |
9. some properties less then or equal to 0
発生する記述子例
- AXp-0d, Xp-0d
発生理由の考察
これも良くわからないが、原子が1つしかないため、計算ができないということだろう(このパターンが多いなあ)
発生する化合物例
以下はAXp-0dでエラーとなる化合物の例である。
smiles | strucure |
---|---|
C | ![]() |
10. there are no sp3 and sp2 carbons_HybRatio
発生する記述子例
- HybRatio
発生理由の考察
計算に必要となるsp3, sp2タイプの構造が含まれていなかったということだろう。
発生する化合物例
以下、HybRatioでエラーとなる化合物の例である。絵が変(笑)
smiles | strucure |
---|---|
C#C | ![]() |
11. unknown atom type
発生する記述子例
- Vabc
発生する化合物例
smiles | strucure |
---|---|
CCCCCCCI | ![]() |
発生理由の考察
これは簡単。対応していない原子が含まれていたということだろう。
おわりに
途中から同じパターンの連続となったので、もっとうまくまとめれそうだが、時間がかかったのでこの辺で終了する。
とは言え、1度洗い出しておきたかったので、胸のつかえがとれ少しすっきりした。
Comments