{"id":17718639,"url":"https://github.com/cch1999/posecheck","last_synced_at":"2025-03-03T05:04:14.153Z","repository":{"id":196580930,"uuid":"696010084","full_name":"cch1999/posecheck","owner":"cch1999","description":"Pose checks for 3D Structure-based Drug Design methods","archived":false,"fork":false,"pushed_at":"2024-08-29T22:19:06.000Z","size":37113,"stargazers_count":69,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-27T09:36:25.726Z","etag":null,"topics":["docking","drug-design","generative-model","molecule-generation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cch1999.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-24T21:43:26.000Z","updated_at":"2024-09-01T21:40:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"6117f8b1-aa7e-4fce-a1f7-7120a4295e4e","html_url":"https://github.com/cch1999/posecheck","commit_stats":null,"previous_names":["cch1999/posecheck"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cch1999%2Fposecheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cch1999%2Fposecheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cch1999%2Fposecheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cch1999%2Fposecheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cch1999","download_url":"https://codeload.github.com/cch1999/posecheck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240415252,"owners_count":19797603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docking","drug-design","generative-model","molecule-generation"],"created_at":"2024-10-25T14:55:07.661Z","updated_at":"2025-02-24T04:09:46.906Z","avatar_url":"https://github.com/cch1999.png","language":"Python","readme":"# PoseCheck: Benchmarking Generated Poses\n\n\n[![arXiv](https://img.shields.io/badge/arXiv-2308.07413-b31b1b.svg)](https://arxiv.org/abs/2308.07413)\n![version](https://img.shields.io/badge/version-1.3.1-blue)\n[![python](https://img.shields.io/badge/-Python_3.9_%7C_3.10_%7C_3.11-blue?logo=python\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![build](https://github.com/cch1999/posecheck/actions/workflows/tests.yaml/badge.svg?branch=main)](https://github.com/cch1999/posecheck/actions/workflows/tests.yaml)\n[![Documentation Status](https://readthedocs.org/projects/posecheck/badge/?version=latest)](https://posecheck.readthedocs.io/en/latest/?badge=latest)\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n![PoseCheck Logo](data/posecheck_logo.png)\n\n [Paper](https://arxiv.org/abs/2308.07413) | [Documentation](https://posecheck.readthedocs.io/en/latest/)\n\n## What is PoseCheck?\n\nPoseCheck is a package for analysing the quality of generated protein-ligand complexes from 3D target-conditioned generative models.\n\n\u003c!-- # ## Why use PoseCheck?\n#\n#\n#\n# \u003cp align=\"center\"\u003e\n#   \u003ca href=\"https://www.graphein.ai/#gh-light-mode-only\"\u003e\n#     \u003cimg src=\"notebooks/figs/ours.png\"/\u003e\n#   \u003c/a\u003e\n# \u003c/p\u003e --\u003e\n\n## Installation\n\n```bash\npip install posecheck\n```\n\n## Example usage\n\nWe provide a simple top level API to easily interact with the whole of the benchmark. Just define the `PoseCheck` object once at the top of your existing testing code and test molecules by loading them in iteratively. You can also use all the testing functions manually as well (see Docs for more info).\n\n```python\nfrom posecheck import PoseCheck\n\n# Initialize the PoseCheck object\npc = PoseCheck()\n\n# Load a protein from a PDB file (will run reduce in the background)\npc.load_protein_from_pdb(\"data/examples/1a2g.pdb\")\n\n# Load ligands from an SDF file\npc.load_ligands_from_sdf(\"data/examples/1a2g_ligand.sdf\")\n# Alternatively, load RDKit molecules directly\n# pc.load_ligands_from_mols([rdmol])\n\n# Check for clashes\nclashes = pc.calculate_clashes()\nprint(f\"Number of clashes in example molecule: {clashes[0]}\")\n\n# Check for strain\nstrain = pc.calculate_strain_energy()\nprint(f\"Strain energy of example molecule: {strain[0]}\")\n\n# Check for interactions\ninteractions = pc.calculate_interactions()\nprint(f\"Interactions of example molecule: {interactions}\")\n```\n\n## Tips\n\n- Reading and processing all the PDB files using `reduce` can take a while for a large test set. If you are running `PoseCheck` frequently, it might be worth pre-processing all proteins yourself using `prot = posecheck.utils.loading.load_protein_from_pdb(pdb_path)` and setting this directly within `PoseCheck` using `pc.protein = prot`.\n\n## Data from the paper\n\n\nThe data for the paper can be found at the following Zenodo link and should be placed in the `data` directory.\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10208912.svg)](https://zenodo.org/records/10208912) \n\n\n## Cite\n\n```bibtex\n@article{harris2023benchmarking,\n  title={Benchmarking Generated Poses: How Rational is Structure-based Drug Design with Generative Models?},\n  author={Harris, Charles and Didi, Kieran and Jamasb, Arian R and Joshi, Chaitanya K and Mathis, Simon V and Lio, Pietro and Blundell, Tom},\n  journal={arXiv preprint arXiv:2308.07413},\n  year={2023}\n}\n```\n\n## Acknowledgements\n\nPoseCheck relies on several other codebases to function. Here are the links to them:\n\n- [RDKit](https://github.com/rdkit/rdkit): A collection of cheminformatics and machine learning tools.\n- [ProLIF](https://github.com/chemosim-lab/ProLIF): Protein-Ligand Interaction Fingerprints generator.\n- [Seaborn](https://github.com/mwaskom/seaborn): Statistical data visualization library.\n- [NumPy](https://github.com/numpy/numpy): The fundamental package for scientific computing with Python.\n- [DataMol](https://github.com/datamol-org/datamol): A minimalist and practical chemoinformatics library for python.\n- [Pandas](https://github.com/pandas-dev/pandas): Powerful data structures for data analysis, time series, and statistics.\n- [Reduce](https://github.com/rlabduke/reduce): A program for adding hydrogens to a Protein DataBank (PDB) molecular structure file.\n\nThere is also the similar package [PoseBusters](https://github.com/maabuu/posebusters) which provides additional tests to us and is recommended if you are benchmarking protein-ligand docking models.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcch1999%2Fposecheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcch1999%2Fposecheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcch1999%2Fposecheck/lists"}