```
class OEPerceiveInteractionOptions
```

This class is a container for all the parameters that control interaction
perception when
invoking the `OEPerceiveInteractionHints` function.

The current list of interactions include:
cation-Pi ( `OECationPiInteractionHint`),
clashes (`OEClashInteractionHint`),
contacts (`OEContactInteractionHint`),
covalents (`OECovalentInteractionHint`),
salt bridges (`OESaltBridgeInteractionHint`),
hydrogen bonds (`OEHBondInteractionHint`),
metal interaction (`OEChelatorInteractionHint`),
Pi and T stacking (`OEStackingInteractionHint`),
and halogen bonds (`OEHalogenBondInteractionHint`).

Each interaction type has one or more parameters that control its perception. In addition, hydrogen-bonding clashes, intramolecular hydrogen-bonds, unpaired hydrogen-bonds and unpaired salt-bridges are also perceived. Unpaired interactions are those that are near the protein-ligand interface, but do not form an apparent bond.

```
OEPerceiveInteractionOptions()
```

The default constructor for perception of interaction options. It sets all of the interaction parameters to their default value.

```
double GetExtendedSaltBridgeDistance() const
```

Actual salt bridge interaction distance is calculated from the geometric centers of the two interacting
charge groups, which may or may not be comprised of a single atom. The distance returned by this function
is the maximum distance between two formally charged atoms for subsequent identification of charge groups.
This is a simple increment larger than the value associated with
`OEPerceiveInteractionOptions.GetMaxSaltBridgeDistance` and
`OEPerceiveInteractionOptions.SetMaxSaltBridgeDistance`.

```
double GetMaxAcceptorAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxAcceptorAngle`.

```
double GetMaxCationPiAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxCationPiAngle`.

```
double GetMaxCationPiDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxCationPiDistance`.

```
double GetMaxChargeAidedHBondDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxChargeAidedHBondDistance`.

```
double GetMaxContactFraction() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxContactFraction`.

```
double GetMaxCovalentFraction() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxCovalentFraction`.

```
double GetMaxDonorAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxDonorAngle`.

```
double GetMaxHBondDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxHBondDistance`.

```
double GetMaxHalogenAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxHalogenAngle`.

```
double GetMaxHalogenBondDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxHalogenBondDistance`.

```
double GetMaxMetalBondDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxMetalBondDistance`.

```
double GetMaxPiStackAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxPiStackAngle`.

```
double GetMaxPiStackDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxPiStackDistance`.

```
double GetMaxSaltBridgeDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxSaltBridgeDistance`.

```
double GetMaxTStackAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxTStackAngle`.

```
double GetMaxTStackDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxTStackDistance`.

```
double GetMaxUnpairedAngle() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxUnpairedAngle`.

```
double GetMaxUnpairedDistance() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMaxUnpairedDistance`.

```
double GetMinContactFraction() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMinContactFraction`.

```
double GetMinCovalentFraction() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMinCovalentFraction`.

```
double GetMinHBondContactFraction() const
```

Returns the value set by `OEPerceiveInteractionOptions.SetMinHBondContactFraction`.

```
void SetMaxAcceptorAngle(double radians)
```

In perception of a hydrogen bond, we define the angle \(X-A...D\), where **A** and **D** are the acceptor
and donor respectively, and **X** is one or more points in space that are located so that an idealized
hydrogen-bond would give an angle of \(\pi\). The maximum acceptor angle is the maximum allowed deviation (in
radians) from the idealized angle (or the minimum deviation from multiple angles when more than one
**X** position is possible).

**Default=** \((\pi * \frac{10.0}{36.0})\) **= 50 degrees**

```
void SetMaxCationPiAngle(double radians)
```

This option sets the maximum allowed angle defined by a point on the vector normal from the pi ring system, the geometric center of the ring system and the geometric center of the charged system. For the purposes of Cation Pi interaction hints, only Lysine, N-methyl Lysine and Arginine are recognized cations. For Lysine and N-methyl Lysine, the charge center is the charged Nitrogen atom, while for the Arginine residue, the charge center will be the geometric center of the Carbon and three Nitrogen atoms that share the resonant charge. Each smallest aromatic ring (independent of ring fusions) is considered separately and a cation can interact with more than one pi system simultaneously.

**Default=** \((\pi * \frac{10.0}{36.0})\) **= 50 degrees**

See also

```
void SetMaxCationPiDistance(double dist)
```

This is the maximum allowed distance between the center of a cation system and the center of an aromatic pi system. For the purposes of Cation Pi interaction hints, only Lysine, N-methyl Lysine and Arginine are recognized cations. Each smallest aromatic ring (independent of ring fusions) is considered separately and a cation can interact with more than one pi system simultaneously.

**Default= 5.5** Ångströms

See also

```
void SetMaxChargeAidedHBondDistance(double dist)
```

