Commit Graph

254 Commits

Author SHA1 Message Date
Augustin Zidek
481beec819 Add fallback version for Docker
* Fixes a bug introduced in 3dfc5a91be.
* Addresses https://github.com/google-deepmind/alphafold3/issues/665.

PiperOrigin-RevId: 911264939
Change-Id: I3fe04842e4ebd46fcac4cc6b851026d401720538
2026-05-06 04:59:43 -07:00
Augustin Zidek
011b6cf42b Refactor to_mmcif_dict to not use getattr
PiperOrigin-RevId: 904939640
Change-Id: I18c6d3c3493d2445bc4ffb68099cfb684b21289d
2026-04-24 04:06:17 -07:00
Augustin Zidek
3dfc5a91be Support dynamic version for dev and releases
Suggested in https://github.com/google-deepmind/alphafold3/pull/617.

PiperOrigin-RevId: 904448492
Change-Id: Ibe74967fbf768336ba2ce71ffa2841f40dca859c
2026-04-23 07:33:40 -07:00
Augustin Zidek
de4e7a4f2d Remove unused cleaned_struc from ConvertModelOutput
PiperOrigin-RevId: 903796755
Change-Id: I8d32cdd03d5d3240fb8f715973264b530a1eb55b
2026-04-22 05:56:01 -07:00
Augustin Zidek
6f882ad224 Use pathlib.Path.home() instead of os.environ.get('HOME')
PiperOrigin-RevId: 903780979
Change-Id: I18b2580c65fc7c7411b5db3f8bd48d1b0535faa0
2026-04-22 05:14:40 -07:00
Augustin Zidek
e9adcd4dbf Clean up structure cleaning - remove unused code paths
PiperOrigin-RevId: 903711715
Change-Id: I953f1b27c6a0b30cc79a6cbd3ee3503d1f24a7ec
2026-04-22 02:33:06 -07:00
Augustin Zidek
cfeeedd24d Optimize CIF loop parsing by ~4% - remove modulo in the hot path
PiperOrigin-RevId: 903070425
Change-Id: Ibc7fc6735231504a4a9c5f11793854ce332d8c46
2026-04-21 01:37:04 -07:00
Augustin Zidek
f6a5aecf6e Bump the version to v3.0.2
PiperOrigin-RevId: 902499234
Change-Id: If20dc9fccf13c0718fb37701b251e25aa2a4dc87
v3.0.2
2026-04-20 01:54:13 -07:00
DeepMind
24cded8e86 Expose an API to run the model pipeline with a Structure
PiperOrigin-RevId: 897648577
Change-Id: I6342d35ea75b5c6bf15b6dcad2aa6bfc11764c19
2026-04-10 05:54:27 -07:00
Amer Elsheikh
177df6a5c1 Remove obsolete : ... from all python functions parameters annotations.
PiperOrigin-RevId: 897312424
Change-Id: I43029f4c467178b53bab07a7b6798cf688c86006
2026-04-09 14:48:18 -07:00
Augustin Zidek
87bd9e678d Add a missing newline for consistency
PiperOrigin-RevId: 892857617
Change-Id: I780db2503f65cc35d28971dc9479256d98275e9e
2026-04-01 04:39:52 -07:00
Augustin Zidek
f236bc4e8c Use && instead of ; when building HMMER to stop if there are errors
Suggested in https://github.com/google-deepmind/alphafold3/pull/639/files

