Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

PyMOL Handout

PSB-CIBB
Babu A. Manjasetty PhD
Cyril Dian PhD
MariaRosa Quintero Bernabeu PhD
1
1 Introduction to the software
PyMOL is a molecular viewer, render tool, and 3D molecular editor intended for visu-
alization of 3D chemical structures including atomic resolution X-ray crystal structures
of: proteins, nucleic acids (DNA, RNA, and tRNA), and carbohydrates, as well as small
molecule structures of drug leads, inhibitors, metabolites, sugars, nucleoside phosphates,
and other ligands including inorganic salts and solvent molecules. PyMOL is a USER-
SPONSORED molecular visualization system on an OPEN-SOURCE foundation.
1.1 Visualization
To visualize a 3D structure the le has to be in the right format. The supported formats
are:
.pml PyMOL command script to be run on startup
.py, .pym, .pyc Python program to be run on startup
.pdb Protein Data Bank format le to be loaded on startup
.mmod Macromodel format to be loaded on startup
.mol MDL MOL le to be loaded on startup
.sdf MDL SD le to be parsed and loaded on startup
.xplor X-PLOR Map le (ASCII) to be loaded on startup
.ccp4 CCP4 map le (BINARY) to be loaded on startup
.cc1, .cc2 ChemDraw 3D cartesian coordinate le
.pkl Pickled ChemPy Model (class chempy.model.Indexe)
.r3d Raster3D le
.cex CEX le (Metaphorics)
.top AMBER topology le
.crd AMBER coordinate le
.rst AMBER restart le
.trj AMBER trajectory
.pse PyMOL session le
.phi Delphi/Grasp Electrostatic Potential Map
Once your structure is loaded, you can modify it. The simplest actions are:
close-up: zoom-in and out
surface/map: The surface representation of a protein, in PyMol, shows the Con-
nolly surface or the surface that would be traced out by the surfaces of waters in
contact with the protein at all possible positions.
symmetry: generate symmetry objects of your molecule.
align: align performs a sequence alignment followed by a structural alignment, and
then carrys out zero or more cycles of renement in order to reject structural outliers
found during the t.
2
stereo: the stereo option controls whether or not PyMOL displays the scene in stereo
mode. Stereo mode is a convenient way to see 3D. There are also various 3D modes
1.2 Input modes
Pymol supports two modes of input: point and click mode, and command line mode. It is
also possible to work using scripts.
Manually: the point and click allows you to quickly rotate the molecule(s) zoom in
and out and change the clipping planes.
command line: the command line mode where commands are entered into the external
GUI window supports all of the commands in the point and click mode, but is more
exible and possibly useful for complex selection and command issuing. Commands
entered on the command line are executed when you press the return key.
Script: running a Python script or a Pymol command script from PyMOL, usu-
ally the command: run script.py or rum script.pml is enough. Of course, the le
script.py(pml) needs to be in the working directory.
1.3 The Pymol interface
When PyMol is opened, two windows appear. The smaller window (called the External
GUI in PyMol documentation) contains the menu bar (File, Edit, Help, Display, etc),
shortcut buttons for common commands, and the command line. The second window is
the PyMOL Viewer, which is where all the magic happens. In the Viewer, 3D models are
displayed, and the user interacts (eg rotates) and manipulates the model.
Pymol viewer (3D Screen): the objects that PyMOL renders in 3D are loaded from
coordinate les that describe (in great detail) locations of individual atoms in the
molecule. PyMOL can display more than one object at a time, and provides an
Object Control Panel to adjust viewing modes, colors, labels, hiding, and just about
anything else relating to objects.
Object list: on the right-hand side of the Pymol viewer there is a list of all the objects
that have been loaded. After each object name is a set of command buttons which
control the object. Here are the buttons and some of their options:
A - Actions: Rename, duplicate, remove, apply presets (like ball-and-stick or
publication), perform computations
S - Show: Change the way things appear, eg change to stick or cartoon view.
H - Hide: Things that are shown using S accumulate, and dont automatically
replace the last view. H is the opposite of S and hides unwanted representations.
3
L- Label: Label atoms, residues, etc.
C - Color: Change the color of atoms and groups.
Command line: the PyMol command line is a great tool that lets the experienced user
change all sorts of options that simply dont appear in the point-and-click graphical
interface. It can also be a lot faster. Combined with scripting, it is a powerful option
for automating tasks and making intricate sets of changes. But, its complex, and
page upon page of PyMol documentation cover these commands, so were going to
ignore them as much as possible.
Mouse controls
L Rota M Move R MovZ Wheel Slab
Shift +Box -Box Clip MovS
Ctrl +/- PkAt Pk1 -
CtSh Sele Cent Menu -
DblClk Menu Cent PkAt -
Main commands Here you will nd the main commands for working with PyMOL.
Please refer to the Pymol reference card and other literature for more details.
1. open: in the external GUI, File open to open your le, that will be an object
on Pymol.
2. load (command): reads several le formats. If an object is specied, then the le
is loaded into that object. Otherwise, an object is created with the same name
as the le prex. usage: load lename [,object [,state [,format [,nish [,discrete
[,multiplex ]]]]]]
3. run: executes an external Python script in a local name space, the main Python
namespace, the global PyMOL namespace, or in its own namespace (as a mod-
ule). Usage: run python-script [, (local global module main private
) ]
4. set: is one of the most utilized commands. PyMOL representations, states,
options, etc. are changed with set. Briey, set changes one of the PyMOL state
variables. Usage set name, [,value [,object-or-selection [,state ]]]
5. select: mouse selection mode or as a command. Creates a named selection
from an atom selection. Selections are one of the most powerful aspects of
PyMOL and learning to use selections well is paramount to quickly achieving
your goals in PyMOL.
6. get (command): returns the value of a setting.
7. Help (command): typing help name of command on the command line, you get
information about how to use that command. Also there is a general help menu
on the external GUI.
4
8. Save: writes selected atoms to a le. File save (dierent options). Also as a
command, it is necessary to specify options. Usage save le [,(selection) [,state
[,format]] ]
9. Quit: close the program.
10. Reinitialize: reinitialize Pymol.
Wizards and plugins: there are special Python scripts which work with PyMOL in
order to obtain direct user interaction and easily perform complicated tasks. You
can access them through the wizards menu on the External GUI.
Plugins are external modules which extend Pymols capabilities. Available plugins (if
any) are shown in the Plugin menu on the External GUI. If no plugins are listed, then
either none have been installed, or those that are installed are not yet functional.
Rendering: this is a small plugin to render images with a given DPI. The Ray
button raytraces, and the Draw button just draws the image without raytracing
(a fast way to see that the height/width look good).(see 6)
2 Simple gure
Cartoon: right-hand side of the Pymol viewer, changes the default cartoon for a set
of atoms.
Color: right-hand side of the Pymol viewer, changes the color of an object or an atom
selection.
Background/light/shadow/fog/clip: Lighting is important for high-quality shots. Py-
MOL supports of up to 10 virtual lights. You can turn the lights on/o and also
position them where you want. Also it is possible to change the background color
and the shadows in your gure. You can also chose the clipping planes with clip.
Ray high resolution: creates a ray-traced image of the current frame. See 6
Example script
load gank_0207.pdb,a
bg_color white
set cartoon_fancy_helices, 0
Center: translates the window, the clipping slab, and the origin to a point centered
within the atom selection.
Zoom: scales and translates the window and the origin to cover the atom selection.
5
Selection (around/expand ect.): creates a named selection from an atom selection.
Selections are one of the most powerful aspects of PyMOL and learning to use se-
lections well is paramount to quickly achieving your goals in PyMOL. Selections can
be done mainly by typing in sele object-name/segi-id/chain-id/resi-id/name-id, or by
selecting directly on the sequence.
sequence: botton right-hand side of the Pymol viewer. Shows the sequence of your
molecule.
View: makes it possible to save and restore viewpoints on a given scene within a
single session.
Residues display: right-hand side of the Pymol viewer
Non bonded: right-hand side of the Pymol viewer. Shows non-bonded atoms
Coordination/hydrogen bonds: bond creates a new bond between two selections, each
of which should contain one atom. You can easily create a new bond by selecting two
atoms, each with the CTRL-MIDDLE-MOUSE-BUTTON and typing bond on the
command line.
Modication of any parameters (alter): alter changes one or more atomic properties
over a selection using the python evaluator with a separate name space for each atom.
Example script
load pdb, prot1
# zoom consistenly 20 Ang from each object at the center
center prot1
zoom center, 20
3 Symmetry/packing/align
Symmetry: set symmetry can be used to dene or redene the crystal and spacegroup
parameters for a molecule or map object. symexp creates all symmetry-related
objects for the specied object that occur within a cuto about an atom selection.
Align (pymol/coot/ccp4mg ect): performs a sequence alignment followed by a struc-
tural alignment, and then carrys out zero or more cycles of renement in order to
reject structural outliers found during the t. For comparing proteins with lower
sequence identity, an alignment program like, Cealign might be a better choice. Ex-
ample script:
align prot1////CA, prot2, object=alignment
6
Selection: see 2
Example script
load gank_0207.pdb,a
#symexp prefix, object, selection[, cutoff]
symexp sym=foo,(foo),5.0
delete sym*
4 NMR structures
NMR models should be loaded into the same object, but should have dierent states. Load
a model into an object and then slplit it into dierent states:
set all_states, on
split_states name
It is possible to t two structures, i.e. supperimpose them. Only matching atoms in
both selections will be used for the t.
fit (selection), (target-selection)
5 Maps and Surfaces
5.1 Loading and rendering electron density maps using ccp4 format
Use FFT to create a map in CCP4. (This task can be run from the Run FFT-Create
Map option under Map and Mask Utilities). You can create a simple map or a Fo-Fc
map as you wish. CCP4i will create a 2Fo-Fc map by default. To make a Fo-Fc map, set
F1=DELFWT and PHIC=PHDELWT in the task window. Select the option to cover all
atoms in PDB le. For pymol to read the map later, you will need to add the le extension
.map.ccp4 to the generated map.
1. Open pymol and read in your PDB le. Create a selection about whatever you want
to see the map around. Typically one would display the selection as sticks.
2. Open your map in pymol, e.g. mymap.map.ccp4 (you need the ccp4 extension). An
object named mymap.map will be created by pymol.
7
3. Identify a selection about which to display your map, e.g. Select site, resi X-Y and
resn Z
4. To display the map around your selection (e.g., named site) issue a command similar
to this:
isomesh map, mymap.map, 2.0, site, carve=1.6
This command will create a mesh map object named map from the object mymap.map,
contoured at 2.0 sigma, around the selection site, within 1.6

Aof selected atoms. You


can change the contour level and carve parameter to suit.
5. For a publication quality gure the following are suggestions:
color grey50, map # sets map to 50% gray
set mesh_width, 0.5 # makes meshes thinner for ray-tracing
bg_color white #sets background to white
set ray_trace_fog, 0 # turns off raytrace fog--optional
set depth_cue, 0 # turns off depth cueing--optional
set ray_shadows, off # turns off ray-tracing shadows
5.2 Surface
To calculate a surface of your protein (see also 1.1), it is always good to prepare a pdb
without non bonded atoms (ligands, water, ions etc.)
Create full surface
load "pdb", object name
hide all
show surface, "object name"
set surface_quality, 1
rebuild
Create partial surface
load "pdb", object name
hide all
set surface_quality, 1
rebuild
sel A, id 1-100
create B, A
show surface, B
8
Transparency
set transparency, 0.5 # between 0 to 1
5.3 Electrostatic surface using APBS: APBS-generated electrostatic sur-
face displayed in PyMOL
APBS, the Adaptive Poisson-Boltzmann Solver, is a freely available macromolecular elec-
trostatics calculation program. It is a cost-eective but uncompromised alternative to
GRASP, and it can be used within pymol. Pymol can display the results of the calcula-
tions as an electrostatic potential molecular surface.
PyMol currently supports the APBS plugin. This plugin makes it possible to run
APBS from within PyMOL, and then display the results as a color-coded electrostatic
surface (units KbT / ec) in the molecular display window (as with the image to the right).
See the APBS wiki for more details, including instructions on how to download, install and
use the plugin.
In order to calculate an electrostatic potential molecular surface using APBS pymol
plugin with your protein pdb, a modied version of your pdb is required with the .PQR
extension.
Pdb2pqr software or server were designed to convert PDB-format structural information
into PQR-format parameterized les. A PQR le is a popular and compact way to include
atomic parameters in a PDB-like format by replacing the occupancy column of a PDB le
(P) with the atomic charge (Q) and the temperature factor column with the radius (R).
Preparation PQR
There is a program that allows to convert pdb les to pqr format:
http://www.poissonboltzmann.org/pdb2pqr/
Before to run pdb2pqr with your pdb you need to make sur that:
1. Your pdb should not contain any residues in several conformers ( mainly struc-
ture at high resolution)
2. Your pdb should contain complete residues information (missing lateral chain
have to be incorporated)
3. Bfactor of your pdb need to be <100
4. Remove non bonded atoms (except specic metals)
Nucleic acids may prove problematic for the apbs plugin. If so, use the pdb2pqr
command-line tool to create a pqr le manually, instead of using the plugin to gen-
erate it. Then direct the APBS GUI on the main menu to read the pqr le you
externally generated.
9
How to use APBS plugin
http://www.poissonboltzmann.org/apbs/examples/visualization/apbs-electrostatics-
in-pymol
Go to Plugin APBS Tools to open the APBS calculation plugin.
1. Under the Main tab of the PyMOL APBS Tools window, select Use another
PQR and either browse to (via the Choose Externally Generated PQR: button)
or input the path to your PQR le. This step is necessary to ensure you use the
radii and charges assigned by PDB2PQR.
2. Under the APBS Location tab of the PyMOL APBS Tools window, either
browse to (via the APBS binary location: : button) or input the path to your
local APBS binary. It is not necessary to provide a path to the APBS psize.py
binary for most biomolecules.
3. Under the Temporary File Locations tab of the PyMOL APBS Tools window,
customize the locations of the various temporary les created during the run.
This can be useful if you want to save the generated les for later use.
4. Under the Conguration tab of the PyMOL APBS Tools window, hit the Set
grid to set the grid spacings. The default values are usually sucient for all but
the most highly charged biomolecules.
5. Under the Conguration tab of the PyMOL APBS Tools window, customize
the remaining parameters; the defaults are usually OK.
6. Under the Conguration tab of the PyMOL APBS Tools window, hit the Run
APBS button to start the APBS calculation. Depending on the speed of your
computer, this could take a few minutes. The Run APBS button will become
unselected when the calculation is nished.
Visualization of the surface potentials and Electrostatic isocontours
Surface potentials
If you havent already, hide the isocontours by hitting Positive Isosurface and
Negative Isosurface and Hide buttons. The surface potential is also straight-
forward to visualize. Set the Low and High values to the desired values
(usually 1, 5, or 10 kT/e) at which the surface colors are clamped at red
(-) or blue (+). Check the Solvent accessible surface and Color by potential
on sol. acc. surf. buttons to plot the potential on the solvent-accessible (probe-
inated or Lee-Richards) surface. Hit the Molecular Surface Show button to
load the surface potential.
In my opinion, the solvent-accessible surface tends to reveal more global features
of the surface potential. Tighter surfaces (e.g., van der Waals and molecular or
10
Connolly surfaces) provide more information about the shape of the biomolecule
but otherwise tend to simply map atomic surface charges onto the biomolecular
surface. Thankfully, PyMOL provides an excellent solution to the conicting
need to obtain geometric information from the molecular surface together with
useful electrostatic potential information from the solvent-accessible surface.
To visualize the molecule in this way, simply uncheck the Solvent accessible
surface box and check the Color by potential on sol. acc. surf. box on the
Visualization tab.
Electrostatic isocontours
PyMOL makes this step very easy: adjust the positive and negative Contour
elds to the desired values (usually 1, 5, or 10 kT/e) and hit the Positive
Isosurface and Negative Isosurface and Show buttons.
6 Ray traced images for publication
6.1 Important Settings
These can be changed using the set command. Unless otherwise specied, the settings
apply only to the ray-tracing engine and not the OpenGL renderer. Some reconciliation
between the two renderers is much needed, so be warned that these settings may change
in the future.
Normally, the only settings you will need to change are orthoscopic, antialias, and
gamma. If you are down in an enzyme active site which is heavily shadowed, you may
want to increase direct to 0.5-0.7 in order to improve brightness and contrast.
orthoscopic = (0 or 1): controls whether the OpenGL renderer uses the same ortho-
scopic transformation as the renderer. Youll want to set this to 1 when preparing
gures so that OpenGL and raytracing match pixel-for-pixel. controls the relative
ambient intensity between OpenGL and the ray-tracer.
antialias =(0 or 1): generates a smooth image (best quality, but takes 4X as long).
spec reect, (0.0-1.0): intensity of the specular reection from the light.
ray shadows =(0 or 1): turn /ono shadows
ray trace fog = (0 or 1); turn on/o fog
depth cue= (0.0-1.0) Fog depth
direct (0.0-1.0): the planer light intesity originating from the camera
reect (0.0-1.0): the planer light intesity originating from the light source
11
spec power (1-100): how I crank-up the glossyness of rendered atoms
ambient (0.0-1.0): controls the ambient light intensity for both OpenGL and the
ray-tracer.
gamma (0.1-2.0) gamma transformation applied after rendering is complete.
6.2 Resolution/quality
Ray tracing mode
# normal color
set ray_trace_mode, 0
# normal color + black outline
set ray_trace_mode, 1
# black outline only
set ray_trace_mode, 2
# quantized color + black outline
set ray_trace_mode, 3
set ray_trace_mode, 1 # (or 2 or 3; best with "bg_color white;set antialias,2")
# These two new modes -- 2 and 3 -- are cool cartoon looking modes.
Publication quality gures
To render a gure with the default resolution (640x480), use the ray command or the Ray
button on the GUI window. You will be able to preview the low resolution gures on screen
To render a gure with a higher resolution you should use a number which is a multiple
of 1024:
ray 1204, 1204
ray 1280, 1024
ray 2048, 2048
ray 4096, 4096
6.3 Saving images
All images (ray-traced or not) can be saved in PNG format using the png command. This
format is directly readable by PowerPoint, and can be easily converted into other formats
using a package like ImageMagick. You can also save images using the Save Image option
in the File menu. Images are always saved at the same resolution as the viewer window.
12
ray
png my_image.png
Figure 1: Resolution for the dierent image formats.
7 Movie/morphing
Simple movie can be created with pymol. What you need is to write a script generating
several frames of your protein in dierent view and generate the corresponding images.
The resulting images can be then combined to creat the movie using several free-software.
First step: you need to dene what to show (rotation, translation, zoom ect) and
how long you want to show it ( how many frames you need to show it)
Second step: a movie can be made using either the gui (new version of pymol, 1.2
and 1.3) of pymol or a script.
Third step: making the movie
The newest version of pymol using the gui see: http://www.pymolwiki.org/index.php/MovieSchool 1
1. Single rotation
The basic idea is to pre-dene two views linked by a rotation step, then generate all
images between the two views.
13
#Load movie.pdb
Set the speed of the movie frame per second (FPS)
Select the initial view you want using the cmd get_view
set_view (\
-0.080400191, -0.252943367, 0.964139223,\
-0.889644265, 0.454434782, 0.045032199,\
-0.449527502, -0.854115129, -0.261566907,\
-0.000249837, 0.000085980, -190.179809570,\
14.270303726, 49.188472748, 0.545298576,\
149.940216064, 230.421966553, 0.000000000 )
Initializing the movie using mset
Definition:
mset 1 // simplest case, one state -> one frame
mset 1 x10 // ten frames, all corresponding to state 1
mset 1 x30 1 -15 15 x30 15 -1
// more realistic example:
// the first thirty frames are state 1
// the next 15 frames pass through states 1-15
// the next 30 frames are of state 15
// the next 15 frames iterate back to state 1
mset 1 x180 ( only one state using 480 frames)
# First movie frame
frame 1
# now store this view at frame 1
mview store
(mview store,object=object name, if you have several objects)
# Final movie frame: frame 180 (turn y, -180) (6 sec)
frame 180
14
Using a cmd line tape turn y, 180 followed by get_view
set_view (\
0.080400273, -0.236078084, -0.968406916,\
0.889644265, 0.455151498, -0.037094191,\
0.449527472, -0.858550072, 0.246620566,\
-0.000249837, 0.000085980, -190.179809570,\
14.270303726, 49.188472748, 0.545298576,\
149.940216064, 230.421966553, 0.000000000 )
mview store
(mview store,object=object name)
mview reinterpolate
(mview reinterpolate, object=object name)
# mview reinterpolate
Last thing is to tell PyMOL to interpolate the 100 frame zoom
so we dont have to do those 100 snapshots:
#go back to frame 1
Frame1
mview store
#play the movie
mplay
2. Single zoom
The script is identical to the previous one, except that you manually zoom to a ligand
for example resid 1001.
You can save movie images to numbered PNG format les with a common prex. If
you want each frame to be ray-traced, you should turn on raytracing of frames, turn
o caching, and clear the cache (see the Movie Menu or use the following commands).
set ray$\_$trace_frames=1
set cache$\_$frames=0
mclear
You can save the movie using thempng command, or you can save it from the File
15
menu. Either way, you must provide a prex which will be used to create numbered
PNG les.
mpng mov # will create mov0001.png, mov0002.png, etc.
You need dene all the render parameters before to create all png related to each
frames of the movie mpng prex [, rst [, last]]
Options rst and last can be used to specify an inclusive interval over which to
render frames. Thus, you can write a smart Python program that will automatically
distribute rendering over a cluster of workstations. If these options are left at zero,
then the entire movie will be rendered.
3. More complicated More complicated movies can be done using dierent scenes or
several moving objects tutorials can be done on this page.
8 Morphing
8.1 Morphing using LSQMAN/Pymol
You can generate intermediate pdb state between an initial pdb and a nal pdb using
LSQMAN. To do that you can use a script similar to the one below:
Script:
# generation of 30 pdb between 2 structures
lx_lsqman <<end-lsq
#Read in the two files
re m1 initial.pdb
re m2 final.pdb
#Tell LSQMAN to use all atoms
at no
#Fix silly nomenclature problems
nomen m1
nomen m2
fix
m1
a1-190
#(chain firstresidue-lastresidue)
m2
a1-190
strict
16
seq
torsion
#Morph between the two structures
morph
m1
A1-190
m2
A1-190
30 # number of pdb generated
morpha
c
m
A1-190
999
quit
end-lsq
8.2 Renumber the Files
This is actually the last line of the above script, so that renumbering is automatic. It
renumber the les 01 30, so the ls command will put them in the right order.
ls morph?_?.pdb | awk -F "_" {print ("mv "\$0" " \$1"_0"\$2)} | /bin/sh
8.3 Assign Secondary Structure
The Pymol manual says not to trust its secondary structure assignment procedure (which is
slow anyway). I used DSSP and a helper script dssp2pdb to add the secondary structure to
each intermediate les. I used the following script to add the secondary structure elements
to all the morphed PDB les.
#!/bin/bash
#Run dssp on the starting structure
dssp 2pdz-w.pdb 2pdz-w.dssp
#Get the stuff to add to each file
dssp2pdb -35 2pdz-w.dssp > tEmP
#If a morphed pdb doesnt already have it, add the secondary structure info.
for i in ls morph*pdb; do
if ! [ grep -l HELIX \$i ]; then
cat tEmP \$i > tEmP2
mv tEmP2 \$i
fi
17
done
rm -f tEmP
8.4 Generate the Morphing movie
In Pymol, each morphed structure is considered one state of a molecule. Each state is
loaded with the command
load file, object, state#
To automatically generate the loading part of the pymol script, I used the following
command:
ls morph*pdb |awk {print ("load",\$0",mov,"NR)} > load.pml
which loads each PDB into a different state of the molecule mol with these commands.
load morpha_01.pdb,mov,1
load morpha_02.pdb,mov,2
...
load morphb_29.pdb,mov,59
load morphb_30.pdb,mov,60
Then generate the command that will do the movie. In this case:
"mset" sets up a relationship between molecular states and movie frames. This makes it
possible to control which states are shown in which frame.
# the first thirty frames are state 1
# the next 15 frames pass through states 1-15
# the next 30 frames are of state 15
# the next 15 frames iterate back to state 1
#mset ( (state 1) (xframes) ) , ((state 1 state15) (blank meaning one frame)) ;
( (state 15) (xframes) ) ; ((state 15 state1) (blank meaning one frame))
mset 1 x30 1 -15 15 x30 15 -1
mplay
9 Pymol Reference:
manual
http://www.pymol.org/
18
http://www.pymolwiki.org/index.php/Main Page
tutorial
http://137.189.50.96/kbwong/teaching/pymol/pymol tutorial.html
http://www.ebi.ac.uk/ gareth/pymol/
http://freedom.bph.jhu.edu/eming/compbio/les/PyMOL Tutorial.pdf
http://www.weizmann.ac.il/Structural Biology/Pages/Levy/group meet/PyMol tutorial.pdf
Plugins: Emovie, APBS tool, Carver ect.
http://www.pymolwiki.org/index.php/Category:Plugins
http://www.weizmann.ac.il/ISPC/eMovie.html
10 Annex: Pymol reference card
19
P
y
m
o
l
R
e
f
e
r
e
n
c
e
C
a
r
d
M
o
d
e
s
P
y
m
o
l
s
u
p
p
o
r
t
s
t
w
o
m
o
d
e
s
o
f
i
n
p
u
t
:
p
o
i
n
t
a
n
d
c
l
i
c
k
m
o
d
e
,
a
n
d
c
o
m
m
a
n
d
l
i
n
e
m
o
d
e
.
T
h
e
p
o
i
n
t
a
n
d
c
l
i
c
k
a
l
l
o
w
s
y
o
u
t
o
q
u
i
c
k
l
y
r
o
t
a
t
e
t
h
e
m
o
l
e
c
u
l
e
(
s
)
z
o
o
m
i
n
a
n
d
o
u
t
a
n
d
c
h
a
n
g
e
t
h
e
c
l
i
p
p
i
n
g
p
l
a
n
e
s
.
T
h
e
c
o
m
m
a
n
d
l
i
n
e
m
o
d
e
w
h
e
r
e
c
o
m
-
m
a
n
d
s
a
r
e
e
n
t
e
r
e
d
i
n
t
o
t
h
e
e
x
t
e
r
n
a
l
G
U
I
w
i
n
d
o
w
s
u
p
p
o
r
t
s
a
l
l
o
f
t
h
e
c
o
m
m
a
n
d
s
i
n
t
h
e
p
o
i
n
t
a
n
d
c
l
i
c
k
m
o
d
e
,
b
u
t
i
s
m
o
r
e

