plinder.data.annotations.contact_areas#

Chain-pair contact areas from a Voronota-LT radical tessellation.

One tessellation of a biological assembly yields the exact contact area between every pair of chains in a single near-linear pass. Areas are Voronoi contact areas between van der Waals spheres expanded by a solvent probe, not buried SASA, so a pair of chains that never touch has no entry rather than zero.

Cost, measured on the complete icosahedral assembly of 7kmx (1.44 million heavy non-water atoms, 840 chains): about 13 s and 3.2 GB of peak memory, i.e. roughly 9 µs and 2.2 KB per atom, almost all of it inside the C++ tessellation. Callers that process arbitrary assemblies should cap the atom count (see tessellation_atom_limit on plinder.data.annotations.aggregate_annotations.Entry).

plinder.data.annotations.contact_areas.DEFAULT_PROBE_RADIUS = 1.4#

Solvent probe radius (Å) added to every atom before tessellating.

plinder.data.annotations.contact_areas.tessellation_atom_mask(atoms: AtomArray) → NDArray[bool][source]#

Select the atoms that take part in a tessellation: heavy, non-water.

plinder.data.annotations.contact_areas.chain_pair_contact_areas(atoms: AtomArray, *, probe: float = 1.4) → dict[tuple[str, str], float][source]#

Return the Voronota-LT contact area (Ų) between every pair of chains.

Hydrogens and waters are excluded before tessellating, so waters count as solvent rather than as a chain. Radii follow Voronota-LT’s molecular assignment rules keyed on residue and atom names.

Parameters:
atomsstruc.AtomArray

Atoms of one biological assembly (or any set of chains) carrying the ins_code annotation biotite reads from mmCIF.

probefloat

Solvent probe radius in Å added to every atom.

Returns:
dict[tuple[str, str], float]

Contact area per unordered chain pair, keyed by the lexicographically sorted (chain_a, chain_b) tuple. Pairs without contact are absent.

plinder.data.annotations.contact_areas.partner_contact_areas(chain_pair_areas: Mapping[tuple[str, str], float], member_chains: set[str]) → dict[str, float][source]#

Sum the contact area of one molecule’s chains with every other chain.

member_chains are the instance chains forming one molecule (several for a covalently linked multi-chain ligand); contacts between member chains are internal and ignored. The result maps each partner chain to its total contact area with the molecule, sorted by chain ID.