Skip to content

Releases: dralgroup/mlatom

MLatom 3.25.3

Choose a tag to compare

@dralgroup dralgroup released this 10 Sep 02:35
  • Fixed: transition-state optimizations and IRC runs handed geomeTRIC an initial Hessian in the wrong unit — Hartree/Angstrom^2 where geomeTRIC expects Hartree/Bohr^2, about 3.6 times too large, so the optimizer started from a badly scaled Hessian. Paths and the steps taken to reach them change.
  • Fixed: KREG Hessians were missing a term — the second derivative of the reduced-distance descriptors was not included, so every predicted Hessian was wrong.
  • Fixed: density fitting with PySCF returned an energy that was not the energy — for methane at B3LYP/6-31G, density_fitting=True gave -0.73 Hartree where the answer is -40.51, and nothing was raised. The energy now comes from the calculation that actually ran.
  • Fixed: frequency calculations through ASE died on any structure with an imaginary frequencyoptprog=ase failed inside ASE with Too few vibration modes after selection, which is every saddle point.
  • The nudged elastic band now returns a band, and finds the saddle. Seven middle images instead of three, image-dependent pair-potential interpolation, the improved tangent, and FIRE in two stages: relax the band, then switch on the climbing image. What comes back is the relaxed path itself, reactant to product, available as geomopt.band and plottable with band.plot_energy_profile(); the transition state is the highest image. Previously the return value was a log of model calls in whatever order the optimizer asked, and the "transition state" was whichever image it touched last.
  • Fixed: nudged-elastic-band and dimer searches died on current ASE with Atoms object has no calculator before taking a step. Every image gets a calculator now.
  • Fixed: nudged-elastic-band and dimer transition-state searches failed on any recent ASE with No module named 'ase.neb'. ASE moved those into ase.mep.
  • Fixed: driving Gaussian for an MLatom method — geometry optimization, frequencies, IRC, QST2, IR — failed on a fresh install with only Failed to open output file from external program. MLatom writes that file through fortranformat, which it never declared as a dependency.
  • Fixed: $mlatom input.inp did not run at all from a pip-installed MLatom. The build stripped the executable bit from shell_cmd.py, so running it directly gave Permission denied. Every published wheel had this, 3.25.2 included. The mlatom command itself was unaffected.
  • Fixed: a MACE calculation left PyTorch in double precision for the rest of the session, so the next model built in the same session crashed with mat1 and mat2 must have the same dtype.
  • Fixed: three further places set PyTorch's default precision for the whole process and left it changed, one of them at import time.
  • Fixed: the ASE calculator kept the molecule and the optimization trajectory in module-level variables, so two calculations in one process shared them.
  • MLatom now allows the PyTorch versions it is actually tested withtorch from 2.1.2 up to but excluding 2.8, and torchani 2.2.x, replacing the exact pins torch==2.1.2 / torchani==2.2.3. Ranges rather than pins because PyTorch publishes no build newer than 2.2.2 for Intel Macs, where an exact pin made MLatom uninstallable.
  • AIMNet2 needs pip install "aimnet==0.0.1", the version our interface targets; the README said pip install aimnet, which installs a rewritten package that does not work with the models MLatom ships.
  • The documentation and READMEs now say plainly that MLatom is developed and tested on Linux, the only platform it is verified on; macOS is often usable but untested, and Windows is not supported.
  • If you run NumPy 2: MLatom ships a separate KREG binary for it, and that one has not been rebuilt since the Hessian fix above. The released package installs NumPy 1, where the fixed binary is the one used.

MLatom 3.25.2

Choose a tag to compare

@dralgroup dralgroup released this 20 Aug 03:43
  • AIQM3@DFT* can now be requested: MLatom did not recognize it as a method.
  • Fixed: reading Gaussian or ORCA output could fail with No module named 'rmsd' on a fresh install. rmsd is now installed together with MLatom.
  • Fixed: UV/Vis spectra lost the peaks they had computed when IPython was not installed.
  • Fixed: MLatomF could hang on long runs, and its error messages were not shown.
  • A method that needs a program you do not have now names that program and gives the command that installs it.
  • Molecular-orbital energies and occupations are available from the PySCF, xTB, Gaussian and ORCA interfaces.

MLatom 3.25.1

Choose a tag to compare

@dralgroup dralgroup released this 14 Aug 08:45

Three fixes, released a day after 3.25.0 because two of them were introduced or left behind by it.

  • Fixed: the ANI -D4 models used the wrong dispersion parameters on dftd4 4.0.0 and newer. They selected the term by functional name, and dftd4 4.0.0 reassigned that name to a different parameter set — 3.9 kcal/mol on an ethanol total energy, with nothing reported. 3.25.0 fixed this for AIQM1, AIQM2 and OMNI-P1 but not for these, although its release note said otherwise. No method now depends on how dftd4 resolves a functional name. By Pavlo O. Dral.
  • Fixed: import mlatom required PyTorch to be installed, because aiqm1.py imported it at module level without using it. Importing MLatom to parse an output or build a database no longer pulls in a deep-learning stack. By Pavlo O. Dral.
  • AIQM3's D3(BJ) term is given explicitly as well. Results are unchanged. By Pavlo O. Dral.

We still recommend dftd4 3.6.0 — that is the version MLatom is tested against. Pinning the parameters makes the D4 energies identical on 4.x, but the test suite has not been run there, so Hessians and thermochemistry on 4.x are unverified.

Full notes: http://mlatom.com/docs/releases.html

