PsiRESP

PsiRESP: calculating RESP charges with Psi4 - Published in JOSS (2022)

https://github.com/lilyminium/psiresp

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

atomic-charges molecular-dynamics psi4 python

Scientific Fields

Computer Science Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

RESP with inter- and intra-molecular constraints in Psi4.

Basic Info
Statistics
  • Stars: 32
  • Watchers: 1
  • Forks: 8
  • Open Issues: 14
  • Releases: 8
Topics
atomic-charges molecular-dynamics psi4 python
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Code of conduct

README.md

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. We further recommend using mamba to resolve dependencies.

For the fully featured version, install:

```

to install mamba if you do not have it already

conda install -c conda-forge mamba

to install psiresp

mamba install -c conda-forge psiresp

to install Psi4 if you need it

mamba install -c psi4 psi4 ```

This will pull in all dependencies necessary for full functionality, including RDKit and QCFractal. Psi4 is installed separately for now. As QCFractal and Psi4 can have finicky dependencies, it is often a good idea to create a new environment for PsiRESP instead of adding to another.

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.

```python 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

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).

Owner

  • Name: Lily Wang
  • Login: lilyminium
  • Kind: user
  • Location: Canberra, Australia
  • Company: @OpenForceField, @MDAnalysis

🍜 She/her

JOSS Publication

PsiRESP: calculating RESP charges with Psi4
Published
May 04, 2022
Volume 7, Issue 73, Page 4100
Authors
Lily Wang ORCID
Research School of Chemistry, College of Science, Australian National University, Canberra, ACT, 2601, Australia
Megan L. O'Mara ORCID
Research School of Chemistry, College of Science, Australian National University, Canberra, ACT, 2601, Australia
Editor
Pierre de Buyl ORCID
Tags
molecular dynamics atomic partial charges force fields resp

GitHub Events

Total
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 2
Last Year
  • Issues event: 1
  • Watch event: 1
  • Issue comment event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 81
  • Total Committers: 1
  • Avg Commits per committer: 81.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Lily Wang 3****m 81

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 40
  • Total pull requests: 64
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 9 days
  • Total issue authors: 11
  • Total pull request authors: 1
  • Average comments per issue: 0.63
  • Average comments per pull request: 2.89
  • Merged pull requests: 58
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lilyminium (26)
  • Mino01 (4)
  • ptmerz (2)
  • EBGU (1)
  • vsheg (1)
  • zd9999cs (1)
  • eva-not (1)
  • wg12385 (1)
  • n-kristovskiy (1)
  • hannahbrucemacdonald (1)
  • loriab (1)
Pull Request Authors
  • lilyminium (64)
Top Labels
Issue Labels
documentation (5) technical (2) design (2) science (1)
Pull Request Labels
release-0.3 (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 26 last-month
  • Total docker downloads: 14
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 19
  • Total maintainers: 1
pypi.org: psiresp
  • Versions: 9
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 26 Last month
  • Docker Downloads: 14
Rankings
Docker downloads count: 3.6%
Dependent packages count: 4.7%
Average: 16.2%
Dependent repos count: 21.7%
Downloads: 34.7%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: psiresp-base

PsiRESP is a package for calculating atomic partial charges from restrained and unrestrained electrostatic potential fits. The electrostatic potentials can be calculated using QCFractal and Psi4, or provided.

  • Versions: 5
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Average: 39.4%
Forks count: 46.0%
Stargazers count: 48.9%
Last synced: 4 months ago
conda-forge.org: psiresp

PsiRESP is a package for calculating atomic partial charges from restrained and unrestrained electrostatic potential fits. The electrostatic potentials can be calculated using QCFractal and Psi4, or provided.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Average: 45.0%
Forks count: 46.0%
Stargazers count: 48.9%
Dependent packages count: 51.2%
Last synced: 4 months ago

Dependencies

setup.py pypi
  • msgpack-python *
  • numpy *
  • qcelemental *
  • requests *
  • scipy >=1.4
  • tqdm *
  • typing-extensions *
.github/workflows/gh-ci.yaml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • conda-incubator/setup-miniconda v2 composite
devtools/conda-envs/environment.yaml conda
  • dftd3
  • geometric
  • h5py <3.2
  • intel-openmp !=2019.5
  • numpy
  • pip
  • postgresql >=13.0
  • psi4 >=1.3.0
  • python
  • qcelemental >=0.22.0
  • qcengine
  • qcfractal >=0.15
  • qcfractal-core
  • rdkit
  • requests
  • scipy
pyproject.toml pypi