5

我正在尝试通过制作一个简单的程序来学习python,该程序会生成一个典型的练习题,有机化学学生通常在考试中面临:逆合成题。

对于那些不熟悉这类问题的人:给学生一系列化学反应的初始和最终物种,然后要求学生确定对初始反应物进行了哪些试剂/反应以获得最终产物。

有时您只得到最终产品,并要求您列出合成某些参数所需的反应(仅从具有 5 个或更少碳的化合物开始,仅使用酒精等)

到目前为止,我已经做了一些研究,我认为 RDkit w/Python 是一个很好的起点。我的计划是使用 SMILE 格式来读取分子(因为我可以像处理字符串一样操作它),然后为每个反应定义函数,最后我需要一个化学物种数据库,程序可以从中随机选择物种(对于问题中的初始和最终物种)。然后程序从数据库中选择一个随机物种,对其应用一堆反应(3-5,由用户指定),然后显示最终产品。然后用户自己解决问题,然后程序显示它所采用的路径(使用中间体的图像并打印用于获取它们的试剂)。简单的。原则上。

但是一旦我开始实际编写函数时遇到了一些问题,首先为每个反应编写一个函数是非常乏味的,其次,SMILE 可以处理几乎所有的分子并发症(立体化学、几何学、等)它对某些分子有多种形式,我很难保持反应的特异性。第三,我使用“替换”方法来操作 SMILE 字符串,当我有想要通用的区域特异性反应时,这会给我带来麻烦

例如:Sn2 反应与伯烷基卤化物反应良好,但并非全部与叔烷基卤化物(空间位阻)反应,我将如何为该反应创建函数?

另一个问题,我希望反应被它们各自的试剂标记,因此我已经开始用所用试剂来命名功能。但是,当存在可以采取多种不同形式的试剂(例如格林加德试剂)时,这会成为问题。

我觉得有一种更好、更少重复和乏味的方法来解决这个问题。寻找正确方向的推动力

4

2 回答 2

8

这是一项雄心勃勃的任务,你不是第一个承担它的人。突出的例子是/是

  1. LHASA,最初由哈佛大学的 EJ Corey 小组开发

  2. WODCA , 由 Erlangen 大学的 J. Gasteiger 小组开发

  3. CHIRON,由蒙特利尔大学的 S. Hanessian 小组开发

这些项目已经经历了几十年的发展,但我没有任何关于它们当前状态的可靠信息。

于 2014-11-20T06:30:08.087 回答
1

如果您将寻找一个免费的或如果可能的话与您一起寻找解决相同或接近它的问题的商业软件(用python编写),了解它的功能,解决问题的方法,并在可能的情况下获取它的源代码,这可能会有所帮助。我发现这在很多方面都有帮助。

于 2015-04-01T14:38:01.053 回答