Jmol/Cavities pockets and tunnels: Difference between revisions

Eric Martz (talk | contribs)
No edit summary
Eric Martz (talk | contribs)
No edit summary
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
<font color="red">'''CAUTION: This page is under construction and is not ready for use. When this page is adequately completed, this notice will be removed. [[User:Eric Martz|Eric Martz]] 01:02, 1 January 2021 (UTC)'''</font>
<StructureSection load='' size='350' side='right' caption='' scene='85/858407/6zgi-m1000-cav-sd-set2/1'>
 
<StructureSection load='' size='350' side='right' caption='' scene=''>
Jmol can find and display cavities, pockets, and tunnels as isosurfaces. This page explains how to do that, and how to show the results in Proteopedia. An alternative method for finding and displaying cavities is [[PACUPP]]. Several other methods are summarized at [[Cavity programs]].
Jmol can find and display cavities, pockets, and tunnels as isosurfaces. This page explains how to do that, and how to show the results in Proteopedia. An alternative method for finding and displaying cavities is [[PACUPP]]. Several other methods are summarized at [[Cavity programs]].


Line 30: Line 28:
Since we are not interested in the tiny ones, we can hide them by specifying a value for ''minset''. Cavities rendered with fewer than the number of triangles specified for minset will not be shown. By trial and error, a good minset number is 1000, making the Jmol command:
Since we are not interested in the tiny ones, we can hide them by specifying a value for ''minset''. Cavities rendered with fewer than the number of triangles specified for minset will not be shown. By trial and error, a good minset number is 1000, making the Jmol command:


:<tt>isosurface minset 1000 cavity</tt> Image:6zgi-m1000-cav.pngj
:<tt><scene name='85/858407/6zgi-m1000-c/2'>isosurface minset 1000 cavity</scene></tt><!--6zgi-m1000-cav.pngj-->
Legend: Spike protein [[6zgi]]: isosurface minset 1000 cavity.


Now only the largest two cavities are shown. The larger one is a convoluted tunnel with many mouths, volume 60,197 Å<sup>3</sup>. The smaller one is the membrane-proximal cavity of interest, volume 7,591 Å<sup>3</sup>.
Now only the largest two cavities are shown. The larger one is a convoluted tunnel with many mouths, volume 60,197 Å<sup>3</sup>. The smaller one is the membrane-proximal cavity of interest, volume 7,591 Å<sup>3</sup>.
Line 39: Line 36:
The command to display only the smaller cavity is:
The command to display only the smaller cavity is:


:<tt>isosurface set 2</tt> Image:6zgi-m1000-cav-set2.pngj
:<tt><scene name='85/858407/6zgi-m1000-c-set2/2'>isosurface set 2</scene></tt><!--6zgi-m1000-cav-set2.pngj-->
Legend: Spike protein [[6zgi]] showing the membrane-proximal cavity with probe radius 1.2 Å.


===Coloring By Depth===
===Coloring By Depth===
Line 46: Line 42:
It is revealing to color this cavity by distance from the surface with this command:
It is revealing to color this cavity by distance from the surface with this command:


:<tt>isosurface map property surfacedistance</tt> Image:6zgi-m1000-cav-set2-sd.pngj
:<tt><scene name='85/858407/6zgi-m1000-cav-sd-set2/1'>isosurface map property surfacedistance</scene></tt><ref>This command works only if a previous <tt>isosurface ... cavity</tt> command has been run in the same session. It will not work if the surface is loaded from a JVXL file alone, because then the surface has not been defined.</ref> <!--6zgi-m1000-cav-sd-set2.pngj-->
 
Legend: Spike protein [[6zgi]] showing the membrane-proximal cavity: <span class="text-red"><b>At Surface</b></span>, <span class="bg-lightgreen">Deeper</span>.
 
GREEN LINK Close examination
6zgi-m1000-cav-set2-sd-detail.pngj
Ditto legend + mouths closed.


