Difference between revisions of "Grepset"

From PyMOLWiki
Jump to navigation Jump to search
(Modified script to format output according to max length of matched settings.)
(psico)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Infobox script-repo
 +
|type      = script
 +
|filename  = grepset.py
 +
|author    = [[User:Zac|Ezequiel Panepucci]]
 +
|license  = BSD
 +
}}
 +
 +
{{Infobox psico
 +
|module    = psico.helping
 +
}}
 +
 
Use this little script to explore PyMOL's myriad settings.
 
Use this little script to explore PyMOL's myriad settings.
  
Line 6: Line 17:
  
 
# put the script in a file called '''grepset.py'''
 
# put the script in a file called '''grepset.py'''
# from within PyMOL execute '''run grepset.py'''
+
# from within PyMOL execute '''run grepset.py'''. If you have the Pymol-script library configured, then '''import grepset'''
 
# try it out, see examples below.
 
# try it out, see examples below.
  
Line 41: Line 52:
 
3 settings matched
 
3 settings matched
 
</pre>
 
</pre>
 
== The Script itself: grepset.py ==
 
<source lang="python">
 
from pymol import cmd
 
import re
 
import pymol.setting
 
 
def grepset(regexp=''):
 
    '''
 
DESCRIPTION
 
    "grepset" greps through the list of settings using a python
 
    regular expression as defined in the 're' module.
 
    It returns a list of settings/values matching the regexp.
 
    No regexp returns every setting.
 
 
USAGE
 
    grepset [regexp]
 
 
EXAMPLE
 
    grepset line
 
    grepset ray
 
    grepset (^line|color$)
 
 
SEE ALSO
 
Python re module
 
    '''
 
 
    count = 0
 
    regexp = re.compile(regexp)
 
    matches = []
 
    for a in pymol.setting.get_index_list():
 
        setting = pymol.setting._get_name(a)
 
        if regexp.search(setting):
 
            count += 1
 
            matches.append( (setting, cmd.get_setting_text(a, '', -1)) )
 
    # max length of the setting names that matched
 
    maxlen = max([len(s[0]) for s in matches])
 
    fmt = "%%-%ds : %%s" % (maxlen,)
 
    for setting in matches:
 
        print fmt % setting
 
    print '%d settings matched' % (count,)
 
    cmd.set('text', 1)
 
cmd.extend('grepset', grepset)
 
</source>
 
 
''Author: Ezequiel (Zac) Panepucci''
 
  
 
[[Category:Script_Library|Grepset]]
 
[[Category:Script_Library|Grepset]]
 
[[Category:UI_Scripts]]
 
[[Category:UI_Scripts]]
 +
[[Category:Pymol-script-repo]]

Latest revision as of 11:04, 2 March 2017

Type Python Script
Download grepset.py
Author(s) Ezequiel Panepucci
License BSD
This code has been put under version control in the project Pymol-script-repo

Included in psico
This command or function is available from psico, which is a PyMOL extension.

Module psico.helping

Use this little script to explore PyMOL's myriad settings.

Usefull for newbies and those with not so good memory skills...

To use:

  1. put the script in a file called grepset.py
  2. from within PyMOL execute run grepset.py. If you have the Pymol-script library configured, then import grepset
  3. try it out, see examples below.

Example 1: grepset light

cartoon_highlight_color        default
dot_lighting                   on
light                          [ -0.40000, -0.40000, -1.00000 ]
mesh_lighting                  off
two_sided_lighting             off
5 settings matched

Example 2: grepset trans

cartoon_transparency           0.00000
ray_transparency_contrast      1.00000
ray_transparency_shadows       1
ray_transparency_spec_cut      0.90000
ray_transparency_specular      0.40000
sphere_transparency            0.00000
stick_transparency             0.00000
transparency                   0.00000
transparency_mode              2
transparency_picking_mode      2
10 settings matched

Example 3: grepset ^trans

transparency                   0.00000
transparency_mode              2
transparency_picking_mode      2
3 settings matched