前回Anacondaのインストール方法を説明したと思うので、今回その応用方法の一つである

プログラミングによって化学構造式を描く方法を解説します


まず私はプログラミングは様々な教材を用いて勉強しているのですが、化学に関しては特にこれがおすすめです。




この本で紹介されているプログラミングにSmilesを用いて構造式を自動的に描画してくれるコードが載っています。
(Smilesとは構造式を一次元的に文字の羅列のみで表したものであり、例えばアラニンの場合はO=C(O)C(N)Cとなる)

そこでプログラミングしてアラニンを表示させてみましょう

まずは構造式を扱う場合は、rdkitというライブラリをダウンロードしなければなりません
(これをしないと後のコードを打ち込んだ場合に、エラーが起きます。eg. ModuleNotFoundError: No module named 'rdkit')

このエラーはrdkitという名前のモジュールがないことを示しています。
そこで、これらをダウンロードすれば解決するわけなのです


ダウンロード方法はこちらのサイトで詳しく解説されています。1)
まとめると、
[1]ターミナルを開きます。

[2] conda install -y -c rdkit rdkit
と入力するだけになります。

失敗した場合についての対処法も、詳しく解説されているので参考までに。


====================================================
【補足】:rdkitはpython3.9の環境で動かない可能性があるので、condaでpython3.7などの仮想環境を作成してそこで動かした方が良いです2)。ちなみに筆者は3.7で動かしています。

conda create -c rdkit -n your-rdkit python=3.7 rdkit

上記のコードでは'your-rdkit'という名前のpython3.7で動く仮想環境を作り出しています。
そうすることでAnacondaを開いた時に

スクリーンショット 2021-12-31 11.57.54

上記のように環境を選択できるようになるので、your-rdkitを選択し、spyderを起動すると

スクリーンショット 2021-12-31 11.59.53

python3.7が使えるようになります。以上補足でした。
====================================================




さて、rdkitのライブラリをインストールできた場合はAnacondaを用いてプログラミングしていきます。
まずはAnacondaを起動させ、spyderなどのソフトを起動させま

次に下記のようなコードを入力します

from rdkit import Chem
from rdkit.Chem import Draw
import matplotlib.pyplot as plt
import matplotlib.image as mpimg #下記のコードを実行させるのに必要

molecule = Chem.MolFromSmiles('O=C(O)C(N)C') #アラニンのSmilesの式を入力しています
Draw.MolToFile(molecule, 'molecule.png') #Smilesの式をMolファイルに変換しています

img = mpimg.imread('molecule.png') #Molファイルを画像ファイルに変換しています
plt.xlabel('structure') #x軸のラベルに'structure'を表示させています
imgplot = plt.imshow(img) #上記で作成した画像を表示させています

スクリーンショット 2021-07-04 15.33.05

このようにプログラムすることで、アラニンの構造式を表示させることに成功しました

よってSmilesが分かれば、構造式を自動で描くことが可能となりました。
(調べてみると意外とSmilesが載っていることが多いです)

ちなみに画像を保存する場合は、

img.save('ファイル名.jpeg')

上記のコードの最後に付け加えることで、保存することが可能です。
(/Users/ユーザー名/documents(フォルダ名)/(ファイル名).jpeg などにすることで保存する場所を指定することができます。)

それでは今回はここまで。


【参考文献】
1) https://datachemeng.com/rdkit_install_import/
2) https://future-chem.com/rdkit-intro/