dreid-forge 0.4.1

A pure Rust library and CLI that automates DREIDING force field parameterization by orchestrating structure repair, topology perception, and charge calculation for both biological and chemical systems.
Documentation
# ==============================================================================
#  Official DREIDING Force Field Parameters
#  Version: 1.1.0
#  Authors: Tony Kan, William A. Goddard III
# ==============================================================================

# ------------------------------------------------------------------------------
# §1. Global Force Constants
#    These are universal parameters used across all atom types.
# ------------------------------------------------------------------------------

[global]
bond_k = 700.0
bond_d = 70.0
angle_k = 100.0
inversion_k = 40.0
bond_delta = 0.01

# ------------------------------------------------------------------------------
# §2. Hydrogen Bond Parameters
#    Parameters for explicit hydrogen bonding terms (Eq. 38 in the paper).
# ------------------------------------------------------------------------------

[hydrogen_bond]
r0 = 2.75
d0_no_charge = 9.0
d0_explicit = 4.0

# ------------------------------------------------------------------------------
# §3. Atom Type Parameters
#    Per-type geometric and non-bonded parameters.
#
#    bond_radius : Single bond radius R°_I [Å] (Table I)
#    bond_angle  : Equilibrium angle θ°_J [degrees] (Table I)
#    vdw_r0      : van der Waals equilibrium distance [Å] (Table IV)
#    vdw_d0      : van der Waals well depth [kcal/mol] (Table IV)
#    vdw_zeta    : Exponential-6 ζ parameter (Table II)
# ------------------------------------------------------------------------------

[atoms]

# --- Hydrogen ---
"H_" = { bond_radius = 0.330, bond_angle = 180.0, vdw_r0 = 3.195, vdw_d0 = 0.0152, vdw_zeta = 12.382 }
"H_HB" = { bond_radius = 0.330, bond_angle = 180.0, vdw_r0 = 3.195, vdw_d0 = 0.0001, vdw_zeta = 12.0 }
"H_b" = { bond_radius = 0.510, bond_angle = 90.0, vdw_r0 = 3.195, vdw_d0 = 0.0152, vdw_zeta = 12.0 }

# --- Boron ---
"B_3" = { bond_radius = 0.880, bond_angle = 109.471, vdw_r0 = 4.02, vdw_d0 = 0.095, vdw_zeta = 14.23 }
"B_2" = { bond_radius = 0.790, bond_angle = 120.0, vdw_r0 = 4.02, vdw_d0 = 0.095, vdw_zeta = 14.23 }

# --- Carbon ---
"C_3" = { bond_radius = 0.770, bond_angle = 109.471, vdw_r0 = 3.8983, vdw_d0 = 0.0951, vdw_zeta = 14.034 }
"C_R" = { bond_radius = 0.700, bond_angle = 120.0, vdw_r0 = 3.8983, vdw_d0 = 0.0951, vdw_zeta = 14.034 }
"C_2" = { bond_radius = 0.670, bond_angle = 120.0, vdw_r0 = 3.8983, vdw_d0 = 0.0951, vdw_zeta = 14.034 }
"C_1" = { bond_radius = 0.602, bond_angle = 180.0, vdw_r0 = 3.8983, vdw_d0 = 0.0951, vdw_zeta = 14.034 }

# --- Nitrogen ---
"N_3" = { bond_radius = 0.702, bond_angle = 106.7, vdw_r0 = 3.6621, vdw_d0 = 0.0774, vdw_zeta = 13.843 }
"N_R" = { bond_radius = 0.650, bond_angle = 120.0, vdw_r0 = 3.6621, vdw_d0 = 0.0774, vdw_zeta = 13.843 }
"N_2" = { bond_radius = 0.615, bond_angle = 120.0, vdw_r0 = 3.6621, vdw_d0 = 0.0774, vdw_zeta = 13.843 }
"N_1" = { bond_radius = 0.556, bond_angle = 180.0, vdw_r0 = 3.6621, vdw_d0 = 0.0774, vdw_zeta = 13.843 }

