Beispiel #1
0
 def anime(self, cleanup=0):
     self.interrupt = cleanup
     suspend_undo = self.cmd.get("suspend_undo")
     self.cmd.set("suspend_undo", 1, updates=0)
     if not cleanup:
         try:
             self.cmd.set("suspend_updates", 1, quiet=1)
             self.cmd.disable()
             self.cmd.load("$TUT/1hpv.pdb")
             util.chainbow("1hpv", _self=self.cmd)
             self.cmd.hide("everything", "1hpv")
             self.cmd.show("cartoon", "1hpv")
             self.cmd.show("sticks", "1hpv///200/")
             self.cmd.create("1hpv_a", "1hpv//A//")
             self.cmd.set("cartoon_smooth_loops", 0, "1hpv_a")
             self.cmd.create("1hpv_b", "1hpv//B//")
             self.cmd.set("cartoon_smooth_loops", 0, "1hpv_b")
             self.cmd.create("1hpv_l", "1hpv///200/")
             util.cbay("1hpv_l", _self=self.cmd)
             self.cmd.delete("1hpv")
             self.cmd.set_view ((\
       0.374249548,   -0.517475128,    0.769516647,\
       -0.214397043,   -0.855623126,   -0.471108317,\
       0.902203023,    0.011330833,   -0.431161582,\
       -0.000023194,   -0.000007302, -125.089942932,\
       11.953758240,   20.323493958,    8.406080246,\
       75.304412842,  189.396347046,    0.000000000 ))
             self.cmd.translate([-20, 0, 0], object="1hpv_a")
             self.cmd.translate([20, 0, 0], object="1hpv_b")
             self.cmd.zoom("center", 30)
             self.cmd.translate([0, 10, 00], object="1hpv_l")
         finally:
             self.cmd.set("suspend_updates", 0, quiet=1)
         self.cmd.refresh()
         for a in range(1, 21):
             if self.interrupt:
                 break
             try:
                 self.cmd.set("suspend_updates", 1, quiet=1)
                 self.cmd.translate([1, 0, 0], object="1hpv_a")
                 self.cmd.translate([-1, 0, 0], object="1hpv_b")
                 self.cmd.translate([0, -0.5, 0], object="1hpv_l")
             finally:
                 self.cmd.set("suspend_updates", 0, quiet=1)
             self.cmd.refresh()
         for a in range(1, 62):
             if self.interrupt:
                 break
             self.cmd.turn("y", 6)
             self.cmd.move('z', 2)
             self.cmd.move('y', -0.12)
             self.cmd.refresh()
     else:
         self.cmd.delete("1hpv_*")
     self.cmd.set("suspend_undo", suspend_undo, updates=0)
Beispiel #2
0
 def anime(self,cleanup=0):
     if not cleanup:
         try:
             self.cmd.set("suspend_updates",1,quiet=1)
             self.cmd.disable()
             self.cmd.load("$TUT/1hpv.pdb")
             util.chainbow("1hpv",_self=self.cmd)
             self.cmd.hide("everything","1hpv")
             self.cmd.show("cartoon","1hpv")
             self.cmd.show("sticks","1hpv///200/")
             self.cmd.create("1hpv_a","1hpv//A//")
             self.cmd.set("cartoon_smooth_loops",0,"1hpv_a")
             self.cmd.create("1hpv_b","1hpv//B//")
             self.cmd.set("cartoon_smooth_loops",0,"1hpv_b")
             self.cmd.create("1hpv_l","1hpv///200/")
             util.cbay("1hpv_l",_self=self.cmd)
             self.cmd.delete("1hpv")
             self.cmd.set_view ((\
       0.374249548,   -0.517475128,    0.769516647,\
       -0.214397043,   -0.855623126,   -0.471108317,\
       0.902203023,    0.011330833,   -0.431161582,\
       -0.000023194,   -0.000007302, -125.089942932,\
       11.953758240,   20.323493958,    8.406080246,\
       75.304412842,  189.396347046,    0.000000000 ))
             self.cmd.translate([-20,0,0],object="1hpv_a")
             self.cmd.translate([20,0,0],object="1hpv_b")
             self.cmd.zoom("center",30)
             self.cmd.translate([0,10,00],object="1hpv_l")
         finally:
             self.cmd.set("suspend_updates",0,quiet=1)
         self.cmd.refresh()
         for a in range(1,21):
             try:
                 self.cmd.set("suspend_updates",1,quiet=1)
                 self.cmd.translate([1,0,0],object="1hpv_a")
                 self.cmd.translate([-1,0,0],object="1hpv_b")
                 self.cmd.translate([0,-0.5,0],object="1hpv_l")
             finally:
                 self.cmd.set("suspend_updates",0,quiet=1)
             self.cmd.refresh()
         for a in range(1,62):
             self.cmd.turn("y",6)
             self.cmd.move('z',2)
             self.cmd.move('y',-0.12)
             self.cmd.refresh()
                             
     else:
         self.cmd.delete("1hpv_*")
