一 在石器時代重新創造文明
1-緣由
最為一個名不合格程序員,漫畫是死肥宅的完美搭配。最近看動漫《石紀元》,沉迷於對石器時代創建文明的幻想,也想在荒蕪的世界利用科學知識改變世界。爽歪歪意淫。沒看過這個動漫?趕緊看下!說的是全世界的生物都被石化,三千年後男主角甦醒後利用科學拯救世界的有趣故事。比貝爾荒野求生還爽。
對動漫中,男主千空一群人為創造磺胺類抗生素救人治病尤其感染。我也想畫一畫,但是我不會啊!
於是,我關注上了化學,雖然高考後就不再於化學接觸。而且印象中,玩知乎的童靴都知道知乎有三大勸退專業,化學是其中之一,具體原因我不知道(非化學專業)。
今天我們就用非化學專業的方式來畫分子結構圖,手把手教你,就算你是化學專業不懂編程也能快速度上手。利用Python +RDKit實現化學分子圖結構圖的繪製。
方便快捷,實現的效果如下:
2-適用人群
-閒的蛋疼的程序員
-化學專業不喜歡化學又得畫分子圖的同學
-轉行學Python編程的非計算機專業的迷茫小羔羊尋找開發項目訓練的同學
-覺得編程沒意思的勸退青年找點樂子刺激以保持對技術的追求
-開發新領域,嚐鮮玩樂的成年人玩具
-《Dr.STONE 石紀元》愛好者
二 環境準備:方式1 Python+RDKit
1-Python 環境搭建
參考我們的文章《 》
2-安裝RDKit相關依賴的Python庫
運行-cmd -逐個輸入回車安裝
pip install cmake
pip install wget
pip install swig
pip install boost
pip install aggdraw
pip install matplotlib
pip install Pillow
3-RDKit 安裝
Step1 下載源碼https://github.com/rdkit/rdkit/releases/tag/Release_2019_03_4
Step2 解壓到沒有空各路徑的文件夾,我的是D盤
Step3 配置系統環境變量
RDBASE :D:\\rdkit\\rdkit-Release_2019_03_4
PYTHONPATH: %RDBASE%
PATH: 最後未添加 ;%RDBASE%\\lib
Step4 測試安裝情況
from rdkit import Chemme
沒報錯
三 環境準備:方式2 Anaconda+RDKit(推薦)
方式1可能會出現各種錯誤,而且配置安裝複雜。推薦使用Anaconda進行安裝,但是此方式對網絡有所要求。有可能被牆掉。
1-Anaconda的安裝
可以參考其他道友的文章:https://www.jianshu.com/p/62f155eb6ac5
2-創建RDKit環境
Step1 打開Anaconda Prompt-輸入:
conda create -c rdkit -n freo-studio-rdkit-env rdkit
創建一個 freo-studio-rdkit-env 環境
提示y/n?:輸入y
慢慢等待就可以了,但是網絡經常中斷,重新來過進行就好!安裝完成後如下提示:
Step 2 激活使用剛才創建的環境並安裝相應依賴包(如果提示報錯就更新pip)
conda activate freo-studio-rdkit-env
pip install matplotlib
pip install Pillow
pip install Pillow-PIL
pip install image
pip install ipython
輸入python 回車
輸入代碼:
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem import rdDepictor
mol = Chem.MolFromSmiles('CCC(CC)O[C@@H]1C=C(C[C@@H]([C@H]1NC(=O)C)[NH3+])C(=O)OCC')
rdDepictor.Compute2DCoords(mol)
Draw.MolToFile(mol, 'mol.png')##當前路徑
生成圖片如下:
輸入代碼運行:
from rdkit import Chem
m = Chem.MolFromSmiles('C1=CC2=C(C=C1)C1=CC=CC=C21')
m.GetAtomWithIdx(3).GetIsAromatic()
m.GetAtomWithIdx(6).GetIsAromatic()
m.GetBondBetweenAtoms(3,6).GetIsAromatic()
四 更多更復雜的化學分子結構圖
1-參考RDKit 文檔
https://rdkit.org/docs/RDKit_Book.html
https://rdkit.org/docs/index.html
https://github.com/rdkit/rdkit
2-更專業化學圖繪製及分析
使用Anaconda Jupiter NoteBook進行+py3Dmol進行畫3D化學圖
本文就不展開了,如果評論多,我們進行分享如何使用Python輕鬆畫3d分子結構圖
五 總結
玩到老,學到老! 跨學科交流學習,才發現自己的無知。這方面以後還得多學習!
看動漫,不懂化學不懂科學,都不好意思。《Dr.STONE 石紀元》這部動漫給我最大的感觸就算,不管什麼知識都要學習,萬一哪天處於極度惡劣的環境,說不定這些知識就能帶給我們求生的機會。
Anyway,歡迎繼續關注我們,期待我們更多技術分享交流,請繼續關注我們頭條號
閱讀更多 甫義工作室 的文章