Coder Social home page Coder Social logo

byun-jinyoung / hymd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cascella-group-uio/hymd

0.0 0.0 0.0 6.72 MB

Massively parallel hybrid particle-field molecular dynamics in Python.

Home Page: https://cascella-group-uio.github.io/HyMD/

License: GNU Lesser General Public License v3.0

Shell 0.52% Python 91.88% Fortran 5.65% TeX 1.41% Makefile 0.41% Dockerfile 0.14%

hymd's Introduction

License: GPL v3 build docs codecov PyPI version status


HylleraasMD (HyMD) is a massively parallel Python package for Hamiltonian hybrid particle-field molecular dynamics (HhPF-MD) simulations of coarse-grained bio- and soft-matter systems.

HyMD can run canonical hPF-MD simulations, or filtered density Hamiltonian hPF (HhPF-MD) simulations [1],[2],[3] with or without explicit PME electrostatic interactions. 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. It can run simulations in constant energy (NVE), constant volume (NVT) [1] or constant pressure (NPT) conditions [4].

HyMD uses the pmesh library for particle-mesh operations, with the PPFT [5] backend for FFTs through the pfft-python bindings. File IO is done via HDF5 formats to allow MPI parallel reads.

If you use HyMD, please cite our paper(s).

User Guide

Detailed installation and user guide, together with comprehensive example simulations are located in the HylleraasMD documentation.

Run simulations by

python3 -m hymd [CONFIGURATION_FILE] [TOPOLOGY_FILE] (--OPTIONAL_ARGS)

Run interactively in Google Colaboratory

A Google Colaboratory jupyter notebook is setup here with a working HyMD fully installed and executable in the browser.

Installation

Non-Python dependencies

HyMD installation requires a working MPI compiler. It is highly recommended to have MPI-enabled HDF5 and h5py for running parallel simulations with HyMD. Install both on Ubuntu with

sudo apt-get update -y
sudo apt-get install -y pkg-config libhdf5-mpi-dev libopenmpi-dev
python3 -m pip uninstall h5py  # Remove any serial h5py installation present
CC="mpicc" HDF5_MPI="ON" python3 -m pip install --no-binary=h5py h5py

Note There might be memory leaks if you use OpenMPI <= 4.1.1. See #186 for more details.

Python dependencies

Install HyMD with pip by

python3 -m pip install --upgrade numpy mpi4py cython
python3 -m pip install hymd

See HyMD docs for more information, including install steps for macOS and non-Debian linux distributions.

Run in docker

Alternatively, an up-to-date docker image is available from docker hub

docker pull mortele/hymd
docker run -it mortele/hymd
/app$ python3 -m pip install hymd
/app$
/app$ # Grab example input files
/app$ curl -O https://raw.githubusercontent.com/Cascella-Group-UiO/HyMD-tutorial/main/ideal_chain/ideal_chain.toml
/app$ curl -O https://raw.githubusercontent.com/Cascella-Group-UiO/HyMD-tutorial/main/ideal_chain/ideal_chain.HDF5
/app$
/app$ # Run simulation
/app$ python3 -m hymd ideal_chain.toml ideal_chain.HDF5 --verbose

Run tests

Clone the repository and run tests with pytest

git clone https://github.com/Cascella-Group-UiO/HyMD.git hymd
cd hymd
python3 -m pip install pytest pytest-mpi
pytest

Running MPI enabled pytest tests is simplified with a convenient script

chmod +x pytest-mpi
pytest-mpi -oo -n 2 -ns

Contributions and issues

We welcome contributions to our code and provide a set of guidelines to follow in CONTRIBUTING.md.
To seek support in case of any issues and bugs, we welcome you to post them using the issue tracker.

Please cite our work

You will find information about our publications and archived data since 2023 at the open repository: Publications.
If you use HyMD, please cite:

@article{
  Ledum_HylleraasMD_Massively_parallel_2023,
  author = {Ledum, Morten and Carrer, Manuel and Sen, Samiran and Li, Xinmeng and Cascella, Michele and Bore, Sigbjørn Løland},
  doi = {10.21105/joss.04149},
  journal = {Journal of Open Source Software},
  month = {apr},
  number = {84},
  pages = {4149},
  title = {{HylleraasMD: Massively parallel hybrid particle-field molecular dynamics in Python}},
  url = {https://joss.theoj.org/papers/10.21105/joss.04149},
  volume = {8},
  year = {2023}
}

@article{
   Sen_HylleraasMD_2023,
   author = {Sen, Samiran and Ledum, Morten and Bore, Sigbjørn Løland and Cascella, Michele},
   title = {Soft Matter under Pressure: Pushing Particle–Field Molecular Dynamics to the Isobaric Ensemble},
   doi = {10.1021/acs.jcim.3c00186},
   journal = {Journal of Chemical Information and Modeling},
   month= mar,
   year = {2023},
   volume = {63},
   number = {7},
   pages = {2207-2217},
   URL = {https://doi.org/10.1021/acs.jcim.3c00186},
}

References

[1] Ledum, M.; Sen, S.; Li, X.; Carrer, M.; Feng Y.; Cascella, M.; Bore, S. L. HylleraasMD: A Domain Decomposition-Based Hybrid Particle-Field Software for Multi-Scale Simulations of Soft Matter. ChemRxiv 2021

[2] Ledum, M.; Carrer, M.; Sen, S.; Li, X.; Cascella, M.; Bore, S. L. HyMD: Massively parallel hybrid particle-field molecular dynamics in Python. Journal of Open Source Software (JOSS) 2023, 8(84), 2475-9066, 4149.

[3] Bore, S. L.; Cascella, M. Hamiltonian and alias-free hybrid particle–field molecular dynamics. J. Chem. Phys. 2020, 153, 094106.

[4] Sen, S.; Ledum, M.; Bore, S. L.; Cascella, M. Soft Matter under Pressure: Pushing Particle–Field Molecular Dynamics to the Isobaric Ensemble. J Chem Inf Model 2023, 63(7), 1549-9596.

[5] Pippig, M. PFFT: An extension of FFTW to massively parallel architectures. SIAM J. Sci. Comput. 2013, 35, C213–C236.

hymd's People

Contributors

mortele avatar samiransen23 avatar hmcezar avatar lasse-steinnes avatar xinmeng2020 avatar sigbjobo avatar rainwoodman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.