目录

AMS软件:确定化学反应中反应物和产物之间的最佳原子映射

功能简介

ReacMap的原子映射功能,是将反应物中的每个原子与产物中的原子一一对应,即回答:反应物中的每个原子最终在产物中的位置如何?ReactMap中的“最佳原子映射”,是指所需键变化(反应物中的键断裂和产物中的键形成)数量最少的映射方案。

例如上图,水解反应的最佳原子映射:(请注意,甲基组被映射为一个单元以降低图形复杂性),红色键表示反应物中所需的键断裂,绿色键表示产物中所需的键形成。2 个键形成,2 个键断裂,因此此映射的“成本”为 4。

用法

  1. 脚本中包含所有功能,然后一次性运行脚本,得到输出:AMSjobs 进入Python脚本所在文件夹 → Help → Command-line → 输入sh回车 → amspython *.py,其中*表示Python脚本的名字。例:下载此脚本解压后,如所说方式去运行。
  2. 通过交互的方式运行:AMSjobs(因为没有脚本,所以无所谓在什么文件夹) → Help → Command-line → 输入sh回车 → 输入amsipython回车,进入交互模式,以[1]作为行首,Python语句可以一行一行的输入执行,例如:

这种方式每输入一个命令就回车一次,行首的编号就增大1。实际上就是把方式1中的内容,一行一行的运行。脚本的理解如下:

这时候大家可能有个疑问,反应物分子中,每个编号对应什么原子?产物分子中,每个编号对应什么原子?那么我们可以接下来执行命令:

可以用浏览器打开这两个文件,分别是反应物原子编号情况和产物原子编号情况。反应物:

产物:

更多灵活的使用、高级功能

1,一次性分析多个反应

import scm.reactmap as rm

# we'll keep a list of all reactions we want to map
# and then pass this list to rm.Map
reactions = []

reactant  = rm.Molecule(smiles="CCC[Br].[OH1-]")
product   = rm.Molecule(smiles="[Br-].CCCO")
reactions.append( rm.Reaction(reactant=reactant, product=product, name="SN2") )

reactant  = rm.Molecule(atoms=['H','O','O','H'], bonds=[(0,1),(1,2),(2,3)])
product   = rm.Molecule(atoms=['H','O','O','H'], bonds=[(0,1),(2,3)])
reactions.append( rm.Reaction(reactant = reactant, product = product, name = "homolytic cleavage") )

reactant  = rm.Molecule(smiles='C=C.[H][H]')
product   = rm.Molecule(smiles='CC')
reactions.append( rm.Reaction(reactant = reactant, product = product, name = "hydrogenation") )

rm.Map(reactions)
for r in reactions:
    print("Reaction {} had a cost of {}".format(r.name,r.cost))

这里定义了3个反应,然后分别打印三个反应的“成本”。

2,用户可以自定义哪些原子不参与反应

参考教程:https://www.scm.com/doc/reactmap/examples/active_atoms.html

3,定义哪些键是活性的

参考教程:https://www.scm.com/doc/reactmap/examples/active_bonds.html

4,各种变量的子变量

Molecule的子变量:https://www.scm.com/doc/reactmap/_generated/scm.reactmap.Molecule.html 例如: 因为reactant = rm.Molecule(….),所以reactant.atoms实际上就是rm.Molecule.atoms

Reaction的子变量:https://www.scm.com/doc/reactmap/_generated/scm.reactmap.Reaction.html

Settings的子变量:https://www.scm.com/doc/reactmap/_generated/scm.reactmap.Settings.html

RMLogger的子变量:https://www.scm.com/doc/reactmap/_generated/scm.reactmap.RMLogger.html

heuristics的子变量:https://www.scm.com/doc/reactmap/_generated/scm.reactmap.heuristics.html