DDALAB is a local-first analysis environment for performing Delay Differential Analysis (DDA) on neurophysiological time series.
It combines a Python command-line interface, a Qt desktop application, and a high-performance Rust analysis engine, delivering interactive, large-scale DDA workflows while ensuring that all data processing remains local to the user’s machine.
- Download & Installation
- Community & Learning
- Key Features
- Architecture Overview
- Quick Start Guide
- Development
- Conformance & Parity
- Configuration & Data Storage
- Citation
- Acknowledgments
Prebuilt binaries are available for all major platforms via GitHub Releases.
Need help choosing the right file? Visit our Web Download Portal for a simplified, one-click selection for macOS, Windows, and Linux.
-
Download the latest
.dmgfrom the portal or releases page. -
Open the disk image and drag DDALAB into your
Applicationsfolder. -
Remove Quarantine Flag: macOS blocks unsigned applications by default. To allow the app to run, execute the following command in your terminal:
sudo xattr -r -d com.apple.quarantine /Applications/DDALAB.appNote: DDALAB is currently unsigned to avoid Apple Developer program constraints. All computation occurs locally; no data is transmitted externally.
-
Launch DDALAB from your Applications folder.
- Download the latest
.msiinstaller. - Run the installer and follow the setup wizard.
- Launch DDALAB from the Start menu.
- Download either the
.AppImageor.debpackage. - For AppImage:
chmod +x DDALAB-*.AppImage./DDALAB-*.AppImage - For Debian/Ubuntu:
sudo dpkg -i DDALAB-*.debsudo apt-get install -f
To stay informed about upcoming workshops, new computational tools, and latest research from our lab, we encourage you to periodically check the official DDALAB Website.
These events often cover advanced DDA workflows, data interpretation strategies, and hands-on training sessions that can help you get the most out of DDALAB.
- Native Desktop Experience: Qt desktop application delivered through the unified
packages/ddalabpackage. - Scriptable CLI:
ddalabcommand for health checks, dataset inspection, waveform access, ICA, and bundled DDA commands. - High-Performance Backend: Bundled
dda-rsbinary with no separate native fallback layer or network backend required. - Broad Format Support: Native support for EDF, FIFF (
.fif), ASCII/TXT, CSV, BrainVision (.vhdr), and EEGLAB (.set). - BIDS Compatibility: Native handling of Brain Imaging Data Structure datasets.
- OpenNeuro & NEMAR Integration: Browse and download public datasets directly within the application.
- HPC Integration: Run large-scale computations on the Neuroscience Gateway (NSG) for free using your institutional credentials.
- Complete Data Privacy: Zero cloud dependency—all computation is local.
- Interactive Visualization: Real-time heatmaps and time-series plots powered by ECharts.
- Multi-Variant DDA: Support for ST, CT, CD, DE, and SY variants with per-variant channel configuration.
- Persistent History: Analyses and metadata are stored locally using SQLite.
DDALAB is designed as a modular, high-performance scientific application.
- Unified Python Desktop + CLI Package:
packages/ddalab - Rust Native Analysis Engine:
packages/dda-rs - SQLite: Persistent local storage for analysis history.
- Qt Custom Rendering: Interactive waveform and result visualization for large datasets.
For shared or institutional use, DDALAB supports optional network components:
- Sync Broker (Rust): A lightweight service for synchronizing analyses between machines.
- Network API Server: A centralized backend for multiple clients.
To start the broker:
cd packages/ddalab-broker
docker-compose up -d
- Launch DDALAB and select a local data directory.
- Load Data: Import local files, BIDS datasets, or download from OpenNeuro.
- Configure Parameters: Select Channels, Window length, Delay range, and DDA variant.
- Run Analysis: Execute the workflow and monitor progress.
- Visualize: Inspect results using the interactive heatmaps and time-series views.
- Export: Save results for downstream analysis.
- Rust ≥ 1.70 (rustup.rs)
- Python 3.11 or 3.12
git clone https://github.com/sdraeger/DDALAB.git
cd DDALAB/packages/ddalab
./start.sh
packages/ddalab: unified Python package that installsddalab,ddalab-cli, andddalab-gui, bundles the localdda-rsbackend for packaged releases, and provides the PySide6 desktop applicationpackages/dda-rs: Rust implementation and native CLI used by the packaged Python applicationpackages/archive/*: archived Tauri, KMP, and WASM implementations retained for historical reference only
Useful helper commands:
cd packages/ddalab && ./start.sh --smoke-testcd packages/ddalab && python3 scripts/prepare_runtime.py --clean --print-dircd packages/ddalab && ./.venv/bin/python -m build --wheel
cd packages/ddalab && ./.venv/bin/pyinstaller DDALAB.spec --noconfirm --clean
- Shared cross-language contract:
conformance/dda_conformance_contract.json - Unified conformance runner:
bash scripts/run-conformance-suite.sh - Formal parity matrix:
docs/feature-parity.md
DDALAB stores all data locally in OS-specific directories:
- macOS:
~/Library/Application Support/ddalab/ - Windows:
%APPDATA%\ddalab\ - Linux:
~/.local/share/ddalab/
Key Files:
ddalab.db: SQLite database for history.config.json: User preferences.logs/: Diagnostic logs.
@software{draeger-ddalab-2025,
author = {Dr{\"a}ger, Simon and Lainscsek, Claudia and Sejnowski, Terrence J},
title = {DDALAB: Delay Differential Analysis Laboratory},
year = {2025},
url = {https://github.com/sdraeger/DDALAB}
}
Developed with support from NIH grant 1RF1MH132664-01.
Disclaimer: DDALAB is a research tool. Users are responsible for validating results against established standards for their specific applications.