<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pymol.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gawells</id>
	<title>PyMOL Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pymol.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gawells"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php/Special:Contributions/Gawells"/>
	<updated>2026-04-16T10:34:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8290</id>
		<title>Grepsel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8290"/>
		<updated>2005-11-28T08:05:42Z</updated>

		<summary type="html">&lt;p&gt;Gawells: A bit cleaner, fixed problems with non-greedy metacharacters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Create named selections using regular expressions for the protein sequence&lt;br /&gt;
&lt;br /&gt;
import pymol&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
aa = { 'ASP' : 'D' , 'GLU' : 'E' , 'GLN' : 'Q' , 'ASN' : 'N' , 'SER' : 'S' ,&lt;br /&gt;
       'THR' : 'T' , 'CYS' : 'C' , 'HIS' : 'H' , 'ARG' : 'R' , 'LYS' : 'K' ,&lt;br /&gt;
       'MET' : 'M' , 'ALA' : 'A' , 'ILE' : 'I' , 'LEU' : 'L' , 'VAL' : 'V' ,&lt;br /&gt;
       'GLY' : 'G' , 'PRO' : 'P' , 'TRP' : 'W' , 'PHE' : 'F' , 'TYR' : 'Y' ,&lt;br /&gt;
       'SCY' : 'U' , 'ASX' : 'B' , 'GLX' : 'Z' , 'XXX' : 'X'}&lt;br /&gt;
&lt;br /&gt;
#made this before the sequence view option, probably another way to do it now&lt;br /&gt;
&lt;br /&gt;
def seqoneint(model):&lt;br /&gt;
   pymol.stored.seq = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.seq.append(resn)&amp;quot;)&lt;br /&gt;
   seq = &amp;quot;&amp;quot;&lt;br /&gt;
   for x in pymol.stored.seq:&lt;br /&gt;
      if aa.has_key(x):&lt;br /&gt;
         res = aa[x]&lt;br /&gt;
         seq = seq+res&lt;br /&gt;
      else:&lt;br /&gt;
         seq = seq + '-'&lt;br /&gt;
   return seq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def grepsel(model=&amp;quot;(all)&amp;quot;,stretch=&amp;quot;&amp;quot;,prefix=&amp;quot;&amp;quot;,combined=&amp;quot;0&amp;quot;,single=&amp;quot;1&amp;quot;):&lt;br /&gt;
   '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Create selections matching motifs, using python regular expression syntax.&lt;br /&gt;
    Motif is automatically converted to uppercase. Motif selections are labelled&lt;br /&gt;
    as &amp;quot;prefix_motif_###&amp;quot;, where ### is the index for the first residue of the&lt;br /&gt;
    match. Prefix defaults to selection name. combined = 1 creates one selection&lt;br /&gt;
    for all occurences. single = 1 creates one selection for each occurance&lt;br /&gt;
    (the default).&lt;br /&gt;
    &lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    grepsel selection, motif, [prefix, [combined, [single ]]]&lt;br /&gt;
