ASE专题

ASE数据库、结构筛选与文件比较

把结构及计算结果保存到数据库,按元素筛选,导出并检查几何与能量。

更新于 2026-10-28约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整脚本、实际输入、参考输出和四张高清图。在集群新解压目录执行 bash run.sh,结果写入 work/;使用ASE3.29.0、单进程和单线程,不调用GPU或新DFT计算。

1 先准备两个可解释的条目#

附件 bash run.sh 会建立Cu32 EMT结果和水分子几何两个条目。Cu条目保存能量、力、晶胞和坐标;水条目用于几何示例,没有把它标为DFT结果。

数据库中的Cu32与水分子条目

先进入生成的目录查看:

cd work/output
ase db samples.db
ase db samples.db 'Cu>0' --csv -c id,formula,natoms,energy
ase db samples.db 'label=Cu32' -l

包含 > 或 < 的条件要加引号,否则shell可能将它解释为重定向。SQLite数据库是本地文件,不需要启动额外数据库服务。

2 自己建立一个新库#

在 work/output 中选择一个尚不存在的库名,例如:

ase db my-data.db --add-from-file cu32-emt.extxyz -k label=Cu32,method=EMT
ase db my-data.db --add-from-file ../inputs/water.extxyz -k label=water,method=geometry
ase db my-data.db --count

这些命令会新增行;重复执行会继续添加,不能以为第二次运行只是更新。标签 label、method是自己定义的检索字段,能量与力则来自文件中真实保存的计算结果。

导出一个子集:

ase db my-data.db 'Cu>0' --insert-into cu-selected.json
ase db cu-selected.json

附件同时核对了导出前后能量、力和结构。数据库格式能保存的内容也取决于输入文件:如果原始文件没有力,数据库不会替你计算力。

3 用Python取出原子与数据#

from ase.db import connect
import numpy as np

db = connect('samples.db')
row = db.get(label='Cu32')
atoms = row.toatoms()
print(row.energy)                  # eV,整胞能量
print(len(atoms))                   # 32
print(np.max(np.linalg.norm(row.forces, axis=1)))

本例整胞能量为−0.214040597945eV;如果要每原子量,应明确除以32。JSON与SQLite条目经过同一数值检查,ID是各库内部标识,不应用ID跨库推定同一个结构。

4 修改字段和删除演示#

ase db samples.db 'label=Cu32' -k checked=1
ase db samples.db --insert-into temporary.db
ase db temporary.db 'label=water' --delete -y
ase db samples.db --count
ase db temporary.db --count

原库仍为2行,临时库为1行。这里删除的是刚创建的 temporary.db 中匹配的行;自己使用时先查询条件,确认库和条目正确。--insert-into同样会新增,练习时使用全新的目标库名。

5 搜索、比较和逐帧执行#

ase find ../inputs 'Cu>0' -i .extxyz
ase diff cu32.traj cu32-shift.traj --as-csv
ase exec -e 'print(index, len(atoms), atoms.get_volume())' cu32.traj

find只搜索你指定的结构目录;diff示例将一个原子沿x移动0.05Å,比较两份文件;exec对读取到的每帧执行自己给出的Python表达式。这里不应把任意来源的表达式直接执行。

这三个工具能快速检查批量转换,但不替代势函数、拓扑、电荷或原子编号映射的核对。

6 查看体系的几何维度#

ase dimensionality ../inputs/water.extxyz ../inputs/cu111.extxyz cu32.traj

维度工具根据成键连通和周期性判断分子、链、层、体相或混合维度,并输出相应评分。真空层、距离阈值和几何都会影响分析,不能仅以盒子三个方向都存在就认定是三维材料。水、Cu(111)薄层和Cu体相提供了三个可对照的实际结构。

数据库功能依据:ASE官方数据库文档。更复杂的数据库服务器、网络服务和权限管理不需要包含在这些本地文件操作中。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