Using the pmda
analysis classes¶
Pre-defined analysis classes follow a common pattern. They require one
or more MDAnalysis AtomGroup
instances as input (which one obtains from a MDAnalysis
Universe
, typically by performing a
selection). They also typically require a number of parameters that
are provided as keyword arguments:
-
class
ParallelAnalysisClass
(atomgroup, [atomgroup, [..., ]]**kwargs)¶ set up the parallel analysis
-
run
(n_jobs=- 1)¶ perform parallel analysis; see Parallelization for explanation of the arguments
-
results
¶ stores the results (name and content depends on the analysis that is being performed)
-
The instance of the parallel analysis class contains a
run()
method. Calling
run()
performs the parallel
analysis. Using keyword arguments, one can set the level of
parallelization.
After the run has been completed, results are stored in an attribute
of the class, such as results
. The
actual name of the attribute is defined by the specific analysis
class. The format and content is also dependent on the analysis; for
example, the RMSD analysis class pmda.rms.RMSD
produces a
numpy array of the RMSD time series.
Example: Parallel RMSD¶
In order to use the parallel RMSD calculator pmda.rms.RMSD
,
import the module, set up two
AtomGroup
instances, instantiate the
class and directly use its run()
method:
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)
The resulting rmsd_ana
instance contains the array of the RMSD
time series in the attribute rmsd
.