# --- Oxygen ---
"O_3" = { bond_radius = 0.660, bond_angle = 104.51, vdw_r0 = 3.4046, vdw_d0 = 0.0957, vdw_zeta = 13.483 }
"O_R" = { bond_radius = 0.660, bond_angle = 120.0, vdw_r0 = 3.4046, vdw_d0 = 0.0957, vdw_zeta = 13.483 }
"O_2" = { bond_radius = 0.560, bond_angle = 120.0, vdw_r0 = 3.4046, vdw_d0 = 0.0957, vdw_zeta = 13.483 }
"O_1" = { bond_radius = 0.528, bond_angle = 180.0, vdw_r0 = 3.4046, vdw_d0 = 0.0957, vdw_zeta = 13.483 }

# --- Fluorine ---
"F_" = { bond_radius = 0.611, bond_angle = 180.0, vdw_r0 = 3.4720, vdw_d0 = 0.0725, vdw_zeta = 14.444 }

# --- Aluminum ---
"Al3" = { bond_radius = 1.047, bond_angle = 109.471, vdw_r0 = 4.39, vdw_d0 = 0.31, vdw_zeta = 12.0 }

# --- Silicon ---
"Si3" = { bond_radius = 0.937, bond_angle = 109.471, vdw_r0 = 4.27, vdw_d0 = 0.31, vdw_zeta = 12.0 }

# --- Phosphorus ---
"P_3" = { bond_radius = 0.890, bond_angle = 93.3, vdw_r0 = 4.15, vdw_d0 = 0.32, vdw_zeta = 12.0 }

# --- Sulfur ---
"S_3" = { bond_radius = 1.040, bond_angle = 92.1, vdw_r0 = 4.030, vdw_d0 = 0.344, vdw_zeta = 12.0 }
"S_R" = { bond_radius = 0.950, bond_angle = 120.0, vdw_r0 = 4.030, vdw_d0 = 0.344, vdw_zeta = 12.0 }
"S_2" = { bond_radius = 0.900, bond_angle = 120.0, vdw_r0 = 4.030, vdw_d0 = 0.344, vdw_zeta = 12.0 }

# --- Chlorine ---
"Cl" = { bond_radius = 0.997, bond_angle = 180.0, vdw_r0 = 3.9503, vdw_d0 = 0.2833, vdw_zeta = 13.861 }

# --- Gallium ---
"Ga3" = { bond_radius = 1.210, bond_angle = 109.471, vdw_r0 = 4.39, vdw_d0 = 0.40, vdw_zeta = 12.0 }

# --- Germanium ---
"Ge3" = { bond_radius = 1.210, bond_angle = 109.471, vdw_r0 = 4.27, vdw_d0 = 0.40, vdw_zeta = 12.0 }

# --- Arsenic ---
"As3" = { bond_radius = 1.210, bond_angle = 92.1, vdw_r0 = 4.15, vdw_d0 = 0.41, vdw_zeta = 12.0 }

# --- Selenium ---
"Se3" = { bond_radius = 1.210, bond_angle = 90.6, vdw_r0 = 4.03, vdw_d0 = 0.43, vdw_zeta = 12.0 }

# --- Bromine ---
"Br" = { bond_radius = 1.167, bond_angle = 180.0, vdw_r0 = 3.950, vdw_d0 = 0.370, vdw_zeta = 12.0 }

# --- Indium ---
"In3" = { bond_radius = 1.390, bond_angle = 109.471, vdw_r0 = 4.59, vdw_d0 = 0.55, vdw_zeta = 12.0 }

# --- Tin ---
"Sn3" = { bond_radius = 1.373, bond_angle = 109.471, vdw_r0 = 4.47, vdw_d0 = 0.55, vdw_zeta = 12.0 }

# --- Antimony ---
"Sb3" = { bond_radius = 1.432, bond_angle = 91.6, vdw_r0 = 4.35, vdw_d0 = 0.55, vdw_zeta = 12.0 }

# --- Tellurium ---
"Te3" = { bond_radius = 1.280, bond_angle = 90.3, vdw_r0 = 4.23, vdw_d0 = 0.57, vdw_zeta = 12.0 }

