保姆级教程 | ASE学习过程记录分析
背景
目前全网还没有一个详细的使用规范(中文),现根据其官网资料进行整理与编写
目录
背景
简介
支持的软件、程序
其余相关发展动态、使用手册目录、功能等
关于
易于使用:
灵活:
可自定义:
Python 语言:
开放参与:
安装
要求
可选:
使用系统软件包管理器进行安装
Linux
Max OSX(Homebrew)
使用 pip 从 PyPI 安装
本地用户安装
从源代码安装
直接从 git 源代码安装 pip
测试您的安装
开始使用
这里以ASE的GUI模块为例进行学习
ase-gui 基础和命令行选项
常见用途
文件
选择轨迹的一部分
编写文件
交互式使用
NEB 计算
从命令行绘制数据
默认值
高对比度设置
ASE官网
简介
原子仿真环境 (Atomic Simulation Environment,ASE) 是一组用于建立、操作、运行、可视化和分析原子仿真的工具和 Python 模块。代码在 GNU LGPL 许可下免费提供。
ASE 通过 Calculators 为不同的代码提供接口,这些计算器与 ASE 中的核心 Atoms 对象和许多可用算法一起使用。
支持的软件、程序
Reference publication on ASE
其余相关发展动态、使用手册目录、功能等
关于
ASE 是一个用 Python 编程语言编写的原子模拟环境,其目的是建立、引导和分析原子模拟。ASE 是由一系列 “设计目标” 构建的,这些目标包括:
易于使用:
使用 ASE 建立原子总能量计算或分子动力学模拟是简单直接的。ASE 可以通过图形用户界面 graphical user interface、命令行工具 Command line tool 和 Python 语言使用。Python 脚本易于遵循 (参见什么是 Python? 简要介绍)。新用户可以轻松访问 ASE 的所有功能。
灵活:
由于 ASE 基于 Python 脚本语言,因此可以在不修改任何代码的情况下执行非常复杂的模拟任务。例如,可以使用简单的 “for-loop” 结构来执行一系列计算。有许多 ASE 模块可以执行许多标准的模拟任务。
可自定义:
ASE 中的 Python 代码由多个模块组成,用于不同的目的。有用于计算能量、力和应力的 ase.calculators,用于控制原子运动的 ase.md 和 ase.optimize 模块,用于执行nudged-elastic-band的 constraints 对象和过滤器等。面向对象代码的模块化特性使得为 ASE 添加新功能变得简单。
Python 语言:
它很好地融入了 Python 世界的其他部分,使用流行的 NumPy 包进行数值工作 (参见Python 中的 Numeric 数组简介)。使用 Python 语言使 ASE 能够在交互和脚本中使用。
开放参与:
CAMPOS 原子模拟环境是根据 GNU 较小通用公共许可证版本 2.1 或任何更高版本发布的。请参阅随下载文件一起发布的 COPYING 和 COPYING.LESER 文件,或者在 GNU 的 Web 服务器 http://www.gnu.org/licenses/ 上查看许可证。邀请所有人参与代码的使用和开发。
安装
要求
Python 3.9 或更高版本
NumPy (基 N 维数组包)
SciPy (科学计算库)
Matplotlib (绘图)
可选:
ase.db Web 接口的 Flask
用于运行测试的 pytest
pytest-mock 用于运行更多测试
pytest-xdist 用于并行运行测试
spglib 用于某些与对称性相关的特性
使用系统软件包管理器进行安装
Linux
主要的 GNU/Linux 发行版提供了 python3-ase (Debian 和 Ubuntu 衍生品、Fedora、Red Hat) 或 python-ase (Arch) 包,你可以在系统上安装。这将管理依赖关系,并使 ASE 可供所有用户使用。
Red Hat 需要 EPEL 存储库。
Max OSX(Homebrew)
通常不建议依赖 Mac 系统 Python。12.3 版本之前的 Mac OSX 版本包含一个旧的 Python, 它与 ASE 不兼容,并且缺少 pip 包管理器。从 12.3 版本开始,Mac OS 已经迁移到较新的 Python 版本,但默认情况下可能不会安装。随着时间的推移,Mac 上使用 Python 的不同方法变得流行起来,事情可能会变得有点混乱。
在下一节中描述的使用 pip 安装 ASE 之前,Mac 用户需要安装适当的 Python 版本。一种方法是使用 Homebrew 包管理器,它提供最新版本的 Python 3 和 ase gui 所需的 tkinter 库:
brew install python-tk
请注意,Homebrew 只允许 pip 安装到虚拟环境中。欲了解更多关于 Brewed Python 的信息,请参阅本指南。
使用 pip 从 PyPI 安装
安装 ASE 最简单的方法是使用 pip, 它会自动从 PyPI 获取源代码:
pip install --upgrade ase
如果您打算运行测试,请使用:
pip install --upgrade ase[test]
本地用户安装
如果您使用的是 virtualenv、Conda 或其他用户级 Python 安装,上述命令应该可以工作。
如果你的 Python/pip 是由系统管理员或软件包管理员提供的,你可能没有适当的权限来将 ASE 及其依赖项安装到默认位置。在这种情况下,可以使用以下方式安装:
pip install --upgrade --user ase
这将在本地文件夹中安装 ASE,Python 可以自动找到它 (~/.local 在 Unix 上,详情请参见此处)。命令行工具将安装在以下位置:
Unix and Mac OS X |
|
Windows |
|
请确保在 PATH 环境变量中包含该路径。
从源代码安装
作为 PyPI 的替代方案,你也可以从 tar-file 或 Git 获取源代码。
Tar 文件:
你可以在这里获取最新稳定版本的源代码 tar 文件:ase-3.26.0.tar.gz
解压缩并创建一个软链接:
tar -xf ase-3.26.0.tar.gz
ln -s ase-3.26.0 ase
这里是安装包清单。
或者,你可以像这样从 ase/ase 获取最新稳定版本的源代码:
git clone -b 3.26.0 https://gitlab.com/ase/ase.git
或者,如果你想要开发版本:
git clone https://gitlab.com/ase/ase.git
使用 Git 克隆文件或 tar 文件中的源代码,可以使用 pip install /path/to/source 安装代码,这将像从 PyPI 安装一样管理依赖项。(如果存在权限问题,请参阅上面的本地用户安装。) 或者,可以将~/ase 添加到 PYTHONPATH 环境变量中,并将~/ase/bin 添加到 PATH 中 (假设~/ase 位于 ASE 文件夹所在的位置)。在这种情况下,你还负责安装 pyproject.toml 中列出的依赖项。
最后,请运行测试。
直接从 git 源代码安装 pip
如果你不打算进行进一步的开发,这是一种直接使用 pip 安装 “bleeding-edge” 主分支的方便方法:
pip install --upgrade git+https://gitlab.com/ase/ase.git@master
这里的 “--upgrade” 确保您始终重新安装,即使版本号未变。
我们还有针对较旧稳定版本的 ASE 的 Git 标签。请参阅发布说明,了解哪些标签可用。此外,还可以在那里找到较旧版本的发布日期。
测试您的安装
在运行测试之前,请确保您已按照上述相关部分所述正确设置了 PATH 环境变量。按以下方式运行测试:
ase test # takes 1 min
如果测试失败,请将输出发送给我们(官方客服)。
例如:About to run pytest with these parameters: usage: ase [-h] [--version] [-T] {help,info,test,gui,db,run,band-structure,build,dimensionality,eos,ulm,find,nebplot,convert,reciprocal,completion,diff,exec} ... ase: error: Cannot import pytest; please install pytest to run tests
ASE 需要 pytest 来运行测试,但系统没有安装 pytest:
继续测试:
开始使用
欢迎阅读 ASE 入门教程。这是一个起点。
如果你不熟悉 Python, 请阅读《What is Python?》。
如果你的 ASE 脚本广泛使用矩阵,你可能需要熟悉 Python 中的 Numeric 数组。
这些教程的目的是教授 ASE 在实际生产中使用的基础知识,它们被视为任何专业教程的先决条件。
这里以ASE的GUI模块为例进行学习
图形用户界面允许用户可视化、操作和渲染分子系统和原子对象。它还允许设置和运行一系列计算,并可用于在不同文件格式之间传输。
ase-gui 基础和命令行选项
常见用途
使用 ASE 的 GUI 直接使用普通鼠标可视化系统。滚动功能允许改变放大比例,左边的鼠标按钮选择原子,右边的鼠标按钮允许旋转,中间的按钮允许在屏幕上平移系统。
根据选择的原子数量,ASE 的 GUI 会自动测量不同的量:
Selection | measurement |
---|---|
single atom | xyz position and atomic symbol |
two atoms | interatomic distance and symbols |
three atoms | all three internal angles and symbols |
four atoms, selected sequentially | Measures the dihedral angle, e.g. the angle between bonds 12 and 34 |
more than four atoms | chemical composition of selection. |
文件
ASE 的 GUI 程序可以读取 ASE 的 read () 函数能够理解的所有文件格式。
选择轨迹的一部分
可以使用类似 Python 的语法来选择配置的子集。不使用 Python 语法 list [start:stop:step], 而是使用 filaname@start:stop:step:
ase gui x.traj@0:10:1 # first 10 images
ase gui x.traj@0:10 # first 10 images
ase gui x.traj@:10 # first 10 images
ase gui x.traj@-10: # last 10 images
ase gui x.traj@0 # first image
ase gui x.traj@-1 # last image
ase gui x.traj@::2 # every second image
如果您想从多个文件中选择相同的范围,可以使用 - n 或 ——image-number 选项:
ase gui -n -1 *.traj # last image from all files
ase gui -n 0 *.traj # first image from all files
提示:键入 ase gui -h 以获取所有命令行选项的描述。
编写文件
ase gui -n -1 a*.traj -o new.traj
可能的格式包括:traj、xyz、cube、pdb、eps、png 和 pov。有关详细信息,请参阅 io 模块文档。
交互式使用
ASE 的 GUI 程序也可以直接从 Python 脚本或交互式会话中启动。
使用 ase.gui.gui.GUI.repeat_poll () 与 GUI 进行程序化交互,例如,监控正在进行的计算并实时更新显示。
NEB 计算
使用工具或 NEB 绘制能量屏障。
ase gui ——interpolate 3 initial.xyz final.xyz ——o interpolated_path.traj
从命令行绘制数据
将相对于第一幅图像能量的能量绘制成原子 0 和 5 之间距离的函数:
ase gui -g "d(0,5),e-E[0]" x.traj
ase gui -t -g "d (0,5),e-E [0]" x.traj > x.dat # 无 GUI, 将数据写入 stdout
符号与绘制数据函数中使用的符号相同。
默认值
使用~/.ase/gui.py 文件,可以设置某些默认值。如果该文件存在,则在初始化 ASE 中通常使用的变量和颜色后执行。可以更改绘制的默认图形,以及显示特定原子的默认半径。这个示例将显示图形中的能量演变和最大力,并显示半径为 1.6 埃的 Cu 原子 (Z=29)。
gui_default_settings[‘gui_graphs_string‘] =“i,e-min(E),fmax”
gui_default_settings[‘covalent_radii’] = [[29,1.6]]]
高对比度设置
在 2600 版本或更高版本中,可以更改用于绘制原子的前景和背景颜色,例如,在黑色背景上绘制白色图形。这可以在~/.ase/gui.py 中完成。
gui_default_settings[‘gui_foreground_color’] = ‘#ffffff’ #white
gui_default_settings[‘gui_background_color’] = ‘#000000’ #black
要更改图形的颜色方案,需要使用~/.matplotlib/matplotlibrc 文件以类似的方式更改 Matplotlib 的默认行为。
最后,窗口本身的颜色方案 (即菜单、按钮和文本等) 可以通过选择不同的桌面主题来更改。在 Ubuntu 中,可以通过在 “系统设置” 对话框的 “外观” 下选择 “HighContrastInverse” 主题,在深色背景上显示白色。