e
x
i
b
l
e
a
n
d
p
o
s
s
i
b
l
y
u
s
e
f
u
l
f
o
r
c
o
m
p
l
e
x
s
e
l
e
c
t
i
o
n
a
n
d
c
o
m
m
a
n
d
i
s
s
u
i
n
g
.
C
o
m
m
a
n
d
s
e
n
t
e
r
e
d
o
n
t
h
e
c
o
m
m
a
n
d
l
i
n
e
a
r
e
e
x
e
c
u
t
e
d
w
h
e
n
y
o
u
p
r
e
s
s
t
h
e
r
e
t
u
r
n
k
e
y
.
c
o
m
m
a
n
d
h
e
l
p
h
e
l
p
k
e
y
w
o
r
d
L
o
a
d
i
n
g
F
i
l
e
s

l
e
l
o
a
d
i
n
g
l
o
a
d
d
a
t
a
/
t
e
s
t
/
p
e
p
t
.
p
d
b
l
o
a
d
i
n
g
f
r
o
m
t
e
r
m
i
n
a
l
p
y
m
o
l
d
a
t
a
/
t
e
s
t
/
p
e
p
t
.
p
d
b
t
o
g
g
l
e
b
e
t
w
e
e
n
t
e
x
t
a
n
d
g
r
a
p
h
i
c
s
E
s
c
t
o
g
g
l
e
Y
a
x
i
s
r
o
c
k
i
n
g
r
o
c
k
s
t
e
r
e
o
v
i
e
w
s
t
e
r
e
o
o
n
/
o
f
f
s
t
e
r
e
o
t
y
p
e
s
t
e
r
e
o
c
r
o
s
s
e
y
e
/
w
a
l
l
e
y
e
/
q
u
a
d
b
u
f
f
e
r
u
n
d
o
a
c
t
i
o
n
u
n
d
o
r
e
s
e
t
v
i
e
w
r
e
s
e
t
r
e
i
n
i
t
i
a
l
i
z
e
P
y
m
o
l
r
e
i
n
i
t
i
a
l
i
z
e
q
u
i
t
(
f
o
r
c
e
,
e
v
e
n
i
f
u
n
s
a
v
e
d
)
q
u
i
t
M
o
u
s
e
C
o
n
t
r
o
l
L
M
R
W
h
e
e
l
R
o
t
a
M
o
v
e
M
o
v
Z
S
l
a
b
S
h
i
f
t
+
B
o
x
-
B
o
x
C
l
i
p
M
o
v
S
C
t
r
l
+
/
-
P
k
A
t
P
k
1