&lt;br /&gt;
EXAMPLES&lt;br /&gt;
&lt;br /&gt;
    Create selections for all motifs matching &amp;quot;ESS&amp;quot; (selection_ESS_###,...):&lt;br /&gt;
    grepsel selection, ess&lt;br /&gt;
&lt;br /&gt;
    Create selections for the PxGY motif with prefix m (m_P.CY_###,...):&lt;br /&gt;
    grepsel selection, p.gy, m&lt;br /&gt;
    '''&lt;br /&gt;
 &lt;br /&gt;
   if selection == &amp;quot;(all)&amp;quot;:&lt;br /&gt;
      selection = &amp;quot;all&amp;quot;&lt;br /&gt;
   if prefix == &amp;quot;&amp;quot;:&lt;br /&gt;
      prefix=selection&lt;br /&gt;
&lt;br /&gt;
   stretch = stretch.upper() &lt;br /&gt;
   seq = seqoneint(selection)&lt;br /&gt;
   pymol.stored.resi = []&lt;br /&gt;
   pymol.stored.chain = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%selection,&amp;quot;stored.resi.append(resi);stored.chain.append(chain)&amp;quot;)&lt;br /&gt;
   motif = re.compile(stretch)&lt;br /&gt;
   occurrences = motif.finditer(seq)&lt;br /&gt;
   stretchmod = stretch.replace(&amp;quot;+&amp;quot;,&amp;quot;\+&amp;quot;)&lt;br /&gt;
   stretchmod = stretchmod.replace(&amp;quot;?&amp;quot;,&amp;quot;\?&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   print stretchmod&lt;br /&gt;
   if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
      cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch), &amp;quot;none&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   for find in occurrences:      &lt;br /&gt;
&lt;br /&gt;
      mb = pymol.stored.resi[find.start()]&lt;br /&gt;
      me = pymol.stored.resi[find.end()-1]&lt;br /&gt;
&lt;br /&gt;
      ch = pymol.stored.chain[find.start()]&lt;br /&gt;
      cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,me,ch), &amp;quot;chain %s and (i; %s-%s)&amp;quot;%(ch,int(mb),int(me)))&lt;br /&gt;
      if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
         cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch),&amp;quot;\&amp;quot;%s_%s\&amp;quot; | (%s and chain %s and (i; %s-%s))&amp;quot;%(prefix,stretchmod,selection,ch,int(mb),int(me)))&lt;br /&gt;
&lt;br /&gt;
   cmd.select(&amp;quot;none&amp;quot;)&lt;br /&gt;
   cmd.delete(&amp;quot;sel*&amp;quot;)&lt;br /&gt;
   &lt;br /&gt;
cmd.extend(&amp;quot;grepsel&amp;quot;,grepsel)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|Grep selections]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8289</id>
		<title>Grepsel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8289"/>
		<updated>2005-11-28T08:01:39Z</updated>

		<summary type="html">&lt;p&gt;Gawells: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Create named selections using regular expressions for the protein sequence&lt;br /&gt;
&lt;br /&gt;
import pymol&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
aa = { 'ASP' : 'D' , 'GLU' : 'E' , 'GLN' : 'Q' , 'ASN' : 'N' , 'SER' : 'S' ,&lt;br /&gt;
       'THR' : 'T' , 'CYS' : 'C' , 'HIS' : 'H' , 'ARG' : 'R' , 'LYS' : 'K' ,&lt;br /&gt;
       'MET' : 'M' , 'ALA' : 'A' , 'ILE' : 'I' , 'LEU' : 'L' , 'VAL' : 'V' ,&lt;br /&gt;
       'GLY' : 'G' , 'PRO' : 'P' , 'TRP' : 'W' , 'PHE' : 'F' , 'TYR' : 'Y' ,&lt;br /&gt;
       'SCY' : 'U' , 'ASX' : 'B' , 'GLX' : 'Z' , 'XXX' : 'X'}&lt;br /&gt;
&lt;br /&gt;
#made this before the sequence view option, probably another way to do it now&lt;br /&gt;
&lt;br /&gt;
def seqoneint(model):&lt;br /&gt;
   pymol.stored.seq = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.seq.append(resn)&amp;quot;)&lt;br /&gt;
   seq = &amp;quot;&amp;quot;&lt;br /&gt;
   for x in pymol.stored.seq:&lt;br /&gt;
      if aa.has_key(x):&lt;br /&gt;
         res = aa[x]&lt;br /&gt;
         seq = seq+res&lt;br /&gt;
      else:&lt;br /&gt;
         seq = seq + '-'&lt;br /&gt;
   return seq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def grepsel(model=&amp;quot;(all)&amp;quot;,stretch=&amp;quot;&amp;quot;,prefix=&amp;quot;&amp;quot;,combined=&amp;quot;0&amp;quot;,single=&amp;quot;1&amp;quot;):&lt;br /&gt;
   '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
Create selections matching motifs, using python regular expression syntax.&lt;br /&gt;
    Motif is automatically converted to uppercase. Motif selections are labelled&lt;br /&gt;
    as &amp;quot;prefix_motif_###&amp;quot;, where ### is the index for the first residue of the&lt;br /&gt;
    match. Prefix defaults to selection name. combined = 1 creates one selection&lt;br /&gt;
    for all occurences. single = 1 creates one selection for each occurance&lt;br /&gt;
    (the default).&lt;br /&gt;
    &lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    grepsel selection, expression, [prefix, [combined, [single ]]]&lt;br /&gt;
&lt;br /&gt;
EXAMPLES&lt;br /&gt;
&lt;br /&gt;
    Make selections for all motifs matching &amp;quot;ESS&amp;quot; (model_ESS_###,...):&lt;br /&gt;
    grepsel model, ess&lt;br /&gt;
&lt;br /&gt;
    Make selections for the PxGY motif with prefix m (m_P.CY_###,...):&lt;br /&gt;
    grepsel model, p.gy, m&lt;br /&gt;
        &lt;br /&gt;
    '''&lt;br /&gt;
 &lt;br /&gt;
   if selection == &amp;quot;(all)&amp;quot;:&lt;br /&gt;
      selection = &amp;quot;all&amp;quot;&lt;br /&gt;
   if prefix == &amp;quot;&amp;quot;:&lt;br /&gt;
      prefix=selection&lt;br /&gt;
&lt;br /&gt;
   stretch = stretch.upper() &lt;br /&gt;
   seq = seqoneint(selection)&lt;br /&gt;
   pymol.stored.resi = []&lt;br /&gt;
   pymol.stored.chain = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%selection,&amp;quot;stored.resi.append(resi);stored.chain.append(chain)&amp;quot;)&lt;br /&gt;
   motif = re.compile(stretch)&lt;br /&gt;
   occurrences = motif.finditer(seq)&lt;br /&gt;
   stretchmod = stretch.replace(&amp;quot;+&amp;quot;,&amp;quot;\+&amp;quot;)&lt;br /&gt;
   stretchmod = stretchmod.replace(&amp;quot;?&amp;quot;,&amp;quot;\?&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   print stretchmod&lt;br /&gt;
   if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
      cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch), &amp;quot;none&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   for find in occurrences:      &lt;br /&gt;
&lt;br /&gt;
      mb = pymol.stored.resi[find.start()]&lt;br /&gt;
      me = pymol.stored.resi[find.end()-1]&lt;br /&gt;
&lt;br /&gt;
      ch = pymol.stored.chain[find.start()]&lt;br /&gt;
      cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,me,ch), &amp;quot;chain %s and (i; %s-%s)&amp;quot;%(ch,int(mb),int(me)))&lt;br /&gt;
      if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
         cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch),&amp;quot;\&amp;quot;%s_%s\&amp;quot; | (%s and chain %s and (i; %s-%s))&amp;quot;%(prefix,stretchmod,selection,ch,int(mb),int(me)))&lt;br /&gt;