PiperOrigin-RevId: 892848172
Change-Id: I483403805e4252d150b19b482917736bddca47fa
2026-04-01 04:13:59 -07:00
Augustin Zidek
4d20ed540b Import from collections.abc instead of typing
PiperOrigin-RevId: 892386825
Change-Id: Ic04bb7a133d90ab9ac900061e3684e1f086d6ac7
2026-03-31 09:31:43 -07:00
Augustin Zidek
58d22e2db5 Fix some Structure type issues uncovered by Pyrefly
PiperOrigin-RevId: 891687351
Change-Id: I9c69179100e9328113a578d45e5f997b07d300a2
2026-03-30 06:34:28 -07:00
Akvile Zemgulyte
0f82e0c94c wrap reader into io.BufferedReader.
PiperOrigin-RevId: 889374560
Change-Id: Ie829d2eb1f06dc024b1848747540b50c11e8d9d6
2026-03-25 12:25:38 -07:00
Augustin Zidek
02650a5ded Use --run_*=false instead of --norun_* in docs.
PiperOrigin-RevId: 886655698
Change-Id: If37e31d659c5b31856ce9bb6cb215b49bb7a96f8
2026-03-20 02:19:27 -07:00
Augustin Zidek
608edb684d Update to Tokamax 0.0.11 and JAX 0.9.1
PiperOrigin-RevId: 881449511
Change-Id: I581853a7c2609a2541f46d22901cc463d5b6b08a
2026-03-10 08:36:19 -07:00
Augustin Zidek
5f7eb57e22 Improve the error when components.cif is not found
PiperOrigin-RevId: 879668429
Change-Id: I7a6ea91c9ddc7696577e156787cb364d1ff79016
2026-03-06 09:15:59 -08:00
Augustin Zidek
e58932a036 Use the same license format in .h files as in .cc files
PiperOrigin-RevId: 878462983
Change-Id: I9480568ba1601306bcb1411e4403f5d6d30de579
2026-03-04 06:38:48 -08:00
Augustin Zidek
6daafb546f Remove unused utility functions
PiperOrigin-RevId: 875760003
Change-Id: I23d7759ddf0835394dbd6b6ab3c304fa52c6a9b1
2026-02-26 09:32:05 -08:00
James Spencer
1e9ece2cfb Respect LIBCIFPP_DATA_PATH if set, rather than attempt to find it.
This enables non-standard installs to find component.cif from libcifpp rather
than require increasingly elaborate heuristics to locate it.

PiperOrigin-RevId: 875098340
Change-Id: I7b186a9958e04628c65644aabfa88d977a86db13
2026-02-25 05:01:49 -08:00
Augustin Zidek
9e10da6725 Add CifDict.to_dict() method for faster serialisation
* Speeds up ccd_pickle_gen from 22.9 s to 19.9 s.

PiperOrigin-RevId: 874118133
Change-Id: I2692c09f8aa8b58a81d0bf3bdf83684934961a66
2026-02-23 09:41:10 -08:00
Augustin Zidek
203e93dfc6 Use const for iter/keys/values/items and release GIL for contains in KeyView
PiperOrigin-RevId: 874098884
Change-Id: I3d55627a3752809600e0c2babd067ead5d5a436b
2026-02-23 08:58:51 -08:00
Augustin Zidek
4ca8a65692 Document the discrepancy between AlphaFold 3 and AlphaFold Server in Known Issues
Big thanks to @stianale for reporting this in https://github.com/google-deepmind/alphafold3/issues/492.

PiperOrigin-RevId: 872892863
Change-Id: Ia24bb492daea44534be4ac743fb304bc72fe9741
2026-02-20 07:34:06 -08:00
Augustin Zidek
ea1667690e Update Docker build instructions for AlmaLinux/Rocky/RHEL users
Addresses https://github.com/google-deepmind/alphafold3/issues/612.

PiperOrigin-RevId: 872822931
Change-Id: Ibb4db9640805e4b59b68d93b13595224636a1af6
2026-02-20 03:41:05 -08:00
Augustin Zidek
c20f070859 Exit if any of the required programs is not installed
Thanks for the suggestion, @Ashutosh0x.

PiperOrigin-RevId: 872800291
Change-Id: If1266222844de98850b7ae4141e2f50001cc4d63
2026-02-20 02:25:13 -08:00
Augustin Zidek
703d5c8375 Make sharded Jackhmmer result merging more robust in case of e-value ties
E-values could be equal, but bit score might have higher resolution. Use that for tie brakes before resorting to the name.

