Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Covalent reaction #108

Closed
xiangwenkai opened this issue Dec 17, 2024 · 4 comments
Closed

Covalent reaction #108

xiangwenkai opened this issue Dec 17, 2024 · 4 comments

Comments

@xiangwenkai
Copy link

xiangwenkai commented Dec 17, 2024

Thanks for your excellent work!
Covalent reactions occur with specific protein ligands, does boltz have a method to address this?
For instance, given protein 1AUR (https://www.rcsb.org/structure/1AUR), and ligand PMS:
PMS
The expected complex conformation should be:
1AUR-PMS
However, Boltz's prediction resulted in:
1AUR-PMS-boltz
Is there a way for me to incorporate covalent reaction details into the model to get better predictions?

@rcossio
Copy link

rcossio commented Dec 17, 2024

This is related to Issue #65 (about the ring aromaticity).
The extra oxigen could be removed with something similar to issue #94 in the PMS definition on the CCD library.

@benf549
Copy link

benf549 commented Dec 17, 2024

What input files/method are you using to get this output?

If you know where the ligand attaches covalently and are using the modification syntax in the .yaml, input this could be fixed by dropping leaving atoms as mentioned in #94. If you're using the smiles or CCD to input PMS as a ligand though this might be more difficult to handle.

It might be best to drop leaving atoms regardless of whether the ligand is being used as a modification or not but I believe right now they are not being considered at all... @gcorso any thoughts? I'm happy to make a PR which drops them unconditionally.

@xiangwenkai
Copy link
Author

The input yaml file is:

constraints:
- bond:
    atom1: [A, 114, OG]
    atom2: [H, 1, S]
sequences:
- protein:
    id: [A]
    sequence: MTEPLILQPAKPADACVIWLHGLGADRYDFMPVAEALQESLLTTRFVLPQAPTRPVTINGGYEMPSWYDIKAMSPARSISLEELEVSAKMVTDLIEAQKRTGIDASRIFLAGFSQGGAVVFHTAFINWQGPLGGVIALSTYAPTFGDELELSASQQRIPALCLHGQYDDVVQNAMGRSAFEHLKSRGVTVTWQEYPMGHEVLPQEIHDIGAWLAARLG
- ligand:
    ccd: PMS
    id: [H]

And the predict command is:
boltz predict 1AUR.yaml --use_msa_server

@benf549
Copy link

benf549 commented Dec 18, 2024

If you want a quick fix for the meantime, since you know where you want the ligand to go, you can try using this notebook (https://github.com/benf549/boltz-generalized-covalent-modification). You would just need a smiles string attaching the PMS ligand to the amino acid you're interested in and then clone the branch in #93 to get boltz to drop the extra 'OXT' atom from the backbone.

The most general solution to the leaving group problem might be to check if there is a bond constraint to an atom attached to a leaving group atom and only then remove that leaving group? Not sure what the authors did when training the model but I recall jwohlwend mentioning this headache in his neurips talk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants