将Confab或Frog2与Molclus联用对有机体系做构象搜索

1 前言

molclus是免费、灵活、好用的团簇构型与分子构象搜索程序,如今已经被广泛使用,请阅读官网http://www.keinsci.com/research/molclus.html中的信息了解详情。简单来说,在分子构象搜索方面,用户首先需要产生一批初始构象记录到traj.xyz文件中,然后molclus程序可以按照用户的要求调用特定计算程序对这些构象做特定任务(优化/单点/振动分析等),最后通过molclus里的isostat工具进行去重和能量排序。在产生初始构象方面,有不同可行的做法,比如可以做分子动力学产生,例子见《使用molclus程序做团簇构型搜索和分子构象搜索》(http://bbs.keinsci.com/thread-577-1-1.html)和《使用Molclus结合xtb做的动力学模拟对瑞德西韦(Remdesivir)做构象搜索》(http://bbs.keinsci.com/thread-16255-1-1.html);也可以通过molclus自带的gentor以用户要求的方式系统性地产生,见《gentor:扫描方式做分子构象搜索的便捷工具》(http://bbs.keinsci.com/thread-2388-1-1.html)。本文介绍的是另一种产生方式,通过专门的构象生成程序confab或Frog2来产生。用这俩程序的好处是可以傻瓜化地对有机分子产生一批质量不错、较有意义的初始构象,而且产生的构象数目可控,与molclus相结合做有机分子构象搜索十分方便,尤为适合化学直觉差、对构象搜索理解不深的人。

下面就先简单介绍一下构象生成以及Frog2和Confab的相关知识,然后给出一个与molclus联用搜索药物分子Actos优势构象的实例。

2 简谈构象生成

一般说的构象搜索,目的是获得能量最低的一批结构。而构象生成(conformer generation)主要是生成一批在低能量~中能量的构象空间中充分采样的构象,而没有化学意义的过高能量的构象被忽略,彼此间结构相似性太高的构象也被自动去掉。如果生成方式得当的话,其中一个或多个构象应当与真实的能量最低构象比较接近,或者说经过较理想级别的几何优化后应当能有至少一个结构收敛到真实的能量最低构象。另外,这些构象中也应当有与生物活性构象(如真实的蛋白质-配体复合物中的配体构象)相接近的构象,这样的话利用这些构象做分子对接就有望得到较真实的复合物结构。

用于构象生成的程序很多。对BALLOON、Confab、Frog2和RDKIT这四种免费的具有构象生成功能的程序的对比测试和简要介绍看J. Chem. Inf. Model., 52, 1146 (2012)。文章测试发现RDKIT表现较好,速度也不错,但鉴于安装麻烦一些,使用的话还得写Python脚本,会令计算化学初学者困扰,所以不在本文里提了。BALLOON结果不佳,而且我亲测发现速度很慢,本文也不提了。Confab的结果和速度都不错,一行命令就能出结果,所以本文介绍下。Frog2虽然比Confab的结果的质量差点,但速度明显更快,而且有网页版,都不需要安装任何程序,故也有一定独特的价值,所以在本文里也说一下。

使用这些构象生成程序产生给molclus用的traj.xyz,相对于其它方式有什么优点和缺点呢?这里对比一下
• 相对于gentor的优点:无需用户自行判断哪些键是需要考虑旋转的,也不需要人为设定怎么旋转,相对于“手动挡”的gentor来说这些构象生成程序算是自动挡,因此也便于结合molclus对大批体系自动做构象搜索。而且对于可旋转的键特别多,因而构象空间极大而不可能全都考虑的情况,可以由用户大致控制总共产生多少构象(当然,产生的构象越多,最终经由molclus得到真实能量最低构象的可能性越高)。
• 相对于gentor的缺点:键怎么旋转不能由用户根据实际要求和自身的化学直觉、经验进行精细操控,没法令某些键同步旋转,而且没法用于普通有机体系以外的体系(如过渡金属配合物、连接有机基团的原子团簇等)。
• 相对于做动力学的优点:用户不必额外掌握动力学程序的使用,比做动力学明显更省时省事。而且不像动力学那样最后产生的结构可能和初始用的构象有关、需要考虑如何恰当设置模拟温度,也不必纠结于当前的动力学轨迹是否对构象空间采样得够全面。
• 相对于做动力学的缺点:没法考虑环状结构的构象(至少对于Confab和Frog2来说),没法用于普通有机体系以外的体系,没法用于分子间形成的复合物。例如环糊精这种柔性环状体系包夹小分子的构型/构象搜索就明显最适合靠动力学产生traj.xyz文件,而不能靠构象生成程序。