&lt;br /&gt;
   cmd.select(&amp;quot;none&amp;quot;)&lt;br /&gt;
   cmd.delete(&amp;quot;sel*&amp;quot;)&lt;br /&gt;
   &lt;br /&gt;
cmd.extend(&amp;quot;grepsel&amp;quot;,grepsel)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|Grep selections]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8288</id>
		<title>Grepsel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8288"/>
		<updated>2005-09-10T10:24:37Z</updated>

		<summary type="html">&lt;p&gt;Gawells: fixed selection from &amp;quot;chainless&amp;quot; models&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Create named selections using regular expressions for the protein sequence&lt;br /&gt;
&lt;br /&gt;
import pymol&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
aa = { 'ASP' : 'D' , 'GLU' : 'E' , 'GLN' : 'Q' , 'ASN' : 'N' , 'SER' : 'S' ,&lt;br /&gt;
       'THR' : 'T' , 'CYS' : 'C' , 'HIS' : 'H' , 'ARG' : 'R' , 'LYS' : 'K' ,&lt;br /&gt;
       'MET' : 'M' , 'ALA' : 'A' , 'ILE' : 'I' , 'LEU' : 'L' , 'VAL' : 'V' ,&lt;br /&gt;
       'GLY' : 'G' , 'PRO' : 'P' , 'TRP' : 'W' , 'PHE' : 'F' , 'TYR' : 'Y' ,&lt;br /&gt;
       'SCY' : 'U' , 'ASX' : 'B' , 'GLX' : 'Z' , 'XXX' : 'X'}&lt;br /&gt;