Beispiel #3
0
# Load PDB file.
cmd.rewind()
cmd.delete('all')
cmd.reset()
cmd.load(reference_pdbfile, 'complex')
cmd.remove('resn WAT')  # remove waters
cmd.select('receptor', '(not resn MOL) and (not resn WAT) and (not hydrogen)')
cmd.select('ligand', 'resn MOL and not hydrogen')
cmd.select('ions', 'resn Na\+ or resn Cl\-')
cmd.deselect()
cmd.hide('all')
cmd.show('cartoon', 'receptor')
cmd.show('spheres', 'ligand')
cmd.show('spheres', 'ions')
util.cbay('ligand')
cmd.color('green', 'receptor')

# speed up builds
cmd.set('defer_builds_mode', 3)
cmd.set('cache_frames', 0)

cmd.set('ray_transparency_contrast', 3.0)
cmd.set('ray_transparency_shadows', 0)

model = cmd.get_model('complex')
#for atom in model.atom:
#    print "%8d %4s %3s %5d %8.3f %8.3f %8.3f" % (atom.index, atom.name, atom.resn, int(atom.resi), atom.coord[0], atom.coord[1], atom.coord[2])

#pymol.finish_launching()
phase = 'complex-implicit'
replica = 0 # replica index to render
#replica = 15 # replica index to render

# Load PDB file.
cmd.rewind()
cmd.delete('all')
cmd.reset()
cmd.load(reference_pdbfile, 'complex')
cmd.select('receptor', 'not chain C and not hydrogen')
cmd.select('ligand', 'chain C and not hydrogen')
cmd.deselect()
cmd.hide('all')
cmd.show('cartoon', 'receptor')
cmd.show('sticks', 'ligand')
util.cbay('ligand')
cmd.color('green', 'receptor')

# speed up builds
cmd.set('defer_builds_mode', 3)
cmd.set('cache_frames', 0)

model = cmd.get_model('complex')
#for atom in model.atom:
#    print "%8d %4s %3s %5d %8.3f %8.3f %8.3f" % (atom.index, atom.name, atom.resn, int(atom.resi), atom.coord[0], atom.coord[1], atom.coord[2])

# Read atoms from PDB
pdbatoms = readAtomsFromPDB(reference_pdbfile)

# Build mappings.
pdb_indices = dict()
    def reps(self, cleanup=0):
        rep_list = [
            "lines", "sticks", "spheres", "surface", "mesh", "dots", "ribbon",
            "cartoon"
        ]
        try:
            if not cleanup:
                self.cmd.disable()
                self.cmd.set("suspend_updates", 1, quiet=1)
                self.cmd.mset()
                self.cmd.set("movie_panel", 0)
                self.cmd.load("$PYMOL_DATA/demo/pept.pdb", "rep1")
                self.cmd.alter("rep1///1-5+8-13/", "ss='S'")
                self.cmd.cartoon("auto")
                self.cmd.hide("everything", "rep1")
                for a in range(2, 9):
                    self.cmd.create("rep%d" % a, "rep1")
                for y, x in enumerate(rep_list, 1):
                    self.cmd.show(x, "rep%d" % y)
                self.cmd.reset()
                self.cmd.zoom("rep1", 24)
                util.cbay("rep2", _self=self.cmd)
                util.cbac("rep3", _self=self.cmd)
                util.cbas("rep4", _self=self.cmd)
                util.cbab("rep5", _self=self.cmd)
                util.cbaw("rep6", _self=self.cmd)
                util.cbay("rep8", _self=self.cmd)

                self.cmd.set("suspend_updates", 0, quiet=1)
                scale = 0.5
                for b in range(1, 20):
                    self.cmd.set("suspend_updates", 0, quiet=1)
                    self.cmd.refresh()
                    self.cmd.set("suspend_updates", 1, quiet=1)
                    xt = -3.2
                    yt = 1.6
                    for a in range(1, 5):
                        self.cmd.translate([xt * scale, yt * scale, 0],
                                           object="rep%d" % a,
                                           camera=0)
                        xt = xt + 2
                    yt = -yt
                    xt = -3.2
                    for a in range(5, 9):
                        self.cmd.translate([xt * scale, yt * scale, 0],
                                           object="rep%d" % a,
                                           camera=0)
                        xt = xt + 2
                for a in range(1, 9):
                    self.cmd.origin("rep%d" % a, object="rep%d" % a)
                self.cmd.mset("1")
                st = ' '.join("rotate angle=-3,object=rep%d,axis=%s;" %
                              (x, 'yx'[x % 2]) for x in range(1, 9))
                self.cmd.mdo(1, st)
                self.cmd.set("suspend_updates", 0, quiet=1)
                self.cmd.mplay()

                cgo = []
                axes = [[4.5, 0.0, 0.0], [0.0, 3.0, 0.0], [0.0, 0.0, 3.0]]

                c = 1
                for a in rep_list:
                    ext = self.cmd.get_extent("rep%d" % c)
                    pos = [(ext[0][0] + ext[1][0]) / 2,
                           (ext[0][1] + ext[1][1]) / 2 + 14,
                           (ext[0][2] + ext[1][2]) / 2]
                    c = c + 1
                    pos[0] = pos[0] - (measure_text(plain, a, axes) / 2)
                    wire_text(cgo, plain, pos, a, axes)
                self.cmd.set("cgo_line_width", 1.5)
                self.cmd.set("auto_zoom", 0)
                self.cmd.load_cgo(cgo, 'reps')
                self.cmd.set("auto_zoom", 1)
            else:
                self.cmd.delete("rep*")
                self.cmd.mset()
                self.cmd.mstop()
                self.cmd.set("movie_panel", 1)
        except:
            traceback.print_exc()
