Force functions#

openmicron.forcefield.functionterms.harmonic_bond_term(bond_info, use_pbc=False, force_group=1)[source]#

Harmonic bond term.

Parameters:
  • bond_info (pd.DataFrame) – Information for all bonds.

  • use_pbc (bool, optional) – Whether to use periodic boundary conditions. If False (default),then pbc would not apply to Harmonic bond force.

  • force_group (int) – Force group

Returns:

bond_force – OpenMM Harmonic bond force object

Return type:

Force

openmicron.forcefield.functionterms.harmonic_angle_term(angle_info, use_pbc=False, force_group=1)[source]#

Harmonic angle force term

Parameters:
  • angle_info (pd.DataFrame) – Information about all Hamonic angles

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to Harmonic angle force.

  • force_group (int) – Force group

Returns:

angle_force – OpenMM harmonic angle force object

Return type:

Force

openmicron.forcefield.functionterms.aicg13_angle_term(aicg13_ang_info, use_pbc=False, force_group=1)[source]#

aicg13 interaction is structure-based local contact potential to describe specific local interactions of the given protein structure.

Parameters:
  • aicg13_info (pb.DataFrame) – Information for all aicg13 angle interaction.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to aicg13 interaction.

  • force_group (int) – Force group

Returns:

aicg13_ang_force – Openmm force object

Return type:

Force

openmicron.forcefield.functionterms.flex_angle_term(flex_ang_info, use_pbc=False, force_group=1)[source]#

The flexible local potential was constructed by analyzing loop structures in protein structure database to enchance angle flexibility.

Parameters:
  • flex_ang_info (pb.DataFrame) – Information of flexible local potential for the virtual bond angles.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • force_group (int) – Force group.

Returns:

flex_ang_force – Openmm force object.

Return type:

Force

openmicron.forcefield.functionterms.native_dihd_term(nat_dihd_info, use_pbc=False, force_group=1)[source]#

ordinary dihedral angle potential.

Parameters:
  • nat_dihd_info (pd.DataFrame) – Information for all native dihedral.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • force_group (int) – Force group.

openmicron.forcefield.functionterms.aicg_dihd_term(aicg_dihd_info, use_pbc=False, force_group=1)[source]#

A structure-based local contact potential to describe the chirality of local interactions (dihedral angle of backbone) and reference from “Li, W., Wang, W., & Takada, S. (2014). Energy landscape views for interplays among folding, binding, and allostery of calmodulin domains. Proceedings of the National Academy of Sciences, 111(29), 10550-10555”.

Parameters:
  • aicg_dihd_info (pd.DataFrame) – Information for all aicg dihedral angle

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • force_group (int) – Force group.

Returns:

aicg_dihd_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.flex_dihd_term(flex_dihd_info, use_pbc=False, force_group=1)[source]#

a sequence dependence flexible local dihedral interaction flex_dihd_info : pd.DataFrame Information for all aicg dihedral angle

Parameters:
  • flex_dihd_info (pd.DataFrame) – Information for all flexible local dihedral angle

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • force_group (int) – Force group.

Returns:

flex_dihd_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.go_contact_term(native_contact_info, use_pbc=False, cutoff=2.5, force_group=1)[source]#

a typical Lenard-Jones(12-10) potential for native contact in go model

Parameters:
  • native_contact_info (pd.DataFrame) – Information for all native contact.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – cutoff = truncated distance. If cutoff is None, the potential will not be trancated.

  • force_group (int) – Force group.

Returns:

go_contact_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.kim_hummer_term(atom_resi_type, epsilon_map, sigma_map, exclusions, extra_exclusions=None, use_pbc=False, cutoff=4, force_group=1)[source]#

a non-specific and long-range interactoin bewteen amino acid driven by their hydrophobic, aromatic, or electrostatic character, which is a modified LJ type energy function and reference from “J. Mol. Biol. (2008) 375, 1416–1433”.

Parameters:
  • atom_resi_type (list, str) – the residue name of all atoms

  • epsilon_map (array) – the strength of specific residue pair

  • sigma_map (array) – the rest length of specific residue pair

  • exclusions (list) – pairs of neighbour particles whose interactions should be omitted from force and energy calculations.

  • extra_exclusions (list) – This represents the extra particle pairs that are neglected in the calculation of the Kim-Hummer potential.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – cutoff = truncated distance / rest length. If cutoff is None, the potential will not be trancated.

force_group: int

Force group.

Returns:

kim_hummer_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.ashbaugh_hatch(atom_resi_type, epsilon, sigma_map, lambda_map, exclusions, extra_exclusions=None, use_pbc=False, cutoff=4, force_group=1)[source]#

