Ramp New

From PyMOLWiki
Revision as of 15:06, 28 July 2011 by Inchoate (talk | contribs) (Elaborate examples)
Jump to: navigation, search

ramp_new creates a color ramp based on a map potential value or based on proximity to a molecular object.

Color ramps are extremely powerful but complicated to use.

In the simplest case, they can be used to color representations based on the potential values found in a map object at the corresponding positions in space. In another simple case, representations can be colored based on proximity to a target. Note that since ramp targets must themselves be real objects (not merely selections), the "create" command may be needed in order to generate an appropriate target. In more complicated cases, they can be used to color representations on one object based atoms found in another. Ramps can operate recursively. In other words, the output color from one ramp can be used as the input color for another. For example, you could color by map potential within a certain distance of the target object, beyond which, a uniform color is applied.


Usage

 
# normal PyMOL usage
ramp_new name, map_name [, range [, color [, state [, selection [,
        beyond [, within [, sigma [, zero ]]]]]]]]


# in the API
cmd.ramp_new(string name, string map_name, list range, list color, 
  int state, string selection, float beyond, float
  within, float sigma, int zero, int quiet)
  • ramp_name = string: name of the ramp object
  • map_name = string: name of the map (for potential) or molecular object (for proximity)
  • range = list: values corresponding to slots in the ramp
  • color = list: colors corresponding to slots in the ramp or a given palette name: afmhot, grayscale, object, rainbow, traditional, grayable, hot, ocean, and sludge
  • state = integer: state identifier
  • selection = selection: for automatic ranging
  • beyond = number: with automatic ranging, are we excluding values beyond a certain distance from the selection?
  • within = number: with automatic ranging, are we only including valuess within a certain distance from the selection?
  • sigma = number: with automatic ranging, how many standard deviations from the mean do we go?
  • zero = integer: with automatic ranging, do we force the central value to be zero?

Examples

Simple Example

ramp_new e_pot_color, e_pot_map, [-10, 0, 10], [red, white, blue]

This creates a new ramp object named e_pot_color, based on the values of the potential found in e_pot_map.

Elaborate examples

Ramp + Distance Measure

Using a ramp and a distance measure, we can color the surface by some property--here, I'll chose distance from some important atom in the receptor to the ligand atom.

To reproduce the results shown here you must do the following:

  • obtain a protein
  • calculate some property for some set of atoms (like distance from some central location) and stuff the values into the b-factor
  • create a new object from the atoms for which you just measured a property
  • create a new ramp from the object with ramp_new
  • set the surface color of the new object


Another possible application of the ramp_new command can be the representation of the ELF function [1]. This function can be calculated with the TopMod software [2].

  • Load the cube file containing the ELF function, e.g. H2O_elf.cube.
  • Create an isosurface with a contour level of 0.8.
isosurface elf, H2O_elf, 0.8
  • Load the cube containing the basin information, e.g. H20_esyn.cube. Basically in this cube for each point in the first cube you have either one of the numbers from 1 to 5. More details on what these numbers mean can be found in the TopMod manual.
  • Create a new ramp.
ramp_new ramp, H2O_esyn, [1, 2, 3, 5], [tv_orange, lightblue, palegreen, deeppurple]
  • Assign the color ramp to the ELF isosurface.
set surface_color, ramp, elf
  • Rebuild if necessary.
rebuild

Surface Colored by Distance from a Point

This example shows how to color a protein surface by its distance from a given point:

<source lang="python">

  1. fetch a friendly protein

fetch 1hug, async=0

  1. show it as a surface

as surface

  1. create a pseudoatom at the origin; we will
  2. measure the distance from this point

pseudoatom pOrig, pos=(0,0,0), label=origin

  1. create a new color ramp, measuring the distance
  2. from pOrig to 1hug, colored as rainbow

ramp_new proximityRamp, pOrig, selection=1hug, range=[5,65], color=rainbow

  1. set the surface color to the ramp coloring

set surface_color, proximityRamp, 1hug

  1. some older PyMOLs need this recoloring/rebuilding

recolor; rebuild <source>

See Also

load, color, create, slice, gradient, Expand_To_Surface