A single variable for enrollment-criteria-based cohorts in PPMI: HARMONIZED_COHORT (script available, feedback welcome)

I built a cohort variable for PPMI that maps directly to the enrollment criteria, because the study has developed over time and I wanted something easier to track “Which criteria set did this participant enter under?” to understand the intepretation of the results. Participant_Status already has most of the ingredients (SCREENEDAM, the ENRL* arm flags, COHORT_DEFINITION, PATNO allocation). I combined them and cross-checked to see if they can be harmonized over different protocols / protocol changes.

The clearest example is the PD cohort. Over time, “Parkinson’s Disease” participants have come in under several different criteria sets: the original de novo, untreated, DAT-deficit-confirmed cohort; the genetic cohort/registry; and, in Amendment 4, the sporadic/genetic arms plus the new PD Normosmic arm. Depending on the question, you may want to treat those as one group or several, so I made that choice explicit.

From Participant_Status alone, cross-checked against the protocol documents, I defined:

Protocol comparison table [link]

  • PROTOCOL_ERA — the screening protocol era.
  • STUDY_ARM — the enrollment arm from the ENRL* flags.
  • COHORT_STRATUM — the highest-resolution era × arm grouping.
  • HARMONIZED_COHORT — a simplified version that only merges strata when the underlying criteria are nearly the same.

This cuts the raw categories down to a much smaller set of usable groups while keeping the more detailed fields available for sensitivity analyses. The top 10 HARMONIZED_COHORT counts in the Aug. 11, 2026 PPMI download were:

HARMONIZED_COHORT
Prodromal_Hyposmia_DATera              2931
Prodromal_UPSIT_SAAgated_AM4           1683
PD_DeNovoSporadic_DATgated             1512
Prodromal_RBD_DATera                    536
Prodromal_GeneticCarrier_PPMI1          442
HC_DATnormal                            432
Unresolved_PPMI2_pending                386
PD_Genetic_PPMI1_unrestricted           301
PD_Normosmic_AM4                        268
Prodromal_Pilot_HPSM_RBD_PPMI1          215

One thing I noticed during validation is that the detailed fields still matter: for example, the merged hyposmia-prodromal group shows higher SAA positivity in later amendments, which is exactly why I keep COHORT_STRATUM and PROTOCOL_ERA alongside HARMONIZED_COHORT. They make it easy to go back to the finer-grained strata when needed.

One caveat: HARMONIZED_COHORT is meant to group people by criteria set, not to replace the genetics-specific subcohort labels. If you want to separate LRRK2, GBA, and SNCA carrier arms, COHORT_STRATUM is the better field.

The script is available in the MJFF-ResearchCommunity/Useful-PPMI-Clinical-Codes repository. Feedback welcome. Thank you @danieltds for reviewing the code!

Thank you for sharing this work! It’s a really interesting way of re-categorizing the participants, and seems like a very useful tool. I will apply these new labels to my own sub-typing work, to look for technical bias not accounted for by other attributes.

Cool! Thanks for sharing Hirotaka!