Neet is a library for simulating and analyzing dynamical network models. It is written entirely in Python, with minimal external dependencies. It provides a heirarchy of network classes and facilities for analyzing the attractor landscapes, informational structure and sensitivity of those network models.
Neet provides a network classes with methods designed to make common tasks as painless as possible.
For example, you can read in a collection of boolean logic equations and immediately probe the
dynamics of the network, and compute values such as the
LandscapeMixin.attractors and the
boolean.SensitivityMixin.average_sensitivity() of the network
>>> from neet.boolean import LogicNetwork >>> from neet.boolean.examples import MYELOID_LOGIC_EXPRESSIONS >>> net = LogicNetwork.read_logic(MYELOID_LOGIC_EXPRESSIONS) >>> net.names ['GATA-2', 'GATA-1', 'FOG-1', 'EKLF', 'Fli-1', 'SCL', 'C/EBPa', 'PU.1', 'cJun', 'EgrNab', 'Gfi-1'] >>> net.attractors array([array(), array([62, 38]), array(), array(), array(), array([1116, 1218]), array(), array()], dtype=object) >>> net.average_sensitivity() 1.0227272727272727 >>> net.network_graph() <networkx.classes.digraph.DiGraph object at 0x...>
Neet depends on several packages which will be installed by default when Neet is installed via pip:
However, network visualization is notoriously problematic, and so we have two optional dependencies which are only required if you wish to visualize networks using Neet’s builtin capabilities:
True to form, these dependencies are a pain. Graphviz, unfortunately, cannot be installed via pip (see: https://graphviz.gitlab.io/download/ for installation instructions). Once Graphviz has been installed, you can install pygraphviz via pip.
To install via
pip, you can run the following
$ pip install neet
Note that on some systems this will require administrative privileges. If you don’t have admin
privileges or would prefer to install Neet for your user only, you do so via the
$ pip install --user neet
$ git clone https://github.com/elife-asu/neet $ cd neet $ python setup.py test $ pip install .
So far the python wrapper has been tested under
python3.5, and on the
- Debian 8
- Mac OS X 10.11 (El Capitan)
- Windows 10
As of January 1, 2020, official support for Python 2.X has ended as per PEP 373. As such, Neet no longer officially supports 2.X; however, the current version (Neet v1.0) is compatible and all unit tests pass under Python 2.7.