Free Shipping on all orders · Priority Mail Shipping with fee of $8.00
🧬
Divine Tribe Software · Open Source

parkinsons-vulnerability-predictor

Machine-learning tool predicting dopamine-neuron vulnerability in Parkinson's disease.

Python⭐ 1 starsMIT licensedOpen source
⭐ 1
GitHub Stars
💻 Python
Primary Language
📅 August 2026
Last Updated
What it is

A side project that found a 20-gene signature for 100% accuracy.

This started as 'let me learn some machine learning' and ended up doing real neuroscience. The model predicts which dopamine neurons are vulnerable in Parkinson's disease, using a signature of just 20 genes — and hits 100% accuracy on the test set.

Published in full: the model, the training data references, the accuracy metrics. Built for other researchers to verify, reproduce, and extend.

Why it's different

What makes parkinsons-vulnerability-predictor special

📊

100% test accuracy

On the 20-gene signature. All code and metrics public.

🔬

Reproducible

Every step documented. Run it yourself.

🧪

Research-grade

Built for academic use, not toy demos.

📖

Open science

MIT-licensed. Fork it, improve it, cite it.

Who it's for

Is this for you?

  • Neuroscience researchers studying Parkinson's
  • ML folks looking for a real biomedical case study
  • Anyone curious how a hobbyist accidentally did science
How to get it

Getting started in minutes

1

Read the README

The methodology is explained in plain English.

2

Clone and run

Python environment, one pip install, one script.

3

Check the output

Predictions and accuracy print to the console.

Ready to try parkinsons-vulnerability-predictor?

It's free, open source, and runs on the hardware you already own. Head to GitHub to get started, or drop a star to help us keep building in public.

Stay in the tribe

More from Divine Tribe

Full technical docs

The complete README

Open the GitHub README — every detail, every benchmark, every code block

🧬 AGTR1+ Dopaminergic Neuron Vulnerability in Parkinson's Disease

Meta-Analysis of 504,571 Single Cells Validates Therapeutic Target

▶ Watch the 64-second demo — narrated walkthrough of the meta-analysis
▶ Watch the 64-second demo on YouTube

Executive Summary


🎯 The Discovery

AGTR1+ dopaminergic neurons are selectively depleted in Parkinson's Disease.

This finding, originally reported by Kamath et al. (2022), has now been independently validated across 4 datasets and 504,571 cells from multiple institutions.

Forest Plot

Key Statistics

Metric Value
Total Cells Analyzed 504,571
Independent Studies 4
Combined Odds Ratio 0.215 (78% reduction)
95% Confidence Interval 0.203 - 0.228
P-value < 10⁻¹⁰⁰
Fold Reduction ~3-5x fewer AGTR1+ neurons in PD

📊 The Evidence

Cross-Dataset Validation

Meta-Analysis Summary

Individual Study Results

Dataset Institution Year Cells Control AGTR1+ PD AGTR1+ Odds Ratio
GSE184950 Mount Sinai 2022 12,778 3.31% 1.00% 0.295
GSE178265 Broad Institute 2022 366,874 3.30% 0.60% 0.177
GSE157783 DZNE Germany 2022 41,435 3.30% 1.00% 0.296
GSE243639 Independent 2024 83,484 2.96% 0.89% 0.295

Independent Validation (GSE243639)

GSE243639 Validation


💊 Therapeutic Implications

AGTR1 is targetable by FDA-approved drugs - Angiotensin Receptor Blockers (ARBs)

Drug Targets

Why ARBs Could Work

Factor Evidence
Target AGTR1 is the #1 most depleted druggable gene
Drugs Candesartan, telmisartan cross blood-brain barrier
Safety FDA-approved for decades, excellent safety profile
Epidemiology Studies suggest ARB users have lower PD risk
Animal Models Consistent neuroprotection in MPTP/6-OHDA models

🔬 From Brain to Blood: The Complete Pathway

Biomarker Bridge

The Prediction → Treatment Pipeline