C
t
S
h
S
e
l
e
C
e
n
t
M
e
n
u

D
b
l
C
l
k
M
e
n
u
C
e
n
t
P
k
A
t

s
e
t
t
h
e
c
e
n
t
e
r
o
f
r
o
t
a
t
i
o
n
o
r
i
g
i
n
s
e
l
e
c
t
i
o
n
A
t
o
m
S
e
l
e
c
t
i
o
n
o
b
j
e
c
t
-
n
a
m
e
/
s
e
g
i
-
i
d
/
c
h
a
i
n
-
i
d
/
r
e
s
i
-
i
d
/
n
a
m
e
-
i
d
m
o
l
e
c
u
l
a
r
s
y
s
t
e
m
s
e
l
e
c
t
i
o
n
/
p
e
p
t
m
o
l
e
c
u
l
e
s
e
l
e
c
t
i
o
n
/
p
e
p
t
/
l
i
g
c
h
a
i
n
s
e
l
e
c
t
i
o
n
/
p
e
p
t
/
l
i
g
/
a
r
e
s
i
d
u
e
s
e
l
e
c
t
i
o
n
/
p
e
p
t
/
l
i
g
/
a
/
1
0
a
t
o
m
/
p
e
p
t
/
l
i
g
/
a
/
1
0
/
c
a
r
a
n
g
e
s
l
i
g
/
a
/
1
0
-
1
2
/
c
a
r
a
n
g
e
s
a
/
6
+
8
/
c
+
o
m
i
s
s
i
n
g
s
e
l
e
c
t
i
o
n
s
/
p
e
p
t
/
/
a
n
a
m
i
n
g
a
s
e
l
e
c
t
i
o
n
s
e
l
e
c
t
b
b
,
n
a
m
e
c
+
o
+
n
+
c
a
c
o
u
n
t
a
t
o
m
s
i
n
a
s
e
l
e
c
t
i
o
n
c
o
u
n
t
a
t
o
m
s
b
b
r
e
m
o
v
e
a
t
o
m
s
f
r
o
m
a
s
e
l
e
c
t
i
o
n
r
e
m
o
v
e
r
e
s
i
5
g
e
n
e
r
a
l
a
l
l
,
n
o
n
e
,
h
y
d
r
o
,
h
e
t
a
t
m
,
v
i
s
i
b
l
e
,
p
r
e
s
e
n
t
a
t
o
m
s
n
o
t
i
n
a
s
e
l
e
c
t
i
o
n
s
e
l
e
c
t
s
i
d
e
c
h
a
i
n
s
,
!
b
b
a
t
o
m
s
w
i
t
h
a
v
d
W
g
a
p
<
3
A
r
e
s
i
6
a
r
o
u
n
d
3
a
t
o
m
c
e
n
t
e
r
s
w
i
t
h
a
g
a
p
<
1
.
0
A
r
e
s
i
6
n
e
a
r
1
a
t
o
m
s
c
e
n
t
e
r
s
w
i
t
h
i
n
<
1
.
0
A
w
i
t
h
i
n
4
r
e
s
i
6
B
a
s
i
c
C
o
m
m
a
n
d
s
S
o
m
e
c
o
m
m
a
n
d
s
u
s
e
d
w
i
t
h
a
t
o
m
s
s
e
l
e
c
t
i
o
n
s
.
I
f
y
o
u
a
r
e
u
n
s
u
r
e
a
b
o
u
t
t
h
e
s
e
l
e
c
t
i
o
n
,
c
l
i
c
k
o
n
t
h
e
m
o
l
e
c
u
l
e
p
a
r
t
t
h
a
t
y
o
u
w
a
n
t
i
n
t
h
e
v
i
e
w
i
n
g
w
i
n
d
o
w
a
n
d
t
h
e
n
l
o
o
k
a
t
t
h
e
o
u
t
-
p
u
t
l
i
n
e
t
o
s
e
e
t
h
e
s
e
l
e
c
t
i
o
n
.

