Inspiration

Parkinson's disease affects over 10 million people worldwide, yet early diagnosis remains elusive. Studies show that vocal biomarkers — subtle changes in pitch, tremor, and spectral energy — can precede motor symptoms by years. But these signals are invisible to the human ear. I was inspired by the question: What if an AI agent could listen to speech and flag early Parkinson's risk before a patient even walks into a clinic? More importantly — what if it could explain why it made that decision, in language a clinician could trust?

What it does

NeuroLynk-AI is a healthcare AI agent for explainable Parkinson's speech screening. It analyzes 753 vocal biomarkers extracted from speech recordings (MFCCs, delta coefficients, formants, log energy, wavelet decomposition levels) and returns a full clinical screening result.

  • Prediction: Healthy or Parkinson's Detected with confidence percentage
  • Explainability: Top contributing biomarkers identified via SHAP values
  • Clinical Summary: Plain-language interpretation generated by Gemini 2.5 Flash
  • FHIR R4 Report: Standards-compliant DiagnosticReport for EHR integration
  • A2A Ready: Fully registered on Prompt Opinion as a JSON-RPC agent, callable by other agents

How we built it

Layer Technology
ML Model XGBoost + Scikit-learn
Explainability SHAP TreeExplainer
API FastAPI + Uvicorn
LLM Gemini 2.5 Flash
A2A Protocol JSON-RPC 2.0 / po-community-a2a spec
Clinical Reports FHIR R4 DiagnosticReport
Deployment Google Cloud Run
Monitoring MLflow + KS-test drift detection

The SHAP value $\phi_i$ for each biomarker feature $i$ is computed as: $$\phi_i = \sum_{S \subseteq F \setminus {i}} \frac{|S|!(|F|-|S|-1)!}{|F|!} \left[ f(S \cup {i}) - f(S) \right]$$ This guarantees additive feature attribution — every prediction is a transparent sum of individual biomarker contributions.

Challenges we ran into

  • A2A Schema Compatibility: The Prompt Opinion validator enforced a strict AgentCardV1 schema. Aligning protocolBinding: "JSONRPC", text/plain modes, and empty securitySchemes: {} required significant iteration.
  • SHAP Version Conflicts: Different SHAP versions return values as list, 2D array, or 3D array. We built a robust normalisation function to handle all output shapes.
  • LLM Environment Loading: On Cloud Run, python-dotenv was not loading .env at startup, causing the Gemini provider to silently fall back to mock mode. Fixed by calling load_dotenv() explicitly at the top of main.py.
  • Wavelet Feature Interpretation: Wavelet coefficients at different decomposition levels represent different frequency bands and are not directly comparable in magnitude, requiring careful normalization before model input.

Accomplishments that we're proud of

  • Achieved ~94% accuracy and 0.97 ROC-AUC on the Oxford Parkinson's dataset
  • Built a fully standards-compliant FHIR R4 DiagnosticReport generator
  • Successfully registered as a live A2A agent on the Prompt Opinion platform with JSON-RPC 2.0 compliance
  • Designed a production-ready system with MLflow experiment tracking and KS-test drift detection for model monitoring

What we learned

  • The A2A protocol requires a precise agent card schema — small field name or type mismatches cause silent 422 validation failures
  • Explainability is not optional in healthcare AI; SHAP makes the difference between a model a clinician ignores and one they trust
  • FHIR R4 is a powerful but strict standard; even minor structural deviations break EHR compatibility
  • Cloud Run environment variable propagation requires explicit handling — never assume .env is loaded automatically

What's next for NeuroLynk AI

  • Real audio pipeline: Accept raw .wav files and extract features on-the-fly instead of requiring pre-computed vectors
  • Longitudinal tracking: Monitor a patient's vocal biomarker trends across multiple screenings over time
  • Multi-disease extension: Adapt the pipeline to screen for ALS and essential tremor using the same speech biomarker framework
  • EHR Integration: Connect directly to FHIR servers for automated report submission and patient record updates
  • Clinical trial partnership: Validate NeuroLynk-AI against prospective clinical data for regulatory pathway exploration

Built With

Share this project:

Updates