&lt;br /&gt;
#made this before the sequence view option, probably another way to do it now&lt;br /&gt;
&lt;br /&gt;
def seqoneint(model):&lt;br /&gt;
   pymol.stored.seq = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.seq.append(resn)&amp;quot;)&lt;br /&gt;
   seq = &amp;quot;&amp;quot;&lt;br /&gt;
   for x in pymol.stored.seq:&lt;br /&gt;
      if aa.has_key(x):&lt;br /&gt;
         res = aa[x]&lt;br /&gt;
         seq = seq+res&lt;br /&gt;
      else:&lt;br /&gt;
         seq = seq + '-'&lt;br /&gt;
   return seq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def grepsel(model=&amp;quot;(all)&amp;quot;,stretch=&amp;quot;&amp;quot;,prefix=&amp;quot;&amp;quot;,combined=&amp;quot;0&amp;quot;,single=&amp;quot;1&amp;quot;):&lt;br /&gt;
   '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Make selections matching regular expressions. Selections are labelled&lt;br /&gt;
    as &amp;quot;prefix_expression_###&amp;quot;, where ### is the index for the first residue&lt;br /&gt;
    of the match. Prefix defaults to model name. combined = 1 creates one&lt;br /&gt;
    selection for all occurences. single = 1 creates one selection for each&lt;br /&gt;
    occurance (the default).&lt;br /&gt;
    &lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    grepsel selection, expression, [prefix, [combined, [single ]]]&lt;br /&gt;
