RDKit にコントリビュートした
RDKitの2021.03 versionがリリースされましたね!
お気づきの方はいらっしゃるだろうか・・・
ついに私もRDKit コントリビューターになったよ!
といってもめちゃくちゃ些細な修正をマージして頂いただけです。せっかくなのでご紹介。
最新版のインストール
まずは最新版をインストール。以前と少しコマンドが変わっています。(RDKit documentation installation)
# チャンネルがconda-forgeになってる conda create -c conda-forge -n my-rdkit-env rdkit
作成した環境「my-rdkit-env」にjupyter notebookもインストール。カーネルを選べるように追加しました。*1
# 仮想環境をactivate conda activate my-rdkit-env # jupyterをインストール conda install jupyter # カーネルを追加 ipython kernel install --user --name=my-rdkit-env --display-name=my-rdkit-env
Jupyter notebookを起動して確認してみます。
from rdkit import rdBase print('rdkit version: ', rdBase.rdkitVersion) # rdkit version: 2021.03.1
インストールできました!*2
修正内容
マージして頂いた修正はMolFromSequence
に関するものです。MolFromSequence
を使うと、アミノ酸一文字表記の配列(シークエンス)からMolオブジェクトを構築することができます。
以前の記事で取り上げていますのでよろしければご参照ください。
こちらの配列、オプションの引数「flavor=1
」とすることでD-アミノ酸も扱えるのですが、なぜかD-セリンとD-チロシンだけが含まれておらず利用できませんでした。
無いなら付け加えてもらえばいいじゃない! プルリク!プルリク!
まずは比較のためL-セリンとL-チロシンを確認しておきます。大文字のS
とY
でOKです。
from rdkit import Chem from rdkit.Chem import Draw L_Ser_L_Tyr = Chem.MolFromSequence('SY') Draw.MolToImage(L_Ser_L_Tyr)
さて、問題のD-セリンとD-チロシンはどうでしょうか??
flavor=1
として小文字のs
とy
を使えば指定できます。
# D-セリンとD-チロシン D_Ser_D_Tyr = Chem.MolFromSequence('sy', flavor=1) Draw.MolToImage(D_Ser_D_Tyr)
先ほどのL体と立体が逆になった構造が生成されました!
以前のRDKitのバージョンでは、これらの配列は空のオブジェクトとなってしまっていました。きちんと動いてよかった!
おわり
以上、重箱の隅をつつくような些細なお話でした。
しょうもなさすぎて蹴られるかと思いましたが、マージしていただけて嬉しかったので記事にしてしまいました。
RDKitコミュニティー優しくて好き!!
*1:Jupyterで複数カーネルを簡単に選択するための設定
*2:Homebrewでもできるそうです。( https://formulae.brew.sh/formula-linux/rdkit )