Skip to content

AllenNeuralDynamics/aind-analysis-framework-viz

Repository files navigation

AIND Analysis Framework Viz

Work in Progress 🚧

HF Spaces

A generic, reusable Panel app for exploring AIND (Allen Institute for Neural Dynamics) analysis results across multiple projects.

Features

  • 🔄 Multi-project support - Switch between different AIND projects via dropdown
  • 📊 Interactive data table - Filter, sort, and select records with Tabulator
  • 🖼️ Asset viewer - Display PNG figures from S3 based on selected records
  • 🔗 URL state sync - Shareable links that preserve filters, selections, and view state
  • 🧩 Modular architecture - Easy to extend for new projects via configuration

Available Projects

🏛️ AIND Analysis Framework

Results stored in DocDB (per-project collections), accessed via aind-analysis-arch-result-access:

Project Description
Dynamic Foraging Model Fitting MLE model fitting results for behavioral data
Dynamic Foraging NM Neural modulation analysis results
Dynamic Foraging Lifetime Lifetime analysis results

🔬 Han's Pipeline (temporary)

Session-level data loaded directly from Han's S3 pipeline (df_sessions.pkl), independent of DocDB:

Project Description
Dynamic Foraging Basic Analysis Session table with behavioral metrics, training stages, and water/weight tracking. Uses the same session table and visualizations as the Streamlit foraging behavior browser.

Environment Setup

# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create virtual environment and install dependencies
uv sync

Quick Start

# Development (auto-reload on changes)
panel serve code/app.py --dev --show

Project Structure

code/
├── app.py              # Main entry point
├── config/             # Project configurations
├── core/               # BaseApp, DataHolder pattern
├── components/         # UI components (table, filters, asset viewer)
└── data/               # Data loaders (DocDB + S3)

Architecture

The app uses Panel for reactive UI with param.Parameterized state management. Data flows from DocumentDB/MongoDB through a DataHolder to reactive components via pn.bind(). New projects are added by defining configuration in code/config/projects.py.


🤖 Credits - Developed by Han Hou with Claude Code

About

Panel app for visualizing analysis results in AIND Analysis Framework

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages