added glicyne support in show_UNRES.py
authorDawid Jagiela <lightnir@chem.univ.gda.pl>
Tue, 5 Mar 2013 11:32:20 +0000 (12:32 +0100)
committerDawid Jagiela <lightnir@chem.univ.gda.pl>
Tue, 5 Mar 2013 11:32:20 +0000 (12:32 +0100)
source/pymol/show_UNRES.py

index 673a269..179e1af 100644 (file)
@@ -27,7 +27,7 @@ def show_UNRES(sl='(all)'):
        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],
@@ -76,26 +76,36 @@ def show_UNRES(sl='(all)'):
        for i in range(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 range(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 range(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)