Difference between revisions of "Protein Community"

From Jmol
Jump to navigation Jump to search
(remove obsolete link and update link)
(Nice display of membrane proteins from OPM)
 
(25 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=== Protein Community ===
+
{{Jmol Community Sections}}
  
 
This subcommunity is for Jmol users that use Jmol for display and analysis of protein structures. Please add on this page your favorite scripts etc. for displaying proteins in Jmol.
 
This subcommunity is for Jmol users that use Jmol for display and analysis of protein structures. Please add on this page your favorite scripts etc. for displaying proteins in Jmol.
 
* [[User:AngelHerraez|Angel Herraez]] page
 
* [[User:AngelHerraez|Angel Herraez]] page
* [[User:EricMartz|Eric Martz]]: [http://bioinformatics.org/firstglance FirstGlance in Jmol] is a simple tool for exploring the structure of any on-line macromolecular model. Protein Explorer exports molecular views into Jmol, see [http://www.molslides.org/ MolSlides.Org]
+
* [[User:EricMartz|Eric Martz]]: [http://bioinformatics.org/firstglance FirstGlance in Jmol] is a simple tool for exploring the structure of any on-line macromolecular model. [http://proteopedia.org Proteopedia.Org] is a Jmol-based wiki with easy Scene-Authoring Tools for creating and sharing customized molecular scenes without learning Jmol language.
  
Molecular surfaces in Jmol: [http://biomodel.uah.es/Jmol/surfaces/ documentation and testing page]
+
== Adjusting speed and quality ==
 +
Responsiveness to user interaction and quality of the rendering may be adjusted using several options or parameters in JmolScript. See [[Quality and speed]]
 +
 
 +
== Molecular surfaces ==
 +
[http://biomodel.uah.es/Jmol/surfaces/ documentation and testing page]
 +
 
 +
== Secondary structure ==
 +
Starting with versions '''12.0.18 and 12.1.15''', Jmol implements the DSSP algorithm for determination of secondary structure in proteins. This is accompanied by some changes in the defaults and some new commands.
 +
 
 +
Starting with Jmol 14.6 the new DSSP 2.0 algorithm is used. This change only affects helices that have bulges, indicating them more appropriately as pi helices rather than alpha helices.
 +
: Rob van der Kant, Gert Vriend (2014) ''Int. J. Mol. Sci.'' '''15''': 7841-7864; doi:10.3390/ijms15057841
 +
: Implemented at http://www.cmbi.ru.nl/dssp.html
 +
: To use DSSP 1.0 instead, you may use <code>calculate structure DSSP 1.0</code>, <code>show DSSP 1.0</code>, <code>load ... filter "DSSP1"</code>
 +
 
 +
 
 +
=== When reading files ===
 +
# '''If the {{file|pdb}} or {{file|mmcif}} file contains HELIX/SHEET/TURN information''': that information is respected in '''all''' Jmol versions. In '''new''' Jmol versions, {{file|pdb}} and {{file|mmcif}} readers also read helix types alpha, pi, and 3<sub>10</sub>, and color them slightly differently (see colors below).
 +
# '''If the {{file|pdb}} or {{file|mmcif}} file des not contain HELIX/SHEET/TURN information''':
 +
#* '''Old''' versions of Jmol used Ramachandran-angle based calculation.
 +
#* '''New''' versions of Jmol use DSSP calculation.
 +
# In the case of '''alpha-carbon-only chains''', '''all''' versions of Jmol use the method of Levitt and Greer ([http://dx.doi.org/10.1016/0022-2836(77)90207-8 doi]).
 +
# In '''new''' versions of Jmol the calculation based on Ramachandran angles is still available (see below).
 +
 
 +
=== Forced recalculation of structure ===
 +
==== <code>calculate structure</code>  ====
 +
This command overwrites any secondary structure assignment with a new one:
 +
* In '''old''' Jmol versions, calculated using the Ramachandran method.
 +
* In '''new''' Jmol versions, calculated using the DSSP method.
 +
Note that, intentionally, Jmol turns off all bioshapes when the <code>calculate structure</code> command is given. So, you will usually want to follow it with <code>cartoons on</code> or something of the sort.
 +
 
 +
Using the command <code>set structure</code> described [{{ScriptingDoc}}#setstructure here] you can define the minimum and maximum psi values that would be valid for each structure type.
 +
 
 +
==== New commands ====
 +
*<code>calculate structure ramachandran</code> is available for forcing the old method of calculation (it may have some advantages in certain contexts). It can be shortened to <code>calculate structure rama</code>.
 +
* <code>calculate hBonds structure</code> does DSSP determining hydrogen bonds only.
 +
* <code>set defaultStructureDSSP false</code> will change the defaults of file load and <code>calculate structure</code> to use the Ramachandran method; by default, it is ''true'' and uses the DSSP method.
 +
* <code>set dsspCalculateHydrogenAlways false</code> does DSSP enforcing the use of backbone amide H atoms present in the file; by default, it is ''true'' and does standard DSSP, ignoring all backbone amide H atoms present in the file and using rough approximations instead.
 +
* <code>show dssp</code> displays a report of the DSSP calculation.
 +
* <code>set debug</code> displays a verbose DSSP calculation.
 +
* <code>save structure s1</code> (for example) saves in memory the current structure assignment with the internal ID 's1' for later restoring.
 +
* <code>restore structure s1</code> restores the previously saved assignment.
 +
 
 +
 
 +
==== Customization of the Secondary Structure for Regions ====
 +
As described [{{ScriptingDoc}}#structure here], you can can define individual secondary structure elements as well.
 +
Select the portion you want to change first.
 +
For example,
 +
*<code>select 16-31:A; structure HELIX; cartoon on;</code> to define residues 16-31 of chain A as an alpha helix for cartoon style display.
 +
Obviously these adjustments are to be used sparingly as there is often a reason the secondary structure detection methods within Jmol
 +
fail to identify the structure and you don't want to make erroneous assignments.  Often such adjustments may be useful when the structure assignment information
 +
formerly in the file has been removed as result of some processing of the PDB file and the default structure detection results in a secondary structure
 +
that does not perfectly match that defined in the published crystal or NMR structure.
 +
 
 +
The commands:
 +
* <code>structure HELIX</code>
 +
* <code>structure SHEET</code>
 +
* <code>structure TURN</code>
 +
* <code>structure helix310</code> <---NEED TO VERIFY WORKS.
 +
 
 +
=== Selection and coloring ===
 +
Atom expressions related to secondary structure:
 +
<table>
 +
<tr>
 +
<th>by name</th>
 +
<th></th>
 +
<th>by index</th>
 +
<th></th>
 +
</tr>
 +
<tr>
 +
<td></td>
 +
<td></td>
 +
<td><code>select structure=-1</code></td>
 +
<td>matches non-protein parts (ligands,...)</td>
 +
</tr>
 +
<tr>
 +
<td></td>
 +
<td></td>
 +
<td><code>select structure=0</code></td>
 +
<td>matches unstructured protein (random coil)</td>
 +
</tr>
 +
<tr>
 +
<td><code>select turn</code></td>
 +
<td>or</td>
 +
<td><code>select structure=1</code></td>
 +
<td>matches turns</td>
 +
</tr>
 +
<tr>
 +
<td><code>select sheet</code></td>
 +
<td>or</td>
 +
<td><code>select structure=2</code></td>
 +
<td>matches beta strands</td>
 +
</tr>
 +
<tr>
 +
<td><code>select helix</code></td>
 +
<td>or</td>
 +
<td><code>select structure=3</code></td>
 +
<td>includes all 3 types of helices</td>
 +
</tr>
 +
<tr>
 +
<td><code>select dna</code></td>
 +
<td>or </td>
 +
<td><code>select structure=4</code></td>
 +
<td>matches DNA</td>
 +
</tr>
 +
<tr>
 +
<td><code>select rna</code></td>
 +
<td>or </td>
 +
<td><code>select structure=5</code></td>
 +
<td>matches RNA</td>
 +
</tr>
 +
<tr>
 +
<td><code>select carbohydrate</code></td>
 +
<td>or</td>
 +
<td><code>select structure=6</code></td>
 +
<td>matches carbohydrates</td>
 +
</tr>
 +
<tr>
 +
<td><code>select helix310</code></td>
 +
<td>or</td>
 +
<td><code>select substructure=7</code></td>
 +
<td>matches 3<sub>10</sub> helices (DSSP code "G"). Example: 2JC9.pdb</td>
 +
</tr>
 +
<tr>
 +
<td><code>select helixAlpha</code></td>
 +
<td>or</td>
 +
<td><code>select substructure=8</code></td>
 +
<td>matches alpha helices (DSSP code "H")</td>
 +
</tr>
 +
<tr>
 +
<td><code>select helixPi</code></td>
 +
<td>or</td>
 +
<td><code>select substructure=9</code></td>
 +
<td>matches pi helices (DSSP code "I").<br>Example: 2JC9.pdb after <code>calculate structure</code></td>
 +
</tr>
 +
</table>
 +
''Note'': it is safe to use <code>substructure</code> for all selection commands. For ex., <code>select substructure=2</code> selects beta strands, but <code>select structure=8</code> selects nothing.
 +
 
 +
* <code>color structure</code> now applies different shades of color to alpha, 3<sub>10</sub> and pi helices, in addition to the classic coloring of helices, beta strands, turns and unstructured portions (see colors below).
 +
 
 +
* <code>label %[substructure]</code> labels with the texts: helixalpha, helix310, helixpi, sheet, turn, none
 +
 
 +
* <code>structure helixAlpha</code> ....
 +
* <code>structure helix310</code> ....
 +
* <code>structure helixPi</code> ....
 +
 
 +
 
 +
 
 +
=== Reference section ===
 +
* W. Kabsch, C. Sander (1983) Dictionary of protein secondary structure: pattern recognition of hydrogen-bonded and geometrical features. ''Biopolymers'' '''22''': 2577-2637. doi:10.1002/bip.360221211
 +
* DSSP Home Page: http://swift.cmbi.ru.nl/gv/dssp/
 +
 
 +
* M. Levitt, J. Greer (1977) Automatic identification of secondary structure in globular proteins. ''J. Mol. Biol.'' '''114''': 181-239. doi:10.1016/0022-2836(77)90207-8
 +
 
 +
* Codes for structure types:
 +
{| cellpadding="4" cellspacing="0" border="1" style="margin-left:3ex;"
 +
! !! PDB<br>code !! SPSS<br>code !! Jmol codes<br> substructure and name
 +
|-
 +
| right-handed alpha (default) || 1 || H || 8 helixalpha <span style="color:#FF0080;">&#x2588;</span>
 +
|-
 +
| right-handed omega || 2 || ||
 +
|-
 +
| right-handed pi || 3 || G || 7 helixpi <span style="color:#600080;">&#x2588;</span>
 +
|-
 +
| right-handed gamma || 4 || ||
 +
|-
 +
| right-handed 3<sub>10</sub> || 5 || I || 9 helix310 <span style="color:#A00080;">&#x2588;</span>
 +
|-
 +
| left-handed alpha || 6 || ||
 +
|-
 +
| left-handed omega || 7 || ||
 +
|-
 +
| left-handed gamma || 8 || ||
 +
|-
 +
| 2<sub>7</sub> ribbon/helix || 9 || ||
 +
|-
 +
| polyproline || 10 || ||
 +
|-
 +
| (beta) strand  || 0 first<br>1 parallel<br>-1 antiparallel || E || 2  sheet <span style="color:#FFC800;">&#x2588;</span>
 +
|-
 +
| turn || || T || 1 turn <span style="color:#6080FF;">&#x2588;</span>
 +
|-
 +
| isolated beta-bridge residue || || B ||
 +
|-
 +
| bend || || S ||
 +
|-
 +
| none (unstructured protein) || || - || 0 none <span style="color:#FFFFFF;border:1px solid black;">&#x2588;</span>
 +
|-
 +
| DNA || || || 4 dna <span style="color:#AE00FE;">&#x2588;</span>
 +
|-
 +
| RNA || || || 5 rna <span style="color:#FD0162;">&#x2588;</span>
 +
|-
 +
| carbohydrate || || || 6 carbohydrate <span style="color:#A6A6FA;">&#x2588;</span>
 +
|-
 +
| other*  || || || -1 <span style="color:#808080;">&#x2588;</span>
 +
|}
 +
: Helix types in PDB format: columns 39-40 of HELIX record, right-justified.
 +
: Strand sense in PDB format: columns 39-40 of SHEET record, right-justified.
 +
: (*) Other = not protein, not nucleic, not carbohydrate.
 +
 
 +
== Pretty cartoons ==
 +
Apply this script to get cartoons with a better-than-default look (it will take some more time to rotate them around):
 +
set hermiteLevel -4; set ribbonAspectRatio 12;
 +
or
 +
set hermiteLevel 4; set ribbonAspectRatio 12;
 +
which accelerates rotation (the thickness disappears while manipulating with the mouse)
 +
 
 +
This command is equivalent:
 +
  set cartoonFancy on
 +
 
 +
See also [[Recycling_Corner#Improved_lighting]]
 +
 
 +
== Loading part of the model ==
 +
The use of <code>load</code> with the <code>filter</code> option allows that Jmol will only read some atoms from the file. This is useful e.g. to avoid the solvent molecules, to load a single chain, or to accelerate manipulation of large models (trace and cartoon may be rendered with just the Calpha atoms available)
 +
 
 +
See documentation ([{{ScriptingDoc}}#loadgeneraloptions 1], [{{ScriptingDoc}}#k549 2]) and [[Load/Filter|practical examples]].
 +
 
 +
 
 +
== Nice display of membrane proteins ==
 +
The [https://opm.phar.umich.edu/proteins/ Orientation of Proteins in Membranes] (University of Michigan, Lomize Group) website holds a database with the (approximate) positions of proteins embedded in membranes. The two membrane (lipid bilayer) surfaces are displayed as a set of dummy atoms added to the pdb file, red (O) for the outer side and blue (N) for the inner side.
 +
[[File:OPM renderings.png]]
 +
 
 +
The following Jmol script locates those dummy atoms, removes them and inserts in their place the respective circular planes, making a cylinder to represent the portion of membrane where the protein is embedded.
 +
You can see the script at work at [https://biomodel.uah.es/model2/prot-membr/get_OPM.htm this page].
 +
 
 +
<pre>
 +
/* Code by Angel Herráez */
 +
load "https://opm-assets.storage.googleapis.com/pdb/6xmt.pdb";
 +
rotate X -90; /* +Z upwards, outer side */
 +
define m~out [DUM].O; define m~in [DUM].N;
 +
if ( {m~out}.size>0 ) {
 +
  diam~mem = 2.2 * {m~out}.x.max;
 +
  z~out = {m~out}.xyz;
 +
  if ( {m~in}.size>0 ) {
 +
    z~in = {m~in}.xyz;
 +
  } else {
 +
    z~in = - z~out;
 +
  }
 +
} else if ( {m~in}.size>0 ) {
 +
  diam~mem = 2.2 * {m~in}.x.max;
 +
  z~in = {m~in}.xyz;
 +
  z~out = - z~in;
 +
} else {
 +
  diam~mem = 52;
 +
  z~out = 14.9;
 +
  z~in = -14.9;
 +
};
 +
draw surf~mem diameter @diam~mem color translucent navajoWhite cylinder @z~in @z~out fill;
 +
draw surf~out scale @diam~mem color orangeRed arc @z~out @z~in;
 +
draw surf~in scale @diam~mem color royalBlue arc @z~in @z~out;
 +
delete [DUM];
 +
select protein; cartoon only; color chain;
 +
</pre>

Latest revision as of 19:52, 10 February 2023

Jmol/JSmol Community

This subcommunity is for Jmol users that use Jmol for display and analysis of protein structures. Please add on this page your favorite scripts etc. for displaying proteins in Jmol.

  • Angel Herraez page
  • Eric Martz: FirstGlance in Jmol is a simple tool for exploring the structure of any on-line macromolecular model. Proteopedia.Org is a Jmol-based wiki with easy Scene-Authoring Tools for creating and sharing customized molecular scenes without learning Jmol language.

Adjusting speed and quality

Responsiveness to user interaction and quality of the rendering may be adjusted using several options or parameters in JmolScript. See Quality and speed

Molecular surfaces

documentation and testing page

Secondary structure

Starting with versions 12.0.18 and 12.1.15, Jmol implements the DSSP algorithm for determination of secondary structure in proteins. This is accompanied by some changes in the defaults and some new commands.

Starting with Jmol 14.6 the new DSSP 2.0 algorithm is used. This change only affects helices that have bulges, indicating them more appropriately as pi helices rather than alpha helices.

Rob van der Kant, Gert Vriend (2014) Int. J. Mol. Sci. 15: 7841-7864; doi:10.3390/ijms15057841
Implemented at http://www.cmbi.ru.nl/dssp.html
To use DSSP 1.0 instead, you may use calculate structure DSSP 1.0, show DSSP 1.0, load ... filter "DSSP1"


When reading files

  1. If the File icon.gifpdb or File icon.gifmmcif file contains HELIX/SHEET/TURN information: that information is respected in all Jmol versions. In new Jmol versions, File icon.gifpdb and File icon.gifmmcif readers also read helix types alpha, pi, and 310, and color them slightly differently (see colors below).
  2. If the File icon.gifpdb or File icon.gifmmcif file des not contain HELIX/SHEET/TURN information:
    • Old versions of Jmol used Ramachandran-angle based calculation.
    • New versions of Jmol use DSSP calculation.
  3. In the case of alpha-carbon-only chains, all versions of Jmol use the method of Levitt and Greer (doi).
  4. In new versions of Jmol the calculation based on Ramachandran angles is still available (see below).

Forced recalculation of structure

calculate structure

This command overwrites any secondary structure assignment with a new one:

  • In old Jmol versions, calculated using the Ramachandran method.
  • In new Jmol versions, calculated using the DSSP method.

Note that, intentionally, Jmol turns off all bioshapes when the calculate structure command is given. So, you will usually want to follow it with cartoons on or something of the sort.

Using the command set structure described here you can define the minimum and maximum psi values that would be valid for each structure type.

New commands

  • calculate structure ramachandran is available for forcing the old method of calculation (it may have some advantages in certain contexts). It can be shortened to calculate structure rama.
  • calculate hBonds structure does DSSP determining hydrogen bonds only.
  • set defaultStructureDSSP false will change the defaults of file load and calculate structure to use the Ramachandran method; by default, it is true and uses the DSSP method.
  • set dsspCalculateHydrogenAlways false does DSSP enforcing the use of backbone amide H atoms present in the file; by default, it is true and does standard DSSP, ignoring all backbone amide H atoms present in the file and using rough approximations instead.
  • show dssp displays a report of the DSSP calculation.
  • set debug displays a verbose DSSP calculation.
  • save structure s1 (for example) saves in memory the current structure assignment with the internal ID 's1' for later restoring.
  • restore structure s1 restores the previously saved assignment.


Customization of the Secondary Structure for Regions

As described here, you can can define individual secondary structure elements as well. Select the portion you want to change first. For example,

  • select 16-31:A; structure HELIX; cartoon on; to define residues 16-31 of chain A as an alpha helix for cartoon style display.

Obviously these adjustments are to be used sparingly as there is often a reason the secondary structure detection methods within Jmol fail to identify the structure and you don't want to make erroneous assignments. Often such adjustments may be useful when the structure assignment information formerly in the file has been removed as result of some processing of the PDB file and the default structure detection results in a secondary structure that does not perfectly match that defined in the published crystal or NMR structure.

The commands:

  • structure HELIX
  • structure SHEET
  • structure TURN
  • structure helix310 <---NEED TO VERIFY WORKS.

Selection and coloring

Atom expressions related to secondary structure:

by name by index
select structure=-1 matches non-protein parts (ligands,...)
select structure=0 matches unstructured protein (random coil)
select turn or select structure=1 matches turns
select sheet or select structure=2 matches beta strands
select helix or select structure=3 includes all 3 types of helices
select dna or select structure=4 matches DNA
select rna or select structure=5 matches RNA
select carbohydrate or select structure=6 matches carbohydrates
select helix310 or select substructure=7 matches 310 helices (DSSP code "G"). Example: 2JC9.pdb
select helixAlpha or select substructure=8 matches alpha helices (DSSP code "H")
select helixPi or select substructure=9 matches pi helices (DSSP code "I").
Example: 2JC9.pdb after calculate structure

Note: it is safe to use substructure for all selection commands. For ex., select substructure=2 selects beta strands, but select structure=8 selects nothing.

  • color structure now applies different shades of color to alpha, 310 and pi helices, in addition to the classic coloring of helices, beta strands, turns and unstructured portions (see colors below).
  • label %[substructure] labels with the texts: helixalpha, helix310, helixpi, sheet, turn, none
  • structure helixAlpha ....
  • structure helix310 ....
  • structure helixPi ....


Reference section

  • W. Kabsch, C. Sander (1983) Dictionary of protein secondary structure: pattern recognition of hydrogen-bonded and geometrical features. Biopolymers 22: 2577-2637. doi:10.1002/bip.360221211
  • DSSP Home Page: http://swift.cmbi.ru.nl/gv/dssp/
  • M. Levitt, J. Greer (1977) Automatic identification of secondary structure in globular proteins. J. Mol. Biol. 114: 181-239. doi:10.1016/0022-2836(77)90207-8
  • Codes for structure types:
PDB
code
SPSS
code
Jmol codes
substructure and name
right-handed alpha (default) 1 H 8 helixalpha
right-handed omega 2
right-handed pi 3 G 7 helixpi
right-handed gamma 4
right-handed 310 5 I 9 helix310
left-handed alpha 6
left-handed omega 7
left-handed gamma 8
27 ribbon/helix 9
polyproline 10
(beta) strand 0 first
1 parallel
-1 antiparallel
E 2 sheet
turn T 1 turn
isolated beta-bridge residue B
bend S
none (unstructured protein) - 0 none
DNA 4 dna
RNA 5 rna
carbohydrate 6 carbohydrate
other* -1
Helix types in PDB format: columns 39-40 of HELIX record, right-justified.
Strand sense in PDB format: columns 39-40 of SHEET record, right-justified.
(*) Other = not protein, not nucleic, not carbohydrate.

Pretty cartoons

Apply this script to get cartoons with a better-than-default look (it will take some more time to rotate them around):

set hermiteLevel -4; set ribbonAspectRatio 12;

or

set hermiteLevel 4; set ribbonAspectRatio 12;

which accelerates rotation (the thickness disappears while manipulating with the mouse)

This command is equivalent:

 set cartoonFancy on

See also Recycling_Corner#Improved_lighting

Loading part of the model

The use of load with the filter option allows that Jmol will only read some atoms from the file. This is useful e.g. to avoid the solvent molecules, to load a single chain, or to accelerate manipulation of large models (trace and cartoon may be rendered with just the Calpha atoms available)

See documentation (1, 2) and practical examples.


Nice display of membrane proteins

The Orientation of Proteins in Membranes (University of Michigan, Lomize Group) website holds a database with the (approximate) positions of proteins embedded in membranes. The two membrane (lipid bilayer) surfaces are displayed as a set of dummy atoms added to the pdb file, red (O) for the outer side and blue (N) for the inner side. OPM renderings.png

The following Jmol script locates those dummy atoms, removes them and inserts in their place the respective circular planes, making a cylinder to represent the portion of membrane where the protein is embedded. You can see the script at work at this page.

/* Code by Angel Herráez */
load "https://opm-assets.storage.googleapis.com/pdb/6xmt.pdb";
rotate X -90; /* +Z upwards, outer side */
define m~out [DUM].O; define m~in [DUM].N;
if ( {m~out}.size>0 ) {
  diam~mem = 2.2 * {m~out}.x.max; 
  z~out = {m~out}.xyz;
  if ( {m~in}.size>0 ) {
    z~in = {m~in}.xyz;
  } else { 
    z~in = - z~out; 
  }
} else if ( {m~in}.size>0 ) { 
  diam~mem = 2.2 * {m~in}.x.max; 
  z~in = {m~in}.xyz; 
  z~out = - z~in;
} else { 
  diam~mem = 52; 
  z~out = 14.9; 
  z~in = -14.9; 
};
draw surf~mem diameter @diam~mem color translucent navajoWhite cylinder @z~in @z~out fill;
draw surf~out scale @diam~mem color orangeRed arc @z~out @z~in;
draw surf~in scale @diam~mem color royalBlue arc @z~in @z~out;
delete [DUM]; 
select protein; cartoon only; color chain;