l
l
v
i
e
w
e
r
w
i
t
h
s
e
l
e
c
t
i
o
n
z
o
o
m
,
/
p
e
p
t
/
/
a
c
e
n
t
e
r
a
s
e
l
e
c
t
i
o
n
c
e
n
t
e
r
/
p
e
p
t
/
/
a
c
o
l
o
u
r
a
s
e
l
e
c
t
i
o
n
c
o
l
o
u
r
p
i
n
k
,
/
p
e
p
t
/
/
a
f
o
r
c
e
P
y
m
o
l
t
o
r
e
a
p
p
l
y
c
o
l
o
u
r
s
r
e
c
o
l
o
r
s
e
t
b
a
c
k
g
r
o
u
n
d
c
o
l
o
u
r
b
g
c
o
l
o
r
,
w
h
i
t
e
v
d
W
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
s
p
h
e
r
e
s
,
1
5
6
/
c
a
s
t
i
c
k
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
s
t
i
c
k
s
,
a
/
/
l
i
n
e
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
l
i
n
e
s
,
/
p
e
p
t
r
i
b
b
o
n
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
r
i
b
b
o
n
,
/
p
e
p
t
d
o
t
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
d
o
t
s
,
/
p
e
p
t
m
e
s
h
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
m
e
s
h
,
/
p
e
p
t
s
u
r
f
a
c
e
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
s
u
r
f
a
c
e
,
/
p
e
p
t
n
o
n
b
o
n
d
e
d
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
n
o
n
b
o
n
d
e
d
,
/
p
e
p
t
n
o
n
b
o
n
d
e
d
s
p
h
e
r
e
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
n
b
s
p
h
e
r
e
s
,
/
p
e
p
t
c
a
r
t
o
o
n
r
e
p
r
e
s
e
n
t
a
t
i
o
n
o
f
s
e
l
e
c
t
i
o
n
s
h
o
w
c
a
r
t
o
o
n
a
u
t
o
m
a
t
i
c
,
a
/
/
c
l
e
a
r
a
l
l
h
i
d
e
a
l
l
r
o
t
a
t
e
a
s
e
l
e
c
t
i
o
n
r
o
t
a
t
e
a
x
i
s
,
a
n
g
l
e
,
s
e
l
e
c
t
i
o
n
t
r
a
n
s
l
a
t
e
a
s
e
l
e
c
t
i
o
n
t
r
a
n
s
l
a
t
e
[
x
,
y
,
z
]
,
s
e
l
e
c
t
i
o
n
C
a
r
t
o
o
n
S
e
t
t
i
n
g
s
S
e
t
t
i
n
g
t
h
e
v
a
l
u
e
a
t
t
h
e
e
n
d
t
o
0
f
o
r
c
e
s
t
h
e
s
e
c
o
n
d
a
r
y
s
t
r
u
c
-
t
u
r
e
t
o
g
o
t
h
o
u
g
h
t
h
e
C
A
p
o
s
i
t
i
o
n
.
c
y
l
i
n
d
r
i
c
a
l
h
e
l
i
c
e
s
s
e
t
c
a
r
t
o
o
n
c
y
l
i
n
d
r
i
c
a
l
h
e
l
i
c
e
s
,
1
f
a
n
c
y
h
e
l
i
c
e
s
[
t
u
b
u
l
a
r
e
d
g
e
]
s
e
t
c
a
r
t
o
o
n
f
a
n
c
y
h
e
l
i
c
e
s
,
1

