Envisioned Solution

NeuroLight Desktop is a local, offline Tkinter application for analyzing neuronal activity with a focus on circadian rhythm metrics. The app streamlines data import → preprocessing → statistical analysis → export, so researchers can move from raw recordings to reproducible results quickly—without a server or internet connection.

The initial concept for this project came from our sponsor’s capstone proposal. Original Capstone Project Proposal (PDF)

Architecture (High Level)

  • UI Layer (Tkinter) — native desktop UI to load datasets, configure analyses, track progress, and preview results.
  • Analysis Services (Python) — modular functions for signal processing and circadian statistics (e.g., Lomb–Scargle, Rayleigh, Rao) using a common data contract (Pandas DataFrame in / dict out).
  • Storage — local, file-based persistence (project folders) using CSV/JSON for configs and results, with optional SQLite to log runs/parameters for provenance.
  • Job Runner — threads for long analyses keep the UI responsive; results are marshaled back to the UI safely.
  • Export — one-click CSV/JSON result export and PNG/PDF figures for publications.
NeuroLight Desktop Architecture (placeholder)

Technologies

These are not the final technologies we will be using, however we have them here as a place holder to showcase the direction we will likely take.

Python 3

Core language for the desktop app and analysis modules. We chose Python for its rich scientific ecosystem and fast iteration. The project is organized with a clear package layout and type hints for maintainability.

Tkinter (UI)

Native UI toolkit that ships with Python—no separate web server or browser needed. We use frames for screens (Import, Configure, Run, Results), ttk widgets for styling, file dialogs for data selection, and a status bar + progress widgets for jobs.

Pandas / NumPy / SciPy

Data ingestion, cleaning, vectorized numerics, and statistical routines for circadian analysis. Pandas tables keep inputs/outputs consistent across modules.

Matplotlib

Generates publication-ready figures (time series, periodograms, circular plots). Results can be saved as PNG/PDF directly from the desktop app.

SQLite (optional)

Zero-config local database for recording runs, parameters, and provenance. When lightweight persistence is enough, we stick to JSON/CSV to keep the footprint minimal.

pytest & CI

Unit tests validate analysis routines and guard against regressions. GitHub Actions (or similar) can run tests and style checks on every push.

Packaging (PyInstaller)

We produce single-file executables for Windows/macOS/Linux for easy lab deployment, with a pyproject.toml to define deps and entry points.

Data Formats

Inputs and outputs use transparent, durable formats: CSV for tabular data, JSON for configs and run manifests, PNG/PDF for figures. This makes results portable across tools.

GitHub (Repo & Issues)

Source control, pull-request reviews, and milestone tracking provide traceability across deliverables and sponsor updates.

Codebase & Builds

At project completion we’ll archive the repository and publish it here for long-term access. If the sponsor prefers private hosting, we will provide a static ZIP on this site. For now, all of this is placeholder links.

Screenshot Walkthrough (Coming Soon)

A durable alternative to a fragile live demo. Key screens illustrate primary workflows.

Upload workflow

Dataset Import

Select files or folders; automatic validation and metadata capture.

Configure analysis

Configure Analysis

Choose preprocessing, windows, and circadian tests; save reusable presets.

Results view

Results & Exports

Visualizations, summary tables, and one-click CSV/PNG/PDF exports.