Repository navigation
This release is about speed! The build is faster, the build_data script is faster, the MSA featurisation is 10x faster, and – most importantly – Jackhmmer search is ~2.5x faster and now nicely scales with --jackhmmer_n_cpu. On a machine with 24 cores, we saw >10x speedup of Jackhmmer runs! There is also a lot of small bug fixes, documentation improvements and better error messages – thanks to the community for reporting/suggesting many of these.
Change log
Full change log: v3.0.4...v3.0.5
New features
- You can now configure the number of CPUs that Hmmsearch uses using the
--hmmsearch_n_cpuflag. Thanks @Ayush7614. - Added a parallel
shard_databases.shhelper script. - Majority of AlphaFold 3 unit tests are now included in the repo and run in CI.
Performance improvements
- Added compilation buckets of size 128 and 384 to make running small proteins faster by default. Thanks @teerthsharma.
- Sped up MSA featurisation ~10x.
- The CCD is now stored using MessagePack instead of pickle, which makes build_data 5x faster.
- Sped up the build by about 1.5x (120 -> 85 s).
- Sped up the build_data script by about 10 s by using MessagePack instead of pickle to store the processed CCD.
- Made Jackhmmer ~2.5x faster + made it scale with the number of CPUs. On a test 24-core machine it runs >10x faster!
- Multiple Structure class performance improvements, mainly around filtering. Thanks @akviz!
Bug fixes
- Fix loading of a template with empty mapping written by AlphaFold prior to 3.0.4. Thanks @mooreneural.
- Don't leak resources when sharded Jackhmmer/Nhmmer errors out. Thanks @Ayush7614.
- Use the original RNA sequence (not the modified one) in
RnaChain.fill_missing_fields(). Thanks @Ayush7614. - Prevent mutation of the cached base CCD dictionary when applying user CCD. Thanks @cindykrafft.
- Avoid float32 overflow when ranking paired MSA rows. Thanks @shubhxho.
- Reject mixed-case and non-ASCII chain IDs at input validation. Thanks @harshitgavita-07.
- Preserve chain order stable across a to_json / from_json round trip. Thanks @cindykrafft.
- Fix chain_ids in the summary confidences JSON to be one entry per chain. Thanks @cindykrafft.
- Fix check that exactly one of
--json_pathor--input_diris set. Thanks @romainhedouin. - Improved input validation. Thanks @Nas01010101.
- The MSA hit order is preserved when pairing by species. Thanks @YMuskrat.
Documentation
- Better error when third party tools can't be find on PATH. Thanks @Ayush7614.
- More detailed documentation of the effect of the JAX compilation cache. Thanks @mooreneural.
- Better documentation for the Nhmmer Z-value. Thanks @cindykrafft.
- Document that linked ketoses keep their leaving atom. Thanks @shahriararab and @sridhar-3009.
We thank the following people for their pull requests and/or great suggestions: @akviz, @Ayush7614, @cindykrafft, @harshitgavita-07, @mooreneural, @Nas01010101, @shahriararab, @shubhxho, @sridhar-3009, @teerthsharma, @YMuskrat.