Future of the `avo_xtb` plugin

The overhaul of the plugin API for Avogadro 2.0 will be great for the xtb/CREST plugin that I wrote and maintain, and I plan to fully take advantage of the changes in a number of ways.

My intentions:

  • The plugin will be in the same repo on GitHub but the plugin itself will be renamed to simply xtb

  • The plugin will be split up into a CREST plugin and an xtb plugin, so you can just install what you need (and what your OS supports!)

  • There will no longer be menu commands that install xtb/CREST for you, because there will be no need for them – the plugin(s) will list the binaries of the programs themselves (xtb and crest) as conda-forge dependencies, and so they will be installed by Avogadro at the same time as the plugin. This will be much more convenient – installing the plugin(s) will give you everything set up and ready to go straight away!

  • xtb is not available for macOS other than on conda-forge, so this will make usage on macOS much more accessible too

  • There will be separate versions of the plugins available (xtb-lite & CREST-lite) without the conda-forge dependencies, so that anyone who doesn’t have Pixi but does have xtb or crest binaries installed (a reasonable number of Linux users) can still use the plugin(s)!

I intend for the revamped plugin(s) to be available for Avogadro 2.0 at release.

What might not be available immediately when 2.0 releases are the new features… The xtb plugin will take advantage of the ability to offer multiple types of plugin feature/functionality, and will see the addition of an xtb input generator, of electrostatic models for calculating partial charges, and hopefully also of energy models for the auto-optimization tool!

2 Likes

If it uses tblite or xtb-python as dependencies - both of these are trivial. Calculating bond orders for labels is also really nice. I’d recommend tblite since that seems to be the active development.

Electrostatics can be done through the xtb CLI, for example here (as an old-style plugin script)

I can send the old-style energy scripts, although I’ve now added a faster “transfer coordinates in binary not text” protocol that’ll take some work.

Yep, that’s how I was planning on doing it :slight_smile:

1 Like