Skip to main content

Definition

The PAE energy is the mean predicted alignment error between two residue groups, normalized by a maximum PAE value. EPAE=1NpairsαG1,βG2PAEαβPAEmaxE_{\mathrm{PAE}} = \frac{1}{N_{\mathrm{pairs}}} \sum_{\alpha \in G_1, \beta \in G_2} \frac{\mathrm{PAE}_{\alpha\beta}}{\mathrm{PAE}_{\max}}
  • PAEαβ\mathrm{PAE}_{\alpha\beta} is the predicted alignment error between residues α\alpha and β\beta
  • PAEmax\mathrm{PAE}_{\max} is 30 Angstrom (the approximate maximum PAE value)
  • G1G_1 and G2G_2 are the two residue groups
  • NpairsN_{\mathrm{pairs}} is the number of residue pairs considered

Parameters

oracle
FoldingOracle
required
The oracle to use for the energy term.
residues
list[list[Residue]]
required
Which residues to include in the first and second group.
inheritable
bool
default:"True"
If a new residue is added next to a residue included in this energy term, this dictates whether that new residue could then be added to this energy term.
cross_term_only
bool
default:"True"
Whether to only consider the uncertainty in distance between group 1 and group 2 atoms. If set to False, also considers the uncertainty in distances between atoms within the same group.
weight
float
default:"1.0"
The weight of the energy term.
name
str | None
default:"None"
Optional name to append to the energy term name.

Methods

compute

Parameters
oracles_result
OraclesResultDict
required

Example

import bagel as bg

# Create the folding oracle
esmfold = bg.oracles.ESMFold()

# Define two groups of residues (e.g. hotspot and binder)
hotspot_residues = [residues_target[i] for i in range(10, 20)]
binder_residues = residues_binder

# Minimize PAE between the two groups to drive confident binding
pae_energy = bg.energies.PAEEnergy(
    oracle=esmfold,
    residues=[hotspot_residues, binder_residues],
    weight=5.0,
)

# Add to a state
state = bg.State(
    chains=[binder_chain, target_chain],
    energy_terms=[pae_energy],
    name="my_state",
)