Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 1.87 KB

loci.rst

File metadata and controls

71 lines (43 loc) · 1.87 KB

:class:`Locus`: Loci of disease dynamics

.. currentmodule:: epydemic

Loci are an abstraction of where events happens within a model. The dynamics of a model defines what events are called; the loci define the population of nodes or edges that may be subject to a particular event.

The management of loci is automated as far as possible within the procedural interface for evolving the working network within :class:`Process`. Using these methods (and the methods extended in sub-classes) hopefully renders the machinery largely transparent.

.. autoclass:: Locus

.. automethod:: Locus.name

.. automethod:: Locus.setProcess

.. automethod:: Locus.process


Handlers

There are also four methods that define the way in which changes in the network are reflected in the populations of loci.

.. automethod:: Locus.addHandler

.. automethod:: Locus.leaveHandler

.. automethod:: Locus.enterHandler

.. automethod:: Locus.removeHandler

It is these methods that are overridden in sub-classes to provide the behaviour of node and edge loci.

Locus sub-classes

The main locus sub-classes are used when modelling a :term:`compartmented model of disease`, to capture the nodes and edges in the various compartments where dynamics occurs. These compartments are used by :class:`CompartmentedModel`.

.. autoclass:: CompartmentedLocus
   :show-inheritance:

.. automethod:: CompartmentedLocus.compartments

.. autoclass:: CompartmentedNodeLocus
   :show-inheritance:

.. autoclass:: CompartmentedEdgeLocus
   :show-inheritance:

The compartmented edge locus extends the default handler methods.

.. automethod:: CompartmentedEdgeLocus.matches

.. automethod:: CompartmentedEdgeLocus.addHandler

.. automethod:: CompartmentedEdgeLocus.enterHandler

.. automethod:: CompartmentedEdgeLocus.leaveHandler

.. automethod:: CompartmentedEdgeLocus.removeHandler