def ligand_sites(selection="(all)",_self=cmd): cmd=_self try: s = tmp_sele cmd.select(s,selection) polar_contacts = _get_polar_contacts_name(s,_self) _prepare(s,polar_contacts,_self=cmd) host = "_preset_host" solvent = "_preset_solvent" near_solvent = "_preset_solvent" lig = "_preset_lig" cmd.select(host,s+" and "+prot_and_dna_sele) cmd.select(solvent,s+" and "+solv_sele) cmd.select(lig,s+" and "+lig_sele) cmd.select(near_solvent,s+" and ("+solvent+" within 4 of "+lig+")") cmd.flag("ignore",host,"clear") cmd.flag("ignore",lig+"|"+solvent,"set") util.chainbow(host,_self=cmd) util.cbc(lig,_self=cmd) util.cbac("(("+s+") and not elem c)",_self=cmd) cmd.hide("everything",s) cmd.show("ribbon",host) cmd.show("lines","("+s+" and byres ("+host+" within 5 of "+lig+"))") cmd.show("surface","("+s+" and ((rep lines expand 4) within 6 of "+lig+"))") cmd.set("two_sided_lighting",1) # global setting cmd.set("transparency",0,s) cmd.set("surface_quality",0,s) cmd.show("sticks",lig) cmd.show("sticks",solvent+" and neighbor "+lig) cmd.show("lines","("+s+" and (rep lines extend 1) and "+lig+")") if cmd.count_atoms(lig): cmd.dist(polar_contacts,host+"|"+near_solvent,lig+"|"+near_solvent,mode=2,quiet=1,label=0,reset=1) # hbonds if polar_contacts in cmd.get_names(): cmd.enable(polar_contacts) cmd.hide("labels",polar_contacts) cmd.show("dashes",polar_contacts) else: cmd.delete(polar_contacts) cmd.show("nb_spheres",lig+"|"+host+"|"+near_solvent) if cmd.count_atoms(lig): cmd.zoom(lig,3) cmd.delete(host) cmd.delete(solvent) cmd.delete(near_solvent) cmd.delete(lig) except: traceback.print_exc() cmd.delete(s)
def protein_assign_charges_and_radii(obj_name,_self=cmd): pymol=_self._pymol cmd=_self from chempy.champ import assign # apply a few kludges # convent Seleno-methionine to methionine cmd.alter(obj_name+"///MSE/SE","elem='S';name='SD'",quiet=1) cmd.alter(obj_name+"///MSE/","resn='MET'",quiet=1) cmd.flag("ignore",obj_name,"clear") # remove alternate conformers cmd.remove(obj_name+" and not alt ''+A") cmd.alter(obj_name,"alt=''") cmd.sort(obj_name) cmd.fix_chemistry(obj_name,obj_name,1) # make sure all atoms are included... cmd.alter(obj_name,"q=1.0",quiet=1) print " Util: Fixing termini and assigning formal charges..." assign.missing_c_termini(obj_name,quiet=1,_self=_self) while not assign.formal_charges(obj_name,quiet=1,_self=_self): print " WARNING: unrecognized or incomplete residues are being deleted:" cmd.iterate("(byres ("+obj_name+" and flag 23)) and flag 31", 'print " "+model+"/"+segi+"/"+chain+"/"+resn+"`"+resi+"/"',quiet=1) cmd.remove("byres ("+obj_name+" and flag 23)") # get rid of residues that weren't assigned assign.missing_c_termini(obj_name,quiet=1,_self=_self) print " Util: Assigning Amber 99 charges and radii..." cmd.h_add(obj_name) if not assign.amber99(obj_name,quiet=1,_self=_self): print " WARNING: some unassigned atoms are being deleted:" cmd.iterate("byres ("+obj_name+" and flag 23)", 'print " "+model+"/"+segi+"/"+chain+"/"+resn+"`"+resi+"/"+name+"? ["+elem+"]"',quiet=1) cmd.remove(obj_name+" and flag 23") # get rid of any atoms that weren't assigned # show the user what the net charges are... formal = sum_formal_charges(obj_name,quiet=0,_self=_self) partial = sum_partial_charges(obj_name,quiet=0,_self=_self) if round(formal)!=round(partial): print " WARNING: formal and partial charge sums don't match -- there is a problem!"
def ligand_sites(selection="(all)", _self=cmd): cmd = _self try: s = tmp_sele cmd.select(s, selection) polar_contacts = _get_polar_contacts_name(s, _self) _prepare(s, polar_contacts, _self=cmd) host = "_preset_host" solvent = "_preset_solvent" near_solvent = "_preset_solvent" lig = "_preset_lig" cmd.select(host, s + " and " + prot_and_dna_sele) cmd.select(solvent, s + " and " + solv_sele) cmd.select(lig, s + " and " + lig_sele) cmd.select(near_solvent, s + " and (" + solvent + " within 4 of " + lig + ")") cmd.flag("ignore", host, "clear") cmd.flag("ignore", lig + "|" + solvent, "set") util.chainbow(host, _self=cmd) util.cbc(lig, _self=cmd) util.cbac("((" + s + ") and not elem c)", _self=cmd) cmd.hide("everything", s) cmd.show("ribbon", host) cmd.show( "lines", "(" + s + " and byres (" + host + " within 5 of " + lig + "))") cmd.show( "surface", "(" + s + " and ((rep lines expand 4) within 6 of " + lig + "))") cmd.set("two_sided_lighting", 1) # global setting cmd.set("transparency", 0, s) cmd.set("surface_quality", 0, s) cmd.show("sticks", lig) cmd.show("sticks", solvent + " and neighbor " + lig) cmd.show("lines", "(" + s + " and (rep lines extend 1) and " + lig + ")") if cmd.count_atoms(lig): cmd.dist(polar_contacts, host + "|" + near_solvent, lig + "|" + near_solvent, mode=2, quiet=1, label=0, reset=1) # hbonds if polar_contacts in cmd.get_names(): cmd.enable(polar_contacts) cmd.hide("labels", polar_contacts) cmd.show("dashes", polar_contacts) else: cmd.delete(polar_contacts) cmd.show("nb_spheres", lig + "|" + host + "|" + near_solvent) if cmd.count_atoms(lig): cmd.zoom(lig, 3) cmd.delete(host) cmd.delete(solvent) cmd.delete(near_solvent) cmd.delete(lig) except: traceback.print_exc()