The system

It tells theophyllinefrom caffeine

A thirty-three base RNA that binds one methylxanthine ten thousand times more tightly than another differing by a single methyl group.

Thirty-three bases

Small enough to simulate comfortably, and well enough characterised to check a prediction against.

Extreme selectivity

Roughly ten-thousand-fold preference over caffeine, which differs by one methyl group.

It is a switch

Binding changes the fold, which is why aptamers turn up in biosensors and in engineered gene control.

Why it is hard

RNA is nota small protein

Structure prediction moved fast for proteins and much more slowly for RNA, for reasons that are structural rather than accidental.

Less training dataThe structural database is overwhelmingly protein. RNA complexes are a small and uneven fraction of it.
Ions are structuralMagnesium is not solvent here — it holds the fold together, and ignoring it gets the shape wrong.
It folds on bindingThe unbound aptamer is partly unstructured, so there is no fixed pocket for a docking search.
Predicting it

Boltz-1 takesboth chains at once

The interesting property of the newer co-folding models is that the ligand is part of the prediction rather than docked afterwards.

input.yaml
sequences:
  - rna:
      id: A
      sequence: GGCGAUACCAGCCGAAAGGCCCUUGGCAGCGUC
  - ligand:
      id: B
      smiles: "Cn1c(=O)c2[nH]cnc2n(C)c1=O"
One structure, two molecules

RNA and ligand predicted together, so the pocket forms around the ligand rather than being assumed.

Sequence plus SMILES

The input is a short YAML: the chain, and the small molecule as a SMILES string.

A GPU, for minutes

Inference is short. Preparing the input and checking the output take considerably longer than the run.

Classical docking assumes a rigid or nearly rigid receptor and searches ligand poses inside it. That is a poor assumption for an aptamer, which folds around its target — the binding-competent shape does not exist until the ligand is there. Co-folding sidesteps the assumption by predicting the complex as one object.

Then check it

A prediction is nota measurement

The model gives you a structure and a confidence score. Neither of those is evidence that the complex is stable.

ConfidenceFirstper residue, not one number
SimulateThenexplicit solvent, OL3, with ions
DriftWatch fora ligand that leaves was a guess

Read the per-residue confidence first and treat low-scoring regions as unresolved rather than disordered. Then run the complex in explicit solvent with an RNA force field — OL3 in the AMBER family — and watch whether the ligand stays where it was placed. A pose that drifts out of the pocket in the first few nanoseconds was a plausible-looking guess, and the simulation is how you find that out.

Both halves run here: the prediction on a GPU machine, the simulation on the same one, and PyMOL or ChimeraX to look at the result before you commit to anything.

On a machine

PyMOL isalready built

Nothing here needs compiling. Pick a machine, and these two commands put it on there.

hub://pymol

$ dxflow workflow create --identity pymol hub://pymol

$ dxflow workflow start pymol

Read it, then run itPrepaid and by the hour, on a machine that is yours about a minute after you ask.