Skip to main content

Neuroscience Experiments Using Real-time Optogenetics, Behavior, and Microscopy

Project description

PROBE (Python Repo)

PyPI PyPI - Downloads Maintenance Coverage Status Documentation Status PyPI - Python Version PyPI - Status GitHub Contributors GitHub Workflow Status

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

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

neurobeam-0.3.0.tar.gz (139.8 kB view details)

Uploaded Source

Built Distribution

neurobeam-0.3.0-py3-none-any.whl (147.0 kB view details)

Uploaded Python 3

File details

Details for the file neurobeam-0.3.0.tar.gz.

File metadata

  • Download URL: neurobeam-0.3.0.tar.gz
  • Upload date:
  • Size: 139.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for neurobeam-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a641b4c5087abcaa5a139320a02ac261673372b38558fa4f9a54f0017bcd7ee6
MD5 d099f9a59d6bbb31aa00ffdda0d35a91
BLAKE2b-256 0ec2055d6294845b2d076c8cb85bb3522a8039864aba18728ed131859ac07cb6

See more details on using hashes here.

File details

Details for the file neurobeam-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: neurobeam-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 147.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for neurobeam-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3db8a23a841e7a4012f7d09f62ca937c6f946674ec344e804ebf9b4fc69505b7
MD5 68ef8dd7f12ad17bec6f95f87fed029f
BLAKE2b-256 b1787577510cb0f9f153f65aec8b6cce453be03afc84173e5c13eec5f79195f8

See more details on using hashes here.

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