3 Confab程序简介

Confab算法的原文见Journal of Cheminformatics, 3, 8 (2011)。Confab已经集成在了著名的化学体系文件格式转换兼化学信息学工具OpenBabel里。Open Babel最新版可以在https://github.com/openbabel/openbabel/releases免费下载。读者应当使用OpenBabel 3.0及以后的版本,不要用更老的诸如2.x版。

Confab的运行很简单。把OpenBabel安装好之后,进入操作系统的命令行模式,输入以下命令就基于test.mol2里的结构产生一批构象并一起写入到traj.xyz里了。
obabel test.mol2 -O traj.xyz –confab –verbose –conf 10000
这里–verbose要求输出详细信息,从屏幕上可以看到有多少个键被判断为可旋转的键、每个键对应哪两个原子、每个键有多少种可能的取值、最后实际产生了多少个构象。

Confab本质上用的是系统式构象生成算法,但比gentor考虑得更多。首先根据原子所处的化学环境判断键的特征,指认出各个可旋转的键,并根据内置的库判断每个键都有哪些扭转角度需要考虑。假设有四个键,分别有6、3、12、4个需要考虑的扭转角度,则构象空间中总数是6*3*12*4=864个。–conf设的是实际考虑的构象数,比如设了100,那么通过随机选取扭转角的方式会得到100个随机的结构。之后程序会将能量过高的过滤掉,也通过构象间重原子的RMSD将过于相似的构象去除,以保证产生的构象的多样性。默认情况下,构象间重原子RMSD差异要求大于0.5埃,可以通过–rcutoff选项修改。默认情况下,构象产生过程中会将高于目前能量最低构象50 kcal/mol以上的构象忽略掉,可以通过–ecutoff选项修改。显然,最终产生的构象数目是少于等于–conf所设的,而且–ecutoff设得越大,最终给出的构象数可能越多。Confab是通过MMFF94力场计算的构象能量,并且在计算构象能量前,程序会自动进行优化,先优化最中间的扭转角,然后再依次优化更靠边的扭转角,这样优化耗时比起对所有变量一起优化低得多,但精度也打了折扣。

输入给Confab的文件应当含有当前体系的三维结构,具体处于什么构象无所谓,不影响产生的构象,但键长和键角不能离谱,因为Confab产生的所有构象里键长和键角都和输入结构里是一致的。也因此,不同构象之间的能量差只由范德华作用、静电作用和扭转项决定。

Confab无法产生环的不同构象,产生的构象中环的结构和输入的结构相同。如果环的构象很关键的话,应当用前述的分子动力学的方式产生给molclus用的traj.xyz。

OpenBabel也可以基于基因算法产生构象,但没有文章详细介绍其算法,我感觉也不会比Confab方法有什么实际优势(我没有实际测试),本文就不提了,介绍见
https://open-babel.readthedocs.io/en/latest/3DStructureGen/multipleconformers.html

4 Frog2程序简介

Frog2的介绍见Nucleic Acids Research, 38, W622 (2010),程序页面见https://bioserv.rpbs.univ-paris-diderot.fr/services/Frog2/。此程序可以下载后离线使用,也可以在在线服务器上直接提交。

此程序支持的信息形式有SMILES字符串、SDF文件和mol2文件。用户可以只提供体系的一维/二维信息,也可以直接提供三维信息(立体结构文件)。对于我们构象搜索来说,一般建议用mol2格式提供三维结构信息,这样在分子的手性方面不会有含糊性。

生成构象的过程中,Frog2根据化学环境判断可旋转的键及其有代表性的角度,然后对每个产生的构象通过蒙特卡罗方式确定各个扭转角取的值。如果某个构象能量高于能量最低构象E window(默认50 kcal/mol)以上,则此构象会被忽略。如果构象的绝对能量高于E max(默认100 kcal/mol),则这个构象也会被忽略。这里说的能量是Frog2根据MMFF94力场计算的,但只考虑范德华作用部分。Frog2也根据构象间RMSD来去除相似性过高的构象。Frog2里由用户自定义#conf设置起初生成多少个构象,最终保留下来的数目是那些通过上述方式筛选的。

