Getting Started
-Structure Dataset
-DNA rendering
-Surface Dataset
-Scalar Field Dataset: X-ray
-Scalar Field Dataset: EM
-Topograph Dataset
-Electrostatic Potential I
-Electrostatic Potential II
-Geometric Primitives
-Stereo output
-Saving the viewing matrix


Electrostatic Potential II

This example uses the atomic structure of ompF (2OMF), with an electrostatic potentials generated by Raimund Dutzler using UHBD.

Download this tutorial: pot.tar.gz
// set variables
set argcluster rnum=42,82,132
set acidics rnum=117,126,113
set pos 2.0
set neg -2.0

// load dataset: structure, surface and potential
load ompf.pdb
load ompf -type msms -name surf
load ompf.pot -name pot // -swap  add this on linux-i386 / osf machines

// calculate pore middle
push [.ompf:40.CZ] [.ompf:113.CG]
opr + ; push 2; opr /
set mp [peek]

// structure objects
.ompf new -name ca -type trace
.ompf new -name cr -sel $argcluster or $acidics
.ompf new -name all
.ompf.all hide

// center on pore middle
scene center $mp

// surface object
.surf new -name all
.surf.all hide

// surface around pore, light both sides
.surf new -name pore -sel 10<> $mp
.surf.pore render light2

// orient to get cut view through pore
scene set near-=0.2

// generate grid object
.pot new -name g -type grid -set center=$mp,size={20,20,30},step=1
// render as points (faster)
.pot.g render off

// this could also work, but finding a 
// reasonable distance is difficult
// .pot.g renew -sel not 3<>.ompf.all

// set grid color and radius according to is grid-values
.pot.g set color=white:blue -range val=0:$pos
.pot.g set color=blue -sel v>$pos
.pot.g set color=white:red  -range val=0:$neg
.pot.g set color=red -sel v<$neg

.pot.g set rad=0.1
.pot.g set rad=0.1:0.5 -range val=0:$pos
.pot.g set rad=0.5 -sel v>$pos
.pot.g set rad=0.1:0.5 -range val=0:$neg
.pot.g set rad=0.5 -sel v<$neg

.surf.pore hide
.surf.all show

// render as spheres
.pot.g render on

pause // next section

.surf.all hide
.pot.g render off
.pot.g hide

// map the same thing to the surface
.surf new -name pot
.surf.pot set color=white:blue -range src=.html
.surf.pot set color=blue       -range src=-2.html
.surf.pot set color=white:red  -range src=-3.html
.surf.pot set color=red        -range src=-4.html

// trick: make potential colored surface transparent and display 
// with opaque, white surface, try varying the transparency
.surf.pot render t=0.6
.surf.all show

pause // next section

.*.* hide

.surf.all show

// create 0 +1 and -1 contour surfaces
.pot new -name lzero  -set center=$mp,level=0.0,size=50  
.pot.lzero set color=yellow
.pot new -name lplus  -set center=$mp,level=+1.0,size=50  
.pot.lplus set color=blue
.pot new -name lminus -set center=$mp,level=-1.0,size=50  
.pot.lminus set color=red

pause // next section

// slab object
.*.* hide
.surf.all show

.pot new -name slab -type slab -set center=$mp,dir={1,-0.5,0}
.pot.slab set color=white:blue -range val=0:$pos
.pot.slab set color=blue -sel v>$pos
.pot.slab set color=white:red  -range val=0:$neg
.pot.slab set color=red -sel v<$neg
.pot.slab render t=0.8
.surf.all render solid,solidc=grey
scene set far+=10