Skip to content

Commit

Permalink
Update readme and dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
mortele committed Dec 22, 2021
1 parent f785bf3 commit 92ec1c9
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 22 deletions.
27 changes: 27 additions & 0 deletions .docker/hymd/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
FROM ubuntu:20.04

# Fix for tzdata installation from
# https://rtfm.co.ua/en/docker-configure-tzdata-and-timezone-during-build/
ENV TZ=Europe/Oslo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update && apt-get install -y \
libopenmpi-dev \
libhdf5-openmpi-dev \
pkg-config \
curl \
python3.8 \
python3-pip \
python3-mpi4py \
python3-numpy

RUN python3 -m pip install --upgrade pip && \
python3 -m pip install --no-cache-dir cython numpy mpi4py cython && \
python3 -m pip install networkx sympy pytest pytest-mpi mpsort pfft-python pmesh tomli

ENV CC=mpicc
ENV HDF5_MPI="ON"
RUN python3 -m pip install --no-cache-dir --no-binary=h5py h5py

COPY . /app
WORKDIR /app
84 changes: 63 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,79 @@
HyMD testing and development · [![License: GPL v3](https://img.shields.io/badge/License-LGPLv3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.html) ![build](https://github.com/Cascella-Group-UiO/HyMD-2021/workflows/build/badge.svg)
<img src="docs/img/hymd_logo_text_black.png" width="500" title="HylleraasMD">

[![License: GPL v3](https://img.shields.io/badge/License-LGPLv3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0.html) ![build](https://github.com/Cascella-Group-UiO/HyMD-2021/workflows/build/badge.svg) [![docs_pages](https://github.com/Cascella-Group-UiO/HyMD/actions/workflows/docs_pages.yml/badge.svg?branch=docs_setup)](https://github.com/Cascella-Group-UiO/HyMD/actions/workflows/docs_pages.yml) [![codecov](https://codecov.io/gh/Cascella-Group-UiO/HyMD/branch/main/graph/badge.svg?token=BXZ7B9RXV9)](https://codecov.io/gh/Cascella-Group-UiO/HyMD)

---------
HyMD is a software that can run coarse-grained molecular dynamics simulations
using the hybrid-particle field model approach, introduced initially in [1].
In HyMD we implement the formulation presented in [2].
**HylleraasMD** (HyMD) is a massively parallel Python package for hybrid particle-field molecular dynamics (hPF-MD) simulations of coarse-grained bio- and soft-matter systems.

HyMD can run canonical hPF-MD simulations [[1]](#1), or filtered density Hamiltonian hPF (HhPF-MD) simulations [[2]](#2), with or without explicit PME electrostatic interactions [[3]](#3). It includes all standard intramolecular interactions, including stretching, bending, torsional, and combined bending-dihedral potentials. Additionally, topological reconstruction of permanent peptide chain backbone dipoles is possible for accurate recreation of protein conformational dynamics [[4]](#4). Martini style elastic networks (ElNeDyn) [[5]](#5) are also supported.

HyMD uses the [pmesh](github.com/rainwoodman/pmesh) library for particle-mesh operations, with the PPFT [[6]](#6) backend for FFTs through the [pfft-python bindings](github.com/rainwoodman/pfft-python). File IO is done via HDF5 formats to allow MPI parallel reads.

## User Guide
Detailed installation and user guide, together with comprehensive example simulations are located in the [HylleraasMD documentation](https://cascella-group-uio.github.io/HyMD/index.html).

Run simulations by
```bash
python3 -m hymd [CONFIGURATION_FILE] [TOPOLOGY_FILE]
```

## Setup
First compile the FORTRAN modules:
## Installation
Install HyMD with `pip` by
```bash
python3 -m pip install hymd
```
#### Install dependencies
HyMD installation **requires** a working MPI compiler. It is highly recommended to have *MPI-enabled* HDF5 and [h5py](https://docs.h5py.org/en/stable/mpi.html) for running parallel simulations with HyMD. Install both on Ubuntu with
```bash
> cd hymd/
> make clean
> make
> cd ..
sudo apt-get update -y
sudo apt-get install -y curl pkg-config python3-pip python3-mpi4py libhdf5-mpi-dev
export CC=mpicc
export HDF5_MPI="ON"
python3 -m pip install --no-binary=h5py h5py
```

Check out all the available options with
#### Run in docker
Alternatively, an up-to-date docker image is available from [docker hub](https://hub.docker.com/repository/docker/mortele/hymd)
```bash
> python3 hymd/main.py --help
docker pull mortele/hymd
docker run -it mortele/hymd
/app# apt-get install -y git
/app# git clone https://github.com/Cascella-Group-UiO/HyMD.git hymd
/app# cd hymd/
/app/hymd# pip3 install .
/app/hymd# pytest
```

Start a simple example simulation with:
## Run tests
Clone the repository and run tests with [pytest](https://docs.pytest.org/en/latest)
```bash
> mpirun -n 4 python3 hymd/main.py peptide.toml peptide.h5 -v
git clone https://github.com/Cascella-Group-UiO/HyMD.git hymd
cd hymd
pytest
```
Running MPI enabled pytest tests is simplified with a convenient script
```bash
chmod +x pytest-mpi
pytest-mpi -oo -n 2 -ns
```

---------

## References
[1] Milano, G. & Kawakatsu, T. Hybrid particle-field molecular dynamics
simulations for dense polymer systems Journal of Chemical Physics, American
Institute of Physics, 2009, 130, 214106
### References
<a id="1">[1]</a>
Milano, G.; Kawakatsu, T. Hybrid particle-field molecular dynamics simulations for densepolymer systems. J. Chem. Phys. **2009**, 130, 214106.

[2] Bore, S. L. & Cascella, M. Hamiltonian and alias-free hybrid
particle--field molecular dynamics The Journal of Chemical Physics, AIP
Publishing LLC, 2020, 153, 094106
<a id="2">[2]</a>
Bore, S. L.; Cascella, M. Hamiltonian and alias-free hybrid particle–field molecular dynam-ics. J. Chem. Phys. **2020**, 153, 094106.

<a id="3">[3]</a>
Kolli, H. B.; De Nicola, A.; Bore, S. L.; Schäfer, K.; Diezemann, G.; Gauss, J.; Kawakatsu, T.;Lu, Z.-Y.; Zhu, Y.-L.; Milano, G.; Cascella, M. Hybrid Particle-Field Molecular DynamicsSimulations of Charged Amphiphiles in an Aqueous Environment. J. Chem. Theory Comput. **2018**, 14, 4928–4937.

<a id="4">[4]</a>
Bore, S. L.; Milano, G.; Cascella, M. Hybrid Particle-Field Model for Conformational Dy-namics of Peptide Chains. J. Chem. Theory Comput. **2018**, 14, 1120–1130.

<a id="5">[5]</a>
Periole, X.; Cavalli, M.; Marrink, S. J.; Ceruso, M. A. Combining an elastic network with a coarse-grained molecular force field: structure, dynamics, and intermolecular recognition. J. Chem. Theory Comput. **2009**, 5.9, 2531-2543.

<a id="6">[6]</a>
Pippig, M. PFFT: An extension of FFTW to massively parallel architectures. SIAM J. Sci. Comput. **2013**, 35, C213–C236.
Binary file added docs/img/hymd_logo_text_black.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion hymd/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.0.1"
__version__ = "1.0.2"
12 changes: 12 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,18 @@ def find_version(path):
packages=["hymd"],
version=find_version("hymd/version.py"),
ext_modules=[force_kernels],
install_requires=[
"cython",
"h5py",
"mpi4py",
"mpsort",
"networkx",
"numpy",
"pfft-python",
"pmesh",
"sympy",
"tomli",
],
python_requires=">=3.6",
classifiers=[
"Development Status :: 5 - Production/Stable",
Expand Down

0 comments on commit 92ec1c9

Please sign in to comment.