{"id":17306293,"url":"https://github.com/lilyminium/psiresp","last_synced_at":"2025-04-14T13:35:16.339Z","repository":{"id":41902802,"uuid":"263533623","full_name":"lilyminium/psiresp","owner":"lilyminium","description":"RESP with inter- and intra-molecular constraints in Psi4.","archived":false,"fork":false,"pushed_at":"2023-05-26T11:19:37.000Z","size":60392,"stargazers_count":30,"open_issues_count":13,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T10:40:19.405Z","etag":null,"topics":["atomic-charges","molecular-dynamics","psi4","python"],"latest_commit_sha":null,"homepage":"https://psiresp.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lilyminium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-13T05:26:57.000Z","updated_at":"2025-01-29T08:27:32.000Z","dependencies_parsed_at":"2022-09-01T17:12:19.352Z","dependency_job_id":null,"html_url":"https://github.com/lilyminium/psiresp","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilyminium%2Fpsiresp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilyminium%2Fpsiresp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilyminium%2Fpsiresp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilyminium%2Fpsiresp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lilyminium","download_url":"https://codeload.github.com/lilyminium/psiresp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248889114,"owners_count":21178166,"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":["atomic-charges","molecular-dynamics","psi4","python"],"created_at":"2024-10-15T11:58:00.117Z","updated_at":"2025-04-14T13:35:16.310Z","avatar_url":"https://github.com/lilyminium.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PsiRESP\n😪-RESP\n\n| **Latest release** | [![Last release tag](https://img.shields.io/github/release-pre/lilyminium/psiresp.svg)](https://github.com/lilyminium/psiresp/releases) ![GitHub commits since latest release (by date) for a branch](https://img.shields.io/github/commits-since/lilyminium/psiresp/latest)  [![Documentation Status](https://readthedocs.org/projects/psiresp/badge/?version=latest)](https://psiresp.readthedocs.io/en/latest/?badge=latest)|\n| :------ | :------- |\n| **Installation** | [![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/psiresp)]((https://anaconda.org/conda-forge/psiresp)) ![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/psiresp.svg) [![PyPI version](https://badge.fury.io/py/psiresp.svg)](https://pypi.org/project/psiresp/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/psiresp) |\n| **Status** | [![GH Actions Status](https://github.com/lilyminium/psiresp/actions/workflows/gh-ci.yaml/badge.svg)](https://github.com/lilyminium/psiresp/actions?query=branch%3Amaster+workflow%3Agh-ci) [![codecov](https://codecov.io/gh/lilyminium/psiresp/branch/master/graph/badge.svg)](https://codecov.io/gh/lilyminium/psiresp/branch/master) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/lilyminium/psiresp.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/lilyminium/psiresp/context:python) |\n| **Community** | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL_v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) |\n\nPsiRESP is a package for calculating atomic partial charges from\nrestrained and unrestrained electrostatic potential fits using Psi4.\nIt is highly flexible, configurable, easy to use, and totally written in Python.\nIt supports fitting to multiple orientations and conformers,\nas well as both intra-molecular and inter-molecular charge constraints for\nmulti-molecule fits.\nIt is written to correspond closely with existing tools such as the\n[RESP ESP charge Derive (R.E.D.)](https://upjv.q4md-forcefieldtools.org/RED/) tools.\n\nAs of now, the following implementations are well-tested to reproduce results from existing tools, primarily R.E.D.:\n\n* standard 2-stage RESP (convenience class: psiresp.configs.TwoStageRESP)\n* standard 1-stage RESP (convenience class: psiresp.configs.OneStageRESP)\n* standard unrestrained ESP (convenience class: psiresp.configs.ESP)\n\nThese implementations are not as well-tested:\n* ESP using HF/STO-3G (convenience class: psiresp.configs.WeinerESP) -- Psi4 seems to minimize to a relatively different geometry than GAMESS with STO-3G.\n* psiresp.configs.ATBRESP, mimicking the method used by the [Automated Topology Builder](https://atb.uq.edu.au/) is not tested at all. The published methods do not indicate the point density, moreover, the results generated seem to have changed since the original paper. **Use at your own risk.**\n* psiresp.configs.RESP2, as the methods are expensive\n\n### Installation\n\nThe recommended way to install PsiRESP is via [anaconda](https://anaconda.org/anaconda/python),\nas the required dependencies are most easily installed distributed through ``conda``.\nWe further recommend using ``mamba`` to resolve dependencies.\n\nFor the fully featured version, install:\n\n```\n# to install mamba if you do not have it already\nconda install -c conda-forge mamba\n# to install psiresp\nmamba install -c conda-forge psiresp\n# to install Psi4 if you need it\nmamba install -c psi4 psi4\n```\n\n\nThis will pull in all dependencies necessary for full functionality, including\n[RDKit](https://www.rdkit.org/) and\n[QCFractal](https://docs.qcarchive.molssi.org/projects/qcfractal/en/latest/).\n[Psi4](https://psicode.org/) is installed separately for now.\nAs QCFractal and Psi4 can have finicky dependencies, it is often\na good idea to create a new environment for PsiRESP instead of adding to another.\n\nFor minimal functionality, install:\n\n```\nconda install -c conda-forge psiresp-base\n```\n\n`psiresp-base` installs the package with minimal dependencies, so that\nonly functionality that does not depend on RDKit, Psi4,or QCFractal is available.\n\nThe library can also be installed with minimal dependencies via Pypi:\n\n```\npip install psiresp\n```\n\n\nAlternatively, to build from source: \n\n* clone this repository\n* create a new environment with dependencies\n* build the package\n\n```\ngit clone https://github.com/lilyminium/psiresp.git\ncd psiresp\nconda env create -f devtools/conda-envs/environment.yaml\nconda activate psiresp\npip install .\n```\n\nPlease see [the Installation docs](https://psiresp.readthedocs.io/en/latest/installation.html) for more information on installation and dependencies.\n\n### Example\n\nExamples for PsiRESP are provided as tutorials both [online](https://psiresp.readthedocs.io/en/latest/examples/README.html)\nand as downloadable Jupyter notebooks in the\n[examples folder](https://github.com/lilyminium/psiresp/tree/master/docs/source/examples).\nMore information can also be found in the [documentation](https://psiresp.readthedocs.io/en/latest/).\n\nA minimal example is provided below, running a standard 2-stage restrained electrostatic potential fit (Bayly et al., 1993).\nThis requires the full installation of `psiresp`, instead of the minimal `psiresp-base`,\nas it makes use of RDKit, Psi4 and QCFractal.\n\n```python\nimport psiresp\nfrom psiresp.testing import FractalSnowflake\nimport qcfractal.interface as ptl\n\n# set up server and client\nserver = FractalSnowflake()\nclient = ptl.FractalClient(server)\n\n# set up molecule\ndmso = psiresp.Molecule.from_smiles(\"CS(=O)C\")\n\n# set up job\njob = psiresp.Job(molecules=[dmso])\ncharges = job.run(client=client)\n```\n\n### Contributing\n\nAll contributions are welcomed! This can include sharing bug reports, bug fixes, requesting or adding new features, or improving the documentation.\nIf you notice any issues or have feature requests, please open an issue on the [Issue tracker](https://github.com/lilyminium/psiresp/issues).\nOtherwise, please check out the [Contributing](https://psiresp.readthedocs.io/en/latest/contributing.html) page in the documentation.\n\n\n### Copyright\n\nCopyright (c) 2020, Lily Wang\n\n#### Acknowledgements\n\nProject based on the\n[Computational Molecular Science Python Cookiecutter](https://github.com/molssi/cookiecutter-cms) version 1.2.\n\nPre-configured models and reorientation algorithm are written to directly match results from \n[RESP ESP charge Derive (R.E.D.)](https://upjv.q4md-forcefieldtools.org/RED/).\nDupradeau, F.-Y. et al. The R.E.D. tools: advances in RESP and ESP charge derivation and force field library building. Phys. Chem. Chem. Phys. 12, 7821 (2010).\n\nATBRESP tries to match results from [Automated Topology Builder (A.T.B.)](https://atb.uq.edu.au/).\nMalde, A. K. et al. An Automated Force Field Topology Builder (ATB) and Repository: Version 1.0. J. Chem. Theory Comput. 7, 4026–4037 (2011).\n\nRESP2 tries to match results from [RESP2](https://github.com/MSchauperl/RESP2).\nSchauperl, M. et al. Non-bonded force field model with advanced restrained electrostatic potential charges (RESP2). Commun Chem 3, 1–11 (2020).\n\nSome tests compare results to output from [resp](https://github.com/cdsgroup/resp), the current RESP plugin \nfor Psi4. \nAlenaizan, A., Burns, L. A. \u0026 Sherrill, C. D. Python implementation of the restrained electrostatic potential charge model. International Journal of Quantum Chemistry 120, e26035 (2020).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilyminium%2Fpsiresp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilyminium%2Fpsiresp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilyminium%2Fpsiresp/lists"}