PyPhi is a Python library for computing integrated information (𝚽), and the associated quantities and objects.
If you use this code, please cite it, as well as the IIT 3.0 paper.
To cite the code, use the Zenodo DOI for the verison you used. The latest one is 10.5281/zenodo.55692. For example:
Will Mayner et al. (2016). pyphi: 0.8.1. Zenodo. 10.5281/zenodo.55692
Or in BibTeX:
@misc{pyphi, author = {Mayner, Will and Marshall, William and Marchman, Bo}, title = {pyphi: 0.8.1}, month = Feb, year = 2016, doi = {10.5281/zenodo.55692}, url = {http://dx.doi.org/10.5281/zenodo.55692} }
(Just make sure to use the version number, DOI, and URL for the version you actually used.)
Check out the documentation for the latest stable release, or the documentation for the latest (potentially unstable) development version.
The documentation is also available within the Python interpreter with the
help
function.
Set up a Python 3 virtual environment and install with
pip install pyphi
To install the latest development version, which is a work in progress and may have bugs, run:
pip install "git+https://github.com/wmayner/pyphi@develop#egg=pyphi"
Note: this software has only been tested on the Mac OS X and Linux operating systems. Windows is not supported, though it might work with minor modifications. If you do get it to work, a writeup of the steps would be much appreciated!
For technical issues with PyPhi or feature requests, please use the issues page.
For discussion about the software or integrated information theory in general, you can join the PyPhi users group.
To help develop PyPhi, fork the project on GitHub and install the requirements
with pip install -r requirements.txt
.
The Makefile
defines some tasks to help with development:
make test
runs the unit tests every time you change the source code.
make benchmark
runs performance benchmarks.
make docs
builds the HTML documentation.
Gruntfile.js
defines similar tasks. To get grunt, first install
Node.js. Then, within the pyphi
directory, run
npm install
to install the local npm dependencies, then run
sudo npm install -g grunt grunt-cli
to install the grunt
command to your
system. You should now be able to run tasks with grunt
.
Make sure you install the Python 3 C headers before installing the requirements:
sudo apt-get install python3-dev python3-scipy python3-numpy
This code is based on a previous project written in Matlab by L. Albantakis, M. Oizumi, A. Hashmi, A. Nere, U. Olces, P. Rana, and B. Shababo.
Correspondence regarding the Matlab code and the IIT 3.0 paper (below) should be directed to Larissa Albantakis, PhD, at albantakis@wisc.edu.
Albantakis L, Oizumi M, Tononi G (2014) From the Phenomenology to the Mechanisms of Consciousness: Integrated Information Theory 3.0. PLoS Comput Biol 10(5): e1003588. doi: 10.1371/journal.pcbi.1003588
@article{iit3,
author = {Albantakis, , Larissa AND Oizumi, , Masafumi AND Tononi, ,
Giulio},
journal = {PLoS Comput Biol},
publisher = {Public Library of Science},
title = {From the Phenomenology to the Mechanisms of Consciousness:
Integrated Information Theory 3.0},
year = {2014},
month = {05},
volume = {10},
url = {http://dx.doi.org/10.1371%2Fjournal.pcbi.1003588},
pages = {e1003588},
number = {5},
doi = {10.1371/journal.pcbi.1003588}
}