As I mentioned in the June Development Update, I’ve integrated a new framework for charges / electrostatics. It’s intended to be fairly general, since there are a variety of models to evaluate molecular electrostatics, not just sets of atomic partial charges.
I posted on Twitter, but I’m also interested in getting feedback on here. You’ll be able to write Python scripts to get atomic partial charges and/or electrostatic potential at sets of points (e.g., a molecular surface).
Here’s what I’ve heard so far:
Open Babel - I’ll select a few models, including Gasteiger, MMFF94, EEM, and EQEq
Right of the tip of my hat I do not recall which model is used in Jmol to assign the partial charges, but (perhaps with exception of O along C-O-C of the ester) the pattern looks very similar to the one depicted by you:
(prepared with Jmol version 14.32.60, released by 2022-06-06).
To replicate either:
via GUI: 1) load a structure .sdf with aspirine, 2) right mouse click on the canvas of the program to open the optional pull-down menu (not the one attached to the frame), select color → by scheme → partial charge.
Or 2), launch Jmol, then run File → Console for its own terminal. The sequence of commands used to generate the .png was:
load $aspirine; # the sole step relying on internet contact to NIH/cactus
color partialcharge;
label %[partialcharge];
set labeloffset 10 10;
# now reorient the model with the mouse
write "aspirine_Jmol.png";
exitJmol;
Affirmative for Jmol and using MMFF94. The assignment and subsequent of partial charges entered Jmol with version 12.3.24 distributed by May 2012 (entry 1, entry 2).
While atoms of “normal organic molecules” remain in the interval of [-1, +1], including e.g. N-pyridine oxide
I just noticed Jmol can display decimals outside this range. Only as example this is possible by the numbers, tert-butyl magnesium chloride displays -2.0 on the tertiary C and + 4.0 Mg:
with current Jmol (14.32.62) and loading the data on Jmol’s console by either