Skip to main content

Analysis engine for brain organoid data — 57 modules, from spike sorting to Organoid IQ

Project description

NeuroBridge API

The analysis engine for biological neural networks.

57 analysis modules · 125 API endpoints · One-click full report on any organoid recording.

Live API Tests Python License: MIT

Built for researchers working with brain organoids on FinalSpark, Cortical Labs, and university MEA platforms.

Live: neurocomputers.io | API Docs: api.neurocomputers.io/docs


Quick Start

# Clone
git clone https://github.com/Luckyguybiz/neurobridge-api.git
cd neurobridge-api

# Setup
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# Run
python main.py
# → http://localhost:8847/docs (Swagger UI)

Generate synthetic data and analyze (against live API):

# Generate 30s of synthetic spike data
DSID=$(curl -s -X POST "https://api.neurocomputers.io/api/generate?duration=30" \
  | python3 -c "import sys, json; print(json.load(sys.stdin)['dataset_id'])")

# Run a cheap analysis first
curl "https://api.neurocomputers.io/api/analysis/$DSID/summary"

# Get NCI Score (Network Complexity Index)
curl "https://api.neurocomputers.io/api/analysis/$DSID/iq"
# → {"iq_score": 51.0, "grade": "C", ...}

# Full report (runs everything — takes a while)
curl "https://api.neurocomputers.io/api/analysis/$DSID/full-report"

Load the built-in FinalSpark 118-hour recording:

DSID=$(curl -s -X POST \
  "https://api.neurocomputers.io/api/load-local?filename=SpikeDataToShare_fs437data.csv&sampling_rate=437" \
  | python3 -c "import sys, json; print(json.load(sys.stdin)['dataset_id'])")

# 2.6M spikes, 32 channels, 4 organoids, 5 days
curl "https://api.neurocomputers.io/api/analysis/$DSID/summary"

Upload your own data:

curl -X POST "https://api.neurocomputers.io/api/upload" \
  -F "file=@my_spikes.csv"

Supported formats: CSV, HDF5, Parquet, JSON, NWB. 100 MB max per file.

Operational notes

  • Rate limits: 60 req/min regular endpoints, 5 req/min for heavy analyses (bursts/connectivity/cross-correlation/transfer-entropy/full-report). Per-IP.
  • Per-analysis timeout: 45 s. Slower computations return 504 Gateway Timeout with a readable message.
  • Concurrent heavy computations: 1 at a time (single CPU semaphore). Others queue.
  • Dataset capacity: 2 concurrent datasets in RAM; oldest is evicted and returns 410 Gone on subsequent access.
  • Auto-subsampling: heavy endpoints cap input to 10K–20K spikes for pairwise O(N²) work. Responses include _subsampled: true when this happens.

Analysis Modules

Standard Neuroscience (8 modules)

Module Endpoint Description
Spike Analysis /analysis/{id}/firing-rates Spike detection, ISI, firing rates, amplitudes
Spike Sorting /analysis/{id}/spike-sorting PCA + K-means / HDBSCAN clustering
Burst Detection /analysis/{id}/bursts Network bursts, single-channel, profiles
Connectivity /analysis/{id}/connectivity Co-firing graph, degree, clustering
Cross-Correlation /analysis/{id}/cross-correlation Pairwise correlograms
Transfer Entropy /analysis/{id}/transfer-entropy Directed information flow
Statistics /analysis/{id}/summary Full summary, quality, temporal dynamics
Spectral /analysis/{id}/power-spectrum PSD, frequency bands, coherence

Novel Analysis (unique to NeuroBridge)

Module Endpoint What it does
Organoid IQ /analysis/{id}/iq Composite intelligence score (0-100) across 6 dimensions
STDP Mapping /analysis/{id}/stdp Spike-timing dependent plasticity curves
Learning Detection /analysis/{id}/learning Temporal changes in plasticity = learning episodes
Attractor Landscape /analysis/{id}/attractors Memory as dynamical attractors (Hopfield theory)
Phase Transitions /analysis/{id}/phase-transitions Neural reorganization moments + optimal stim timing
Predictive Coding /analysis/{id}/predictive-coding Does the organoid minimize prediction error?
Weight Inference /analysis/{id}/weights Infer synaptic connectome from spike timing
Weight Tracking /analysis/{id}/weight-tracking Watch learning happen in real-time
Neural Replay /analysis/{id}/replay Memory consolidation during "rest" periods
Reservoir Computing /analysis/{id}/memory-capacity Memory capacity benchmark
Causal Emergence /analysis/{id}/emergence Integrated information (Phi)
Multi-Timescale /analysis/{id}/multiscale Complexity at 12 timescales
Fingerprinting /analysis/{id}/fingerprint Unique organoid identity signature
Sonification /analysis/{id}/sonify Neural activity → audio WAV
Health Monitor /analysis/{id}/health Organoid viability assessment
Predictions /analysis/{id}/predict/bursts Burst probability forecast
Anomaly Detection /analysis/{id}/anomalies Isolation Forest on neural features
State Classification /analysis/{id}/states Resting / active / bursting states

Discovery Analysis (10 modules)

Module Endpoint What it does
Sleep-Wake /analysis/{id}/sleep-wake UP/DOWN state detection, slow-wave oscillations
Habituation /analysis/{id}/habituation Response decay — simplest form of learning
Metastability /analysis/{id}/metastability Kuramoto synchronization, brain-like state switching
Information Flow /analysis/{id}/information-flow Granger causality, hub detection
Network Motifs /analysis/{id}/motifs 3-node subgraph patterns vs random
Energy Landscape /analysis/{id}/energy-landscape Ising model, attractor basins
Consciousness /analysis/{id}/consciousness PCI + Phi + recurrence composite score
Comparative /analysis/{id}/comparative vs cortical slice, C. elegans, fruit fly, mouse hippocampus
Turing Test /analysis/{id}/turing-test Can you distinguish from Poisson/LIF?
Welfare /analysis/{id}/welfare Health + suffering detection + recommendations

Learning & Memory (4 modules)

Module Endpoint What it does
Catastrophic Forgetting /analysis/{id}/forgetting Do early patterns survive over time?
Transfer Learning /analysis/{id}/transfer Does learning task A help task B?
Consolidation /analysis/{id}/consolidation Offline memory consolidation events
Channel Capacity /analysis/{id}/channel-capacity Multi-bit information capacity

Connectomics (5 endpoints)

Module Endpoint What it does
Full Connectome /analysis/{id}/connectome Weighted adjacency, communities, modularity
Graph Theory /analysis/{id}/graph-theory Rich-club, small-world, efficiency, centrality
Effective Connectivity /analysis/{id}/effective-connectivity Directed causal connections
Topology /analysis/{id}/topology Betti numbers, persistent homology

Experiments (6 endpoints)

Module Endpoint What it does
Pong POST /experiments/{id}/pong/simulate DishBrain Pong simulation
Logic Gates POST /experiments/{id}/logic/benchmark AND, OR, XOR, NAND benchmark
Vowels POST /experiments/{id}/vowels/simulate Brainoware 240-vowel classification
Memory Tests /experiments/{id}/memory-tests Working, short-term, long-term, associative
Closed-Loop POST /experiments/{id}/closed-loop/simulate DishBrain mode simulation
Architecture Search POST /analysis/{id}/architecture-search NAS for optimal stimulation

Full Report

# Run ALL analyses in one call (~5 seconds)
curl "http://localhost:8847/api/analysis/{id}/full-report"

Returns 21+ analysis results in a single JSON response.


Data Formats

Input

  • CSV: columns time, electrode, amplitude
  • HDF5: FinalSpark format or generic arrays
  • Parquet: columnar format
  • JSON: array of objects or nested structure
  • NWB: Neurodata Without Borders

Column names are auto-detected. FinalSpark electrode indexing (modulo 32) is handled automatically.

FinalSpark Compatibility

  • Sampling rate: 30 kHz (configurable)
  • Spike detection: 6× median(σ) threshold (Section 4.2 of Jordan et al. 2024)
  • MEA: 4 × 8 electrodes = 32 channels
  • Electrode index > 32 → modulo 32 applied automatically

Tech Stack

  • Python 3.12 + FastAPI
  • NumPy / SciPy / Pandas — core computation
  • scikit-learn — ML (Isolation Forest, KMeans, Ridge, PCA)
  • h5py — HDF5 file support

API Reference

Data Management

POST   /api/upload              Upload spike data file
POST   /api/generate            Generate synthetic data
GET    /api/datasets             List loaded datasets
GET    /api/datasets/{id}        Dataset info
GET    /api/datasets/{id}/spikes Spike data with filters

