Jmol/Cavities pockets and tunnels

From Proteopedia

(Difference between revisions)
Jump to: navigation, search
Current revision (17:54, 3 January 2021) (edit) (undo)
 
(135 intermediate revisions not shown.)
Line 1: Line 1:
-
<font color="red">CAUTION: cavity counts and volumes, and scenes of cavities, are provisional. Some inconsistencies noted below in ''italics'' suggest that Jmol may have some "isosurface interior cavity" bugs. These are being investigated. Once they are resolved, this notice will be removed. [[User:Eric Martz]], August 13, 2020.</font>
+
<StructureSection load='' size='350' side='right' caption='' scene='85/858407/6zgi-m1000-cav-sd-set2/1'>
 +
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]].
-
<StructureSection load='' size='350' side='right' caption='' scene=''>
+
==Terminology==
-
Jmol can find and display cavities, pockets, and tunnels as isosurfaces.
+
For definitions of the terms '''cavity, pocket, tunnel, channel''' and '''void''' please see [[Cavity programs]].
-
====Definitions====
+
==How To Show Cavities In Proteopedia==
-
*'''Cavities''' are open spaces within a macromolecule, large enough to contain a water molecule, or much larger. The term "cavity" is sometimes used to include pockets and tunnels, but in a stricter usage, it means a space with no openings ("mouths") to the outside surface of the molecule.
+
Below are shown Jmol commands to identify and display cavities as isosurfaces, with their results. Using these commands, and displaying the results in Proeopedia, require several extra steps outside of Proteopedia's usual [[SAT|Scene Authoring Tools]] (SAT). In brief, cavity isosurfaces should be generated in the [[Jmol/Application|stand-alone Jmol application]] and captured "cached" in a PNGJ file, which is then uploaded to Proteopedia for use in the SAT. Instructions are at the end of this page under [[#Preparing Isosurface Scenes for Proteopedia|Preparing Isosurface Scenes for Proteopedia]]. You may also wish to consider an alternative method which represents cavities with pseudoatoms, [[PACUPP]].
-
*'''Pockets''' are depressions (concavities) in the surface, or open spaces within the molecule having a single connection ("mouth") to the outside surface of the molecule.
+
-
*'''Tunnels''' are open spaces within the molecule that have two or more connections ("mouths") to the outside surface of the molecule.
+
-
====Speed of Rendering====
+
==Two Probes==
-
If you use the isosurface commands below, do so in the [[Jmol/Application|Jmol Java application]], not in JSmol in Proteopedia. Depending on the size of the molecule, cavity isosurface commands take about a minute to complete in the Java application, which is many times faster than JSmol. You would have to wait many minutes for completion in JSmol.
+
Jmol uses two "rolling" spherical probes to identify cavities.
 +
