def get_free_energy_in_solution_method3( vac_conf: Chem.Mol, m_vac: list, m_solv: list, solv_conf, correct_for_symmetry: bool = False, ): if correct_for_symmetry: entropy_corr = calc_molecular_graph_entropy( solv_conf)[0].value_in_unit(unit.kilocalorie_per_mole) else: entropy_corr = 0.0 free_energy_in_solution = [] # iterating over gas confs, adding energy in gas/solvation and free energy in gas for each conf for m_v, m_s in zip(m_vac, m_solv): G_gas = float(m_v.GetProp("G with S_rot corrected")) + entropy_corr E_gas = float(m_v.GetProp("E_B3LYP_631G_gas")) E_solv = float(m_s.GetProp("E_B3LYP_631G_solv")) free_energy_in_solution.append( (G_gas + (E_solv - E_gas)) * unit.kilocalorie_per_mole) mols, e_list = prune_conformers(vac_conf, free_energy_in_solution, rmsd_threshold=0.1) return e_list
def get_min_free_energy_in_solution_method1(m_solv: list, correct_for_symmetry: bool = False ): # getting min values for vac/solv energy and free energy in vac if correct_for_symmetry: entropy_corr = calc_molecular_graph_entropy( m_solv[0])[0].value_in_unit(unit.kilocalorie_per_mole) else: entropy_corr = 0.0 G_solv_min = min([ float(m.GetProp("G with S_rot corrected")) + entropy_corr for m in m_solv ]) # getting min solvation free energty return G_solv_min * unit.kilocalorie_per_mole
def get_min_free_energy_in_solution_method3( m_vac: list, m_solv: list, solv_conf, correct_for_symmetry: bool = False): if correct_for_symmetry: entropy_corr = calc_molecular_graph_entropy( solv_conf)[0].value_in_unit(unit.kilocalorie_per_mole) else: entropy_corr = 0.0 # getting min values for vac/solv energy and free energy in vac dE_vac_min = min([float(m.GetProp("E_B3LYP_631G_gas")) for m in m_vac]) dE_solv_min = min([float(m.GetProp("E_B3LYP_631G_solv")) for m in m_solv]) G_vac_min = min([ float(m.GetProp("G with S_rot corrected")) + entropy_corr for m in m_vac ]) # getting min solvation free energty return (G_vac_min + (dE_solv_min - dE_vac_min)) * unit.kilocalorie_per_mole
def get_free_energy_in_solution_method1(solv_conf: Chem.Mol, m_solv: list, correct_for_symmetry: bool = False): free_energy_in_solution = [] if correct_for_symmetry: entropy_corr = calc_molecular_graph_entropy( solv_conf)[0].value_in_unit(unit.kilocalorie_per_mole) else: entropy_corr = 0.0 # iterating over gas confs, adding energy in gas/solvation and free energy in gas for each conf for m in m_solv: G_solv = float(m.GetProp("G with S_rot corrected")) + entropy_corr free_energy_in_solution.append(G_solv * unit.kilocalorie_per_mole) mols, e_list = prune_conformers(solv_conf, free_energy_in_solution, rmsd_threshold=0.1) return e_list