MLatom 3.25.0

Choose a tag to compare

@dralgroup dralgroup released this 13 Aug 09:08
  • The universal models can now be fine-tuned on your own data. ANI, AIQM1, AIQM2, AIQM3, UAIQM, OMNI-P1 and OMNI-P2x are all fine-tuned through the same train() call as any other model, and the result is saved and loaded like any other model. A few dozen reference points are often enough to specialize a universal model to your system. See the fine-tuning tutorial. By Yi-Fan Hou, Pavlo O. Dral, and Mikołaj Martyka.
  • Standardized database to handle data from several methods. A molecule records where its labels came from (molecule.label_source), a property can be addressed by its source (mol.get_property('wb97x.energy_gradients')), and a database keeps a registry of the sources it holds (molecular_database.label_sources). Databases can be written to and read back from HDF5. By Pavlo O. Dral.
  • Fixed: a weighted_sum model tree applied its weights to only the first molecule of a database, so every multi-molecule weighted sum was in effect unweighted. This affected all DENS predictions. By Pavlo O. Dral.
  • Fixed: AIQM1, AIQM2, OMNI-P1 and the ANI -D4 variants were using the wrong dispersion parameters if the user used dftd4 v4 and newer instead of the recommended dftd4 v3. That release renamed wb97x to wb97x-2008 and gave the name wb97x to a different functional, so asking for it by name silently selected another functional's damping. MLatom now gives dftd4 the parameters explicitly, which selects the same functional on every dftd4 version. Binding energies and anything else sensitive to contact distances were affected. Results on dftd4 3.x are unchanged. If you have found AIQM2 to overbind noncovalent complexes, please try it again with this release. By Pavlo O. Dral.
  • Other bug fixes, including trajectory dumping (all hopping probabilities are now stored in h5md files, and text dumps skip properties an ensemble does not define) and the level argument of OMNI-P1. By Mikołaj Martyka, Yi-Fan Hou, and Pavlo O. Dral.

Full release notes: http://mlatom.com/docs/releases.html

MLatom 3.24.0

Choose a tag to compare

@dralgroup dralgroup released this 03 Aug 08:33

What's new in 3.24.0

  • MLatom now prints the references to cite for AIQM3, UAIQM, OMNI-P2x, ANI-1ccx-gelu, DFT ensembles, and for IR spectra calculated with AIQM models. — Pavlo O. Dral
  • Fixed the state energies read from MNDO's fort.15 when the requested gradient list does not start at the ground state. This affected the energies reported along a molecular dynamics trajectory, not the trajectory itself. — Mikołaj Martyka
  • Fixed the filtering of initial conditions, where the molecules kept in the filtered database were all the same object, so that their electronic states and energies overwrote each other. — Mikołaj Martyka
  • Downloading a model no longer hangs indefinitely on an unresponsive server, and a download that did not succeed is recognized as such instead of being kept as if it were the model: MLatom continues with the next download link and, if none of them work, reports where the files can be downloaded by hand. — @rayair250-droid and Pavlo O. Dral
  • Fixed the type annotation of molecule.nstates, which used np.int, removed in NumPy 1.24. — @rayair250-droid

Install: pip install -U mlatom

Full release notes: http://mlatom.com/docs/releases.html

MLatom 3.23.5

Choose a tag to compare

@dralgroup dralgroup released this 27 Jul 08:19

What's new in 3.23.5

  • Sampling now writes the training/subtraining/validation/test and cross-validation index files correctly to output paths that contain spaces (and portably across platforms), replacing shell cp/mv calls with shutil. — @rayair250-droid and Pavlo O. Dral

Install: pip install -U mlatom

Full release notes: http://mlatom.com/docs/releases.html

MLatom 3.23.4

Choose a tag to compare

@dralgroup dralgroup released this 15 Jul 00:35

What's new in 3.23.4

  • MLatom is now released under the Apache License 2.0.Pavlo O. Dral
  • Improved initial-conditions sampling: the random and Maxwell-Boltzmann velocity generators are now unified, with correct angular-momentum removal and linearity-aware degrees of freedom for linear molecules (so the target temperature is reached exactly) and reproducible sampling. — Pavlo O. Dral
  • Retuned and made more robust the state-gap loss used in OMNI-P2x fine-tuning and multi-state active learning (new default gap weight; safe handling when no state gaps are present). — Mikołaj Martyka
  • pip install mlatom now installs all required dependencies automatically — a plain pip install -U mlatom gives a working setup, with no manual dependency list. — Pavlo O. Dral
  • Fixed a crash when a method was queried while PySCF was not installed — unsupported methods are now reported as unsupported instead of raising an error. — Pavlo O. Dral
  • The package can now be installed directly from a source clone via pyproject.toml. — Pavlo O. Dral

Install: pip install -U mlatom

Full release notes: http://mlatom.com/docs/releases.html

MLatom 3.23.3

Choose a tag to compare

@dralgroup dralgroup released this 14 Jul 08:12

Bug fixes and performance improvements.


Install: pip install mlatom==3.23.3 · full release notes · documentation

MLatom 3.23.2

Choose a tag to compare

@dralgroup dralgroup released this 14 Jul 08:12

Bug fixes and performance improvements.


Install: pip install mlatom==3.23.2 · full release notes · documentation

MLatom 3.23.1

Choose a tag to compare

@dralgroup dralgroup released this 14 Jul 08:12

Bug fixes and performance improvements, including faster NAMD.


Install: pip install mlatom==3.23.1 · full release notes · documentation