neurosnap.algos.ec_interface module#

Electrostatic complementarity (EC) quantification for binder-target chain pairs in protein complexes. Written by Danial Gharaie Amirabadi and Keaun Amani, based on the algorithm from: Airlie J. McCoy, V. Chandana Epa, and Peter M. Colman. Electrostatic complementarity at protein/protein interfaces (edited by B. Honig). Journal of Molecular Biology. 1997;268(2):570–584.

EC is calculated as EC = -(r_b + r_t)/2 where r_b and r_t are the Pearson correlations of the two partners’ electrostatic potentials on the buried surfaces of the binder and target, respectively. Because of the leading minus sign, larger (more-positive) EC values correspond to stronger complementarity (perfect complementarity gives +1, identical surfaces -1).

Key features#

  • Biopython interface detection using a heavy-atom distance cutoff.

  • PDB2PQR protonation plus charge and radius assignment.

  • APBS continuum electrostatics (compatible with all 1.x–3.x builds): - auto-builds a padded box, - supplies required legacy keywords (glen/gcent/sdens), - handles .dx.gz, rank-tagged PE files, and subdir output.

  • Stepwise logging for debugging and provenance.

  • Automatic cleanup of temporary files.

neurosnap.algos.ec_interface.compute_ec(protein, chain1, chain2, *, cutoff=4.5, forcefield='AMBER', pdb2pqr='pdb2pqr', apbs='apbs', verbosity=1)[source]#

Compute electrostatic complementarity (EC) and Pearson correlations (r_b, r_t) for an order-invariant interface chain pair in a Protein.

Parameters:
  • protein (Protein) – Protein containing the interface chains.

  • chain1 (str) – Chain identifier for the first interface chain.

  • chain2 (str) – Chain identifier for the second interface chain (order does not matter).

  • cutoff (float) – Heavy-atom distance cutoff (Å) used to define interface atoms.

  • forcefield (str) – PDB2PQR force field name (e.g., AMBER).

  • pdb2pqr (str) – Path to the pdb2pqr executable.

  • apbs (str) – Path to the apbs executable.

  • verbosity (int) – Set to 1 for normal verbosity, set to 0 to mute info logs.

Returns:

(ec, r_b, r_t), or (nan, nan, nan) when insufficient interface samples.

Return type:

tuple[float, float, float]

neurosnap.algos.ec_interface.parse_chain_pairs(spec)[source]#

Convert ‘A:B,B:C’ → [(‘A’,’B’), (‘B’,’C’)].

Return type:

List[Tuple[str, str]]

neurosnap.algos.ec_interface.write_single_chain_pdb(structure, chain_id, outfile)[source]#

Write only chain_id to PDB.

Return type:

None