Contributions that improve the model's accuracy, robustness, interpretability, or documentation are welcome.
- Benchmark comparisons against other biological age models (PhenoAge, Klemera-Doubal, GrimAge, etc.)
- Subgroup analyses on populations not well-represented in NHANES
- Alternative preprocessing or imputation strategies (e.g., iterative imputation, normalization)
- Feature importance analysis — which biomarkers drive predictions most?
- Improved visualization of results
- Bug reports and reproducibility issues
- Documentation improvements and clarifications
- Open an issue first before starting a large PR to discuss the approach
- Fork the repository and create a feature branch
- Make your changes with clear commit messages
- Add or update tests as appropriate
- Submit a pull request with a description of what you changed and why
git clone https://github.com/Healome/openage.git
cd openage
pip install -e ".[dev]"
pytest- Black for formatting (line length 100)
- Ruff for linting
- Type hints are encouraged but not required
- Docstrings follow NumPy/Google style
This repo maintains a dual-track leaderboard. To submit your model:
- Train on NHANES data (any cycles)
- Evaluate using
test_size=0.3, random_state=3454 - Generate a submission JSON using
openage.evaluation.leaderboard.create_submission() - Open a PR adding your JSON to
benchmarks/submissions/
See benchmarks/README.md for the full specification and notebooks/evaluation.ipynb for a walkthrough.
The data loading system is extensible. To add a new data source:
- Create a loader function that returns a pandas DataFrame with NHANES-compatible column names
- Register it using
openage.data.registry.register_data_source() - Add documentation and a loader module to
openage/data/
Open an issue on GitHub or reach out at nikhil@healome.one.