def __init__(self): Wizard.__init__(self) # some attributes to do with picking self.pick_count = 0 self.object_count = 0 self.object_prefix = "pw" self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode", 0) # set selection mode to atomic cmd.deselect()
def __init__(self, _self=cmd): Wizard.__init__(self, _self) self.memory = 0 self.n_pair = 0 self.status = 0 # 0 node not selected, 1 node selected self.message = None self.selection_mode = cmd.get_setting_legacy("process_mode") cmd.set("mouse_selection_mode", 0) # set selection mode to atomic cmd.deselect() # disable the active selection (if any)
def __init__(self,_self=cmd): Wizard.__init__(self,_self) self.memory = 0 self.n_pair = 0 self.status = 0 # 0 no atoms selections, 1 atom selected self.message = None self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode",0) # set selection mode to atomic cmd.deselect() # disable the active selection (if any)
def __init__(self,_self=cmd): cmd.unpick(); Wizard.__init__(self,_self) self.status = 0 # 0 no atoms selections, 1 atom selected self.error = None self.object_name = None # mode selection subsystem self.mode = default_mode self.modes = [ 'polar', 'heavy', 'neigh', 'pairs', ] self.mode_name = { 'polar':'Polar Neighbors', 'heavy':'Heavy Neighbors', 'neigh':'Neighbors', 'pairs':'Pairwise Distances', } smm = [] smm.append([ 2, 'Measurement Mode', '' ]) for a in self.modes: smm.append([ 1, self.mode_name[a], 'cmd.get_wizard().set_mode("'+a+'")']) self.menu['mode']=smm # overwrite mode selection subsystem self.object_mode=default_object_mode self.object_modes = [ 'overwr', 'append', ] self.object_mode_name = { 'overwr':'Replace Previous', 'append':'Create New', } smm = [] smm.append([ 2, 'New Distances?', '' ]) for a in self.object_modes: smm.append([ 1, self.object_mode_name[a], 'cmd.get_wizard().set_object_mode("'+a+'")']) self.menu['object_mode']=smm self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode",0) # set selection mode to atomic cmd.deselect() # disable the active selection (if any)
def __init__(self): Wizard.__init__(self) # some attributes to do with picking self.pick_count = 0 self.object_count = 0 self.object_prefix = "pw" # the plane facet size (the 'radius' of the section of plane we show) self.facetSize = 5 self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode",0) # set selection mode to atomic cmd.deselect()
def __init__(self): Wizard.__init__(self) # some attributes to do with picking self.pick_count = 0 self.object_count = 0 self.object_prefix = "pw" # the plane facet size (the 'radius' of the section of plane we show) self.facetSize = 5 self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode", 0) # set selection mode to atomic cmd.deselect()
def __init__(self, parent, bondForceParams, atoms_def): Wizard.__init__(self) self.parent = parent self.atoms_def = atoms_def self.params_str = [ 'r_aA', 'th_a', "th_A1'", 'phi_ba', 'phi_aA', 'phi_AB' ] self.indexes_list = [ 'atom_c', 'atom_b', 'atom_a', "atom_A1", "atom_B1", "atom_C1" ] self.bondForceParams = bondForceParams # some attributes to do with picking self.pick_count = 0 self.pick_count_max = 5 self.object_prefix = "pw" self.error = None self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode", 0) # set selection mode to atomic cmd.deselect()
def __init__(self, _self=cmd): cmd.unpick(); Wizard.__init__(self, _self) self.mouse_selection_mode = cmd.get_setting_legacy('mouse_selection_mode') cmd.set('mouse_selection_mode',0) # set selection mode to atomic cmd.deselect() # disable the active selection (if any) self.error = None self.selection_mode = 1 if self.mouse_selection_mode == 6 else 0 self.selection_modes = [ 'Residues', 'C-alphas', ] smm = [] smm.append([ 2, 'Selection Mode', '' ]) for i, label in enumerate(self.selection_modes): smm.append([1, label, 'cmd.get_wizard().set_mode(%d)' % i]) self.menu['selection_mode'] = smm self.name = None
def __init__(self, _self=cmd): Wizard.__init__(self, _self) cmd = self.cmd pymol = cmd._pymol cmd.unpick() self.dep = default_dep self.ind_library = io.pkl.fromFile(os.environ["PYMOL_PATH"] + "/data/chempy/sidechains/sc_bb_ind.pkl") self.load_library() self.status = 0 # 0 no selection, 1 mutagenizing self.bump_check = 1 self.auto_center = 1 self.error = None self.object_name = None self.modes = ["current"] self.mode = default_mode self.rep = default_rep self.hyd = default_hyd self.n_cap = default_n_cap self.c_cap = default_c_cap residues = self.ind_library.keys() # could extent with additional fragments manually as below residues.extend(["GLY", "ALA"]) residues.extend(["HID", "HIE", "HIP"]) residues.extend(["ARGN", "LYSN", "ASPH", "GLUH"]) residues.sort() res_copy = deepcopy(residues) for a in res_copy: residues.append("NT_" + a) residues.append("CT_" + a) self.modes.extend(residues) self.mode_label = {} for a in self.modes: self.mode_label[a] = "" + a self.mode_label["current"] = "No Mutant" self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode", 1) smm = [] smm.append([2, "Mutant", ""]) smm.append([1, "No change", 'cmd.get_wizard().set_mode("current")']) # smm.append([ 1, 'N-Term', [] ]) # smm.append([ 1, 'C-Term', [] ]) smm.append([0, "", ""]) for a in self.modes: if a == "current": pass elif a[0:3] == "NT_": pass # smm[2][2].append([ 1, self.mode_label[a[3:]], 'cmd.get_wizard().set_mode("'+a+'")']) elif a[0:3] == "CT_": pass # smm[3][2].append([ 1, self.mode_label[a[3:]], 'cmd.get_wizard().set_mode("'+a+'")']) else: smm.append([1, self.mode_label[a], 'cmd.get_wizard().set_mode("' + a + '")']) # group arg, lys, his, glu, asp for lst in [smm]: # [ smm, smm[2][2], smm[3][2] ]: for a in "ARG", "LYS", "HID", "GLU", "ASP": ix = 0 start = 0 stop = 0 for b in lst: if start == 0: if b[1][0:] == a: start = ix stop = ix + 1 elif b[1][0:3] == a[0:3] or (b[1][0:2] == a[0:2] and a[0:2] == "HI"): stop = ix + 1 ix = ix + 1 if start != 0 and stop != 0: slice = lst[start:stop] if a != "HID": slice2 = [slice[0]] + [[0, "", ""]] + slice[1:] lst[start:stop] = [[1, self.mode_label[a] + "... ", slice2]] else: slice2 = [slice[3]] + [[0, "", ""]] + slice[0:3] lst[start:stop] = [[1, self.mode_label["HIS"] + "... ", slice2]] self.menu["mode"] = smm self.reps = ["lines", "sticks", "spheres", "dots"] self.rep_name = {"lines": "Show Lines", "sticks": "Show Sticks", "spheres": "Show Spheres", "dots": "Show Dots"} self.dep_name = {"dep": "Backbone Depen. Rotamers", "ind": "Backbone Indep. Rotamers"} self.hyd_name = { "auto": "Hydrogens: Current", "keep": "Hydrogens: Add & Retain", # 'polar' : "Polar Hydrogens", "none": "Hydrogens: Remove", } self.hyds = ["auto", "keep", "none"] self.n_cap_name = {"none": "Open", "posi": "NH3+", "acet": "Acetyl"} self.n_caps = ["none", "posi", "acet"] self.c_cap_name = {"none": "Open", "nega": "COO-", "amin": "Amine", "nmet": "N-methyl"} self.c_caps = ["none", "nega", "amin", "nmet"] smm = [] smm.append([2, "N-Cap", ""]) for a in self.n_caps: smm.append([1, self.n_cap_name[a], 'cmd.get_wizard().set_n_cap("' + a + '")']) self.menu["n_cap"] = smm smm = [] smm.append([2, "C-Cap", ""]) for a in self.c_caps: smm.append([1, self.c_cap_name[a], 'cmd.get_wizard().set_c_cap("' + a + '")']) self.menu["c_cap"] = smm smm = [] smm.append([2, "Hydrogens", ""]) for a in self.hyds: smm.append([1, self.hyd_name[a], 'cmd.get_wizard().set_hyd("' + a + '")']) self.menu["hyd"] = smm smm = [] smm.append([2, "Representation", ""]) for a in self.reps: smm.append([1, self.rep_name[a], 'cmd.get_wizard().set_rep("' + a + '")']) self.menu["rep"] = smm self.deps = ["dep", "ind"] smm = [] smm.append([2, "Rotamers", ""]) for a in self.deps: smm.append([1, self.dep_name[a], 'cmd.get_wizard().set_dep("' + a + '")']) self.menu["dep"] = smm if "pk1" in cmd.get_names("selections"): cmd.select(src_sele, "(byres pk1)") cmd.unpick() cmd.enable(src_sele) self.status = 1 self.error = None self.do_library() cmd.refresh_wizard()
def attach_amino_acid(selection,amino_acid,phi,psi): if not selection in cmd.get_names("selections"): if amino_acid in cmd.get_names("objects"): print " Error: an object with than name already exists" raise QuietException cmd.fragment(amino_acid) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(hydro and %s)"%amino_acid) if cmd.count_atoms("((%s) and name c)"%amino_acid,quiet=1): cmd.edit("((%s) and name c)"%amino_acid) else: cmd.fragment(amino_acid,tmp_editor) if cmd.count_atoms("((%s) and elem n)"%selection,quiet=1): cmd.select(tmp_ed_save,"(%s)"%selection) cmd.iterate("(%s)"%selection,"stored.resv=resv") stored.resi = str(stored.resv-1) cmd.alter(tmp_editor,"resi=stored.resi") cmd.fuse("(%s and name C)"%(tmp_editor),"(pk1)",2) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(pkmol and hydro)") cmd.set_dihedral("(name ca and neighbor pk2)", "(pk2)","(pk1)","(name ca,ch3 and neighbor pk1)",180.0) cmd.set_geometry("pk2",3,3) # make nitrogen planer cmd.select(tpk1,"pk2") cmd.select(tpk2,"pk1") if amino_acid[0:3]!='pro': cmd.set_dihedral( # PHI "(name c and neighbor (name ca and neighbor "+tpk1+"))", # C "(name ca and neighbor "+tpk1+")", # CA tpk1, # N tpk2, # C phi) cmd.set_dihedral( # PSI (n-1) tpk1, # N tpk2, # C "(name ca and neighbor "+tpk2+")", # CA "(name n and neighbor (name ca and neighbor "+tpk2+"))", # C psi) cmd.delete(tpk1) cmd.delete(tpk2) sele = ("(name N and (byres neighbor %s) and not (byres %s))"% (tmp_ed_save,tmp_ed_save)) if cmd.count_atoms(sele,quiet=1): cmd.edit(sele) cmd.delete(tmp_ed_save) elif cmd.count_atoms("((%s) and elem c)"%selection,quiet=1): cmd.select(tmp_ed_save,"(%s)"%selection) cmd.iterate("(%s)"%selection,"stored.resv=resv") stored.resi = str(stored.resv+1) cmd.alter(tmp_editor,"resi=stored.resi") cmd.fuse("(%s and name N)"%(tmp_editor),"(pk1)",2) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(pkmol and hydro)") cmd.set_dihedral("(name ca and neighbor pk2)", "(pk2)","(pk1)","(name ca,ch3 and neighbor pk1)",180.0) cmd.set_geometry("pk1",3,3) # make nitrogen planar cmd.select(tpk1,"pk1") cmd.select(tpk2,"pk2") if amino_acid[0:3]!='pro': cmd.set_dihedral( # PHI tpk2, # C tpk1, # N "(name ca and neighbor "+tpk1+")", # CA "(name c and neighbor (name ca and neighbor "+tpk1+"))", # C phi) cmd.set_dihedral( # PSI (n-1) "(name n and neighbor (name ca and neighbor "+tpk2+"))", # C "(name ca and neighbor "+tpk2+")", # CA tpk2, # C tpk1, # N psi) cmd.delete(tpk1) cmd.delete(tpk2) sele = ("(name C and (byres neighbor %s) and not (byres %s))"% (tmp_ed_save,tmp_ed_save)) if cmd.count_atoms(sele,quiet=1): cmd.edit(sele) cmd.delete(tmp_ed_save) elif cmd.count_atoms("((%s) and elem h)"%selection,quiet=1): print " Error: please pick a nitrogen or carbonyl carbon to grow from." cmd.delete(tmp_editor) raise QuietException cmd.delete(tmp_editor)
def __init__(self,_self=cmd): Wizard.__init__(self,_self) cmd=self.cmd pymol=cmd._pymol cmd.unpick() self.dep = default_dep self.ind_library = io.pkl.fromFile(os.environ['PYMOL_PATH']+ "/data/chempy/sidechains/sc_bb_ind.pkl") self.load_library() self.status = 0 # 0 no selection, 1 mutagenizing self.bump_check = 1 self.auto_center = 1 self.error = None self.object_name = None self.modes = [ 'current' ] self.mode = default_mode self.rep = default_rep self.hyd = default_hyd self.n_cap = default_n_cap self.c_cap = default_c_cap residues = self.ind_library.keys() # could extent with additional fragments manually as below residues.extend(['GLY','ALA']) residues.extend(['HID','HIE','HIP']) residues.extend(['ARGN','LYSN','ASPH','GLUH']) residues.sort() res_copy = deepcopy(residues) for a in res_copy: residues.append('NT_'+a) residues.append('CT_'+a) self.modes.extend(residues) self.mode_label={} for a in self.modes: self.mode_label[a] = ""+a self.mode_label['current']="No Mutant" self.selection_mode = cmd.get_setting_legacy("mouse_selection_mode") cmd.set("mouse_selection_mode",1) smm = [] smm.append([ 2, 'Mutant', '' ]) smm.append([ 1, 'No change', 'cmd.get_wizard().set_mode("current")' ]) # smm.append([ 1, 'N-Term', [] ]) # smm.append([ 1, 'C-Term', [] ]) smm.append([ 0, '', '' ]) for a in self.modes: if a == 'current': pass elif a[0:3]=='NT_': pass # smm[2][2].append([ 1, self.mode_label[a[3:]], 'cmd.get_wizard().set_mode("'+a+'")']) elif a[0:3]=='CT_': pass # smm[3][2].append([ 1, self.mode_label[a[3:]], 'cmd.get_wizard().set_mode("'+a+'")']) else: smm.append([ 1, self.mode_label[a], 'cmd.get_wizard().set_mode("'+a+'")']) # group arg, lys, his, glu, asp for lst in [ smm ]: # [ smm, smm[2][2], smm[3][2] ]: for a in 'ARG','LYS','HID','GLU','ASP': ix = 0 start = 0 stop = 0 for b in lst: if start==0: if b[1][0:]==a: start = ix stop = ix + 1 elif b[1][0:3]==a[0:3] or ( b[1][0:2]==a[0:2] and a[0:2]=='HI' ): stop = ix + 1 ix = ix + 1 if start!=0 and stop!=0: slice = lst[start:stop] if a != 'HID': slice2 = [slice[0] ] + [ [0,'',''] ] + slice[1:] lst[start:stop] = [ [1, self.mode_label[a] + "... " , slice2 ] ] else: slice2 = [ slice[3] ] + [ [0,'',''] ] + slice[0:3] lst[start:stop] = [ [1, self.mode_label['HIS']+ "... ", slice2 ] ] self.menu['mode']=smm self.reps = [ 'lines', 'sticks', 'spheres', 'dots' ] self.rep_name = { 'lines' : "Show Lines", 'sticks' : "Show Sticks", 'spheres' : "Show Spheres", 'dots' : "Show Dots", } self.dep_name = { 'dep' : "Backbone Depen. Rotamers", 'ind' : "Backbone Indep. Rotamers" } self.hyd_name = { 'auto' : "Hydrogens: Current", 'keep' : "Hydrogens: Add & Retain", # 'polar' : "Polar Hydrogens", 'none' : "Hydrogens: Remove", } self.hyds = [ 'auto', 'keep', 'none' ] self.n_cap_name = { 'none' : 'Open', 'posi' : 'NH3+', 'acet' : 'Acetyl', } self.n_caps = [ 'none', 'posi', 'acet' ] self.c_cap_name = { 'none' : 'Open', 'nega' : 'COO-', 'amin' : 'Amine', 'nmet' : 'N-methyl', } self.c_caps = [ 'none', 'nega', 'amin', 'nmet' ] smm = [] smm.append([ 2, 'N-Cap', '' ]) for a in self.n_caps: smm.append([ 1, self.n_cap_name[a], 'cmd.get_wizard().set_n_cap("'+a+'")']) self.menu['n_cap']=smm smm = [] smm.append([ 2, 'C-Cap', '' ]) for a in self.c_caps: smm.append([ 1, self.c_cap_name[a], 'cmd.get_wizard().set_c_cap("'+a+'")']) self.menu['c_cap']=smm smm = [] smm.append([ 2, 'Hydrogens', '' ]) for a in self.hyds: smm.append([ 1, self.hyd_name[a], 'cmd.get_wizard().set_hyd("'+a+'")']) self.menu['hyd']=smm smm = [] smm.append([ 2, 'Representation', '' ]) for a in self.reps: smm.append([ 1, self.rep_name[a], 'cmd.get_wizard().set_rep("'+a+'")']) self.menu['rep']=smm self.deps = [ 'dep', 'ind' ] smm = [] smm.append([ 2, 'Rotamers', '' ]) for a in self.deps: smm.append([ 1, self.dep_name[a], 'cmd.get_wizard().set_dep("'+a+'")']) self.menu['dep']=smm if 'pk1' in cmd.get_names('selections'): cmd.select(src_sele,"(byres pk1)") cmd.unpick() cmd.enable(src_sele) self.status = 1 self.error = None self.do_library() cmd.refresh_wizard()
def attach_amino_acid(selection,amino_acid,phi,psi): if not selection in cmd.get_names("selections"): if amino_acid in cmd.get_names("objects"): print " Error: an object with than name already exists" raise QuietException cmd.fragment(amino_acid) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(hydro and %s)"%amino_acid) if cmd.count_atoms("((%s) and name c)"%amino_acid,quiet=1): cmd.edit("((%s) and name c)"%amino_acid) else: cmd.fragment(amino_acid,tmp_editor) if cmd.count_atoms("((%s) and elem n)"%selection,quiet=1): cmd.select(tmp_ed_save,"(%s)"%selection) cmd.iterate("(%s)"%selection,"stored.resv=resv") stored.resi = str(stored.resv-1) cmd.alter(tmp_editor,"resi=stored.resi") cmd.fuse("(%s and name C)"%(tmp_editor),"(pk1)",2) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(pkmol and hydro)") cmd.set_dihedral("(name ca and neighbor pk2)", "(pk2)","(pk1)","(name ca,ch3 and neighbor pk1)",180.0) cmd.set_geometry("pk2",3,3) # make nitrogen planer # if ss: cmd.select(tpk1,"pk2") cmd.select(tpk2,"pk1") if amino_acid[0:3]!='pro': cmd.set_dihedral( # PHI "(name c and neighbor (name ca and neighbor "+tpk1+"))", # C "(name ca and neighbor "+tpk1+")", # CA tpk1, # N tpk2, # C phi) cmd.set_dihedral( # PSI (n-1) tpk1, # N tpk2, # C "(name ca and neighbor "+tpk2+")", # CA "(name n and neighbor (name ca and neighbor "+tpk2+"))", # C psi) cmd.delete(tpk1) cmd.delete(tpk2) sele = ("(name N and (byres neighbor %s) and not (byres %s))"% (tmp_ed_save,tmp_ed_save)) if cmd.count_atoms(sele,quiet=1): cmd.edit(sele) cmd.delete(tmp_ed_save) elif cmd.count_atoms("((%s) and elem c)"%selection,quiet=1): cmd.select(tmp_ed_save,"(%s)"%selection) cmd.iterate("(%s)"%selection,"stored.resv=resv") stored.resi = str(stored.resv+1) cmd.alter(tmp_editor,"resi=stored.resi") cmd.fuse("(%s and name N)"%(tmp_editor),"(pk1)",2) if cmd.get_setting_legacy("auto_remove_hydrogens"): cmd.remove("(pkmol and hydro)") cmd.set_dihedral("(name ca and neighbor pk2)", "(pk2)","(pk1)","(name ca,ch3 and neighbor pk1)",180.0) cmd.set_geometry("pk1",3,3) # make nitrogen planer # if ss: cmd.select(tpk1,"pk1") cmd.select(tpk2,"pk2") if amino_acid[0:3]!='pro': cmd.set_dihedral( # PHI tpk2, # C tpk1, # N "(name ca and neighbor "+tpk1+")", # CA "(name c and neighbor (name ca and neighbor "+tpk1+"))", # C phi) cmd.set_dihedral( # PSI (n-1) "(name n and neighbor (name ca and neighbor "+tpk2+"))", # C "(name ca and neighbor "+tpk2+")", # CA tpk2, # C tpk1, # N psi) cmd.delete(tpk1) cmd.delete(tpk2) sele = ("(name C and (byres neighbor %s) and not (byres %s))"% (tmp_ed_save,tmp_ed_save)) if cmd.count_atoms(sele,quiet=1): cmd.edit(sele) cmd.delete(tmp_ed_save) elif cmd.count_atoms("((%s) and elem h)"%selection,quiet=1): print " Error: please pick a nitrogen or carbonyl carbon to grow from." cmd.delete(tmp_editor) raise QuietException cmd.delete(tmp_editor)