= code # pt (Portuguese), es (Spanish), en (English), fr (French), de (German), etc... set language
Commands
Jmol has a multitude of commands for viewing and studying molecular models. Most of these commands are accessed through the Jmol main Menu, or by right-clicking on the program’s main screen or the JSmol applet on the internet. | However, scripting allows the execution of a much larger set of actions via the Console, both of the installed program and of the applet, in addition to allowing the listing of consecutive actions generating specific visualizations, calculations and animations, and even programming. In the latter case, via the Jmol scripting language. These commands and the programming language are explained on the website of its developers, Jmol - Documentation & scripting, with substantial examples and illustrative and interactive links. The content of this chapter aims to summarize the main commands for viewing, studying, importing and exporting, calculations and animations of models via the Console or via script.
As a sequence of commands for a more complex observation or animation, you can create the script in any simple text editor, saving it with the “.spt” attribute. The script can be loaded as a file or pasted into the Console field.
Jmol commands do not distinguish between singular or plural, or between upper or lower case, and both forms can be used, such as show group or Show groups.
An additional note: when creating a script, it is recommended that explanations be provided in command lines; to do so, simply use the hashtag sign (#) after the commands.
As a sequence of commands for a more complex observation or animation, you can create the script in any simple text editor, saving it with the “.spt” attribute. The script can be loaded as a file or pasted into the Console field.
Jmol commands do not distinguish between singular or plural, or between upper or lower case, and both forms can be used, such as show group or Show groups.
An additional note: when creating a script, it is recommended that explanations be provided in command lines; to do so, simply use the hashtag sign (#) after the commands.
Changing the interface language & file directory
Language
The Menu language and the command output (results) can be changed as follows. Remember, however, that the commands themselves refer to computational algorithms; this way, it is not possible to change the language of the commands.
Note: if you are unable to do so, start Jmol by opening a CMD (Windows) or Terminal (Linux) in the program directory folder, and type, for Portuguese:
-Duser.language=pt -jar Jmol.jar java
Directory
# shows current directory
cd # open window to default directory
cd ? # change default directory (e.g. ../temp)
cd path "/home/" # default directory (for applet) set defaultDirectory
General commands
: help # help zoom
Help: quit
Exit: undo
Undo: redo
Redomodel (position, size, centering and orientation): reset
Return to original : initialize
Program initialization: history on or history off
Command history: minimize Minimization by force fields of the model
Try some of the above commands with the applet for JSmol that follows:
Obtaining molecular models
One model
:
From the internetin general: load $cholesterol
molecules PDB (Protein Data Bank): load=9pap
molecules from the : load =ligand/hem
ligands from the RCSB website: load ":nafamostat"
compounds from the PubChem website
computer (files must be in the root directory or preselected by "cd" - see above):
From the "1aay.pdb" load
More than one model
: load files "1a2t.pdb" "1aay.pdb"
Separate1st model: model 1 or model 1.1
submit the 2nd. model: model 2 or model 2.1
present the : model* or frame*
show all models: load append "1a2t.pdb" "1aay.pdb" Together
Building simple molecules using SMILES
SMILES, an abbreviation for “Simplified molecular-input line-entry system”, allows you to represent the structure of atomic models using symbols and text (ASCII characters).
Try this formatting at the address below.
://chemapps.stolaf.edu/jmol/jmol.php?model=C https
Then replace the model in the link, “model=” with the following SMILES codes, alternatively:
1. Single bond: CC, CN, CO
2. Double bond: C=C, C=N, C=O
3. Triple bond: N%23N, CC%23C
: the code for the triple bond is intended to bypass the *SMILES* command, *“#”*, which is interpreted differently in internet addresses. Note
Displaying models:
: display 2.1
View: hide 1.1
Hide: zap
Remove models: set ambient 45 (0-shadow; 100-no shadow) Shading
Displaying model information (show command)
: show none
Display nothing: show model
Model: show atom
AtomsChains (protein or nucleic acid): show chain
: show DSSP
Structural minimization informationSurfaces (molecular, electrostatic): show isosurface
: show group
Groups: show info
Model information: show sequence
Protein primary sequence: show history
History of commandsResidues (protein): show residues
: show mo
Molecular orbital: show url
Internet path: show file Full PDB file information
Molecular databases
There are several databases for rendering molecular models, and with the possibility of saving the file for use with Jmol.
Notable among these are PubChem or DrugBank for small molecules, and RCSB - Protein DataBank (Research Collaboratory for Structural Bioinformatics) for macromolecules. There is also the IUPHAR/BPS Guide to PHARMACOLOGY, which allows indirect access to both micro and macromolecules. | In any of these, simply look for a field to download 3D molecular models. Jmol accepts around 47 different file types for structural rendering, including PDB, MOL, CIF, SDF, XYZ, SMILES, and AMBER.
General operations
: reset (size and centering): Shift+ double click (or *reset* in the *Console*)
Resetting the model coordinates
*logo* from images: set frank off
Removing the Jmol
: background white
Background
: set ambient 10 Model resolution
Mouse commands
To open the Menu of options for viewing, calculations and surfaces: right click
Model movements
: click and drag in any direction
Simple rotation
360$^{o}$: Shift+right click
Rotation around the same axis up to
: Ctrl+right click
Translation of the structure
magnification (zoom): Shift+left click and drag - zoom in/out - (or mouse, middle button). General
Motion commands
10 # rotational, with a speed of 10 degrees per frame
spin -15 # (z axis)
spin z 20 # 20 degrees
rotate 90 # x axis
rotate x 50 # value represents the percentage of the window (100 - outside; 0 - center) translate
Saving and exporting models (write)
# (saves as image)
:
Model imagedefault (png): write model-name
: write PNGJ 2000 2000 "big.png"
with specificationsothers (jpg, pdf): write name.jpg
: write frames* "all.jpg"
all models
Model coordinates# or other attribute (e.g. pdb)
write name.mol state (changes after loading): write molecule.spt # of "script" Model
Copying to the clipboard
The model image can be copied through the program’s main Menu.
Reproducing a model from the internet that does not allow saving
Sometimes some sites make molecules available in the *mol or *pdb attribute for viewing and studying, but without the possibility of downloading the file. In these cases, it is possible to obtain the model coordinates, copy them into a notepad, and save the file for reading by Jmol, as *, for example.
1. View the desired model on the site;
2. Right-click and select Console.
3. Click again, select Show and:
Extract mol data.... or File contents
As a result, the Console will display the data for copying to a text file. Simply save it as *.mol for future viewing in Jmol.
Quantities
Calculating distances and angles (measure)
In addition to the simple and interactive use of the mouse to calculate distances (double right-click on the 1st atom and drag to the 2nd atom) or angles (3 mouse clicks), it is possible to obtain the same information through the Console.
: measure no. atom1 no. atom2
Distance: measure no. atom1 no. atom2 no. atom 3
Angle: to obtain the no. of the atom, simply click on the desired point of the model
Note: measure atom1 atom2 atom3 atom4
Torsion angle
: measure on..or off...or delete
Measurements: set measure nm # or pm, angstroms, au (Bohr atomic unit) Choose the unit of measurement
Obtaining & viewing quantities
: calculate hbonds (or...hbonds calculate)
Hydrogen bondsFormal (effective) charges: calculate formalcharge # to label: label %C
: calculate partialcharge # to label: label %P
Partial chargesin a protein: calculate structure # DSSP algorithm - Define Secondary Structure; note: the representation disappears, and it is necessary to type the command again for it to return
Second structures in the model and their respective distances: measure allconnected (*)(*) All bonds
Changing representations
There are several ways to render structures in Jmol. The commands below summarize this capability:
cpk (or spacefill), ball&stick (only through the Menu, or through the combination below in the Console)
wireframe, backbone, trace, strands, cartoon, ribbons, meshriboon, rockets,
: wireframe only
To display a single shape: backbone off
To hide a shape"ball&stick": wireframe only;wireframe reset;spacefill reset To render as
The representations render the structure by the size of its atoms. The rendering by spacefill, for example, is expressed as a function of the van der Waals radius of the atom. For example:
/ off
spacefill on 0.5 # 0.5 Angstrom (the "." refers to the absolute value)
wireframe 50 # 50/250 Angstrom, or 0.2 Angstrom (no dot refers to relative value)
backbone 50% # 50% larger than default
cartoon 2 # 2/250 Angstrom = 0.008 Angstrom (note no dot)
spacefill 2.0 # 2 Angstrom (note dot) spacefill
Clipping & shading
in view: slab on; slab 30
Clip : depth 30 Depth view
Whether to display hydrogen or not
: set pdbAddHydrogens
Insert into model: set pdbAddHydrogens false Remove from model
Displaying disulfide bonds (proteins)
ssbonds on or ssbonds off40 # renders as rods, with a diameter of 40/250 Angstrom
ssbonds 0.5 # renders with a diameter of 0.2 Angstrom ssbonds
Just to practice, try some of the above commands with the applet for JSmol, as follows:
Selecting colors
The default option for model colors is CPK (Corey, Pauling, Koltun), for carbon (gray), nitrogen (blue), phosphorus or sulfur (yellow), hydrogen (white), iodine (violet), etc. However, it is possible to change colors globally in the model, or specifically for selected groups of atoms. The program accepts the command color or colour.
255,125,350] # specific color
color [# apply the color without needing to specify the representation
color bonds # specific color
color [xFF00FF] # program default
color cpk # all atoms connected by a bond
color molecule
color formalcharge
color partialcharge# for amino acids
color amino # for secondary structure
color structure : red (alpha-helix), yellow (beta-sheets), blue (turns), white (rest)
Proteins: violet (DNA), reddish (RNA)
Nucleic acid: chains
color chain: objects inherit the color of their associated atoms
color inherit: color scheme that includes nucleotides
color shapely: rainbow gradient (blue; N- or 5'-terminal; red; C- or 3'-terminal) color group
Specific colors
An atom or group of atoms can also be assigned a specific color, as follows:
AliceBlue,AntiqueWhite,Aqua,Aquamarine,Azure,Beige,Bisque,Black,
BlanchedAlmond,Blue,BlueViolet,Brown,BurlyWood,CadetBlue,Chartreuse,
Chocolate,Coral,CornflowerBlue,Cornsilk,Crimson,Cyan,DarkBlue,DarkCyan,
DarkGoldenRod,DarkGray,DarkGrey,DarkGreen,DarkKhaki,DarkMagenta,
DarkOliveGreen,Darkorange,DarkOrchid,DarkRed,DarkSalmon,DarkSeaGreen,
DarkSlateBlue,DarkSlateGray ,DarkSlateGrey,DarkTurquoise,DarkViolet,
DeepPink,DeepSkyBlue,DimGray,DimGrey,DodgerBlue,FireBrick,FloralWhite,
ForestGreen,Fuchsia,Gainsboro,GhostWhite,Gold,GoldenRod,Gray,Grey,Green,
GreenYellow,HoneyDew,HotPink,IndianRed,Indigo,Ivory,Khaki,Lavender,
LavenderBlush,LawnGreen,LemonChiffon,LightBlue,LightCoral,LightCyan,
LightGoldenRodYellow,LightGray,LightGrey,LightG reen,LightPink,LightSalmon,
LightSeaGreen,LightSkyBlue,LightSlateGray,LightSlateGrey,LightSteelBlue,
LightYellow,Lime,LimeGreen,Linen,Magenta,Maroon,MediumAquaMarine,MediumBlue,
MediumOrchid,MediumPurple,MediumSeaGreen,MediumSlateBlue,MediumSpringGreen,
MediumTurquoise,MediumVioletRed,MidnightBlue,MintCream,MistyRose,Moccasin,
NavajoWhite,Navy,OldLace,Olive,OliveDrab ,Orange,OrangeRed,Orchid,PaleGoldenRod,PaleGreen,PaleTurquoise,PaleVioletRed,PapayaWhip,PeachPuff,Turkey,Pink,Plum,
PowderBlue,Purple,Red,RosyBrown,RoyalBlue,SaddleBrown,Salmon,SandyBrown,
SeaGreen,SeaShell,Sienna,Silver,SkyBlue,SlateBlue,SlateGray,SlateGrey,Snow,
SpringGreen,SteelBlue,Tan,Teal,Thistle,Tomato,Turquoise,Violet,Wheat,White, WhiteSmoke,Yellow,YellowGreen.
Labeling the model (label)
/off: label on...or label off
Label on: label %c
String: label %C
Formal charge: label %P
Partial chargein protein: %n
Amino acid residue : %r
Residue no.: %a
Atom: %i
Atom identifier no.: %e
Element symbol: %c String
To view a specific set of atoms, such as residues in a protein, you can use:
select (Ser195,His57,Asp102) and *.ca; label "\%n \%R";color label orange ;set labelfront
Some specific operations also allow labeling.
# label with the expression
label binding site | site # label with the expression, separated by lines ("|" is the "pipe" command) label binding
Jmol also allows you to label a specific atom, residue, interaction or reaction site, or some group for better identification and exploration of the model. To do this, you can select the structure by select, followed by the proposed label. For example:
# selection of the Proline residue at position 31 of the protein sequence
select pro31 -31
label Proline"Model 1" # insertion of text on the screen
set echo top left; echo # names all atoms with symbol and atomic number select all; label on
Selecting parts of the model
To select a general group of atoms, simply combine with the mouse Shift+left click+drag for the selected group (you must click on the icon that represents it in the menu first). For a more specific selection, you can use some of the specific or predefined atom expressions, as below:
:
Nature of the molecule
all, none, protein, nucleic, dna, rna, carbohydrate, hetero, ligand, solvent, water or hoh, ions, hem, amino
Chemical element: oxygen, nitrogen, carbon
By name: _N, _C, _Fe
By symbol: elemNo=7, or atomNo=5
By atomic no.in the sequence (serial): atomNo<50
By no. atom identification
:
Part of the molecule:b (for chain), spine
backbone, sidechain,
Residue type3-letter abbreviation for amino acids, acidic, basic, polar, neutral, charged, purine, pyrimidine, large, small, buried, surface, cyclic, hydrophilic, hydrophobic, aromatic, cystine, aliphatic, spine, base
2a. in proteins
Structure helix, sheet, turn
The general commands for using the above expressions or combinations of them are, basically:
select, restrict, hide, display, delete
Each expression must be enclosed in parentheses. You can also apply boolean operations (or, and, but not, or =, <, >, <=, >=, !=).
The restrict command is irreversible in nature, while the hide command is reversible in rendering. followed by the desired expression. Some examples:
Here are some examples:
Restrict command# only keeps the helices of the secondary structure
restrict helix # only the ligand
restrict ligand # only the protein without prosthetic groups
restrict not ligand 42-60 # only keeps the indicated residue sequence
restrict # only keeps the identified group (a ligand, in this case)
restrict f6p not(:a, :b) # keeps chains other than "a" and "b"
restrict
Select command
select Tyr
select polar# selects all atoms
select all # does not select any atoms
select none # selects two ligands
select bmp,amp select (bmp, amp) and oxygen
:b # selects the heme group of chain "b"
select hem and :b # selects the heme group of chain "b", omitting Fe
select hem and not iron */2 # all atoms of model 2
select connected(oxygen) # all atoms bonded to an oxygen
select :A .ca # alpha carbon of serine no. 70 of chain A
select ser70 # heteroatoms except water
select hetero and not solvent # only water
select remove group hetero and not water # heteroatoms except ligand
select hetero and not ligand # only protein core residues
select buried only # select helices or protein backbone
select helix or backbone # select other 2nd protein structures (turn, sheet)
select not helix 62 and(sidechain or alpha) # sidechain or alpha carbon of residue 62
select # alpha carbons of serine no. 70
select ser70.ca :a.ca # alpha carbons of serine no. 70 of chain "a"
select ser70 select (lys,arg) # only Lys and Arg residues
select (lys,arg) and :b # Lys and Arg residues of chain "b"
19-32 :y # sequence of residues of chain "y"
select # Asp residue at position 47
select asp47 47 :y # asp47 residue of chain "y"
select [asp]select (10 or 25) and backbone
>14 and resNo<25 and *.CA # alpha carbons of residues 14 to 25
select resNo/2 # oxygen of water molecules in model 2
select hoh.oselect (14,16,18,20) # the numbered residues
*:b # the backbone of chain "b"
select backbone and *:b # the backbone of all chains except "b"
select backbone and not # everything that is not hidden
select not hidden...select displayed # everything that was not previously selected
select not selected # carbon atoms not previously selected
select carbon and not selected
Delete commanddelete(calcium,nadph)
Special selections
within command
This command allows a recursive selection, that is, a selection within a selection.
within (5, (bca,amp)) # selects two ligands that are 5 Angstroms away from the selected group of atoms
select within(3.0, _Fe) # all atoms within 3 Angstroms of the iron atom select
define command
Allows you to define a group of atoms for specific rendering or observation. After defining, simply use select or another command to change the model.
test (arg10) # select only Arg10
define test (arg10 or asn46) # select both residues
define test (ser195 or asp102 or his57)
define within(3.0, _Cu) # 3 Angstroms away from copper atom
define Site within(5.0,arg31) # 5 Angstroms away from Arg31
define PointX # previously selected define neighbors selected
Model magnification (zoom)
There are two basic commands in Jmol for magnification:
- zoom : (expression) size
- zoomTo : time (expression) size
The second command allows an animation of the model, which will be explained in the homonymous section below. Here are some examples for the zoom command.
2x magnification: zoom in
3x magnification: zoom \*3
2x reduction: zoom out
3x reduction: zoom /3
: zoom off
Remove magnification: restrict ligand; zoom 0
Restrict ligand and magnification100: restores the initial size zoom
Surfaces
Jmol allows you to render some types of surfaces around the atoms of the model. For macromolecules it should be noted that rendering will take longer.
/ off \# van der Waals surface dots only \# only vdw surface present (without model) dots vanderwaals...or dots vdw dots ionic
dots on
/off # molecular surface
isosurface on# excluding solvent
isosurface solvent # including solvent
isosurface molecular 5 # surface at a given VDW radius
isosurface molecular # surface accessible solvent
isosurface sasurface # "molecular electrostatic potential"
isosurface mep # Van der Waals surface
isosurface map vdw # electrostatic potential
isosurface map mep # or temperature, vanderwaals
isosurface molecular map property PartialCharge
/off # molecular surface geodesic (curved) geosurface only # only the surface, without model geosurface vdw
geosurface on5 # value in Angstrom
geosurface ionic geosurface
: To visualize the surfaces including the solvent, you can use the "set solvent on" command first. Note
Graphs
Some two- and three-dimensional graphs can be generated from simple Jmol commands. To return to the original model, issue the model 1 command. Some examples:
# resno = residue number (plots after command to calculate surface charge - see above)
plot properties resno partialcharge # 3D plot with dihedral angles against residue no. plot rama...or...
plot properties phi psi resno # Ramachandran plot for structure 2a. in proteins
plot ramachandran : to view the phi and psi angles in the model (not in the plot), type: draw rama (draw off to hide)
Note
: hydrophobicity, mass, temperature, radius, occupancy, chaino Other properties
Creating and reading scripts
“Scripting” allows the observation and analysis of a specific part of the model under study, by composing code snippets as command lines. In this way, the script resembles an algorithm with a succession of commands. A script can be loaded by calling program files (File, Open), or even by dragging the file to the program’s screen area.
A Jmol script is based on a Java Script dialect, and can be driven by a sequence of commands on each line of a simple text file, saving it as .spt.
On the other hand, Jmol has its own construction and testing environment, Script Editor, accessible through the main Menu. In this environment, it is possible to create, open, create, check, and run a script.
The Editor can be used when there are several command lines, for better visualization of the algorithmic sequence. In this case, it is also possible to include comments, using:
/* comment */
or// comment //
or# comment
In the Programming section, some scripts created in the Editor will be presented.
It is also valid to copy/paste some code snippets in the Console or Jmol/JSmol, separating the commands with semicolons on successive lines. This way, the Script Editor is simulated in the Console itself.
It is also possible through Jmol to define an initial script to be run when the program is opened. To do this:
It is also possible through Jmol to define an initial script to be run when the program is opened. To do this:
"commands" set defaultLoadScript
Mutation
It is also possible to observe consequences of mutating specific residues in a model, such as weak interactions (electrostatics or hydrogen bonds, for example).
33Lys \# specifically changes position 33 of the primary sequence to Lysine mutate Ala34 \~W \# alteral Ala to Trp mutate(1:3) \~GAL \# changes the first three positions in the protein to Gly, Ala and Leu mutate
Visualizing regions with strut
function
This function allows you to connect atoms in the structure of a protein, showing a dash between them.
=1392 or atomno=1403
select atomno
connect
strut2.0
strut color strut pink
Animations
in myoglobin: select hem; wireframe only; wireframe 70 \# exclusive rendering of the zooto group 2(\_Fe) 0 \# 2x magnification Focusing on the Fe atom
Zoom in (zoomto)
This feature allows you to view in a magnified and temporally adjusted way mind, some parts of the model of interest, such as ligand interaction sites or prosthetic groups. The syntax of the expression is:
zoomTo (atom/group expression) size or...
zoomto or time (atom/group expression) size zoomto
Examples:
in 3x, half a second at a time: zoomto 0.5 *3
Zoom in 4x, half a second at a time: zoomto 0.5 400
Zoom 2x magnification: zoomto 2(ligand) 0
Focus on a ligand at 4x magnification, half a second at a time: zoomto 0.5(ligand)* 4 Focus on a ligand at
Delay
Command that allows you to wait for a certain period (in seconds), before the next action. Normally used in the sequence of commands by the Console, throughout a script.
Move
The move and moveTo commands allow you to combine rotation, translation, and zoom actions on models. The move command reorients the model based on the current coordinates, and has the syntax:
move rotX rotY rotZ zoom dX dy dZ slab time
Where rot represents the rotation on a given axis, and d the translation on the axis. Examples:
90 0 0 0 0 0 0 0 1 - rotates the model 90º on the X axis;
move 0 720 0 0 0 0 0 0 1 - rotates the model two complete turns around the Y axis, during 1 s;
move 90 15 0 100 0 20 0 0 2 - for 2 s, rotates the model by 90º on the X axis and 15º on the Y axis, increases its size to 100, and translates it by 20% of the panel height, all at the same time move
MoveTo
Results in an absolute orientation of the model, regardless of its previous coordinates. Its insertion is not simple, since it depends on the orientation data of the model when loaded for the first time, and which can be obtained by:
show orientation
An example of the result of the command is:
/* time, axisAngle */ 1.0 { 616 -708 -346 47.68} /* zoom, translation */ 400.0 0.0 0.0 /* center, rotationRadius */ {15.174467 28.719118 4.726837} 35.148052 /* navigation center, translation, depth */ {0 0 0} 0 0 0 /* cameraDepth, cameraX, cameraY */ 3.0 0.0 0.0;
moveto #OR
#Follows Z-Y-Z convention for Euler angles
15.174467 28.719118 4.726837}; rotate z 130.27; rotate y 44.57; rotate z -147.67; zoom 400.0; reset;center {
Note that there are two sets of commands, one for moveTo and the other for reset, center, rotate and translate. To obtain the model in its original coordinates, simply copy one or the other set of data.
Using the first set (moveTo), the line is copied and the animation time is changed, in this case the value 1.0 in “axisAngle */ 1.0”.
Compare
Compares 2 models and reorients the coordinates of the second one to be juxtaposed to the first one, using a correlation algorithm.
"$tyrosine" "$epinephrine";
load files *;
frame 2.1} {1.1} rotate translate 5.0 compare {
Programming in Jmol
Programming and loop commands implemented in Jmol:
IF FOR WHILE STEP BREAK WAIT PAUSE BREAK CASE CONTINUE QUIT
Loop (loop)
Allows you to execute a command line repeatedly.
3; color bonds green; loop 1 # the loop is executed every 1 s color bonds red; delay
Molecular modeling
Although quite limited as a tool for molecular modeling purposes, Jmol allows some didactic approaches. The following script exemplifies the tool in modeling. It can be copied and pasted into the Script Editor window, or loaded from a text file.
# Molecular modeling #1
=3fgu;
loadligbind (ANP, BGC, MG); select ligbind
define 3.3
connect 0.5
strut
color strut yellow hide protein or water
# Molecular modeling #2
=3fgu # load structure
load
cartoon only
hide waterselect(BGC,ANP)
wireframe only
select MG100
spacefill
color palegreenligbind (ANP,BGC,MG)
defines
select remove hetero and not water3.3(ligbind and (oxygen or nitrogen)) (selected and (oxygen or nitrogen)) strut yellow # creates lig.H sticks of the protein with the ligands
connect 0.5(ligbind) *4 # zooms every half second, up to 4x at the ligand site
zoomTo
0; center
zoom 2 DEPTH 30 / ROTATE 120
navigate zoomto (mg) *7
# Note: adapted from Procko, K., Bakheet, S., Beckham, J. T., Franzen, M. A., Jakubowski, H., & Novak, W. R. (2021). Modeling an Enzyme Active Site using Molecular Visualization Freeware. JoVE (Journal of Visualized Experiments), (178), e63170.