Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@kimisyo

mordredで計算エラーとなるパターンを調べる

More than 1 year has passed since last update.

はじめに

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 divide by zero encountered in log_VR3_Dzm_C.png

2. float division by zero

発生する記述子例

  • MDEC, MDEN, MDEO, Kier, AXpで始まるもの等多数

発生理由の考察

発生理由、発生条件は良くわからないが、0除算が発生したためだろう。

発生する化合物例

以下AXp-2dでエラーとなった化合物の例

smiles strucure
CO float division by zero_AXp-2d_CO.png

3. invalid value encountered in double_scalars

発生する記述子例

  • AAT, GATS, MATSで始まるもの等多数。

発生理由の考察

これもよくわからないが桁あふれ等のためdouble型で表現できなくなったとか?

発生する化合物例

以下は、MATS8cでエラーとなった化合物の例である。

smiles strucure
c1ccsc1 invalid value encountered in double_scalars_MATS8c_c1ccsc1.png

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 max() arg is an empty sequence_MAXsNH2_N#CC(OC1OC(COC2OC(CO)C(O)C(O)C2O)C(O)C(O)C1O)c1ccccc1.png

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 missing intrinsic state for ['C']_AATS0s_C.png

8. single atom

発生する記述子例

  • AETA_eta_B, AETA_eta_BR_C, ETA_eta_B, ETA_eta_BR

発生理由の考察

これも良くわからないが、原子が1つしかないため、計算ができないということだろう。

発生する化合物例

以下はAETAでエラーとなる化合物の例である。

smiles strucure
C missing intrinsic state for ['C']_AATS0s_C.png

9. some properties less then or equal to 0

発生する記述子例

  • AXp-0d, Xp-0d

発生理由の考察

これも良くわからないが、原子が1つしかないため、計算ができないということだろう(このパターンが多いなあ)

発生する化合物例

以下はAXp-0dでエラーとなる化合物の例である。

smiles strucure
C missing intrinsic state for ['C']_AATS0s_C.png

10. there are no sp3 and sp2 carbons_HybRatio

発生する記述子例

  • HybRatio

発生理由の考察

計算に必要となるsp3, sp2タイプの構造が含まれていなかったということだろう。

発生する化合物例

以下、HybRatioでエラーとなる化合物の例である。絵が変(笑)

smiles strucure
C#C there are no sp3 and sp2 carbons_HybRatio_C#C.png

11. unknown atom type

発生する記述子例

  • Vabc

発生する化合物例

smiles strucure
CCCCCCCI unknown atom type_Vabc_CCCCCCCI.png

発生理由の考察

これは簡単。対応していない原子が含まれていたということだろう。

おわりに

途中から同じパターンの連続となったので、もっとうまくまとめれそうだが、時間がかかったのでこの辺で終了する。
とは言え、1度洗い出しておきたかったので、胸のつかえがとれ少しすっきりした。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
kimisyo
主にライフサイエンス分野向けサービス開発を行っています。これからはライフサイエンスの時代です。化学、AI(機械学習)を中心に、学んだこと、経験したことをシェアしていきます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?