&lt;br /&gt;
EXAMPLES&lt;br /&gt;
&lt;br /&gt;
    Make selections for all motifs matching &amp;quot;ESS&amp;quot; (model_ESS_###,...):&lt;br /&gt;
    grepsel model, ess&lt;br /&gt;
&lt;br /&gt;
    Make selections for the PxGY motif with prefix m (m_P.CY_###,...):&lt;br /&gt;
    grepsel model, p.gy, m&lt;br /&gt;
        &lt;br /&gt;
    '''&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
   if model == &amp;quot;(all)&amp;quot;:&lt;br /&gt;
      model = &amp;quot;all&amp;quot;&lt;br /&gt;
   if prefix == &amp;quot;&amp;quot;:&lt;br /&gt;
      prefix=model&lt;br /&gt;
&lt;br /&gt;
   stretch = stretch.upper() &lt;br /&gt;
   seq = seqoneint(model)&lt;br /&gt;
   pymol.stored.resi = []&lt;br /&gt;
   pymol.stored.chain = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.resi.append(resi);stored.chain.append(chain)&amp;quot;)&lt;br /&gt;
   motif = re.compile(stretch)&lt;br /&gt;
   occurrences = motif.finditer(seq)&lt;br /&gt;
   if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
      cmd.do(&amp;quot;select %s_%s, none&amp;quot;%(prefix,stretch))&lt;br /&gt;
&lt;br /&gt;
   for match in occurrences:&lt;br /&gt;
      fx = match.start()&lt;br /&gt;
      pos = 0&lt;br /&gt;
      for fy in range(int(fx),int(fx)+len(stretch)):&lt;br /&gt;
         ch = pymol.stored.chain[fy]&lt;br /&gt;
         ri = pymol.stored.resi[fy]&lt;br /&gt;
         if pos == 0:&lt;br /&gt;
            pos = ri&lt;br /&gt;
            if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
               cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;none&amp;quot;)            &lt;br /&gt;
         if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;%s_%s_%s%s | ///%s/%s/&amp;quot;%(prefix,stretch,pos,ch,ch,ri))&lt;br /&gt;
         if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch), &amp;quot;%s_%s | ////%s/&amp;quot;%(prefix,stretch,ri))&lt;br /&gt;
   cmd.select(&amp;quot;none&amp;quot;)&lt;br /&gt;
   cmd.delete(&amp;quot;sel*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
cmd.extend(&amp;quot;grepsel&amp;quot;,grepsel)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|Grep selections]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category:Script_Library&amp;diff=3869</id>
		<title>Category:Script Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category:Script_Library&amp;diff=3869"/>
		<updated>2005-07-20T16:15:14Z</updated>

		<summary type="html">&lt;p&gt;Gawells: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Stereo_Ray]] -- This script will create two resolution specific ray traced images rotated appropriately for inclusion into a single file to represent a stereo view of the desired macromolecule.&lt;br /&gt;
&lt;br /&gt;
* [[Translate_And_Measure]] -- prints '''overlap''' if any of the atoms in molA or molB were within 4 Angstrom after translating by 1 along X&lt;br /&gt;
&lt;br /&gt;
* [[Show aromatics]] -- This script will display a backbone &amp;quot;worm&amp;quot; for your protein, with all of the sidechains for aromatic residues displayed as green &amp;quot;sticks&amp;quot;.  Usage: Save this as &amp;quot;show_aromatics.pml&amp;quot;, load your protein in PyMOL, and run the script (select &amp;quot;Run&amp;quot; from the &amp;quot;File&amp;quot; menu). (PyMOL script; TStout)&lt;br /&gt;
&lt;br /&gt;
* [[Show hydrophobics]] -- This script will display a backbone &amp;quot;worm&amp;quot; for your protein, with all of the sidechains for hydrophobic residues displayed as orange &amp;quot;sticks&amp;quot;.  Usage: Same as &amp;quot;show aromatics&amp;quot;. (PyMOL script; TStout)&lt;br /&gt;
&lt;br /&gt;
* [[Show charged]] -- This script will display a backbone &amp;quot;worm&amp;quot; for your protein, with all of the sidechains for charged residues displayed as red (negative) or blue (posititve) &amp;quot;sticks&amp;quot;.  Usage: Same as &amp;quot;show aromatics&amp;quot;. (PyMOL script; TStout)&lt;br /&gt;
&lt;br /&gt;
* [[Show hydrophilic]] -- This script will display a backbone &amp;quot;worm&amp;quot; for your protein, with all of the sidechains for hydrophilic residues displayed as green &amp;quot;sticks&amp;quot;.  Usage: Same as &amp;quot;show aromatics&amp;quot;. (PyMOL script; TStout)&lt;br /&gt;
&lt;br /&gt;
* [[Perp Maker]] -- Creates a perpendicular plane through the center of your protein with respect to the camera's current position.  (If you translate the protein towards the camera a bit, you get a nice surface, sometimes.) A stupid little script I wrote in response to a request a few months ago (and it doesn't even conform to the request!)  Load a protein, run the script (read the documentation in the script). (Jason Vertrees/[[User:Tree|Tree]])&lt;br /&gt;
&lt;br /&gt;
* [[Axes]] -- Creates a 3D-CGO object that shows the three coordinate axes.&lt;br /&gt;
&lt;br /&gt;
* [[CGO Text]] -- Creates a 3D-CGO text object.&lt;br /&gt;
&lt;br /&gt;
* [[List Selection]] -- Prints a list of all residues in a selection (both Python and .pml).&lt;br /&gt;
&lt;br /&gt;
* [[List Colors]] -- Lists the color of all residues in a selection (both Python and .pml).&lt;br /&gt;
&lt;br /&gt;
* [[List Secondary Structures]] -- Secondary structures (both predefined and those calculated with the 'dss' command) can be exported as a long string ('HHHHLLLLSSS').&lt;br /&gt;
&lt;br /&gt;
* [[Split Movement]] -- Moves two parts of one object into different directions.&lt;br /&gt;
&lt;br /&gt;
* [[Selection Exists]] -- Python method that returns true if a selection of a given name exists.&lt;br /&gt;
&lt;br /&gt;
* [[Get Coordinates I]] -- Retrieves atom coordinates as Python objects.&lt;br /&gt;
&lt;br /&gt;
* [[Get Coordinates II]] -- Retrieves atom coordinates as Python array (list object).&lt;br /&gt;
&lt;br /&gt;
* [[grepset]] -- List all settings matching a given keyword. - ''by EHP''&lt;br /&gt;
&lt;br /&gt;
* [[disconnect]] -- unbond a single atom from its neighbors. - ''by EHP''&lt;br /&gt;
&lt;br /&gt;
* [[mouse_modes]] -- customize the default mouse bindings for Viewing or Editing modes. - ''by EHP''&lt;br /&gt;
&lt;br /&gt;
* [[Measure Distance]] -- Measures the distance between two atoms (Python script).&lt;br /&gt;
&lt;br /&gt;
* [[Read PDB-String]] -- Parses a string in PDB format to a PyMOL object.&lt;br /&gt;
&lt;br /&gt;
* [[Color Objects]] -- Colors all objects differently (Python script).&lt;br /&gt;
&lt;br /&gt;
* [[Key Wait]] -- Process key events in a Python script.&lt;br /&gt;
&lt;br /&gt;
* [[Bounding Box]] -- Create a bounding box around a selection (Python script; requires numarray and Scientific; gilleain)&lt;br /&gt;
&lt;br /&gt;
* [[Ellipsoid]] -- Create callback object (opengl) ellipsoids. (Python script;  gilleain)&lt;br /&gt;
&lt;br /&gt;
* [[pdbsurvey]] -- Surveys the pdb for recently added structures that are relevant to a user-specified keywords list (in a text file)&lt;br /&gt;
&lt;br /&gt;
* [[TransformSelectionByCameraView]] -- Transforms the selection by the camera view.&lt;br /&gt;
&lt;br /&gt;
* [[WFMesh]] -- Imports wavefront object mesh files; Starwars as an example!&lt;br /&gt;
&lt;br /&gt;
* [[grepsel]] -- Make named selections using regular expressions (protein sequence).&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting|Script Library]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8287</id>
		<title>Grepsel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8287"/>
		<updated>2005-07-20T16:11:33Z</updated>

		<summary type="html">&lt;p&gt;Gawells: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Create named selections using regular expressions for the protein sequence&lt;br /&gt;
&lt;br /&gt;
import pymol&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
aa = { 'ASP' : 'D' , 'GLU' : 'E' , 'GLN' : 'Q' , 'ASN' : 'N' , 'SER' : 'S' ,&lt;br /&gt;
       'THR' : 'T' , 'CYS' : 'C' , 'HIS' : 'H' , 'ARG' : 'R' , 'LYS' : 'K' ,&lt;br /&gt;
       'MET' : 'M' , 'ALA' : 'A' , 'ILE' : 'I' , 'LEU' : 'L' , 'VAL' : 'V' ,&lt;br /&gt;
       'GLY' : 'G' , 'PRO' : 'P' , 'TRP' : 'W' , 'PHE' : 'F' , 'TYR' : 'Y' ,&lt;br /&gt;
       'SCY' : 'U' , 'ASX' : 'B' , 'GLX' : 'Z' , 'XXX' : 'X'}&lt;br /&gt;
&lt;br /&gt;
#made this before the sequence view option, probably another way to do it now&lt;br /&gt;
&lt;br /&gt;
def seqoneint(model):&lt;br /&gt;
   pymol.stored.seq = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.seq.append(resn)&amp;quot;)&lt;br /&gt;
   seq = &amp;quot;&amp;quot;&lt;br /&gt;
   for x in pymol.stored.seq:&lt;br /&gt;
      if aa.has_key(x):&lt;br /&gt;
         res = aa[x]&lt;br /&gt;
         seq = seq+res&lt;br /&gt;
      else:&lt;br /&gt;
         seq = seq + '-'&lt;br /&gt;
   return seq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def grepsel(model=&amp;quot;(all)&amp;quot;,stretch=&amp;quot;&amp;quot;,prefix=&amp;quot;&amp;quot;,combined=&amp;quot;0&amp;quot;,single=&amp;quot;1&amp;quot;):&lt;br /&gt;
   '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Make selections matching regular expressions. Selections are labelled&lt;br /&gt;
    as &amp;quot;prefix_expression_###&amp;quot;, where ### is the index for the first residue&lt;br /&gt;
    of the match. Prefix defaults to model name. combined = 1 creates one&lt;br /&gt;
    selection for all occurences. single = 1 creates one selection for each&lt;br /&gt;
    occurance (the default).&lt;br /&gt;
    &lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    grepsel selection, expression, [prefix, [combined, [single ]]]&lt;br /&gt;
&lt;br /&gt;
EXAMPLES&lt;br /&gt;
&lt;br /&gt;
    Make selections for all motifs matching &amp;quot;ESS&amp;quot; (model_ESS_###,...):&lt;br /&gt;
    grepsel model, ess&lt;br /&gt;
&lt;br /&gt;
    Make selections for the PxGY motif with prefix m (m_P.CY_###,...):&lt;br /&gt;
    grepsel model, p.gy, m&lt;br /&gt;
        &lt;br /&gt;
    '''&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
   if model == &amp;quot;(all)&amp;quot;:&lt;br /&gt;
      model = &amp;quot;all&amp;quot;&lt;br /&gt;
   if prefix == &amp;quot;&amp;quot;:&lt;br /&gt;
      prefix=model&lt;br /&gt;
&lt;br /&gt;
   stretch = stretch.upper() &lt;br /&gt;
   seq = seqoneint(model)&lt;br /&gt;
   pymol.stored.resi = []&lt;br /&gt;
   pymol.stored.chain = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.resi.append(resi);stored.chain.append(chain)&amp;quot;)&lt;br /&gt;
   motif = re.compile(stretch)&lt;br /&gt;
   occurrences = motif.finditer(seq)&lt;br /&gt;
   if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
      cmd.do(&amp;quot;select %s_%s, none&amp;quot;%(prefix,stretch))&lt;br /&gt;
&lt;br /&gt;
   for match in occurrences:&lt;br /&gt;
      fx = match.start()&lt;br /&gt;
      pos = 0&lt;br /&gt;
      for fy in range(int(fx),int(fx)+len(stretch)):&lt;br /&gt;
         ch = pymol.stored.chain[fy]&lt;br /&gt;
         ri = pymol.stored.resi[fy]&lt;br /&gt;
         if pos == 0:&lt;br /&gt;
            pos = ri&lt;br /&gt;
            if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
               cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;none&amp;quot;)            &lt;br /&gt;
         if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;%s_%s_%s%s | %s/%s/&amp;quot;%(prefix,stretch,pos,ch,ch,ri))&lt;br /&gt;
         if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch), &amp;quot;%s_%s | %s//&amp;quot;%(prefix,stretch,ri))&lt;br /&gt;
   cmd.select(&amp;quot;none&amp;quot;)&lt;br /&gt;
   cmd.delete(&amp;quot;sel*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
cmd.extend(&amp;quot;grepsel&amp;quot;,grepsel)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|Grep selections]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8286</id>
		<title>Grepsel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grepsel&amp;diff=8286"/>
		<updated>2005-07-20T16:09:54Z</updated>

		<summary type="html">&lt;p&gt;Gawells: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Create named selections using regular expressions for the protein sequence&lt;br /&gt;