a
t
s
h
e
e
t
s
s
e
t
c
a
r
t
o
o
n
f
l
a
t
s
h
e
e
t
s
,
1
s
m
o
o
t
h
l
o
o
p
s
s
e
t
c
a
r
t
o
o
n
s
m
o
o
t
h
l
o
o
p
s
,
1

n
d
r
i
n
g
s
f
o
r
c
a
r
t
o
o
n
s
e
t
c
a
r
t
o
o
n
r
i
n
g
f
i
n
d
e
r
,
[
1
,
2
,
3
,
4
]
r
i
n
g
m
o
d
e
s
e
t
c
a
r
t
o
o
n
r
i
n
g
m
o
d
e
,
[
1
,
2
,
3
]
n
u
c
l
e
i
c
a
c
i
d
m
o
d
e
s
e
t
n
u
c
l
e
i
c
a
c
i
d
m
o
d
e
,
[
0
,
1
,
2
,
3
,
4
]
c
a
r
t
o
o
n
s
i
d
e
c
h
a
i
n
s
s
e
t
c
a
r
t
o
o
n
s
i
d
e
c
h
a
i
n
h
e
l
p
e
r
;
r
e
b
u
i
l
d
p
r
i
m
a
r
y
c
o
l
o
u
r
s
e
t
c
a
r
t
o
o
n
c
o
l
o
r
,
b
l
u
e
s
e
c
o
n
d
a
r
y
c
o
l
o
u
r
s
e
t
c
a
r
t
o
o
n
h
i
g
h
l
i
g
h
t
c
o
l
o
r
,
g
r
e
y
l
i
m
i
t
c
o
l
o
u
r
t
o
s
s
s
e
t
c
a
r
t
o
o
n
d
i
s
c
r
e
t
e
c
o
l
o
r
s
,
o
n
c
a
r
t
o
o
n
t
r
a
n
s
p
a
r
e
n
c
y
s
e
t
c
a
r
t
o
o
n
t
r
a
n
s
p
a
r
e
n
c
y
,
0
.
5
c
a
r
t
o
o
n
l
o
o
p
s
h
o
w
c
a
r
t
o
o
n
l
o
o
p
,
a
/
/
c
a
r
t
o
o
n
r
e
c
t
a
n
g
u
l
a
r
s
h
o
w
c
a
r
t
o
o
n
r
e
c
t
,
a
/
/
c
a
r
t
o
o
n
o
v
a
l
s
h
o
w
c
a
r
t
o
o
n
o
v
a
l
,
a
/
/
c
a
r
t
o
o
n
t
u
b
u
l
a
r
s
h
o
w
c
a
r
t
o
o
n
t
u
b
e
,
a
/
/
c
a
r
t
o
o
n
a
r
r
o
w
s
h
o
w
c
a
r
t
o
o
n
a
r
r
o
w
,
a
/
/
c
a
r
t
o
o
n
d
u
m
b
e
l
l
s
h
o
w
c
a
r
t
o
o
n
d
u
m
b
e
l
l
,
a
/
/
I
m
a
g
e
O
u
t
p
u
t
l
o
w
r
e
s
o
l
u
t
i
o
n
r
a
y
h
i
g
h
r
e
s
o
l
u
t
i
o
n
r
a
y
2
0
0
0
,
2
0
0
0
u
l
t
r
a
-
h
i
g
h
r
e
s
o
l
u
t
i
o
n
r
a
y
5
0
0
0
,
5
0
0
0
c
h
a
n
g
e
t
h
e
d
e
f
a
u
l
t
s
i
z
e
[
p
t
s
]
v
i
e
w
p
o
r
t
6
4
0
,
4
8
0
i
m
a
g
e
s
h
a
d
o
w
c
o
n
t
r
o
l
s
e
t
r
a
y
s
h
a
d
o
w
,
0
i
m
a
g
e
f
o
g
c
o
n
t
r
o
l
s
e
t
r
a
y
t
r
a
c
e
f
o
g
,
0
i
m
a
g
e
d
e
p
t
h
c
u
e
c
o
n
t
r
o
l
s
e
t
d
e
p
t
h
c
u
e
,
0
i
m
a
g
e
a
n
t
i
a
l
i
a
s
i
n
g
c
o
n
t
r
o
l
s
e
t
a
n
t
i
a
l
i
a
s
,
1
e
x
p
o
r
t
i
m
a
g
e
a
s
.
p
n
g
p
n
g
i
m
a
g
e
.
p
n
g
H
y
d
r
o
g
e
n
B
o
n
d
i
n
g
D
r
a
w
b
o
n
d
s
b
e
t
w
e
e
n
a
t
o
m
s
a
n
d
l
a
b
e
l
t
h
e
r
e
s
i
d
u
e
s
t
h
a
t
a
r
e
i
n
v
o
l
v
e
d
.
d
r
a
w
a
l
i
n
e
b
e
t
w
e
e
n
a
t
o
m
s
d
i
s
t
a
n
c
e
5
4
2
/
o
e
1
,
5
3
8
/
n
e
s
e
t
t
h
e
l
i
n
e
d
a
s
h
g
a
p
s
e
t
d
a
s
h
g
a
p
,
0
.
0
9
s
e
t
t
h
e
l
i
n
e
d
a
s
h
w
i
d
t
h
s
e
t
d
a
s
h
w
i
d
t
h
,
3
.
0
s
e
t
t
h
e
l
i
n
e
d
a
s
h
r
a
d
i
u
s
s
e
t
d
a
s
h
r
a
d
i
u
s
,
0
.
0
s
e
t
t
h
e
l
i
n
e
d
a
s
h
l
e
n
g
t
h
s
e
t
d
a
s
h
l
e
n
g
t
h
,
0
.
1
5
s
e
t
r
o
u
n
d
d
a
s
h
e
n
d
s
s
e
t
d
a
s
h
r
o
u
n
d
e
n
d
s
,
o
n
h
i
d
e
a
l
a
b
e
l
h
i
d
e
l
a
b
e
l
s
,
d
i
s
t
0
1
l
a
b
e
l
a
r
e
s
i
d
e
l
a
b
e
l
(
5
4
2
/
o
e
1
)
,
"
%
s
"
%
(
"
E
5
4
2
"
)
s
e
t
l
a
b
e
l
f
o
n
t
s
e
t
l
a
b
e
l
f
o
n
t
i
d
,
4
s
e
t
l
a
b
e
l
c
o
l
o
u
r
s
e
t
l
a
b
e
l
c
o
l
o
r
,
w
h
i
t
e
E
l
e
c
t
r
o
s
t
a
t
i
c
s
T
h
e
r
e
a
r
e
a
n
u
m
b
e
r
o
f
w
a
y
s
t
o
a
p
p
l
y
e
l
e
c
t
r
o
s
t
a
t
i
c
s
i
n
P
y
-
m
o
l
.
T
h
e
u
s
e
r
c
a
n
u
s
e
G
R
A
S
P
t
o
g
e
n
e
r
a
t
e
a
m
a
p
a
n
d
t
h
e
n
i
m
p
o
r
t
i
t
.
A
l
t
e
r
n
a
t
i
v
e
l
y
t
h
e
u
s
e
r
c
a
n
u
s
e
t
h
e
A
P
B
S
P
y
m
o
l
p
l
u
g
i
n
.
P
y
m
o
l
a
l
s
o
h
a
s
a
b
u
i
l
t
i
n
f
u
n
c
t
i
o
n
t
h
a
t
i
s
q
u
i
c
k
a
n
d
d
i
r
t
y
.
g
e
n
e
r
a
t
e
e
l
e
c
t
r
o
s
t
a
t
i
c
s
u
r
f
a
c
e
a
c
t
i
o
n
>
g
e
n
e
r
a
t
e
>
v
a
c
u
u
m
e
l
e
c
t
r
o
s
t
a
t
i
c
s
>
p
r
o
t
e
i
n
c
o
n
t
a
c
t
p
o
t
e
n
t
i
a
l
P
y
m
o
l
M
o
v
i
e
s
(
m
a
c
)
m
o
v
e
t
h
e
c
a
m
e
r
a
m
o
v
e
x
,
1
0
t
u
r
n
t
h
e
c
a
m
e
r
a
t
u
r
n
x
,
9
0
p
l
a
y
t
h
e
m
o
v
i
e
m
p
l
a
y
s
t
o
p
t
h
e
m
o
v
i
e
m
s
t
o
p
w
r
i
t
e
o
u
t
p
n
g

