Port one MATLAB calibration utility to Python (good first issue)
#463 opened on Jun 8, 2026
Repository metrics
- Stars
- (24 stars)
- PR merge metrics
- (PR metrics pending)
Description
What this is
A small, bounded port from our legacy MATLAB calibration code to Python. The MATLAB→Python migration is the single most impactful body of work in the project right now — every ported utility unblocks downstream work for other contributors.
This issue is intentionally scoped tight: pick one utility, port it, write tests against the captured fixture data already in the repo, open a PR. That's it.
Why this matters
Until the calibration utilities are in Python, every new feature has to reach back into MATLAB. Every ported function compounds — once we're past a critical mass, the contribution barrier drops sharply for the next wave of Python developers.
What to do
- Comment on this issue to claim it. The lane lead will point you at two or three good candidate functions (small, bounded, well-suited to a first port).
- Set up a local dev environment per
CONTRIBUTING.md. - Port the chosen function to Python, following the structure in
python-migration/(or the most current migration branch — the lane lead will confirm). - Write unit tests against the captured fixture data bundled with the repo.
- Open a PR against the
python-migrationbranch.
Definition of done
- Function works on bundled fixture data; tests pass locally.
- Type hints present on the public interface.
- Docstring describing inputs, outputs, and any assumptions inherited from the MATLAB version.
- PR opened against the correct migration branch with a short description of what was ported and any decisions you made.
Skills
- Python (any modern version — we use 3.10+)
- Ability to read MATLAB (you don't need to write it)
- Basic familiarity with
pytestor willingness to learn
Scope estimate
4–8 hours, including environment setup the first time.
Helpful starting points
- Repo: https://github.com/OpenwaterHealth/openwater-neuromod-software
- Look at the
python-migrationbranch for the current structure CONTRIBUTING.mdfor dev environment setup- The lane lead will tag candidate functions in a comment below once you claim the issue
How to claim this issue
- Comment "I'd like to work on this" — we'll assign it to you.
- Open a draft PR within ~2 weeks of being assigned. (If life happens, just let us know — we'll unassign so someone else can pick it up.)
- Ask any setup questions on this issue or in our Discord
#contributingchannel.
Contact: community@openwater.health
By contributing, you agree to our Contributor License Agreement. (If the CLA isn't yet live when you start, we'll handle it once the flow is up.)/