Neet is a python package designed to provide an easy-to-use API for creating and evaluating dynamical network models. In its current state, Neet supports simulating synchronous Boolean network models, though the API is designed to be model generic. Future work will implement asynchronous update mechanisms and more general network types.
Neet provides a hierarchy of 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 attractor cycles and average sensitivity of the network.
>>> from neet.boolean import LogicNetwork
>>> net = LogicNetwork.read_logic('myeloid-logic_expressions.txt')
>>> net.names
['GATA-2', 'GATA-1', 'FOG-1', 'EKLF', 'Fli-1', 'SCL', 'C/EBPa', 'PU.1', 'cJun', 'EgrNab', 'Gfi-1']
>>> net.attractors
array([array([0]), array([62, 38]), array([46]), array([54]),
array([1216]), array([1116, 1218]), array([896]), array([960])],
dtype=object)
>>> net.average_sensitivity()
1.0227272727272727
>>> net.network_graph()
<networkx.classes.digraph.DiGraph object at 0x7b2ce5508510>
See the examples directory for Jupyter notebooks which demonstrate some of the Neet's features.
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 Neet 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 --user
flag:
$ pip install --user neet
$ git clone https://github.com/elife-asu/neet
$ cd neet
$ python setup.py test
$ pip install .
Neet is developed to help people interested in using and analyzing network models to get things done quickly and painlessly. Your feedback is indispensable. Please create an issue if you find a bug, an error in the documentation, or have a feature you'd like to request. Your contribution will make Neet a better tool for everyone.
If you are interested in contributing to Neet, please contact the developers. We'll get you up and running!
- Neet Source Repository
- https://github.com/elife-asu/neet
- Neet Issue Tracker
- https://github.com/elife-asu/neet/issues
- Daniels, B.C., Kim, H., Moore, D.G., Zhou, S., Smith, H.B., Karas, B., Kauffman, S.A., and Walker, S.I. (2018) "Criticality Distinguishes the Ensemble of Biological Regulatory Networks" Phys. Rev. Lett. 121 (13), 138102, doi:10.1103/PhysRevLett.121.138102
So far the python wrapper has been tested under python3.4
and python3.5
, and on the following
platforms:
- Debian 8
- Mac OS X 10.11 (El Capitan)
- Windows 10
Note: 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.
Copyright © 2017-2020 Bryan C. Daniels, Bradley Karas, Hyunju Kim, Douglas G. Moore, Harrison Smith, Sara I. Walker, and Siyu Zhou. Free use of this software is granted under the terms of the MIT License.
See the LICENSE for details.