Releases: dralgroup/mlatom
Release list
MLatom 3.25.3
- 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=Truegave -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 frequency —
optprog=asefailed inside ASE withToo 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.bandand plottable withband.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 calculatorbefore 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 intoase.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 throughfortranformat, which it never declared as a dependency. - Fixed:
$mlatom input.inpdid not run at all from a pip-installed MLatom. The build stripped the executable bit fromshell_cmd.py, so running it directly gavePermission denied. Every published wheel had this, 3.25.2 included. Themlatomcommand 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 with —
torchfrom 2.1.2 up to but excluding 2.8, andtorchani2.2.x, replacing the exact pinstorch==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 saidpip 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
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.rmsdis 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
Three fixes, released a day after 3.25.0 because two of them were introduced or left behind by it.
- Fixed: the ANI
-D4models 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 mlatomrequired PyTorch to be installed, becauseaiqm1.pyimported 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
- 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_summodel 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
-D4variants were using the wrong dispersion parameters if the user used dftd4 v4 and newer instead of the recommended dftd4 v3. That release renamedwb97xtowb97x-2008and gave the namewb97xto 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
h5mdfiles, and text dumps skip properties an ensemble does not define) and thelevelargument 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
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.15when 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 usednp.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
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/mvcalls withshutil. — @rayair250-droid and Pavlo O. Dral
Install: pip install -U mlatom
Full release notes: http://mlatom.com/docs/releases.html
MLatom 3.23.4
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
randomandMaxwell-Boltzmannvelocity 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 mlatomnow installs all required dependencies automatically — a plainpip install -U mlatomgives 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
Bug fixes and performance improvements.
Install: pip install mlatom==3.23.3 · full release notes · documentation
MLatom 3.23.2
Bug fixes and performance improvements.
Install: pip install mlatom==3.23.2 · full release notes · documentation
MLatom 3.23.1
Bug fixes and performance improvements, including faster NAMD.
Install: pip install mlatom==3.23.1 · full release notes · documentation