Skip to content

Commit

Permalink
Add InChI sanity check (#45)
Browse files Browse the repository at this point in the history
Sanity module:
- Add InChI chemistry check requiring that a valid molecule can be converted to a standard InChI key and back. This test detects some chemical issues that the RDKit sanitization test does not flag.

Energy ratio module:
- Improve warning messages.

Config:
- Add InChI check to all default configurations.
  • Loading branch information
maabuu authored Aug 13, 2024
1 parent a13aa42 commit 6062b99
Show file tree
Hide file tree
Showing 27 changed files with 3,244 additions and 449 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ temp
ignore*
notebooks*
.test*
.vscode

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
272 changes: 0 additions & 272 deletions .vscode/launch.json

This file was deleted.

28 changes: 0 additions & 28 deletions .vscode/settings.json

This file was deleted.

6 changes: 6 additions & 0 deletions docs/source/checks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,12 @@ with in a receptor's binding pocket without any steric clash.
| Ligand and receptor clash | |
+---------------------------------------------+----------------------------------------+

.. _sanitisation: https://www.rdkit.org/docs/RDKit_Book.html#molecular-sanitization

In addition to these geometric considerations, molecules should always pass RDKit's chemical `sanitisation`_ checks, as well as be interconvertible with InChI strings.



More details on tests and docking method comparison
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
16 changes: 9 additions & 7 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -134,24 +134,26 @@ Docking methods comparison
====================================

.. _preprint: https://arxiv.org/abs/2308.05777
.. _paper: https://doi.org/10.1039/D3SC04185A

For more detailed information about the tests and for a study using PoseBusters to compare docking methods, refer to our `preprint`_:
For more detailed information about the tests and for a study using PoseBusters to compare docking methods, refer to our `paper`_:

.. code-block:: bibtex
@online{buttenschoen2023posebusters,
@article{buttenschoen2023posebusters,
title = {{{PoseBusters}}: {{AI-based}} Docking Methods Fail to Generate Physically Valid Poses or Generalise to Novel Sequences},
shorttitle = {{{PoseBusters}}},
author = {Buttenschoen, Martin and Morris, Garrett M. and Deane, Charlotte M.},
date = {2023-08-10},
eprint = {2308.05777},
eprinttype = {arxiv}
year = "2023",
publisher = "The Royal Society of Chemistry",
doi = "10.1039/D3SC04185A",
url = "http://dx.doi.org/10.1039/D3SC04185A",
}
Sample checks
====================================

For more information on the checks, see :ref:`checks`.
For more examples and information on the checks, see :ref:`checks`.

+---------------------------------------------+----------------------------------------+
| Steric clash |
Expand Down Expand Up @@ -184,7 +186,7 @@ For more information on the checks, see :ref:`checks`.
+---------------------------------------------+----------------------------------------+


For more information on the checks, see :ref:`checks`.
For more examples and information on the checks, see :ref:`checks`.

Contents
====================================
Expand Down
12 changes: 10 additions & 2 deletions posebusters/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,20 @@
from posebusters.modules.intermolecular_distance import check_intermolecular_distance
from posebusters.modules.loading import check_loading
from posebusters.modules.rmsd import check_rmsd
from posebusters.modules.sanity import check_chemistry
from posebusters.modules.sanity import (
check_all_atoms_connected,
check_chemistry,
check_chemistry_using_inchi,
check_chemistry_using_rdkit,
)
from posebusters.modules.volume_overlap import check_volume_overlap
from posebusters.posebusters import PoseBusters

__all__ = [
"PoseBusters",
"check_all_atoms_connected",
"check_chemistry_using_inchi",
"check_chemistry_using_rdkit",
"check_chemistry",
"check_energy_ratio",
"check_flatness",
Expand All @@ -24,4 +32,4 @@
"check_volume_overlap",
]

__version__ = "0.2.16"
__version__ = "0.3.1"
Loading

0 comments on commit 6062b99

Please sign in to comment.