Skip to content

Repository files navigation

htpolynet

High-Throughput Polymer Network Atomistic Simulations

tests PyPI conda-forge Python License: MIT Docs PyPI Downloads

htpolynet is a Python utility for generating atomistic models of cross-linked polymer networks together with appropriate topology and parameter files required for molecular dynamics simulations using Gromacs. It is intended as a fully automated system builder requiring as inputs only the molecular structures of any monomer species, a description of the polymerization chemistry, and a handful of options describing desired system size and composition. htpolynet uses the Generalized Amber Force Field for atom-typing and parameter generation.

Installation

From PyPI:

pip install htpolynet

From conda-forge:

conda install -c conda-forge htpolynet

From source:

git clone git@github.com:cameronabrams/htpolynet.git
cd htpolynet
pip install -e .

Once installed, the user has access to the main htpolynet command.

IMPORTANT NOTES: The programs antechamber, parmchk2 and tleap from AmberTools must be in your path. These can be installed using the ambertools package from conda-forge or compiled from source. You also need Gromacs installed so gmx is in your path. The examples show how to build input monomer structures using OpenBabel, so to use them you need obabel in your path as well.

Docker

As an alternative to a local installation, a prebuilt container image is published at ghcr.io/cameronabrams/htpolynet. It bundles htpolynet together with Gromacs, AmberTools, and OpenBabel, so no additional dependencies are required on the host beyond Docker (and, optionally, the NVIDIA Container Toolkit for GPU runs).

Run htpolynet against a configuration file in the current directory:

docker run --rm -v $(pwd):/work ghcr.io/cameronabrams/htpolynet run config.yaml

With GPU support:

docker run --rm --gpus all -v $(pwd):/work ghcr.io/cameronabrams/htpolynet run config.yaml

A Docker Compose file is also provided in docker/compose.yml for a shorter invocation (docker compose run --rm htpolynet run config.yaml). See docs/source/user-guide/container-usage.rst for the full story, including Singularity/Apptainer use on HPC systems.

Documentation

Please consult documentation at htpolynet.readthedocs.io.

Repository relocation

This repository formerly lived at AbramsGroup/HTPolyNet and now lives at cameronabrams/htpolynet. GitHub redirects the old URLs, so existing clones and forks continue to work; if you prefer, you can update your remote explicitly:

git remote set-url origin git@github.com:cameronabrams/htpolynet.git

Acknowledgments

htpolynet grew out of the original HTPolyNet prototype begun by Ming Huang in 2020. Ketan S. Khare contributed early LAMMPS-related utilities, and S. Alexis Paz contributed a bug fix. The current package is a full rewrite, but the project owes its origins and its published description to that earlier work. When using htpolynet in published work, please cite Huang and Abrams, SoftwareX 21, 101303 (2023), doi:10.1016/j.softx.2022.101303, along with the GAFF and Gromacs papers listed in the documentation.

Meta

Cameron F. Abrams – cfa22@drexel.edu

Distributed under the MIT license. See LICENSE for more information.

https://github.com/cameronabrams

Contributing

  1. Fork it (https://github.com/cameronabrams/htpolynet/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

About

Development of High-Throughput Polymer Network Atomistic Simulation

Topics

Resources

Stars

32 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages