Skip to content

Repository files navigation

Autonomic Rhythm Classifier

A hands-on machine-learning course built around one real problem: reading the autonomic nervous system from a heartbeat, and screening for POTS. It's built for Charlie — incoming biophysics at Brandeis, with a personal stake in the physiology — but the code and the data are the genuine article.

You train a working model on day one. Every week after that makes the same model better, until the capstone is a POTS screener grounded in the real diagnostic rules.

What you'll build

  • Week 1. Load a real ECG from PhysioNet, pull two crude features, and train a model that predicts younger-vs-older on a person it has never seen. The whole game, start to finish.
  • Week 2. Replace the toy features with real heart-rate variability (SDNN, RMSSD, pNN50) and watch the model improve.
  • Week 3. See a heartbeat as a spectrum, add frequency-domain features, and race four models against each other.
  • Week 4. Stop chasing accuracy and start understanding the mistakes.
  • Weeks 5–6. The capstone: a POTS screener that runs signal → features → prediction → decision.
  • Bonus. Model how a drug reshapes the rhythm, then re-classify it. A fall-semester stretch with Jeff.

The idea behind the order

This follows the "whole game first" approach: build something that works before you understand every piece, then deepen. Week 1's model is honestly not very good, and that's the point. You improve it with real physiology as you go, instead of building disconnected exercises that never add up to anything.

How to start

  1. Click Use this template → Create a new repository to get your own copy.
  2. Open any notebook in Colab using the badge at the top of it.
  3. Read GETTING_STARTED.md for the full round-trip: claiming your copy, opening notebooks in Colab, and saving your work back.

Then open obsidian-vault/00-Overview/Start-Here.md and begin.

Repo map

notebooks/         the six weekly notebooks (open these in Colab)
src/               importable helpers — data loading, HRV features, POTS simulator
obsidian-vault/    the physiology primers and your week-by-week workbook
GETTING_STARTED.md account setup, Colab round-trip, local install
CLAUDE.md          how the built-in tutor behaves
pyproject.toml     dependencies, managed with uv

The data is never committed. Notebooks pull it from PhysioNet at runtime.

Ask Jeff anytime

This is self-paced, with no scheduled check-ins. Jeff (Dad) is available whenever you want him. Every primer ends with an "explain it to Dad" prompt, because teaching a concept back is the real test of whether it stuck. Getting stuck and asking is the process working, not failing.

A note on scope

This is a learning project. Nothing here diagnoses, screens, or treats any real person. The clinical content is accurate and sourced, but it exists to learn from. See obsidian-vault/99-Resources/ for citations and Simulated-Data-Honesty-Note.md for the honest limits of the simulated capstone.

Data citation

Schumann A, Bär KJ. Autonomic Aging: A dataset to quantify changes of cardiovascular autonomic function during healthy aging. PhysioNet, 2021. DOI 10.13026/2hsy-t491.

About

Hands-on HRV & POTS machine-learning course on real ECG data — a self-paced biophysics learning repo. Whole-game-first, Colab-ready.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages