pmda icon indicating copy to clipboard operation
pmda copied to clipboard

Parallel algorithms for MDAnalysis

============================================== PMDA - Parallel Molecular Dynamics Analysis

|build| |cov| |PRwelcome| |zenodo| |conda|

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:

.. code:: python

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_

.. code-block:: sh

pip install --upgrade pmda

Development version from source

To install the latest development version from source, run

.. code-block:: sh

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_

.. _MDAnalysis: https://www.mdanalysis.org .. _dask: https://dask.pydata.org/en/latest/ .. _distributed: https://distributed.readthedocs.io/ .. _Issue tracker: https://github.com/MDAnalysis/pmda/issues .. _PMDA repository: https://github.com/MDAnalysis/pmda/ .. _pip: https://pip.pypa.io/en/stable/ .. _GNU General Public License, version 2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html .. _MDAnalysis developer mailing list: https://groups.google.com/group/mdnalysis-devel .. _10.25080/Majora-7ddc1dd1-013: https://doi.org/10.25080/Majora-7ddc1dd1-013

.. |build| image:: https://travis-ci.org/MDAnalysis/pmda.svg?branch=master :alt: Build Status :target: https://travis-ci.org/MDAnalysis/pmda

.. |cov| image:: https://codecov.io/gh/MDAnalysis/pmda/branch/master/graph/badge.svg :alt: Coverage :target: https://codecov.io/gh/MDAnalysis/pmda

.. |zenodo| image:: https://zenodo.org/badge/106346721.svg :alt: DOI :target: https://zenodo.org/badge/latestdoi/106346721

.. |conda| image:: https://anaconda.org/conda-forge/pmda/badges/version.svg :alt: conda release :target: https://anaconda.org/conda-forge/pmda

.. |PRwelcome| image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square :alt: PRs welcome :target: http://makeapullrequest.com