jkqtplotter is now available on debian, and that means avogadro 2.0.0 is becoming available (ubuntu will follow soon after).
It would be nice to be able to test that jkqtplotter is doing its job properly.
Are there any available sample input files for generating the spectral plots that jkqtplotter enables?
The easiest are any vibrational calculations, but also TD-DFT or NMR calculations with ORCA, for example.
If you need some specifics, I’ll find a few and upload here.
Anything simple is fine, just to check that the visualisation is working fine
(by “input file” I mean the data file that avogadro would read, not the input file for the quantum chemical calculation
)
Here are a few examples, including Raman, IR, and NMR:
spectra.tar.gz (100.8 KB)
Looks likes it’s in working order.
This is with jkqtplotter 5.0.0~beta2+git20260626.e82cd41. I needed some extra patches to be able to build on i386.
caffeine.g98 however doesn’t seem to be working: the molecule loads but the Analyze “Plot Spectra” item is greyed out, as is “Vibrational Modes”. Maybe it’s a g98 reading issue rather than a jkqtplotter issue. Avogadro gets obabel (3.1.1) to read it as g92
OBProcess::executeObabel: Running "obabel" "-ig92 /build/test/spectra/caffeine.g98 -ocml"
But camphor and the two formaldehyde examples are showing their plots via “Plot Spectra”.
Any chance of openbabel 3.2.0, which adds cjson support? Looks like it’s already in experimental.
(Which reminds me, I have to release a 3.2.1 shortly.)
You’re right, openbabel 3.2.0 reads it as g98,
OBProcess::executeObabel: Running "obabel" "-ig98 /build/test/spectra/caffeine.g98 -ocml"
The Plot Spectra option still doesn’t show for caffeine.g98 though.
Yeah, it needs to detect that cjson is available as a format with obabel (e.g., JSON support is compiled in).
AFAIK, cml doesn’t have any support for spectra.
That’s an avogadrolibs to-do list item, right? If I use obabel on the command line to convert the caffeine.98 to -ocjson manually, then avogadro can read the caffeine.cjson file and is able to plot the IR spectrum.
The obabel pacakged with Mac, Windows, and AppImage all use cjson and have for several releases.
If you’re getting cml conversions, that means when launched, avogadro didn’t see cjson in the list of available formats. I don’t know which obabel it picked, but it will default to cjson if available.
Something very weird going on then. Here’s an example of the rest of the console output when trying to open caffeine.g98 from the gui
$ avogadro
Avogadroapp version: 2.0.0
Avogadrolibs version: 2.0.0
Qt version: 6.10.2
qt.core.qobject.connect: QObject::connect(QObject, Unknown): invalid nullptr parameter
SSL version: "OpenSSL 3.6.3 9 Jun 2026"
Using locale: "en_AU"
qt Translation successfully loaded.
AvogadroApp Translation "en_AU" loaded "/usr/bin/../share/avogadro2/i18n/"
Extension plugins dynamically found… 49
registering obmm plugins
OBProcess::executeObabel: Running "obabel" "-L formats read"
OBProcess::executeObabel: Running "obabel" "-L formats write"
OBProcess::executeObabel: Running "obabel" "-L forcefields"
OBProcess::executeObabel: Running "obabel" "-L charges"
OBProcess::executeObabel: Running "obabel" "-V"
"obabel" found: "obabel: Open Babel 3.2.0 -- Jun 28 2026 -- 13:25:33"
Checking for packages in "/home/user/.local/share/OpenChemistry/Avogadro/plugins"
Checking for packages in "/usr/share/gnome/OpenChemistry/Avogadro/plugins"
PackageManager::scanDirectory: directory does not exist: "/usr/share/gnome/OpenChemistry/Avogadro/plugins"
Checking for packages in "/usr/local/share/OpenChemistry/Avogadro/plugins"
PackageManager::scanDirectory: directory does not exist: "/usr/local/share/OpenChemistry/Avogadro/plugins"
Checking for packages in "/usr/share/OpenChemistry/Avogadro/plugins"
PackageManager::scanDirectory: directory does not exist: "/usr/share/OpenChemistry/Avogadro/plugins"
Checking for packages in "/var/lib/snapd/desktop/OpenChemistry/Avogadro/plugins"
PackageManager::scanDirectory: directory does not exist: "/var/lib/snapd/desktop/OpenChemistry/Avogadro/plugins"
Load registered packages
Open Babel formats ready: 144
Setting default format to cjson.
update comparing "2.0.0" to "2.0.0"
OBProcess::executeObabel: Running "obabel" "-ig98 /build/test/spectra/caffeine.g98 -ocml"
So it does find Open Babel 3.2.0, and does declare default format cjson.
Nevertheless it’s still calling -ocml when reading the file.
It’s actually even weirder than that. If I repeat the exercise multiple times, it shows multiple variants of the Gaussian input format. There seems to be some randomness which one gets selected. I see variously -ig98, -ig03, -igal, -ig16, all with -ocml each time.
That’s not a big problem - it’s all the same code to Open Babel.
Not sure why it’s using ocml though.
I’ll look into it when I have a chance.