schrodinger.application.jaguar.garza module

Holds functions relating to calculation of equations from Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

These functions are used in thermochemical_properties.py to calculate solvation entropy quantities. The functions are closely related to those in jaguar-src/main/garza.f and should be kept in-sync.

class schrodinger.application.jaguar.garza.SolvEntropyProps(trans: float | None = None, rot: float | None = None, vib: float | None = None, conc: float | None = None, omega_cav: float | None = None, epsilon_cav: float | None = None, eps_alpha_cav: float | None = None)

Bases: object

Dataclass holding the various contributions to the solvation entropy totals. All values have units of Ha/K

trans: float | None = None
rot: float | None = None
vib: float | None = None
conc: float | None = None
omega_cav: float | None = None
epsilon_cav: float | None = None
eps_alpha_cav: float | None = None
__init__(trans: float | None = None, rot: float | None = None, vib: float | None = None, conc: float | None = None, omega_cav: float | None = None, epsilon_cav: float | None = None, eps_alpha_cav: float | None = None) None
class schrodinger.application.jaguar.garza.SolventParams(mol_weight: float | None = None, density: float | None = None, volume: float | None = None, surface_area: float | None = None, radius_of_gyr: float | None = None, acentric_factor: float | None = None, dielectric_constant: float | None = None, expansion_coeff: float | None = None)

Bases: object

Solvent parameters for solvation entropy calculations. Extracted from output file or read in through cmdline arguments.

mol_weight: float | None = None
density: float | None = None
volume: float | None = None
surface_area: float | None = None
radius_of_gyr: float | None = None
acentric_factor: float | None = None
dielectric_constant: float | None = None
expansion_coeff: float | None = None
check_params() bool

Check that enough solvent parameters are defined to allow calculation of at least one solvation entropy flavor.

__init__(mol_weight: float | None = None, density: float | None = None, volume: float | None = None, surface_area: float | None = None, radius_of_gyr: float | None = None, acentric_factor: float | None = None, dielectric_constant: float | None = None, expansion_coeff: float | None = None) None
class schrodinger.application.jaguar.garza.SoluteParams(volume: float | None = None, surface_area: float | None = None, radius_of_gyr: float | None = None)

Bases: object

Solute parameters for solvation entropy calculations. Extracted from structure in output file.

volume: float | None = None
surface_area: float | None = None
radius_of_gyr: float | None = None
__init__(volume: float | None = None, surface_area: float | None = None, radius_of_gyr: float | None = None) None
class schrodinger.application.jaguar.garza.CalculatedParams(v_free: float | None = None, v_c: float | None = None, r_c: float | None = None, n_c: float | None = None)

Bases: object

Parameters that are calculated during solvation entropy calculations. Used in multiple equations so it is useful to store them.

v_free: float | None = None
v_c: float | None = None
r_c: float | None = None
n_c: float | None = None
__init__(v_free: float | None = None, v_c: float | None = None, r_c: float | None = None, n_c: float | None = None) None
class schrodinger.application.jaguar.garza.SolvEntropyParams(solvent: schrodinger.application.jaguar.garza.SolventParams = <factory>, solute: schrodinger.application.jaguar.garza.SoluteParams = <factory>, calculated: schrodinger.application.jaguar.garza.CalculatedParams = <factory>)

Bases: object

Dataclass holding all parameters for solvation entropy.

solvent: schrodinger.application.jaguar.garza.SolventParams
solute: schrodinger.application.jaguar.garza.SoluteParams
calculated: schrodinger.application.jaguar.garza.CalculatedParams
get_intermediate_args() tuple[float, float, float, float]

Helper function to make calls to calc_intermediates() take less space

get_acentric_args() tuple[float, float, float]

Helper function to make calls to calc_acentric() take less space

get_spt_args() tuple[float, float, float, float]

Helper function to make calls to calc_spt() take less space

__init__(solvent: schrodinger.application.jaguar.garza.SolventParams = <factory>, solute: schrodinger.application.jaguar.garza.SoluteParams = <factory>, calculated: schrodinger.application.jaguar.garza.CalculatedParams = <factory>) None
schrodinger.application.jaguar.garza.calc_st_params(st: schrodinger.structure._structure.Structure) tuple[float, float, float]

Given a Structure, calculate parameters relevant to calculation of solvation entropy.

Returns

Volume (ang^3), surface area (ang^2), and radius of gyration (ang) of Structure

schrodinger.application.jaguar.garza.calc_entropy_translation(mass: float, temp: float, vol: float) float

Calculate translational contribution of entropy according to ideal gas thermodynamic equations.

