[](https://www.codefactor.io/repository/github/PDBeurope/ccdutils/overview/master)         
# pdbeccdutils
An RDKit-based python toolkit for parsing and processing small molecule definitions in [wwPDB Chemical Component Dictionary](https://www.wwpdb.org/data/ccd) and [wwPDB The Biologically Interesting Molecule Reference Dictionary](https://www.wwpdb.org/data/bird).`pdbeccdutils` provides streamlined access to all metadata of small molecules in the PDB and offers a set of convenient methods to compute various properties of small molecules using RDKIt such as 2D depictions, 3D conformers, physicochemical properties, matching common fragments and scaffolds, mapping to small-molecule databases using UniChem.
## Features
* `gemmi` CCD read/write.
* Generation of 2D depictions (`No image available` generated if the flattening cannot be done) along with the quality check.
* Generation of 3D conformations.
* Fragment library search (PDBe hand-curated library, ENAMINE, DSI).
* Chemical scaffolds (Murcko scaffold, Murcko general, BRICS).
* Lightweight implementation of [parity method](https://doi.org/10.1016/j.str.2018.02.009) by Jon Tyzack.
* RDKit molecular properties per component.
* UniChem mapping.
* Generating complete representation of multiple [Covalently Linked Components (CLC)](https://www.ebi.ac.uk/pdbe/news/introducing-covalently-linked-components)
## Dependencies
  * [RDKit](http://www.rdkit.org/) for small molecule representation. Presently tested with `2023.9.6`
  * [GEMMI](https://gemmi.readthedocs.io/en/latest/index.html) for parsing mmCIF files.
  * [scipy](https://www.scipy.org/) for depiction quality check.
  * [numpy](https://www.numpy.org/) for molecular scaling.
  * [networkx](https://networkx.org/) for bound-molecules.
## Installation
create a [virtual environment](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments) and install using pip
  ```bash
  pip install pdbeccdutils
  ```
## Contribution
We encourage you to contribute to this project. The package uses [poetry](https://python-poetry.org/) for packaging and dependency management. You can develop locally using:
```bash
git clone https://github.com/PDBeurope/ccdutils.git
cd ccdutils
pip install poetry
poetry install --with tests,docs
pre-commit install
```
The pre-commit hook will run linting, formatting and update `poetry.lock`. The `poetry.lock` file will lock all dependencies and ensure that they match pyproject.toml versions.
To add a new dependency
```bash
# Latest resolvable version
poetry add <package>
# Optionally fix a version
poetry add <package>@<version>
```
To change a version of a dependency, either edit pyproject.toml and run:
```bash
poetry sync --with dev
```
or
```bash
poetry add <package>@<version>
```
## Documentation
The documentation is generated using `sphinx` in `sphinx_rtd_theme` and hosted on GitHub Pages. To generate the documentation locally,
```bash
cd doc
poetry run sphinx-build -b html . _build/html
# See the documentation at http://localhost:8080.
python -m http.server 8080 -d _build/html
```
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "pdbeccdutils",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.10",
    "maintainer_email": null,
    "keywords": "PDB, ligand, small molecule, complex, CCD, PRD, CLC",
    "author": "Protein Data Bank in Europe",
    "author_email": "pdbehelp@ebi.ac.uk",
    "download_url": "https://files.pythonhosted.org/packages/3e/2b/4066fa18e379039472d0ab65e8752d342a860d67e86b9b663328306b53ba/pdbeccdutils-1.0.0.tar.gz",
    "platform": null,
    "description": "[](https://www.codefactor.io/repository/github/PDBeurope/ccdutils/overview/master)         \n\n\n# pdbeccdutils\n\nAn RDKit-based python toolkit for parsing and processing small molecule definitions in [wwPDB Chemical Component Dictionary](https://www.wwpdb.org/data/ccd) and [wwPDB The Biologically Interesting Molecule Reference Dictionary](https://www.wwpdb.org/data/bird).`pdbeccdutils` provides streamlined access to all metadata of small molecules in the PDB and offers a set of convenient methods to compute various properties of small molecules using RDKIt such as 2D depictions, 3D conformers, physicochemical properties, matching common fragments and scaffolds, mapping to small-molecule databases using UniChem.\n\n## Features\n\n* `gemmi` CCD read/write.\n* Generation of 2D depictions (`No image available` generated if the flattening cannot be done) along with the quality check.\n* Generation of 3D conformations.\n* Fragment library search (PDBe hand-curated library, ENAMINE, DSI).\n* Chemical scaffolds (Murcko scaffold, Murcko general, BRICS).\n* Lightweight implementation of [parity method](https://doi.org/10.1016/j.str.2018.02.009) by Jon Tyzack.\n* RDKit molecular properties per component.\n* UniChem mapping.\n* Generating complete representation of multiple [Covalently Linked Components (CLC)](https://www.ebi.ac.uk/pdbe/news/introducing-covalently-linked-components)\n\n## Dependencies\n\n  * [RDKit](http://www.rdkit.org/) for small molecule representation. Presently tested with `2023.9.6`\n  * [GEMMI](https://gemmi.readthedocs.io/en/latest/index.html) for parsing mmCIF files.\n  * [scipy](https://www.scipy.org/) for depiction quality check.\n  * [numpy](https://www.numpy.org/) for molecular scaling.\n  * [networkx](https://networkx.org/) for bound-molecules.\n\n\n## Installation\n\ncreate a [virtual environment](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments) and install using pip\n\n  ```bash\n  pip install pdbeccdutils\n  ```\n\n## Contribution\nWe encourage you to contribute to this project. The package uses [poetry](https://python-poetry.org/) for packaging and dependency management. You can develop locally using:\n\n```bash\ngit clone https://github.com/PDBeurope/ccdutils.git\ncd ccdutils\npip install poetry\npoetry install --with tests,docs\npre-commit install\n```\n\nThe pre-commit hook will run linting, formatting and update `poetry.lock`. The `poetry.lock` file will lock all dependencies and ensure that they match pyproject.toml versions.\n\nTo add a new dependency\n\n```bash\n# Latest resolvable version\npoetry add <package>\n\n# Optionally fix a version\npoetry add <package>@<version>\n```\n\nTo change a version of a dependency, either edit pyproject.toml and run:\n\n```bash\npoetry sync --with dev\n```\n\nor\n\n```bash\npoetry add <package>@<version>\n```\n\n\n## Documentation\n\nThe documentation is generated using `sphinx` in `sphinx_rtd_theme` and hosted on GitHub Pages. To generate the documentation locally,\n\n```bash\ncd doc\npoetry run sphinx-build -b html . _build/html\n\n# See the documentation at http://localhost:8080.\npython -m http.server 8080 -d _build/html\n```\n\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0.",
    "summary": "Toolkit to parse and process small molecules in wwPDB",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://pdbeurope.github.io/ccdutils/",
        "Repository": "https://github.com/PDBeurope/ccdutils"
    },
    "split_keywords": [
        "pdb",
        " ligand",
        " small molecule",
        " complex",
        " ccd",
        " prd",
        " clc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d9477773171d66dac29e59a22df87505e05faba30a2c4a1faceff5262228a10",
                "md5": "6a25d30b57ba5481435be19da3299e4b",
                "sha256": "dcc6bcb363f9cb0f9be15c465abf2a56809926d8275ccdc50d4f8438ab776c7b"
            },
            "downloads": -1,
            "filename": "pdbeccdutils-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6a25d30b57ba5481435be19da3299e4b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.10",
            "size": 1115148,
            "upload_time": "2025-09-04T10:44:14",
            "upload_time_iso_8601": "2025-09-04T10:44:14.817861Z",
            "url": "https://files.pythonhosted.org/packages/5d/94/77773171d66dac29e59a22df87505e05faba30a2c4a1faceff5262228a10/pdbeccdutils-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3e2b4066fa18e379039472d0ab65e8752d342a860d67e86b9b663328306b53ba",
                "md5": "46f4dc2e657e6aee216bce0c8d5a4f0a",
                "sha256": "d32ba6772a4224e5e2727afc25fc8d08590a64b853ffe8351412fff465ab8fd9"
            },
            "downloads": -1,
            "filename": "pdbeccdutils-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "46f4dc2e657e6aee216bce0c8d5a4f0a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.10",
            "size": 1036703,
            "upload_time": "2025-09-04T10:44:17",
            "upload_time_iso_8601": "2025-09-04T10:44:17.222702Z",
            "url": "https://files.pythonhosted.org/packages/3e/2b/4066fa18e379039472d0ab65e8752d342a860d67e86b9b663328306b53ba/pdbeccdutils-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-04 10:44:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PDBeurope",
    "github_project": "ccdutils",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pdbeccdutils"
}