p_radius = 0.6
e_size = 1.0
# residue dictionary
- # resn = [color_Red, color_Green, color_Blue, elipsoid_side_width ]
+ # resn = [color_Red, color_Green, color_Blue, ellipsoid_width, ellipsoid_length ]
resdb = { 'CYS': [1.000, 1.000, 0.000, 1.33741, 2.96868],
'MET': [0.000, 1.000, 0.000, 1.36694, 3.08863],
'PHE': [0.000, 0.392, 0.000, 1.48323, 3.04238],
# Get pseudo-peptide group positions
atoms=cmd.get_model(sl+" & n. CA").atom
p=[]
- for i in range(0,len(atoms)-1):
+ for i in xrange(0,len(atoms)-1):
p.append( [atoms[i].coord[0]+(atoms[i+1].coord[0]-atoms[i].coord[0])/2, atoms[i].coord[1]+(atoms[i+1].coord[1]-atoms[i].coord[1])/2, atoms[i].coord[2]+(atoms[i+1].coord[2]-atoms[i].coord[2])/2 ] )
obj=[]
- for i in range(0,len(p)):
+ for i in xrange(0,len(p)):
obj.extend( [ COLOR, 0.643, 0.933, 0.960 ] )
obj.extend( [ SPHERE, p[i][0], p[i][1], p[i][2], p_radius ] )
# Get Sidechain elipsoids positions
atoms=cmd.get_model(sl+" & n. CB").atom
e=[]
- for i in range(0,len(atoms)):
+ for i in xrange(0,len(atoms)):
ca=cmd.get_model(sl+" & n. CA & resn "+atoms[i].resn+" & resi "+atoms[i].resi).atom
e.append( [ atoms[i].resn, atoms[i].coord[0], atoms[i].coord[1], atoms[i].coord[2], atoms[i].coord[0]-ca[0].coord[0], atoms[i].coord[1]-ca[0].coord[1], atoms[i].coord[2]-ca[0].coord[2] ] )
#
# [ ELLIPSOID, x_pos, y_pos, z_pos, size, x0, y0, z0, x1, y1, z2, x2, y2, z2 ]
# where the xyz vectors are orthogonal and of length 1.0 or less.
- for i in range(0,len(e)):
+ for i in xrange(0,len(e)):
# vactor CB->CA
tmp0=[e[i][4], e[i][5], e[i][6]]
- l=cpv.length(tmp0)
+ #l=cpv.length(tmp0)
# random vector
tmp1 = cpv.random_vector()
# orthogonal vector to tmp0 and tmp1
tmp2 = cpv.cross_product(tmp1, tmp0)
tmp3 = cpv.cross_product(tmp0, tmp2)
+ tmp0 = cpv.normalize(tmp0)
tmp2 = cpv.normalize(tmp2)
tmp3 = cpv.normalize(tmp3)
+ tmp0 = cpv.scale(tmp0,resdb[e[i][0]][4])
tmp2 = cpv.scale(tmp2,resdb[e[i][0]][3])
tmp3 = cpv.scale(tmp3,resdb[e[i][0]][3])
factor = 1.0 / max( cpv.length(tmp0), cpv.length(tmp2), cpv.length(tmp3))
tmp0 = cpv.scale(tmp0, factor)
tmp2 = cpv.scale(tmp2, factor)
tmp3 = cpv.scale(tmp3, factor)
-
- #print factor, cpv.length(tmp0), cpv.length(tmp2), cpv.length(tmp3)
obj.extend( [ COLOR, resdb[e[i][0]][0], resdb[e[i][0]][1], resdb[e[i][0]][2] ] )
- #obj.extend( [ NORMAL, 1, 0, 0 ] )
obj.extend( [ ELLIPSOID, e[i][1], e[i][2], e[i][3], 1.0/factor, ] + tmp0 + tmp2 + tmp3 )
+ # Get Glicynes positions
+ atoms=cmd.get_model(sl+' & n. CA & resn GLY').atom
+ g=[]
+ for i in xrange(0,len(atoms)):
+ g.append( [ atoms[i].resn, atoms[i].coord[0], atoms[i].coord[1], atoms[i].coord[2] ])
+ # Draw the glicyne spheres
+ for i in xrange(0, len(g)):
+ obj.extend( [ COLOR, resdb[g[i][0]][0], resdb[g[i][0]][1], resdb[g[i][0]][2] ] )
+ obj.extend( [ SPHERE, g[i][1], g[i][2], g[i][3], resdb[g[i][0]][3]])
+
+
cmd.set('cgo_ellipsoid_quality', 2)
cmd.load_cgo(obj,'UNRES_'+sl)