Opened 4 months ago

Last modified 3 months ago

#18061 assigned enhancement

Allow ChimeraX to run Boltz-2 predictions on user's computer

Reported by: Tom Goddard Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Structure Prediction Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Boltz 2 released on June 6, 2025 and includes new features over Boltz 1 of interest to ChimeraX users. It does ligand binding affinity prediction. It also allows template structures. The templates can be specified for each chain. Supposedly the prediction can be forced to match the template to varying degrees. It can predict B-factors and has prediction modes based on MD and NMR ensembles.

Since the 2.0 release there have been 5 releases fixing bugs, the latest 2.1.1 on June 11.

There are several new bugs that will affect running Boltz 2 on Mac, Windows and Linux, and new patches to my ChimeraX Boltz fork will be needed to make Boltz 2 usable. And more user interfaces and command options will be needed to take advantage of new Boltz 2 features.

Change History (2)

comment:1 by Tom Goddard, 4 months ago

Here are some of the new issues with Boltz 2.

1) The trifast linux/nvidia library has been replaced with cuequivariance. May need to make sure this is not used on Mac/Windows when CUDA not available.

2) On Nvidia an Boltz issue (https://github.com/jwohlwend/boltz/issues/391) claims the use of cuequivariance degrades accuracy. Might need to disable use of cuequivariance with --no_kernels.

3) To add affinity prediction the yaml file must specify a single ligand by chain id. Will need to figure out how ChimeraX command and GUI should specify the ligand. Also if the same ligand has more than one copy in a structure then affinity cannot be predicted for any instance of that ligand. Seems odd that you cannot ask for affinity for any or all ligands.

4) The ability to specify will also need a way to associate the template with the protein chain. A Boltz issue says templates combined with affinity prediction is currently giving errors.

5) Boltz 2 is using "bf16-mixed" floating point in torch which makes the predictions much slower (e.g. 5 times slower) on non-Nvidia systems. Need to use 32-bit precision on non-cuda platforms.

6) Can't install Boltz on Mac if Apple command-line tools license has not been accepted because it uses git to access my ChimeraX Boltz fork. This affects both the current Boltz 1 in ChimeraX and Boltz 2. May be necessary for me to make a PyPi ChimeraX-Boltz so git is not needed.

7) Would be nice to allow modifying residues. This is supported in Boltz 1 and 2 but ChimeraX currently does not provide a way to specify modifications.

8) Boltz provides only on PAE value per modified residue, while AlphaFold 3 provides per-atom PAE. This makes ChimeraX PAE plot give errors opening a Boltz prediction PAE file with modified residues (#18035). This problem affects Boltz 1 and 2.

9) On Mac Boltz hangs after the prediction finishes apparently because the multiprocessing resource tracker thread does not exit (https://github.com/jwohlwend/boltz/issues/330).

10) The diffusion steering potentials flag --no_steering has been replaced by --use_steering and the default is not to use steering in Boltz 2 but defaulted to use it in Boltz 1.

11) Some simple code changes of torch 1-liners to eliminate temporary arrays may save GPU memory and allow bigger predictions as described in this github pull request (https://github.com/jwohlwend/boltz/pull/374).

comment:2 by Tom Goddard, 3 months ago

I switched to installing boltz 2, tested on Mac, Windows and Linux, GPU and CPU. It required an RBVI fork of boltz (branch name chimerax_boltz2) in order to not try to install cuequivariance CUDA dependencies and to avoid using bfloat16 except with CUDA.

I added an option to compute ligand binding affinity and report the predicted affinity and binding probability.

I haven't yet added these to the daily build. Needs more testing. I made a ChimeraX branch "boltz2" to assist testing on different computers (Mac, Windows, Linux).

Last edited 3 months ago by Tom Goddard (previous) (diff)
Note: See TracTickets for help on using tickets.