Skip to content

MDAnalysis/pmda

Repository files navigation

PMDA - Parallel Molecular Dynamics Analysis

Build Status Coverage PRs welcome DOI conda release

Ready to use analysis and buildings blocks to write parallel analysis algorithms using MDAnalysis with dask.

Warning

This project is alpha software and not API stable. It will and should rapidly evolve to test different approaches to implementing parallel analysis in a seamless and intuitive fashion.

For example, run a rmsd analysis on all available cores:

import MDAnalysis as mda
from pmda import rms

u = mda.Universe(top, traj)
ref = mda.Universe(top, traj)

rmsd_ana = rms.RMSD(u.atoms, ref.atoms).run(n_jobs=-1)

print(rmsd_ana.rmsd)

By default PMDA use the multiprocessing scheduler of dask. This is sufficient if you want to run your simulation on a single machine. If your analysis takes a very long time (>30 min) you can also spread it to several nodes using the distributed scheduler. To do this you can pass a scheduler keyword argument to the run method.

To write your own parallel algorithms you can subclass the pmda.parallel.ParallelAnalysisBase class.

License and source code

PMDA is released under the GNU General Public License, version 2 (see the files AUTHORS and LICENSE for details).

Source code is available in the public GitHub repository https://github.com/MDAnalysis/pmda/.

Installation

Install a release with pip

The latest release is available from https://pypi.org/project/pmda/ and can be installed with pip

pip install --upgrade pmda

Development version from source

To install the latest development version from source, run

git clone [email protected]:MDAnalysis/pmda.git
cd pmda
python setup.py install

Getting help

Help is also available through the MDAnalysis mailing list

https://groups.google.com/group/mdnalysis-discussion

Please report bugs and feature requests for PMDA through the Issue Tracker.

Contributing

PMDA welcomes new contributions. Please drop by the MDAnalysis developer mailing list to discuss and ask questions.

To contribute code, submit a pull request against the master branch in the PMDA repository.

Citation

If you use PMDA in published work please cite [Fan2019].

[Fan2019]Shujie Fan, Max Linke, Ioannis Paraskevakos, Richard J. Gowers, Michael Gecht, and Oliver Beckstein. PMDA --- Parallel Molecular Dynamics Analysis. In Chris Calloway, David Lippa, Dillon Niederhut, and David Shupe, editors, Proceedings of the 18th Python in Science Conference, pages 134-142, Austin, TX, 2019. doi: 10.25080/Majora-7ddc1dd1-013