Did*_*der 3 python functional-programming chemistry
我正在尝试通过制作一个简单的程序来学习python,这个程序产生一种典型的练习问题,有机化学学生通常会在考试中面对:复古综合问题.
对于那些不熟悉这类问题的人:给予学生一系列化学反应的初始和最终种类,然后要求确定对初始反应物进行了哪些试剂/反应以获得最终产物.
有时您只获得最终产品并要求列出合成所需的反应给定一些参数(仅从含有5个碳或更少碳的化合物开始,仅使用酒精等)
到目前为止,我已经做了一些研究,我认为RDkit与Python是一个很好的起点.我的计划是使用SMILE格式读取分子(因为我可以像对待字符串一样操作它),然后定义每个反应的函数,最后我需要一个化学物种数据库,程序可以从中随机选择物种(对于问题中的初始和最终物种).程序然后从数据库中选择一个随机物种,对它应用一系列反应(3-5,由用户指定)然后显示最终产品.然后用户自己解决问题,然后程序显示它所采用的路径(使用中间体的图像并打印用于获得它们的试剂).简单.原则上.
但是一旦我开始实际编写函数我遇到了一些问题,首先为每一个反应编写一个函数是非常繁琐的,其次SMILE可以处理几乎所有的分子复杂性(立体化学,几何,它对某些分子有多种形式,我无法保持特定的反应.第三,我正在使用"替换"方法来操纵SMILE字符串,这让我遇到了麻烦,因为我想要通用的区域特异性反应
例如:Sn2反应与伯烷基卤反应良好,但不是全部与叔烷基反应(空间位阻),我如何为这种反应创造一个函数?
另一个问题是,我希望反应被各自的试剂标记,因此我采用所用试剂命名功能.但是,当存在可以采用许多不同形式的试剂时(例如Gringard试剂),这成为问题.
我觉得有一种更好,更少重复和乏味的方法来解决这个问题.寻找正确方向的推动
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |