Electric Field
Briefs
The electric_field_strength_at_along function calculates the electric field strength at a specified point between two atoms based on their coordinates and charge, optionally considering a specified direction, and supports different units for the result.
Input/Output
Input
Params: The stru, p1, p2, d1, and region_pattern are required input
stru:A Structure() object which represents the structure of the target enzyme. MUST have charges assigned for ligands. (See examples).
How to obtain
A protein strutcuture object can be obtained by this APIs.Normally, the EF is calculated based on structures sampled from MD or other sampling methods.
p1,p2andd1: Specify where is the field strength is calculated.(p1,p2) - by 2 points (default: the center of them) and calculate along p1 -> p2(p1,d1) - by 1 point and along direction d1p1 and p2 can be Atom() objects or Cartesian coordinates.For example, a cartesian coordinates can be the center of an aromatic ring.How to obtain
Atom() objects can be obtained by these APIs.Cartesian coordinate can be defined as a tuple (e.g.: (1.0, 2.0, 3.0) )
region_pattern:The specified region within the structure serves as the origin of field charges.
How to obtain
The region_pattern uses the StructureSelection syntax defined here.Normally people exclude the solvent and substrate, which the target bond is in, from the selection region.
Output
Output: A specified field strength in default unit kcal/(mol*e*Ang). The direction is from p1 to p2 or along the d1 direction
Arguments
stru:The target enzyme’s structure must be initialized with charges. (See Input/Output)
p1,p2andd1:To calculate the electric field within an enzyme, input a location and either a direction (d1) or two points (p1, p2), ensuring enzyme charges are included; d1 defines the field strength projection direction. (See Input/Output)
location:- The location of the measurement when 2 points are specified.Supported keywords: [center, p1, p2] (default: center)
Reference
REF: EnzyHTP: A High-Throughput Computational Platform for Enzyme Modeling (https://pubs.acs.org/doi/full/10.1021/acs.jcim.1c01424)
region_pattern:The specified region within the structure serves as the origin of field charges, utilizing PyMOL selection syntax. Users should exclude the solvent or substrate from the selection region if they intend to measure a bond within the same molecule. The instruction can be founded as APIs.
unit:- The unit of the result.Supported keywords: [kcal/(mol*e*Ang), MV/cm] (default: kcal/(mol*e*Ang))
Example code
In this example, we will use the script to calculate the electric field between the breaking C-H of the substrate in a KE07 variant.
How input is prepared
struobtained by reading from a
PDB fileusingPDBParser().get_structure()Note that we also assigned the charge and spin using.assign_ncaa_chargespin()method. (See Details)p1, p2They are obtained by the
.get()method from Structureregion_patternwe excluded the reacting residue (A.101) and the substrate (B.254)
import os
import numpy as np
from enzy_htp.analysis import ele_field_strength_at_along
from enzy_htp import PDBParser
# Initialize PDB parser
sp = PDBParser()
# Load structure from PDB file
stru_obj = sp.get_structure("KE.pdb")
# Assign charges to the structure
stru_obj.assign_ncaa_chargespin({"H5J" : (0,1)})
# Define the target bond as p1, p2
p1 = test_stru.get("B.254.CAE")
p2 = test_stru.get("B.254.H2")
# Calculate electric field strength along the bond
result = ele_field_strength_at_along(stru_obj, p1, p2, region_pattern="chain A and (not resi 101)",)
print("Electric field strength:", result)
Author: Xinchun Ran <xinchun.ran@vanderbilt.edu>