Collective-Logic-Lab / Neet

Simulating and analyzing dynamical network models
https://neet.readthedocs.io/en/stable
Other
0 stars 0 forks source link

Neet: Simulating and analyzing network models

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.

Note: This repository is the Collective Logic Lab's fork of the original Neet developed in the Elife lab. This project is still in development, and some changes have been made that might contradict the original documentation.

Examples

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.

Installation

Dependencies

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.

Via Pip

To install the stable release version of 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

From Source

$ git clone git@github.com:Collective-Logic-Lab/Neet.git
$ cd neet
$ python setup.py test
$ pip install .

Getting Help

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

Relevant Publications

System Support

So far the python wrapper has been tested under python3.4 and python3.5, and on the following platforms:

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 and Licensing

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.

Contributors

New contributors to Collective-Logic-Lab version (post-2020):