l
e
s
m
p
n
g
p
r
e
f
i
x
[
,
f
i
r
s
t
[
,
l
a
s
t
]
]
s
h
o
w
a
p
a
r
t
i
c
u
l
a
r
f
r
a
m
e
f
r
a
m
e
n
u
m
b
e
r
m
o
v
e
f
o
r
w
a
r
d
o
n
f
r
a
m
e
f
o
r
w
a
r
d
m
o
v
e
b
a
c
k
o
n
e
f
r
a
m
e
b
a
c
k
w
a
r
d
s
g
o
t
o
t
h
e
s
t
a
r
t
o
f
t
h
e
m
o
v
i
e
r
e
w
i
n
d
g
o
t
o
t
h
e
m
i
d
d
l
e
o
f
t
h
e
m
o
v
i
e
m
i
d
d
l
e
g
o
t
o
t
h
e
m
o
v
i
e
e
n
d
e
n
d
i
n
g
d
e
t
e
r
m
i
n
e
t
h
e
c
u
r
r
e
n
t
f
r
a
m
e
g
e
t
f
r
a
m
e
c
l
e
a
r
t
h
e
m
o
v
i
e
c
a
c
h
e
m
c
l
e
a
r
e
x
e
c
u
t
e
a
c
o
m
m
a
n
d
i
n
a
f
r
a
m
e
m
d
o
1
,
t
u
r
n
x
,
5
;
t
u
r
n
y
,
5
;
d
u
m
p
c
u
r
r
e
n
t
m
o
v
i
e
c
o
m
m
a
n
d
s
m
d
u
m
p
r
e
s
e
t
t
h
e
n
u
m
b
e
r
o
f
f
r
a
m
e
s
p
e
r
s
e
c
o
n
d
m
e
t
e
r
r
e
s
e
t
20
M
i
s
c
e
l
l
a
n
e
o
u
s
a
d
d
h
y
d
r
o
g
e
n
s
i
n
t
o
a
m
o
l
e
c
u
l
e
s
e
l
e
c
t
i
o
n
h
a
d
d
a
l
i
a
s
a
s
e
t
o
f
c
o
m
m
a
n
d
s
s
e
p
a
r
a
t
e
d
b
y

a
l
i
a
s
g
o
,
l
o
a
d
1
h
p
v
.
p
d
b
;
z
o
o
m
2
0
0
/
;
s
h
o
w
s
t
i
c
k
s
,
2
0
0
/
a
r
o
u
n
d
8
s
t
r
u
c
t
u
r
a
l
l
y
a
l
i
g
n
a
l
i
g
n
p
r
o
t
1
/
/
/
/
C
A
,
p
r
o
t
2
,
o
b
j
e
c
t
=
a
l
i
g
n
m
e
n
t

t
o
n
e
m
o
l
e
l
c
u
l
e
t
o
a
n
o
t
h
e
r
f
i
t
s
e
l
e
c
t
i
o
n
,
t
a
r
g
e
t
c
o
p
y
a
t
s
e
l
e
c
t
i
o
n
c
o
p
y
t
a
r
g
e
t
,
s
o
u
r
c
e
c
r
e
a
t
e
a
n
e
w
s
e
l
e
c
t
i
o
n
c
r
e
a
t
e
t
a
r
g
e
t
,
s
e
l
e
c
t
i
o
n
d
e
l
e
t
e
a
s
e
l
e
c
t
i
o
n
d
e
l
e
t
e
s
e
l
e
c
t
i
o
n
s
a
v
e

l
e
s
a
v
e
f
i
l
e
n
a
m
e
,
s
e
l
e
c
t
i
o
n
p
r
o
t
e
c
t
o
r
d
e
p
r
o
t
e
c
t
a
s
e
l
e
c
t
i
o
n
[
d
e
]
p
r
o
t
e
c
t
s
e
l
e
c
t
i
o
n
m
a
s
k
o
r
d
e
m
a
s
k
t
o
a
l
l
o
w
/
s
t
o
p
s
e
l
e
c
t
i
o
n
[
u
n
]
m
a
s
k
s
e
l
e
c
t
i
o
n
a
l
i
g
n
c
o
o
r
d
i
n
a
t
e
s
w
i
t
h
a
x
i
s
o
r
i
e
n
t
s
e
l
e
c
t
i
o
n
g
e
t
t
h
e
c
u
r
r
e
n
t
r
o
t
a
t
i
o
n
m
a
t
r
i
x
g
e
t
v
i
e
w
i
n
p
u
t
a
r
o
t
a
t
i
o
n
m
a
t
r
i
x
s
e
t
v
i
e
w
s
a
f
e
l
y
r
e
f
r
e
s
h
t
h
e
s
c
e
n
e
r
e
f
r
e
s
h
s
t
o
r
e
a
s
c
e
n
e
v
i
e
w
n
a
m
e
,
s
t
o
r
e
,
d
e
s
c
r
i
p
t
i
o
n
r
e
s
t
o
r
e
a
v
i
e
w
v
i
e
w
n
a
m
e
,
[
r
e
c
a
l
l
]
s
e
t
a
n
e
w
c
o
l
o
u
r
s
e
t
c
o
l
o
r
n
a
m
e
,
r
g
b
S
e
c
o
n
d
a
r
y
S
t
r
u
c
t
u
r
e
s
P
y
m
o
l
h
a
s
a
s
e
c
o
n
d
a
r
y
s
t
r
u
c
t
u
r
e
d
e
t
e
r
m
i
n
a
t
i
o
n
a
l
g
o
r
i
t
h
m
c
a
l
l
e
d
d
s
s
,
h
o
w
e
v
e
r
i
t
i
s
b
e
t
t
e
r
t
o
u
s
e
t
h
e
D
S
S
P
a
l
g
o
r
i
t
h
m
a
n
d
t
h
e
n
d
e

