Skip to main content

A Python library for computing integrated information.

Project description

Zenodo DOI Travis build

PyPhi: 𝚽 for Python 3

PyPhi is a Python 3 library for computing integrated information (𝚽), and the associated quantities and objects.

If you use this code, please cite both this repository (DOI 10.5281/zenodo.12194) and the IIT 3.0 paper (DOI 10.1371/journal.pcbi.1003588).

Usage, Examples, and API documentation

Check out the documentation for the latest release, or the documentation for the latest development version.

The documentation is also available within the Python interpreter with the help function.


Set up a Python 3 virtual environment and install using pip install pyphi.

Detailed guide for those unfamiliar with Python

This is a Python 3 project, so in order to use it you must install Python 3.

Once you’ve installed Python 3, it is highly recommended to set up a virtual environment in which to install PyPhi. Virtual environments allow different projects to isolate their dependencies from one another, so that they don’t interact in unexpected ways. They also protect your system’s version of Python from unwanted changes. Please see this guide for more information.

To do this, you must install virtualenv and virtualenvwrapper, a tool for manipulating virtual environments. Both of those tools are available on PyPI, the Python package index, and can be installed with pip, the command-line utility for installing and managing Python packages (pip is installed automatically with Python):

pip install virtualenv virtualenvwrapper

Then use virtualenvwrapper to create a Python 3 virtual environment, like so:

mkvirtualenv -p `which python3` <name_of_your_project>

The -p `which python3` option ensures that when the virtual environment is activated, the commands python and pip will refer to their Python 3 counterparts.

The virtual environment should have been activated automatically after creating it. It can be manually activated with workon <name_of_your_project>, and deactivated with deactivate.

Remember to activate the virtual environment every time you begin working on your project. Also, note that the currently active virtual environment is not associated with any particular folder; it is associated with a terminal shell.

Finally, you can install PyPhi into your new virtual environment:

pip install pyphi

To install the latest development version (which is a work in progress and may have bugs):

pip install "git+"

Optional: caching with a database

PyPhi stores the results of 𝚽 calculations as they’re computed in order to avoid expensive re-computation. These results can be stored locally on the filesystem (the default setting), or in a full-fledged database.

Using the default caching system is easier and works out of the box, but using a database is more robust.

To use the database-backed caching system, you must install MongoDB. Please see their installation guide for instructions.

Once you have MongoDB installed, use mongod to start the MongoDB server. Make sure the mongod configuration matches the PyPhi’s database configuration settings in pyphi_config.yml (see the configuration section of PyPhi’s documentation).

You can also check out MongoDB’s Getting Started guide or the full manual.


To help develop PyPhi, fork the project on GitHub and install the requirements with pip install -r requirements.txt.

Development workflow

Gruntfile.js defines some tasks to help with development. These are run with Grunt.js.

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. Now you should be able to run tasks with grunt, e.g.

grunt test

which will run the unit tests every time you change the source code. Similarly,

grunt docs

will rebuild the HTML documentation on every change.

At some point I’ll try to use a Makefile instead, since many more people have access to make.

Developing on Linux

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

Please cite this paper if you use this code:

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

    author = {Albantakis, , Larissa AND Oizumi, , Masafumi AND Tononi, ,
    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 = {},
    pages = {e1003588},
    number = {5},
    doi = {10.1371/journal.pcbi.1003588}

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

pyphi-0.1.4.tar.gz (70.0 kB view hashes)

Uploaded Source

Built Distribution

pyphi-0.1.4-py3-none-any.whl (53.1 kB view hashes)

Uploaded Python 3

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