Skip to main content

Data Acquisition and Behavioral Experiment Platform

Project description

Thalamus — real-time, closed-loop, multimodal data acquisition

Real-time, synchronized, closed-loop multimodal data acquisition — built for the operating room and the research lab.

Release Python Platforms License Docs Paper

Quick Start · How it works · Node Reference · Examples · Paper


Thalamus is an open-source platform for real-time, synchronized, closed-loop multimodal data capture, specifically tailored to meet the stringent demands of neurosurgical environments — while serving equally well in the research lab.

How it works

Thalamus assembles experiments from a pipeline of nodes. Each node is a small, configurable unit that plays one of four roles:

Role Does Examples
🟢 Generators produce data WAVE, NIDAQ, INTAN, SPIKEGLX, GENICAM
🔵 Consumers record / output data STORAGE2, LOG, NIDAQ_OUT, OPHANIM
🟣 Transformers consume → produce data OCULOMATIC, ALGEBRA, LUA, NORMALIZE, ARUCO
🟠 Controllers coordinate the pipeline RUNNER2, TASK_CONTROLLER

You build an experiment by adding nodes, configuring them, and subscribing consumers to the producers they care about. Recorded data is written to a compact .tha capture file and converted to analysis-friendly formats (HDF5, CSV, Parquet, …) with the bundled tooling. See the Node Reference for the full catalog of node types and the Concepts guide for the data model and file format.

Overview

Thalamus facilitates the advancement of clinical applications of Brain-Computer Interface (BCI) technology by integrating behavioral and electrophysiological data streams.

Design requirements Thalamus prioritizes
  1. Requires minimal setup within an operating room, clinical and research environment and could be easily controlled and quickly modified by the experimenter​
  2. Operated with high reliability with few crashes​
  3. Fail-safe architecture that guarantees minimal data loss in the setting of a crash​
  4. Allows for real-time computation to support visualizations of research and clinical data streams​
  5. Closed-loop control based on research and/or clinical data streams​
  6. Acquires synchronous data from the available research and clinical sensors including relevant behavioral, physiologic, and neural sensors that could easily be scaled over time​
  7. Supports a high-bandwidth, low latency, parallel distributed architecture for modular acquisition and computation that could easily be upgraded as technology continues to advance​
  8. Open-source with source code available to support research use​
  9. Embodies best practice in software engineering using unit tests and validation checks​
  10. Supports advances in translational applications and, hence, also operates in research domains​

Installation

Download the wheel for your platform from the Releases page (or the Actions tab). The package is published as thalamus_neuro; the importable module remains thalamus. Builds are provided for Linux (manylinux), Windows (10+), and macOS (arm64). Thalamus requires Python 3.10+.

We recommend a virtual environment so the bundled grpc version is not disturbed:

python -m venv venv-thalamus
source venv-thalamus/bin/activate        # Linux/macOS
call venv-thalamus/scripts/activate      # Windows

Then install the wheel for your platform, for example:

# Linux
python -m pip install thalamus_neuro-1.0.15-py3-none-manylinux_2_39_x86_64.whl
# Windows
python -m pip install thalamus_neuro-1.0.15-py3-none-win_amd64.whl
# macOS (arm64)
python -m pip install thalamus_neuro-1.0.15-py3-none-macosx_12_0_arm64.whl

Note — Drivers and runtimes for third-party devices (e.g. GenTL/GenICam cameras, National Instruments DAQs) must be installed separately. Thalamus itself only needs a standard computer with enough RAM for in-memory operation.

Run

python -m thalamus.pipeline            # Data pipeline (no task controller)
python -m thalamus.task_controller     # Data pipeline and task controller
python -m thalamus.hydrate FILE        # Convert a .tha capture file to HDF5
python -m thalamus.dataframe ...        # Export a node's data to CSV/Parquet/…
python -m thalamus.record_reader2 FILE  # Inspect the contents of a .tha file

Documentation

Full documentation lives at https://cajigaslab.github.io/Thalamus/:

  • Quick Start — install, build a pipeline, record, and analyze your first dataset.
  • Concepts & Architecture — the node pipeline, data model, capture-file format, and tooling.
  • Examples — runnable, copy-paste tutorials (including a hardware-free walkthrough).
  • Node Reference — every node type and its configuration.

Runnable example scripts also live in the examples/ folder. For the figures in our paper, see the SimpleUseCase folder. Release history is in CHANGELOG.md.

Contributing

Like all open-source projects, Thalamus benefits from your involvement, suggestions, and contributions. Use the Issues tab to report bugs and request features, and see CONTRIBUTING.md for the repository layout, development setup, how to add a new node type, and the pull-request and release process.

License & citation

Thalamus is released under the GPL-3.0 license (see LICENSE). If you use Thalamus in your work, please cite our paper:

Thalamus: a real-time, closed-loop platform for synchronized multimodal data acquisition. Communications Engineering (Nature). https://www.nature.com/articles/s44172-026-00646-z

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

thalamus_neuro-1.0.16-py3-none-win_amd64.whl (42.8 MB view details)

Uploaded Python 3Windows x86-64

thalamus_neuro-1.0.16-py3-none-manylinux_2_39_x86_64.whl (39.4 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

thalamus_neuro-1.0.16-py3-none-macosx_12_0_arm64.whl (23.9 MB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file thalamus_neuro-1.0.16-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for thalamus_neuro-1.0.16-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 061f08381072e9cddb7598dd2397116f567610712b72ea83f4ce34d1092bb6f5
MD5 d012238d80ec953ce34a84051c3a0e06
BLAKE2b-256 4b6b8df4407d6dcefce456be023d57671991c89ac533f4dcd38cfb3d89d4ad46

See more details on using hashes here.

File details

Details for the file thalamus_neuro-1.0.16-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for thalamus_neuro-1.0.16-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 06498ea32f15df61792cac2d81246e086dc06cd1e75abab74477ea4bb41f492e
MD5 cc73ef0dd4549d85177d80bc2a7ceb0e
BLAKE2b-256 b7df1a885d4460e3febdbac3514c8ed3308f0e9a3987125dc796832cab39bfe7

See more details on using hashes here.

File details

Details for the file thalamus_neuro-1.0.16-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for thalamus_neuro-1.0.16-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b70e4912f81273fb88099fbe160486faa91da7d94334188c51989e09584ea79c
MD5 d876b178526b8a764871b16b2faeffed
BLAKE2b-256 fdae05bbbdd0693d9503c29960d9077bf9f860d3db1d4c7278583d127ade45c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page