Jump to content

Huge surfaces

From PyMOL Wiki

PyMOL can render very large (huge) surfaces of proteins, using a few tricks. First off, you should know that because of the size, you do not get the level of accuracy that you would for a smaller molecule. However, if you need to represent a molecule (or object) with a few million atoms, this may be your option of choice.

Example

[edit]

The output from the example below is shown below. The PDB 1AON has nearly 60,000 atoms. This isn't the largest PDB, but it's a good example.

Strategy 1: Low resolution Gaussian Map

[edit]
# load a whopping big PDB
fetch 1aon, struct, async=0

# create a color spectrum over the object
spectrum count, selection=struct

# === now create a pseudo-fcalc map (a 3D volumetric scalar field) ===
# set the B-factors nice and high for smoothness
set gaussian_b_floor, 40

# ~10 A map resolution
set gaussian_resolution, 10

# ~10 A map spacing with a 10 A surrounding buffer
#  (you may need to vary this)
map_new map, gaussian, 10, struct, 10

# create a surface from the map
isosurface surf, map, 1.0

# now color the map based on the underlying protein
ramp_new ramp, struct, [0,10], [atomic, atomic]

color ramp, surf

# hide the ramp
disable ramp

Strategy 2: CA-only model with oversized radii

[edit]
# load a whopping big PDB
fetch 1aon, struct, async=0

# reduce to CA atoms only
remove struct & not guide

# create a color spectrum over the object
spectrum count, selection=struct

# increase VDW radii to compensate volume of missing non-CA atoms
alter struct, vdw=4

# increase VDW radius of solvent
set solvent_radius, 4, struct

# show molecular surface
as surface