开始

这里,我们将使用MLatom的不同功能对同一个例子进行几何优化。

使用输入文件

这里提供了一个视频,演示了如何在 XACS云平台 上使用命令行选项或以提交输入文件的方式来进行几何优化。

通过使用命令行选项或直接提交输入文件,MLatom能够以命令行格式运行。此处以使用ANI-1ccx方法进行结构优化为例,下载输入文件 geomopt.inp 或复制以下代码:

ANI-1ccx                # pre-trained model
geomopt                 # requests geometry optimization
xyzfile=init.xyz        # initial geometry guess
optxyz=opt.xyz          # file with optimized geometry

This input requires you to provide init.xyz file (which you need to upload as auxiliary file on XACS cloud)

备注

This self-contained input file without the need to provide auxiliary file also works:

ANI-1ccx                # pre-trained model
geomopt                 # requests geometry optimization
xyzfile='
8

C             0.0000000000000           0.0000000000000           0.7608350816719
H            -0.0000000000000           1.0182031026887           1.1438748775511
H             0.8817897531403          -0.5091015513443           1.1438748775511
H            -0.8817897531403          -0.5091015513443           1.1438748775511
C            -0.0000000000000          -0.0000000000000          -0.7608350816719
H            -0.8817897531403           0.5091015513443          -1.1438748775511
H             0.8817897531403           0.5091015513443          -1.1438748775511
H            -0.0000000000000          -1.0182031026887          -1.1438748775511
'

然后使用以下输入文件运行MLatom进行模拟:

mlatom geomopt.inp &> geomopt.out

计算完成后,程序会将相关的计算信息打印到输出文件 geomopt.out 中。

使用PyAPI

这里提供了一个视频,演示了如何在 XACS云平台 上使用PyAPI进行几何优化。

以下是使用ANI-1ccx方法在MLatom上进行几何优化的一个Python脚本示例,其模拟任务与此前演示的使用命令行选项的方式相同:

import mlatom as ml                                                                         # import MLatom module.
ani = ml.models.methods(method='ANI-1ccx')                                                  # denfine an ANI-1cxx model.
init_mol = ml.data.molecule.from_xyz_file('init.xyz')                                       # load the molecular structure.
final_mol = ml.optimize_geometry(model=ani, initial_molecule=init_mol).optimized_molecule   # the optimized structure can be obtained by command.
final_mol.xyz_coordinates                                                                   # we can see the coordinates of the last molecule.
print(final_mol.get_xyz_string())                                                           # print the coordinates in ".xyz" format.
final_mol.write_file_with_xyz_coordinates(filename='opt.xyz')                              # save it in "final.xyz".