PiperOrigin-RevId: 870903887
Change-Id: I5c8648456c85ef4d1ff4dfeb15b459ba204184e3
2026-02-16 08:30:20 -08:00
Augustin Zidek
2761bf1cfc Use the logging name instead of the one from fold_input
PiperOrigin-RevId: 870860151
Change-Id: I1d4485e1e08c3ca790899c33190b989d103eaf56
2026-02-16 06:13:52 -08:00
Augustin Zidek
e2b8ffd6a7 Implement relevant improvements from #615
PiperOrigin-RevId: 868589660
Change-Id: Iac82ddf73f9f82118b935550afbe0ea13f6cd2eb
2026-02-11 03:27:47 -08:00
Augustin Zidek
ceb32296c7 Move CONTRIBUTING.md to the root directory
PiperOrigin-RevId: 867451876
Change-Id: Ibdaaee8902a1c1150e99225632300778c016f5f6
2026-02-09 00:41:32 -08:00
Augustin Zidek
ebfe70a27a Update Tokamax to 0.0.10
* Removes transitive TensorFlow dependency and others.
* Remove setuptools dependency which is no longer needed.
* Bump JAX to 0.8.2 (required by Tokamax).

PiperOrigin-RevId: 865449256
Change-Id: Iab74fa7ccf36db5c38e7c3d3d37e818a1d9d3952
2026-02-04 09:41:35 -08:00
Augustin Zidek
c13d928a34 Update RDKit to 2025.9.4
PiperOrigin-RevId: 865437867
Change-Id: Iaa116d661bb5743e285efcfe7115f8242f7c0db9
2026-02-04 09:15:20 -08:00
Augustin Zidek
cf4bb5bd9e Use UV_LINK_MODE=copy to prevent Docker build issues on some platforms
Relevant issues:
* https://github.com/google-deepmind/alphafold3/issues/603
* https://github.com/google-deepmind/alphafold3/issues/612

PiperOrigin-RevId: 865416421
Change-Id: Idaf8e531a62638bce5e0748f64a7ddc00b554677
2026-02-04 08:18:53 -08:00
Augustin Zidek
6b50e384d3 Add the glycan modeling paper in the list of community tools
Adapted from https://github.com/google-deepmind/alphafold3/pull/608/changes, thanks @chinchc.

PiperOrigin-RevId: 862720014
Change-Id: I021eef0b46158e8ce28e97d9172ba6e79ef3f30c
2026-01-29 07:03:17 -08:00
Augustin Zidek
22b9ab80d3 Make AlphaFold 3 uv setup compatible with aarch64
Addresses https://github.com/google-deepmind/alphafold3/issues/593.

PiperOrigin-RevId: 858480255
Change-Id: I7862b204300d137e367bbaaf31213f7164fdd8d1
2026-01-20 01:56:05 -08:00
Augustin Zidek
c7a1ad5c51 Add a documentation on model parameters
Addresses https://github.com/google-deepmind/alphafold3/issues/594.

PiperOrigin-RevId: 857083798
Change-Id: I1d8e42ab6e53075a2c05d70d10a14a8e686fa566
2026-01-16 04:04:09 -08:00
Augustin Zidek
f6032f0f6a Add a flag to compress large output files using zstandard
Inspired by https://github.com/google-deepmind/alphafold3/pull/544 (thank you @ntnn19), but with some differences:
1. Uses zstandard instead of gzip for faster compression times and better compression ratios.
2. Compresses only large files.
3. Doesn't compress already compressed files (distogram and embeddings).
4. Doesn't write large temporary files, compresses directly.

