Skip to content

Commit

Permalink
Add CoC and Contribution guide, update readme (#241)
Browse files Browse the repository at this point in the history
* Add CoC and Contribution guide, update readme

* Fix CoC links

* CoC typos

* Add link to pre-print

* Simplify links

* Update CONTRIBUTING.md

Co-authored-by: Matt Thompson <[email protected]>

* More info on pre-commit from Matt

* Remove slightly redundant pre-commit badge

* Add CITATION.cff

* Update CONTRIBUTING.md

---------

Co-authored-by: Matt Thompson <[email protected]>
  • Loading branch information
Yoshanuikabundi and mattwthompson authored Mar 29, 2023
1 parent 6b57aa6 commit 57f2ba4
Show file tree
Hide file tree
Showing 4 changed files with 341 additions and 10 deletions.
139 changes: 139 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
cff-version: 1.2.0
title: OpenFF BespokeFit
message: >-
In any publications using force fields produced by
BespokeFit, please cite:
type: software
authors:
- given-names: The BespokeFit Contributors
identifiers:
- type: doi
value: 10.1021/acs.jcim.2c01153
- type: url
value: 'https://doi.org/10.26434/chemrxiv-2022-6h628'
description: ChemRxiv
repository-code: 'https://github.com/openforcefield/openff-bespokefit'
url: 'https://docs.openforcefield.org/bespokefit'
abstract: >-
The development of accurate transferable force fields is
key to realizing the full potential of atomistic modeling
in the study of biological processes such as
protein–ligand binding for drug discovery.
State-of-the-art transferable force fields, such as those
produced by the Open Force Field Initiative, use modern
software engineering and automation techniques to yield
accuracy improvements. However, force field torsion
parameters, which must account for many stereoelectronic
and steric effects, are considered to be less transferable
than other force field parameters and are therefore often
targets for bespoke parametrization. Here, we present the
Open Force Field QCSubmit and BespokeFit software packages
that, when combined, facilitate the fitting of torsion
parameters to quantum mechanical reference data at scale.
We demonstrate the use of QCSubmit for simplifying the
process of creating and archiving large numbers of quantum
chemical calculations, by generating a dataset of 671
torsion scans for druglike fragments. We use BespokeFit to
derive individual torsion parameters for each of these
molecules, thereby reducing the root-mean-square error in
the potential energy surface from 1.1 kcal/mol, using the
original transferable force field, to 0.4 kcal/mol using
the bespoke version. Furthermore, we employ the bespoke
force fields to compute the relative binding free energies
of a congeneric series of inhibitors of the TYK2 protein,
and demonstrate further improvements in accuracy, compared
to the base force field (MUE reduced from
0.56_{0.39}^{0.77} to 0.42_{0.28}^{0.59} kcal/mol and R2
correlation improved from 0.72_{0.35}^{0.87} to
0.93_{0.84}^{0.97}).
keywords:
- force field
- free energy
- molecular mechanics
- forcebalance
- openff
- smirnoff
- qcsubmit
- qcengine
license: MIT

preferred-citation:
type: article
title: >-
Open Force Field BespokeFit: Automating Bespoke Torsion
Parametrization at Scale
authors:
- given-names: Joshua T.
family-names: Horton
orcid: 'https://orcid.org/0000-0001-8694-7200'
affiliation: >-
School of Natural and Environmental Sciences,
Newcastle University
- given-names: Simon
family-names: Boothroyd
affiliation: Boothroyd Scientific Consulting Ltd.
orcid: 'https://orcid.org/0000-0002-3456-1872'
- given-names: Jeffrey
family-names: Wagner
affiliation: The Open Force Field Initiative
orcid: 'https://orcid.org/0000-0001-6448-0873'
- given-names: Joshua A.
family-names: Mitchell
affiliation: The Open Force Field Initiative
orcid: 'https://orcid.org/0000-0002-8246-5113'
email: [email protected]
- given-names: Trevor
family-names: Gokey
affiliation: 'Dept. Chemistry, UC Irvine'
orcid: 'https://orcid.org/0000-0001-7856-1156'
- given-names: David L.
family-names: Dotson
orcid: 'https://orcid.org/0000-0001-5879-2942'
affiliation: The Open Force Field Initiative
- given-names: Pavan Kumar
family-names: Behara
orcid: 'https://orcid.org/0000-0001-6583-2148'
affiliation: 'Dept. Pharmaceutical Sciences, UC Irvine'
- given-names: Venkata Krishnan
family-names: Ramaswamy
affiliation: Cresset BioMolecular Discovery Ltd.
orcid: 'https://orcid.org/0000-0002-5804-8483'
- given-names: Mark
family-names: Mackey
affiliation: Cresset BioMolecular Discovery Ltd.
orcid: 'https://orcid.org/0000-0001-5131-7583'
- orcid: 'https://orcid.org/0000-0003-0542-119X'
given-names: John D.
family-names: Chodera
affiliation: >-
Computational & Systems Biology Program, Sloan
Kettering Institute
- given-names: Jamshed
family-names: Anwar
affiliation: 'Dept. Chemistry, Lancaster University'
orcid: 'https://orcid.org/0000-0003-1721-0330'
- given-names: David L.
family-names: Mobley
affiliation: 'Dept. Chemistry, UC Irvine'
orcid: 'https://orcid.org/0000-0002-1083-5533'
- given-names: Daniel J.
family-names: Cole
affiliation: >-
School of Natural and Environmental Sciences,
Newcastle University
orcid: 'https://orcid.org/0000-0003-2933-0719'
email: [email protected]
identifiers:
- type: doi
value: 10.1021/acs.jcim.2c01153
- type: url
value: 'https://doi.org/10.26434/chemrxiv-2022-6h628'
description: ChemRxiv Pre-Print
doi: "10.1021/acs.jcim.2c01153"
journal: "J. Chem. Inf. Model."
month: 11
start: 5622 # First page number
end: 5633 # Last page number
issue: 22
volume: 62
year: 2022
142 changes: 142 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Code of conduct

The OpenFF BespokeFit *Code of Conduct* sets the rules for the behavior of
every member in the OpenFF BespokeFit community so that everyone can
experience a welcoming, supportive, and productive environment that is
free from harassment.

**Table of Contents**

- [Code of conduct](#code-of-conduct)
- [Code of Conduct and Community Guidelines](#code-of-conduct-and-community-guidelines)
- [Scope](#scope)
- [Enforcement](#enforcement)
- [Acknowledgments](#acknowledgments)

## Code of Conduct and Community Guidelines

OpenFF BespokeFit is part of an engaged and respectful community made up of
people from all over the world. Your involvement helps us to further our
mission and to create an open platform that serves a broad range of
communities, from research and education to industry and beyond. This diversity
is one of our biggest strengths, but it can also lead to communication issues
and conflicts. Therefore, we have a few ground rules we ask that our community
members adhere to.

Fundamentally, we are committed to providing a productive,
harassment-free environment for everyone. Rather than considering this
code an exhaustive list of things that you can't do, take it in the
spirit it is intended - a guide to make it easier to enrich all of us
and the communities in which we participate.

Importantly: as a member of our community, you are also a steward of these
values. Not all problems need to be resolved via formal processes, and often a
quick, friendly but clear word on an online forum or in person can help resolve
a misunderstanding and de-escalate things.

By embracing the following principles, guidelines and actions to follow or
avoid, you will help us make OpenFF BespokeFit a welcoming and productive
community.

1. **Be friendly and patient**.

2. **Be welcoming**. We strive to be a community that welcomes and supports
people of all backgrounds and identities. This includes, but is not limited
to, members of any race, ethnicity, culture, national origin, color,
immigration status, social and economic class, educational level, sex,
sexual orientation, gender identity and expression, age, physical
appearance, family status, political belief, technological or professional
choices, academic discipline, religion, mental ability, and physical
ability.

3. **Be considerate**. Your work will be used by other people, and you in turn
will depend on the work of others. Any decision you take will affect users
and colleagues, and you should take those consequences into account when
making decisions. Remember that we're a world-wide community. You may be
communicating with someone with a different primary language or cultural
background.

4. **Be respectful**. Not all of us will agree all the time, but disagreement
is no excuse for poor behavior or poor manners. We might all experience some
frustration now and then, but we cannot allow that frustration to turn into
a personal attack. It's important to remember that a community where people
feel uncomfortable or threatened is not a productive one.

5. **Be careful in the words that you choose**. Be kind to others. Do not
insult or put down other community members. Harassment and other
exclusionary behaviors are not acceptable. This includes, but is not
limited to:
* threats or violent language directed against another person
* discriminatory jokes and language
* posting sexually explicit or violent material
* posting (or threatening to post) other people's personally identifying
information ("doxing")
* personal insults, especially those using racist or sexist terms
* unwelcome sexual attention, even if believed to be welcome
* advocating for, or encouraging, any of the above behavior
* repeated harassment of others. In general, if someone asks you to stop,
then stop

6. **Moderate your expectations**. Many in our community volunteer their time.
They are probably not purposefully ignoring issues, refusing to engage in
discussion, avoiding features, etc. but often just unavailable.

7. **When we disagree, try to understand why**. Disagreements, both social and
technical, happen all the time and OpenFF BespokeFit is no exception. It is
important that we resolve disagreements and differing views constructively.
Remember that we're different. The strength of OpenFF BespokeFit comes from
its varied community that includes people from a wide range of backgrounds.
Different people have different perspectives on issues. Being unable to
understand why someone holds a viewpoint doesn't mean they're wrong. Don't
forget that it is human to err and blaming each other doesn't get us
anywhere. Instead, focus on helping to resolve issues and learning from
mistakes.

8. **A simple apology can go a long way**. It can often de-escalate a
situation, and telling someone that you are sorry is act of empathy that
doesn't automatically imply an admission of guilt.


## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an
appointed representative at an online or offline event. Representation of a
project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected].
The project team will review and investigate all complaints, and will respond
in a way that it deems appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an
incident. Further details of specific enforcement policies may be posted
separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.


## Acknowledgments

This code of conduct is adapted from the [OpenFF NAGL code of conduct].
Original text was adapted from the [*Speak Up!*], [*Django*],
[*Contributor Covenant*], [*Jupyter*], [*MolSSI*], and [*MDAnalysis*]
projects. We are grateful to those projects for contributing these materials
under open licensing terms for us to easily reuse.

All content on this page is licensed under a [*Creative Commons Attribution*]
license.

[OpenFF NAGL code of conduct]: https://github.com/openforcefield/openff-nagl/blob/main/CODE_OF_CONDUCT.md
[*Speak Up!*]: http://web.archive.org/web/20141109123859/http://speakup.io/coc.html
[*Django*]: https://www.djangoproject.com/conduct
[*Contributor Covenant*]: http://contributor-covenant.org/
[*Jupyter*]: https://github.com/jupyter/governance/blob/master/conduct/code_of_conduct.md
[*MolSSI*]: https://github.com/MolSSI/cookiecutter-cms/blob/master/%7B%7Bcookiecutter.repo_name%7D%7D/CODE_OF_CONDUCT.md
[*MDAnalysis*]: https://github.com/MDAnalysis/mdanalysis/blob/develop/CODE_OF_CONDUCT.md
[*Creative Commons Attribution*]: http://creativecommons.org/licenses/by/3.0/
48 changes: 48 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Contributing to BespokeFit

OpenFF BespokeFit developers follow a [code of conduct]. Please familiarize yourself with the code.

Despite being developed primarily by UK and Australian developers, BespokeFit uses US English in all documentation.

BespokeFit is developed in the open at [GitHub]. We welcome PRs and issues from the general public! Please consider raising an issue there to discuss changes or additions to the code before you commit time to a PR!

A development environment for BespokeFit can be created using [Mamba], which is a faster implementation of the [Conda] package manager:

```shell
git clone https://github.com/openforcefield/openff-bespokefit.git
cd openff-bespokefit
mamba env create --file devtools/conda-envs/test-env.yaml --name bespokefit-dev
mamba env update --file devtools/conda-envs/docs-env.yaml --name bespokefit-dev
conda activate bespokefit-dev
pip install -e .
```

With this environment, tests can be run locally with [PyTest]:

```shell
pytest openff/bespokefit/tests
```

And documentation can be built with [Sphinx] and viewed in a web browser:

```shell
sphinx-build -j auto docs docs/_build/html
firefox docs/_build/html/index.html
```

Finally, BespokeFit uses a number of lints and code formatters to help maintain code quality. These will be run automatically on any PRs by [pre-commit.ci], so be aware that there's a bot potentially committing to your feature branch. You can run the lints and formatters yourself automatically on each local commit by installing the pre-commit hook:

```shell
mamba install pre-commit -c conda-forge
pre-commit install
```

These hooks are installed in isolated virtual environments, separate from the `conda` environment you created for development (though pre-commit itself will be installed in the current environment). Installing `pre-commit` and hooks locally may help avoid frustration associated with the remote branch coming out of sync when multiple commits are pushed in sequence without pulling the automated changes.

[code of conduct]: CODE_OF_CONDUCT.md
[GitHub]: https://github.com/openforcefield/openff-bespokefit
[Mamba]: https://mamba.readthedocs.io/
[Conda]: https://docs.conda.io/
[PyTest]: https://pytest.org/
[Sphinx]: https://www.sphinx-doc.org/
[pre-commit.ci]: https://results.pre-commit.ci/latest/github/openforcefield/openff-bespokefit/main
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,30 @@ BespokeFit
[//]: # (Badges)
[![CI](https://github.com/openforcefield/openff-bespokefit/actions/workflows/CI.yaml/badge.svg)](https://github.com/openforcefield/openff-bespokefit/actions/workflows/CI.yaml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/openforcefield/openff-bespokefit/main.svg)](https://results.pre-commit.ci/latest/github/openforcefield/openff-bespokefit/main)
[![Documentation Status](https://readthedocs.org/projects/openff-bespokefit/badge/?version=stable)](https://docs.openforcefield.org/projects/bespokefit/en/stable/?badge=stable)
[![codecov](https://codecov.io/gh/openforcefield/openff-bespokefit/branch/main/graph/badge.svg)](https://codecov.io/gh/openforcefield/openff-bespokefit/branch/main)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)

The BespokeFit framework aims to offer a completely automated workflow for creating bespoke, highly accurate, SMIRNOFF
format parameters for individual molecules up to entire lead series.
The BespokeFit framework aims to offer a completely automated workflow for creating bespoke, highly accurate, SMIRNOFF format parameters for individual molecules up to entire lead series.

***Warning**: This code is currently experimental and under active development. If you are using this it, please be
aware that it is not guaranteed to provide correct results, the documentation and testing may be incomplete, and the
API can change without notice.*
***Warning**: This code is currently experimental and under active development. If you are using this it, please be aware that it is not guaranteed to provide correct results, the documentation and testing may be incomplete, and the API can change without notice.*

## Getting Started

To start using this framework we recommend looking over [the documentation](https://openff-bespokefit.readthedocs.io/en/latest/index.html).
If you'd like to run some basic examples immediately, see the [quick start guide](https://openff-bespokefit.readthedocs.io/en/latest/getting-started/quick-start.html),
or if you plan to explore the functionality in more depth, begin with the [installation guide](https://openff-bespokefit.readthedocs.io/en/latest/getting-started/installation.html).
To start using this framework we recommend looking over [the documentation](https://docs.openforcefield.org/bespokefit/en/stable/index.html). If you'd like to run some basic examples immediately, see the [quick start guide](https://docs.openforcefield.org/bespokefit/en/stable/getting-started/quick-start.html), or if you plan to explore the functionality in more depth, begin with the [installation guide](https://docs.openforcefield.org/bespokefit/en/stable/getting-started/installation.html). For information on developing and contributing to BespokeFit, see [CONTRIBUTING.md](CONTRIBUTING.md).

## How to cite

In any publications using BespokeFit, please cite:

> Joshua T. Horton, Simon Boothroyd, Jeffrey Wagner, Joshua A. Mitchell, Trevor Gokey, David L. Dotson, Pavan Kumar Behara, Venkata Krishnan Ramaswamy, Mark Mackey, John D. Chodera, Jamshed Anwar, David L. Mobley, and Daniel J. Cole "Open Force Field BespokeFit: Automating Bespoke Torsion Parametrization at Scale" [*J. Chem. Inf. Model.* 2022, 62, 22, 5622–5633](https://doi.org/10.1021/acs.jcim.2c01153)
A pre-print of this paper is freely available from [ChemRxiv](https://doi.org/10.26434/chemrxiv-2022-6h628).

## License

The main package is release under the [MIT license](LICENSE).
OpenFF BespokeFit is released under the [MIT license](LICENSE).

## Copyright

Expand Down

0 comments on commit 57f2ba4

Please sign in to comment.