rdkit-users-jp WEB pages
2023年10月13日に RDKit 2023.09.1 がリリースされました。この記事では新バージョンの重要な変更点を紹介します。より詳細な情報を知りたい方はリリースノートの原文 (2023_09_1 (Q3 2023) Release) と公式ブログの記事 (1, 2, 3, 4, 5) をご確認ください。
JSMolとJSReactionオブジェクトを返す全てのメソッドは、有効なオブジェクトの生成に失敗したときにnullptr(JSではnull)を返すようになりました。以前はis_valid()メソッドがfalseを返すオブジェクトを返していました。この新しい実装は、無効なオブジェクトに対してdelete()を呼び出さなければならないオーバーヘッドを回避するもので、rdkit-js GitHubリポジトリの公開ディスカッションで承認されました。MolIteratorがMolListに変更されました。MolIteratorにはat()、append()、insert()、pop()メソッドが含まれるようになったため、MolIteratorは不適切に感じられたからです。これまでこのクラスにコンストラクタはなかったため、この変更による既存のJSコードへの影響は最小限に抑えられるはずです。JSコードの更新が必要なのは、JSMol::get_frags()の返り値をパースするときだけです。戻り値はmolIteratorとmappingsという2つのキーを持つオブジェクトで構成されます。molIteratorキーはmolListに変更されました。MCSParameters::FinalMatchChecker関数は、ビルトインのFinalMatchChecker関数の代わりではなく、ビルトインのFinalMatchChecker関数の後に呼び出されるようになりました。これは設計上の欠陥であり、修正する価値があります。MCSParameters::Timeoutを0に設定すると、タイムアウトが0秒になるのではなく、タイムアウトがないことを意味するようになりました。0秒のタイムアウトは、MCSが即座にキャンセルされてしまうため、無意味です。MCSParameters::MatchRingFusionStrictがtrueの場合にFindMCSによって生成されるSMARTS文字列が、より具体的な部分構造のマッチを確実にするために、適切な場合にはリングメンバーシップクエリを含むようになりました。SingleBondExcludedがIndividualBondExcludedに変更されました。GetProp()の呼び出しで失敗した型変換からのエラーメッセージが、コンパイラによって若干異なるようになりました。”boost::bad_any cast”を常に含める代わりに、[B,b]ad any[\ ,_]castという正規表現でマッチさせる必要があります。(訳注: 省略します。ご興味のある方は原文をご確認ください。)
rdFMCSモジュールのMCSProgress、MCSBondCompare、MCSAtomCompare Pythonクラスから、compareメソッドとcallbackメソッド(リリース2021.01から非推奨)が削除されました。compareメソッドとcallbackメソッドの両方が __call__で置き換えられました。SetAtomTyperメソッドとSetBondTyperメソッド(リリース2021.01から非推奨)がrdFMCSモジュールのMCSParameters Pythonクラスから削除されました。メソッドはそれぞれ、read-writeプロパティAtomTyperとBondTyperで置き換えられました。JSMolとJSReactionはもう存在できないため、常にtrueを返します。rdkit.Chem.MolStandardize.rdMolStandardizeの実装を使用してください。以上です。ドキュメントの誤りや改善点を見つけた場合はユーザー会のSlackかGitHubまでご連絡ください。