dpdata全部格式与实例导航
按1.1.0的84个别名、51个实际实现查找读取与导出实例,明确标签、单位和可选依赖。
阅读本篇目录
同一程序的不同输出文件,应选择对应格式;同一格式也可能有多个别名。本篇以集群安装的dpdata 1.1.0为准:84个别名对应51个实现,不把别名重复算成不同功能。每个实现都有可以定位到的读取、导出或对象操作例子,具体支持方向见下表。
1 准备实例包#
下载格式实例包,保存为dpdata-formats.zip。
python3 -m zipfile -e dpdata-formats.zip .
cd dpdata-formats
bash run.sh
最后一条列出示例名,选中一个再运行,例如bash run.sh qe-cp。脚本调用集群现有Python 3.11环境中的dpdata 1.1.0、NumPy等依赖,只读取、转换数据,不启动原计算程序。需要批作业时可用sbatch job.slurm qe-cp,只申请1个CPU。输出保存在results/。
数据来源分开看。 Si9训练标签和ABACUS示例来自鸢算科技此前的真实计算;FHI-aims、OpenMX、SIESTA、PWmat、AMBER等格式样本来自固定提交的dpdata官方示例。这批在集群实际运行的是解析和转换,并不把上游计算说成集群新跑的DFT或MD。包内SOURCES.json保存来源与文件哈希。
2 先选对数据模型#
|你有什么文件|使用对象|要注意什么|
|只有元素、晶胞、坐标|System|POSCAR、GRO、LAMMPS结构并不含DFT标签|
|真实能量、力、维里|LabeledSystem|字段必须确实存在;缺失不补零|
|多个化学组成或原子数|MultiSystems|按组成归并;混合格式要保留每帧类型|
|分子键级、形式电荷|BondOrderSystem|MOL/SDF需要RDKit,不能只保留XYZ坐标|
import dpdata
s = dpdata.System('POSCAR', fmt='vasp/poscar')
print(s.get_natoms(), s.data.keys())

图中蓝色表示这份样本有相应数组,白色表示未提供,金色表示对象或输入文件导出。晶胞数组可能只是非周期占位值,不能单凭这一列判断周期性;图展示样本字段,不承诺每个程序、版本或参数组合都会输出这些字段。
3 全部格式索引#
表中每条命令运行一个代表方向。只写不读的格式不做虚假的往返转换;别名共享同一实现,任选表中别名即可。
| 格式及别名 | 安装版支持方向 | 附件中的实际例子 |
|---|---|---|
3dmol |
结构/对象导出 | bash run.sh 3dmol-view |
abacus/lcao/md, abacus/md, abacus/pw/md |
标签读取 | bash run.sh abacus-md |
abacus/lcao/relax, abacus/pw/relax, abacus/relax |
标签读取 | bash run.sh abacus-relax |
abacus/lcao/scf, abacus/pw/scf, abacus/scf |
标签读取 | bash run.sh abacus-scf |
abacus/stru, stru |
结构读取、结构/对象导出 | bash run.sh structure-abacus-stru |
amber/md |
结构读取、标签读取 | bash run.sh amber-md |
ase/structure |
结构读取、标签读取、结构/对象导出、标签导出、多体系 | bash run.sh bridge-ase-structure |
ase/traj |
结构读取、标签读取、结构/对象导出、标签导出 | bash run.sh rw-ase-traj |
atom.config, final.config, pwmat/atom.config, pwmat/final.config |
结构读取、结构/对象导出 | bash run.sh structure-pwmat-atom.config |
contcar, poscar, vasp/contcar, vasp/poscar |
结构读取、结构/对象导出 | bash run.sh structure-vasp-poscar |
cp2k/aimd_output |
标签读取 | bash run.sh cp2k-md |
cp2k/output |
标签读取 | bash run.sh cp2k-scf |
deepmd, deepmd/raw |
结构读取、标签读取、结构/对象导出 | bash run.sh rw-deepmd-raw |
deepmd/comp, deepmd/npy |
结构读取、标签读取、结构/对象导出 | bash run.sh rw-deepmd-npy |
deepmd/hdf5 |
结构读取、标签读取、结构/对象导出、多体系 | bash run.sh rw-deepmd-hdf5 |
deepmd/hdf5/mixed |
结构/对象导出、多体系 | bash run.sh mixed-deepmd-hdf5-mixed |
deepmd/lmdb, lmdb |
结构读取、标签读取、结构/对象导出、标签导出、多体系 | bash run.sh rw-deepmd-lmdb |
deepmd/npy/mixed |
结构/对象导出、多体系 | bash run.sh mixed-deepmd-npy-mixed |
dftbplus |
标签读取 | bash run.sh dftb-NH3 |
dump, lammps/dump |
结构读取、结构/对象导出 | bash run.sh structure-lammps-dump |
extxyz, gpumd/xyz, mace/xyz, nequip/xyz, quip/gap/xyz, quip/gap/xyz_file |
标签读取、标签导出、多体系 | bash run.sh rw-extxyz |
fhi_aims/md, fhi_aims/output |
标签读取 | bash run.sh fhi-md |
fhi_aims/scf |
标签读取 | bash run.sh fhi-scf |
gaussian/fchk |
标签读取 | bash run.sh gaussian-fchk |
gaussian/gjf |
结构读取、结构/对象导出 | bash run.sh structure-gaussian-gjf |
gaussian/log |
标签读取 | bash run.sh gaussian-log |
gaussian/md |
标签读取 | bash run.sh gaussian-md |
gro, gromacs/gro |
结构读取、结构/对象导出 | bash run.sh structure-gromacs-gro |
lammps/lmp, lmp |
结构读取、结构/对象导出 | bash run.sh structure-lammps-lmp |
list |
结构/对象导出 | bash run.sh frame-list |
mlmd, movement, pwmat/mlmd, pwmat/movement, pwmat/output |
标签读取 | bash run.sh pwmat-md |
mol, mol_file |
分子键图 | bash run.sh bonds-charged-mol |
n2p2 |
标签读取、标签导出 | bash run.sh rw-n2p2 |
openmx/md |
结构读取、标签读取 | bash run.sh openmx-methane |
orca/spout |
标签读取 | bash run.sh orca-molecule |
outcar, vasp/outcar |
标签读取、多体系 | bash run.sh vasp-outcar |
psi4/inp |
结构/对象导出 | bash run.sh psi4-input |
psi4/out |
标签读取 | bash run.sh psi4-molecule |
pymatgen/computedstructureentry |
标签导出 | bash run.sh pymatgen-energy-entry |
pymatgen/molecule |
结构读取、结构/对象导出 | bash run.sh bridge-pymatgen-molecule |
pymatgen/structure |
结构读取、结构/对象导出 | bash run.sh bridge-pymatgen-structure |
qe/cp/traj |
结构读取、标签读取 | bash run.sh qe-cp |
qe/pw/scf |
标签读取 | bash run.sh qe-pw |
sdf, sdf_file |
分子键图 | bash run.sh bonds-sdf |
siesta/aimd_output |
结构读取、标签读取 | bash run.sh siesta-md |
siesta/output |
结构读取、标签读取 | bash run.sh siesta-scf |
sqm/in |
结构/对象导出 | bash run.sh sqm-input |
sqm/out |
结构读取、标签读取 | bash run.sh sqm-molecule |
vasp/string |
结构/对象导出 | bash run.sh vasp-string |
vasp/xml, xml |
标签读取 | bash run.sh vasp-xml |
xyz |
结构读取、结构/对象导出 | bash run.sh structure-xyz |
4 需要特别留意的接口#
vasp/string返回POSCAR字符串,读取字符串可用io.StringIO配合vasp/poscar;不要调用不支持的from vasp/string。3dmol返回查看器,适合交互显示,不是能量/力训练数据格式。- 当前
pymatgen/molecule写出端返回对象,读取端实际需要文件路径;见对象与混合体系教程。 psi4/inp、sqm/in生成输入,生成输入不等于已经完成量化计算。mol/sdf需要RDKit;3dmol需要py3Dmol。附件bash optional.sh仅向当前目录的addons/安装所需可选包,不修改公共环境。
格式数据如何核对,继续看电子结构程序输出、分子与AMBER输出、标签存储格式与结构格式。
图表数据与重新绘图#
bash plot.sh
图件保存在plots/,原数值另存于附件reference-data/。直接下载:AMBER-energy.csv、DFTB-NH3-geometry-forces.csv、Gaussian-CH4-trajectory.csv、Si9-reference.csv。