*The smaller ''cavity probe'' detects the cavities. Its default radius is 1.2 Å. For comparison, the [[Van der Waals radii|van der Waals radius]] of a carbon atom is 1.7 Å<ref name="bondi">Bondi, A., ''J. Phys. Chem.'' '''68''':441, 1964.</ref>. The effective radius of a water molecule is generally taken to be 1.4 Å<ref name="waterradius">[https://bionumbers.hms.harvard.edu/bionumber.aspx?id=103723 Diameter of water molecule] at B10NUMB3R5, a collaboration between Harvard Medical School and the Weizmann Institute of Science. See also [https://bionumbers.hms.harvard.edu/bionumber.aspx?id=105873 Distance between water molecules in bulk water].</ref>; a sphere of that radius has a volume of 11.5 Å<sup>3</sup>. However, the volume actually occupied per water molecule in macromolecular environments is ~25 Å<sup>3</sup><ref name="watervol">[https://bionumbers.hms.harvard.edu/bionumber.aspx?id=103763&ver=7 Volume of water molecule bound to an amino acid] at B10NUMB3R5, a collaboration between Harvard Medical School and the Weizmann Institute of Science.</ref>, slightly larger than the 22 Å<sup>3</sup> volume of a cube of diameter 2.8 Å.
 +
*The larger ''envelope probe'' defines the outer boundary of the macromolecule. By definition, cavities may not extend beyond this envelope boundary. By default, the envelope probe radius is 10.0 Å. The envelope is a smoothed macromolecular surface. Wherever the cavity probe fits between the envelope and the atoms of the macromolecule, a '''pocket''' is defined.
-
====Saving Pre-Calculated Isosurfaces====
+
==Small Cavity Example==
-
In order to speed up the green links below, the isosurfaces were pre-calculated in the Jmol Java application and then saved into .jvxl (Jmol voxel) files (and uploaded to Proteopedia). These can be quickly loaded without re-computing the isosurfaces. After a cavity isosurface command has completed, the calculated surfaces can be saved with the Jmol command
+
-
<tt>'''write filename.jvxl'''</tt>
+
The coronavirus (SARS-CoV-2 and others) spike protein has a small, membrane proximal cavity
 +
(<scene name='85/858407/6zgi_PNGJ_cavs_try2/1'>restore initial scene</scene>). It is a [[SARS-CoV-2_spike_protein_fusion_transformation#Preventing_Fusion_with_Drugs|potential drug target]].
-
Later, you can load the saved isosurfaces without re-calculating them using the command
+
The simplest Jmol cavity command is
 +
:<tt><scene name='85/858407/4/1'>isosurface cavity</scene></tt>
-
<tt>'''isosurface filename.jvxl'''</tt>
+
This produces pockets, tunnels, and cavities of all sizes. There are 426 separate surfaces. The largest is a convoluted tunnel with many mouths, volume 60,197 Å<sup>3</sup>.
 +
Many are very tiny.
-
====Generating Cavity Isosurfaces====
+
===Hiding Tiny Cavities: minset===
-
The Jmol commands for generating cavity isosurfaces will be found in the [https://chemapps.stolaf.edu/jmol/docs/#isosurfacesurfaceobject--molecular/solventsurfaces Jmol/JSmol Interacive Scripting Documention] under ''isosurfaces: molecular/solvent surfaces''. Near the bottom of that very long section, important commands for after the cavity isosurfaces are calculated:
+
-
*''isosurface area set (integer)'' reports the surface area of one isosurface in Å<sup>2</sup>.
+
-
*''isosurface delete'' to clear existing isosurfaces before a new calculation.
+
-
*''isosurface set (integer)'' displays just one of the isosurfaces.
+
-
*''isosurface set 0'' displays all of the isosurfaces.
+
-
*''isosurface volume set (integer)'' reports the volume of one isosurface in Å<sup>3</sup>.
+
-
==Small Cavities Example==
+
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:
-
The coronavirus (SARS-CoV-2 and others) spike protein, in its closed conformation, has
+
-
<jmol>
+
-
<jmolLink>
+
-
<script>
+
-
load "http://proteopedia.org/wiki/images/c/c6/6zgi-cavities.pngj";
+
-
</script>
+
-
<text>two small cavities</text>
+
-
</jmolLink>
+
-
</jmol>. The smaller one is a potential drug target: [[SARS-CoV-2_spike_protein_fusion_transformation#Preventing_Fusion_with_Drugs|here is an explanation]]. These cavities were rendered with the Jmol command
+
-
:<tt>isosurface minset 100 interior cavity 3.0 10.0</tt>
+
-
The volumes of these cavities are 5,564 and 1,606 Å<sup>3</sup>.
+
-
Below we will show the importance of each part of this command.
+
:<tt><scene name='85/858407/6zgi-m1000-c/2'>isosurface minset 1000 cavity</scene></tt><!--6zgi-m1000-cav.pngj-->
-
The simplest command is
+
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>.
-
:<tt>isosurface cavity</tt> <jmol>
+
 
-
<jmolButton>
+
===Isolating One Cavity===
-
<script>
+
 
-
isosurface delete;isosurface "http://proteopedia.org/wiki/images/7/77/6zgi-cav-1.jvxl";
+
The command to display only the smaller cavity is:
-
</script>
+
 
-
<text>Show Result</text>
+
:<tt><scene name='85/858407/6zgi-m1000-c-set2/2'>isosurface set 2</scene></tt><!--6zgi-m1000-cav-set2.pngj-->
-
</jmolButton>
+
 
-
</jmol> <font color="magenta">The green link at the top of this section must be clicked before any of the ''Show Result'' buttons in this section will work.</font>
+
===Coloring By Depth===
-
This produces pockets, tunnels, and cavities of all sizes. There are 426 separate surfaces. The largest is a convoluted tunnel with many mouths, volume 60,197 Å<sup>3</sup>.
+
 
 +
It is revealing to color this cavity by distance from the surface with this command:
 +
 
 +
:<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-->
 +
 
 +
<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===
 +
 
 +
To show the entrances or mouths of a cavity as open, the modifier ''pockets'' is needed. This modifier also hides cavities that lack openings to the macromolecular surface at the cavity probe radius employed.
 +
:In contrast, the modifier ''interior'' shows only cavities with no openings to the surface at the cavity probe radius employed. In our example, using the default cavity probe radius 1.2 Å, there are no interior cavities.
 +
Here is the command to show our cavity-of-interest's entrances from the protein surface as '''open''':
 +
 
 +
:<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-->
 +
 
 +
[[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 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 Å.
 +
 
 +
{| class="wikitable" style="text-align:center;"
 +
|-
 +
| Cavity Probe<br>Radius, Å
 +
| Jmol<br>Volume, Å<sup>3</sup>
 +
| [[PACUPP]]<br>Volume, Å<sup>3</sup><br>(offset)
 +
|-
 +
|1.2
 +
|7,591
 +
|11,156<ref name="disconnect">Cavity of interest was manually disconnected from the largest cavity.</ref><br>(10,617<ref name="disconnect" />)
 +
|-
 +
|1.5
 +
|6,993
 +
|7,911<br>(7,479)
 +
|-
 +
|2.0
 +
|5,006<ref>Sum of volumes of cavity sets 5 and 11.</ref>
 +
|4,992<br>(4,608<ref>Sum of volumes of 2 clusters of pseudoatoms.</ref>)
 +
|-
 +
|2.5
 +
|4,109<ref>Sum of volumes of cavity sets 6, 9, 10, and 12.</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===
-
====Cavity Probe Radius 1.2 Å====
+
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:
-
First, we will limit the result to '''interior''' cavities (excluding tunnels and pockets):
+
-
:<tt>isosurface interior cavity</tt> <jmol>
+
-
<jmolButton>
+
-
<script>
+
-
isosurface delete;isosurface "http://proteopedia.org/wiki/images/3/3d/6zgi-cav-2.jvxl";
+
-
</script>
+
-
<text>Show Result</text>
+
-
</jmolButton>
+
-
</jmol>
+
-
This generates 212 cavities, ranging in volume from 353 down to 1.9 Å<sup>3</sup>. Comparing this with the initial 2-cavity result (green link above), note that '''neither of the cavities of interest is here.''' The largest cavity here is much smaller than the smaller cavity in the initial result. By trial and error, this appears to be because the cavity probe size is too small. The default probe radius is 1.2Å. The distinction between interior cavities and pockets/tunnels is whether the space intersects with an envelope of the molecule. Such an intersection represents a mouth. The default probe radius for the envelope is 10 Å. Quoting from the [https://chemapps.stolaf.edu/jmol/docs/#isosurface Jmol documentation], "Smaller numbers for the cavity radius lead to more detailed cavities; smaller numbers for the envelope radius lead to cavities that are more internal and extend less toward the outer edge of the molecule." ''A minimum volume of 1.9 Å<sup>3</sup> is puzzling since it is smaller than the volume of the spherical probe: 1.2 Å is the default radius; spherical probe volume is 7.2 Å<sup>3</sup>. At least no negative volumes are reported.''
+
-
====Cavity Probe Radius 2.0 Å====
+
:<tt><scene name='85/858407/6zgi-pocbur_2point5/1'>isosurface minset 30 cavity 2.5</scene></tt><!--6zgi-pocbur2.5 (minset 30)-->
-
Increasing the cavity probe radius to 2.0 Å still does not display the cavities of interest (not shown). 44 separate cavities are displayed. ''Of concern is that most have volumes much less than the spherical volume of the probe (33.5 Å^3), and it is not clear how a cavity smaller than the probe can be detected. Of further concern is that several cavities report '''negative volumes'''.''
+
-
====Cavity Probe Radius 2.6 Å====
+
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]].
-
Increasing the cavity probe radius to 2.6 Å finally displays the smaller cavity of interest, but not the larger.
+
-
:<tt>isosurface interior cavity 2.6 10.0</tt> <jmol>
+
-
<jmolButton>
+
-
<script>
+
-
isosurface delete;isosurface "http://proteopedia.org/wiki/images/e/e6/6zgi-cav-3.jvxl";
+
-
</script>
+
-
<text>Show Result</text>
+
-
</jmolButton>
+
-
</jmol>
+
-
This cavity probe radius gives a volume of 1,855 Å<sup>3</sup> for the smaller cavity of interest, 16% larger than with the 3.0 Å probe. ''10 cavities are reported. The volume of the smallest is reported to be 0.10 Å<sup>3</sup>, and the next-to-smallest, 30.3 Å<sup>3</sup>. The spherical volume of this probe is 73.6 Å<sup>3</sup>.''
+
-
====Cavity Probe Radius 3.0 Å====
+
==Ligands Inside Cavity==
-
Increasing the cavity probe radius to 3.0 Å finally shows both cavities of interest.
+
-
:<tt>isosurface interior cavity 3.0 10.0</tt> <jmol>
+
-
<jmolButton>
+
-
<script>
+
-
isosurface delete;isosurface "http://proteopedia.org/wiki/images/a/ac/6zgi-cav-4.jvxl";
+
-
</script>
+
-
<text>Show Result</text>
+
-
</jmolButton>
+
-
</jmol>
+
-
However there are two smaller cavities that are not of interest. To avoid these, we can specify a minimum number of triangles for cavity surfaces with the parameter '''minset'''. Using "minset 100" (value determined by trial and error), we arrive at the command shown at the beginning, which shows only the two cavities of interest. Using "minset 50" eliminated only the smaller of the two unwanted cavities.
+
-
===Reducing the Envelope Probe Radius===
+
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.
-
We have used the default envelope probe radius of 10.0 Å in all the above examples. If it is reduced to 7.0, the two cavities of interest fail to be displayed [not shown]. This is presumably because a more detailed envelope with more indentations created mouths in the two cavities of interest, rendering them pockets or tunnels, rather than interior cavities with no mouths. If it is reduced to 3.0 Å, no cavities are displayed [not shown]. ''Two are reported with '''negative volumes''' of -560.8 and -3.3.'' The maximum envelope probe radius allowed by Jmol is 10.0.
+
:<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 Å).
</StructureSection>
</StructureSection>
 +
 +
==Preparing Isosurface Scenes for Proteopedia==
 +
 +
===Speed of Rendering===
 +
If you use the isosurface commands below, do so in the [[Jmol/Application|Jmol Java application]], not in JSmol in Proteopedia. Depending on the size of the molecule, cavity isosurface commands take about a minute to complete in the Java application, which is many times faster than JSmol. You would have to wait many minutes for completion in JSmol.
 +
 +
===Working Directory===
 +
Put a copy of Jmol.jar, and perhaps a downloaded copy of the PDB file(s) of interest in a new working directory (folder). By default, JVXL and PNGJ files you write will be written into the directory from which you start Jmol.jar. Any Jmol command script files should also be placed in this working directory. This keeps everything simple.
 +
 +
===Use PNGJ Files===
 +
 +
The best way to include cavity isosurfaces in a Proteopedia scene (green link) is to upload a properly prepared PNGJ file that includes the cached isosurfaces. Proteopedia's ''Molecular Scene Authoring Tools'' ([[SAT]]) '''load molecule''' tab accepts an uploaded PNGJ file.
 +
 +
Before saving the scene, you can add a caption that will display under the molecular display. The caption can include
 +
*Links to pages within Proteopedia using double brackets, such as [[6zgi]] (wikitext <nowiki>[[6zgi]]</nowiki>).
 +
*Links to pages outside Proteopedia using single brackets, such as [http://jmol.org jmol.org] (wikitext <nowiki>[http://jmol.org jmol.org]</nowiki>).
 +
*Color keys using <span class="text-red"><b>colored</b></span> <span class="bg-yellow">text</span>. Coloring of text in captions must be done using span classes: see instructions at [[Coloring text]]. (In this example: &lt;span class="text-red">&lt;b>colored&lt;/b>&lt;/span> &lt;span class="bg-yellow">text&lt;/span>.)
 +
 +
===Multiple Isosurfaces===
 +
There are two reasons why you may need multiple isosurfaces.
 +
*You want to show both closed interior cavities and open-mouthed surface pockets.
 +
*You want to show multiple pieces of a single isosurface.
 +
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===
 +
 +
It is important to ''cache'' the isosurface(s) in your scene before saving the PNGJ file so the scene can load rapidly. If the PNGJ file is saved without caching, JSmol will re-calculate the isosurface(s) before the scene is displayed. This could easily take 10 minutes!
 +
 +
Here are the steps:
 +
<br>
 +
'''I. In the [[Jmol/Application|Jmol Java application]]:'''
 +
 +
:1. Calculate the isosurface(s). Commands are explained above in earlier sections of this article. If you will need more than one isosurface, for example one for pockets and one for interior cavities, assign each a distinct ID when you create them. Prefixing the ID with tilde (~) ensures the ID name does not conflict with an existing term in Jmol. In a Jmol command line, anything after # is a comment, ignored by Jmol. For example:
 +
::<tt>isosurface '''~poc''' minset 100 pocket cavity
 +
::isosurface '''~bur''' minset 100 interior cavity # "buried"</tt>
 +
 +
:2. Color the isosurface(s). Coloring by depth from the surface was [[#Coloring By Depth|described above]]. For a plain color, first you must know the ID of the isosurface if there are more than one.
 +
::<tt>isosurface ~poc # Select the isosurface to color. Unnecessary if there is only one.
 +
::color isosurface pink # color name
 +
::isosurface ~bur # Select a different isosurface to color.
 +
::color isosurface [x4060FF] # [https://www.rapidtables.com/web/color/RGB_Color.html RGB color]</tt>
 +
 +
:3. Write each isosurface as a jvxl (Jmol Voxel) file. Coloring is saved in the JVXL file.
 +
::<tt>isosurface ~poc # Select the isosurface to write. Unnecessary if there is only one.
 +
::write poc.jvxl
 +
::isosurface ~bur # Select a different isosurface to color.
 +
::write bur.jvxl</tt>
 +
 +
:4. Quit Jmol and start a new session. Load the molecule and then the JVXL file(s). If you are loading more than one JVXL file (or the same JVXL file more than once so you can display multiple pieces of it), assign each load a distinct ID. (ID's are not saved in the jvxl files.)
 +
::<tt>load =6zgi
 +
::isosurface ~poc1 poc.jvxl
 +
::isosurface ~poc2 poc.jvxl
 +
::isosurface ~poc3 poc.jvxl
 +
::isosurface ~bur bur.jvxl</tt>
 +
 +
:5. '''Cache''' the isosurface(s). This is critical. If this step is omitted, the PNGJ file will try to read the isosurfaces from the JVXL files, which will fail in Proteopedia.
 +
::<tt>isosurface cache # A single command caches ALL isosurfaces.</tt>
 +
 +
:6. Write the PNGJ file. It is best if you have rendered and colored the macromolecule exactly as you want the scene to appear in Proteopedia before writing the PNGJ file.
 +
::<tt>write filename.pngj</tt>
 +
 +
'''II. In Proteopedia:'''
 +
 +
:7. Upload your PNGJ file. You do NOT need to compress the PNGJ file because it is already in a compressed format. See [[Help:Uploading molecules]]. Keep a copy of the name of the page for your uploaded PNGJ file. For example, ''Image:6zgi-m1000-cav.pngj''.
 +
 +
:8. Now you are ready to use the [[SAT]] in your Proteopedia page. See [[Proteopedia:How to Make a Page]]. Use the '''load molecule''' tab in the SAT and paste in the name of the page containing your uploaded PNGJ file, such as ''Image:6zgi-m1000-cav.pngj''. Use the '''save scene''' tab. Add a caption, and save the scene, creating a green link.
 +
 +
===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.
 +
 +
====Write JVXL Files====
 +
<pre>
 +
# In the Jmol Java application,
 +
# This script took 2 min 25 sec on a mid-2014 MacBook Pro.
 +
# 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>
 +
 +
===Managing Cavity Isosurfaces===
 +
Jmol commands for generating cavity isosurfaces were explained above. Full details will be found in the [https://chemapps.stolaf.edu/jmol/docs/#isosurfacesurfaceobject--molecular/solventsurfaces Jmol/JSmol Interacive Scripting Documention] under ''isosurfaces: molecular/solvent surfaces''. Near the bottom of that very long section, important commands for after the cavity isosurfaces are calculated:
 +
*<tt>isosurface area set (integer) # Reports the surface area of one piece (set) of an isosurface in Å<sup>2</sup>.
 +
*isosurface * delete # Deletes all isosurfaces.
 +
*isosurface set (integer) # Displays just one piece (set) of an isosurface.
 +
*isosurface set 0 # Displays all pieces of an isosurface = the entire isosurface.
 +
*isosurface volume set (integer) # Reports the volume of one '''closed'''<ref name="volume">The volume that Jmol reports for a pocket (open mouth/entrance) is meaningless. Jmol reports meaningful volumes only for closed isosurfaces.</ref> isosurface in Å<sup>3</sup>.</tt>
 +
 +
==See Also==
 +
* [[Cavity programs]]
 +
* [[PACUPP]]: Pockets And Cavities Using Pseudoatoms in Proteins
 +
 +
==References and Notes==
 +
<references />

Current revision

Drag the structure with the mouse to rotate

Contents

Preparing Isosurface Scenes for Proteopedia

Speed of Rendering

If you use the isosurface commands below, do so in the Jmol Java application, not in JSmol in Proteopedia. Depending on the size of the molecule, cavity isosurface commands take about a minute to complete in the Java application, which is many times faster than JSmol. You would have to wait many minutes for completion in JSmol.

Working Directory

Put a copy of Jmol.jar, and perhaps a downloaded copy of the PDB file(s) of interest in a new working directory (folder). By default, JVXL and PNGJ files you write will be written into the directory from which you start Jmol.jar. Any Jmol command script files should also be placed in this working directory. This keeps everything simple.

Use PNGJ Files

The best way to include cavity isosurfaces in a Proteopedia scene (green link) is to upload a properly prepared PNGJ file that includes the cached isosurfaces. Proteopedia's Molecular Scene Authoring Tools (SAT) load molecule tab accepts an uploaded PNGJ file.

Before saving the scene, you can add a caption that will display under the molecular display. The caption can include

  • Links to pages within Proteopedia using double brackets, such as 6zgi (wikitext [[6zgi]]).
  • Links to pages outside Proteopedia using single brackets, such as jmol.org (wikitext [http://jmol.org jmol.org]).
  • Color keys using colored text. Coloring of text in captions must be done using span classes: see instructions at Coloring text. (In this example: <span class="text-red"><b>colored</b></span> <span class="bg-yellow">text</span>.)

Multiple Isosurfaces

There are two reasons why you may need multiple isosurfaces.

  • You want to show both closed interior cavities and open-mouthed surface pockets.
  • 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 isosurface set <integer> 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

It is important to cache the isosurface(s) in your scene before saving the PNGJ file so the scene can load rapidly. If the PNGJ file is saved without caching, JSmol will re-calculate the isosurface(s) before the scene is displayed. This could easily take 10 minutes!

Here are the steps:
I. In the Jmol Java application:

1. Calculate the isosurface(s). Commands are explained above in earlier sections of this article. If you will need more than one isosurface, for example one for pockets and one for interior cavities, assign each a distinct ID when you create them. Prefixing the ID with tilde (~) ensures the ID name does not conflict with an existing term in Jmol. In a Jmol command line, anything after # is a comment, ignored by Jmol. For example:
isosurface ~poc minset 100 pocket cavity
isosurface ~bur minset 100 interior cavity # "buried"
2. Color the isosurface(s). Coloring by depth from the surface was described above. For a plain color, first you must know the ID of the isosurface if there are more than one.
isosurface ~poc # Select the isosurface to color. Unnecessary if there is only one.
color isosurface pink # color name
isosurface ~bur # Select a different isosurface to color.
color isosurface [x4060FF] # RGB color
3. Write each isosurface as a jvxl (Jmol Voxel) file. Coloring is saved in the JVXL file.
isosurface ~poc # Select the isosurface to write. Unnecessary if there is only one.
write poc.jvxl
isosurface ~bur # Select a different isosurface to color.
write bur.jvxl
4. Quit Jmol and start a new session. Load the molecule and then the JVXL file(s). If you are loading more than one JVXL file (or the same JVXL file more than once so you can display multiple pieces of it), assign each load a distinct ID. (ID's are not saved in the jvxl files.)
load =6zgi
isosurface ~poc1 poc.jvxl
isosurface ~poc2 poc.jvxl
isosurface ~poc3 poc.jvxl
isosurface ~bur bur.jvxl
5. Cache the isosurface(s). This is critical. If this step is omitted, the PNGJ file will try to read the isosurfaces from the JVXL files, which will fail in Proteopedia.
isosurface cache # A single command caches ALL isosurfaces.
6. Write the PNGJ file. It is best if you have rendered and colored the macromolecule exactly as you want the scene to appear in Proteopedia before writing the PNGJ file.
write filename.pngj

II. In Proteopedia:

7. Upload your PNGJ file. You do NOT need to compress the PNGJ file because it is already in a compressed format. See Help:Uploading molecules. Keep a copy of the name of the page for your uploaded PNGJ file. For example, Image:6zgi-m1000-cav.pngj.
8. Now you are ready to use the SAT in your Proteopedia page. See Proteopedia:How to Make a Page. Use the load molecule tab in the SAT and paste in the name of the page containing your uploaded PNGJ file, such as Image:6zgi-m1000-cav.pngj. Use the save scene tab. Add a caption, and save the scene, creating a green link.

Working Example Scripts

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 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

# In the Jmol Java application,
# This script took 2 min 25 sec on a mid-2014 MacBook Pro.
# 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.

Write Cached PNGJ File

# 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.

Managing Cavity Isosurfaces

Jmol commands for generating cavity isosurfaces were explained above. Full details will be found in the Jmol/JSmol Interacive Scripting Documention under isosurfaces: molecular/solvent surfaces. Near the bottom of that very long section, important commands for after the cavity isosurfaces are calculated:

  • isosurface area set (integer) # Reports the surface area of one piece (set) of an isosurface in Å2.
  • isosurface * delete # Deletes all isosurfaces.
  • isosurface set (integer) # Displays just one piece (set) of an isosurface.
  • isosurface set 0 # Displays all pieces of an isosurface = the entire isosurface.
  • isosurface volume set (integer) # Reports the volume of one closed[13] isosurface in Å3.

See Also

References and Notes

  1. Bondi, A., J. Phys. Chem. 68:441, 1964.
  2. Diameter of water molecule at B10NUMB3R5, a collaboration between Harvard Medical School and the Weizmann Institute of Science. See also Distance between water molecules in bulk water.
  3. Volume of water molecule bound to an amino acid at B10NUMB3R5, a collaboration between Harvard Medical School and the Weizmann Institute of Science.
  4. This command works only if a previous isosurface ... cavity 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.
  5. 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 zoomto {1107} 266. This centers the deep part of the cavity and zooms to 266%.
  6. 6.0 6.1 Cavity of interest was manually disconnected from the largest cavity.
  7. Sum of volumes of cavity sets 5 and 11.
  8. Sum of volumes of 2 clusters of pseudoatoms.
  9. Sum of volumes of cavity sets 6, 9, 10, and 12.
  10. 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 Å.
  11. PACUPP in offset mode fails to find 3/4 of the cavity with a cavity probe radius of 2.5 Å.
  12. 12.0 12.1 Akama H, Kanemaki M, Yoshimura M, Tsukihara T, Kashiwagi T, Yoneyama H, Narita S, Nakagawa A, Nakae T. Crystal structure of the drug discharge outer membrane protein, OprM, of Pseudomonas aeruginosa: dual modes of membrane anchoring and occluded cavity end. J Biol Chem. 2004 Dec 17;279(51):52816-9. Epub 2004 Oct 26. PMID:15507433 doi:10.1074/jbc.C400445200
  13. The volume that Jmol reports for a pocket (open mouth/entrance) is meaningless. Jmol reports meaningful volumes only for closed isosurfaces.

Proteopedia Page Contributors and Editors (what is this?)

Eric Martz

Personal tools