# --- Iodine ---
"I_" = { bond_radius = 1.360, bond_angle = 180.0, vdw_r0 = 4.15, vdw_d0 = 0.51, vdw_zeta = 12.0 }

# --- Alkali Metals ---
"Li" = { bond_radius = 1.530, bond_angle = 180.0, vdw_r0 = 2.451, vdw_d0 = 0.025, vdw_zeta = 12.0 }
"Na" = { bond_radius = 1.860, bond_angle = 90.0, vdw_r0 = 3.144, vdw_d0 = 0.500, vdw_zeta = 12.0 }
"K" = { bond_radius = 2.270, bond_angle = 90.0, vdw_r0 = 3.812, vdw_d0 = 0.035, vdw_zeta = 12.0 }
"Rb" = { bond_radius = 2.470, bond_angle = 90.0, vdw_r0 = 4.114, vdw_d0 = 0.040, vdw_zeta = 12.0 }
"Cs" = { bond_radius = 2.650, bond_angle = 90.0, vdw_r0 = 4.517, vdw_d0 = 0.045, vdw_zeta = 12.0 }

# --- Alkaline Earth Metals ---
"Mg" = { bond_radius = 1.600, bond_angle = 109.471, vdw_r0 = 3.000, vdw_d0 = 0.040, vdw_zeta = 12.0 }
"Ca" = { bond_radius = 1.940, bond_angle = 90.0, vdw_r0 = 3.472, vdw_d0 = 0.050, vdw_zeta = 12.0 }
"Sr" = { bond_radius = 2.150, bond_angle = 90.0, vdw_r0 = 3.760, vdw_d0 = 0.235, vdw_zeta = 12.0 }
"Ba" = { bond_radius = 2.170, bond_angle = 90.0, vdw_r0 = 3.970, vdw_d0 = 0.364, vdw_zeta = 12.0 }

# --- Transition Metals ---
"Ti" = { bond_radius = 1.470, bond_angle = 90.0, vdw_r0 = 4.540, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Mn" = { bond_radius = 1.390, bond_angle = 90.0, vdw_r0 = 2.800, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Fe" = { bond_radius = 1.285, bond_angle = 90.0, vdw_r0 = 4.540, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Co" = { bond_radius = 1.260, bond_angle = 90.0, vdw_r0 = 2.872, vdw_d0 = 0.014, vdw_zeta = 12.0 }
"Ni" = { bond_radius = 1.240, bond_angle = 90.0, vdw_r0 = 2.834, vdw_d0 = 0.015, vdw_zeta = 12.0 }
"Cu" = { bond_radius = 1.320, bond_angle = 90.0, vdw_r0 = 3.495, vdw_d0 = 0.005, vdw_zeta = 12.0 }
"Zn" = { bond_radius = 1.330, bond_angle = 109.471, vdw_r0 = 4.540, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Tc" = { bond_radius = 1.470, bond_angle = 90.0, vdw_r0 = 4.540, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Ru" = { bond_radius = 1.460, bond_angle = 90.0, vdw_r0 = 4.540, vdw_d0 = 0.055, vdw_zeta = 12.0 }
"Pd" = { bond_radius = 1.390, bond_angle = 90.0, vdw_r0 = 3.210, vdw_d0 = 0.048, vdw_zeta = 12.0 }
"Ag" = { bond_radius = 1.450, bond_angle = 180.0, vdw_r0 = 3.148, vdw_d0 = 0.036, vdw_zeta = 12.0 }
"Cd" = { bond_radius = 1.550, bond_angle = 109.471, vdw_r0 = 2.848, vdw_d0 = 0.228, vdw_zeta = 12.0 }
"Pt" = { bond_radius = 1.380, bond_angle = 90.0, vdw_r0 = 3.053, vdw_d0 = 0.080, vdw_zeta = 12.0 }
"Au" = { bond_radius = 1.360, bond_angle = 180.0, vdw_r0 = 3.293, vdw_d0 = 0.039, vdw_zeta = 12.0 }
"Hg" = { bond_radius = 1.550, bond_angle = 180.0, vdw_r0 = 2.200, vdw_d0 = 0.255, vdw_zeta = 12.0 }