Enforcing contacts on RNA
Hello,
Thanks for the amazing tool. I'm struggling to understand if RNA contacts can be enforced ? All examples are on protein contacts (if I'm not mistaken). I created the following yaml with a toy example:
version: 1
sequences:
- rna:
id: "rna"
sequence: "GGCAGUCUACACAGCUACAGUGUUGACGC"
contacts:
- molecules: ["rna"]
residue_contacts:
- residue1: ["rna", 5]
residue2: ["rna", 15]
max_distance: 4
force: true
and then ran boltz predict rna_input.yaml. But in the output, nt 5 and 15 are far away...
Can you please clarify is this functionality is supposed to work on RNA and if it is the case, what I did wrong ?
Thanks a lot in advance !
PS: I have tried using both the 2.0 version installed with pip and fresh install with pip install . on the cloned repo. Both resulted in a similar prediction.
Hi @Vincentx15, are you sure that Boltz didn't use a preprocessed config? Can you run the prediction in a fresh folder or make sure that you delete the preprocessed files?
Hi, I’d like to raise this issue again using a slightly different RNA sequence:
GCUUUUCGCACACAGCUACAGUGUUGAGC
ViennaRNA predicts multiple conformations for this sequence, for example:
((((...((((.........)))).)))) (−4.86 kcal/mol)
((((..(((...........)))..)))) (−4.49 kcal/mol)
((.....)).(.((((......)))).). (−2.91 kcal/mol)
((.....))...((((......))))... (−3.92 kcal/mol)
In the last two structures, there are clear contacts between nt 1–9 and nt 2–8. So in principle, it should be very easy for the model to adopt those conformations once those contacts are enforced.
However, the model still predicts nt 1 near the last nucleotide, even when both of these contacts are enforced. It looks as if RNA contact constraints are simply being ignored.
Thanks for your answer, I confirm that this behavior persists in a fresh folder. Can't you reproduce it ?
I can post a pip freeze output if you want to, but I think the bug most likely originates from a problem with argument parsing or handling rather than cuda versions...