PiperOrigin-RevId: 856630504
Change-Id: I4413e26c9d2e8e4592c372dc675dcfa6044fc257
2026-01-15 06:11:23 -08:00
Augustin Zidek
8d0a8db07e Make everything past model_runner mandatory kwarg in process_fold_input
PiperOrigin-RevId: 856615431
Change-Id: I1e2a126e96e16dd2660f6e9fec9d9ffa02eeb7b2
2026-01-15 05:15:31 -08:00
Augustin Zidek
3e2bc0ce35 Add JAAG to community tools documentation
Addresses:
* https://github.com/google-deepmind/alphafold3/pull/583
* https://github.com/google-deepmind/alphafold3/issues/537
PiperOrigin-RevId: 856584357
Change-Id: Ifdd92878a01f30512381302cc0945cb454e9db1d
2026-01-15 03:22:36 -08:00
Augustin Zidek
8d37fc1cb9 Modernize setup, switch to Python 3.12, and migrate to uv
PiperOrigin-RevId: 856564478
Change-Id: I31af1c170846fb787235dfc03b3a6da0464f51be
2026-01-15 02:14:05 -08:00
Augustin Zidek
2f40800a3a Force the legacy git backend to prevent build errors with new git versions
PiperOrigin-RevId: 856186746
Change-Id: I447a4a3ab65674da75a908816208a6fe377232ed
2026-01-14 06:31:52 -08:00
Augustin Zidek
d7ab550d1b Update CONTRIBUTING.md with a policy for AI-generated code
PiperOrigin-RevId: 855264083
Change-Id: I0c6b826c2edf3a0939d03407cf6e9ddaf8d383f6
2026-01-12 09:37:49 -08:00
Augustin Zidek
b78e215394 Update tokamax dependency to version 0.0.8
* This fixes an issue with immutabledict dependency missing in previous versions of Tokamax.
* JAX and Haiku have to be updated as well.

PiperOrigin-RevId: 854207701
Change-Id: I8c30856504f44e43e3a058e89b0866922ca56a5b
2026-01-09 08:39:58 -08:00
Augustin Zidek
a701815575 Upgrade GitHub Actions to the latest version (v6)
Thanks to salmanmkc@ who suggested this in https://github.com/google-deepmind/alphafold3/pull/571.

PiperOrigin-RevId: 854113440
Change-Id: Ib71810028c7492604978eb1c2f9e46d5f57486b5
2026-01-09 03:06:01 -08:00
Augustin Zidek
8eaae04e1d Add CONTRIBUTING.md
PiperOrigin-RevId: 854113365
Change-Id: I1a45e75f3138d848943e1442e1d0b1787f1f699f
2026-01-09 03:05:19 -08:00
Josh Abramson
3a09f049bf remove unused msa and template store code.
PiperOrigin-RevId: 839187236
Change-Id: I5144812d68e0525f3ea84f32a94d0f4ab89b43ec
2025-12-02 03:31:32 -08:00
Ryan Pachauri
389078218c Migrate AF3 to tokamax.gated_linear_unit and tokamax.dot_product_attention.
PiperOrigin-RevId: 838262306
Change-Id: I321a78b2a7d0d5cdeabe797c59b1e9c03e33780d
2025-11-29 19:03:26 -08:00
James Spencer
2e3703e82a fix support for sharded databases
PiperOrigin-RevId: 836803355
Change-Id: Icc263c4a1ca153da99a71a336e1150b351cc4d27
2025-11-25 14:01:34 -08:00
Akvile Zemgulyte
e850301268 Internal change
PiperOrigin-RevId: 833709597
Change-Id: Ib13795c7d9edb678f07b347c44edeb1319b5510f
2025-11-18 01:33:44 -08:00
Foromo Daniel Soromou
f3e86f27df Add safe_pickle module for secure loading of pickled data.
This module provides functions to load pickled data with enhanced security. It restricts unpickling to a small set of allowed builtin types. This mitigates risks associated with unpickling untrusted data while maintaining performance for AlphaFold 3's generated artifacts (which is 5x faster than json).

PiperOrigin-RevId: 827973163
Change-Id: I405ac3ebc0035df8bf6bf9c66b48e5894278b98f
2025-11-04 07:56:06 -08:00