Input Formats

July 1, 2026 · View on GitHub

Project/package name: dpa-adapt Python import: dpa_adapt Main CLI: dpa-adapt Optional short alias: dpaad Display name: DPA-ADAPT — Atomistic DPA Adaptation for Property Tasks

dpa-adapt data convert and the Python dpa_adapt.convert() helper auto-detect the input type and route it to the correct pipeline: SMILES table → RDKit 3D conformer generation, structure files → dpdata (auto-detect or explicit --fmt).

SMILES Tables (CSV)

Trigger: file extension .csv and a SMILES column. By default, the converter reads SMILES/smiles; use --smiles-col for other column names such as smi or mol. Or pass --fmt smiles explicitly.

ParameterDefaultDescription
--smiles-colSMILESColumn name for SMILES strings
--property-colPropertyInput table column to read target values from; also used as the output label name
--train-ratio0.9Fraction of samples used for training set
--mol-dirDirectory of pre-generated .mol, .sdf, .xyz, or .pdb structure files (skips RDKit 3D conformer generation)
--mol-templateid{row}.molFilename template under --mol-dir; use {row} for the CSV row index
--split-seed42Random seed for train/valid splitting
--conformer-seed42Random seed for RDKit 3D conformer generation
# Auto-detected via SMILES column
dpa-adapt data convert --input molecules.csv --output ./npy \
    --property-col homo
# Short alias
dpaad data convert --input molecules.csv --output ./npy \
    --property-col homo

# Explicit fmt + custom column names
dpa-adapt data convert --input data.csv --output ./npy --fmt smiles \
    --smiles-col smi --property-col GAP --train-ratio 0.85 \
    --split-seed 42 --conformer-seed 43
# Short alias
dpaad data convert --input data.csv --output ./npy --fmt smiles \
    --smiles-col smi --property-col GAP --train-ratio 0.85 \
    --split-seed 42 --conformer-seed 43

Structure Files via dpdata

Trigger: inputs not routed to the SMILES pipeline. This means --fmt is not smiles; when --fmt is omitted, CSV inputs are routed here only if they do not contain a recognized SMILES column. Calls dpdata for format auto-detection or explicit conversion.

Common Formats

--fmt valueTypical file(s)Notes
xyz*.xyzPlain XYZ
vasp/poscar / vasp/contcarPOSCAR, CONTCARVASP input/final structure
vasp/outcarOUTCARVASP output (energies, forces, stress)
vasp/xmlvasprun.xmlVASP XML output
vasp/stringVASP structure stringVASP structure from a string
abacus/stru / struSTRUABACUS input structure
abacus/scf / abacus/pw/scf / abacus/lcao/scfSCF outputABACUS SCF calculation
abacus/md / abacus/pw/md / abacus/lcao/mdMD outputABACUS molecular dynamics
abacus/relax / abacus/pw/relax / abacus/lcao/relaxRelax outputABACUS relaxation
cp2k/aimd_outputCP2K MD outputCP2K AIMD output file
cp2k/outputCP2K SCF outputCP2K single-point output
deepmd/rawset.*/ dirsDeePMD-kit raw format
deepmd/comp / deepmd/npyset.*/ dirsDeePMD-kit compressed/npy format
deepmd/npy/mixedmixed deepmd/npy dirDeePMD-kit mixed npy format
deepmd/hdf5*.hdf5DeePMD-kit HDF5 format
lammps/dump / dumpdump.*LAMMPS dump trajectory
lammps/lmp / lmp*.lmpLAMMPS data file
qe/cp/trajCP trajectoryQuantum ESPRESSO Car-Parrinello MD
qe/pw/scfPWscf outputQuantum ESPRESSO PWscf
siesta/outputSiesta outputSIESTA SCF output
siesta/aimd_outputSiesta MD outputSIESTA AIMD output
gaussian/log*.logGaussian log file
gaussian/fchk*.fchkGaussian formatted checkpoint
gaussian/mdGaussian MD outputGaussian MD trajectory
gaussian/gjf*.gjfGaussian input file
amber/mdAmber MD outputAmber MD trajectory
gromacs/gro / gro*.groGROMACS coordinate file
pwmat/output / pwmat/movement / pwmat/mlmdREPORT, MOVEMENT, MLMDPWmat output / movement / MLMD
pwmat/final.config / pwmat/atom.configfinal.config, atom.configPWmat final/input structure
fhi_aims/output / fhi_aims/mdFHI-aims output/MDFHI-aims calculation or MD trajectory
fhi_aims/scfFHI-aims SCF outputFHI-aims SCF
psi4/outPsi4 outputPsi4 calculation output
psi4/inpPsi4 inputPsi4 input file
orca/spoutORCA outputORCA single-point output
sqm/outSQM outputSQM output
sqm/inSQM inputSQM input
openmx/mdOpenMX MD outputOpenMX MD trajectory
n2p2n2p2 outputn2p2/NNPack output
dftbplusDFTB+ outputDFTB+ detailed.xml
mol / mol_file*.molMDL Molfile
sdf / sdf_file*.sdfMDL SDFile
ase/structureAny ASE formatASE structure (single frame)
ase/trajAny ASE trajectoryASE trajectory (multi-frame)
pymatgen/structurepymatgen objectspymatgen Structure
pymatgen/moleculepymatgen objectspymatgen Molecule
pymatgen/computedstructureentrypymatgen objectspymatgen ComputedStructureEntry
lmdbLMDB dirDeePMD-kit LMDB format
listList-format dirList of system directories
3dmol3Dmol format3Dmol.js format

You can omit --fmt and let dpdata infer the input format from the file name or content. For example, files named POSCAR, OUTCAR, or *.xyz are often recognized automatically. Use --fmt when the file name is ambiguous or auto-detection fails.

Single file

dpa-adapt data convert --input POSCAR --output ./npy
dpaad data convert --input POSCAR --output ./npy

dpa-adapt data convert --input OUTCAR --output ./npy --fmt vasp/outcar
dpaad data convert --input OUTCAR --output ./npy --fmt vasp/outcar

dpa-adapt data convert --input traj.xyz --output ./npy --fmt xyz
dpaad data convert --input traj.xyz --output ./npy --fmt xyz

Glob patterns

When --input contains wildcards (*, ?, [), conversion uses mirrored batch output:

  • 1 or more matches → each matched file is converted into an output directory that mirrors its path relative to the non-wildcard prefix.
  • 0 matchesFileNotFoundError.
  • A manifest.json is written into the output root, recording converted and skipped files.
# Glob output mirrors the input tree under ./npy_root
dpa-adapt data convert --input "calcs/**/OUTCAR" --output ./npy_root --fmt vasp/outcar
dpaad data convert --input "calcs/**/OUTCAR" --output ./npy_root --fmt vasp/outcar

For example, calcs/run1/OUTCAR is written as npy_root/run1/OUTCAR/. When --strict is set, the first conversion error fails immediately. Without it, errors are skipped and logged in the manifest.