This is a read-only mirror of pymolwiki.org
Difference between revisions of "Color"
m |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
===DESCRIPTION=== | ===DESCRIPTION=== | ||
− | '''color''' changes the color of an object or an atom selection. | + | '''color''' changes the color of an object or an atom selection. For a script that enumerates all the colors see, [[List_Colors]]. |
− | |||
===USAGE=== | ===USAGE=== | ||
− | + | <source lang="python"> | |
− | + | color color-name | |
− | + | color color-name, object-name | |
+ | color color-name, (selection) | ||
+ | </source> | ||
===PYMOL API=== | ===PYMOL API=== | ||
Line 108: | Line 109: | ||
A script (data2bfactor.py) that loads data into the B-factor (b) or occupancy (q) columns from an external file can be found in Robert Campbell's PyMOL script repository (http://pldserver1.biochem.queensu.ca/~rlc/work/pymol/) | A script (data2bfactor.py) that loads data into the B-factor (b) or occupancy (q) columns from an external file can be found in Robert Campbell's PyMOL script repository (http://pldserver1.biochem.queensu.ca/~rlc/work/pymol/) | ||
− | + | === 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: | 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: | ||
<source lang="python"> | <source lang="python"> | ||
Line 119: | Line 120: | ||
Thanks to Warren, for this one. | Thanks to Warren, for this one. | ||
− | [[Category:Objects_and_Selections]] | + | === Getting Atom Colors === |
− | [[Category:Commands| | + | <source lang="python"> |
+ | stored.list = [] | ||
+ | iterate all, stored.list.append(color) | ||
+ | print stored.list | ||
+ | </source> | ||
+ | |||
+ | Or, you can [[label]] each atom by it's color code: | ||
+ | <source lang="python"> | ||
+ | label all, color | ||
+ | </source> | ||
+ | |||
+ | |||
+ | === Color States Individually === | ||
+ | <source lang="python"> | ||
+ | fetch 1nmr | ||
+ | set all_states | ||
+ | |||
+ | # the object has 20 states, so we can set separate line colors | ||
+ | # for each state as follows: | ||
+ | for a in range(1,21): cmd.set("line_color","auto","1nmr",a) | ||
+ | </source> | ||
+ | Or, we can do it differently, | ||
+ | <source lang="python"> | ||
+ | # start over, | ||
+ | fetch 1nmr | ||
+ | |||
+ | # break apart the object by state | ||
+ | split_states 1nmr | ||
+ | |||
+ | # delete the original | ||
+ | dele 1nmr | ||
+ | |||
+ | # and color by object (carbons only) | ||
+ | util.color_objs("elem c") | ||
+ | |||
+ | # (all atoms) | ||
+ | util.color_objs("all") | ||
+ | </source> | ||
+ | |||
+ | [[Category:Objects_and_Selections|Color]] | ||
+ | [[Category:Commands|Color]] | ||
+ | [[Category:States|Coloring states individually]] | ||
+ | [[Category:Coloring|Color]] |
Revision as of 13:41, 20 June 2009
DESCRIPTION
color changes the color of an object or an atom selection. For a script that enumerates all the colors see, List_Colors.
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.
A script (data2bfactor.py) that loads data into the B-factor (b) or occupancy (q) columns from an external file can be found in Robert Campbell's PyMOL script repository (http://pldserver1.biochem.queensu.ca/~rlc/work/pymol/)
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.
Getting Atom Colors
stored.list = []
iterate all, stored.list.append(color)
print stored.list
Or, you can label each atom by it's color code:
label all, color
Color States Individually
fetch 1nmr
set all_states
# the object has 20 states, so we can set separate line colors
# for each state as follows:
for a in range(1,21): cmd.set("line_color","auto","1nmr",a)
Or, we can do it differently,
# start over,
fetch 1nmr
# break apart the object by state
split_states 1nmr
# delete the original
dele 1nmr
# and color by object (carbons only)
util.color_objs("elem c")
# (all atoms)
util.color_objs("all")