Skip to main content

Python implementation of concepts from network control theory

Project description

network_control: A toolbox for implementing Network Control Theory analyses in python

Overview

.. image:: https://zenodo.org/badge/370716682.svg :target: https://zenodo.org/badge/latestdoi/370716682ß .. image:: https://readthedocs.org/projects/control-package/badge/?version=latest :target: https://control-package.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status .. image:: https://img.shields.io/pypi/l/ansicolortags.svg :target: https://pypi.python.org/pypi/ansicolortags/

Network Control Theory (NCT) is a branch of physical and engineering sciences that treats a network as a dynamical system. Generally, the system is controlled through signals that originate at a control point (or control points) and move through the network. In the brain, NCT models each region’s activity as a time-dependent internal state that is predicted from a combination of three factors: (i) its previous state, (ii) whole-brain structural connectivity, and (iii) external inputs. NCT enables asking a broad range of questions of a networked system that are highly relevant to network neuroscientists, such as: which regions are positioned such that they can efficiently distribute activity throughout the brain to drive changes in brain states? Do different brain regions control system dynamics in different ways? Given a set of control nodes, how can the system be driven to specific target state, or switch between a pair of states, by means of internal or external control input?

network_control is a Python toolbox that provides researchers with a set of tools to conduct some of the common NCT analyses reported in the literature. Below, we list select publications that serve as a primer for these tools and their use cases:

  1. Gu, S., Pasqualetti, F., Cieslak, M. et al. Controllability of structural brain networks. Nature Communications (2015). https://doi.org/10.1038/ncomms9414

  2. Gu, S., Betzel R. F., Mattar, M. G. et al. Optimal trajectories of brain state transitions. NeuroImage (2017). https://doi.org/10.1016/j.neuroimage.2017.01.003

  3. Karrer, T. M., Kim, J. Z., Stiso, J. et al. A practical guide to methodological considerations in the controllability of structural brain networks. Journal of Neural Engineering (2020). https://doi.org/10.1088/1741-2552/ab6e8b

  4. Kim, J. Z., & Bassett, D. S. Linear dynamics & control of brain networks. arXiv (2019). https://arxiv.org/abs/1902.03309

.. _readme_requirements:

Requirements

Currently, network_control works with Python 3.6 and requires the following dependencies:

- numpy (tested on 1.19.5), and
- scipy (tested on 1.5.4)

There are some additional (optional) dependencies you can install (note, these are only used for i/o and plotting and only need to be installed if you want to run the notebooks in network_control/tests/):

- pandas (tested on 1.1.5)
- statsmodels (tested on 0.12.2)
- matplotlib (tested on 3.3.4)
- seaborn (tested on 0.11.1), and
- jupyterlab (tested on 3.0.16)

Basic installation

Assuming you have Python 3.6 installed, you can install network_control by opening a terminal and running the following:

.. code-block:: bash

pip install network_control

What's New

- v0.0.4: initial package release for network_control
- v0.0.5: added options for specifying timescales, integration function, gramian function, better estimation of the number of time points, and optimal energy example

Questions

If you have any questions, please contact Linden Parkes (https://twitter.com/LindenParkes), Jennifer Stiso (https://twitter.com/JenniferStiso) or Jason Kim (https://twitter.com/jason_z_kim). For questions or clarification about the theory pages of the documentation, please contact Jason Kim (https://twitter.com/jason_z_kim).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

network_control-0.0.5.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

network_control-0.0.5-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file network_control-0.0.5.tar.gz.

File metadata

  • Download URL: network_control-0.0.5.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.6.13

File hashes

Hashes for network_control-0.0.5.tar.gz
Algorithm Hash digest
SHA256 b8b88b5852553e92d80c69e0a51874537880fba97e4b0965e62064f71aacc81d
MD5 9e0fc91a6ec60fdf2c6beafab97b1a57
BLAKE2b-256 cf0de8e73536e6065a167a1cd6a6d97db8911c95a16746aadd9e16b71e3f2354

See more details on using hashes here.

File details

Details for the file network_control-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: network_control-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.6.13

File hashes

Hashes for network_control-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bb32c43aa56b2141391fc92e0eeb70644d8c41f85aa9be4ae54b1c920baa6d9a
MD5 ee7a1bfd092ed5072f4d03ebbefe6d57
BLAKE2b-256 51432f6234f1cfe49fd4b970b9d1bc0782e46f9833c28e24fc7d4f551cfae056

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page