NMRforMD is a Python toolkit to calculate NMR relaxation times from molecular dynamics trajectory files. Used in combination with MDAnalysis, it allows for the analysis of trajectory files from any MDAnalysis-compatible simulation package, including LAMMPS and GROMACS.
Details about installation, use, and common pitfalls are given in the documentation. There is also a description of the theory behind dipolar NMR calculations.
Notes and known issues
- NMRforMD is still in development, please raise an issue here if you encounter a problem
- the code has mostly been tested with GROMACS and LAMMPS trajectory files, but should work with other molecular dynamics packages, as long as they are compatible with MDAnalysis
- NMRforMD does not work with triclinic box, use MDAnalysis to convert your trajectory to orthorhombic
- for very large trajectory file, the code requires a lot of memory
- the code has only beed tested with hydrogen atoms (spin 1/2)
- only works for dipolar interaction, not quadrupolar interaction
Figure : Example of systems that can be analysed using NMRforMD, from left to right: a bulk water system, a polymer-water mixture, and water in a slit silica pore with sodium counter-ions. All LAMMPS and GROMACS input scripts are given in the examples/ folder.
For developers
If you intend to make modification, please raise an issue or send me and email first, the create a fork of the repository.
Build the documentation localy from the docs/ folder by typing:
pip3 install -r requirements.txt
make clean
make html
Publish a new pip version by following those instructions.
1 - if necessary, update docs/source/conf.py, CITATION.cff, and setup.py
2 - Create source distribution using
python3 setup.py sdist
3 - Create a new release on Github using the generated tar.gz file locqted in dist/
4 - Update the link in setup.py
5 - Create wheel using:
python3 setup.py bdist_wheel
6 - Upload to pypi using (with the appropriate number):
twine upload dist/nmrformd-0.1.0*