&lt;br /&gt;
import pymol&lt;br /&gt;
import re&lt;br /&gt;
&lt;br /&gt;
aa = { 'ASP' : 'D' , 'GLU' : 'E' , 'GLN' : 'Q' , 'ASN' : 'N' , 'SER' : 'S' ,&lt;br /&gt;
       'THR' : 'T' , 'CYS' : 'C' , 'HIS' : 'H' , 'ARG' : 'R' , 'LYS' : 'K' ,&lt;br /&gt;
       'MET' : 'M' , 'ALA' : 'A' , 'ILE' : 'I' , 'LEU' : 'L' , 'VAL' : 'V' ,&lt;br /&gt;
       'GLY' : 'G' , 'PRO' : 'P' , 'TRP' : 'W' , 'PHE' : 'F' , 'TYR' : 'Y' ,&lt;br /&gt;
       'SCY' : 'U' , 'ASX' : 'B' , 'GLX' : 'Z' , 'XXX' : 'X'}&lt;br /&gt;
&lt;br /&gt;
#made this before the sequence view option, probably another way to do it now&lt;br /&gt;
&lt;br /&gt;
def seqoneint(model):&lt;br /&gt;
   pymol.stored.seq = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.seq.append(resn)&amp;quot;)&lt;br /&gt;
   seq = &amp;quot;&amp;quot;&lt;br /&gt;
   for x in pymol.stored.seq:&lt;br /&gt;
      if aa.has_key(x):&lt;br /&gt;
         res = aa[x]&lt;br /&gt;
         seq = seq+res&lt;br /&gt;
      else:&lt;br /&gt;
         seq = seq + '-'&lt;br /&gt;
   return seq&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def grepsel(model=&amp;quot;(all)&amp;quot;,stretch=&amp;quot;&amp;quot;,prefix=&amp;quot;&amp;quot;,combined=&amp;quot;0&amp;quot;,single=&amp;quot;1&amp;quot;):&lt;br /&gt;
   '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Make selections matching regular expressions. Selections are labelled&lt;br /&gt;
    as &amp;quot;prefix_expression_###&amp;quot;, where ### is the index for the first residue&lt;br /&gt;
    of the match. Prefix defaults to model name. combined = 1 creates one&lt;br /&gt;
    selection for all occurences. single = 1 creates one selection for each&lt;br /&gt;
    occurance (the default).&lt;br /&gt;
    &lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    grepsel selection, expression, [prefix, [combined, [single ]]]&lt;br /&gt;
