学化学的分子图不会画?石纪元教你用Python-RDKit几行代码搞定

学化学的分子图不会画?石纪元教你用Python-RDKit几行代码搞定

首页休闲益智救人全靠画更新时间:2024-06-06
一 在石器时代重新创造文明

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,欢迎继续关注我们,期待我们更多技术分享交流,请继续关注我们头条号

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved