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)
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_*")
# 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()
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()
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