可以要求Frog2对产生的构象通过AMMOS工具做能量极小化,但这不会考虑静电作用。实测发现做不做这个极小化对耗时影响不大,原理上做了有好处。和Confab一样,对于提供三维结构作为输入的时候,Frog2也无法考虑环的不同构象。

Frog2的在线提交页面是https://mobyle.rpbs.univ-paris-diderot.fr/cgi-bin/portal.py#forms::Frog2。如果想得到用于molclus做构象搜索的文件,在页面中,Input type选3D,Input drug description通常选mol2,点击upload标签页,点击“浏览”,然后选择分子的mol2文件。Minimize建议设为Yes,#conf根据期望得到的构象多少恰当设置,其它设置就用默认即可(另:界面里面有个Produce选项,默认是Multi,代表构象生成任务,如果切换为Single,就只给出一个能量最低构象。Disambiguate选项是对于输入一维/二维结构的时候是否区分手性异构体而言的,对于输入三维结构的情况没有用处)。点击Run提交后,过一会儿就会出现结果页面,里面若显示诸如455 conformation(s) calculated就是说最终产生了455个构象。在Frog.mol2旁边的小磁盘按钮上选“另存为”就可以把包含所有最终构象的多帧mol2文件保存下来了,之后可以放到GaussView或VMD里观看所有结构进行检查。

注意如果你的分子的mol2文件是用GaussView创建的,在提交前应当用文本编辑器打开,把里面的“Molecule Name”改成“Molecule_Name”或者随便什么名字,反正里面不能有空格才行,否则Frog2无法运行。

如果想把如上方式产生的包含所有构象的Frog.mol2转化成给molclus用的traj.xyz文件,需要运行molclus文件包里的mol2_xyz程序(从molclus 1.9.9版开始才有),输入.mol2文件路径,即会在当前目录下产生traj.xyz。

5 结合molclus做构象搜索实例:Actos

5.0 前言

