Calculates MMFF94 partial charges for the atoms of a molecular graph.
The partial atomic charges are constructed from initial full or fractional formal atomic charges \( q_I^0 \) (usually zero, but, e.g., +1/3 for guanidinium nitrogens) by adding contributions from bond charge increments \( w_{KI} \) which describe the polarity of the bonds to atom i from attached atoms k. Thus, \( w_{KI} \) is the contribution to the total charge on atom i of atom type I accumulated from, and at the expense of, its bonded neighbor k of atom type K. Specifically, MMFF computes \( q_i \) as
\( q_i = (1 - M_I \: u_I) \:q_I^0 + \sum (u_K \: q_K^0) + \sum w_{KI} \)
where \( w_{KI} = -w_{IK} \) and where the sums on the right hand side run over the \( M_I = crd(I) \) atoms k of MMFF atom type K directly attached to atom i ( \( crd(I) \) comes from "MMFFPROP.PAR"). In this equation, \( q_I^0 \) and \( q_K^0 \) are the formal charges assigned in the atom typing procedure (usually, by subroutine XTYPE), and the sum of the first two terms gives the "effective" fractional formal atomic charge residing on atom i. This approach allows a formal atomic charge initially affixed by the atom-typing procedure (e.g., \( q_I^0 \)) to be shared in a prescribed manner with the neighbors bonded to the atom in question. For example, for the series PO4(-3), HPO4(-2), H2PO4-, H3P04, it allows allows the partial charges on the terminal oxygens (each represented by the same numerical atom type, "32") to vary in a way which properly reflects the partial charges obtained from fits to the 6-31G* electrostatic potential. In particular, the difference between the resultant charges \( q_i \) calculated for the single terminal oxygen in H3PO4 and for the four equivalent terminal oxygens in PO4(-3) comes to -0.375, half (because \( u_{32} = -0.5 \)) the difference of -0.75 in the \( q_K^0 \) charges (i.e., 0.00 and -0.75, respectively) and reasonably in accord with the difference of -0.42 found by fitting the electrostatic potential.
- Parameters
-
molgraph | The molecular graph for which to calculate partial atomic charges. |
charges | The output array storing the calculated partial charges. |
strict | If true , strict parameterization will be peformed that might fail. |