MMFF94 Force Field: atom types and partial charges


Sorry if it is repeated. I have seen some posts talking about MMFF94 forcefield and how partialcharges are assigned in avogadro, but any of them gives a complete answer.

I have 2 related questions:

  1. Which partial charges uses Avogadro for calculations, and can we add custom partial charges?
    As I read here ( Partial Charges ), Avogadro by default calculates Gasteiger-Marsili sigma charges. But, if I have my partial charges already calculated with other code, how can I make Avogadro to use that partialcharges? I have a .xyz file with the partialcharges as last column after the coordinates. If I open this file with jmol it shows my calculated partial charges correctly as labels. But if use Avogadro, the partial charges shown in labels are not my calculated partial charges, but the default ones; How can I tell it to show my own charges?. Connected to this question, is Avogadro using that partial charges when partial charges are required for other calculations (Dipole moment, Force fields…)?

  2. When I do an optimisation or a conformer search using MMFF94 in Avogadro, how it handles atom types and partial charges?
    Do I need to use an input structure file format (like .mol2) implicitly stating the atom types, or will Avogadro interpret them? If, for example, I provide a structure in .xyz format with only the coordinates for each atom, and any information about atom type or connectivity, and I perform a MMFF94 optimization; Are atoms automatically classified as different atom types as required for a correct calculation using MMFF94? If so, how can I know which is the assignment for each atom I am using in such optimization? I tried to save the structure in .mol2, but I am not sure if that are the assignments used for the MMFF94 calculation.

As I understood from here ( ), the MMFF94 uses partialcharges. Are this partialcharges calculated by MMFF94 or do we need to provide them? If you need to provide them, is it using the Avogadro’s defualt Gasteiger-Marsili sigma charges? Can we provide other partial charges calculated by other codes (as for example as last column in a .xyz file)?

Thank you very much.

Yours Faithfully.


There are a few things here.

  1. If you read in a file format with partial charges (e.g., Mol2) or a quantum chemistry output file, Avogadro will read those partial charges.
  2. If you read in XYZ + charge, that’s not recognized by Open Babel, so those charges won’t be read. Feel free to ask for this at but I’m not sure how standard that XYZ + charge format is outside of Jmol.
  3. Dipole moments are either extracted from quantum output files or calculated from partial charges.
  4. Atom types and partial charges are automatically assigned for MMFF94 calculations using Open Babel. You do not need to supply atom types.
  5. Partial charges for MMFF94 optimizations are MMFF94 charges. It won’t use other partial charges because the results wouldn’t be meaningful - MMFF94 is validated on a specific test set.

I think that got through everything… Hope that helps!

Thank you very much! That was very fast and useful.

Only last thing:

Atom types and partial charges are automatically assigned for MMFF94
calculations using Open Babel. You do not need to supply atom types.

Is there any way to check which atom type is assigning to each atom (for example saving the file in a specific format)? I just would like to be able to check that the assignments are correct.


From Avogadro, there is not currently a way. Using Open Babel’s Python API, there is a way. I’ll post the script in a bit.