Beispiel #6
0
    def reps(self,cleanup=0):
        rep_list = [ "lines","sticks","spheres","surface","mesh","dots","ribbon","cartoon" ]
        try:
            if not cleanup:
                self.cmd.disable()
                self.cmd.set("suspend_updates",1,quiet=1)
                self.cmd.mset()
                self.cmd.unset("movie_panel")
                self.cmd.load("$PYMOL_DATA/demo/pept.pdb","rep1")
                self.cmd.alter("rep1///1-5+8-13/","ss='S'")
                self.cmd.cartoon("auto")
                self.cmd.hide("everything","rep1")
                for a in range(2,9):
                    self.cmd.create("rep%d"%a,"rep1")
                map(lambda x,y,s=self:s.cmd.show(x,"rep%d"%y),
                     rep_list,
                     range(1,9))
                self.cmd.reset()
                self.cmd.zoom("rep1",24)
                util.cbay("rep2",_self=self.cmd)
                util.cbac("rep3",_self=self.cmd)
                util.cbas("rep4",_self=self.cmd)
                util.cbab("rep5",_self=self.cmd)
                util.cbaw("rep6",_self=self.cmd)            
                util.cbay("rep8",_self=self.cmd)


                self.cmd.set("suspend_updates",0,quiet=1)
                scale=0.5
                for b in range(1,20):
                    self.cmd.set("suspend_updates",0,quiet=1)
                    self.cmd.refresh()
                    self.cmd.set("suspend_updates",1,quiet=1)
                    xt=-3.2
                    yt=1.6
                    for a in range(1,5):
                        self.cmd.translate([xt*scale,yt*scale,0],object="rep%d"%a,camera=0)
                        xt=xt+2
                    yt=-yt
                    xt=-3.2
                    for a in range(5,9):
                        self.cmd.translate([xt*scale,yt*scale,0],object="rep%d"%a,camera=0)
                        xt=xt+2
                for a in range(1,9):
                    self.cmd.origin("rep%d"%a,object="rep%d"%a)
                self.cmd.mset("1")
                st = string.join(map(lambda x,y:"rotate angle=-3,object=rep%d,axis=%s;"%(x,y),range(1,9),
                                            ['x','y','x','y','x','y','x','y']))
                self.cmd.mdo(1,st)
                self.cmd.set("suspend_updates",0,quiet=1)
                self.cmd.mplay()

                cgo = []
                axes = [[4.5,0.0,0.0],[0.0,3.0,0.0],[0.0,0.0,3.0]]

                c = 1
                for a in rep_list:
                    ext = self.cmd.get_extent("rep%d"%c)
                    pos = [(ext[0][0]+ext[1][0])/2,
                             (ext[0][1]+ext[1][1])/2+14,
                             (ext[0][2]+ext[1][2])/2]
                    c = c + 1
                    pos[0]=pos[0]-(measure_text(plain,a,axes)/2)
                    wire_text(cgo,plain,pos,a,axes)
                self.cmd.set("cgo_line_width",1.5)
                self.cmd.set("auto_zoom",0)
                self.cmd.load_cgo(cgo,'reps')
                self.cmd.set("auto_zoom",1)
            else:
                self.cmd.delete("rep*")
                self.cmd.mset()
                self.cmd.mstop()
                self.cmd.set("movie_panel",1)
        except:
            traceback.print_exc()
