RDKit 2024.03.1 がリリースされました
2024年3月29日に RDKit 2024.03.1 がリリースされました。この記事では新バージョンの重要な変更点を紹介します。より詳細な情報を知りたい方はリリースノートの原文 (2024_03_1 (Q1 2024) Release) をご確認ください。
リリースノートより
ハイライト
- アトロプ異性体をサポートする最初のバージョンが追加されました。これは将来のリリースで拡張される予定です。
- 複数のスレッドを使用するためのサポートが数箇所に追加されました。rdMolStandardizeの多くの操作、フィンガープリント生成器とGetBestRMS()/GetAllConformerBestRMS()。
- RDKit C++ APIバージョン2の最初のリリースです。今後のリリースでこれを拡張し続ける予定です。新しいAPIにより、正しくメモリ安全なコードをより簡単に記述できるようになりました。現在のAPIはまだサポートされており、当面はこのままですが、C++開発者にはコード内でAPI v2を使い始めることを推奨します。
後方互換性のない変更
- 配座異性体生成のデフォルトを改善するために2つの変更が行われました。EmbedMolecule()関数とEmbedMultipleConfis()関数はデフォルトでETKDGv3を使用するようになり(以前はETKDGV1を使用していました)、配座異性体の枝刈りのためにRMSDを計算する際に重原子のみを考慮するようになりました(以前は水素原子も考慮されていました)。
- molブロックに由来する原子のラジカル電子数の計算方法が変更されました。
DOUBLET
としてマークされた[CH]
のようなシステムには、3つのラジカル電子が割り当てられるようになりました。これはSMILESから計算される値と一致しています。
- MolStandardizeのバリデーションクラスは、よりシンプルで一貫性のあるAPIを提供するためにリファクタリングされました。C++の実装では、
MolVSValidations
基底クラスが削除され、ValidationMethod
に統合されました。その結果、MolVSに関連するサブクラス(つまり、NoAtomValidation
、FragmentValidation
、NeutralValidation
、IsotopeValidation
)ではrun
メソッドがvalidate
に置き換えられ、ValidationMethod
の全てのサブクラスでcopy
メソッドの実装が必要になりました。さらに、MolStandardize::ValidationErrorInfo
はstd::string
のエイリアスとして再定義されました。MolVSバリデーションメソッドに関する変更は、Python APIにも同様に実装されました。
- 金属原子(実際にはデフォルトの価数が-1である任意の原子)は、結合を形成している場合、ラジカル電子数が0に設定されるようになりました。結合を持たない金属原子/イオンは、価電子数が奇数の場合はラジカル電子数1、偶数の場合は0が引き続き割り当てられます。ケモインフォマティクスシステムでは、金属原子のスピン状態がどうあるべきかを一般的に答えることは不可能であるため、私たちはシンプルで簡単に説明できる方法を採用しています。スピン状態が分かっている場合、SetNumRadicalElectrons()を呼び出すことで、その情報を直接提供できます。
- キラリティは、T字型の配位環境を持ち、T字の幹にくさびを持つ三配位原子に対して認識されるようになりました。四面体の立体化学を認識している場合は、これを明確に解釈することができます。
- v2の互変異性体ハッシュアルゴリズムのバグ修正により、一部の分子の出力が変更されます。詳しくはPR #7200をご覧ください。
- 配座異性体生成時のRMSによる枝刈りが、デフォルトで共役末端基を対称化するようになりました。これはパラメータ “symmetrizeConjugatedTerminalGroupsForPruning” で無効にできます。
新機能及び改善・バグ修正・クリーンアップ
(訳注: 省略します。ご興味のある方は原文をご確認ください。)
このリリースで削除されたコード
- MolStandardizeのpython実装は削除されました。代わりに
rdkit.Chem.MolStandardize.rdMolStandardize
の実装を使用してください。
- python 2とpython 3の両方をサポートしていた頃の名残であるrdkit.sixモジュールは削除されました。
- 標準的な機械学習アルゴリズムのRDKit実装が削除されました。影響を受けるパッケージは以下の通りです。rdkit.ML.Composite, rdkit.ML.DecTree, rdkit.ML.KNN, rdkit.ML.ModelPackage, rdkit.ML.NaiveBayes, rdkit.ML.Neural, rdkit.ML.{Analyze,Screen,Grow,Build}Composite, rdkit.ML.CompositeRun, rdkit.ML.EnrichPlot
- Dbase.DbReportパッケージは動作しなくなったので削除されました。
非推奨となったコード(将来のリリースで削除予定)
- PDBMolSupplierクラスは非推奨となり、次のリリースで削除される予定です。
- 分子を描画するための従来のPythonコードは非推奨となり、次のリリースで削除される予定です。これにはrdkit.Chem.Drawの以下のものが含まれます。モジュール aggCanvas, cairoCanvas, canvasbase, MolDrawing, mplCanvas, qtCanvas, spingCanvas。関数 Draw.MolToImageFile(), Draw.MolToMPL(), Draw.MolToQPixmap()。Draw.MolToImage()関数の実引数”canvas”。Draw.MolToFile()のPNGまたはSVG以外のimageTypesを用いた呼び出し。
以上です。ドキュメントの誤りや改善点を見つけた場合はユーザー会のSlackかGitHubまでご連絡ください。