shows that the red parts, which are at or near the protein surface, are mostly closed. The "cavity" command, without modifiers, generates closed isosurfaces.
<scene name='85/858407/6zgi-m1000-cav-sd-set2-detail/2'>Close examination</scene><ref>The command for ''close examination'' is based on finding that Asn1107 is close to the deep chamber of the membrane-proximal cavity. The command is <tt>zoomto {1107} 266</tt>. This centers the deep part of the cavity and zooms to 266%.</ref> shows that the red parts, which are at or near the protein surface, are mostly '''closed'''. The "cavity" command, without modifiers, generates closed isosurfaces. <!--Image:6zgi-m1000-cav-sd-set2-detail.pngj-->


===Pockets vs. Interior Cavities===
===Pockets vs. Interior Cavities===
Line 62: Line 52:
Here is the command to show our cavity-of-interest's entrances from the protein surface as '''open''':
Here is the command to show our cavity-of-interest's entrances from the protein surface as '''open''':


:<tt>isosurface minset 1000 '''pockets''' cavity</tt> Image:6zgi-m100-pcav-set2-sd-detail.pngj
:<tt><scene name='85/858407/6zgi-m100-pcav-sd-set2-detail/1'>isosurface minset 100 pocket cavity</scene></tt><!--6zgi-m100-pcav-sd-set2-detail-->
 
Legend: Spike protein [[6zgi]] showing the membrane-proximal cavity <i>with entrances open</i>: <span class="text-red"><b>At Surface</b></span>, <span class="bg-lightgreen">Deeper</span>.


[[SARS-CoV-2 spike protein priming by furin|Spike protein is a homotrimer]]. <span class="bg-lightgreen">The membrane-proximal cavity</span> has <span class="bg-yellow">three narrow tunnels</span>, between protein chains, to wider pockets <span class="text-red">'''opening to the protein surface'''</span>.
[[SARS-CoV-2 spike protein priming by furin|Spike protein is a homotrimer]]. <span class="bg-lightgreen">The membrane-proximal cavity</span> has <span class="bg-yellow">three narrow tunnels</span>, between protein chains, to wider pockets <span class="text-red">'''opening to the protein surface'''</span>.


===Cavity Volumes: Closed Only===
===Cavity Volumes: Closed and Small Only===
 
====Volumes for Closed Cavities Only====
Jmol is not able to calculate a meaningful volume for a pocket rendered with open entrances. Volumes reported by Jmol for its closed rendering of the membrane-proximal cavity of the spike protein [[6zgi]] are in rough agreement with those independently determined by [[PACUPP]] -- best at cavity probe radii of 1.5 or 2.0 Å.
Jmol is not able to calculate a meaningful volume for a pocket rendered with open entrances. Volumes reported by Jmol for its closed rendering of the membrane-proximal cavity of the spike protein [[6zgi]] are in rough agreement with those independently determined by [[PACUPP]] -- best at cavity probe radii of 1.5 or 2.0 Å.


Line 94: Line 82:
|3,250<ref>Sum of volumes of 2 clusters of pseudoatoms. One quarter of the cavity failed to be detected with a cavity probe radius of 2.5 Å.</ref><br>(1,000<ref>[[PACUPP]] in offset mode fails to find 3/4 of the cavity with a cavity probe radius of 2.5 Å.</ref>)
|3,250<ref>Sum of volumes of 2 clusters of pseudoatoms. One quarter of the cavity failed to be detected with a cavity probe radius of 2.5 Å.</ref><br>(1,000<ref>[[PACUPP]] in offset mode fails to find 3/4 of the cavity with a cavity probe radius of 2.5 Å.</ref>)
|}
|}
====Volumes for Small Cavities Only====
[[#Large Cavity Example|Below is explained]] why Jmol cannot render isosurfaces representing large cavities. Therefore it cannot estimate volumes of such cavities. The example below, [[1wp1]], is described as having a cavity volume of 25,000 Å<sup>3</sup> by its authors<ref name="1wp1" />. [[PACUPP]] estimates the volume as 30,000 Å<sup>3</sup> (pseudoatom spacing 4.0 Å, "moderate" cavity detail), or 25,000 Å<sup>3</sup> (pseudoatom spacing 5.0 Å, "coarse" cavity detail).


===Increasing the Cavity Probe Radius===
===Increasing the Cavity Probe Radius===
Line 99: Line 90:
As the cavity probe radius increases, cavities are displayed with less detail. Also, cavities or tunnel connections between cavities that are smaller than the probe may fail to be detected. Recall that the deeper chamber of our membrane-proximal cavity of interest is connected to three entrance pockets by narrow tunnels. As the cavity probe radius increases, those narrow tunnels are no longer detected. At 2.0 Å, two of the entrances are no longer connected to the deeper chamber. At 2.5 Å, none are connected. The cavity probe radius in Å can be added to the end of Jmol's isosurface command like this:
As the cavity probe radius increases, cavities are displayed with less detail. Also, cavities or tunnel connections between cavities that are smaller than the probe may fail to be detected. Recall that the deeper chamber of our membrane-proximal cavity of interest is connected to three entrance pockets by narrow tunnels. As the cavity probe radius increases, those narrow tunnels are no longer detected. At 2.0 Å, two of the entrances are no longer connected to the deeper chamber. At 2.5 Å, none are connected. The cavity probe radius in Å can be added to the end of Jmol's isosurface command like this:


:<tt>isosurface minset 30 cavity '''2.5'''</tt> Image:6zgi-m30-cav2.5-sets6.9.10.12-sd-detail.pngj
:<tt><scene name='85/858407/6zgi-pocbur_2point5/1'>isosurface minset 30 cavity 2.5</scene></tt><!--6zgi-pocbur2.5 (minset 30)-->


Legend: Spike protein [[6zgi]] membrane-proximal cavity as 4 disconnected pieces resulting from a cavity probe radius of 2.5 Å. <span class="text-red"><b>At Surface</b></span>, <span class="bg-lightgreen">Deeper</span>.
Because the deeper chamber has no entrances from the surface, it will not be shown when the entrance pockets are rendered open with the ''pockets'' modifier. Those open pockets must be combined with a separate isosurface calculation for the ''interior'' chamber. [[#Working Example Scripts|The scripts for doing this are below]].


Because the deeper chamber has no entrances from the surface, it will not be shown when the entrance pockets are rendered open with the ''pockets'' modifier. Those open pockets must be combined with a separate isosurface calculation for the ''interior'' chamber.
==Ligands Inside Cavity==


xxxxxxxxxxxxxxxxxxxx
Bacterial glycosidase (alpha-N-acetylgalactosaminidase) [[2ixb]] has a tunnel containing NAD that includes, at one entrance, a pocket where substrate can access the catalytic site. The tunnel contains both NAD and a substrate molecule. The following commands show the translucent tunnel with its contents rendered as sticks.
:<tt><scene name='85/858407/2ixb/1'>isosurface minset 100 select {protein} only pocket cavity property surfacedistance; isosurface set 2</scene></tt><!--2ixb-m100-poccav-sd-set1-xlu2.pngj-->
*<tt>select {protein} only</tt> means that ligands and solvent are ignored during isosurface creation.
*<tt>property surfacedistance</tt> colors the surface by depth as part of the isosurface creation.
<!--==Large Cavity Example==
<scene name='85/858407/3hyc/2'>''E. coli'' phosphatase KdsC is an 8-chain homo-octamer</scene>. An X-ray structure, [[3hyc]], reveals a large central cavity, approximately 35 Å in diameter. This cavity connects to the protein surface with four "mouth" openings, each about 10-12 Å in diameter. These openings are  in a plane, 90° apart. Here, you can <scene name='85/858407/3hyc/3'>see through one pair of opposite openings</scene>.-->


==Large Cavity Example==
Jmol is unable to produce isosurfaces representing cavities whose interior diameters exceed the '''maximum diameter of Jmol's envelope probe, 20 Å'''. As an example, consider OprM of ''Pseudomonas aeruginosa''. This bottle-shaped integral membrane protein is believed to function as the drug discharge duct across the outer membrane<ref name="1wp1">PMID: 15507433</ref>. The [[biological assembly]] of [[1wp1]] has a pocket with a single mouth, about 110 Å deep. The inside diameter of this pocket varies from a bit less than 20 Å to about 27 Å. Jmol can, of course, make an isosurface over the entire "bottle", inside and out (command: <tt>isosurface minset 1000 solvent 2.0</tt>), shown here in cross section with the protein in sticks (wireframe):