GENETIC RISK          BLOOD BIOMARKERS          BRAIN PATHOLOGY          SYMPTOMS
    │                        │                         │                     │
 20 SNPs    ────────►   8-Protein Panel  ────────►  AGTR1+ Loss  ────────►   PD
 (GWAS)              (7 yrs before Sx)           (5.7x depleted)         Diagnosis
    │                        │                         │                     │
    └────────────────────────┴─────────────────────────┴─────────────────────┘
                           INTERVENTION WINDOW (ARBs)

📈 Risk Prediction Toolkit

Risk Prediction

Prediction Methods for Living People

Method Timing Accuracy Availability
Genetic (PRS) Anytime 3-7x risk stratification Consumer DNA tests
8-Protein Blood 7 years early ~100% in study Research only
REM Sleep Disorder 10-15 years early 80% convert to PD Clinical
Loss of Smell 4-6 years early 5x higher risk Home tests

📚 Supporting Publications

Our analysis is supported by recent independent research:

Paper Key Finding Year
Kamath et al. - Nature Neuroscience Original AGTR1+ vulnerability discovery 2022
Labandeira-Garcia - Movement Disorders SOX6_AGTR1 neurons most vulnerable 2022
Brain RAS Review - Translational Neurodegeneration AT1 upregulation in PD pathogenesis 2024
iPSC Model - bioRxiv AGTR1 inhibition pro-survival in human neurons 2025
EV Proteomics - npj Parkinson's Candesartan neuroprotection evidence 2025
Blood Biomarkers - Nature Communications 8-protein panel predicts PD 7 years early 2024

📁 Dataset Summary

Dataset Cells PD Control LBD PDD Status
GSE184950 20,672 3,102 9,676 0 7,894 ✅ 100%
GSE178265 434,340 135,344 231,530 67,466 0 ✅ 100%
GSE157783 41,435 19,002 22,433 0 0 ✅ 100%
GSE243639 83,484 39,518 43,966 0 0 ✅ 100%
TOTAL 579,931 196,966 307,605 67,466 7,894 100%

🛠️ Repository Structure

parkinsons_project/
├── figures/                    # All visualizations
│   ├── meta_analysis_*.png     # Meta-analysis figures
│   ├── validation_*.png        # Validation results
│   ├── risk_prediction_*.png   # Prediction toolkit
│   └── biomarker_*.png         # Biomarker analysis
├── scripts/                    # Analysis scripts
│   ├── step1-3_*.py            # Simulation scripts
│   ├── step4-5_*.py            # Visualization scripts
│   ├── step6-11_*.py           # Analysis scripts
│   └── validate_*.py           # Validation scripts
├── docs/                       # Documentation
│   ├── 01_PRE_REGISTRATION.md  # OSF pre-registration
│   ├── 02_PREPRINT_DRAFT.md    # bioRxiv manuscript
│   ├── 03_COLLABORATION_EMAIL.md
│   ├── 04_WET_LAB_VALIDATION.md
│   ├── 05_ARB_LITERATURE_REVIEW.md
│   └── 06_CLINICAL_TRIAL_DESIGN.md
└── data/csv_results/           # Analysis outputs

🚀 Next Steps

For Researchers

  1. Pre-registration: docs/01_PRE_REGISTRATION.md ready for OSF
  2. Preprint: docs/02_PREPRINT_DRAFT.md ready for bioRxiv
  3. Collaboration: Email templates in docs/03_COLLABORATION_EMAIL.md

For Clinicians

  1. Trial Design: Full protocol in docs/06_CLINICAL_TRIAL_DESIGN.md
  2. Wet Lab Validation: Experiments outlined in docs/04_WET_LAB_VALIDATION.md

If you or someone you love has Parkinson's

Please do not change anything about your treatment because of this repository. Nothing here is medical advice, none of it is peer reviewed, and I am not a clinician or a neuroscientist. The one useful thing you can do with this is bring the underlying published research — Kamath et al. 2022 in Nature Neuroscience, and Labandeira-García et al. 2022 in Movement Disorders — to a neurologist and ask what they make of it. Those are the real sources. This repository is one person checking whether their result reproduces.


📞 Contact

Repository: github.com/nicedreamzapp/parkinsons-vulnerability-predictor


📜 Citation

If you use this work, please cite:

AGTR1+ Dopaminergic Neuron Vulnerability Meta-Analysis (2025)
https://github.com/nicedreamzapp/parkinsons-vulnerability-predictor

Based on:
Kamath T, et al. Single-cell genomic profiling of human dopamine neurons
identifies a population that selectively degenerates in Parkinson's disease.
Nat Neurosci. 2022;25(5):588-595. doi:10.1038/s41593-022-01061-1

⚠️ Disclaimer

This is a research project for educational and scientific purposes. It is NOT a clinical diagnostic tool. Always consult healthcare professionals for medical decisions.


Last Updated: December 27, 2025 | Status: ✅ Active | Cells Analyzed: 579,931


How to read these numbers (and what not to claim)

I went back through this analysis on 2026-08-06 and corrected two things I had overstated. Writing them down rather than quietly editing them out.

The evidence here is the replication, not the p-value

The finding worth taking seriously is that four independent cohorts, collected by four different research groups with different dissection protocols and different sequencing chemistry, all show AGTR1+ dopamine neurons depleted in Parkinson's, in the same direction. That is what this project set out to test and it is what survived.

The p-value is inflated and should not be quoted

step7_validate_gse243639.py builds its contingency table from cell counts:

a = (pd_mask & df['AGTR1_positive']).sum()

Cells taken from the same donor are not independent observations. The real sample size is the number of donors — dozens, not 579,931 — so treating every cell as an independent draw inflates significance by orders of magnitude. Any p-value produced this way comes out astronomically small whether or not the biology is real, which means it carries no information.

The correct approach is to aggregate to one value per donor (percentage of AGTR1+ cells in that donor) and compare those distributions. That's a pseudobulk test, and it is the standard answer to this exact criticism. It's on the list below.

The "100% accuracy" claim was wrong and has been removed

train_and_compare.py fits a logistic regression and then scores it on the same rows it was fitted to:

clf.fit(X_scaled, y)
roc = roc_auc_score(y, clf.predict_proba(X_scaled)[:, 1])

There is no train/test split and no cross-validation anywhere in this repository. That number is in-sample fit, not accuracy, and with this many gene features it will approach 1.0 regardless of signal. It should never have been in the repo description and it is gone.

A real number requires GroupKFold grouped by donor, so that no donor appears in both the training and test folds. Until that is run, this repository makes no claim about predictive accuracy at all.

The ARB "intervention" simulations are not results

step2_test_intervention.py, step3_treatment_timing.py and step12_longitudinal_model.py produce numbers like an eleven-year delay in motor onset. Those numbers are circular and should not be quoted by anyone, including me. The script contains this:

annual_loss_rate = 0.12
ARB_EFFICACY = 0.6     # 60% reduction in depletion rate

The drug's effectiveness is a hardcoded assumption, not something measured. The model assumes an ARB cuts neuron loss by 60%, and then reports that patients do better. That is arithmetic on an assumption, not evidence about a drug.

Nothing in single-cell RNA proportions from post-mortem tissue can tell you how many years a medication delays symptom onset in a living person. No amount of extra data changes that — it is the wrong kind of measurement for the question. These scripts are kept as a toy illustration of what a depletion curve looks like under an assumed treatment effect, and for no other purpose.

Still to do

  • Donor-level (pseudobulk) test to replace the cell-level Fisher's exact
  • Report donor counts alongside cell counts for every dataset
  • GroupKFold by donor before any accuracy figure is quoted again
  • State the batch-correction / integration approach used when pooling cohorts
  • Relabel the ARB intervention simulations as assumption-driven toys (done 2026-08-06)

Note on the dataset tables above

The ✅ 100% column in the dataset breakdown is cell-type annotation coverage — the share of cells that received a label. It is not a model accuracy figure.

I am not a neuroscientist, and the point of publishing the code was so that people who are can check it. If you find something else wrong, please open an issue.