Animating Remdesivir and SARS-CoV-2 Polymerase with ChimeraX
May 15, 2020
Here is an explanation of how the following
animation was made that shows
how drug remdesivir is believed to block the SARS-CoV-2 RNA polymerase.
With thorough knowledge of ChimeraX it took about 4 hours to make the movie.
I used cryoEM structure PDB
of the SARS-CoV-2 RNA polymerase with remdesivir bound.
Drug mechanism article.
This article says that remdesivir is incorporated into the
RNA as an adenine analog and then 3 more bases are added before a clash
with serine 861 of the polymerase blocks further transcription.
See Figure 5.
Remdesivir is a direct-acting antiviral that inhibits RNA-dependent RNA polymerase from
severe acute respiratory syndrome coronavirus 2 with high potency.
Gordon CJ, Tchesnokov EP, Woolner E, Perry JK, Feng JY, Porter DP, Götte M. J Biol Chem. 2020 May 15;295(20):6785-6797. doi: 10.1074/jbc.RA120.013679. Epub 2020 Apr 13.
There are no experimental structures of the polymerase with remdesivir with 1, 2, or 3
additional bases added to the copied RNA so we have to make models of those states from the
one available structure. The strategy is to shift the template and copy RNA strands
preserving the backbone and sugar conformation and aligning each nucleic acid base to
the next base. We will add 3 more bases that follow the remdesivir in the copy strand.
Extend RNA strands.
The template strand beyond the remdesivir position has two U bases, so I want to add
two A bases to the copy strand that will pair with those. I open a copy of
7bv2 and just cut out a segment of bases with AA from the original structure.
To do this delete all atoms except chain P ("delete #2 & ~/P"),
show the sequence of chain P (link in log panel), selected AAGUUAU on sequence
and delete everything else ("delete #2 & ~sel"). I cut out 7 bases when all I really
need is 3 in case I later want to show remdesivir passing the obstruction. I do
the same procedure loading another 7bv2 copy and extract AUAAC from the template
strand T that I will use to extend the template strand. I use the move selected
model mouse mode to position these two extra RNA segments at the ends of the
existing P and T chains. The extended P strand will clash with the polymerase
but in the movie those nucleotides will be hidden until each reaches the active site.
Extended RNA model.
I want to join the two extra RNA segments by bonds to the template and copy strands
and I want them to be part of
the same model as the original polymerase structure. This is done with the Chimera
"combine" command. I also need to renumber the extra segment residues so they don't
conflict with the original structure using the "resrenumber" command. Those two
commands are in Chimera but not yet in ChimeraX. So I write out my two extra segments
as PDB files, load 7bv2 and the two segments in Chimera, renumber the residues,
combine into one model and write out a PDB file, that I load back into ChimeraX.
Connect RNA segments.
In ChimeraX I add a bond to connect the RNA copy strand to its extra segment by
selecting the phosphor and oxygen atoms and using the "bond" command, and I do
the same for the template strand and its extension.
Change remdesivir atom names.
My method for sliding the RNA by one base relies on the backbone and sugar atoms
of remdesivir matching the names used for standard RNA nucleotides. The remdesivir
uses all different atom names, so I change them with the setattr commands
Shift the RNA.
To shift the template and copy RNA strands keeping sugar and backbone atoms in
the same position as the experimental structure and aligning each nucleic acid
base to the next in the sequence I wrote a Python script
rnashift.py. Opening this Python in ChimeraX defines
the "shiftrna" command. I save a copy of the extended RNA polymerase model
as poly1.pdb, then use command
"shift /T offset -1 ; shift /P offset 1" and save poly0.pdb
which is shifting backwards allowing the movie to show a state before the remdesivir
gets added. Then reopen poly1.pdb and shift forward "shift /T offset 1 ; shift /P offset -1"
four times saving poly2.pdb, poly3.pdb,
The movie could just jump shifting the nucleotides one step at a time abruptly.
But I thought a smooth motion would be nicer, so command "morph #1-6" to morph
from poly0.pdb through poly5.pdb where the clash happens.
Show surface, set colors, ....
Set the display style and colors for the movie. I showed surfaces, set surface colors,
set RNA colors, colored remdesivir to standout, showed remdesivir as ball and stick
and other nucleotides with slab style, set camera field of view to 60 degrees, set
high quality shadows, white background, silhouette edges, color serine 861 surface
There is no good view direction that shows the active site where the remdesivir is
added and the clash site where the remdesivir hits serine 861. I tried clip planes to
reveal both in one view but did not like it. So I decided to change the camera view
during the movie. I set the starting view to show the whole polymerase and active
site and saved that view point with command "view name start". Then I chose a view
of the serine 861 clash and named it "view name clash". Now save this ChimeraX
session remdesivir.cxs so I can later remake the movie.
To record the movie I made a command script
that advances the morph one nucleotide at a time pausing a second between each
and moving from the start view to the clash view near the end. I tested these
commands interactively before I put them in the script. To make the movie
I open the session remdesivir.cxs created in
the previous steps, then open the movie script to animate and record.