Parameters
  • temp – temperature in Kelvin

  • press – pressure in atomic units (Ha/bohr^3)

  • vol – volume in bohr^3

Returns

translational component of entropy

schrodinger.application.jaguar.garza.calc_intermediates(mol_weight: float, density: float, volume: float, solute_volume: float) tuple[float, float, float, float]

Calculate intermediate values used in solvation entropy See Eq’s 5-9 Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters
  • mol_weight – solvent molecule weight, g/mol

  • density – solvent density, g/ang^3

  • volume – solvent volume, ang^3

  • solute_volume – solute volume, ang^3

Returns v_free

Free volume per solvent molecule, ang^3,

Returns v_c

Solute cavity volume, ang^3

Returns r_c

Solute cavity radius, ang

Returns n_c

Number of hopping sites for solute in solvent, unitless

schrodinger.application.jaguar.garza.calc_rot_term(mass: float, temp: float, v_free: float, rad_gyr: float, r_c: float, n_c: float) float

Calculates the additional rotational term for solvation entropy according to Garza for a solute See last two terms of Eq 11 Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters
  • mass – Mass of solute in atomic units (electron mass’)

  • temp – Temperature, in Kelvin

  • rad_gyr – Solute radius of gyration, in ang

  • v_free – Free volume per solvent molecule, in ang^3

  • r_c – Radius of solute cavity, in ang

  • n_c – Average number of hopping sites, unitless

Returns garza_rot_entropy

additional rotational entropy term, Hartree/K

schrodinger.application.jaguar.garza.calc_accessible_cavities(v_free: float, v_solvent: float, v_solute: float, r_c: float) float

Calculates the average number of accessible cavities, n_c See Eq’s 7-9 Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters
  • v_free – Free volume per solvent molecule, ang^3

  • v_solvent – Volume of solvent molecule, ang^3

  • v_solute – Volume of solute molecule, ang^3

  • r_c – Solute cavity radius, ang

Returns n_c

number of accessible cavities

schrodinger.application.jaguar.garza.calc_shape_factor(surface_area: float) float

Calculates the shape factor for a given surface area. Given surface area of a sphere, find it’s radius and use that to find minimum bounding box. See Eq 16 Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters

surface_area – surface area, ang^2

Returns

Garza’s shape factor

schrodinger.application.jaguar.garza.calc_acentric(temp: float, solvent: schrodinger.application.jaguar.garza.SolventParams, solute: schrodinger.application.jaguar.garza.SoluteParams, v_free: float) float | None

Calculate the cavity entropy using acentric factor approximation. See Eq 13-23 in Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters
  • temp – Temperature, in Kelvin

  • solvent – Solvent parameters

  • solute – Solute parameters

  • v_free – Free volume per solvent molecule, ang^3

Returns garza_cavity_acentric

Cavity entropy using acentric factor approx, Ha/K

schrodinger.application.jaguar.garza.calc_spt(temp: float, volume: float, dielectric: float, exp_coeff: float, solute_volume: float) tuple[float | None, float | None]

Calculate the epsilon and epsilon,alpha cavity entropies using Garza’s scaled particle theory (spt). See Eq 25-32 in Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Note that in communication with Garza, he mentioned that Eq 25 is missing a factor of “y” in the second term. The equations are correct in the ref.

Parameters
  • temp – Temperature, in K

  • volume – Solvent volume, in ang^3

  • dielectric – Solvent permittivity (dielectric constant), no units

  • exp_coeff – Solvent expansion coefficient, in 1/K

  • solute_volume – Solute volume, in ang^3

Returns epsilon_val

S_epsilon, Ha/K

Returns eps_alpha_val

S_epsilon,alpha in Ha/K

schrodinger.application.jaguar.garza.calc_concentration_term(temp: float, pressure: float) float

Calculates concentration change contribution to solvation entropy. Assumes standard states, converting from given pressure to 1 M See Eq 33 Garza, A. J. Chem. Theory Comput. 2019, 15, 5, 3204–3214 DOI: 10.1021/acs.jctc.9b00214

Parameters
  • pressure – pressure in APU (Ha/bohr^3)

  • temp – temperature in K

Returns

concentration term of solvation entropy, Ha/K

schrodinger.application.jaguar.garza.print_solvation_entropy(temp: float, pressure: float, enthalpy: float, results: schrodinger.application.jaguar.garza.SolvEntropyProps)

Print solvation entropy results in a nice table

Parameters
  • temp – Temperature in Kelvin

  • pressure – pressure in APU

  • enthalpy – enthalpy in Hartree

  • results – solvation entropy values in Ha/K