[[Image:1wp1-solvent-surface-slab.png|300px]]


Jmol is able to represent the narrow ends of this cavity, but not the larger middle:
:<tt><scene name='85/858407/1wp1_m400_cav_3point0/1'>isosurface minset 400 select {protein} only cavity 3.0 property surfacedistance</scene></tt><!--1wp1-m400-proteinonly-cav3.0.pngj-->


 
Since Jmol does not allow an envelope probe diameter exceeding 20 Å, this is the best it can do for this large cavity. [[PACUPP]] renders the cavity similarly <scene name='85/858407/1wp1_pacupp_ep_20/1'>using the same envelope probe diameter of 20 Å</scene> (pseudoatom separation 3.5 Å). Unlike Jmol, however, PACUPP allows envelope probe diameters up to 60 Å.
 
An increase of PACUPP's envelope probe diameter to <scene name='85/858407/1wp1_pacupp_ep_24_v2/1'>24 Å is sufficient to fill the cavity solidly with pseudoatoms</scene> (pseudoatom separation 3.5 Å).
==Large Cavity Example==
 
<scene name='85/858407/3hyc/2'>''E. coli'' phosphatase KdsC is an 8-chain homo-octamer</scene>. An X-ray structure, [[3hyc]], reveals a large central cavity, approximately 35 Å in diameter. This cavity connects to the protein surface with four "mouth" openings, each about 10-12 Å in diameter. These openings are  in a plane, 90° apart. Here, you can <scene name='85/858407/3hyc/3'>see through one pair of opposite openings</scene>.  