&lt;br /&gt;
EXAMPLES&lt;br /&gt;
&lt;br /&gt;
    Make selections for all motifs matching &amp;quot;ESS&amp;quot; (model_ESS_###,...):&lt;br /&gt;
    grepsel model, ess&lt;br /&gt;
&lt;br /&gt;
    Make selections for the PxGY motif with prefix m (m_P.CY_###,...):&lt;br /&gt;
    grepsel model, p.gy, m&lt;br /&gt;
        &lt;br /&gt;
    '''&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
   if model == &amp;quot;(all)&amp;quot;:&lt;br /&gt;
      model = &amp;quot;all&amp;quot;&lt;br /&gt;
   if prefix == &amp;quot;&amp;quot;:&lt;br /&gt;
      prefix=model&lt;br /&gt;
&lt;br /&gt;
   stretch = stretch.upper() &lt;br /&gt;
   seq = seqoneint(model)&lt;br /&gt;
   pymol.stored.resi = []&lt;br /&gt;
   pymol.stored.chain = []&lt;br /&gt;
   cmd.iterate(&amp;quot;%s and name ca&amp;quot;%model,&amp;quot;stored.resi.append(resi);stored.chain.append(chain)&amp;quot;)&lt;br /&gt;
   motif = re.compile(stretch)&lt;br /&gt;
   occurrences = motif.finditer(seq)&lt;br /&gt;
   if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
      cmd.do(&amp;quot;select %s_%s, none&amp;quot;%(prefix,stretch))&lt;br /&gt;
&lt;br /&gt;
   for match in occurrences:&lt;br /&gt;
      fx = match.start()&lt;br /&gt;
      pos = 0&lt;br /&gt;
      for fy in range(int(fx),int(fx)+len(stretch)):&lt;br /&gt;
         ch = pymol.stored.chain[fy]&lt;br /&gt;
         ri = pymol.stored.resi[fy]&lt;br /&gt;
         if pos == 0:&lt;br /&gt;
            pos = ri&lt;br /&gt;
            if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
               cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;none&amp;quot;)            &lt;br /&gt;
         if single == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s_%s%s&amp;quot;%(prefix,stretch,pos,ch), &amp;quot;%s_%s_%s%s | %s/%s/&amp;quot;%(prefix,stretch,pos,ch,ch,ri))&lt;br /&gt;
         if combined == &amp;quot;1&amp;quot;:&lt;br /&gt;
            cmd.select(&amp;quot;%s_%s&amp;quot;%(prefix,stretch), &amp;quot;%s_%s | %s//&amp;quot;%(prefix,stretch,ri))&lt;br /&gt;
   cmd.select(&amp;quot;none&amp;quot;)&lt;br /&gt;
   cmd.delete(&amp;quot;sel*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
cmd.extend(&amp;quot;grepsel&amp;quot;,grepsel)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|grep selections]]&lt;/div&gt;</summary>
		<author><name>Gawells</name></author>
	</entry>
</feed>