Git Product home page Git Product logo

pyphi's Introduction

PyPhi logo

Zenodo DOI badge Travis build badge Coveralls.io badge Python 3 compatible

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.)

Usage, Examples, and API documentation

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.

Installation

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 on with minor modifications. If you do get it to work, a writeup of the steps would be much appreciated!

Detailed installation guide for Mac OS X

See here.

Optional: caching with MongoDb

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.

Optional: caching with Redis

PyPhi can also use Redis as a fast in-memory global LRU cache to store Mice objects, reducing the memory load on PyPhi processes.

Install Redis. The redis.conf file provided with PyPhi includes the minimum settings needed to run Redis as an LRU cache:

redis-server /path/to/pyphi/redis.conf

Once the server is running you can enable Redis caching by setting REDIS_CACHE: true in your pyphi_config.yml.

Note: PyPhi currently flushes the connected Redis database at the start of every execution. If you are running Redis for another application be sure PyPhi connects to its own Redis server.

Contributing

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

Development workflow

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.

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

Credits

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 [email protected].

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

@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}
}

pyphi's People

Contributors

rlmv avatar wmayner avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.