neurobeam


Nameneurobeam JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryNeuroscience Experiments Using Real-time Optogenetics, Behavior, and Microscopy
upload_time2024-04-08 19:08:36
maintainerDarik A. O'Neil
docs_urlNone
authorDarik A. O'Neil
requires_python<4,>=3.10
licenseMIT License Copyright (c) 2023 Darik A O’Neil Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords brain computer interface bci optical brain computer interface behavior neuroscience psychology head-fixed immobile imaging in-vivo calcium imaging two-photon microscopy optogenetics holographic optogenetics precision optogenetics patterned photostimulation fear conditioning trace fear conditioning startle paired pulse inhibition locomotion closed-loop real-time spatial light modulator
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## PROBE (Python Repo)
<!--Platform for Real-time Optogenetic & Behavior Experiments-->
<!-- Line 0 Title... Working title is WeRDumb but something better would be nice-->
<!-- Line 1 Badges... PyPi, Downloads, Maintained, Coverage, Documentation -->
<!-- Line 2 Badges... Python Versions, PyPi Status, License, Contributors -->
![PyPI](https://img.shields.io/pypi/v/WeRDumb)
![PyPI - Downloads](https://img.shields.io/pypi/dm/WeRDumb)
![Maintenance](https://img.shields.io/maintenance/yes/2023)
[![Coverage Status](https://coveralls.io/repos/github/darikoneil/WeRDumb/badge.svg?branch=master)](https://coveralls.io/github/darikoneil/WeRDumb?branch=master)
[![Documentation Status](https://readthedocs.org/projects/WeRDumb/badge/?version=latest)](https://WeRDumb.readthedocs.io/en/latest/?badge=latest)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/WeRDumb?)
![PyPI - Status](https://img.shields.io/pypi/status/WeRDumb)
![GitHub](https://img.shields.io/github/license/darikoneil/WeRDumb)
[![Contributors](https://img.shields.io/github/contributors-anon/darikoneil/WeRDumb)](https://github.com/darikoneil/WeRDumb/graphs/contributors)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/darikoneil/WeRDumb/WeRDumb_lint_test_action.yml)

PROBE is an open-source software-hardware system for behavioral experiments in head-fixed rodents using a low-cost, modular experimental rig. The software is primarily written in python to allow easy distribution, use, and end-user modification with bits of C/C++ glued in for low-latency performance. An optional GUI is largely handled by your GPU to allow real-time streaming of ongoing behavior and data acquisition without disrupting your experiments. Currently PROBE is only supported on windows. Triggers dependent on neural activity require access to a raw-stream of imaging data. PROBE only offers native support for PrairieView at this time, but if you have a raw stream it should work. In constrast, software communication with spatial light modulators or hardware-triggered stimulation for optogenetic actions should be platform-independent.

More information on hardware implementation can be found here.

Integration Tests
Make sure to launch prairie_mock_server.exe if conducting integration tests with PrairieView. This is automatically launched if calling prairie_probe_test.exe but NOT any other testing application/suite including google tests

Software Reminders
These things aren't listed in TODOs
Remember to test on Prairie-1 Workstation-3. It has an old Xeon processer so it will be a good test of performance of single-thread performance on a slow processor.
Remember to double-check for potential race conditions.
Remember to refactor GUI aesthetic and import logo before pushing here from WRD repo
Remember to update badge links before ever making public--just placeholders from WRD repo. Figure out whether I need to do anything special for distribution of C++ lib, executables, & Node.js in a pypi package. Figure out whether anti-viruses will get grumpy from having an executable in a pypi package.

Hardware Reminders
The sucrose preference robotic spout-swapper has not been tested.
Try to test on a nicer NI-DAQ. Might be able to achieve higher best-case performance since they have hardware-timed digital I/O and I won't have to call those in-between analog-input callbacks.
Take a second look at the PCB scheme and see if I can simplify the connection from / to DAQ. I probably won't re-fabricate since I did that out-of-pocket, but some optimization there will make building much simpler/more flexible.

##### Development Statistics (PyCharm Repo)
~75,000 Lines
~75% Coverage
0 Linting Errors

##### Developmentn Statistics (CLion Repo)
~25,000 Lines
~20% Coverage
0 Linting Errors

##### Supported Pre-Configured Behaviors
|    Module     |           Task           |                 Description                 | Recipe | Pilot
|:-------------:|:------------------------:|:-------------------------------------------:|:------:|:----:|
| Disk or Wheel |        Locomotion        |       Hyperactivity & Motor Function        | x      | x    |
|               |     Acoustic Startle     |    Hearing, Habituation, & Sensitization    | x      | x    |
|               |   Pre-Pulse Inhibition   |             Sensorimotor Gating             | x      | x    |
|               |         Go No-Go         |               Learning & Memory             |        |      |
|  Linear Track |       Navigation         |               Learning & Memory             |        |      |
|    Burrow     |     Shelter Seeking      |                   Anxiety                   |        |      |
|               |    Sucrose Preference    |                  Anhedonia                  |        |      |
|               | Attentional Set-Shifting |           Behavioral Flexibility            |        |      |
|               |         Go No-Go         |              Learning & Memory              |        |      |
|               | Trace Fear Conditioning  |              Learning & Memory              |        |      |
|               |  Delay Fear Conditioning |              Learning & Memory              |        |      |
|               |  Instrumental Learning   |              Learning & Memory              |        |      |

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "neurobeam",
    "maintainer": "Darik A. O'Neil",
    "docs_url": null,
    "requires_python": "<4,>=3.10",
    "maintainer_email": null,
    "keywords": "Brain Computer Interface, BCI, Optical Brain Computer Interface, Behavior, Neuroscience, Psychology, Head-fixed, Immobile, Imaging, In-Vivo, Calcium Imaging, Two-Photon, Microscopy, Optogenetics, Holographic Optogenetics, Precision Optogenetics, Patterned Photostimulation, Fear Conditioning, Trace Fear Conditioning, Startle, Paired Pulse Inhibition, Locomotion, Closed-Loop, Real-Time, Spatial Light Modulator",
    "author": "Darik A. O'Neil",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/0e/c2/055d6294845b2d076c8cb85bb3522a8039864aba18728ed131859ac07cb6/neurobeam-0.3.0.tar.gz",
    "platform": null,
    "description": "## PROBE (Python Repo)\r\n<!--Platform for Real-time Optogenetic & Behavior Experiments-->\r\n<!-- Line 0 Title... Working title is WeRDumb but something better would be nice-->\r\n<!-- Line 1 Badges... PyPi, Downloads, Maintained, Coverage, Documentation -->\r\n<!-- Line 2 Badges... Python Versions, PyPi Status, License, Contributors -->\r\n![PyPI](https://img.shields.io/pypi/v/WeRDumb)\r\n![PyPI - Downloads](https://img.shields.io/pypi/dm/WeRDumb)\r\n![Maintenance](https://img.shields.io/maintenance/yes/2023)\r\n[![Coverage Status](https://coveralls.io/repos/github/darikoneil/WeRDumb/badge.svg?branch=master)](https://coveralls.io/github/darikoneil/WeRDumb?branch=master)\r\n[![Documentation Status](https://readthedocs.org/projects/WeRDumb/badge/?version=latest)](https://WeRDumb.readthedocs.io/en/latest/?badge=latest)\r\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/WeRDumb?)\r\n![PyPI - Status](https://img.shields.io/pypi/status/WeRDumb)\r\n![GitHub](https://img.shields.io/github/license/darikoneil/WeRDumb)\r\n[![Contributors](https://img.shields.io/github/contributors-anon/darikoneil/WeRDumb)](https://github.com/darikoneil/WeRDumb/graphs/contributors)\r\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/darikoneil/WeRDumb/WeRDumb_lint_test_action.yml)\r\n\r\nPROBE is an open-source software-hardware system for behavioral experiments in head-fixed rodents using a low-cost, modular experimental rig. The software is primarily written in python to allow easy distribution, use, and end-user modification with bits of C/C++ glued in for low-latency performance. An optional GUI is largely handled by your GPU to allow real-time streaming of ongoing behavior and data acquisition without disrupting your experiments. Currently PROBE is only supported on windows. Triggers dependent on neural activity require access to a raw-stream of imaging data. PROBE only offers native support for PrairieView at this time, but if you have a raw stream it should work. In constrast, software communication with spatial light modulators or hardware-triggered stimulation for optogenetic actions should be platform-independent.\r\n\r\nMore information on hardware implementation can be found here.\r\n\r\nIntegration Tests\r\nMake sure to launch prairie_mock_server.exe if conducting integration tests with PrairieView. This is automatically launched if calling prairie_probe_test.exe but NOT any other testing application/suite including google tests\r\n\r\nSoftware Reminders\r\nThese things aren't listed in TODOs\r\nRemember to test on Prairie-1 Workstation-3. It has an old Xeon processer so it will be a good test of performance of single-thread performance on a slow processor.\r\nRemember to double-check for potential race conditions.\r\nRemember to refactor GUI aesthetic and import logo before pushing here from WRD repo\r\nRemember to update badge links before ever making public--just placeholders from WRD repo. Figure out whether I need to do anything special for distribution of C++ lib, executables, & Node.js in a pypi package. Figure out whether anti-viruses will get grumpy from having an executable in a pypi package.\r\n\r\nHardware Reminders\r\nThe sucrose preference robotic spout-swapper has not been tested.\r\nTry to test on a nicer NI-DAQ. Might be able to achieve higher best-case performance since they have hardware-timed digital I/O and I won't have to call those in-between analog-input callbacks.\r\nTake a second look at the PCB scheme and see if I can simplify the connection from / to DAQ. I probably won't re-fabricate since I did that out-of-pocket, but some optimization there will make building much simpler/more flexible.\r\n\r\n##### Development Statistics (PyCharm Repo)\r\n~75,000 Lines\r\n~75% Coverage\r\n0 Linting Errors\r\n\r\n##### Developmentn Statistics (CLion Repo)\r\n~25,000 Lines\r\n~20% Coverage\r\n0 Linting Errors\r\n\r\n##### Supported Pre-Configured Behaviors\r\n|    Module     |           Task           |                 Description                 | Recipe | Pilot\r\n|:-------------:|:------------------------:|:-------------------------------------------:|:------:|:----:|\r\n| Disk or Wheel |        Locomotion        |       Hyperactivity & Motor Function        | x      | x    |\r\n|               |     Acoustic Startle     |    Hearing, Habituation, & Sensitization    | x      | x    |\r\n|               |   Pre-Pulse Inhibition   |             Sensorimotor Gating             | x      | x    |\r\n|               |         Go No-Go         |               Learning & Memory             |        |      |\r\n|  Linear Track |       Navigation         |               Learning & Memory             |        |      |\r\n|    Burrow     |     Shelter Seeking      |                   Anxiety                   |        |      |\r\n|               |    Sucrose Preference    |                  Anhedonia                  |        |      |\r\n|               | Attentional Set-Shifting |           Behavioral Flexibility            |        |      |\r\n|               |         Go No-Go         |              Learning & Memory              |        |      |\r\n|               | Trace Fear Conditioning  |              Learning & Memory              |        |      |\r\n|               |  Delay Fear Conditioning |              Learning & Memory              |        |      |\r\n|               |  Instrumental Learning   |              Learning & Memory              |        |      |\r\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 Darik A O\u2019Neil  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Neuroscience Experiments Using Real-time Optogenetics, Behavior, and Microscopy",
    "version": "0.3.0",
    "project_urls": {
        "documentation": "https://readthedocs.org",
        "repository": "https://github.com/darikoneil/LickSuppression"
    },
    "split_keywords": [
        "brain computer interface",
        " bci",
        " optical brain computer interface",
        " behavior",
        " neuroscience",
        " psychology",
        " head-fixed",
        " immobile",
        " imaging",
        " in-vivo",
        " calcium imaging",
        " two-photon",
        " microscopy",
        " optogenetics",
        " holographic optogenetics",
        " precision optogenetics",
        " patterned photostimulation",
        " fear conditioning",
        " trace fear conditioning",
        " startle",
        " paired pulse inhibition",
        " locomotion",
        " closed-loop",
        " real-time",
        " spatial light modulator"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1787577510cb0f9f153f65aec8b6cce453be03afc84173e5c13eec5f79195f8",
                "md5": "68ef8dd7f12ad17bec6f95f87fed029f",
                "sha256": "3db8a23a841e7a4012f7d09f62ca937c6f946674ec344e804ebf9b4fc69505b7"
            },
            "downloads": -1,
            "filename": "neurobeam-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "68ef8dd7f12ad17bec6f95f87fed029f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.10",
            "size": 146969,
            "upload_time": "2024-04-08T19:08:34",
            "upload_time_iso_8601": "2024-04-08T19:08:34.124106Z",
            "url": "https://files.pythonhosted.org/packages/b1/78/7577510cb0f9f153f65aec8b6cce453be03afc84173e5c13eec5f79195f8/neurobeam-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ec2055d6294845b2d076c8cb85bb3522a8039864aba18728ed131859ac07cb6",
                "md5": "d099f9a59d6bbb31aa00ffdda0d35a91",
                "sha256": "a641b4c5087abcaa5a139320a02ac261673372b38558fa4f9a54f0017bcd7ee6"
            },
            "downloads": -1,
            "filename": "neurobeam-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "d099f9a59d6bbb31aa00ffdda0d35a91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.10",
            "size": 139823,
            "upload_time": "2024-04-08T19:08:36",
            "upload_time_iso_8601": "2024-04-08T19:08:36.183458Z",
            "url": "https://files.pythonhosted.org/packages/0e/c2/055d6294845b2d076c8cb85bb3522a8039864aba18728ed131859ac07cb6/neurobeam-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-08 19:08:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "darikoneil",
    "github_project": "LickSuppression",
    "github_not_found": true,
    "lcname": "neurobeam"
}
        
Elapsed time: 0.22761s