From e326453b97a6ae47de84b716a506f833d6b5de3a Mon Sep 17 00:00:00 2001 From: Xavier Robin <xavier.robin@unibas.ch> Date: Mon, 15 Jul 2024 08:48:18 +0200 Subject: [PATCH] doc: describe heuristic --- modules/conop/doc/connectivity.rst | 17 +++++++++++------ modules/conop/doc/functions.rst | 9 ++++++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/conop/doc/connectivity.rst b/modules/conop/doc/connectivity.rst index e37949460..e18baf874 100644 --- a/modules/conop/doc/connectivity.rst +++ b/modules/conop/doc/connectivity.rst @@ -40,14 +40,19 @@ Processors The exact behaviour for a processor is implementation-specific. So far, two classes implement the processor interface: A heuristic and a rule-based processor. The processors mainly differ in the source of their connectivity -information. The `HeuristicProcessor` uses a hard-coded heuristic connectivity +information. + +The `HeuristicProcessor` uses a hard-coded heuristic connectivity table for the 20 standard amino acids as well as nucleotides. For other compounds such as ligands the `HeuristicProcessor` runs a distance-based -connectivity algorithm that connects two atoms if they are closer than a certain -threshold. The `RuleBasedProcessor` uses the -:doc:`compound library <compoundlib>`, a connectivity library containing all -molecular components present in the PDB files on PDB.org. The library can easily -be extended with custom connectivity information, if required. +connectivity algorithm that connects two atoms if they belong to the same or +two consecutive residues, and are within a +:func:`reasonable distance <ost.conop.IsBondFeasible>` of each other. + +The `RuleBasedProcessor` uses the :doc:`compound library <compoundlib>`, +a connectivity library containing all molecular components present in the +PDB files on PDB.org. The library can easily be extended with custom +connectivity information, if required. .. class:: Processor diff --git a/modules/conop/doc/functions.rst b/modules/conop/doc/functions.rst index 7b3618a9f..456ab200f 100644 --- a/modules/conop/doc/functions.rst +++ b/modules/conop/doc/functions.rst @@ -33,9 +33,12 @@ Conop Functions .. function:: IsBondFeasible(atom_a, atom_b) - :return: True, if *atom_a* and *atom_b* are within a reasonable distance for a - bond to be present. Depends on :attr:`~ost.mol.AtomHandle.radius` of - atoms and heuristic formulas. + :return: True, if *atom_a* and *atom_b* are within a reasonable distance for + a bond to be present, namely if the distance between the two atoms + is between 0.0625 and 0.375 times the square of the sum of the + :attr:`van der Waals radii <ost.mol.AtomHandle.radius>` of the two + atom. + :rtype: :class:`bool` :param atom_a: Atom to be checked. :type atom_a: :class:`~ost.mol.AtomHandle` -- GitLab