ashbaugh hatch potential that is a non-specific and long-range interactoin bewteen amino acid driven by their hydrophobic, aromatic, or electrostatic character, which is a modified LJ type energy function and reference from “Protein Science, 2021, 30(7): 1371-1379.”.

Parameters:
  • atom_resi_type (list, str) – the residue type of all atoms

  • epsilon (array) – the strength of specific residue pair

  • sigma_map (array) – the rest length of specific residue pair

  • exclusions (list) – particular pairs of particles whose interactions should be omitted from force and energy calculations.

  • extra_exclusions (list) – This represents the extra particle pairs that are neglected in the calculation of the potential.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – cutoff = truncated distance / rest length. If cutoff is None, the potential will not be trancated.

  • force_group (int) – Force group.

Returns:

Ash_Hat_contacts – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.excluded_term(atom_types, epsilon_map, sigma_map, exclusions, extra_exclusions=None, use_pbc=False, cutoff=2.5, force_group=1)[source]#

An excluded interaction between atoms is implemented to prevent overlap.

Parameters:
  • atom_type (list, int) – Atom type.

  • epsilon_map (array) – the strength of specific residue pair

  • sigma_map (array) – the rest length of specific residue pair

  • exclusions (list) – particular pairs of particles whose interactions should be omitted from force and energy calculations.

  • extra_exclusions (list) – This represents the extra particle pairs that are neglected in the calculation of the potential.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – cutoff = truncated distance / rest length. If cutoff is None, the potential will not be trancated.

  • force_group (int) – Force group.

Returns:

excluded_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.kh_and_ex_term(resi_type_list, atom_type_list, epsilon_map, sigma_map, atom_type_map, exclusions, extra_exclusions=None, use_pbc=False, cutoff_kh=2.5, cutoff_ex=2.0, force_group=1)[source]#

This function implements kim-hummer and excluded potential.

Parameters:
  • resi_type_list (int) – residual type.

  • atom_type_list (int) – Atom type.

  • epsilon_map (array) – the strength of specific atom pair

  • sigma_map (array) – the rest length of specific atom pair

  • exclusions (list) – particular pairs of particles whose interactions should be omitted from force and energy calculations.

  • extra_exclusions (list) – This represents the extra particle pairs that are neglected in the calculation of the potential.

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff_kh (float) – cutoff for kim-hummer potential. cutoff = truncated distance / rest length. If cutoff is None, the potential will not be trancated.

  • cutoff_ex (float) – cutoff for excluded potential. cutoff = truncated distance / rest length. If cutoff is None, the potential will not be trancated.

  • force_group (int) – Force group.

Returns:

KH_ex_force – OpenMM Force object

Return type:

Force

openmicron.forcefield.functionterms.debye_Huckel_bond_form(charge, exclusions, dieletric_constant=80, ion_strength=0.02, T=300, use_pbc=False, cutoff=20, force_group=1)[source]#

a Debye-Huckel potential is acheived by CustomBondForce

Parameters:
  • charge (pd.DataFrame) – include the index and charge quatity of pair atom

  • exclusions (list) – particular pairs of particles whose interactions should be omitted from force and energy calculations.

  • dieletric_constant (float) – dieletric constant

  • ion_strength (float, unit is mol/L) – salt-conentratoin,the default value 0.02 is correspond 20mM/L NaCl and ion_strength I=1 for 1M/L NaCl

  • T (float, unit.kelvin) – temperatur

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – ele_cutoff = (truncated distane/lamdaD). lamdaD is so-called Debye length

  • force_group (int) – Force group.

openmicron.forcefield.functionterms.debye_Huckel_nonbonded_form(charge, exclusions, dieletric_constant=80, ion_strength=0.02, T=300, use_pbc=False, cutoff=20, force_group=1)[source]#

a Debye-Huckel potential is acheived by CustomNonbondedForce

Parameters:
  • charge (list) – charge of each atoms

  • exclusions (list) – particular pairs of particles whose interactions should be omitted from force and energy calculations.

  • dieletric_constant (float) – dieletric constant

  • ion_strength (float, unit is mol/L) – salt-conentratoin,the default value 0.02 is correspond 20mM/L NaCl and ion_strength I=1 for 1M/L NaCl

  • T (float, unit.kelvin) – temperature

  • use_pbc (bool, optional) – Whether use periodic boundary conditions. If False (default),then pbc would not apply to force.

  • cutoff (float) – ele_cutoff = (truncated distane/lamdaD). lamdaD is so-called Debye length

  • force_group (int) – Force group.

Returns:

deb_huc_force – OpenMM Force object

Return type:

Force