foyer

A package for atom-typing as well as applying and disseminating forcefields

https://github.com/mosdef-hub/foyer

Science Score: 77.0%

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

  • CITATION.cff file
    Found 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 README
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com, zenodo.org
  • Committers with academic emails
    20 of 47 committers (42.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary

Keywords

atom-typing disseminating-forcefields force-field foyer molecular-dynamics molecular-simulation python

Keywords from Contributors

chemistry computational-chemistry quantum-chemistry standards data-management reproducibility
Last synced: 6 months ago · JSON representation ·

Repository

A package for atom-typing as well as applying and disseminating forcefields

Basic Info
  • Host: GitHub
  • Owner: mosdef-hub
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage: https://foyer.mosdef.org
  • Size: 31.6 MB
Statistics
  • Stars: 133
  • Watchers: 20
  • Forks: 77
  • Open Issues: 63
  • Releases: 39
Topics
atom-typing disseminating-forcefields force-field foyer molecular-dynamics molecular-simulation python
Created almost 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation

README.md

Foyer: A package for atom-typing as well as applying and disseminating forcefields

Gitter chat CI Anaconda Badge codecov DOI

Overview

Foyer is an open-source Python tool for defining and applying force field atom-typing rules in a format that is both human- and machine-readable. It parametrizes chemical topologies, generating, syntactically correct input files for various simulation engines. Foyer provides a framework for force field dissemination, helping to eliminate ambiguity in atom-typing and improving reproducibility (for more information, see our paper or its corresponding pre-print).

About the name: foyer was inspired by the antechamber tool in the Amber ecosystem. Foyer plays a similar role to antechamber, hence the tongue-in-cheek, shared vestibular reference.

Foyer within the MoSDeF Ecosystem

Foyer within the MoSDeF Ecosystem

Foyer defines force fields in an XML format, where SMARTS strings are used to define the chemical context of a particular atom type and “overrides” are used to set rule precedence, rather than a rigid hierarchical scheme. Foyer builds upon the OpenMM .xml force field file, annotated with SMARTS-based atomtypes, e.g.:

xml <ForceField> <AtomTypes> <Type name="opls_135" class="CT" element="C" mass="12.01100" def="[C;X4](C)(H)(H)H" desc="alkane CH3"/> <Type name="opls_140" class="HC" element="H" mass="1.00800" def="H[C;X4]" desc="alkane H"/> </AtomTypes> </ForceField>

Foyer can apply the forcefield to arbitrary chemical topologies. We currently support:

Application of a force field can be as simple as: ```python from foyer import Forcefield import parmed as pmd

untypedethane = pmd.loadfile('ethane.mol2', structure=True) oplsaa = Forcefield(forcefieldfiles='oplsaa.xml') ethane = oplsaa.apply(untypedethane)

Save to any format supported by ParmEd

ethane.save('ethane.top') ethane.save('ethane.gro') ```

The Foyer package is part of the Molecular Simulation Design Framework (MoSDeF) project. Libraries in the MoSDeF ecosystem are designed to provide utilities necessary to streamline a researcher's simulation workflow. When setting up simulation studies, we also recommend users to follow the TRUE (Transparent, Reproducible, Usable-by-others, and Extensible) standard, which is a set of common practices meant to improve the reproducibility of computational simulation research.

Getting started

Quick Start with Docker

To use foyer in a jupyter-notebook that runs from a docker container with all the dependencies installed use the following command:

sh $ docker pull mosdef/foyer:latest $ docker run -it --name foyer -p 8888:8888 mosdef/foyer:latest\ /opt/conda/envs/foyer-docker/bin/jupyter notebook --ip="*"

Alternatively, you can also start a Bourne shell directly: sh $ docker run -it --name foyer mosdef/foyer:latest

To learn more about using foyer with docker, please refer to the documentation here .

Getting started with SMARTS-based atom-typing

Defining force fields:

Example foyer force field files:

Foyer currently includes a subset of the OPLS AA and TraPPE forcefields, currently part of the source distribution: * https://github.com/mosdef-hub/foyer/tree/master/foyer/forcefields

Additional example force field XML files: * https://github.com/chrisiacovella/OPLSaaperfluoroalkanes * https://github.com/mosdef-hub/forcefieldperfluoroethers * https://github.com/summeraz/OPLSaa_alkylsilanes

Example template for disseminating force fields: * https://github.com/mosdef-hub/forcefield_template

Using Foyer to perform atom typing:

Documentation:

  • Documentation website: http://foyer.mosdef.org

Installation instructions

Citing Foyer:

  • If you use this package, please cite our paper published in Computational Materials Science.
  • This manuscript is also available in its pre-print form on arxiv
  • The paper and examples in this work were developed for tag paperCOMMAT2019

  • Please also cite the github repository, https://github.com/mosdef-hub/foyer

License

Various sub-portions of this library may be independently distributed under different licenses. See those files for their specific terms.

This material is based upon work supported by the National Science Foundation under grants NSF ACI-1047828 and NSF ACI-1535150. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Owner

  • Name: MoSDeF - the Molecular Simulation Design Framework
  • Login: mosdef-hub
  • Kind: organization

MoSDeF builds, atom types, and parametrizes arbitrary chemical systems for molecular simulation in an engine agnostic manner.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  Foyer: A package for atom-typing as well as
  applying and disseminating forcefields
message: >-
  If you use this software, please cite it using the
  metadata from this file and the preferred citation.
type: software
authors:
  - given-names: Christoph
    family-names: Klein
    affiliation: "Vanderbilt University"
  - given-names: "Andrew Z."
    family-names: Summers
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0001-8477-3059'
  - given-names: "Matthew W."
    family-names: Thompson
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-1460-3983'
  - given-names: "Justin B."
    family-names: Gilmer
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-6915-5591'
  - given-names: "Co D."
    family-names: Quach
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-1255-4161'
  - given-names: Umesh
    family-names: Timalsina
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-5430-3993'
  - given-names: Peter
    family-names: Volgyesi
    orcid: 'https://orcid.org/0000-0002-7478-4317'
    affiliation: "Vanderbilt University"
  - given-names: Janos
    family-names: Sallai
    affiliation: "Vanderbilt University"
  - given-names: "Chris R."
    family-names: Iacovella
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0003-0557-0427'
  - given-names: Clare
    family-names: McCabe
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-8552-9135'
  - given-names: "Peter T."
    family-names: Cummings
    affiliation: "Vanderbilt University"
    orcid: 'https://orcid.org/0000-0002-9766-2216'
identifiers:
  - type: doi
    value: 10.5281/zenodo.6229092
    description: Zenodo Doi
repository-code: 'https://github.com/mosdef-hub/foyer'
url: 'https://foyer.mosdef.org'
repository: 'https://github.com/mosdef-hub/foyer'
repository-artifact: 'https://github.com/mosdef-hub/foyer/releases'
abstract: >-
  Foyer is an open-source Python tool for defining
  and applying force field atom-typing rules in a
  format that is both human- and machine-readable. It
  parametrizes chemical topologies, generating,
  syntactically correct input files for various
  simulation engines. Foyer provides a framework for
  force field dissemination, helping to eliminate
  ambiguity in atom-typing and improving
  reproducibility.
keywords:
  - atom-typing
  - reproducibility
  - 'TRUE'
  - mosdef
  - python
license: MIT
preferred-citation:
  type: article
  authors:
    - given-names: Christoph
      family-names: Klein
      affiliation: "Vanderbilt University"
    - given-names: "Andrew Z."
      family-names: Summers
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0001-8477-3059'
    - given-names: "Matthew W."
      family-names: Thompson
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0002-1460-3983'
    - given-names: "Justin B."
      family-names: Gilmer
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0002-6915-5591'
    - given-names: Clare
      family-names: McCabe
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0002-8552-9135'
    - given-names: "Peter T."
      family-names: Cummings
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0002-9766-2216'
    - given-names: Janos
      family-names: Sallai
      affiliation: "Vanderbilt University"
    - given-names: "Chris R."
      family-names: Iacovella
      affiliation: "Vanderbilt University"
      orcid: 'https://orcid.org/0000-0003-0557-0427'
  title: "Formalizing atom-typing and the dissemination of force fields with foyer"
  journal: "Comput. Mater. Sci."
  volume: "167"
  pages: "12"
  year: "2019"
  doi: "10.1016/j.commatsci.2019.05.026"

GitHub Events

Total
  • Issues event: 8
  • Watch event: 13
  • Issue comment event: 32
  • Push event: 60
  • Pull request review comment event: 24
  • Pull request review event: 19
  • Pull request event: 58
  • Create event: 1
Last Year
  • Issues event: 8
  • Watch event: 13
  • Issue comment event: 32
  • Push event: 60
  • Pull request review comment event: 24
  • Pull request review event: 19
  • Pull request event: 58
  • Create event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 681
  • Total Committers: 47
  • Avg Commits per committer: 14.489
  • Development Distribution Score (DDS): 0.767
Past Year
  • Commits: 28
  • Committers: 10
  • Avg Commits per committer: 2.8
  • Development Distribution Score (DDS): 0.607
Top Committers
Name Email Commits
Christoph Klein c****n@m****m 159
Matthew W. Thompson m****n@v****u 136
Andrew Summers a****s@g****m 66
Co Quach d****7@g****m 38
Alex Yang a****z@v****u 37
Umesh Timalsina u****a@v****u 34
pre-commit-ci[bot] 6****]@u****m 27
Co Quach 4****7@u****m 22
Ray A. Matsumoto r****o@v****u 20
Justin Gilmer j****r@g****u 17
Justin Gilmer j****r@v****u 14
Arjun Bansal a****l@v****u 10
ahy3nz a****g@v****u 10
sallai j****i@g****m 8
AndrewPuente a****e@v****u 7
Jenny 3****l@u****m 7
Arjun Bansal 5****9@u****m 6
Mike Henry m****y@b****u 5
matt.thompson@vanderbilt.edu m****p@g****m 5
Justin j****r@g****m 4
Peter Volgyesi p****i@v****u 4
Janos Sallai j****i@v****u 4
Parashara Shamaprasad p****a@v****u 4
Matt Thompson m****n@p****m 3
Ray Matsumoto r****o@M****l 3
Ryan S. DeFever r****r@g****m 3
chrisiacovella c****a@v****u 3
sallai s****s@v****u 2
Eisuke Kawashima e****m@u****m 2
CalCraven 5****n@u****m 2
and 17 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 69
  • Total pull requests: 167
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 15 days
  • Total issue authors: 31
  • Total pull request authors: 21
  • Average comments per issue: 1.99
  • Average comments per pull request: 1.19
  • Merged pull requests: 142
  • Bot issues: 0
  • Bot pull requests: 94
