.. _ensembleanalysis-base:

==============================
 Ensemble Analysis base class
==============================

.. versionadded:: 0.8.0

The Analysis modules help in the implementation analyses of
MDPOW simulations. To simplify the process of analyzing
a collection of systems generated by a free energy simulation
the objects in :ref:`ensemble-objects` allow for a molecule directory's
systems to be loaded into `MDAnalysis <https://mdanalysis.org>`_
Universes and be analyzed as a group.

:class:`~mdpow.analysis.ensemble.EnsembleAnalysis` is a class inspired by the
:class:`AnalysisBase <MDAnalysis.analysis.base.AnalysisBase>` from MDAnalysis which
iterates over the systems in the ensemble and the frames in the systems. It sets up both iterations between
universes and universe frames allowing for analysis to be run on both whole systems and the frames of those
systems. This allows for users to easily run analyses on MDPOW simulations.

.. autoclass:: mdpow.analysis.ensemble.EnsembleAnalysis
    :members:

    .. automethod:: _prepare_ensemble

    .. automethod:: _prepare_universe

    .. automethod:: _single_universe

    .. automethod:: _single_frame

    .. automethod:: _conclude_ensemble

    .. automethod:: _conclude_universe