Analysis

GET    /api/analysis/{id}/summary           Full statistics
GET    /api/analysis/{id}/quality            Data quality metrics
GET    /api/analysis/{id}/firing-rates       Time-binned rates
GET    /api/analysis/{id}/isi                Inter-spike intervals
GET    /api/analysis/{id}/amplitudes         Amplitude distributions
GET    /api/analysis/{id}/temporal           Temporal dynamics
POST   /api/analysis/{id}/spike-sorting      Spike sorting
GET    /api/analysis/{id}/bursts             Network bursts
GET    /api/analysis/{id}/connectivity       Connectivity graph
GET    /api/analysis/{id}/cross-correlation  Correlograms
GET    /api/analysis/{id}/transfer-entropy   Directed information
GET    /api/analysis/{id}/entropy            Shannon entropy
GET    /api/analysis/{id}/mutual-information Mutual information
GET    /api/analysis/{id}/complexity         LZ complexity
GET    /api/analysis/{id}/power-spectrum     Power spectral density
GET    /api/analysis/{id}/coherence          Spectral coherence
GET    /api/analysis/{id}/avalanches         Criticality
GET    /api/analysis/{id}/digital-twin/fit   LIF model fitting
POST   /api/analysis/{id}/digital-twin/simulate  Simulate twin
GET    /api/analysis/{id}/anomalies          Anomaly detection
GET    /api/analysis/{id}/states             State classification
GET    /api/analysis/{id}/pca                PCA embedding
GET    /api/analysis/{id}/stdp               STDP plasticity
GET    /api/analysis/{id}/learning           Learning episodes
GET    /api/analysis/{id}/iq                 Organoid IQ
GET    /api/analysis/{id}/predict/firing-rates  Rate forecast
GET    /api/analysis/{id}/predict/bursts     Burst probability
GET    /api/analysis/{id}/health             Health assessment
GET    /api/analysis/{id}/replay             Neural replay
GET    /api/analysis/{id}/sequences          Neural circuits
GET    /api/analysis/{id}/memory-capacity    Reservoir MC
GET    /api/analysis/{id}/nonlinearity       Computation benchmark
GET    /api/analysis/{id}/fingerprint        Organoid fingerprint
GET    /api/analysis/{id}/sonify             Audio sonification
GET    /api/analysis/{id}/rhythms            Rhythmic analysis
GET    /api/analysis/{id}/emergence          Phi / causal emergence
GET    /api/analysis/{id}/attractors         Attractor landscape
GET    /api/analysis/{id}/state-space        State space geometry
GET    /api/analysis/{id}/phase-transitions  Phase transitions
GET    /api/analysis/{id}/predictive-coding  Predictive coding
GET    /api/analysis/{id}/weights            Synaptic weights
GET    /api/analysis/{id}/weight-tracking    Weight changes
GET    /api/analysis/{id}/multiscale         Multi-timescale
GET    /api/analysis/{id}/full-report        ALL analyses

Export

GET    /api/export/{id}/csv    Download as CSV
GET    /api/export/{id}/json   Download as JSON

License

MIT


NeuroBridge — Biocomputing-as-a-Service Platform

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

neurocomputers-0.2.0.tar.gz (289.7 kB view details)

Uploaded Source

Built Distribution

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

neurocomputers-0.2.0-py3-none-any.whl (314.7 kB view details)

Uploaded Python 3

File details

Details for the file neurocomputers-0.2.0.tar.gz.

File metadata

  • Download URL: neurocomputers-0.2.0.tar.gz
  • Upload date:
  • Size: 289.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for neurocomputers-0.2.0.tar.gz
Algorithm Hash digest
SHA256 51313493f631f85df9afa4b8a388f6155b1dd6a20d1ea786a385d62b92d7d598
MD5 0223a78cc2fe1f1e2090d751736ab902
BLAKE2b-256 9effba8b2ce03f0897d77cf0b70e150cc16efc99cb2579cb21d829d7471fac67

See more details on using hashes here.

File details

Details for the file neurocomputers-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: neurocomputers-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 314.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for neurocomputers-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6cb28cb318a4766b03a3b11b019b5ac14fc92020c3459396dad8abbf8e81e6
MD5 c64d716ded5f31aae0add071d04c4da9
BLAKE2b-256 fb14a17f034f6037424bd2a172f733105af2a836b97357a288f62501b7b08b60

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