magattacaのブログ

日付以外誤報

RDKit にコントリビュートした

RDKitの2021.03 versionがリリースされましたね!

お気づきの方はいらっしゃるだろうか・・・

f:id:magattaca:20210401233809p:plain

ついに私も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オブジェクトを構築することができます。

以前の記事で取り上げていますのでよろしければご参照ください。

magattaca.hatenablog.com

こちらの配列、オプションの引数「flavor=1」とすることでD-アミノ酸も扱えるのですが、なぜかD-セリンD-チロシンだけが含まれておらず利用できませんでした。

無いなら付け加えてもらえばいいじゃない! プルリク!プルリク!

github.com

まずは比較のためL-セリンL-チロシンを確認しておきます。大文字SYでOKです。

from rdkit import Chem
from rdkit.Chem import Draw

L_Ser_L_Tyr = Chem.MolFromSequence('SY')

Draw.MolToImage(L_Ser_L_Tyr)

f:id:magattaca:20210401233841p:plain

さて、問題のD-セリンD-チロシンはどうでしょうか??

flavor=1として小文字syを使えば指定できます。

# D-セリンとD-チロシン
D_Ser_D_Tyr = Chem.MolFromSequence('sy', flavor=1)
Draw.MolToImage(D_Ser_D_Tyr)

f:id:magattaca:20210401233908p:plain

先ほどのL体と立体が逆になった構造が生成されました!

以前のRDKitのバージョンでは、これらの配列は空のオブジェクトとなってしまっていました。きちんと動いてよかった!

おわり

以上、重箱の隅をつつくような些細なお話でした。

しょうもなさすぎて蹴られるかと思いましたが、マージしていただけて嬉しかったので記事にしてしまいました。

RDKitコミュニティー優しくて好き!!