Releases: aqlaboratory/openfold-3
Release list
v0.5.0 OpenBind Model Release
We are excited to present our latest release - OpenBind v0!!
This release comes with a new set of parameters: openbind-2025-06-03-174k (filename of3-ob-2025-06-30-174k.pt)
If you already have an installation of openfold3, please rerun setup_openfold to ensure that your installation has the latest model parameters. Also note that the previously released preview 2 weights are deprecated and will not function correctly with openfold3>=0.5. Instructions on how to use the preview 2 release can be found here.
The key changes in the OpenBind release from the preview 2 release are:
Training schedule changes
- Moved the pair layer norm in the diffusion transformer out of attention pair bias. The pair layer norm is run once to match the AlphaFold3 SI.
- Restricted the spatial crop center atom on sampled interfaces to the actual interface region, instead of anywhere within the two chains.
- Full support for training on AMD chips
Bug fixes
- MSA profile column index scrambling (as reported in #312)
- Deletion values scaled by a factor of four during featurization
- MSA pairing logic not pairing correctly
- Stale residue offsets causing templates to be dropped without warning
- MSA truncation not applying the configured depth limit (as reported in #308)
Changes to come in upcoming releases
- RNA frame definition fix (reported here: #247)
What's Changed
- automatically load user-default runner.yml from cache directory by @CesarPuentes in #358
- docs: remove erroneous ccd_file_path from query.json example by @Vincy1230 in #370
- Fixing online MSA pairing - inference by @jnwei in #373
- OpenBind model release by @jnwei in #375
New Contributors
- @Vincy1230 made their first contribution in #370
Full Changelog: 0.4.5...v0.5.0
v0.4.5 New Inference Features for OpenFold3
We're excited to release v0.4.5 of OpenFold3! This release comes with some exciting new features, including:
- Better cyclic peptide by improving relative positional encoding, by @ioannisa92 #281, #302
- Pocket constraints for guiding ligand placement in pockets, by @peter-s-obi #324
- Improve ligand stereochemistry agreement with the CCD, by @peter-s-obi #335
- Colabfold and OpenFold MSAs are now saved in the output directory as a default, @ahmedtaha100 #344
- Inference support for Apple Silicon by @weitzner #336, #353
- And more, see full release notes below
Thank you once again to our amazing community contributors for raising important issues and bringing some quality new features + codebase improvements!
What's Changed
- Preserve ccd stereochemistry by @peter-s-obi in #335
- lint: debugging_how_to.md by @jandom in #339
- chore(deps): update ruff by @jandom in #340
- Fix stale mask_bias shape by @balvisio in #328
- Pytest for training integration by @jnwei in #338
- Fix link to AlphaFold3 in index.md by @B0r1sD in #345
- feat: add cyclic peptide support to relative position encoding by @jandom in #302
- refactor: inference tests by @jandom in #341
- fix: template_cache key'ing bug by @jandom in #343
- ci: mypy-baseline by @jandom in #354
- refactor: make mypy-baseline platform independent by @jandom in #356
- feat: MPS inference + fp32 autocast is CUDA-only by @jandom in #353
- Optimizing the process of cloning model weights when calculating EMA of weights by @bluecake-dh in #349
- fix: save per-run MSA outputs by @ahmedtaha100 in #344
- Fix issue 278 C3: Enable recursive CIF file discovery in preprocessing pipeline by @Tanokri02 in #362
- Pocket constraints by @peter-s-obi in #324
- chore(deps): bump prefix-dev/setup-pixi from 0.10.0 to 0.10.1 in the github-actions group by @dependabot[bot] in #365
- Improve Pocket Constraints documentation by @jnwei in #366
New Contributors
- @peter-s-obi made their first contribution in #335
- @balvisio made their first contribution in #328
- @bluecake-dh made their first contribution in #349
- @ahmedtaha100 made their first contribution in #344
- @Tanokri02 made their first contribution in #362
Full Changelog: 0.4.4...0.4.5
v0.4.4
What's Changed
Summary
- template bug fix #306, kudos to @rostro36
- moving away from deepspeed kernels in the code #300 kudos to @sdvillal
Full list of changes
- Typos in docs by @B0r1sD in #297
- Update to pixi 0.72.0 by @sdvillal in #284
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #288
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #299
- feat: add cyclic peptide support to relative position encoding by @ioannisa92 in #281
- Revert "feat: add cyclic peptide support to relative position encoding" by @jandom in #301
- Replace default inference kernel by @jnwei in #300
- ci: better tagging of GHA runners by @jandom in #304
- Fix templates during inference by @rostro36 in #306
- refactor: tests for structure.template by @jandom in #309
- refactor: move test utilities into tests/utils by @jandom in #310
- Making
max_seq_countactually truncate parsed MSAs by @Pana-TsK in #308 - Clean up scripts for processing checkpoints by @jnwei in #314
- ci: support custom AMD runners by @jandom in #280
- refactor: silence benign nvcc warning by @jandom in #291
- feat: download_subset script by @jandom in #298
- variable based gate for nightly tests. by @jnwei in #327
- lint: download_subet and pdb_subset_helpers by @jandom in #331
- docs: build testing updates by @jandom in #332
- tests: skip if deepspeed is not available (installed and usable) by @jandom in #333
- chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #325
New Contributors
- @B0r1sD made their first contribution in #297
- @ioannisa92 made their first contribution in #281
- @rostro36 made their first contribution in #306
- @Pana-TsK made their first contribution in #308
Full Changelog: 0.4.3...0.4.4
v0.4.3 Fix to deepspeed defaults
This release contains a hotfix for default inference settings without deepspeed. The default inference settings should not use the deepspeed kernel and the previous defaults would cause a deepspeed installation error if deepspeed was not installed.
Please use this release instead of 0.4.2 if you want to run OpenFold3 without deepspeed.
What's Changed
- fix: rdkit>=2026 conformer test (paracetamol) by @jandom in #286
- fix: unblock ci/cd with checkout@v7 by @jandom in #287
- fix(readme): minor patch for alphafold url by @ichxorya in #289
- Make config chunk_size maximum rather than minimum by @GMNGeoffrey in #227
- Adds build test documentation by @jnwei in #290
- Change integration tests schedule to run one hour later for non openf… by @jnwei in #295
- docs: inferencing on intermediate/fine-tuning checkpoints by @jandom in #293
- Changes openfold3 inference defaults to not use deepspeed by @jnwei in #296
New Contributors
Full Changelog: 0.4.2...0.4.3
v0.4.2 Minor Updates
Highlights
Thanks to the great work of @sdvillal and @Emrys-Merlin, we are making headway towards modernizing the build for the OpenFold3 ecosystem. We encourage folks to try out the new pixi installation path to set up OpenFold3, more info here.
We've seen a lot of great community contributions since the last release. in general, thank you everyone for their contributions!
Breaking changes
As of this release v0.4.2 - deepspeed will no longer be installed as a core dependency. To use deepspeed it is necessary to install NVIDIA's CUTLASS package separately and use the extra deepspeed dependencies.
More information on how to install OpenFold3 with Deepspeed and our other supported evoformer attention kernels here.
In the near future, we plan to drop deepspeed evoformer attention as a kernel option all together. Deepspeed has created installation headaches for multiple systems. At this time, there are several excellent Evoformer Attention kernel options (cuEquivariance, Triton), and so we no longer need to rely on deepspeed.
What's Changed
- dtype options float32/16 for full confidence npz output by @rizsp in #165
- build: use scm tags for version numbers by @jandom in #174
- fix: #170 ColabFold template chain remap fails for obsolete PDBs by @jandom in #171
- fix: scm version breakns checkpoint compatibility by @jandom in #180
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #179
- docs: MSA pipeline graphic by @jandom in #155
- Fix template chain remap crash on unmappable chains by @giulioisac in #185
- Change inference integration test to use unittest instead of pytest by @jnwei in #191
- feature: pixi-beta by @jandom in #143
- Fixing Triton mixed precision mismatch by @borisfom in #194
- [BUG]: Query ids with dots are not allowed by @dbjoreli in #186
- chore(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in #193
- Rocm pixi env by @Emrys-Merlin in #175
- cuequivariance support in pixi (including aarch64) by @jandom in #181
- refactor: improved conformer generation by @jandom in #197
- Make template preprocessing timeout configurable via CLI by @CesarPuentes in #196
- Segfault in
featurize_reference_conformers_of3()when passing RDKitPoint3Dobjects directly totorch.tensor()by @etowahadams in #198 - Pin lightning version below 2.6.2 by @Emrys-Merlin in #202
- Revert CuEq bias expansion when chunking with BS=1 by @christinaflo in #204
- docs: update install instructions by @etowahadams in #205
- Fix link to contributing guide by @GMNGeoffrey in #201
- Add Template Offloading on inference to further reduce memory consumption by @jnwei in #200
- Removing extra contiguous calls by @borisfom in #217
- Use conda-forge's kalign-python by @sdvillal in #221
- Fixes for forkserver/spawn serialization and fix for LMDB upgrade issues by @christinaflo in #148
- Monkeypatch trunc_normal_init_ to noop during inference by @rizsp in #220
- Make
tune_chunk_sizea top-level config field by @GMNGeoffrey in #210 - Make pairformer_emb_per_sample call into pairformer_emb by @GMNGeoffrey in #223
- Make chunks always a power of 2 by @GMNGeoffrey in #226
- Make chunking for Triton kernels closer to cueq by @GMNGeoffrey in #209
- Cifs direct template structure by @thanhnamitit in #37
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #232
- in openfold3.entry_points.parameters: allow creation of ckpt_root_file directory if it does not already exist by @jnwei in #230
- Fix SMILES ligand seq IDs in CIF output by @ryanhulke in #216
- tests: geometry (tier-1) by @jandom in #184
- Add checks against expanded pair bias by @GMNGeoffrey in #228
- Avoid retesting non-viable chunk sizes in tuner by @GMNGeoffrey in #212
- Raise FileExistsError if colabfold raw directory is found before performing colabfold alignments by @jnwei in #233
- Install py-lmdb from conda + unpin python + create openfold3-msa by @sdvillal in #222
- fix: trailing slash in colabfold URL by @jandom in #238
- fix: flaky template_stack_dsk with bf16 by @jandom in #243
- Treat arg-cache length mismatch as a cache miss in ChunkSizeTuner by @GMNGeoffrey in #224
- fix: sys.getrefcount on py3.14 by @jandom in #242
- refactor: migrate test_kernel.py to pytest by @jandom in #245
- chore(deps): bump docker/metadata-action from 17e943b6741018cb076d01088a79f7a301f67b15 to 3caf19fbe3db1a1a6a8bdce189e09ac0ed35d513 in the github-actions group by @dependabot[bot] in #246
- fix: use-msa-server and use-templates defaults by @jandom in #252
- docs: updating broken slack invite link by @tytrdev in #254
- fix: fixed flaky test, test_template_module_offload by @tytrdev in #256
- Change CI cronjob timing to time with (hopefully) less traffic by @jnwei in #257
- chore(deps): bump docker/metadata-action from 3caf19fbe3db1a1a6a8bdce189e09ac0ed35d513 to 020b7354dd55a28effcab0f3b19639fe24d3f58b in the github-actions group by @dependabot[bot] in #263
- Create '--non-interactive' option for setup_openfold by @jnwei in #264
- Change default region of ci tests to us-east-2 by @jnwei in #265
- ci: replace retired CUDA AMI with DLAMI Base OSS GPU SSM alias by @jnwei in #266
- docs: fix inference docs by @jandom in #270
- fix 268: dataloader workers leak semaphore objects by @jandom in #272
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #275
- fix: colabfold stale cache for multimer example by @jandom in #273
- Fixes errors from incompatibilities with biotite=1.7 by @jnwei in #274
- chore: update production-linux-64.lock by @jandom in #276
- Pypi 0.4.2 rc candidate by @jandom in #277
New Contributors
- @giulioisac made their first contribution in #185
- @borisfom made their first contribution in #194
- @dbjoreli made their first contribution in #186
- @Emrys-Merlin made their first contribution in #175
- @CesarPuentes made their first contribution in #196
- @christinaflo made their first contribution in #204
- @thanhnamitit made their first contribution in #37
- @ryanhulke made their first contribution in #216
- @tytrdev made their first contribution in #254
Full Changelog: 0.4.1...0.4.2
0.4.1
Highlights
This is a release brining in support for AMD hardware, thanks to @singagan and the team at AMD for providing this contribution.
What's Changed
- Enable native AMD ROCm inference via Triton kernels by @singagan in #166
- fix: fix_arginine_naming skipping structures by @jandom in #127
- Fix setup-openfold for download all parameters option by @jnwei in #141
- docs: Add documentation around environment variables by @etowahadams in #138
- chore(deps): bump docker/metadata-action from b13d25e5fcf2e04305d8aedc9a6c28ebe258e934 to dde548f1603e003959483c86c72ec03454216f9c in the github-actions group by @dependabot[bot] in #137
- Removes pae_enabled setting by @jnwei in #142
- fix: chain template alignments auth labelling (inference) by @jandom in #117
- fix: permutation alignment symmetric chains with unsolved residues by @jandom in #147
- chore(deps): bump docker/metadata-action from dde548f1603e003959483c86c72ec03454216f9c to 11079342065fb7d2c3b37cb799ab6ecc01ad1bb2 in the github-actions group by @dependabot[bot] in #146
- Fix checkpoint config by @jnwei in #154
- Add cif.gz structure format by @rizsp in #156
- chore(deps): bump docker/metadata-action from 11079342065fb7d2c3b37cb799ab6ecc01ad1bb2 to 54262e8fce11c7b5496f28398368170da45de7e7 in the github-actions group by @dependabot[bot] in #160
- Add cron job for running large tests by @jnwei in #159
- fix: multi-user machine permission errors on /tmp created dirs by @jandom in #158
- [Documentation] Contribution Guide for OpenFold3 by @jnwei in #163
- fix: don't write invalid JSON (no NaNs for resolution) by @jandom in #168
- test: triangular attention snapshots by @jandom in #128
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #169
New Contributors
Full Changelog: 0.4.0...0.4.1
OpenFold3 Preview2 Release
The OpenFold team is excited to announce the release of OpenFold3 preview 2! 🎉🎉
-
We release a new model that exhibits significant improvement on small molecules and biologics. This model also exhibits inference time scaling for antibody structure predictions. See our whitepaper for full results
-
We release the datasets used to train the OpenFold3 models, containing >10M datapoints! See https://portal.openfold.omsf.io/datasets for more info
-
OpenFold3 is now fully packaged on pypi and easier to install than ever! To install openfold3, all you need is:
pip install openfold3
Special thanks to @TimoLassman and @etowahadams for building and packaging python-kalign to enable this change
Breaking changes:
-
Model parameters from OF3p (e.g. of3_ft3_v1.pt are not compatible with openfold3 versions after this release e.g. >=0.4.0)
-
The command
setup_openfoldwill no longer create an$OPENFOLD_CACHEenvironment variable. Users who wish to set up a custom cache path should set the OPENFOLD_CACHE variable separately
Significant changes:
- Template alignments: OpenFold3 has updated to use kalign3 available from
[kalign-python](https://pypi.org/project/kalign-python/)on pypi instead of kalign2. All kalign alignments now use the python API. There should be no effect on downstream usage of OpenFold3.
What's Changed
- Feature/update docs by @ljarosch in #10
- add benchmarks and rename imgs to assets by @vinay-swamy in #11
- fix: make test root directory where install is by @etowahadams in #12
- Move up documentation section by @ljarosch in #18
- create DOI for repo by @vinay-swamy in #19
- Fix formatting and update YAML instructions in kernels.md by @jnwei in #20
- Fix
presetsfield in ModelUpdate by @jnwei in #24 - Add Blackwell GPU support using NVIDIA PyTorch container by @eidamo in #26
- Add a Pull Request Template by @jnwei in #29
- Support dummy sequence MSA by @haewonc in #28
- Docker image publishing and change CI infrastructure by @jnwei in #48
- Fix: Handle empty pdb70.m8 template file from ColabFold by @qurat-ul-ain95 in #38
- Amend cutlass hacks to support docker image by @jnwei in #49
- Bump docker/build-push-action from 4.0.0 to 6.18.0 by @jnwei in #65
- Update CI test configuration by @jnwei in #67
- Fix sample ranking formula by @qurat-ul-ain95 in #59
- feat(config): Add optional 'description' field to Chain input (#57) by @chodec in #64
- Fix Quick-Start Guide Command by @gloriamacia in #68
- Update DOI in README.md by @maabuu in #74
- build(docker): layering and caching improvements by @jandom in #70
- build: added environment.lock for 'stable' builds by @jandom in #75
- refactor: download_of3_databases.py and add tests by @jandom in #77
- build: remove setup.py and other build changes by @jandom in #79
- fix: typo in Dockerfile by @jandom in #83
- fix: missing import in preprocess_pdb_of3 by @jandom in #86
- refactor: tests for the cleanup.py by @jandom in #87
- feat: adding pytest-cov and pytest-xdist by @jandom in #90
- refactor: dummy_atom_array by @jandom in #88
- refactor: tests for cleanup.py by @jandom in #89
- fix: pytest-cov and pytest-xdist were put under 'dev' instead of 'test' by @jandom in #92
- fix: preparse_alignments_of3 and add tests by @jandom in #81
- fix: explicit hydrogens inference issue by @ljarosch in #98
- tweak: include .coverage by @jandom in #99
- feat: docker image for SandboxAQ/aqaffinity by @jandom in #102
- test: get_pairing_masks by @jandom in #100
- fix: CCD/SMILES inconsistency by @jandom in #95
- docs: how to get model embeddings (s_i, z_ij) by @jandom in #105
- fix: missing AWS credentials in GHA by @jandom in #106
- Add grouping for dependabot PRs by @jnwei in #107
- Bump omsf/start-aws-gha-runner from 1.1.0 to 1.1.1 by @dependabot[bot] in #76
- chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #108
- Update Dockerfile to install openfold3 for aqaffinity by @brianloyal in #112
- fix: .coverage file missing from the GHA artifact by @jandom in #113
- docs: debugging instructions for docker by @jandom in #114
- docs: improve pytest-cov configuration by @jandom in #116
- fix: setup CCD not actually downloading anything by @jandom in #118
- chore(deps): bump aws-actions/configure-aws-credentials from 5 to 6 in the github-actions group by @dependabot[bot] in #123
- build: harmonize docker image pushes by @jandom in #126
- ci: require the safe-to-test label only on the public repo by @jandom in #125
- fix: small fixes used when finetuning a model by @avelinoapheris in #45
- chore: move update_ccd.py to scripts/dev by @jandom in #129
- feat: enable cuequivariance kernels on the base image by @avelinoapheris in #44
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #131
- Fix tokenization bug based on invalid sym_id assignment for unresolved atoms by @jnwei in #124
New Contributors
- @vinay-swamy made their first contribution in #11
- @etowahadams made their first contribution in #12
- @eidamo made their first contribution in #26
- @haewonc made their first contribution in #28
- @qurat-ul-ain95 made their first contribution in #38
- @chodec made their first contribution in #64
- @gloriamacia made their first contribution in #68
- @maabuu made their first contribution in #74
- @jandom made their first contribution in #70
- @brianloyal made their first contribution in #112
- @avelinoapheris made their first contribution in #45
Full Changelog: 0.3.1...0.4.0
Citable release of Openfold3-preview
This release provides a snapshot of the code used for the 10-28 release of OpenFold3-preview. Please see our whitepaper for full details about the release.
v0.3.1 Release of OpenFold3 Preview
- Change
setup_openfoldto optionally run integration tests - Indicate that
pytestis required for running integration tests.
v0.3.0 Initial release of OpenFold3 Preview
Preview release of OpenFold3