Back to Filters page.


Autogenerated Tag Syntax Documentation:

Computes the binding energy for the complex and if it is below the threshold returns true. o/w false. Useful for identifying complexes that have poor binding energy and killing their trajectory.

<Ddg name="(&string;)" threshold="(-15 &real;)" threshold_min="(-999999 &real;)"
        jump="(1 &positive_integer;)" jump_selector="(&string;)"
        repeats="(1 &positive_integer;)" repack="(1 &bool;)"
        symmetry="(&string;)" repack_bound="(true &bool;)"
        repack_unbound="(true &bool;)" relax_bound="(false &bool;)"
        relax_unbound="(true &bool;)" translate_by="(100 &real;)"
        relax_mover="(&string;)" filter="(&string;)" chain_num="(&string;)"
        extreme_value_removal="(false &bool;)" dump_pdbs="(false &bool;)"
        packer_palette="(&named_packer_palette;)" scorefxn="(&string;)"
        confidence="(1.0 &real;)" />
  • threshold: If ddG value is lower than this value, filter returns True (passes).
  • threshold_min: If ddG value is higher than this value, filter returns True (passes).
  • jump: Specifies which chains to separate. Jump=1 would separate the chains interacting across the first chain termination, jump=2, second etc. This option is overriden by the jump_selector option.
  • jump_selector: Jump selector to be used as an alternative to the 'jump' option. This selector should only select one jump.
  • repeats: Averages the calculation over the number of repeats. Note that ddg calculations show noise of about 1-1.5 energy units, so averaging over 3-5 repeats is recommended for many applications.
  • repack: Should the complex be repacked in the bound and unbound states prior to taking the energy difference? If false, the filter turns to a dG evaluator. If repack=false repeats should be turned to 1, b/c the energy evaluations converge very well with repack=false.
  • symmetry: Note: DdgFilter autodetermines symmetry from input pose - symmetry option has no effect.
  • repack_bound: Should the complex be repacked in the bound state? Note: If repack=true, then the complex will be repacked in the bound and unbound state by default. However, if the complex has already been repacked in the bound state prior to calling the DdgFilter then setting repack_bound=false allows one to avoid unnecessary repetition.
  • repack_unbound: Should the complex be repacked in the unbound state? Note: If repack=true, then the complex will be repacked in the bound and unbound state by default. However, if a relaxation mover is provided that repacks the mover in the unbound state, then repack_unbound=false avoids unnecessary repetition.
  • relax_bound: Should the relax mover (if specified) be applied to the bound state? Note: the bound state is not relaxed by default.
  • relax_unbound: Should the relax mover (if specified) be applied to the unbound state? Note: the unbound state IS relaxed by default.
  • translate_by: How far to translate the unbound pose. Note: Default is now 100 Angstroms rather than 1000.
  • relax_mover: Optionally define a mover which will be applied prior to computing the system energy in the unbound state.
  • filter: If specified, the given filter will be calculated in the bound and unbound state for the score, rather than the given scorefunction. Repacking, if any, will be done with the provided scorefunction.
  • chain_num: Allows you to specify a list of chain numbers to use to calculate the ddg, rather than a single jump. You cannot move chain 1, moving all the other chains is the same thing as moving chain 1, so do that instead. Use independently of jump.
  • extreme_value_removal: Compute ddg value times, sort and remove the top and bottom evaluation. This should reduce the noise levels in trajectories involving 1000s of evaluations. If set to true, repeats must be set to at least 3.
  • dump_pdbs: Dump debugging PDB files. Dumps 6 pdbs per instance: BOUND_before_repack, BOUND_after_repack, BOUND_after_relax, UNBOUND_before_repack, UNBOUND_after_repack, and UNBOUND_after_relax.
  • task_operations: A comma-separated list of TaskOperations to use.
  • packer_palette: A previously-defined PackerPalette to use, which specifies the set of residue types with which to design (to be pruned with TaskOperations).
  • scorefxn: Name of score function to use
  • confidence: Probability that the pose will be filtered out if it does not pass this Filter

This filter supports the Poisson-Boltzmann energy method by setting the runtime environment to indicate the altering state, either bound or unbound. When used properly in conjunction with SetupPoissonBoltzmannPotential (mover), the energy method (see: core/scoring/methods/PoissonBoltzmannEnergy) is enabled to solve for the PDE only when the conformation in corresponding state has changed sufficiently enough. Because Ddg uses all-atom centroids to determine the separation vector when jump is used, it is highly recommended to use the chain_num option instead to specify the movable chains, to avoid invalidating the unbound cache when there are slight changes to atom positions.


The script below shows how to enable PB with ddg filter. I have APBS (Adaptive Poisson-Boltzmann Solver) installed in /home/honda/apbs-1.4/ and "apbs" executable is in the bin/ subdiretory. Chain 1 is charged in this case. You can list more than one chain by comma-delimit (without extra whitespace. e.g. "1,2,3"). I use full scorefxn as the basis and add the PB term.

      <ScoreFunction name="sc12_w_pb" weights="score12_full" patch="pb_elec"/>  patch PB term
      <SetupPoissonBoltzmannPotential name="setup_pb" scorefxn="sc12_w_pb" charged_chains="1" apbs_path="/home/honda/apbs-1.4/bin/apbs"/>
      <Ddg name="ddg" scorefxn="sc12_w_pb" chain_num="2"/>
      <Add mover_name="setup_pb"/>  Initialize PB
      <Add mover_name="..."/>  some mover
      <Add filter_name="ddg"/> use PB-enabled ddg 
      <Add filter_name="..."/>  more filtering

Known issues

BUG: Always leave repack="1" and control repacking using repack_bound and repack_unbound. If not ddG may return 0 and debug pdbs are not written. If repack=="0" a different code path is used that does not use the ddG mover and may not handle symmetry correctly (and also does not output debug_pdbs).

If a disulfide present across the interface in question the filter silently fails and the ddG column is not added to the score file. A work around (that ignores the energy contribution of the disulfide) is to provide the ddG filter a scorefunction with dslf_fa13 reweighed to zero.

See also