For the purpose of hydrogen bond perception, charge assisted hydrogen bonds, are identified when one of the two bonding partners is part of a functional group with a net formal charge. These interactions include dipole - charge interactions and are perceived at slightly longer range than simple hydrogen- bonds by default.

**Default= 3.5** Ångströms

```
void SetMaxContactFraction(double frac)
```

Van der Waals interactions are perceived as non-interacting, in attractive contact, or clashing. The three
classes are determined by comparing the atom - atom distance **Daa** to the sum of the
van der Waals radii of the two atoms **VDWtot**. The distance **Daa** is represented as a
fraction of **VDWtot** which we will call **Faa**. If the value of **Faa** is greater than
the value stored in
`OEPerceiveInteractionOptions.SetMaxContactFraction`, then the two atoms are
non-interacting. If the value of **Faa** is between the values set by
`OEPerceiveInteractionOptions.SetMaxContactFraction` and
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are in attractive
contact. If the value of **Faa** is less than
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are clashing.

Any two atoms that are forming a hydrogen bond can be in attractive contact at shorter distances than
generic atom pairs because of the balance of forces. To handle this, when two atoms are forming a
hydrogen bond, the value of **Faa** is compared to
`OEPerceiveInteractionOptions.SetMinHBondContactFraction` to determine clashing
rather than `OEPerceiveInteractionOptions.SetMinContactFraction`.

**Default = 1.2**

```
void SetMaxCovalentFraction(double frac)
```

This function sets the maximum ratio of the distance between to atoms to the sum of their covalent radii allowed for perception of a covalent bond.

Covalent interactions are perceived based on comparing the distance between two atoms **D** to the
sum of the covalent radii **SumRc**. If **D** is > **SumRc** times the value set by
`OEPerceiveInteractionOptions.SetMinCovalentFraction` and **D** is < **SumRc** times the
value set by `OEPerceiveInteractionOptions.SetMaxCovalentFraction`, then a covalent
interaction will be perceived. Currently no angle constraint is used in perceiving covalent interactions.

Hydrogen and Halide atoms as well as water molecules are excluded from covalent interaction hint
perception. Metal atom interactions are preceived as `OEChelatorInteractionHint`
rather than as covalent interactions.

When a covalent interaction exists between atom **P** of the protein and atom **L** of the ligand, then
no other interactions will be perceived for atoms **P** and **L**. Further, atoms bonded to atoms
**L** and **P** will be excluded from perceiption of clash or contact interactions. Bonded atoms will
be able to participate in other interactions such as hydrogen bonding.

**Default = 1.1**

See also

```
void SetMaxDonorAngle(double radians)
```

In the perception of a hydrogen bond with the interaction \(A...H-D\), the angle \(A-D-H\) is ideally zero in most cases. This function determines the maximum allowed value of this angle in a perceived hydrogen-bond.

**Default** = \((\pi * \frac{7.0}{36.0})\) **= 35 degrees**

```
void SetMaxHBondDistance(double dist)
```

This function sets the maximum distance between the donor and acceptor heavy atoms for a hydrogen-bond to be perceived.

**Default = 3.2** Ångströms

```
void SetMaxHalogenAngle(double radians)
```

In the perception of halogen bonds, there is an angle formed between \(R-X...E/N\) where **X** is a univalent
halogen, **E/N** are the electrophile or nucleophile, and **R** is the attachment of the halogen. For
nucleophiles, the ideal interaction angle is \(\pi\), for electrophiles, the ideal interaction angle
\(\frac{\pi}{2}\).
This function determines the maximum allowed deviation (in radian) from these ideal angles, respectively, for
perception of a halogen bond.

**Default** = \((\pi * \frac{7.0}{36.0})\) **= 35 degrees**

See also

```
void SetMaxHalogenBondDistance(double dist)
```

This is the maximum distance between the halogen atom and the electrophile or nucleophile atom for perception of a halogen bond.

**Default = 3.2** Ångströms

See also

```
void SetMaxMetalBondDistance(double dist)
```

This is the maximum distance allowed for an interaction to be perceived between a metal atom and a chelating non-metal atom.

**Default = 3.5** Ångströms

```
void SetMaxPiStackAngle(double radians)
```

Sets the maximum angle deviation (in radian) from the ideal angle calculated between the two aromatic ring normals to be considered for Pi-stacking interaction.

**Default =** \(\frac{\pi}{9.0}\)

See also

```
void SetMaxPiStackDistance(double dist)
```

Sets the maximum distance (in Ångström) allowed between the geometric center of two aromatic rings in order to being considered for Pi-stacking interaction.

**Default = 5.0** Ångströms

See also

```
void SetMaxSaltBridgeDistance(double dist)
```

Sets the maximum distance (in Ångströms) allowed between the geometric centers of the two formally charged groups in a perceived salt bridge interaction.

**Default = 5.0** Ångströms

See also

```
void SetMaxTStackAngle(double radians)
```

Sets the maximum angle deviation (in radian) from the ideal angle (\(\frac{\pi}{2}\)) calculated between the two aromatic ring normals to be considered for T-stacking interaction.

