The core functionality of proto-tools is one consistent interface. AlphaFold3, ProteinMPNN, Evo 2, and BLAST all take the same shape. You build an Input, optionally add a Config, call run_tool(), and get an Output with results and metadata.
To get all of these tools working together in the same codebase, you often have to solve a conflicting dependency problem. Different tools want different and often incompatible versions of CUDA, PyTorch, or Python, and some are system binaries like BLAST. proto-tools solves this