Skip to main content

PsiRESP

😪-RESP

Latest release Last release tag GitHub commits since latest release (by date) for a branch Documentation Status
Installation Conda (channel only) Conda Downloads PyPI version PyPI - Downloads
Status GH Actions Status codecov Language grade: Python
Community License: LGPL v3

PsiRESP is a package for calculating atomic partial charges from restrained and unrestrained electrostatic potential fits using Psi4. It is highly flexible, configurable, easy to use, and totally written in Python. It supports fitting to multiple orientations and conformers, as well as both intra-molecular and inter-molecular charge constraints for multi-molecule fits. It is written to correspond closely with existing tools such as the RESP ESP charge Derive (R.E.D.) tools.

As of now, the following implementations are well-tested to reproduce results from existing tools, primarily R.E.D.:

  • standard 2-stage RESP (convenience class: psiresp.configs.TwoStageRESP)
  • standard 1-stage RESP (convenience class: psiresp.configs.OneStageRESP)
  • standard unrestrained ESP (convenience class: psiresp.configs.ESP)

These implementations are not as well-tested:

  • ESP using HF/STO-3G (convenience class: psiresp.configs.WeinerESP) -- Psi4 seems to minimize to a relatively different geometry than GAMESS with STO-3G.
  • psiresp.configs.ATBRESP, mimicking the method used by the Automated Topology Builder 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.
  • psiresp.configs.RESP2, as the methods are expensive

Installation

The recommended way to install PsiRESP is via anaconda, as the required dependencies are most easily installed distributed through conda.

For the fully featured version, install:

conda install -c conda-forge -c psi4 psiresp psi4

This will pull in all dependencies necessary for full functionality, including RDKit, Psi4 and QCFractal.

For minimal functionality, install:

conda install -c conda-forge psiresp-base

psiresp-base installs the package with minimal dependencies, so that only functionality that does not depend on RDKit, Psi4,or QCFractal is available.

The library can also be installed with minimal dependencies via Pypi:

pip install psiresp

Alternatively, to build from source:

  • clone this repository
  • create a new environment with dependencies
  • build the package
git clone https://github.com/lilyminium/psiresp.git
cd psiresp
conda env create -f devtools/conda-envs/environment.yaml
conda activate psiresp
pip install .

Please see the Installation docs for more information on installation and dependencies.

Example

Examples for PsiRESP are provided as tutorials both online and as downloadable Jupyter notebooks in the examples folder. More information can also be found in the documentation.

A minimal example is provided below, running a standard 2-stage restrained electrostatic potential fit (Bayly et al., 1993). This requires the full installation of psiresp, instead of the minimal psiresp-base, as it makes use of RDKit, Psi4 and QCFractal.

import psiresp
from psiresp.testing import FractalSnowflake
import qcfractal.interface as ptl

# set up server and client
server = FractalSnowflake()
client = ptl.FractalClient(server)

# set up molecule
dmso = psiresp.Molecule.from_smiles("CS(=O)C")

# set up job
job = psiresp.Job(molecules=[dmso])
charges = job.run(client=client)

Contributing

All contributions are welcomed! This can include sharing bug reports, bug fixes, requesting or adding new features, or improving the documentation. If you notice any issues or have feature requests, please open an issue on the Issue tracker. Otherwise, please check out the Contributing page in the documentation.

Copyright (c) 2020, Lily Wang

Acknowledgements

Project based on the Computational Molecular Science Python Cookiecutter version 1.2.

Pre-configured models and reorientation algorithm are written to directly match results from RESP ESP charge Derive (R.E.D.). Dupradeau, 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).

ATBRESP tries to match results from Automated Topology Builder (A.T.B.). Malde, A. K. et al. An Automated Force Field Topology Builder (ATB) and Repository: Version 1.0. J. Chem. Theory Comput. 7, 4026–4037 (2011).

RESP2 tries to match results from RESP2. Schauperl, M. et al. Non-bonded force field model with advanced restrained electrostatic potential charges (RESP2). Commun Chem 3, 1–11 (2020).

Some tests compare results to output from resp, the current RESP plugin for Psi4. Alenaizan, A., Burns, L. A. & Sherrill, C. D. Python implementation of the restrained electrostatic potential charge model. International Journal of Quantum Chemistry 120, e26035 (2020).

Metadata

Release files for psiresp 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psiresp 0.4.2
File Size Uploaded Provenance Actions
psiresp-0.4.2.tar.gz 49.4 MB Without provenance Details for psiresp-0.4.2.tar.gz

Release files / psiresp-0.4.2.tar.gz

Download URL psiresp-0.4.2.tar.gz
Size 49.4 MB
Tags Source
SHA-256 checksum
How to use checksums
7fb069351824df32a5064bc4061877d35cf8907c7ef6aa6d83a4af0797b72ae4
BLAKE2b-256 checksum
How to use checksums
eac06aa14e50d18b91b7b1f7f6279420f7b903db6ed1995e700316b576441772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

Security for psiresp 0.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page