ECENet-4.8M (SPICE)

ECENet is an O(2)-equivariant line-graph interatomic potential: the edges of the atomic graph carry the features, expressed in a frame aligned with each edge, and messages pass between edges through their shared atoms. This checkpoint is the larger of the two models trained on the MACE-OFF split of SPICE, with latent Ewald summation (LES) for long-range electrostatics. It predicts energies, forces, and latent atomic charges and bond dipoles, from which molecular dipoles and Born effective charges can be obtained without any training on charges.

Paper: ECENet: An Edge Cluster Expansion Line Graph Neural Network, A. LaCour and T. Head-Gordon (in preparation). Code: https://github.com/THGLab/ECEnet

Model

parameters 4,826,077
elements H, C, N, O, F, P, S, Cl, Br, I
cutoff 5.0 Å (edges and atomic bases)
angular truncation ℓ_max = 3, m_max = 2
radial basis 16 sinc functions, cosine cutoff
channels per (ℓ, m) 42; bottleneck 256; 16 azimuthal grid points
message passing 3 layers, width 128, 6 gating heads
read-out invariant MLP [512, 512] × enveloped radial basis
long-range LES: latent charges + bond dipoles per edge, σ = 1.5 Å, scale 0.1
precision trained in float32 (TF32, then plain float32)
energy units eV (per-element references stored in the checkpoint)

Training

MACE-OFF23 split of SPICE v1 (neutral molecules of the ten elements above, ion pairs removed): 900,000 training and 51,005 validation structures from the released training file, evaluated on the standard 50,195-structure test set. Huber loss (δ = 0.0025) on per-atom energies (weight 10) and force components (weight 0.5); AdamW, learning rate 5×10⁻⁴ halved at seven milestones, 300 epochs with TF32 followed by 20 epochs in full float32; 16 A100 GPUs. The exact driver is train.py in this repository; the weights are those of the epoch with the lowest weighted validation error.

Usage

Install ECENet and the optional les package (required for this checkpoint):

git clone https://github.com/THGLab/ECEnet && cd ECEnet
pip install -e ".[les]"
from ase.io import read
from ecenet.calculator import load_calculator

calc = load_calculator("ecenet-4.8m-spice.mdl")     # picks the LES calculator automatically
atoms = read("molecule.xyz")
atoms.calc = calc
energy = atoms.get_potential_energy()               # eV, short-range + long-range
forces = atoms.get_forces()                         # eV/Å
charges = atoms.get_charges()                       # latent charges (e; global sign arbitrary)
dipoles = calc.results["les_dipoles"]               # latent bond dipoles per atom (e·Å)

Pass device="cuda" to load_calculator for GPU inference. For molecular dynamics with charge, dipole and Born-effective-charge output along the trajectory, see examples/run_md_xyz.py in the code repository (--dump_charges, --dump_bec). Periodic systems are supported (Ewald summation for the long-range term).

Intended use and limitations

  • Organic and biomolecular systems within the ten SPICE elements; neutral systems only (no charged species in the training data).
  • The long-range energy is quadratic in the latent charges, so their overall sign is not determined by training: it is consistent within the checkpoint but not physically pinned. Molecular dipoles from Σ(qᵢ − q̄) rᵢ + Σ uᵢ are meaningful up to this sign.
  • Trained on isolated molecules and small clusters; bulk-phase behaviour (liquid water structure and IR spectrum) is demonstrated in the paper but was not part of training.

Licensing

The ECENet code and these weights are released under the UC Regents license in LICENSE.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support