We encourage the community to contribute! Please first review the Allen Institute Contributing Agreement then follow the how to.

Allen Institute Contributing Agreement

Allen Institute Contribution Agreement

This document describes the terms under which you may make “Contributions” — which may include without limitation, software additions, revisions, bug fixes, configuration changes, documentation, or any other materials — to any of the projects owned or managed by the Allen Institute. If you have questions about these terms, please contact us at

You certify that:

  • Your Contributions are either:

    1. Created in whole or in part by you and you have the right to submit them under the designated license (described below); or
    2. Based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, under the designated license; or
    3. Provided directly to you by some other person who certified (1) or (2) and you have not modified them.
  • You are granting your Contributions to the Allen Institute under the terms of the 2-Clause BSD license (the “designated license”).

  • You understand and agree that the Allen Institute projects and your Contributions are public and that a record of the Contributions (including all metadata and personal information you submit with them) is maintained indefinitely and may be redistributed consistent with the Allen Institute’s mission and the 2-Clause BSD license.

How to contribute

  1. Fork the main repository on Github by following this guide

  2. Clone your fork to your local machine

    $ git clone<github_username>/mouse_connectivity_models.git
    $ cd mouse_connectivity_models
  3. Create a feature branch to hold your development changes

    $ git checkout -b new-feature
  4. Use pipenv to install the dev dependencies. If you do not have pipenv currently installed

    $ pip install pipenv

    Then install dev dependencies

    $ pipenv install --dev

    This will create a virtual environment on your machine for this project. To activate the virtual environment (to develop)

    $ pipenv shell
  5. All contributions must pass tests to be merged with the main repository. Any new features must have test scripts written. We use pytest for all testing. From outside the source directory (mcmodels)

    $ pytest mcmodels
  1. After your new feature passes all tests, add and commit your changes

    $ git add modified_files
    $ git commit

    Please leave an informative, specific commit message. Push your changes to your remote branch

    $ git push -u origin my-feature
  2. Create a pull request from your fork following these instructions