xnn.common.data.hub.ani1x#

ANI-1x dataset builder (single pyanitools HDF5 from figshare).

The ANI-1x data set holds ~5 million off-equilibrium conformations for H/C/N/O organic molecules, selected by active learning rather than the dense Normal-Mode Sampling of ani1. This is the data the ANI-1x model (xnn.dnn.models.ani.ANI.ani1x()) was trained on, so it is the natural companion to that preset. Unlike ANI-1 it also ships forces and several levels of theory in one ~5.6 GB file ani1x-release.h5. Each molecule is a top-level HDF5 group holding coordinates / atomic_numbers and a set of per-property datasets keyed <method>.<property> (e.g. wb97x_dz.energy, wb97x_dz.forces, ccsd(t)_cbs.energy). Not every property is computed for every conformation, so entries are NaN-masked per conformation on read.

Reference#

Smith et al., “Less is more: Sampling chemical space with active learning”, J. Chem. Phys. 148, 241733 (2018) (the ANI-1x model), and Smith et al., “The ANI-1ccx and ANI-1x data sets, coupled-cluster and density functional theory properties for molecules”, Sci. Data 7, 134 (2020) (the release used here). Data: https://doi.org/10.6084/m9.figshare.10047041 Format / reader spec: aiqm/ANI1x_datasets

Notes

  • Upstream energies are in Hartree, forces in Hartree/angstrom, and positions in angstrom. By default energies/forces are converted to eV and eV/angstrom (the convention used elsewhere in xnn); units="hartree" keeps the raw values.

  • level selects the level of theory. "wb97x_dz" (default, wB97X/6-31G(d) – the level the ANI-1x model was fit to) and "wb97x_tz" (wB97X/def2-TZVPP) carry forces; "ccsd(t)_cbs" (the ANI-1ccx target) is energy-only. The coupled-cluster subset also has its own registered name – load_dataset("ani1ccx") (see ani1ccx), which shares this builder and the cached release file.

  • The one ~5.6 GB file is downloaded once (cached and MD5-verified). Use max_molecules / max_conformations to cap the amount materialised – the full set will not fit in memory at once.

  • ANI-1x ships no official split. split in {"train", "val", "test"} applies a per-conformation 80/10/10 partition with a fixed seed, so splits are disjoint and reproducible; split=None returns {"all": ...}.

Classes

ANI1xBuilder()

Builder for the ANI-1x data set (active-learning DFT energies & forces).