Past Year
  • Issues: 8
  • Pull requests: 61
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.16
  • Merged pull requests: 50
  • Bot issues: 0
  • Bot pull requests: 51
Top Authors
Issue Authors
  • iGulitch (11)
  • daico007 (7)
  • mattwthompson (6)
  • CalCraven (4)
  • bc118 (4)
  • rsdefever (3)
  • umesh-timalsina (3)
  • chrisjonesBSU (2)
  • jennyfothergill (2)
  • ctk3b (2)
  • mikemhenry (2)
  • chrisiacovella (2)
  • InnocentBug (2)
  • mattiafelice-palermo (1)
  • bkpgh (1)
Pull Request Authors
  • pre-commit-ci[bot] (103)
  • daico007 (21)
  • chrisjonesBSU (15)
  • mattwthompson (8)
  • jennyfothergill (5)
  • umesh-timalsina (5)
  • justinGilmer (3)
  • CalCraven (2)
  • e-kwsm (2)
  • jaclark5 (2)
  • XiaoboLinlin (2)
  • rsdefever (1)
  • dyukovsm (1)
  • ctk3b (1)
  • bc118 (1)
Top Labels
Issue Labels
feature (7) question (3) bug (2) maintenance (2) documentation (2) atomtyping (1)
Pull Request Labels
maintenance (11) documentation (2) bug (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 122 last-month
  • Total docker downloads: 100
  • Total dependent packages: 4
    (may contain duplicates)
  • Total dependent repositories: 28
    (may contain duplicates)
  • Total versions: 33
  • Total maintainers: 2
pypi.org: foyer

Foyer: Atomtyping and forcefield applying.

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 10
  • Downloads: 122 Last month
  • Docker Downloads: 100
Rankings
Docker downloads count: 2.2%
Dependent repos count: 4.6%
Forks count: 5.2%
Stargazers count: 7.0%
Average: 8.3%
Dependent packages count: 10.0%
Downloads: 20.9%
Maintainers (2)
Last synced: 6 months ago
conda-forge.org: foyer

Foyer is an open-source Python tool that enables users to define and apply force field atom-typing rules in a format that is both human- and machine-readable and provides a framework for force field dissemination, thus eliminating ambiguity in atom-typing and improving reproducibility. Foyer defines force fields in an XML format, where SMARTS strings are used to define the chemical context of a particular atom type and "overrides" are used to set rule precedence, rather than a rigid hierarchical scheme.

  • Versions: 13
  • Dependent Packages: 4
  • Dependent Repositories: 18
Rankings
Dependent repos count: 8.4%
Dependent packages count: 12.5%
Average: 19.4%
Forks count: 21.8%
Stargazers count: 35.0%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yaml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • docker/build-push-action v2 composite
  • docker/login-action v1 composite
  • docker/setup-buildx-action v1 composite
  • mamba-org/provision-with-micromamba main composite
.github/workflows/codeql.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
Dockerfile docker
  • continuumio/miniconda3 4.10.3-alpine build
setup.py pypi
environment.yml conda
  • ele
  • gmso
  • lark-parser
  • lxml
  • networkx >=2.5
  • openmm
  • parmed >=3.4.3
  • python >=3.8
  • requests