这里通过Actos这个治疗糖尿病的药物在真空下的构象搜索展示一下Confab与molclus的联用的实际应用。没看过《使用molclus程序做团簇构型搜索和分子构象搜索》(http://bbs.keinsci.com/thread-577-1-1.html)的读者务必先看一下了解molclus的基本使用常识。本例相关的文件都可以在本文的文件包里下载:http://sobereva.com/attach/575/file.zip。

文件包里的Actos.pdb是我用GaussView直接画的结构保存出的文件,如下图所示

可见此体系可旋转的键非常多,因此能充分体现出用Confab构象生成工具产生初始构象的价值。这里没有用Frog2产生初始构象,这是因为笔者发现至少对于这个体系,Frog2产生的初始构象不如Confab。下图左侧和右侧分别是Confab和Frog2产生的构象的叠加图(都产生了400多个的情况),对各个结构相对于吡啶部分消除了平动和转动。可见Frog2产生的初始构象遍及的构象形态明显不如Confab的那么充分,因此有漏掉一些重要构象的风险。


此例的计算流程分为三步:
(1)用Confab产生几百个初始构象
(2)用crest调用xtb在GFN2-xTB方法下做批量优化,然后用isostat筛选出能量最低的一批留到下一步
(3)用molclus调用Gaussian在B3LYP-D3(BJ)/6-31G*下做优化和振动分析,并且在M06-2X/def2-TZVPP下算单点,从而得到较高精度的气相自由能
此例涉及的程序包括OpenBabel 3.0.0,molclus 1.9.9,xtb 6.3.3,crest 2.10.2,Gaussian 16 A.03。可视化使用VMD 1.9.3(http://www.ks.uiuc.edu/Research/vmd/)。

以上步骤显然还有改进余地使结果更准确。比如单点可以用ORCA在明显更高精度的DLPNO-CCSD(T)/cc-pVQZ或便宜一些的RI-PWPB95-D3(BJ)/def2-QZVPP下进行,自由能热校正量可以通过笔者的Shermo程序结合恰当的频率校正因子和准RRHO方法得到更理想的结果。相关知识见《详谈Multiwfn产生ORCA量子化学程序的输入文件的功能》(http://sobereva.com/490)和《使用Shermo结合量子化学程序方便地计算分子的各种热力学数据》(http://sobereva.com/552)。如果想在溶剂环境下做构象搜索,xtb做优化和Gaussian/ORCA做单点计算的时候应带着溶剂模型,例如水溶剂下的构象搜索在此文里给了具体例子:《使用Molclus结合xtb做的动力学模拟对瑞德西韦(Remdesivir)做构象搜索》(http://bbs.keinsci.com/thread-16255-1-1.html)。

大家也可以根据实际量子化学研究经验,实际体系特点、对精度的要求、计算资源等因素对搜索流程进行改造,molclus的设计令构象搜索流程极其灵活,可控性极强。下面几节依次进行上述三个步骤。

5.1 用Confab产生初始构象

安装OpenBabel后,进入操作系统的命令行模式,把Actos.pdb放到当前目录下,然后运行
obabel Actos.pdb -O traj.xyz –confab –verbose –conf 10000
瞬间就运行完了,产生的traj.xyz在本文文件包的obabel目录下。在屏幕上会看到以下信息
..Input format = ent
..Output format = xyz
..RMSD cutoff = 0.5
..Energy cutoff = 50
..Conformer cutoff = 10000
..Write input conformation? False
..Verbose? True

**Molecule 1
..title = Actos.pdb
..number of rotatable bonds = 7
….rotor 1 from 11 to 12 has 3 values
….rotor 2 from 10 to 11 has 12 values
….rotor 3 from 9 to 10 has 3 values
….rotor 4 from 9 to 6 has 12 values
….rotor 5 from 15 to 18 has 6 values
….rotor 6 from 19 to 18 has 3 values
….rotor 7 from 3 to 7 has 12 values
..tot conformations = 279936
….Using a cutoff of 10000 we will only explore 3.6% of these
..tot confs tested = 10000
..below energy threshold = 2131
….tree size = 998 confs = 812
….new tree size = 2020 confs = 591
..generated 591 conformers

由上可见,当前体系有7个键被判断为了可旋转的键,每个键对应哪两个原子成键、有几种可能的取值都注明了。构象空间总数是所有键可取值的乘积,即3*12*3*12*6*3*12=279936,显然全都计算的话对一般条件来说肯定算不动,因此当前我们用了–conf 10000,即在这构象空间中随机生成10000个构象,占总构象空间10000/279936*100%=3.6%。显然–conf设得越大越有可能最终找到能量最低构象,但当前经过能量和相似度筛选处理后,最终产生591个构象也不算少了。大家感兴趣的话可以把当前产生的traj.xyz拖到VMD里看看,可以看到各种样子的构象都有所出现。因此,对于当前这个体系来说,基于这591个初始构象,应当已经有足够几率最终找到能量最低和最低的一批构象了。

5.2 使用xtb做初步优化和能量计算

xtb是一个能够实现GFN-xTB理论的免费程序,这相当于半经验版本的DFT方法,这一节我们用它来对上述591个构象批量做快速的预优化并得到粗略的能量。xtb的安装方法和基本用法在《将Gaussian与Grimme的xtb程序联用搜索过渡态、产生IRC、做振动分析》(http://sobereva.com/421)都已经给出了。如果你的机子核数较多的话,为了用最短的时间优化完这591个构象,建议按照《使用Molclus结合xtb做的动力学模拟对瑞德西韦(Remdesivir)做构象搜索》(http://bbs.keinsci.com/thread-16255-1-1.html)文末介绍的技巧,通过免费、下载即用的crest程序调用xtb同时对大量体系并行优化(虽然用molclus调用xtb一个一个优化这些结构当然也是可以的,但耗时明显更高)。

假设xtb已经照常装好了,crest可执行文件是/sob/crest并且已赋予了可执行权限,Confab产生的traj.xyz已放在了当前目录下,我们现在执行下面的命令
/sob/crest -mdopt traj.xyz -niceprint
这会令crest调用xtb在默认的GFN2-xTB方法下对traj.xyz里所有的结构进行优化,优化后的所有结构连同能量会写入当前目录下的crest_ensemble.xyz文件中。在笔者的Intel双路服务器下,利用36核并行,花了7分多钟就完成了全部优化。(顺带一提,改用名义上更便宜的GFN1-xTB并不会在当前步骤节约耗时。如果使用比如-opt tight选项把默认的收敛限从verytight放宽到tight,虽然可以节约一些时间,但可能导致最终得到一些相似度非常高但又有一定差异的结构。鉴于本身这一步耗时很低,所以没必要放宽收敛限)。

现在启动molclus目录下的isostat程序,输入crest_ensemble.xyz的路径,然后能量和几何阈值都输入0.5,程序经过归簇后得到110个结构,根据能量由低到高的顺序输出到了当前目录下的cluster.xyz文件中。此文件在本文文件包里的crest-xtb目录下提供了。

isostat显示的信息如下
# 1 Count: 4 E= -72.233099 a.u. DGmin= 0.25 DE= 0.00 kcal/mol
# 2 Count: 7 E= -72.232944 a.u. DGmin= 0.30 DE= 0.10 kcal/mol
# 3 Count: 3 E= -72.228248 a.u. DGmin= 0.25 DE= 3.04 kcal/mol
…略
# 14 Count: 4 E= -72.221337 a.u. DGmin= 0.35 DE= 7.38 kcal/mol
# 15 Count: 8 E= -72.221030 a.u. DGmin= 0.13 DE= 7.57 kcal/mol
# 16 Count: 4 E= -72.220773 a.u. DGmin= 0.16 DE= 7.73 kcal/mol
# 17 Count: 2 E= -72.220672 a.u. DGmin= 0.20 DE= 7.80 kcal/mol
# 18 Count: 3 E= -72.220460 a.u. DGmin= 0.28 DE= 7.93 kcal/mol
…略

毕竟GFN2-xTB的精度非常有限,上面的能量次序和相对能量并不够可靠,必须进一步refine,这里我们就把前15个构象留到下一步,这足够多了。

5.3 使用DFT优化和算单点得到可靠的自由能

这一节我们通过molclus调用Gaussian对上一步筛选出的能量最低的15个构象在B3LYP-D3(BJ)/6-31G*下进一步做优化和振动分析,一方面令结构明显更精确,另一方面获得自由能热校正量,并且在M06-2X/def2-TZVPP下做精度较好的单点计算,将之与自由能热校正量相加就是较准确的气相自由能。

我们把上一节得到的cluster.xyz改名为traj.xyz,将molclus目录下的settings.ini里的iprog设为1(调用Gaussian),itask设为3(做优化+振动分析),ngeom设为15(处理traj.xyz的前15个),其它保持默认不变。然后编辑molclus目录下的Gaussian模板文件template.gjf,将关键词改为# B3LYP/6-31G* em=GD3BJ opt freq int=fine。然后在当前目录下创建一个名为template_SP.gjf的Gaussian做单点任务的模板文件,内容如下(记得末尾要有两个空行)。
# M062X/def2TZVPP

Template file

0 1
[GEOMETRY]

之后启动molclus,它会调用Gaussian对traj.xyz的前15个结构依次做优化和振动分析,并且由于当前目录下存在template_SP.gjf,molclus还会基于优化完的结构自动算单点能。在Intel 36核机子上6个小时算完,并在当前目录下得到了isomers.xyz文件。其中的结构是优化后的结构,用文本编辑器打开还可以看到每个结构对应的自由能(G)和自由能的热校正量(Gcorr)。这里的自由能就是B3LYP-D3(BJ)/6-31G*计算的标况下的自由能热校正量和M06-2X/def2-TZVPP单点能加和得到的。

运行isostat,按回车载入当前目录下的isomers.xyz,再按两次回车用默认的能量和结构的归簇阈值,然后就会看到下面的排序后的构象能量。在当前情况下,由于isomers.xyz里记录的是自由能,所以isostat显示的E对应的也是自由能。

# 1 Count: 1 E= -1469.136706 a.u. DGmin= 0.42 DE= 0.00 kcal/mol
# 2 Count: 1 E= -1469.136656 a.u. DGmin= 0.37 DE= 0.03 kcal/mol
# 3 Count: 1 E= -1469.136367 a.u. DGmin= 0.16 DE= 0.21 kcal/mol
# 4 Count: 1 E= -1469.136220 a.u. DGmin= 1.07 DE= 0.30 kcal/mol
# 5 Count: 1 E= -1469.136218 a.u. DGmin= 0.28 DE= 0.31 kcal/mol
# 6 Count: 1 E= -1469.135917 a.u. DGmin= 1.07 DE= 0.50 kcal/mol
# 7 Count: 1 E= -1469.135857 a.u. DGmin= 0.37 DE= 0.53 kcal/mol
# 8 Count: 1 E= -1469.135641 a.u. DGmin= 0.14 DE= 0.67 kcal/mol
# 9 Count: 1 E= -1469.135435 a.u. DGmin= 0.51 DE= 0.80 kcal/mol
# 10 Count: 1 E= -1469.134939 a.u. DGmin= 0.42 DE= 1.11 kcal/mol
# 11 Count: 1 E= -1469.134080 a.u. DGmin= 0.28 DE= 1.65 kcal/mol
# 12 Count: 1 E= -1469.133714 a.u. DGmin= 0.16 DE= 1.88 kcal/mol
# 13 Count: 1 E= -1469.133464 a.u. DGmin= 0.43 DE= 2.03 kcal/mol
# 14 Count: 1 E= -1469.133416 a.u. DGmin= 0.38 DE= 2.06 kcal/mol
# 15 Count: 1 E= -1469.132133 a.u. DGmin= 0.14 DE= 2.87 kcal/mol

在上面这部分信息之前还可以看到Nimag information was found, no isomer has imaginary frequency的提示,说明这15个结构的振动分析都没有虚频,所以上面的数据都是有意义的。

之后可以输入比如298.15让isostat计算这个温度下的Boltzmann分布,结果如下

# 1 Count: 1 Ratio: 17.88%
# 2 Count: 1 Ratio: 16.95%
# 3 Count: 1 Ratio: 12.48%
# 4 Count: 1 Ratio: 10.68%
# 5 Count: 1 Ratio: 10.66%
# 6 Count: 1 Ratio: 7.75%
# 7 Count: 1 Ratio: 7.27%
# 8 Count: 1 Ratio: 5.79%
# 9 Count: 1 Ratio: 4.65%
# 10 Count: 1 Ratio: 2.75%
# 11 Count: 1 Ratio: 1.11%
# 12 Count: 1 Ratio: 0.75%
# 13 Count: 1 Ratio: 0.58%
# 14 Count: 1 Ratio: 0.55%
# 15 Count: 1 Ratio: 0.14%

可见,当前这个体系并没有唯一的优势构象,有很多构象都有不可忽视的出现比率,这是Actos这个体系自身结构特点所决定的。自由能最低的两个构象,也即cluster.xyz的前两帧在下图给出了,虽然二者看起来构象差异极大,但从上面isostat给出的数据可以看到在当前计算级别下二者的自由能是几乎一样的。


值得一提的是,这上面这些构象中,第13、14号构象都存在明显的N-H…N内氢键,虽然由于这点看似它俩应该是最稳定的构象,但是它们的自由能都比最低构象高出约2 kcal/mol,这是因为在这样的结构下存在明显的结构扭曲。例如第13号构象为了形成内氢键而导致的两处显著偏离平面的扭曲的地方在下图用箭头标注了,这带来的能量升高因素大幅抵消了内氢键对构象的稳定化作用。

如果大家查看本文文件包里crest-xtb目录下的cluster.xyz,会发现第一帧就是存在内氢键的结构,即GFN2-xTB理论将这种实际上不是特别稳定的结构误当成了最稳定结构,因此仅仅靠xtb做构象搜索在精度方面是明显不够的,尤其是对于Actos这种优势构象彼此间能量差异很小的情况(涉及到溶剂的情况此问题更严重,因为xtb里的GBSA模型是极其粗糙的)。

另:对本例,建议运行molclus前将settings.ini里的ibkout设为1,这样molclus运行过程中会把每个结构的优化+振动分析以及单点任务的输出文件都备份出来,一方面便于你之后检查(比如发现有虚频的话可以看虚频模式如何),另一方面便于你之后通过Shermo程序在更好的热力学模型或其它温度/压力下批量计算这15个构象的自由能热校正量、得到Boltzmann分布比率以及权重平均的热力学数据,这仅仅需要给Shermo提供一个文件列表即可。详见《使用Shermo结合量子化学程序方便地计算分子的各种热力学数据》(http://sobereva.com/552)。

6 总结

本文介绍了Confab和Frog2两种有机体系构象生成程序的原理和用法,并且结合一个高度柔性分子Actos的构象搜索演示了如何将之与molclus联用来便利地搜索优势构象。这种联用是构象空间很大、可旋转的键很多的有机分子构象搜索的一个非常理想的途径,鼓励大家在未来广泛使用。

上一篇
下一篇