def pop(name, source, enable=-1, quiet=1, _self=cmd): ''' DESCRIPTION "pop" provides a mechanism of iterating through an atom selection atom by atom, where each atom is sequentially assigned to the named selection. USAGE pop name, source EXAMPLE select src, name ca python while cmd.pop("tmp","src"): cmd.zoom("tmp",2, animate=1) for a in range(30): cmd.refresh() time.sleep(0.05) python end PYMOL API cmd.deselect() ''' r = DEFAULT_ERROR try: _self.lock(_self) r = _cmd.pop(_self._COb,str(name),str(source),int(quiet)) if is_ok(r): enable = int(enable) if enable>0: r = _cmd.onoff(_self._COb,str(name),1,0); elif enable == 0: r = _cmd.onoff(_self._COb,str(name),0,0) finally: _self.unlock(r,_self) if _self._raising(r,_self): raise pymol.CmdException return r
def select(name, selection="", enable=-1, quiet=1, merge=0, state=0, domain='',_self=cmd): ''' DESCRIPTION "select" creates a named atom selection from a selection-expression. USAGE select name, selection [, enable [, quiet [, merge [, state [, domain ]]]]] ARGUMENTS name = a unique name for the selection selection = a selection-expression NOTES If a selection-expression with explicit surrounding parethenses is provided as the first argument, then the default selection name is used as the name argument. EXAMPLES select chA, chain A select ( resn his ) select near142, resi 142 around 5 PYMOL API cmd.select(string name, string selection) SEE ALSO delete ''' r = DEFAULT_ERROR try: _self.lock(_self) if selection=="": selection = name if _cmd.get(_self._COb,"auto_number_selections")!=0.0: sel_cnt = _cmd.get(_self._COb,"sel_counter") + 1.0 _cmd.legacy_set(_self._COb,"sel_counter","%1.0f" % sel_cnt) name = "sel%02.0f" % sel_cnt else: name = "sele" if name == None: sel_cnt = _cmd.get(_self._COb,"sel_counter") + 1.0 _cmd.legacy_set(_self._COb,"sel_counter","%1.0f" % sel_cnt) name = "sel%02.0f" % sel_cnt # preprocess selection (note: inside TRY) selection = selector.process(selection) merge = int(merge) if merge==1: selection = "("+selection+") or ?"+name # merge if exists elif merge==2: selection = "("+selection+") or ??"+name # merge if exists and active # r = _cmd.select(_self._COb,str(name),str(selection),int(quiet),int(state)-1,str(domain)) enable = int(enable) if is_ok(r) and enable>0: _cmd.onoff(_self._COb,str(name),1,0); elif enable == 0: _cmd.onoff(_self._COb,str(name),0,0) finally: _self.unlock(r,_self) if _self._raising(r,_self): raise pymol.CmdException return r