Thank you for the script Andreas, it worked fine. Now, is there any way to define wich objet is going to be colored? I want to use different color hues for two different objects.

Thank you,

Mario Sanches

Andreas Henschel wrote:

Hi Mario,

you can define new colors wit the set_color command.
below are two python functions that can define ranges,
one using HSV color space, one RGB. The former is a derivite
of  a script earlier posetd by Robert L. Campbell on the wiki.
Hope that helps.

Cheers, Andreas

def hueSpectrum(hue1=0.0, hue2=0.2, nbins=10, sat=1., value=1.):
   ## by default creates 10 shades of red
   ## Derived from color_b.py
   ## Author     Robert L. Campbell, see pymol wiki
   colorNames=[]
   stepsize = (hue1  - hue2) / nbins
   for j in range(nbins):
       # for the selection
       colorName = "hueSpectrum%02d"%(j)
       colorNames.append(colorName)
       hsv = (hue1 - stepsize * float(j), sat, value)
       #convert to rgb and append to color list
       rgb = colorsys.hsv_to_rgb(hsv[0],hsv[1],hsv[2])
       cmd.set_color(colorName, rgb)
   return colorNames

def hueSpectrum2(r=1., g = .0, b = .0, shades=10, shadeSpec=0.4):
   colorNames=[]
   r0 = max(r - shadeSpec/2, 0.0)
   g0 = max(g - shadeSpec/2, 0.0)
   b0 = max(b - shadeSpec/2, 0.0)
   stepsize = shadeSpec/(shades-1.)
   for j in range(shades):
       # for the selection
       colorName = "hueSpectrum%02d"%(j)
       colorNames.append(colorName)
       r0 = min(r0+stepsize, 1.0)
       g0 = min(g0+stepsize, 1.0)
       b0 = min(b0+stepsize, 1.0)
       cmd.set_color(colorName, (r0, g0, b0))
   return colorNames

def colorSpec(residue1, residue2, shades=10):
   ## careful: assumes consecutive resi's ...
   resiPerColor = abs(residue1-residue2)/shades
   for j in range(residue2-residue1):
color = shades*j/(residue2-residue1) ## use only generated shades. Careful: don't exceed!
       cmd.color("hueSpectrum%02d" % color, "resi %s" %(residue1 + j) )

## usage: cmd.load("/group/bioinf/Data/PDBLinks/1god.pdb") ## change path
cmd.as("cartoon")
cmd.color("white", "1god")
#hueSpectrum(0.5, 0.7) ## dark blue to cyan, looks cool, too!
hueSpectrum2() ## reddish
colorSpec(89, 109)

Mario Sanches wrote:

I am trying to color a structure with a ribbon like feature but not going from blue to red, but instead, using differente blue hues (or red hues, etc). Is that possible?
Thank,



--
Mario Sanches
Laboratório Nacional de Luz Síncrotron
Cristalografia e Espectroscopia de Biomoléculas
Tel: +55 19 3512 1109


Reply via email to