mutagenesis.py (pymol-v1.8.6.0.tar.bz2) | : | mutagenesis.py (pymol-v2.1.0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
} | } | |||
class Mutagenesis(Wizard): | class Mutagenesis(Wizard): | |||
count = 0 | count = 0 | |||
cutoff = 3.5 | cutoff = 3.5 | |||
def __init__(self,_self=cmd): | def __init__(self,_self=cmd): | |||
Wizard.__init__(self,_self) | Wizard.__init__(self,_self) | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if self.cmd.get_movie_length() > 0: | if self.cmd.get_movie_length() > 0: | |||
raise pymol.wizarding.WizardError('Mutagenesis Wizard cannot be used with Movie') | raise pymol.wizarding.WizardError('Mutagenesis Wizard cannot be used with Movie') | |||
cmd.unpick() | cmd.unpick() | |||
self.stored = pymol.Scratch_Storage() | self.stored = pymol.Scratch_Storage() | |||
self.space = {'stored': self.stored} | self.space = {'stored': self.stored} | |||
self.bump_scores = [] | self.bump_scores = [] | |||
skipping to change at line 230 | skipping to change at line 229 | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def load_library(self): | def load_library(self): | |||
if self.dep == 'dep': | if self.dep == 'dep': | |||
if not hasattr(self,'dep_library'): | if not hasattr(self,'dep_library'): | |||
self.dep_library = io.pkl.fromFile(os.environ['PYMOL_DATA']+ | self.dep_library = io.pkl.fromFile(os.environ['PYMOL_DATA']+ | |||
"/chempy/sidechains/sc_bb_dep.pkl") | "/chempy/sidechains/sc_bb_dep.pkl") | |||
def set_mode(self,mode): | def set_mode(self,mode): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if mode in self.modes: | if mode in self.modes: | |||
self.mode = mode | self.mode = mode | |||
if self.status==1: | if self.status==1: | |||
self.do_library() | self.do_library() | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def set_rep(self,rep): | def set_rep(self,rep): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if rep in self.reps: | if rep in self.reps: | |||
self.rep=rep | self.rep=rep | |||
cmd.hide("("+obj_name+")") | cmd.hide("("+obj_name+")") | |||
cmd.show('lines',obj_name) # always show lines | cmd.show('lines',obj_name) # always show lines | |||
cmd.show(self.rep,obj_name) | cmd.show(self.rep,obj_name) | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def set_c_cap(self,c_cap): | def set_c_cap(self,c_cap): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if c_cap in self.c_caps: | if c_cap in self.c_caps: | |||
self.c_cap=c_cap | self.c_cap=c_cap | |||
if self.status==1: | if self.status==1: | |||
self.do_library() | self.do_library() | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def set_n_cap(self,n_cap): | def set_n_cap(self,n_cap): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if n_cap in self.n_caps: | if n_cap in self.n_caps: | |||
self.n_cap=n_cap | self.n_cap=n_cap | |||
if self.status==1: | if self.status==1: | |||
self.do_library() | self.do_library() | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def set_hyd(self,hyd): | def set_hyd(self,hyd): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if hyd in self.hyds: | if hyd in self.hyds: | |||
self.hyd=hyd | self.hyd=hyd | |||
if self.status==1: | if self.status==1: | |||
self.do_library() | self.do_library() | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def set_dep(self,value): | def set_dep(self,value): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if value!=self.dep: | if value!=self.dep: | |||
self.dep = value | self.dep = value | |||
self.load_library() | self.load_library() | |||
if src_sele in cmd.get_names("all"): | if src_sele in cmd.get_names("all"): | |||
self.do_library() | self.do_library() | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def get_panel(self): | def get_panel(self): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if int(cmd.get("mouse_selection_mode")!=1): | if int(cmd.get("mouse_selection_mode")!=1): | |||
cmd.set("mouse_selection_mode",1) | cmd.set("mouse_selection_mode",1) | |||
if self.mode == 'current': | if self.mode == 'current': | |||
label = 'No Mutation' | label = 'No Mutation' | |||
else: | else: | |||
label = 'Mutate to '+self.mode_label[self.mode] | label = 'Mutate to '+self.mode_label[self.mode] | |||
return [ | return [ | |||
[ 1, 'Mutagenesis',''], | [ 1, 'Mutagenesis',''], | |||
[ 3, label,'mode'], | [ 3, label,'mode'], | |||
[ 3, 'N-Cap: '+self.n_cap_name[self.n_cap],'n_cap'], | [ 3, 'N-Cap: '+self.n_cap_name[self.n_cap],'n_cap'], | |||
skipping to change at line 311 | skipping to change at line 303 | |||
[ 2, 'Apply' , 'cmd.get_wizard().apply()'], | [ 2, 'Apply' , 'cmd.get_wizard().apply()'], | |||
[ 2, 'Clear' , 'cmd.get_wizard().clear()'], | [ 2, 'Clear' , 'cmd.get_wizard().clear()'], | |||
[ 2, 'Done','cmd.set_wizard()'], | [ 2, 'Done','cmd.set_wizard()'], | |||
] | ] | |||
def get_event_mask(self): | def get_event_mask(self): | |||
return Wizard.event_mask_pick + Wizard.event_mask_select + Wizard.event_ mask_state | return Wizard.event_mask_pick + Wizard.event_mask_select + Wizard.event_ mask_state | |||
def cleanup(self): | def cleanup(self): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
global default_mode,default_rep,default_dep,default_hyd | global default_mode,default_rep,default_dep,default_hyd | |||
global default_n_cap, default_c_cap | global default_n_cap, default_c_cap | |||
default_mode = self.mode | default_mode = self.mode | |||
default_rep = self.rep | default_rep = self.rep | |||
default_dep = self.dep | default_dep = self.dep | |||
default_hyd = self.hyd | default_hyd = self.hyd | |||
default_n_cap = self.n_cap | default_n_cap = self.n_cap | |||
default_c_cap = self.c_cap | default_c_cap = self.c_cap | |||
cmd.set("mouse_selection_mode",self.selection_mode) # restore selection mode | cmd.set("mouse_selection_mode",self.selection_mode) # restore selection mode | |||
self.clear() | self.clear() | |||
def clear(self): | def clear(self): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
self.status=0 | self.status=0 | |||
self.bump_scores = [] | self.bump_scores = [] | |||
cmd.delete(tmp_obj2) | cmd.delete(tmp_obj2) | |||
cmd.delete(mut_sele) | cmd.delete(mut_sele) | |||
cmd.delete(src_sele) | cmd.delete(src_sele) | |||
cmd.delete(obj_name) | cmd.delete(obj_name) | |||
cmd.delete(bump_name) | cmd.delete(bump_name) | |||
cmd.delete("_seeker_hilight") | cmd.delete("_seeker_hilight") | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
def apply(self): | def apply(self): | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if self.status==1: | if self.status==1: | |||
# find the name of the object which contains the selection | # find the name of the object which contains the selection | |||
src_frame = cmd.get_state() | src_frame = cmd.get_state() | |||
try: | try: | |||
new_name = cmd.get_object_list(src_sele)[0] | new_name = cmd.get_object_list(src_sele)[0] | |||
except IndexError: | except IndexError: | |||
print(" Mutagenesis: object not found.") | print(" Mutagenesis: object not found.") | |||
return | return | |||
if True: | if True: | |||
skipping to change at line 476 | skipping to change at line 465 | |||
# use N-terminal fragment | # use N-terminal fragment | |||
frag_type ="NT_"+frag_type | frag_type ="NT_"+frag_type | |||
if (self.c_cap == 'nega') and (frag_type[0:3]!='CT_'): | if (self.c_cap == 'nega') and (frag_type[0:3]!='CT_'): | |||
if not ( cmd.count_atoms("elem N & !(%s) & (bto. (name C & (%s)) ) & !resn NME+NHH"% | if not ( cmd.count_atoms("elem N & !(%s) & (bto. (name C & (%s)) ) & !resn NME+NHH"% | |||
(src_sele,src_sele))): | (src_sele,src_sele))): | |||
# use C-terminal fragment | # use C-terminal fragment | |||
frag_type ="CT_"+frag_type | frag_type ="CT_"+frag_type | |||
if rot_type[0:3] in [ 'NT_', 'CT_' ]: | if rot_type[0:3] in [ 'NT_', 'CT_' ]: | |||
rot_type = rot_type[3:] | rot_type = rot_type[3:] | |||
rot_type = _rot_type_xref.get(rot_type, rot_type) | rot_type = _rot_type_xref.get(rot_type, rot_type) | |||
cmd.fragment(frag_type.lower(), frag_name) | cmd.fragment(frag_type.lower(), frag_name, origin=0) | |||
# trim off hydrogens | # trim off hydrogens | |||
if (self.hyd == 'none'): | if (self.hyd == 'none'): | |||
cmd.remove("("+frag_name+" and hydro)") | cmd.remove("("+frag_name+" and hydro)") | |||
elif (self.hyd == 'auto'): | elif (self.hyd == 'auto'): | |||
if cmd.count_atoms("("+src_sele+") and hydro")==0: | if cmd.count_atoms("("+src_sele+") and hydro")==0: | |||
cmd.remove("("+frag_name+" and hydro)") | cmd.remove("("+frag_name+" and hydro)") | |||
# copy identifying information | # copy identifying information | |||
cmd.alter("?%s & name CA" % src_sele, "stored.identifiers = (segi, c hain, resi, ss, color)", space=self.space) | cmd.alter("?%s & name CA" % src_sele, "stored.identifiers = (segi, c hain, resi, ss, color)", space=self.space) | |||
cmd.alter("?%s" % frag_name, "(segi, chain, resi, ss) = stored.ident ifiers[:4]", space=self.space) | cmd.alter("?%s" % frag_name, "(segi, chain, resi, ss) = stored.ident ifiers[:4]", space=self.space) | |||
# move the fragment | # move the fragment | |||
skipping to change at line 694 | skipping to change at line 683 | |||
if (bump_name in names) and (obj_name in names): | if (bump_name in names) and (obj_name in names): | |||
cmd.update(bump_name,obj_name) | cmd.update(bump_name,obj_name) | |||
if self.bump_scores: | if self.bump_scores: | |||
state = cmd.get_state() | state = cmd.get_state() | |||
print(' Rotamer %d/%d, strain=%.2f' % (state, | print(' Rotamer %d/%d, strain=%.2f' % (state, | |||
cmd.count_states(obj_name), self.bump_scores[state - 1])) | cmd.count_states(obj_name), self.bump_scores[state - 1])) | |||
def do_select(self,selection): | def do_select(self,selection): | |||
print("Selected!") | print("Selected!") | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if (obj_name in cmd.get_names()): | if (obj_name in cmd.get_names()): | |||
if cmd.count_atoms("(%s) and (%s)"%(obj_name,selection)): | if cmd.count_atoms("(%s) and (%s)"%(obj_name,selection)): | |||
cmd.deselect() | cmd.deselect() | |||
return 1 | return 1 | |||
if self.status!=0: | if self.status!=0: | |||
cmd.delete(obj_name) | cmd.delete(obj_name) | |||
cmd.select(src_sele,selection) | cmd.select(src_sele,selection) | |||
cmd.unpick() | cmd.unpick() | |||
cmd.enable(src_sele) | cmd.enable(src_sele) | |||
self.status = 1 | self.status = 1 | |||
self.error = None | self.error = None | |||
self.do_library() | self.do_library() | |||
cmd.delete(selection) | cmd.delete(selection) | |||
cmd.refresh_wizard() | cmd.refresh_wizard() | |||
cmd.deselect() | cmd.deselect() | |||
return 1 | return 1 | |||
def do_pick(self,bondFlag): | def do_pick(self,bondFlag): | |||
print("Picked!") | print("Picked!") | |||
cmd=self.cmd | cmd=self.cmd | |||
pymol=cmd._pymol | ||||
if bondFlag: | if bondFlag: | |||
self.error = "Error: please select an atom, not a bond." | self.error = "Error: please select an atom, not a bond." | |||
print(self.error) | print(self.error) | |||
else: | else: | |||
if self.status!=0: | if self.status!=0: | |||
cmd.delete(obj_name) | cmd.delete(obj_name) | |||
cmd.select(src_sele,"(byres pk1)") | cmd.select(src_sele,"(byres pk1)") | |||
cmd.unpick() | cmd.unpick() | |||
cmd.enable(src_sele) | cmd.enable(src_sele) | |||
self.status = 1 | self.status = 1 | |||
End of changes. 14 change blocks. | ||||
14 lines changed or deleted | 1 lines changed or added |