Color
DESCRIPTION
color changes the color of an object or an atom selection.
USAGE
color color-name color color-name, object-name color color-name, (selection)
PYMOL API
cmd.color( string color, string selection )
Using RGB for Color
If you prefer RGB to color any object
set_color newcolor, [r,g,b]
color newcolor
List of Color Values
EXAMPLES
Color all carbons yellow
color yellow, (name C*)
RGB Example
set_color khaki, [195,176,145]
color khaki
Color by Spectrum Example
Color by spectrum is in the GUI menu but did you realize that the spectrum is not limited to a simple rainbow?
spectrum count, x, object_name
x can can be anyone of the following: blue_green, green_white_magenta, red_cyan, blue_magenta, green_white_red, red_green, blue_red, green_white_yellow, red_white_blue, blue_white_green, green_yellow, red_white_cyan, blue_white_magenta, green_yellow_red, red_white_green, blue_white_red, magenta_blue, red_white_yellow, blue_white_yellow, magenta_cyan, red_yellow, blue_yellow, magenta_green, red_yellow_green, cbmr, magenta_white_blue, rmbc, cyan_magenta, magenta_white_cyan, yellow_blue, cyan_red, magenta_white_green, yellow_cyan, cyan_white_magenta, magenta_white_yellow, yellow_cyan_white, cyan_white_red, magenta_yellow, yellow_green, cyan_white_yellow, rainbow, yellow_magenta, cyan_yellow, rainbow2, yellow_red, gcbmry, rainbow2_rev, yellow_white_blue, green_blue, rainbow_cycle, yellow_white_green, green_magenta, rainbow_cycle_rev, yellow_white_magenta, green_red, rainbow_rev, yellow_white_red, green_white_blue, red_blue, yrmbcg
B-Factors
The command to color a molecule by B-Factors (B Factors) is:
cmd.spectrum("b", selection="SEL");
where SEL is a valid selection, for example, "protA and n. CA", for protein A's alpha carbons.
You can choose the spectrum you want with the command:
cmd.spectrum("b", 'rainbow', selection="SEL");
where rainbow is a valid selection from the list:
blue_green green_white_magenta red_cyan blue_magenta green_white_red red_green blue_red green_white_yellow red_white_blue blue_white_green green_yellow red_white_cyan blue_white_magenta green_yellow_red red_white_green blue_white_red magenta_blue red_white_yellow blue_white_yellow magenta_cyan red_yellow blue_yellow magenta_green red_yellow_green cbmr magenta_white_blue rmbc cyan_magenta magenta_white_cyan yellow_blue cyan_red magenta_white_green yellow_cyan cyan_white_magenta magenta_white_yellow yellow_cyan_white cyan_white_red magenta_yellow yellow_green cyan_white_yellow rainbow yellow_magenta cyan_yellow rainbow2 yellow_red gcbmry rainbow2_rev yellow_white_blue green_blue rainbow_cycle yellow_white_green green_magenta rainbow_cycle_rev yellow_white_magenta green_red rainbow_rev yellow_white_red green_white_blue red_blue yrmbcg
Reassigning B-Factors and Coloring
It is commonplace to replace the B-Factor column of a protein with some other biochemical property at that residue, observed from some calculation or experiment. PyMOL can easily reassign the B-Factors and color them, too. The following example will load a protein, set ALL it's B Factors to "0", read in a list of properties for each alpha carbon in the proteins, assign those new values as the B-Factor values and color by the new values. This example is possible because commands PyMOL does not recognize are passed to the Python interpreter --- a very powerful tool.
# load the protein
cmd.load("protA.pdb")
# open the file of new values (just 1 column of numbers, one for each alpha carbon)
inFile = open("newBFactors", 'r')
# create the global, stored array
stored.newB = []
# read the new B factors from file
for line in inFile.readlines(): stored.newB.append( float(line) )
# close the input file
inFile.close()
# clear out the old B Factors
alter protA, b=0.0
# update the B Factors with new properties
alter protA and n. CA, b=stored.newB.pop(0)
# color the protein based on the new B Factors of the alpha carbons
cmd.spectrum("b", "protA and n. CA")
If you want to save the file with the new B Factor values for each alpha carbon,
cmd.save("protA_newBFactors.pdb", "protA")
or similar is all you need.
Expanding to Surface
If you have run the above code and would like the colors to be shown in the Surface representation, too, then you need to do the following:
# Assumes alpha carbons colored from above.
create ca_obj, your-object-name and name ca
ramp_new ramp_obj, ca_obj, [0, 10], [-1, -1, 0]
set surface_color, ramp_obj, your-object-name
Thanks to Warren, for this one.