LeafletFinder Analysis tool — pmda.leaflet

This module contains parallel versions of analysis tasks in MDAnalysis.analysis.leaflet.

class pmda.leaflet.LeafletFinder(universe, atomgroups)[source]

Parallel Leaflet Finder analysis.

Identify atoms in the same leaflet of a lipid bilayer. This class implements and parallelizes the LeafletFinder algorithm [Michaud-Agrawal2011].

The parallelization is done based on [Paraskevakos2018].

Parameters
  • Universe (Universe) – a MDAnalysis.core.groups.Universe (the atomgroup must belong to this Universe)

  • atomgroup (tuple of AtomGroup) – atomgroups that are iterated in parallel

Note

At the moment, this class has far fewer features than the serial version MDAnalysis.analysis.leaflet.LeafletFinder.

This version offers LeafletFinder algorithm 4 (“Tree-based Nearest Neighbor and Parallel-Connected Components (Tree-Search)”) in [Paraskevakos2018].

Currently, periodic boundaries are not taken into account.

The calculation is parallelized on a per-frame basis; at the moment, no parallelization over trajectory blocks is performed.

Parameters
  • Universe (Universe) – a MDAnalysis.core.groups.Universe (the atomgroups must belong to this Universe)

  • atomgroups (tuple of AtomGroup) – atomgroups that are iterated in parallel

_results

The raw data from each process are stored as a list of lists, with each sublist containing the return values from pmda.parallel.ParallelAnalysisBase._single_frame().

Type

list

readonly_attributes()

Set the attributes of this class to be read only

Useful to avoid the class being modified when passing it around.

To be used as a context manager:

with analysis.readonly_attributes():
    some_function(analysis)
run(start=None, stop=None, step=None, n_jobs=- 1, cutoff=15.0)[source]

Perform the calculation

Parameters
  • start (int, optional) – start frame of analysis

  • stop (int, optional) – stop frame of analysis

  • step (int, optional) – number of frames to skip between each analysed frame

  • n_jobs (int, optional) – number of tasks to start, if -1 use number of logical cpu cores. This argument will be ignored when the distributed scheduler is used