{ "cells": [ { "cell_type": "markdown", "id": "73926310", "metadata": {}, "source": [ "## DDBST fragmentation database" ] }, { "cell_type": "markdown", "id": "1748c46f", "metadata": {}, "source": [ "In this notebook, we evaluate the performance of `ugropy` against the DDBST\n", "fragmentation database. The database file was originally published in Simon\n", "Müller's article\n", "([https://doi.org/10.1186/s13321-019-0382-3](https://doi.org/10.1186/s13321-019-0382-3))\n", "and is hosted in the official repository:\n", "[https://github.com/simonmb/fragmentation_algorithm](https://github.com/simonmb/fragmentation_algorithm).\n", "\n", "To run these tests, the database file has been replicated in the `ugropy`\n", "repository. All rights to the original data are retained by the authors. Both\n", "this notebook and the database file are available at:\n", "[https://github.com/ipqa-research/ugropy/tree/main/docs/source/tests_book/against_ddbst](https://github.com/ipqa-research/ugropy/tree/main/docs/source/tests_book/against_ddbst)" ] }, { "cell_type": "markdown", "id": "f23c3916", "metadata": {}, "source": [ "The database file in the `ugropy` repository has been slightly modified by\n", "adding custom comments for tracking purposes; however, this notebook can be\n", "executed using the original, unmodified database file with identical results.\n", "\n", "These comments were added to the \"code\" column of the file to identify specific\n", "edge cases or behaviors for certain molecules of interest. The documentation\n", "for these characters can be found at the beginning of the database file, and\n", "their meanings are defined as follows:\n", "\n", "* `?`: **Disagreement with the database solution.** Indicates cases where\n", " `ugropy` yields a different fragmentation than the DDBST solution, and the\n", " database solution appears questionable. For the purpose of this test, these\n", " molecules are still accounted for as failed solutions.\n", "\n", "* `??`: **Combinatorial explosion / Slow multi-solution retrieval.** `ugropy`\n", " fails to obtain the correct solution on its first attempt. Reaching the\n", " correct solution requires exploring all possible alternative fragmentation\n", " pathways. Since these molecules exhibit a high number of symmetric\n", " multi-solutions, the computational time required to resolve them all is\n", " significantly high. Consequently, these molecules are skipped in this test\n", " and counted as failed solutions, even though the correct solution could\n", " eventually be reached with sufficient time.\n", "\n", "* `?!`: **Aromaticity mismatches.** The RDKit library detects aromatic rings\n", " that DDBST considers non-aromatic, which inevitably leads to a mismatch in\n", " the group assignment. In this test, these molecules are considered failed\n", " solutions." ] }, { "cell_type": "code", "execution_count": 1, "id": "58ec6fd6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | code | \n", "number | \n", "solution | \n", "
|---|---|---|---|
| smiles | \n", "\n", " | \n", " | \n", " |
| CC1=C(C(=CC(=C1Cl)Cl)Cl)Cl | \n", "ZOXPZFFPPKVNEA-UHFFFAOYSA-N | \n", "13870 | \n", "9:1|11:1|53:4 | \n", "
| CCC=CCC1=C(CCC1=O)C | \n", "XMLSXPIVAXONDL-UHFFFAOYSA-N | \n", "10261 | \n", "1:2|2:3|19:1|70:1|6:1 | \n", "
| C#CCCl | \n", "LJZPPWWHKPGCHS-UHFFFAOYSA-N | \n", "12221 | \n", "65:1|44:1 | \n", "
| C1=CN=CC=C1CCN | \n", "IDLHTECVNDEOIY-UHFFFAOYSA-N | \n", "83275 | \n", "2:1|29:1|38:1 | \n", "
| C[Si](C)(C)C[Si](C)(C)CCl | \n", "WBZTYASEAQTKBK-UHFFFAOYSA-N | \n", "87574 | \n", "1:5|2:1|44:1|81:2 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "
| CN(C)C1=CC=CC2=C1C=CC=C2N(C)C | \n", "TYMBOHQMUQAOBA-UHFFFAOYSA-N | \n", "139088 | \n", "1:2|10:4|34:2|9:6 | \n", "
| C=CCCCCCCCCCC=C | \n", "BPHFKBMQSYYNGQ-UHFFFAOYSA-N | \n", "30874 | \n", "2:9|5:2 | \n", "
| C=CC#N.C1=CC(=CC(=C1)CN)CN | \n", "XMEXUJUMKRUUNG-UHFFFAOYSA-N | \n", "71311341 | \n", "9:4|10:2|68:1|29:2 | \n", "
| CCN(CC)CCOC(=O)C1=C(C=C(C=C1)N)O | \n", "GHSCYMOJHVOGDJ-UHFFFAOYSA-N | \n", "68097 | \n", "1:2|2:3|35:1|36:1|9:3|10:1|77:1|17:1 | \n", "
| CC1CC(C2=CC=CC=C12)C | \n", "IIJUYSSJMAITHJ-UHFFFAOYSA-N | \n", "20143 | \n", "1:2|2:1|13:2|9:4 | \n", "
28675 rows × 3 columns
\n", "