For Developers
This guide is for developers who want to contribute to InstaNovo or set up a development environment.
InstaNovo is built for Python >=3.10, <3.14 and tested on Linux, Windows and macOS.
Setting up with uv
This project uses uv to manage Python dependencies.
-
Install
uv: If you don't haveuvinstalled, follow the official installation instructions. -
Fork and clone the repository:
-
Install dependencies:
If you have an NVIDIA GPU:
If you are on a CPU-only, or macOS machine:
To also install the documentation dependencies:
-
Activate the virtual environment:
Metal Performance Shaders
InstaNovo now has support for Metal Performance Shaders (MPS) for Apple silicon devices. If you would like to use InstaNovo with MPS, please set mps to True in the configuration files (instanovo/configs/) and set the environment variable:
This allows the CPU to be used for functionality not yet supported on MPS.
Development workflows
Testing
InstaNovo uses pytest for testing.
-
Download test data:
-
Run tests:
-
View coverage report:
Linting
We use pre-commit hooks to maintain code quality. To run the linters on all files:
Building the documentation
To build and serve the documentation locally: