<?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=Natechols</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=Natechols"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php/Special:Contributions/Natechols"/>
	<updated>2026-05-26T09:06:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Pymolrc&amp;diff=9881</id>
		<title>Pymolrc</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Pymolrc&amp;diff=9881"/>
		<updated>2013-01-30T18:47:01Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Pymol [[Launching PyMOL|launches]], it will read custom settings and functions from a .pymolrc (windows: pymolrc.pym) file.&lt;br /&gt;
&lt;br /&gt;
In windows put file under &amp;quot;C:\Users\YOU\pymolrc.pym&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
On a Unix/Linux-type system (including Mac OS X), this file will be located in /path/to/home/.pymolrc. &lt;br /&gt;
&lt;br /&gt;
An example of a .pymolrc file is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# this will run the script in the specified location&lt;br /&gt;
run /path/to/home/pymol/load_sep.py&lt;br /&gt;
&lt;br /&gt;
set movie_loop, 0&lt;br /&gt;
set two_sided_lighting, 1&lt;br /&gt;
&lt;br /&gt;
set label_size, 60&lt;br /&gt;
set label_outline_color, 1&lt;br /&gt;
set label_color, 0&lt;br /&gt;
set label_position, [0, 0, 10]&lt;br /&gt;
&lt;br /&gt;
# for images:&lt;br /&gt;
#   antialias =1 smooths jagged edges, 0 turns it off&lt;br /&gt;
set antialias = 1&lt;br /&gt;
&lt;br /&gt;
#   stick_radius -adjust thickness of atomic bonds&lt;br /&gt;
set stick_radius = 0.3&lt;br /&gt;
&lt;br /&gt;
# set fetch_path&lt;br /&gt;
set fetch_path, /your/fetch/path&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To reload .pymolrc file (e.g. after editing .pymolrc, or after running [[reinitialize|reinitialize]]), use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@~/.pymolrc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Launching PyMOL]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Launching]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5783</id>
		<title>XML-RPC server</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5783"/>
		<updated>2012-01-23T22:06:52Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PyMOL includes a built-in XML-RPC server which can be started from the command line (modules/pymol/rpc.py in the source code).  This allows remote programs (not necessarily on the same computer) to connect and call functions in the running PyMOL instance.  Starting the server is simple:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pymol -R&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Access to the XML-RPC server is independent of PyMOL itself, so the client could be run from any Python program, not necessarily on the same computer.  The simple example below shows how the client code might be written. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from xmlrpclib import ServerProxy&lt;br /&gt;
pymol = ServerProxy(uri=&amp;quot;http://localhost:9123/RPC2&amp;quot;)&lt;br /&gt;
pymol.load(&amp;quot;model.pdb&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= A more advanced server =&lt;br /&gt;
&lt;br /&gt;
The main limitation of the built-in XML-RPC extension is that it requires all functions to be explicitly wrapped to be accessible via XML-RPC calls, which limits the flexibility.  (It also appears to limit what custom methods can be wrapped.)  An alternate design shown below will enable any method in the 'cmd' module to be called remotely, as well as custom methods of the &amp;quot;pymol_interface&amp;quot; class (several examples of which are shown below).  Other modules (such as util) could be wrapped using the same trick.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from pymol import cmd, util&lt;br /&gt;
from threading import Thread&lt;br /&gt;
from SimpleXMLRPCServer import SimpleXMLRPCServer&lt;br /&gt;
import cPickle&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
def pymol_startup () :&lt;br /&gt;
  print &amp;quot;Loading PyMOL XML-RPC extensions&amp;quot;&lt;br /&gt;
  server = pymol_interface()&lt;br /&gt;
&lt;br /&gt;
class pymol_xmlrpc_server (SimpleXMLRPCServer) :&lt;br /&gt;
  def __init__ (self, addr, interface) :&lt;br /&gt;
    self.interface = interface&lt;br /&gt;
    SimpleXMLRPCServer.__init__(self, addr, logRequests=0)&lt;br /&gt;
&lt;br /&gt;
  def _dispatch (self, method, params) :&lt;br /&gt;
    if not self.interface.enable_xmlrpc :&lt;br /&gt;
      return -1&lt;br /&gt;
    result = -1&lt;br /&gt;
    func = None&lt;br /&gt;
    if hasattr(self.interface, method) :&lt;br /&gt;
      func = getattr(self.interface, method)&lt;br /&gt;
    elif hasattr(cmd, method) :&lt;br /&gt;
      func = getattr(cmd, method)&lt;br /&gt;
    if not callable(func) :&lt;br /&gt;
      print &amp;quot;%s is not a callable object&amp;quot; % method&lt;br /&gt;
    else :&lt;br /&gt;
      result = func(*params)&lt;br /&gt;
      if result is None :&lt;br /&gt;
        result = -1&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
class pymol_interface (object) :&lt;br /&gt;
  def __init__ (self) :&lt;br /&gt;
    self.enable_xmlrpc = True&lt;br /&gt;
    # the port can be set via an environment variable - although it could just as easily be passed to __init__&lt;br /&gt;
    port = string.atoi(os.environ.get(&amp;quot;PYMOL_XMLRPC_PORT&amp;quot;, &amp;quot;9123&amp;quot;))&lt;br /&gt;
    self._server = pymol_xmlrpc_server((&amp;quot;localhost&amp;quot;, port), self)&lt;br /&gt;
    t = threading.Thread(target=self._server.serve_forever)&lt;br /&gt;
    t.setDaemon(1)&lt;br /&gt;
    t.start()&lt;br /&gt;
    print &amp;quot;Started XML-RPC server on port %d&amp;quot; % port&lt;br /&gt;
&lt;br /&gt;
  def close_all (self) :&lt;br /&gt;
    cmd.delete(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def disable_all (self) :&lt;br /&gt;
    cmd.disable(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def load_current_model_and_maps (self,&lt;br /&gt;
      pdb_file,&lt;br /&gt;
      fwt_map,&lt;br /&gt;
      delfwt_map) :&lt;br /&gt;
    model_name = os.path.basename(os.path.splitext(pdb_file)[0])&lt;br /&gt;
    cmd.load(pdb_file, model_name, state=1)&lt;br /&gt;
    cmd.load(fwt_map, &amp;quot;2fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.load(delfwt_map, &amp;quot;fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m1&amp;quot;, &amp;quot;2fofc&amp;quot;, 1.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m2&amp;quot;, &amp;quot;fofc&amp;quot;, 3.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m3&amp;quot;, &amp;quot;fofc&amp;quot;, -3.0, model_name, 5.0)&lt;br /&gt;
    cmd.color(&amp;quot;marine&amp;quot;, &amp;quot;m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def setup_roving (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.set(&amp;quot;roving_detail&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_isomesh&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_origin&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_sticks&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_ribbon&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_lines&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_nb_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_contacts&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_cutoff&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;stick_radius&amp;quot;, 0.12)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_name&amp;quot;, f_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_level&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_level&amp;quot;, 3)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_level&amp;quot;, -3)&lt;br /&gt;
    cmd.refresh()&lt;br /&gt;
&lt;br /&gt;
  def refresh_maps (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m1&amp;quot;, f_map, 1.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m2&amp;quot;, diff_map, 3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m3&amp;quot;, diff_map, -3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.color(&amp;quot;skyblue&amp;quot;, &amp;quot;rov_m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;rov_m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;rov_m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def show_selection (self, selection_string, zoom=True): #&amp;quot;True&amp;quot;) :&lt;br /&gt;
    cmd.hide(&amp;quot;sticks&amp;quot;)&lt;br /&gt;
    util.cbay()&lt;br /&gt;
    try :&lt;br /&gt;
      cmd.show(&amp;quot;sticks&amp;quot;, selection_string)&lt;br /&gt;
    except Exception, e :&lt;br /&gt;
      return &amp;quot;Invalid selection.&amp;quot;&lt;br /&gt;
    cmd.color(&amp;quot;white&amp;quot;, selection_string)&lt;br /&gt;
    if zoom :&lt;br /&gt;
      cmd.zoom(selection_string, buffer=5)&lt;br /&gt;
&lt;br /&gt;
  def recenter (self, x, y, z) :&lt;br /&gt;
    view = list(cmd.get_view())&lt;br /&gt;
    view[12] = x&lt;br /&gt;
    view[13] = y&lt;br /&gt;
    view[14] = z&lt;br /&gt;
    cmd.set_view(view)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;pymol&amp;quot; : # optional, if the module will be a command line argument to pymol&lt;br /&gt;
  pymol_startup()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The corresponding client code is shown below; not surprisingly, it is very simple to the example above.  Because of the use of getattr() to retrieve methods in the 'cmd' API, we do not need to explicitly wrap cmd.load(), cmd.show(), or cmd.hide() for this code to work, and any other method in 'cmd' can be similarly accessed, as well as our custom methods.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from xmlrpclib import ServerProxy&lt;br /&gt;
pymol = ServerProxy(uri=&amp;quot;http://localhost:9123/RPC2&amp;quot;)&lt;br /&gt;
pymol.load(&amp;quot;model.pdb&amp;quot;)&lt;br /&gt;
pymol.show(&amp;quot;cartoon&amp;quot;)&lt;br /&gt;
pymol.hide(&amp;quot;lines&amp;quot;)&lt;br /&gt;
pymol.load_current_model_and_maps(&amp;quot;refined.pdb&amp;quot;, &amp;quot;2mFo-DFc.ccp4&amp;quot;, &amp;quot;mFo-DFc.ccp4&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|XML-RPC server]]&lt;br /&gt;
[[Category:System_Scripts]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5782</id>
		<title>XML-RPC server</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5782"/>
		<updated>2012-01-23T22:00:40Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PyMOL includes a built-in XML-RPC server which can be started from the command line with the &amp;quot;-R&amp;quot; flag (modules/pymol/rpc.py in the source code).  This allows remote programs (not necessarily on the same computer) to connect and call functions in the running PyMOL instance.  However, it requires all functions to be explicitly wrapped to be accessible via XML-RPC calls, which limits the flexibility.  An alternate design shown below will enable any method in the 'cmd' module to be called remotely, as well as custom methods of the &amp;quot;pymol_interface&amp;quot; class (several examples of which are shown below).  Other modules (such as util) could be wrapped using the same trick.&lt;br /&gt;
&lt;br /&gt;
= The server =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from pymol import cmd, util&lt;br /&gt;
from threading import Thread&lt;br /&gt;
from SimpleXMLRPCServer import SimpleXMLRPCServer&lt;br /&gt;
import cPickle&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
def pymol_startup () :&lt;br /&gt;
  print &amp;quot;Loading PyMOL XML-RPC extensions&amp;quot;&lt;br /&gt;
  server = pymol_interface()&lt;br /&gt;
&lt;br /&gt;
class pymol_xmlrpc_server (SimpleXMLRPCServer) :&lt;br /&gt;
  def __init__ (self, addr, interface) :&lt;br /&gt;
    self.interface = interface&lt;br /&gt;
    SimpleXMLRPCServer.__init__(self, addr, logRequests=0)&lt;br /&gt;
&lt;br /&gt;
  def _dispatch (self, method, params) :&lt;br /&gt;
    if not self.interface.enable_xmlrpc :&lt;br /&gt;
      return -1&lt;br /&gt;
    result = -1&lt;br /&gt;
    func = None&lt;br /&gt;
    if hasattr(self.interface, method) :&lt;br /&gt;
      func = getattr(self.interface, method)&lt;br /&gt;
    elif hasattr(cmd, method) :&lt;br /&gt;
      func = getattr(cmd, method)&lt;br /&gt;
    if not callable(func) :&lt;br /&gt;
      print &amp;quot;%s is not a callable object&amp;quot; % method&lt;br /&gt;
    else :&lt;br /&gt;
      result = func(*params)&lt;br /&gt;
      if result is None :&lt;br /&gt;
        result = -1&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
class pymol_interface (object) :&lt;br /&gt;
  def __init__ (self) :&lt;br /&gt;
    self.enable_xmlrpc = True&lt;br /&gt;
    # the port can be set via an environment variable - although it could just as easily be passed to __init__&lt;br /&gt;
    port = string.atoi(os.environ.get(&amp;quot;PYMOL_XMLRPC_PORT&amp;quot;, &amp;quot;9123&amp;quot;))&lt;br /&gt;
    self._server = pymol_xmlrpc_server((&amp;quot;localhost&amp;quot;, port), self)&lt;br /&gt;
    t = threading.Thread(target=self._server.serve_forever)&lt;br /&gt;
    t.setDaemon(1)&lt;br /&gt;
    t.start()&lt;br /&gt;
    print &amp;quot;Started XML-RPC server on port %d&amp;quot; % port&lt;br /&gt;
&lt;br /&gt;
  def close_all (self) :&lt;br /&gt;
    cmd.delete(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def disable_all (self) :&lt;br /&gt;
    cmd.disable(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def load_current_model_and_maps (self,&lt;br /&gt;
      pdb_file,&lt;br /&gt;
      fwt_map,&lt;br /&gt;
      delfwt_map) :&lt;br /&gt;
    model_name = os.path.basename(os.path.splitext(pdb_file)[0])&lt;br /&gt;
    cmd.load(pdb_file, model_name, state=1)&lt;br /&gt;
    cmd.load(fwt_map, &amp;quot;2fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.load(delfwt_map, &amp;quot;fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m1&amp;quot;, &amp;quot;2fofc&amp;quot;, 1.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m2&amp;quot;, &amp;quot;fofc&amp;quot;, 3.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m3&amp;quot;, &amp;quot;fofc&amp;quot;, -3.0, model_name, 5.0)&lt;br /&gt;
    cmd.color(&amp;quot;marine&amp;quot;, &amp;quot;m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def setup_roving (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.set(&amp;quot;roving_detail&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_isomesh&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_origin&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_sticks&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_ribbon&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_lines&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_nb_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_contacts&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_cutoff&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;stick_radius&amp;quot;, 0.12)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_name&amp;quot;, f_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_level&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_level&amp;quot;, 3)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_level&amp;quot;, -3)&lt;br /&gt;
    cmd.refresh()&lt;br /&gt;
&lt;br /&gt;
  def refresh_maps (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m1&amp;quot;, f_map, 1.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m2&amp;quot;, diff_map, 3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m3&amp;quot;, diff_map, -3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.color(&amp;quot;skyblue&amp;quot;, &amp;quot;rov_m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;rov_m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;rov_m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def show_selection (self, selection_string, zoom=True): #&amp;quot;True&amp;quot;) :&lt;br /&gt;
    cmd.hide(&amp;quot;sticks&amp;quot;)&lt;br /&gt;
    util.cbay()&lt;br /&gt;
    try :&lt;br /&gt;
      cmd.show(&amp;quot;sticks&amp;quot;, selection_string)&lt;br /&gt;
    except Exception, e :&lt;br /&gt;
      return &amp;quot;Invalid selection.&amp;quot;&lt;br /&gt;
    cmd.color(&amp;quot;white&amp;quot;, selection_string)&lt;br /&gt;
    if zoom :&lt;br /&gt;
      cmd.zoom(selection_string, buffer=5)&lt;br /&gt;
&lt;br /&gt;
  def recenter (self, x, y, z) :&lt;br /&gt;
    view = list(cmd.get_view())&lt;br /&gt;
    view[12] = x&lt;br /&gt;
    view[13] = y&lt;br /&gt;
    view[14] = z&lt;br /&gt;
    cmd.set_view(view)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;pymol&amp;quot; : # optional, if the module will be a command line argument to pymol&lt;br /&gt;
  pymol_startup()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The client =&lt;br /&gt;
&lt;br /&gt;
Access to the XML-RPC server is independent of PyMOL itself, so this part could be run from any Python program, not necessarily on the same computer.  The simple example below shows how the client code might be written.  Because of the use of getattr() to retrieve methods in the 'cmd' API, we do not need to explicitly wrap cmd.load(), cmd.show(), or cmd.hide() for this code to work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from xmlrpclib import ServerProxy&lt;br /&gt;
pymol = ServerProxy(uri=&amp;quot;http://localhost:9123/RPC2&amp;quot;)&lt;br /&gt;
pymol.load(&amp;quot;model.pdb&amp;quot;)&lt;br /&gt;
pymol.show(&amp;quot;cartoon&amp;quot;)&lt;br /&gt;
pymol.hide(&amp;quot;lines&amp;quot;)&lt;br /&gt;
pymol.load_current_model_and_maps(&amp;quot;refined.pdb&amp;quot;, &amp;quot;2mFo-DFc.ccp4&amp;quot;, &amp;quot;mFo-DFc.ccp4&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|XML-RPC server]]&lt;br /&gt;
[[Category:System_Scripts]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Monitor_file_continuously&amp;diff=6982</id>
		<title>Monitor file continuously</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Monitor_file_continuously&amp;diff=6982"/>
		<updated>2012-01-23T22:00:04Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script can be used to continuously check the modification timestamp on a file (any format, although this example assumes it's a PDB file), and re-loads it whenever the timestamp changes.  As written it is intended to be started from the command line, but this is not a requirement.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from pymol import cmd&lt;br /&gt;
import threading&lt;br /&gt;
import time&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
class pymol_file_monitor (object) :&lt;br /&gt;
  def __init__ (self,&lt;br /&gt;
      file_name, &lt;br /&gt;
      time_wait=1) : # time in seconds between mtime check&lt;br /&gt;
    self.file_name = file_name&lt;br /&gt;
    self.time_wait = time_wait&lt;br /&gt;
    self.watch = True # this can be toggled elsewhere to stop updating&lt;br /&gt;
    self.mtime = 0&lt;br /&gt;
    t = threading.Thread(target=self.check_file)&lt;br /&gt;
    t.setDaemon(1)&lt;br /&gt;
    t.start()&lt;br /&gt;
    print &amp;quot;Watching file %s&amp;quot; % file_name&lt;br /&gt;
&lt;br /&gt;
  def check_file (self) :&lt;br /&gt;
    while (self.watch) :&lt;br /&gt;
      if (os.path.exists(self.file_name)) :&lt;br /&gt;
        print &amp;quot;checking...&amp;quot;&lt;br /&gt;
        mtime = os.path.getmtime(self.file_name)&lt;br /&gt;
        if (mtime &amp;gt; self.mtime) :&lt;br /&gt;
          self.mtime = mtime&lt;br /&gt;
          print &amp;quot;Re-loading %s&amp;quot; % self.file_name&lt;br /&gt;
          cmd.load(self.file_name, state=1)&lt;br /&gt;
      time.sleep(self.time_wait)&lt;br /&gt;
&lt;br /&gt;
if (__name__ == &amp;quot;pymol&amp;quot;) :&lt;br /&gt;
  monitor = pymol_file_monitor(&amp;quot;status.pdb&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library|Monitor file continuously]]&lt;br /&gt;
[[Category:System_Scripts]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5781</id>
		<title>XML-RPC server</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=XML-RPC_server&amp;diff=5781"/>
		<updated>2012-01-23T21:58:26Z</updated>

		<summary type="html">&lt;p&gt;Natechols: Created page with &amp;quot;PyMOL includes a built-in XML-RPC server which can be started from the command line with the &amp;quot;-R&amp;quot; flag (modules/pymol/rpc.py in the source code).  This allows remote programs (no...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PyMOL includes a built-in XML-RPC server which can be started from the command line with the &amp;quot;-R&amp;quot; flag (modules/pymol/rpc.py in the source code).  This allows remote programs (not necessarily on the same computer) to connect and call functions in the running PyMOL instance.  However, it requires all functions to be explicitly wrapped to be accessible via XML-RPC calls, which limits the flexibility.  An alternate design shown below will enable any method in the 'cmd' module to be called remotely, as well as custom methods of the &amp;quot;pymol_interface&amp;quot; class (several examples of which are shown below).  Other modules (such as util) could be wrapped using the same trick.&lt;br /&gt;
&lt;br /&gt;
= The server =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from pymol import cmd, util&lt;br /&gt;
from threading import Thread&lt;br /&gt;
from SimpleXMLRPCServer import SimpleXMLRPCServer&lt;br /&gt;
import cPickle&lt;br /&gt;
import os&lt;br /&gt;
import re&lt;br /&gt;
import string&lt;br /&gt;
&lt;br /&gt;
def pymol_startup () :&lt;br /&gt;
  print &amp;quot;Loading PyMOL XML-RPC extensions&amp;quot;&lt;br /&gt;
  server = pymol_interface()&lt;br /&gt;
&lt;br /&gt;
class pymol_xmlrpc_server (SimpleXMLRPCServer) :&lt;br /&gt;
  def __init__ (self, addr, interface) :&lt;br /&gt;
    self.interface = interface&lt;br /&gt;
    SimpleXMLRPCServer.__init__(self, addr, logRequests=0)&lt;br /&gt;
&lt;br /&gt;
  def _dispatch (self, method, params) :&lt;br /&gt;
    if not self.interface.enable_xmlrpc :&lt;br /&gt;
      return -1&lt;br /&gt;
    result = -1&lt;br /&gt;
    func = None&lt;br /&gt;
    if hasattr(self.interface, method) :&lt;br /&gt;
      func = getattr(self.interface, method)&lt;br /&gt;
    elif hasattr(cmd, method) :&lt;br /&gt;
      func = getattr(cmd, method)&lt;br /&gt;
    if not callable(func) :&lt;br /&gt;
      print &amp;quot;%s is not a callable object&amp;quot; % method&lt;br /&gt;
    else :&lt;br /&gt;
      result = func(*params)&lt;br /&gt;
      if result is None :&lt;br /&gt;
        result = -1&lt;br /&gt;
    return result&lt;br /&gt;
&lt;br /&gt;
class pymol_interface (object) :&lt;br /&gt;
  def __init__ (self) :&lt;br /&gt;
    self.enable_xmlrpc = True&lt;br /&gt;
    # the port can be set via an environment variable - although it could just as easily be passed to __init__&lt;br /&gt;
    port = string.atoi(os.environ.get(&amp;quot;PYMOL_XMLRPC_PORT&amp;quot;, &amp;quot;9123&amp;quot;))&lt;br /&gt;
    self._server = pymol_xmlrpc_server((&amp;quot;localhost&amp;quot;, port), self)&lt;br /&gt;
    t = threading.Thread(target=self._server.serve_forever)&lt;br /&gt;
    t.setDaemon(1)&lt;br /&gt;
    t.start()&lt;br /&gt;
    print &amp;quot;Started XML-RPC server on port %d&amp;quot; % port&lt;br /&gt;
&lt;br /&gt;
  def close_all (self) :&lt;br /&gt;
    cmd.delete(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def disable_all (self) :&lt;br /&gt;
    cmd.disable(&amp;quot;*&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def load_current_model_and_maps (self,&lt;br /&gt;
      pdb_file,&lt;br /&gt;
      fwt_map,&lt;br /&gt;
      delfwt_map) :&lt;br /&gt;
    model_name = os.path.basename(os.path.splitext(pdb_file)[0])&lt;br /&gt;
    cmd.load(pdb_file, model_name, state=1)&lt;br /&gt;
    cmd.load(fwt_map, &amp;quot;2fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.load(delfwt_map, &amp;quot;fofc&amp;quot;, state=1, format=&amp;quot;ccp4&amp;quot;)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m1&amp;quot;, &amp;quot;2fofc&amp;quot;, 1.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m2&amp;quot;, &amp;quot;fofc&amp;quot;, 3.0, model_name, 5.0)&lt;br /&gt;
    cmd.isomesh(&amp;quot;m3&amp;quot;, &amp;quot;fofc&amp;quot;, -3.0, model_name, 5.0)&lt;br /&gt;
    cmd.color(&amp;quot;marine&amp;quot;, &amp;quot;m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def setup_roving (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.set(&amp;quot;roving_detail&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_isomesh&amp;quot;, 20)&lt;br /&gt;
    cmd.set(&amp;quot;roving_origin&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_sticks&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_ribbon&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_lines&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_nb_spheres&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_contacts&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;roving_polar_cutoff&amp;quot;, 0)&lt;br /&gt;
    cmd.set(&amp;quot;stick_radius&amp;quot;, 0.12)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_name&amp;quot;, f_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map1_level&amp;quot;, 1)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_name&amp;quot;, diff_map)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map2_level&amp;quot;, 3)&lt;br /&gt;
    cmd.set(&amp;quot;roving_map3_level&amp;quot;, -3)&lt;br /&gt;
    cmd.refresh()&lt;br /&gt;
&lt;br /&gt;
  def refresh_maps (self, f_map=&amp;quot;2fofc&amp;quot;, diff_map=&amp;quot;fofc&amp;quot;) :&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m1&amp;quot;, f_map, 1.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m2&amp;quot;, diff_map, 3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.isomesh(&amp;quot;rov_m3&amp;quot;, diff_map, -3.0, &amp;quot;center&amp;quot;, 20)&lt;br /&gt;
    cmd.color(&amp;quot;skyblue&amp;quot;, &amp;quot;rov_m1&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;green&amp;quot;, &amp;quot;rov_m2&amp;quot;)&lt;br /&gt;
    cmd.color(&amp;quot;red&amp;quot;, &amp;quot;rov_m3&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  def show_selection (self, selection_string, zoom=True): #&amp;quot;True&amp;quot;) :&lt;br /&gt;
    cmd.hide(&amp;quot;sticks&amp;quot;)&lt;br /&gt;
    util.cbay()&lt;br /&gt;
    try :&lt;br /&gt;
      cmd.show(&amp;quot;sticks&amp;quot;, selection_string)&lt;br /&gt;
    except Exception, e :&lt;br /&gt;
      return &amp;quot;Invalid selection.&amp;quot;&lt;br /&gt;
    cmd.color(&amp;quot;white&amp;quot;, selection_string)&lt;br /&gt;
    if zoom :&lt;br /&gt;
      cmd.zoom(selection_string, buffer=5)&lt;br /&gt;
&lt;br /&gt;
  def recenter (self, x, y, z) :&lt;br /&gt;
    view = list(cmd.get_view())&lt;br /&gt;
    view[12] = x&lt;br /&gt;
    view[13] = y&lt;br /&gt;
    view[14] = z&lt;br /&gt;
    cmd.set_view(view)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;pymol&amp;quot; : # optional, if the module will be a command line argument to pymol&lt;br /&gt;
  pymol_startup()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The client =&lt;br /&gt;
&lt;br /&gt;
Access to the XML-RPC server is independent of PyMOL itself, so this part could be run from any Python program, not necessarily on the same computer.  The simple example below shows how the client code might be written.  Because of the use of getattr() to retrieve methods in the 'cmd' API, we do not need to explicitly wrap cmd.load(), cmd.show(), or cmd.hide() for this code to work.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from xmlrpclib import ServerProxy&lt;br /&gt;
pymol = ServerProxy(uri=&amp;quot;http://localhost:9123/RPC2&amp;quot;)&lt;br /&gt;
pymol.load(&amp;quot;model.pdb&amp;quot;)&lt;br /&gt;
pymol.show(&amp;quot;cartoon&amp;quot;)&lt;br /&gt;
pymol.hide(&amp;quot;lines&amp;quot;)&lt;br /&gt;
pymol.load_current_model_and_maps(&amp;quot;refined.pdb&amp;quot;, &amp;quot;2mFo-DFc.ccp4&amp;quot;, &amp;quot;mFo-DFc.ccp4&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category:System_Scripts&amp;diff=3955</id>
		<title>Category:System Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category:System_Scripts&amp;diff=3955"/>
		<updated>2012-01-23T21:42:02Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[FilterByMol]] -- Filter a directory of files, and save their ligands to disk (by molecule).&lt;br /&gt;
* [[LoadDir]] -- loads all the files of a type you specify from the path you specify and puts them into the group you specify (or none).&lt;br /&gt;
* [[Process_All_Files_In_Directory]] -- Do something to all files in a directory.  The examples show how to print the disulfide bond lengths, then in general all sulfur distances (not necessarily bound).&lt;br /&gt;
* [[PythonTerminal]] -- Allows execution of python commands from the PyMOL command line.&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;
* [[Read PDB-String]] -- Parses a string in PDB format to a PyMOL object.&lt;br /&gt;
* [[Monitor file continuously]] -- Watch a file on a separate thread and re-load when it is modified.&lt;br /&gt;
* [[XML-RPC server]] -- An API for controlling PyMOL remotely (from the same computer or on the network).  Adapted from the server built in to PyMOL.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Monitor_file_continuously&amp;diff=6981</id>
		<title>Monitor file continuously</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Monitor_file_continuously&amp;diff=6981"/>
		<updated>2012-01-23T21:40:31Z</updated>

		<summary type="html">&lt;p&gt;Natechols: Created page with &amp;quot;This script can be used to continuously check the modification timestamp on a file (any format, although this example assumes it's a PDB file), and re-loads it whenever the times...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This script can be used to continuously check the modification timestamp on a file (any format, although this example assumes it's a PDB file), and re-loads it whenever the timestamp changes.  As written it is intended to be started from the command line, but this is not a requirement.&lt;br /&gt;
&lt;br /&gt;
= The Code =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from pymol import cmd&lt;br /&gt;
import threading&lt;br /&gt;
import time&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
class pymol_file_monitor (object) :&lt;br /&gt;
  def __init__ (self,&lt;br /&gt;
      file_name, &lt;br /&gt;
      time_wait=1) : # time in seconds between mtime check&lt;br /&gt;
    self.file_name = file_name&lt;br /&gt;
    self.time_wait = time_wait&lt;br /&gt;
    self.watch = True # this can be toggled elsewhere to stop updating&lt;br /&gt;
    self.mtime = 0&lt;br /&gt;
    t = threading.Thread(target=self.check_file)&lt;br /&gt;
    t.setDaemon(1)&lt;br /&gt;
    t.start()&lt;br /&gt;
    print &amp;quot;Watching file %s&amp;quot; % file_name&lt;br /&gt;
&lt;br /&gt;
  def check_file (self) :&lt;br /&gt;
    while (self.watch) :&lt;br /&gt;
      if (os.path.exists(self.file_name)) :&lt;br /&gt;
        print &amp;quot;checking...&amp;quot;&lt;br /&gt;
        mtime = os.path.getmtime(self.file_name)&lt;br /&gt;
        if (mtime &amp;gt; self.mtime) :&lt;br /&gt;
          self.mtime = mtime&lt;br /&gt;
          print &amp;quot;Re-loading %s&amp;quot; % self.file_name&lt;br /&gt;
          cmd.load(self.file_name, state=1)&lt;br /&gt;
      time.sleep(self.time_wait)&lt;br /&gt;
&lt;br /&gt;
if (__name__ == &amp;quot;pymol&amp;quot;) :&lt;br /&gt;
  monitor = pymol_file_monitor(&amp;quot;status.pdb&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category:System_Scripts&amp;diff=3954</id>
		<title>Category:System Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category:System_Scripts&amp;diff=3954"/>
		<updated>2012-01-23T21:37:03Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[FilterByMol]] -- Filter a directory of files, and save their ligands to disk (by molecule).&lt;br /&gt;
* [[LoadDir]] -- loads all the files of a type you specify from the path you specify and puts them into the group you specify (or none).&lt;br /&gt;
* [[Process_All_Files_In_Directory]] -- Do something to all files in a directory.  The examples show how to print the disulfide bond lengths, then in general all sulfur distances (not necessarily bound).&lt;br /&gt;
* [[PythonTerminal]] -- Allows execution of python commands from the PyMOL command line.&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;
* [[Read PDB-String]] -- Parses a string in PDB format to a PyMOL object.&lt;br /&gt;
* [[Monitor file continuously]] -- Watch a file on a separate thread and re-load when it is modified.&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Covers&amp;diff=5307</id>
		<title>Covers</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Covers&amp;diff=5307"/>
		<updated>2010-01-28T20:44:35Z</updated>

		<summary type="html">&lt;p&gt;Natechols: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= PyMOL-created Journal Covers =&lt;br /&gt;
Part of PyMOL's popularity comes from the fact that it is very flexible and it offers arbitrarily high-resolution images as output; this make it a great tool for making journal covers or any press-related images.&lt;br /&gt;
&lt;br /&gt;
Here are some of the known PyMOL-created Journal Covers.  There are surely more out there.  If you have a cover you'd like to add, feel free.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
Image:jbc_mchu.jpeg|'''Crystal structure of the catalytic domain of the mitotic checkpoint kinase Mps1 in complex with SP600125'''. Chu ML, Chavas LM, Douglas KT, Eyers PA, Tabernero L. ''[http://www.ncbi.nlm.nih.gov/pubmed/18480048 J Biol Chem.'' 2008 Aug 1;283(31):21495-500]. Epub 2008 May 14.&lt;br /&gt;
Image:JBC_Apr18_2008.jpg|'''Allosteric motions in structures of yeast NAD-specific isocitrate dehydrogenase.''' [http://www.ncbi.nlm.nih.gov/pubmed/18256028?ordinalpos=1&amp;amp;itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_RVDocSum ''J. Biol. Chem.'']&lt;br /&gt;
Image:ACR_Jun_2007.jpg|'''Shall we dance? How a multicopper oxidase chooses its electron transfer partner.''' [http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&amp;amp;cmd=Retrieve&amp;amp;dopt=AbstractPlus&amp;amp;list_uids=17425282&amp;amp;query_hl=1&amp;amp;itool=pubmed_docsum ''Acc. Chem. Res.'']&lt;br /&gt;
Image:ABB_May1_2007.jpg|'''Crystal structure of the yeast nicotinamidase Pnc1p.''' [http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=pubmed&amp;amp;cmd=Retrieve&amp;amp;dopt=AbstractPlus&amp;amp;list_uids=17382284&amp;amp;query_hl=1&amp;amp;itool=pubmed_docsum ''Arch. Biochem. Biophys.'']&lt;br /&gt;
Image:Cover_royal_soc_small.png |[http://pymolwiki.org/index.php/File:Cover_royal_soc_small.png  Philosophical Transactions of The Royal Society, B : Biological Sciences Jan,  2009 ]&lt;br /&gt;
Image:Image_large.png |[http://pymolwiki.org/index.php/File:Image_large.png MD simulation of protein-protein binding  ]'''Pymol generated Movie is avialable inside pdf'''[[http://www.pymolwiki.org/index.php/File:SH3.pdf]] ''' or high quality AVI format'''[http://gepard.bioinformatik.uni-saarland.de/old_html/material/dl/SH3_large.avi]&lt;br /&gt;
Image:Cover_JCIM_2008_48-10.png|[http://pubs.acs.org/action/showLargeCover?issue=329743592 J. Chem. Inf. Model., 2008, 48 (10)]&lt;br /&gt;
Image:Science090410.jpg|[http://www.sciencemag.org/content/vol324/issue5924/index.dtl Protein Dynamics]&lt;br /&gt;
Image:080701_h.a.steinberg_biochemie.jpg|'''Targeting DNA''', [http://www.sciencedirect.com/science?_ob=PublicationURL&amp;amp;_tockey=%23TOC%236236%232008%23999099992%23693363%23FLA%23&amp;amp;_cdi=6236&amp;amp;_pubType=J&amp;amp;_auth=y&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=3e9cfd266720a7645cec65b2bfbd7645 BIOCHEMIE], July 1, 2008 Cover, Vol. 90.&lt;br /&gt;
Image:080602cnen.pdf.jpg|'''Harnessing Helices''', [http://pubs.acs.org/cen/coverstory/86/8622aboutcover.html Chemical &amp;amp; Engineering News], June 2, 2008 Cover, Vol. 86, Issue 22.&lt;br /&gt;
Image:080118_h.a.steinberg_JBC.jpg|''' Fusarium head blight (FHB)''', [http://www.jbc.org/content/vol283/issue3/cover.shtml JBC], January 18, 2008 Cover, Vol. 283, Issue 3.&lt;br /&gt;
Image:071213nature.pdf.jpg|'''Pumping Ions''', [http://www.nature.com/nature/journal/v450/n7172/index.html Nature], Dec. 13th, 2007.&lt;br /&gt;
Image:0712channels.jpg|[http://www.landesbioscience.com/journals/channels/toc/1/6], Dec 2007.&lt;br /&gt;
Image:071123science.pdf.jpg|[http://www.sciencemag.org/content/vol318/issue5854/index.dtl Science], Nov. 23rd, 2007.&lt;br /&gt;
Image:071120pnas.jpg|'''Sensing Calciums'''[http://www.pnas.org/content/104/47.toc], Nov 20th, 2007. &lt;br /&gt;
Image:071113Structure.png|'''Aminoacyl-tRNA synthetases from human mitochondria'''[http://www.cell.com/structure/issue?pii=S0969-2126(07)X0180-1], Nov. 13th, 2007.&lt;br /&gt;
Image:071009science.pdf.jpg|[http://www.sciencemag.org/content/vol318/issue5849/index.dtl Science], Oct. 19th, 2007.&lt;br /&gt;
Image:070920nature.pdf.jpg|'''Sensing Acid''', [http://www.nature.com/nature/journal/v449/n7160/index.html Nature], Sept. 20th, 2007.&lt;br /&gt;
Image:070816nature.pdf.jpg|'''Form Finds Function?''', [http://www.nature.com/nature/journal/v448/n7155/index.html Nature], Aug. 16thm 2007.&lt;br /&gt;
Image:Largecover.gif|[http://www.nature.com/neuro/journal/v10/n8/abs/nn1942.html Nature Neuroscience] Vol. 10 No. 8 Aug. 2007&lt;br /&gt;
Image:070803_h.a.steinberg_molec_cell.jpg|'''Paused transcription complexes''', [http://www.cell.com/molecular-cell/issue?pii=S1097-2765(07)X0175-8# Molecular Cell], August 3 2007 Cover, Vol. 27, Issue 3.&lt;br /&gt;
Image:070415.h.a.steinberg_ABB.jpg|'''Vitamin D''', [http://www.sciencedirect.com/science?_ob=PublicationURL&amp;amp;_cdi=6701&amp;amp;_pubType=J&amp;amp;_auth=y&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=b9733feacdee17300b6b31649737997b&amp;amp;jchunk=460#460 ABB], April 14 2007 Cover, Vol. 460, Issue 2.&lt;br /&gt;
Image:Jbc_20070413.gif|&amp;lt;b&amp;gt;''Mycobacterium tuberculosis'' PknD dimerization&amp;lt;/b&amp;gt; [http://www.jbc.org/content/282/15 JBC], April 13 2007 Cover, Vol. 282, Issue 15.&lt;br /&gt;
Image:070405nature.pdf.jpg|'''Auxin Action Revealed''', [http://www.nature.com/nature/journal/v446/n7136/index.html Nature], April 5, 2007.&lt;br /&gt;
Image:070301_h.a.steinberg_protein_science.jpg|'''Glucose-1-phosphate uridylyltransferase''', [http://www.proteinscience.org/content/vol16/issue3/cover.shtml Protein Science], March 3, 2007 Cover, Volume 16 Issue 3.&lt;br /&gt;
Image:070219cnen.pdf.jpg|'''How Ribosomes Work''', [http://pubs.acs.org/cen/coverstory/85/8508aboutcover.html Chemical &amp;amp; Engineering News], Feb. 19th, 2007.&lt;br /&gt;
Image:070215nature.pdf.jpg|'''HIV's Hidden Weakness''', [http://www.nature.com/nature/journal/v445/n7129/index.html Nature], Feb. 15th, 2007.&lt;br /&gt;
Image:061208_h.a.steinberg_molec_cell.jpg|'''Sen1 Control of RNA Pol II Termination''', [http://www.molecule.org/content/issue?volume=24&amp;amp;issue=5 Molecular Cell], December 8, 2006 Cover, Volume 24 Issue 5.&lt;br /&gt;
Image:061201_h.a.steinberg_molec_micro.jpg|'''Transposon Loops''', [http://www.blackwell-synergy.com/toc/mmi/62/6 Molecular Microbiology], December 1, 2006 Cover, Volume 62 Issue 6.&lt;br /&gt;
Image:060904cnen.pdf.jpg|'''Glycosylation Engineering''', [http://pubs.acs.org/subscribe/journals/cen/84/i36/toc/toc_i36.html Chemical &amp;amp; Engineering News], Sept. 4th, 2006.&lt;br /&gt;
Image:060817nature.pdf.jpg|'''Chromatin Code Decoded''', [http://www.nature.com/nature/journal/v442/n7104/index.html Nature], Aug. 17th, 2006.&lt;br /&gt;
Image:060522cnen.pdf.jpg|'''Halogenases''', [http://pubs.acs.org/subscribe/journals/cen/84/i21/toc/toc_i21.html Chemical &amp;amp; Engineering News], May 22nd, 2006.&lt;br /&gt;
Image:060101_h.a.steinberg_protein_science.jpg|'''Poly (2S-proline)''', [http://www.proteinscience.org/content/vol15/issue1/cover.shtml Protein Science], January 1, 2006 Cover, Volume 15, Issue 1.&lt;br /&gt;
Image:050624_h.a.steinberg_JMB.jpg|'''Ribonuclease A''', [http://www.sciencedirect.com/science?_ob=PublicationURL&amp;amp;_tockey=%23TOC%236899%232005%23996459998%23609160%23FLA%23&amp;amp;_cdi=6899&amp;amp;_pubType=J&amp;amp;view=c&amp;amp;_auth=y&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=9623405850d13617453adb034fb10a81 JMB], November 18, 2005 Cover, Volume 354, Issue 1.&lt;br /&gt;
Image:051020nature.pdf.jpg|'''The B to Z of DNA''', [http://www.nature.com/nature/journal/v437/n7062/index.html Nature], Oct. 20th, 2005.&lt;br /&gt;
&lt;br /&gt;
Image:050923_h.a.steinberg_JBC.jpg|'''GalNAc kinase''', [http://www.jbc.org/content/vol280/issue38/cover.shtml JBC], September 23, 2005 Cover, Volume 280, Issue 38.&lt;br /&gt;
Image:050908nature.pdf.jpg|'''Neurotransmission''', [http://www.nature.com/nature/journal/v437/n7056/index.html Nature], Sept. 8th, 2005.&lt;br /&gt;
Image:050722science.pdf.jpg|[http://www.sciencemag.org/content/vol309/issue5734/index.dtl Science], July 22nd, 2005.&lt;br /&gt;
Image:050624_h.a.steinberg_jmb1.jpg|[http://www.sciencedirect.com/science?_ob=PublicationURL&amp;amp;_tockey=%23TOC%236899%232005%23996509994%23597371%23FLA%23&amp;amp;_cdi=6899&amp;amp;_pubType=J&amp;amp;_auth=y&amp;amp;_acct=C000050221&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=10&amp;amp;md5=0bc37bcef231976694d0fbe8920ef596 JMB], June 24, 2005 Cover, Volume 349, Issue 5.&lt;br /&gt;
Image:050609nature.pdf.jpg|'''Probing Prions''', [http://www.nature.com/nature/journal/v435/n7043/index.html Nature], June 9th, 2005.&lt;br /&gt;
Image:050429science.pdf.jpg|[http://www.sciencemag.org/content/vol308/issue5722/index.dtl Science], April 29th, 2005.&lt;br /&gt;
Image:040910science.pdf.jpg|[http://www.sciencemag.org/content/vol305/issue5690/index.dtl Science], Sept., 10th, 2004.&lt;br /&gt;
Image:040123science.pdf.jpg|[http://www.sciencemag.org/content/vol303/issue5657/index.dtl Science], Jan. 23rd, 2004.&lt;br /&gt;
Image:apr2003_ProtSci.png|&amp;lt;b&amp;gt;''Pae'' SmAP1&amp;lt;/b&amp;gt; 14-mers, [http://www3.interscience.wiley.com/journal/121602086/issue ''Protein Science'', April 2003].&lt;br /&gt;
Image:Ribbon_hh1.png|[http://www.chembiol.com/content/issue?volume=15&amp;amp;issue=4 Chem. Biol.]&lt;br /&gt;
Image:0903_1_1.jpg|[http://pubs.acs.org/journals/achre4/covers/36/articleWindow.achre4.091603.html Accounts of Chemical Research]&lt;br /&gt;
Image:CRP_nature_cover1.jpg|''Nature'', April 27th, 2006.&lt;br /&gt;
Image:Iapp.gif|&amp;lt;b&amp;gt;Cross-Beta Spine of IAPP&amp;lt;/b&amp;gt;, [http://www3.interscience.wiley.com/journal/121603721/issue ''Protein Science'', September 2008].&lt;br /&gt;
Image:JBC 080406 no31 proof.png|&amp;lt;b&amp;gt;Calcium Sensor&amp;lt;/b&amp;gt;, [http://www.jbc.org/content/281/31 ''JBC'', August 4, 2006].&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Jbc_20070413.gif&amp;diff=2360</id>
		<title>File:Jbc 20070413.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Jbc_20070413.gif&amp;diff=2360"/>
		<updated>2010-01-28T20:39:57Z</updated>

		<summary type="html">&lt;p&gt;Natechols: JBC cover, April 13 2007&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JBC cover, April 13 2007&lt;/div&gt;</summary>
		<author><name>Natechols</name></author>
	</entry>
</feed>