nmrformd

Calculate dipolar NMR relaxation time from molecular dynamics trajectory file


Keywords
fair, gromacs, lammps, molecular-dynamics, nmr, nmr-spectroscopy, python
License
GPL-3.0
Install
pip install nmrformd==0.1.0

Documentation

docs/source/figures/logo/banner-README.png

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

docs/source/figures/systems/system-white.png

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.

Powered by MDAnalysis readthedoc

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*