n
e
t
h
e
l
i
m
i
t
s
m
a
n
u
a
l
l
y
.
t
o
r
u
n
d
s
s
d
s
s
s
e
l
e
c
t
i
o
n
t
o
d
e

n
e
h
e
l
i
c
a
l
s
t
r
u
c
t
u
r
e
a
l
t
e
r
1
1
-
4
0
/
,
s
s
=

t
o
d
e

n
e
l
o
o
p
r
e
g
i
o
n
s
a
l
t
e
r
4
0
-
5
0
/
,
s
s
=

t
o
d
e

n
e
s
t
r
a
n
d
s
t
r
u
c
t
u
r
e
a
l
t
e
r
5
0
-
6
0
/
,
s
s
=

r
e
b
u
i
l
d
t
h
e
c
a
r
t
o
o
n
a
f
t
e
r
a
l
t
e
r
a
t
i
o
n
r
e
b
u
i
l
d
g
e
t
d
i
h
e
d
r
a
l
a
n
g
l
e
g
e
t
d
i
h
e
d
r
a
l
4
/
n
,
4
/
c
,
4
/
c
a
,
4
/
c
b
F
i
l
e
s
c
h
a
n
g
e
t
h
e
w
o
r
k
i
n
g
d
i
r
e
c
t
o
r
y
c
d
<
p
a
t
h
>
l
i
s
t
c
o
n
t
e
n
t
s
o
f
c
u
r
r
e
n
t
d
i
r
e
c
t
o
r
y
l
s
p
r
i
n
t
c
u
r
r
e
n
t
w
o
r
k
i
n
g
d
i
r
e
c
t
o
r
y
p
w
d
C
r
y
s
t
a
l
S
t
r
u
c
t
u
r
e
s
T
o
r
e
c
r
e
a
t
e
c
r
y
s
t
a
l
p
a
c
k
i
n
g
o
f
m
o
l
e
l
c
u
l
e
s
w
i
t
h
i
n
5
A
o
f
p
e
p
t
i
n
t
h
e
p
e
p
t
.
p
d
b
(
w
h
i
c
h
m
u
s
t
c
o
n
t
a
i
n
C
R
Y
S
T
d
a
t
e
)
,
u
s
e
t
h
e
s
y
m
e
x
p
c
o
m
m
a
n
d
.
s
y
m
e
x
p
s
y
m
,
p
e
p
t
,
(
p
e
p
t
)
,
5
.
0
N
M
R
S
t
r
u
c
t
u
r
e
s
N
M
R
m
o
d
e
l
s
s
h
o
u
l
d
b
e
l
o
a
d
e
d
i
n
t
o
t
h
e
s
a
m
e
o
b
j
e
c
t
,
b
u
t
s
h
o
u
l
d
h
a
v
e
d
i

e
r
e
n
t
s
t
a
t
e
s
.
l
o
a
d
a
m
o
d
e
l
i
n
t
o
a
n
o
b
j
e
c
t
l
o
a
d
f
i
l
e
.
p
d
b
,
o
b
j
e
c
t
s
h
o
w
a
l
l
m
o
d
e
l
s
i
n
a
n
o
b
j
e
c
t
s
e
t
a
l
l
s
t
a
t
e
s
,
1
s
h
o
w
o
n
l
y
o
n
e
o
b
j
e
c
t
m
o
d
e
l
s
e
t
a
l
l
s
t
a
t
e
s
,
0
s
h
o
w
a
p
a
r
t
i
c
u
l
a
r
m
o
d
e
l
f
r
a
m
e
m
o
d
e
l
n
u
m
b
e
r
d
e
t
e
r
m
i
n
e
w
h
i
c
h
m
o
d
e
l
g
e
t
m
o
d
e
l

t
t
w
o
s
t
r
u
c
t
u
r
e
s
t
o
o
n
e
a
n
o
t
h
e
r
f
i
t
s
e
l
e
c
t
i
o
n

t
a
n
d
c
a
l
c
u
l
a
t
e
t
h
e
r
m
s
r
m
s
s
e
l
e
c
t
i
o
n
r
m
s
w
i
t
h
o
u
t

t
t
i
n
g
r
m
s
c
u
r
s
e
l
e
c
t
i
o
n

t
e
n
s
e
m
b
l
e
s
t
r
u
c
t
u
r
e
s
i
n
t
r
a
f
i
t
s
e
l
e
c
t
i
o
n
,
1
c
a
l
c
u
l
a
t
e
r
m
s
i
n
t
r
a
r
m
s
s
e
l
e
c
t
i
o
n
,
s
t
a
t
e
e
n
s
e
m
b
l
e
r
m
s
w
i
t
h
o
u
t

t
t
i
n
g
i
n
t
r
a
r
m
s
c
u
r
s
e
l
e
c
t
i
o
n
,
s
t
a
t
e
C
h
a
n
g
i
n
g
S
t
r
u
c
t
u
r
e
s
a
d
d
a
b
o
n
d
b
o
n
d
a
t
o
m
1
,
a
t
o
m
2
r
e
m
o
v
e
b
o
n
d
s
u
n
b
o
n
d
a
t
o
m
1
,
a
t
o
m
2
j
o
i
n
t
o
m
o
l
e
c
u
l
e
s
t
o
g
e
t
h
e
r
f
u
s
e
[
a
t
o
m
1
,
a
t
o
m
2
]
O
l
d
S
c
h
o
o
l
I
m
a
g
e
s
L
o
a
d
a
.
p
d
b
a
n
d
m
a
k
e
a
c
a
r
t
o
o
n
v
i
e
w
.
T
h
e
n
c
h
a
n
g
e
t
h
e
b
a
c
k
g
r
o
u
n
d
c
o
l
o
u
r
t
o
w
h
i
t
e
a
n
d
c
h
a
n
g
e
t
h
e
r
a
y
m
o
d
e
t
o
2
.
s
e
t
r
a
y
t
r
a
c
e
m
o
d
e
,
2
m
a
k
e
t
h
e
l
i
n
e
s
t
h
i
n
n
e
r
s
e
t
a
n
t
i
a
l
i
a
s
,
2
r
a
y
t
r
a
c
e
t
h
e
i
m
a
g
e
r
a
y
c

2
0
0
7
-
2
0
0
9
R
.
B
r
y
n
F
e
n
w
i
c
k

l
i
c
e
n
s
e
d
u
n
d
e
r
t
h
e
t
e
r
m
s
o
f
t
h
e
G
N
U
G
e
n
e
r
a
l
P
u
b
l
i
c
L
i
c
e
n
s
e
2
.
0
o
r
l
a
t
e
r
.
2
21

You might also like