Beispiel #7
0
    def reps(self, cleanup=0):
        rep_list = [
            "lines", "sticks", "spheres", "surface", "mesh", "dots", "ribbon",
            "cartoon"
        ]
        suspend_undo = self.cmd.get("suspend_undo")
        self.cmd.set("suspend_undo", 1, updates=0)
        try:
            if not cleanup:
                self.cmd.disable()
                self.cmd.set("suspend_updates", 1, quiet=1)
                self.cmd.mset()
                self.cmd.set("movie_panel", 0)
                self.cmd.load("$PYMOL_DATA/demo/pept.pdb", "rep1")
                self.cmd.alter("rep1///1-5+8-13/", "ss='S'")
                self.cmd.cartoon("auto")
                self.cmd.hide("everything", "rep1")
                for a in range(2, 9):
                    self.cmd.create("rep%d" % a, "rep1")
                for y, x in enumerate(rep_list, 1):
                    self.cmd.show(x, "rep%d" % y)
                self.cmd.reset()
                self.cmd.zoom("rep1", 24)
                util.cbay("rep2", _self=self.cmd)
                util.cbac("rep3", _self=self.cmd)
                util.cbas("rep4", _self=self.cmd)
                util.cbab("rep5", _self=self.cmd)
                util.cbaw("rep6", _self=self.cmd)
                util.cbay("rep8", _self=self.cmd)

                self.cmd.set("suspend_updates", 0, quiet=1)
                scale = 0.5
                for b in range(1, 20):
                    self.cmd.set("suspend_updates", 0, quiet=1)
                    self.cmd.refresh()
                    self.cmd.set("suspend_updates", 1, quiet=1)
                    xt = -3.2
                    yt = 1.4
                    for a in range(1, 5):
                        self.cmd.translate([xt * scale, yt * scale, 0],
                                           object="rep%d" % a,
                                           camera=0)
                        xt = xt + 2
                    yt = -2.
                    xt = -3.2
                    for a in range(5, 9):
                        self.cmd.translate([xt * scale, yt * scale, 0],
                                           object="rep%d" % a,
                                           camera=0)
                        xt = xt + 2
                for a in range(1, 9):
                    self.cmd.origin("rep%d" % a, object="rep%d" % a)
                self.cmd.mset("1")
                st = ' '.join("rotate angle=-3,object=rep%d,axis=%s;" %
                              (x, 'yx'[x % 2]) for x in range(1, 9))
                self.cmd.mdo(1, st)
                self.cmd.set("suspend_updates", 0, quiet=1)
                self.cmd.mplay()

                axes = [[4.5, 0.0, 0.0], [0.0, 3.0, 0.0], [0.0, 0.0, 3.0]]
                c = 1
                self.cmd.set("suspend_updates", 1, quiet=1)
                for a in rep_list:
                    ext = self.cmd.get_extent("rep%d" % c)
                    pos = [(ext[0][0] + ext[1][0]) / 2,
                           (ext[0][1] + ext[1][1]) / 2 + 16,
                           (ext[0][2] + ext[1][2]) / 2]
                    c = c + 1
                    self.cmd.pseudoatom("reps", label=str(a), pos=pos)
                self.cmd.set("label_size", 24, "reps")
                self.cmd.set("suspend_updates", 0, quiet=1)
            else:
                self.cmd.delete("rep*")
                self.cmd.mset()
                self.cmd.mstop()
                self.cmd.set("movie_panel", 1)
        except cmd.QuietException:
            # in case of hopping to the next demo
            pass
        except:
            traceback.print_exc()
        finally:
            self.cmd.set("suspend_updates", 0, quiet=1)
            self.cmd.set("suspend_undo", suspend_undo, updates=0)
# Recognize helices and sheets
cmd.dss()

# Align everything
cmd.intra_fit("all")

# Set up display
cmd.remove("resn WAT")  # remove waters
cmd.select("receptor", "(not resn MOL) and (not resn WAT) and (not hydrogen)")
cmd.select("ligand", "resn MOL")
cmd.deselect()
cmd.hide("all")
cmd.show("cartoon", "receptor")
cmd.show("spheres", "ligand")
util.cbay("ligand")
cmd.color("green", "receptor")

# Show surface
# cmd.show('surface', 'receptor')
# cmd.set('surface_color', 'white')
# cmd.set('surface_mode', 3)
# cmd.set('transparency', 0.65)
# cmd.set('surface_quality', 1)

# speed up builds
cmd.set("defer_builds_mode", 3)
cmd.set("cache_frames", 0)
cmd.set("antialias", 2)

# Rewind