</StructureSection>
</StructureSection>


==Preparing Isosurface Scenes for Proteopedia==
==Preparing Isosurface Scenes for Proteopedia==
<font color="red">'''This section is under construction and awaits major revisions. It is not ready for use.</font>


===Speed of Rendering===
===Speed of Rendering===
Line 141: Line 137:
*You want to show both closed interior cavities and open-mouthed surface pockets.
*You want to show both closed interior cavities and open-mouthed surface pockets.
*You want to show multiple pieces of a single isosurface.
*You want to show multiple pieces of a single isosurface.
At present, Jmol can show only one piece of an isosurface. For example, above are shown three pocket entrances to the interior chamber of the spike protein cavity. Each pocket is displayed with an <tt>isosurface set <integer></tt> command. But only one can be shown at a time. To display all 3, the JVXL file (see below) must be loaded 3 times, giving each a different ID, and then one pocket displayed from each. To also display the interior closed chamber, a 4th isosurface must be loaded. Below are scripts illustrating this.
At present, Jmol can show only one piece of an isosurface. For example, [[#Increasing the Cavity Probe Radius|above are shown three pocket entrances]] to the interior chamber of the spike protein cavity. Each pocket is displayed with an <tt>isosurface set <integer></tt> command. But only one can be shown at a time. To display all 3, the JVXL file (see below) must be loaded 3 times, giving each a different ID, and then one pocket displayed from each. To also display the interior closed chamber, a 4th isosurface must be loaded. Below are scripts illustrating this.


===Preparing PNGJ Files With Cached Isosurfaces===
===Preparing PNGJ Files With Cached Isosurfaces===
Line 187: Line 183:


===Working Example Scripts===
===Working Example Scripts===
[[Image:6zgi-pocbur2.5.png|250px|right]]
The following script generates a pocket isosurface (open mouths) and an interior isosurface (closed pieces) for the spike protein, and saves each isosurface as a jvxl file. You can run this script: copy it and save it as a [[Help:Plain text editors|plain text file]] with a filename ending '''.spt'''. Drop the script file into the molecular display window of Jmol. Execution may take several minutes.
The following script generates a pocket isosurface (open mouths) and an interior isosurface (closed pieces) for the spike protein, and saves each isosurface as a jvxl file. You can run this script: copy it and save it as a [[Help:Plain text editors|plain text file]] with a filename ending '''.spt'''. Drop the script file into the molecular display window of Jmol. Execution may take several minutes.


====Write JVXL Files====
<pre>
<pre>
x
# In the Jmol Java application,
x
# This script took 2 min 25 sec on a mid-2014 MacBook Pro.
x
# It would likely take ~20 min in JSmol.
zap # Deletes any molecule and all isosurfaces present in Jmol.
print # Clears the Jmol Script Console.
 
load =6zgi # Fetches PDB file from the RCSB Protein Data Bank.
 
# RENDER MOLECULE. Unnecessary but takes no time and looks nice while executing.
background white
rotate x -90
restrict protein # Selects protein and hides non-protein, e.g. glycosylation.
backbone only
backbone 0.7
color chain
set translucent false # Shows only the front-most surface of translucent objects.
color translucent 5 # Chain-colored backbones are now translucent.
refresh # Unnecessary, but shows the molecule.
 
# MAKE POCKETS
isosurface minset 50 pocket cavity 2.5 # Cavity probe radius 2.5 Å.
refresh
isosurface map property surfacedistance # Color pockets by depth.
refresh
write "poc.jvxl"
 
isosurface delete
 
# MAKE INTERIOR CAVITY NOT DISPLAYED IN THE POCKETS ISOSURFACE.
isosurface minset 100 interior cavity 2.5
refresh
isosurface map property surfacedistance
refresh
write "bur.jvxl" # Buried.
</pre>
 
====Write Cached PNGJ File====
<pre>
# Execution of this script took 4 seconds on a mid-2014 MacBook Pro.
 
zap # Deletes any molecule and all isosurfaces present in Jmol.
print # Clears the Jmol Script Console.
 
load =6zgi # Fetches PDB file from the RCSB Protein Data Bank.
 
# RENDER MOLECULE
background white
rotate x -90
restrict protein # Selects protein and hides non-protein, e.g. glycosylation.
backbone only
backbone 0.7
color chain
set translucent false # Shows only the front-most surface of translucent objects.
color translucent 5 # Chain-colored backbones are now translucent.
refresh # Unnecessary, but shows the molecule.
 
# DISPLAY OPEN POCKETS. Can display only one piece (set) per isosurface.
# To display three pieces (sets), create 3 (identical) isosurfaces.
# Set numbers determined by trial and error.
isosurface poc1 poc.jvxl
isosurface poc1 set 8
 
isosurface poc2 poc.jvxl
isosurface poc2 set 9
 
isosurface poc3 poc.jvxl
isosurface poc3 set 11
 
# CLOSED DEEPER CHAMBER.
isosurface bur bur.jvxl
isosurface bur set 1 # Unnecessary because set 1 is the only one passing minset 100.
 
delay 1.0 # shows the molecule with isosurfaces for 1 second.
 
# Arg1107 surrounds the deeper chamber.
# This centers that region, and zooms to 266%.
zoomto {arg1107} 266
 
isosurface cache # Without this, JSmol will fail trying to read the jvxl files absent in Proteopedia.
write "6zgi-pocbur2.5.pngj" # Ready to upload to Proteopedia.
</pre>
</pre>


Proteopedia Page Contributors and Editors (what is this?)Proteopedia Page Contributors and Editors (what is this?)

Eric Martz