Skip to content

maxhoheiser/maxland

Repository files navigation

Logo

Traekka Behavior Platform

Fully customizable turn key solution for behavior neuroscience
and in-vivo electrophysiology - train record and analyze.

Traekka Website Badge Blog Badge

Explore the screenshots »

Report a Bug · Request a Feature . Ask a Question


Tests Python 3.8 Python 3.9 codecov

Project license Pull Requests welcome code with love by maxhoheiser


Table of Contents



About

This is the software of the Traekka Behavior Platform platform for behavior neuroscience and in-vivo electrophysiology.

The system is a virtual-reality system for the behavior task, combining open-source components, with a high adoption rate throughout the in-vivo electrophysiology community, such as the Bpod state machine and the OpenEphys electrophysiology acquisition system.

Furthermore, it integrates with the Traekka Database, a standardized framework for storing, analyzing, and managing data generated by the new system, based on the Neuro-Data-Without-Borders data standard and a centralized database.

Treakka System

⚙️ Hardware

The central brain of each individual system is a Bpod state machine from Sanworks, the latest available hardware iteration 2.3 is used. It specifically uses the Rotary Encoder Module, the Port Breakout Module, the Analog Output Module and the Audio Module. The environment and interface between the system and the mouse is provided by a sound-proof enclosure, and fully customizable 3D printed parts.


Training Box Recoding System

🧑‍💻 Software


PyBpod Example User Input Example

📝 Publications

A detailed description of the hardware and software as well as the Gamble-Task can be found in the masters' thesis of Maximilian Hoheiser, available here: TU Repository

Built With

[?] Please provide the technologies that are used in the project.


Getting Started

Prerequisites

[?] What are the project requirements/dependencies?


Installation

You can use Windows, Linux or Mac based machines for developing.

To set up a development environment, please follow these steps:

  1. Install dependencies
  • install anaconda for your system
  • install git for your system
  • install pip
  1. Clone the repo

    git clone https://github.com/maxhoheiser/maxland
  2. Run installer script

    python install.py --dev

Development environment setup

  1. Run installer script with dev flag

    python install.py --dev
  2. Set up your dev environment

    • install pre-commit hooks pre-commit install
    • use black for auto formatting
    • use pylint for linting

    You can use this settings for VS Code:

    "python.linting.pylintEnabled": true,
    "python.linting.pylintArgs": ["--enable=W0611"],
    "python.linting.enabled": true,
    "python.linting.pylintCategorySeverity.convention": "Hint",
    "python.linting.maxNumberOfProblems": 120,
    "python.linting.mypyEnabled": true,
    "python.languageServer": "Pylance",
    "python.formatting.provider": "black",
    "python.sortImports.args": ["--profile", "black"],
    "python.formatting.blackArgs": ["--line-length=140"],
    "python.linting.pydocstyleArgs": ["--ignore=D400", "--ignore=D4"],
    "[python]": {
       "editor.defaultFormatter": "ms-python.python",
       "editor.formatOnSave": true,
       "editor.codeActionsOnSave": {
          "source.organizeImports": true
       }
    },

  1. Writing code

    Please follow the code style guide outlined in the README!!


    Type hinting:

    • use : instead of ->
    • create new type definitions for custom data types where possible
    • try to type hint input arguments as much as possible
    • use Enum and typing Dict, List, Union

    Testing:

    • always write unittests for new features
    • try to extend the end-to-end hardware in the loop tests to cover your new functionality as complete as possible
    • always run all tests and fix broken ones


Usage

[?] How does one go about using it? Provide various use cases and code examples here.


Roadmap

See the open issues for a list of proposed features (and known issues).


Support

[?] Provide additional ways to contact the project maintainer/maintainers.

Reach out to the maintainer at one of the following places:


Project assistance

If you want to say thank you or/and support active development of Traekka Behavior Platform:

  • Add a GitHub Star to the project.
  • Tweet about the Traekka Behavior Platform.
  • Write interesting articles about the project on Dev.to, Medium or your personal blog.

Together, we can make Traekka Behavior Platform better!


Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

Please read our contribution guidelines, and thank you for being involved!


Authors & contributors

The original setup of this repository is by Maximilian Hoheiser.

For a full list of all authors and contributors, see the contributors page.


License

This project is licensed under the MIT license.

See LICENSE for more information.

Releases

No releases published

Packages

No packages published

Languages