**Default =** \(\frac{\pi}{9.0}\)

See also

```
void SetMaxTStackDistance(double dist)
```

Sets the maximum distance (in Ångström) allowed between the geometric center of two aromatic rings in order to being considered for T-stacking interaction.

**Default = 5.35** Ångströms

See also

```
void SetMaxUnpairedAngle(double radians)
```

In perception of unpaired interactions, the unpaired potential interaction group should be oriented toward the ligand or protein where it could make an interaction. This is the maximum deviation (in radian) allowed between the potential interaction group and the nearest potential partner atom.

**Default =** \(\frac{\pi}{2}\)

See also

```
void SetMaxUnpairedDistance(double dist)
```

In perception of unpaired interactions, the unpaired potential interaction group should be within a minimum distance of the nearest potential paired atom. This function sets the maximum distance (in Ångströms) for perception of an unpaired potential.

**Default = 5.0** Ångströms

See also

```
void SetMinContactFraction(double frac)
```

der Waals interactions are perceived as non-interacting, in attractive contact, or clashing. The three
classes are determined by comparing the atom - atom distance **Daa** to the sum of the
van der Waals radii of the two atoms **VDWtot**. The distance **Daa** is represented as a
fraction of **VDWtot** which we will call **Faa**. If the value of **Faa** is greater than
the value stored in
`OEPerceiveInteractionOptions.SetMaxContactFraction`, then the two atoms are
non-interacting. If the value of **Faa** is between the values set by
`OEPerceiveInteractionOptions.SetMaxContactFraction` and
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are in attractive
contact. If the value of **Faa** is less than
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are clashing.

Any two atoms that are forming a hydrogen bond can be in attractive contact at shorter distances than
generic atom pairs because of the balance of forces. To handle this, when two atoms are forming a
hydrogen bond, the value of **Faa** is compared to
`OEPerceiveInteractionOptions.SetMinHBondContactFraction` to determine clashing
rather than `OEPerceiveInteractionOptions.SetMinContactFraction`.

**Default = 0.8**

```
void SetMinCovalentFraction(double frac)
```

This function sets the minimum ratio of the distance between to atoms to the sum of their covalent radii allowed for perception of a covalent bond.

Covalent interactions are perceived based on comparing the distance between two atoms **D** to the
sum of the covalent radii **SumRc**. If **D** is > **SumRc** times the value set by
`OEPerceiveInteractionOptions.SetMinCovalentFraction` and **D** is < **SumRc** times the
value set by `OEPerceiveInteractionOptions.SetMaxCovalentFraction`, then a covalent
interaction will be perceived. Currently no angle constraint is used in perceiving covalent interactions.

Hydrogen and Halide atoms as well as water molecules are excluded from covalent interaction hint
perception. Metal atom interactions are preceived as `OEChelatorInteractionHint`
rather than as covalent interactions.

When a covalent interaction exists between atom **P** of the protein and atom **L** of the ligand, then
no other interactions will be perceived for atoms **P** and **L**. Further, atoms bonded to atoms
**L** and **P** will be excluded from perceiption of clash or contact interactions. Bonded atoms will
be able to participate in other interactions such as hydrogen bonding.

**Default = 0.9**

See also

```
void SetMinHBondContactFraction(double frac)
```

der Waals interactions are perceived as non-interacting, in attractive contact, or clashing. The three
classes are determined by comparing the atom - atom distance **Daa** to the sum of the
van der Waals radii of the two atoms **VDWtot**. The distance **Daa** is represented as a
fraction of **VDWtot** which we will call **Faa**. If the value of **Faa** is greater than
the value stored in
`OEPerceiveInteractionOptions.SetMaxContactFraction`, then the two atoms are
non-interacting. If the value of **Faa** is between the values set by
`OEPerceiveInteractionOptions.SetMaxContactFraction` and
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are in attractive
contact. If the value of **Faa** is less than
`OEPerceiveInteractionOptions.SetMinContactFraction` then the atoms are clashing.

Any two atoms that are forming a hydrogen bond can be in attractive contact at shorter distances than
generic atom pairs because of the balance of forces. To handle this, when two atoms are forming a
hydrogen bond, the value of **Faa** is compared to
`OEPerceiveInteractionOptions.SetMinHBondContactFraction` to determine clashing
rather than `OEPerceiveInteractionOptions.SetMinContactFraction`.

**Default = 0.5**

See also

`OEPerceiveInteractionOptions.SetMaxContactFraction`method`OEPerceiveInteractionOptions.SetMinContactFraction`method`OEPerceiveInteractionOptions.SetMinHBondContactFraction`method`OEPerceiveInteractionOptions.SetMaxHBondDistance`method`OEPerceiveInteractionOptions.SetMaxAcceptorAngle`method`OEPerceiveInteractionOptions.SetMaxDonorAngle`method`OEPerceiveInteractionOptions.SetMaxChargeAidedHBondDistance`method