<?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=Karo</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=Karo"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php/Special:Contributions/Karo"/>
	<updated>2026-05-14T18:17:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Turn&amp;diff=156</id>
		<title>Talk:Turn</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Turn&amp;diff=156"/>
		<updated>2010-12-09T09:48:06Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Is there an inconsistency between this article and the actual implementation of Turn in PyMOL? Reading this article gives the impression that the camera rotates about its axes at its origin in camera space. If this were true, an issued command such as &amp;quot;cmd.turn('y',180)&amp;quot; should actually move an object placed before the camera (perhaps centered with its position in +z, for instance) to a position *behind* the camera (-z). In practice, that is not what I observe. Instead the object of interest appears to rotate about its own central axes.&lt;br /&gt;
&lt;br /&gt;
I have posted here: [http://codepad.org/NgCsHgSk] An example of view matrix alteration produced by Turn, in this case a 180 degree rotation about the y-axis.&lt;br /&gt;
&lt;br /&gt;
To me it seems that what it actually being effected is the alteration of the relationship between model and camera spaces rather than applying a rotation matrix to the object coordinates in camera space. &lt;br /&gt;
&lt;br /&gt;
My recollection of the involved mathematics is a bit vague, but these are relatively intuitive concepts of notable distinction. I'll brush up on the math, but I think the problem lies with a misunderstanding of PyMOL's workings or a lingual inaccuracy of the article. I am relatively new to PyMOL and only recently have started peering inside its source code. Perhaps my understanding of its workings is flawed? If so I hope some discussion can help inform how to improve the PyMOLWiki.&lt;br /&gt;
&lt;br /&gt;
--[[User:SavinaRoja|SavinaRoja]] 20:44, 7 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I think you are right, '''turn''' does more than rotating the camera. Maybe it could be phrased like this: The camera is rotated about its axis and afterwards, its position is adjusted such that the origin of rotation stays at the same position. Or (maybe better?): The view of all objects is rotated about an axis that cuts the origin of rotation and is parallel to the specified axis. Maybe this is what &amp;quot;centered at the origin&amp;quot; is supposed to mean.&lt;br /&gt;
&lt;br /&gt;
Or maybe just &amp;quot;The view of all objects is rotated about the specified axis&amp;quot;. This is just what most people need it for and maybe they are not interested in camera space, object space, and model coordinates...&lt;br /&gt;
&lt;br /&gt;
I've been thinking about these things so much because I needed changed model coordinates but still I find it complicated...&lt;br /&gt;
&lt;br /&gt;
--[[User:Karo|Karo]] 09:48, 9 December 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=User_talk:SavinaRoja&amp;diff=10720</id>
		<title>User talk:SavinaRoja</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=User_talk:SavinaRoja&amp;diff=10720"/>
		<updated>2010-12-07T20:24:05Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'Hi Savina,  thanks for removing spam. I deleted the page so that the links won't be in the history anymore. --~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Savina,&lt;br /&gt;
&lt;br /&gt;
thanks for removing spam. I deleted the page so that the links won't be in the history anymore. --[[User:Karo|Karo]] 20:24, 7 December 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Label_size&amp;diff=8052</id>
		<title>Label size</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Label_size&amp;diff=8052"/>
		<updated>2010-11-30T10:33:16Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Sets how large the labels are rendered. You can use positive numbers 2, 3, 4, etc for point sizes, or negative numbers for Angstrom-based sizes. Default is 14 points. Labels in Angstrom-size scale with the distance from the front plane, labels in point-size don't.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# set the label size to 10pt&lt;br /&gt;
set label_size, 10&lt;br /&gt;
&lt;br /&gt;
# set the label size to 1.5 Ang.&lt;br /&gt;
set label_size, -1.5 # set label sizes to 1.5 Angstroms -- large!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings|Label size]]&lt;br /&gt;
[[Category:Labeling|Label size]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Label&amp;diff=13849</id>
		<title>Label</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Label&amp;diff=13849"/>
		<updated>2010-11-30T10:30:13Z</updated>

		<summary type="html">&lt;p&gt;Karo: /* Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pl.png|right|500px]]&lt;br /&gt;
&lt;br /&gt;
The [[Label]] command controls how PyMOL draws text labels for PyMOL objects.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
Labeling is important so there are many options for your fine tuning needs.  You can change the [[Label_size|label size]], [[Label_color|label color]], positioning, [[Label_font_id|font]], the [[Label_outline_color|label outline color]] that masks the font and much, much more.&lt;br /&gt;
&lt;br /&gt;
You can have PyMOL label atoms by properties or arbitrary strings as you want; you can even use Unicode fonts for special symbols like, &amp;lt;math&amp;gt;\alpha, \beta, \pm, \textrm{\AA}&amp;lt;/math&amp;gt;, etc.&lt;br /&gt;
&lt;br /&gt;
The following gallery shows some examples of how extensible the [[Label]] command is.  &lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;180px&amp;quot; widths=&amp;quot;200px&amp;quot; align=&amp;quot;center&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:Label_pre.png|Simple label&lt;br /&gt;
Image:New_fonts.jpeg|Example showing usage of Unicode fonts for special characters&lt;br /&gt;
Image:Font_ex.png|Another example with Unicode fonts&lt;br /&gt;
Image:Label_ex.png|Example label&lt;br /&gt;
Image:Ls0.png|Label shadows turned off&lt;br /&gt;
Image:Ls2.png|Label shadows turned on&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Built-in Object Properties==&lt;br /&gt;
Aside from arbitrary string labels, like &amp;quot;This is the catalytic residue&amp;quot; for an atom/residue you can also use the following built-in molecular properties:&lt;br /&gt;
* '''name''', the atom name&lt;br /&gt;
* '''resn''', the residue name&lt;br /&gt;
*'''resi''', the residue number/identifier&lt;br /&gt;
*'''chain''', the chain name&lt;br /&gt;
*'''q''', charge&lt;br /&gt;
*'''b''', the occupancy/b-factor&lt;br /&gt;
*'''segi''', the segment identifier&lt;br /&gt;
*'''type''' ''(ATOM,HETATM)'', the type of atom&lt;br /&gt;
*'''formal_charge''', the formal charge&lt;br /&gt;
*'''partial_charge''', the partial charge&lt;br /&gt;
*'''numeric_type''', the numeric type&lt;br /&gt;
*'''text_type''', the text type&lt;br /&gt;
&lt;br /&gt;
You can use one of these properties as:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# simple example: label residue 22's atoms with their names&lt;br /&gt;
label i. 22, name&lt;br /&gt;
&lt;br /&gt;
# Label residue #44's alpha carbon with it's residue name, residue number and B-factor.&lt;br /&gt;
label n. CA and i. 44, &amp;quot;(%s, %s, %s&amp;quot;) % (resn, resi, b)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the syntax and examples below for more info.&lt;br /&gt;
&lt;br /&gt;
=Syntax=&lt;br /&gt;
To use the label command follow this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# labeling syntax&lt;br /&gt;
label [ selection[, expression]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where '''selection''' is some object/selection you want to label and '''expression''' is some string (or set of strings) which PyMOL is to use to label the given selection.&lt;br /&gt;
&lt;br /&gt;
We have plenty of examples.  See [[#Examples|the examples]] below.&lt;br /&gt;
&lt;br /&gt;
=Settings=&lt;br /&gt;
Here are all the label settings and their general effect.  For each label setting, see the respective web page for more details.&lt;br /&gt;
&lt;br /&gt;
'''[[label_angle_digits]]'''&lt;br /&gt;
:: sets the number of decimals in angle label.&lt;br /&gt;
'''[[label_distance_digits]]'''&lt;br /&gt;
:: sets the number of decimals in distance label.&lt;br /&gt;
'''[[label_shadow_mode]]'''&lt;br /&gt;
:: sets whether or not PyMOL will ray trace shadows for your label text.  Eg: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;set label_shadow_mode, 2&amp;lt;/source&amp;gt;&lt;br /&gt;
'''[[label_color]]'''&lt;br /&gt;
:: sets the color of the label text.  Note that you can have labels of different colors for different objects or selections. Some examples:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# per-object:&lt;br /&gt;
set label-color, color-name, object-name  #eg, set label-color, magenta, /protein&lt;br /&gt;
&lt;br /&gt;
# per-atom:&lt;br /&gt;
set label-color, color-name, selection    #eg, set label-color, marine, /protein/A/A/23/CA&lt;br /&gt;
&lt;br /&gt;
# another example&lt;br /&gt;
fragment arg&lt;br /&gt;
label all, name&lt;br /&gt;
set label_color, yellow, arg&lt;br /&gt;
set label_color, red, elem c&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''[[label_font_id]]'''&lt;br /&gt;
:: sets the font to render your label.  There are 12 different fonts from 5&amp;amp;mdash;16.  Numbers 15 and 16 are special for unicode.  Eg: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;set label_font_id, 12&amp;lt;/source&amp;gt;&lt;br /&gt;
'''[[label_size]]'''&lt;br /&gt;
:: sets the size of the text.  You can use positive numbers 2, 3, 4, etc for point sizes, or negative numbers for Angstrom-based sizes. Default is 14 points. Labels in Angstrom-size scale with the distance from the front plane, labels in point-size don't.  Eg: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;set label_size, -2  #results in a size of 2 Angstroms&amp;lt;/source&amp;gt;&lt;br /&gt;
'''[[label_digits]]'''&lt;br /&gt;
:: sets the number of decimals in label. It affects all digits only if label_distance_digits or label_dihedral_digits or label_angle_digits are set to -1.&lt;br /&gt;
'''[[label_outline_color]]'''&lt;br /&gt;
:: each label is outlined (so you can do white-on-white labels, for example).  This options sets the color of the label outline.  Eg. &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;set label_outline_color, orange&amp;lt;/source&amp;gt;&lt;br /&gt;
'''[[label_dihedral_digits]]'''&lt;br /&gt;
:: sets the number of decimals in dihedral label.&lt;br /&gt;
'''[[label_position]]'''&lt;br /&gt;
:: sets any offset from the original X,Y,Z coordinates for the label.  If you like to use the mouse, you can enter [[edit_mode]] and '''ctrl-middle-click''' to drag labels around; '''ctrl-shift-left_click''' will let you move the labels in the z-direction. '''&amp;quot;Save labels&amp;quot;-workaround''' If you want to save the position of your labels, the best way might be to create a new object and move the atoms in this object. Since the labels are positioned from the atom positions this is an indirect way of moving the labels and beeing able to save them.&lt;br /&gt;
&lt;br /&gt;
=Examples=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#1.&lt;br /&gt;
# make a very simple label on the 14th alpha carbon.&lt;br /&gt;
label n. CA and i. 14, &amp;quot;This is carbon 14.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#2.&lt;br /&gt;
# make a fake scene label; use this to label entire scenes, not just atoms/bonds.&lt;br /&gt;
pseudoatom foo&lt;br /&gt;
label foo, &amp;quot;Once upon a time...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#3.&lt;br /&gt;
# make a huge label&lt;br /&gt;
set label_size, -5&lt;br /&gt;
pseudoatom foo&lt;br /&gt;
label foo, &amp;quot;This is large text&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#4. Partial Charge&lt;br /&gt;
label (chain A),chain&lt;br /&gt;
label (n;ca),&amp;quot;%s-%s&amp;quot; % (resn,resi)&lt;br /&gt;
label (resi 200),&amp;quot;%1.3f&amp;quot; % partial_charge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#5. The gallery image above Label_ex.png was created with this code&lt;br /&gt;
#   and finally, some labels were moved around in '''edit_mode'''.&lt;br /&gt;
label (resi 200),&amp;quot;%1.3f&amp;quot; % b&lt;br /&gt;
set label_font_id, 10&lt;br /&gt;
set label_size, 10&lt;br /&gt;
&lt;br /&gt;
#6. This example shows how to label a selection with the &lt;br /&gt;
#   XYZ coordinates of the atoms &lt;br /&gt;
from pymol import stored&lt;br /&gt;
stored.pos = []&lt;br /&gt;
# select the carbon atoms in my hetero atoms to label&lt;br /&gt;
select nn, het and e. C&lt;br /&gt;
# get the XYZ coordinates and put htem into stored.pos&lt;br /&gt;
iterate_state 1, (nn), stored.pos.append((x,y,z))&lt;br /&gt;
# label all N atoms.  You need the pop() function or else&lt;br /&gt;
# PyMOL will complain b/c you didn't provide enough coords.&lt;br /&gt;
label nn, (&amp;quot;%5.5s, %5.5s, %5.5s&amp;quot;) %  stored.pos.pop()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= User Comments =&lt;br /&gt;
==Labels Using ID Numbers==&lt;br /&gt;
The following commnent,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
label SELECTION, &amp;quot; %s&amp;quot; % ID &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
labels the SELECTION with atom ID numbers.&lt;br /&gt;
&lt;br /&gt;
You can make more complicated selections/lables such as&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
label SELECTION, &amp;quot; %s:%s %s&amp;quot; % (resi, resn, name)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
which will give you something like &amp;quot;GLU:139 CG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Labels Using One Letter Abbreviations==&lt;br /&gt;
* First, Add this to your $HOME/.pymolrc  file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# start $HOME/.pymolrc modification&lt;br /&gt;
one_letter ={'VAL':'V', 'ILE':'I', 'LEU':'L', 'GLU':'E', 'GLN':'Q', \&lt;br /&gt;
'ASP':'D', 'ASN':'N', 'HIS':'H', 'TRP':'W', 'PHE':'F', 'TYR':'Y',    \&lt;br /&gt;
'ARG':'R', 'LYS':'K', 'SER':'S', 'THR':'T', 'MET':'M', 'ALA':'A',    \&lt;br /&gt;
'GLY':'G', 'PRO':'P', 'CYS':'C'}&lt;br /&gt;
# end modification&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Second, instead of:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
label n. ca, resn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
use:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
label n. ca, one_letter[resn]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or: ( to get something like D85)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
label n. ca, &amp;quot;%s%s&amp;quot; %(one_letter[resn],resi)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=See Also=&lt;br /&gt;
[[:Category:Labeling]]&lt;br /&gt;
&lt;br /&gt;
All the settings posted above.&lt;br /&gt;
&lt;br /&gt;
[[Category:Labeling|Label]]&lt;br /&gt;
[[Category:Commands|Label]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category_talk:Objects_and_Selections&amp;diff=4114</id>
		<title>Category talk:Objects and Selections</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category_talk:Objects_and_Selections&amp;diff=4114"/>
		<updated>2010-11-23T10:27:56Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with '== Too many categories ==  The categories concerning selections are confusing: 4 different categories for seven pages. Would anybody mind if I'd try to clean this up?  Objects an…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Too many categories ==&lt;br /&gt;
&lt;br /&gt;
The categories concerning selections are confusing: 4 different categories for seven pages. Would anybody mind if I'd try to clean this up?&lt;br /&gt;
&lt;br /&gt;
Objects and Selections (7 members, 4 of these are members below, three are other things),&lt;br /&gt;
Selecting (7 members),&lt;br /&gt;
Selector Quick Reference (4 members),&lt;br /&gt;
Working with Selections (2 members)&lt;br /&gt;
&lt;br /&gt;
--[[User:Karo|Karo]] 10:27, 23 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Mouse_Controls&amp;diff=6991</id>
		<title>Mouse Controls</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Mouse_Controls&amp;diff=6991"/>
		<updated>2010-11-23T10:19:31Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==MacPyMol And PyMolX11 Hybrid==&lt;br /&gt;
&lt;br /&gt;
We strongly recommend (require?) use of a three-button mouse with&lt;br /&gt;
MacPyMOL and PyMOLX11Hybrid.  However, it is possible to use MacPyMOL in&lt;br /&gt;
a limited way on Macs that have a single button mouse thanks to some&lt;br /&gt;
built-in mouse remapping in the Mac OS X GLUT implementation.  Her is&lt;br /&gt;
how that works...&lt;br /&gt;
&lt;br /&gt;
If the Mac is hooked up to a 1-button mouse (only) when MacPyMOL or&lt;br /&gt;
HybridX11PyMOL are launched, then Mac OS X itself will furnish&lt;br /&gt;
translations as follows:&lt;br /&gt;
&lt;br /&gt;
 Rotate:       Click &amp;amp; Drag&lt;br /&gt;
 XY-Translate: Option-Click &amp;amp; Dreg&lt;br /&gt;
 Zoom:         Control-Click &amp;amp; Drag&lt;br /&gt;
 Select:       Click &amp;amp; Release&lt;br /&gt;
 Box-Select:   Shift-Click &amp;amp; Drag&lt;br /&gt;
 Box-Deselect: Shift-Option-Click &amp;amp; Drag&lt;br /&gt;
 Clipping:    Control-Shift-Click &amp;amp; Drag with...&lt;br /&gt;
  * near plane controlled by vertical motion&lt;br /&gt;
  * far plane controlled by horizontal motion&lt;br /&gt;
&lt;br /&gt;
Note that not all mouse actions are possible with a one-button mouse.&lt;br /&gt;
For example, I don't think molecular editing is possible with a&lt;br /&gt;
one-button mouse.&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
[[Config_Mouse|Configuring the Mouse]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Using_Pymol|Mouse Controls]]&lt;br /&gt;
[[Category:Controls]]&lt;br /&gt;
[[Category:Mac]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=MAC_Install&amp;diff=6894</id>
		<title>MAC Install</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=MAC_Install&amp;diff=6894"/>
		<updated>2010-11-23T10:18:50Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installation|Mac]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Installing MacPyMOL=&lt;br /&gt;
===Essentials===&lt;br /&gt;
The [http://pymol.org/dsc download] is about as straightforward as it gets, and you can install it wherever it makes you happy. You need a 3 button mouse (clickable scroll wheel = middle button). Apple has finally come to its senses and designed a proper, ergonomically pleasant, [http://www.apple.com/mightymouse/ scrollbutton mouse] that works well with pymol and permits horizontal scrolling.  Most other mice will also work well.&lt;br /&gt;
&lt;br /&gt;
===Warning on Mouse Drivers===&lt;br /&gt;
&lt;br /&gt;
One word of warning: '''Do not install 3rd party drivers''' for multi-button mice if you can avoid it.  These often mess with the mapping of the middle button or have other horrific side effects.  Fortunately, with OS X, you should not need to.&lt;br /&gt;
&lt;br /&gt;
===Invoking pymol from the unix command line===&lt;br /&gt;
&lt;br /&gt;
The unix executable resides at MacPyMOL.app/Contents/MacOS/MacPyMOL&lt;br /&gt;
&lt;br /&gt;
I ([[User:Wgscott|Bill Scott]]) wrote a cheezy [http://xanana.ucsc.edu/Library/init/zsh/local-functions/xtal/pymol pymol] shell script (and zsh function) to invoke this on the command line. It uses mdfind to find the executable.  I also use [[MacOSX-specific .pymolrc file|this ~/.pymolrc]] file.&lt;br /&gt;
&lt;br /&gt;
Additional invokation options and further details are discussed under [[Launching_PyMOL#MacOS_X:]]&lt;br /&gt;
&lt;br /&gt;
===Extras===&lt;br /&gt;
&lt;br /&gt;
You don't need any of these to use MacPyMOL.  But you didn't really '''need''' a Mac either.  Face it: You need these.&lt;br /&gt;
&lt;br /&gt;
====Mighty Mouse====&lt;br /&gt;
&lt;br /&gt;
http://images.apple.com/mightymouse/images/index360scroll220050802.gif&lt;br /&gt;
&lt;br /&gt;
A 3-button mouse is essential.  [http://www.apple.com/mightymouse/ Apple's Mighty Mouse] is an extra treat.&lt;br /&gt;
&lt;br /&gt;
The Mighty Mouse was superseded in late 2009 by the [http://en.wikipedia.org/wiki/Magic_Mouse Magic Mouse]. Although a great mouse with scrolling capability, the magic mouse is a 2-button mouse with gesture-enabled surface, and so lacks a middle button. To use it choose a 2 button mode in the Mouse menu.&lt;br /&gt;
&lt;br /&gt;
====PowerMate Dial====&lt;br /&gt;
&lt;br /&gt;
http://www.griffintechnology.com/assets/images/products/powermate/prod_powermate_sub01b.jpg&lt;br /&gt;
&lt;br /&gt;
The [http://www.chemistry.ucsc.edu/~wgscott/xtal/powermate_pymol_osx.html PowerMate dial works nicely with pymol].&lt;br /&gt;
&lt;br /&gt;
====Stereo====&lt;br /&gt;
&lt;br /&gt;
http://images.apple.com/powermac/images/graphicspymol20051018.jpg&lt;br /&gt;
&lt;br /&gt;
The [http://www.apple.com/powermac/upgrade.html latest Macs] finally support [http://www.apple.com/powermac/graphics.html stereo in a window].  There is more information in the [[Monitors Hardware Options]] section.&lt;br /&gt;
&lt;br /&gt;
====Second Monitor====&lt;br /&gt;
The trick to getting MacPyMOL to work in stereo on the second monitor is to force it to initially open on that display by providing an appropriate &amp;quot;-X #&amp;quot; (and perhaps -Y #) option on launch.  That way the OpenGL context will be created with stereo support.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
./MacPyMOL.app/Contents/MacOS/MacPyMOL -X -1000&lt;br /&gt;
./MacPyMOL.app/Contents/MacOS/MacPyMOL -X -1000 -Y 100&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Source:''' ''Warren DeLano; PyMOL Users Archive''&lt;br /&gt;
&lt;br /&gt;
=Installing X-windows based pymol on Mac OS X=&lt;br /&gt;
&lt;br /&gt;
===Why would you want to do this?===&lt;br /&gt;
&lt;br /&gt;
#You want to run a [http://www.oreilly.com/openbook/freedom/ free], guilt-free, open-source version of pymol&lt;br /&gt;
#You just happen to prefer the [http://wiki.python.org/moin/TkInter tkinter] menu&lt;br /&gt;
#You want to use [http://pymol.sourceforge.net/plugins.html plugins], for example, the [http://www-personal.umich.edu/~mlerner/PyMOL/  apbs plugin] for free grasp-like electrostatic calculations.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PyMOL and Fink===&lt;br /&gt;
Fink is a subsystem that was created to bring the full power of Linux open-source to the Darwin (Apple) platform.  It is essentially a full working Linux system integrated with the Apple OS.  Even X11 applications can be run.  To use PyMOL with fink, you will first need to install [http://fink.sourceforge.net/ fink].  This usually takes a while, but is straightforward.&lt;br /&gt;
&lt;br /&gt;
Once fink is installed, you have two options: (1) use the PyMOL package setup by [[User:wgscott|wgscott]], which might be old, but easier to install; or, download the PyMOL source and build.  As usual, it comes down to ease of install vs. new features.&lt;br /&gt;
&lt;br /&gt;
==== PyMOL Directly from Fink ====&lt;br /&gt;
To install PyMOL directly from fink, type:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fink install pymol-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install python2.5 in fink, along with an X-windows based tkinter. There are also versions that permit you to install PyMOL to interact with python2.4 and even python2.3.  Fink uses its own unix-type python installation.&lt;br /&gt;
&lt;br /&gt;
=====Notes and Possible Issues =====&lt;br /&gt;
* The [http://pdb.finkproject.org/pdb/package.php/pymol-py25 fink pymol package] currently exists in the [http://fink.sourceforge.net/faq/usage-fink.php#unstable unstable branch of fink], so you will either have to [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/How_to_Activate_the_Unstable_Branch activate the unstable branch] or make the following symbolic links:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s /sw/fink/dists/unstable/main/finkinfo/sci/pymol-py.* /sw/fink/dists/local/main/finkinfo/.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
You might need to create the latter directory if it doesn't already exist, i.e., issue the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir -p /sw/fink/dists/local/main/finkinfo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 10.4 ONLY: Be sure to set your display environment in your start up shell script to use pymol.  For example in your home directory, the .bashrc (or .bash_profile) file should contain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export DISPLAY=&amp;quot;:0.0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Do NOT set the DISPLAY variable for 10.5+, as God does this for you automatically.  If for some reason you don't want to set DISPLAY, launch X11 manually (Applications/Utilities) then start a login shell with 'xterm -ls' (note default xterm is not a login shell so will not read .bashrc) and finally issue 'pymol' &lt;br /&gt;
* Fink pymol also reads ~/.pymolrc in your home directory.&lt;br /&gt;
* I ([[User:wgscott|wgscott]]) have put a whole lot of further information on how to use fink to install crystallographic software on my own [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/Main_Page wiki] and [http://chemistry.ucsc.edu/~wgscott/xtal/ website], including instructions on [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/Getting_your_fink_installation_to_use_packages_that_I_have_pre-compiled how to install precompiled binary packages using fink].&lt;br /&gt;
&lt;br /&gt;
* The [http://pdb.finkproject.org/pdb/search.php?summary=pymol fink pymol package] is currently maintained by Jack Howarth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== PyMOL Install from Source, Using Fink ====&lt;br /&gt;
If the above didn't work, of you really want the latest PyMOL code, then&lt;br /&gt;
* Download the latest PyMOL source and unpack it.&lt;br /&gt;
* Ensure that you have installed, in Fink:&lt;br /&gt;
** python-2.5 pmw-py25&lt;br /&gt;
** mesa mesa-shlibs&lt;br /&gt;
** libpng3 libpng3-shlibs&lt;br /&gt;
** freetype2 freetype2-deve&lt;br /&gt;
** freeglut freeglut-shlibs&lt;br /&gt;
* Change directory into the new PyMOL dir, eg. ''cd pymol''&lt;br /&gt;
* Then, install PyMOL with,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/sw/bin/python setup.py install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Notes and Possible Issues=====&lt;br /&gt;
* If you get an error about '''-Wno-long-double''' then your gcc is mismatched.  I fixed this by pointing the symbolic link ''/usr/bin/gcc'' from ''/usr/bin/gcc-4.2'' to ''/usr/bin/gcc-4.0''.  Or, in code,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# These command are commented out to stop people from copy/pasting b/c &lt;br /&gt;
# these are possibly dangerous for your system.  Ensure that /usr/bin/gcc&lt;br /&gt;
# is a symbolic link and not a real binary.  If so, I used the following&lt;br /&gt;
# to fix the -Wno-long-double error.&lt;br /&gt;
# sudo rm /usr/bin/gcc&lt;br /&gt;
# sudo ln -s /usr/bin/gcc-4.0 /usr/bin/gcc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* If you get an error about something like ''GL_PALETTE_TEXTURE'' then you need to comment out those few lines in the code that throws the error.  Read the output.&lt;br /&gt;
&lt;br /&gt;
====Install APBS and friends with fink====&lt;br /&gt;
&lt;br /&gt;
[[Image:Rna_surface_apbs.png|thumb|APBS calculated electrostatic potential of SARS s2m RNA reveals the colors of a true patriot.]]&lt;br /&gt;
&lt;br /&gt;
To use the electrostatics plugin, you will need [http://apbs.sourceforge.net/ APBS] and its dependencies.  These are also available as fink packages, and include [http://pdb.finkproject.org/pdb/package.php/apbs apbs], [http://pdb.finkproject.org/pdb/package.php/maloc maloc] and [http://pdb.finkproject.org/pdb/package.php/pdb2pqr pdb2pqr].  If you have multiple processors available, you might wish to install the [http://pdb.finkproject.org/pdb/package.php/apbs-mpi-openmpi mpi version of apbs].&lt;br /&gt;
&lt;br /&gt;
Issuing the command&lt;br /&gt;
&lt;br /&gt;
 fink install apbs&lt;br /&gt;
&lt;br /&gt;
will install apbs and its required dependencies for you.  The fink pymol package is already preconfigured to do the right thing to use apbs as a plugin. Here is [http://xanana.ucsc.edu/xtal/pymol_screenshot.png a big screenshot of the fink APBS package being invoked via the pymol plugin].&lt;br /&gt;
&lt;br /&gt;
'''Nucleic acids''' may prove problematic for the apbs plugin.  If so, use the pdb2pqr command-line tool to create a pqr file manually, instead of using the plugin to generate it.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===PyMOLX11Hybrid=== &lt;br /&gt;
&lt;br /&gt;
MacPyMOL for Tiger now includes a hybrid X11 mode. Assuming that X11 is already installed, simply duplicate MacPyMOL.app and rename it &amp;quot;PyMOLX11Hybrid.app&amp;quot; and launch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===PyMOL in MacPorts===&lt;br /&gt;
&lt;br /&gt;
Recent versions of [http://www.macports.org/ MacPorts] (at least 1.8.2) also include a hybrid PyMOL and also apbs. One can install it with&lt;br /&gt;
 sudo port install pymol apbs apbs-mpi&lt;br /&gt;
&lt;br /&gt;
====Pymol from MacPorts using simple GUI approach====&lt;br /&gt;
&lt;br /&gt;
# Install [http://guide.macports.org/#installing MacPorts], including Xcode Tools and X11 if necessary&lt;br /&gt;
# Install a MacPorts [http://trac.macports.org/wiki/FAQ#gui GUI client], for example [http://porticus.alittledrop.com/ Porticus]. Do a Selfupdate.&lt;br /&gt;
# Search for Pymol via gui and install&lt;br /&gt;
# Launch Terminal app and execute pymol&lt;br /&gt;
&lt;br /&gt;
=====Config issues=====&lt;br /&gt;
&lt;br /&gt;
* If you already have a .bash_profile, you may need to copy the lines which macports [http://guide.macports.org/#installing.shell installation puts in .profile] into .bash_profile&lt;br /&gt;
* Pymol installation in macports uses the subversion repository so you may need to configure the svn command line client [http://svnbook.red-bean.com/en/1.1/ch07.html#svn-ch-7-sect-1.3.1 config file] for your proxy settings in ~/.subversion/servers&lt;br /&gt;
* If the menu/control window does not appear when launching pymol and the terminal window reports &amp;quot;ImportError: No module named _tkinter&amp;quot;, macports python may have installed without tkinter even if the no_tkinter option was not selected in the gui. To fix, uninstall python26 via gui then execute the following at the command line to force ignoring of no_tkinter.&lt;br /&gt;
&lt;br /&gt;
 sudo port install python26 -no_tkinter&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
; When selecting atoms with the mouse, no matter how well one aims, the atoms selected are actually those far from the ones wanted: This is a known problem.  Select &amp;quot;Millions of Colors&amp;quot; in '''System Preferences-&amp;gt;Display'''.&lt;br /&gt;
; There seems to be a race condition between the Tk window and the openGL window.  (The focus for the windows are very quickly flashing back and forth.): This is a well-known problem.  The blame here is circular: Apple blames developers, developers blame Apple.  Regardless, it appears to have been fixed with the latest Mac OS X (10.6) release.  Upgrade to 10.6 and this problem goes away.&lt;br /&gt;
;When using multiple displays, the OpenGL window flickers; moving the window between displays crashes the whole session [https://trac.macports.org/ticket/24895]: If you don't need stereo then start PyMOL in mono mode with &amp;lt;pre&amp;gt;pymol -M&amp;lt;/pre&amp;gt;If you need stereo then you probably need to wait for a fix in the graphics driver.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Nucleic_Acids|MAC Install]]&lt;br /&gt;
[[Category:Technical Issues|MAC Install]]&lt;br /&gt;
[[Category:Mac|MAC Install]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Pseudoatom&amp;diff=8471</id>
		<title>Pseudoatom</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Pseudoatom&amp;diff=8471"/>
		<updated>2010-11-05T10:41:06Z</updated>

		<summary type="html">&lt;p&gt;Karo: Reorganisation of the page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[pseudoatom]] creates a molecular object with a pseudoatom or adds a pseudoatom to a molecular object if the specified object already exists. Default position is in the middle of the viewing window.&lt;br /&gt;
&lt;br /&gt;
== USAGE ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
pseudoatom object [, selection [, name [, resn [, resi [, chain&lt;br /&gt;
        [, segi [, elem [, vdw [, hetatm [, b [, q [, color [, label&lt;br /&gt;
        [, pos [, state [, mode [, quiet ]]]]]]]]]]]]]]]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can set the following:&lt;br /&gt;
[[select|selection]], [[name]], [[Property_Selectors|resn]], [[Property_Selectors|resi]], [[Property_Selectors|chain]], [[Property_Selectors|segi]], [[Property_Selectors|element]], [[Property_Selectors|vdw]], [[Property_Selectors|hetatm]], [[Property_Selectors|b-factor]], [[Property_Selectors|charge]], [[color]], [[label]], pos (location in space), [[state]], [[mode]], and quiet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# create the pseudoatom&lt;br /&gt;
pseudoatom tmpPoint&lt;br /&gt;
 ObjMol: created tmpPoint/PSDO/P/PSD`1/PS1&lt;br /&gt;
# show it as a sphere.&lt;br /&gt;
show spheres, tmpPoint&lt;br /&gt;
&lt;br /&gt;
# create another, with more options.&lt;br /&gt;
pseudoatom tmpPoint2, resi=40, chain=ZZ, b=40, color=tv_blue, pos=[-10, 0, 10]&lt;br /&gt;
 ObjMol: created tmpPoint2/PSDO/ZZ/PSD`40/PS1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== EXAMPLES FOR USE ==&lt;br /&gt;
&lt;br /&gt;
[[pseudoatom]] can be used for a wide variety of tasks where on must place an atom or a label in 3D space, e.g. as a placeholder for distance measurement or distance specifications.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# A pseudoatom as a placeholder for selections according to distance:&lt;br /&gt;
load $TUT/1hpv.pdb&lt;br /&gt;
pseudoatom tmp, pos=[10.0, 17.0, -3.0]&lt;br /&gt;
show sticks, tmp expand 6&lt;br /&gt;
delete tmp&lt;br /&gt;
&lt;br /&gt;
# A pseudoatom as placeholder for distance measurement: &lt;br /&gt;
# position it at the center of an aromatic ring.  Then &lt;br /&gt;
# calc the distance from another atom to the pseudoatom.&lt;br /&gt;
load $TUT/1hpv.pdb&lt;br /&gt;
pseudoatom pi_cent,b/53/cg+cz&lt;br /&gt;
dist pi_cent////ps1, b/met`46/ce&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use a [[pseudoatom]] to make a label for a scene title. Move the protein to the bottom of the window before the pseudoatom is created. Or move the label after creating it (Shift + Middle mouse button in editing mode).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 1rq5&lt;br /&gt;
pseudoatom forLabel&lt;br /&gt;
label forLabel, &amp;quot;This Protein is a Carbohydrate Active Enzyme&amp;quot;&lt;br /&gt;
set label_color, black&lt;br /&gt;
# png ray=1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px heights=300px&amp;gt;&lt;br /&gt;
Image:Patom.png|You can use a pseudoatom for a movable scene label.&lt;br /&gt;
Image:Pseu1.png|Example of using a pseudoatom for distance measurement.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
PyMOL Mailing List&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Pseudoatom]]&lt;br /&gt;
[[Category:States|Pseudoatom]]&lt;br /&gt;
[[Category:Labeling|Pseudoatom]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Isolevel&amp;diff=7810</id>
		<title>Isolevel</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Isolevel&amp;diff=7810"/>
		<updated>2010-10-18T08:46:24Z</updated>

		<summary type="html">&lt;p&gt;Karo: Reverted edits by Valera (Talk) to last revision by Inchoate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''isolevel''' changes the contour level of a isodot, isosurface, or isomesh object.&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
 isolevel name, level, state &lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Isolevel]]&lt;br /&gt;
[[Category:States|Isolevel]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Help:Contents&amp;diff=661</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Help:Contents&amp;diff=661"/>
		<updated>2010-10-11T09:25:17Z</updated>

		<summary type="html">&lt;p&gt;Karo: Links to tutorials repaired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
'''Did you know...'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''PyMOL is open source software that is supported by its users!'''  You can '''download and install it for free'''.  If you are a [http://pymol.org/funding.html paid subscriber] you get all the new features in a simple installable program, and support from DeLano Scientific.  If you aren't a paid subscriber you can download the source code for free, build the software and still access the newest features -- '''for free'''!  Your other option as a free-users is to download the older binaries, which run 6-12 months behind the releases with the newest features.&lt;br /&gt;
&lt;br /&gt;
If you like it, use it or publish with it -- support it!&lt;br /&gt;
&lt;br /&gt;
== Help For... ==&lt;br /&gt;
&lt;br /&gt;
=== Everyone ===&lt;br /&gt;
Please read the following to learn how to edit existing pages and create new pages: &lt;br /&gt;
*See [http://meta.wikimedia.org/wiki/Help:Editing editing Help] for the metawiki engine.&lt;br /&gt;
&lt;br /&gt;
=== Students ===&lt;br /&gt;
==== Getting PyMOL ====&lt;br /&gt;
Students get '''free''' access to the newest PyMOL programs; all you have to do is [http://delsci.com/rel/ register].  Check out the DeLano Scientific [http://delsci.com/rel/ PyMOL Builds] site.  If you're venturesome, you can get the SVN code from [http://pymol.sf.net/ PyMOL on SourceForge].&lt;br /&gt;
&lt;br /&gt;
==== Learning PyMOL ====&lt;br /&gt;
We have information on the wiki at [[:Category:Tutorials| the tutorials category page]].  We are actively developing content for various users; please feel free to surf around the PyMOLWiki.&lt;br /&gt;
&lt;br /&gt;
=== Academics ===&lt;br /&gt;
====Getting PyMOL====&lt;br /&gt;
Academics can use the older [http://delsci.com/rel/ binaries], [http://pymol.sf.net/ compile their own binaries] or [http://pymol.org/academic.html pay a minimal fee and get access] to the newest binaries.&lt;br /&gt;
&lt;br /&gt;
====Learning PyMOL====&lt;br /&gt;
We have information on the wiki at [[:Category:Tutorials| the tutorials category page]].  And, as a paid subscriber you get more and better support from DeLano Scientific.  Also, we are actively developing content for various users; please feel free to surf around the PyMOLWiki.&lt;br /&gt;
&lt;br /&gt;
=== Industry ===&lt;br /&gt;
====Getting PyMOL====&lt;br /&gt;
Users in industry are also welcome!  You can get the same access as academics to the older binaries, or [http://pymol.org/industrial.html get industrial-strength access] to new binaries.&lt;br /&gt;
&lt;br /&gt;
====Learning PyMOL====&lt;br /&gt;
We have information on the wiki at [[:Category:Tutorials| the tutorials category page]].  And, as a paid subscriber you get more and better support from DeLano Scientific.  We are actively developing content for various users; please feel free to surf around the PyMOLWiki.&lt;br /&gt;
&lt;br /&gt;
=== New PyMOL Users ===&lt;br /&gt;
We have the beginnings of a basic tutorial at [http://pymolwiki.org/index.php/Practical_Pymol_for_Beginners Practical PyMOL for Beginners].&lt;br /&gt;
&lt;br /&gt;
=== Advanced PyMOL Users ===&lt;br /&gt;
Nearly all of the PyMOL commands and API are documented on this site.  Feel free to look around.  PyMOL has over 600 settings!  We would very much appreciate your experience in helping us document what you know!&lt;br /&gt;
&lt;br /&gt;
=== Developers ===&lt;br /&gt;
You rock!  Please add any relevant information to the site, or if you're looking for help, see [[:Category:Developers|Developers Area]].&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Orthoscopic&amp;diff=244</id>
		<title>Talk:Orthoscopic</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Orthoscopic&amp;diff=244"/>
		<updated>2010-10-08T09:48:26Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I found a nice example where the effect of perspective is strong and exchanged the figures. --[[User:Karo|Karo]] 09:48, 8 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Is this statement correct?==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Turning on orthoscopic rendering improves the rendering speed by a factor of 2x-4x&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It sounds counterintuitive and appears to contradict the statement following it.  Should this read &amp;quot;Turning OFF orthoscopic ...&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
Sean&lt;br /&gt;
&lt;br /&gt;
== Orthoscopic ==&lt;br /&gt;
&lt;br /&gt;
Actually, orthoscopic ON means field of view off.  Field of view is &amp;quot;perspective&amp;quot; and rendering in a perspective field used to slow rendering down by about 4x.  That statement was written a while ago.  Maybe things have changed.&lt;br /&gt;
&lt;br /&gt;
Ironically, I read that last night and did a double-take, myself.&lt;br /&gt;
&lt;br /&gt;
[[User:Inchoate|Tree]] 19:15, 28 April 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Field_Of_View&amp;diff=5853</id>
		<title>Field Of View</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Field_Of_View&amp;diff=5853"/>
		<updated>2010-10-08T09:44:04Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
'''field_of_view''' sets the amount of perspective to apply to the scene.  Typical values range from 40-60.  Turning off '''field_of_view''' amounts to the same thing as setting [[orthoscopic]] to '''1'''.  The higher the value of '''field_of_view''' the more amplified is the effect of the perspective.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:No_fov.png|No field of View&lt;br /&gt;
Image:Fov60.png|Field of View set to 60&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set field_of_view, 60&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[orthoscopic]] [[Ray_orthoscopic]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings|Field of view]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ray_orthoscopic&amp;diff=8545</id>
		<title>Ray orthoscopic</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ray_orthoscopic&amp;diff=8545"/>
		<updated>2010-10-08T09:25:33Z</updated>

		<summary type="html">&lt;p&gt;Karo: Exchanged image files with a more instructive example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
This setting controls whether ray-traced images are rendered with or without perspective.  Note that this can be in conflict with the setting &amp;quot;orthoscopic&amp;quot;; by default, images are rendered with the same orthoscopic setting as the viewport, unless &amp;quot;ray_orthoscopic&amp;quot; is deliberately set otherwise.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set ray_orthoscopic, off   # render ray-traced images with perspective (2-4x SLOWER)&lt;br /&gt;
set ray_orthoscopic, on    # render ray-traced images without perspective&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:orthoon2.png|orthoscopic on (perspective off)&lt;br /&gt;
&lt;br /&gt;
Image:orthooff2.png |orthoscopic off (perspective on)&lt;br /&gt;
For many images, the difference is hardly visible.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:orthoon.png|orthoscopic on (perspective off)&lt;br /&gt;
&lt;br /&gt;
Image:orthooff.png |orthoscopic off (perspective on)&lt;br /&gt;
Especially when straight features parallel to the z axis are shown, the effect may be large.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings|Ray orthoscopic]]&lt;br /&gt;
[[Category:Image_Manipulation|Ray orthoscopic]]&lt;br /&gt;
[[Category:Publication_Quality|Ray orthoscopic]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthoon2.png&amp;diff=1938</id>
		<title>File:Orthoon2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthoon2.png&amp;diff=1938"/>
		<updated>2010-10-08T09:00:19Z</updated>

		<summary type="html">&lt;p&gt;Karo: set orthoscopic, on (PDB code: 3AEH)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;set orthoscopic, on (PDB code: 3AEH)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthooff2.png&amp;diff=2189</id>
		<title>File:Orthooff2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthooff2.png&amp;diff=2189"/>
		<updated>2010-10-08T08:59:51Z</updated>

		<summary type="html">&lt;p&gt;Karo: set orthoscopic, off (PDB code: 3AEH)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;set orthoscopic, off (PDB code: 3AEH)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthoon.png&amp;diff=2431</id>
		<title>File:Orthoon.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthoon.png&amp;diff=2431"/>
		<updated>2010-10-08T08:58:56Z</updated>

		<summary type="html">&lt;p&gt;Karo: set orthoscopic, on (PDB code 3AEH)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;set orthoscopic, on (PDB code 3AEH)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1936</id>
		<title>File:Orthooff.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1936"/>
		<updated>2010-10-08T08:56:47Z</updated>

		<summary type="html">&lt;p&gt;Karo: uploaded a new version of &amp;quot;File:Orthooff.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDB code 3AEH.&lt;br /&gt;
set orthoscopic, off&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1935</id>
		<title>File:Orthooff.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1935"/>
		<updated>2010-10-08T08:45:37Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDB code 3AEH.&lt;br /&gt;
set orthoscopic, off&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1934</id>
		<title>File:Orthooff.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=File:Orthooff.png&amp;diff=1934"/>
		<updated>2010-10-08T08:44:42Z</updated>

		<summary type="html">&lt;p&gt;Karo: PDB code 3AEH
set orthoscopic, off&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PDB code 3AEH&lt;br /&gt;
set orthoscopic, off&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ribbon_width&amp;diff=9503</id>
		<title>Ribbon width</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ribbon_width&amp;diff=9503"/>
		<updated>2010-09-30T12:14:10Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
[[Ribbon_width]] sets the width of the ribbons in the [[ribbon]] representation. Default is 3.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# set ribbon width&lt;br /&gt;
set ribbon_width, val&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples==&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# fat ribbons&lt;br /&gt;
set ribbon_width, 8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:rw1.png|ribbon_width, 0.5&lt;br /&gt;
Image:rw2.png|ribbon_width, 2&lt;br /&gt;
Image:rw3.png|ribbon_width, 8&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings|Ribbon width]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Grid_mode&amp;diff=8307</id>
		<title>Grid mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Grid_mode&amp;diff=8307"/>
		<updated>2010-09-29T20:52:09Z</updated>

		<summary type="html">&lt;p&gt;Karo: Reverted edits by DanielCobb (Talk) to last revision by Inchoate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
'''grid_mode''' partitions the screen into a grid and displays each molecule in one grid location.  Each molecule rotates, zooms, etc in that grid.    A possibly very useful option for PyMOL.  Each grid area is assigned a [[grid_slot]] number.  This allows you to assign objects to certain grids; very helpful.  This can be useful when comparing homologous structures and you want to view and rotate the aligned structures side by side.  This is similar to a multiple split screen view of the proteins.&lt;br /&gt;
&lt;br /&gt;
'''Hint:''' When using grid_mode with many molecules, it's sometimes good to align their centers of mass.  This puts them all squarely in the middle of their grid element.  The '''alignto''' command from [[cealign]] can do this for you.&lt;br /&gt;
&lt;br /&gt;
'''Hint:''' If you don't want to align the molecules (it's not reall necessary for grid_mode) you can just center them on some coordinate.  See [[COM]].&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Currently (Mar 29, 2008), grid_mode is only available from source and not from the precompiled versions of PyMOL.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# turn on grid mode&lt;br /&gt;
set grid_mode,1&lt;br /&gt;
&lt;br /&gt;
# turn off grid mode&lt;br /&gt;
set grid_mode,0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Gm0.png|grid_mode off.  Four molecules shown loaded and aligned.&lt;br /&gt;
Image:Gm1.png|grid_mode on.  Each molecule is in its own window.&lt;br /&gt;
Image:Gm2.png|grid_mode on.  Lots of molecules shown.&lt;br /&gt;
Image:Wow_grid_mode.png|grid_mode on.  159 proteins shown!&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[grid_slot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Settings|Grid_Mode]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=APBS&amp;diff=4145</id>
		<title>APBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=APBS&amp;diff=4145"/>
		<updated>2010-09-29T09:26:58Z</updated>

		<summary type="html">&lt;p&gt;Karo: Links to the APBS homepage, mailing list and archive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Pre-release version ==&lt;br /&gt;
&lt;br /&gt;
There's a pre-release version available on my user page. Please test it out and let me know if it works for you: --[[User:Mglerner|michael]] 03:04, 29 January 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[Image:Rna_surface_apbs.png|thumb|APBS-generated electrostatic surface displayed in PyMOL]]&lt;br /&gt;
[http://apbs.sourceforge.net APBS], the Adaptive Poisson-Boltzmann Solver, is a [http://www.oreilly.com/openbook/freedom/ freely] available macromolecular electrostatics calculation program released under the [http://www.gnu.org/copyleft/gpl.html GPL]. It is a cost-effective but uncompromised alternative to [http://trantor.bioc.columbia.edu/grasp/ GRASP], and it can be used within pymol.  Pymol can display the results of the calculations as an electrostatic potential molecular surface.&lt;br /&gt;
&lt;br /&gt;
PyMol currently supports the '''APBS plugin''' written by Michael Lerner. This plugin makes it possible to run APBS from within PyMOL, and then display the results as a color-coded electrostatic surface (units &amp;lt;math&amp;gt;K_bT/e_c&amp;lt;/math&amp;gt;) in the molecular display window (as with the image to the right).  See [http://apbs.wustl.edu/MediaWiki/index.php/APBS_electrostatics_in_PyMOL the APBS wiki] for more details, including instructions on how to download, install and use the plugin.&lt;br /&gt;
&lt;br /&gt;
'''Nucleic acids may prove problematic for the apbs plugin.''' If so, use the [http://pdb2pqr.sourceforge.net/ pdb2pqr] command-line tool to create a pqr file manually, instead of using the plugin to generate it. Then direct the APBS GUI on the [http://www-personal.umich.edu/~mlerner/PyMOL/images/main.png main menu] to read the pqr file you '''externally generated.'''&lt;br /&gt;
&lt;br /&gt;
==Required Dependencies==&lt;br /&gt;
[http://apbs.sourceforge.net APBS] and its dependencies like [http://pdb2pqr.sourceforge.net pdb2pqr] and [http://scicomp.ucsd.edu/~mholst/codes/maloc/ maloc] are [http://www.oreilly.com/openbook/freedom/ freely] available under the [http://www.gnu.org/copyleft/gpl.html GPL].  The author of the software however [http://agave.wustl.edu/apbs/download/ asks that users register] with him to aid him in obtaining grant funding.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Installing the Dependencies on OS X===&lt;br /&gt;
#First, [http://agave.wustl.edu/apbs/download/ register] your use of the software.  This will keep everyone happy.&lt;br /&gt;
#Second, if you don't already have the [http://fink.sourceforge.net fink package management system], now is a good time to get it. Here is a [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/Quick_Start quick-start set of instructions] for getting X-windows, compilers, and fink all installed. &lt;br /&gt;
#Once you are up and going, [http://xanana.ucsc.edu/~wgscott/xtal/wiki/index.php/How_to_Activate_the_Unstable_Branch activate the unstable branch in fink], and then issue the commands&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fink self-update&lt;br /&gt;
fink install apbs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or if you want to use the multi-processor version, issue&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fink self-update&lt;br /&gt;
fink install apbs-mpi-openmpi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Then install the X-windows based version of pymol using the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
fink install pymol-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note that the fink version of pymol '''already has''' the latest version of the APBS plugin.  You are set to go!&lt;br /&gt;
&lt;br /&gt;
Further details, as well as screen shots, are given [http://www.pymolwiki.org/index.php/MAC_Install#Install_APBS_and_friends_with_fink elsewhere in this wiki].&lt;br /&gt;
&lt;br /&gt;
===Installing the Dependencies on Linux===&lt;br /&gt;
&lt;br /&gt;
====From Scratch====&lt;br /&gt;
Note that this tutorial assumes you're using the bash shell and have root privileges&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;&lt;br /&gt;
Obtain APBS and MALOC from...&amp;lt;br&amp;gt;&lt;br /&gt;
APBS = http://apbs.sourceforge.net (currently 0.4)&amp;lt;br&amp;gt;&lt;br /&gt;
MALOC = http://www.fetk.org/codes/maloc/index.html#download (currently 0.1-2)&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;Set up some environment variables &amp;amp; directories (temporary for building)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ export FETK_SRC=/&amp;lt;building directory&amp;gt;/temp_apbs&lt;br /&gt;
$ export FETK_PREFIX=/usr/local/apbs-0.4.0  (or wherever you want it to live)&lt;br /&gt;
$ export FETK_INCLUDE=${FETK_PREFIX}/include&lt;br /&gt;
$ export FETK_LIBRARY=${FETK_PREFIX}/lib&lt;br /&gt;
$ mkdir -p ${FETK_SRC} ${FETK_INCLUDE} ${FETK_LIBRARY}&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;Unpack the source packages&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd ${FETK_SRC}&lt;br /&gt;
$ gzip -dc maloc-0.1-2.tar.gz | tar xvf -&lt;br /&gt;
$ gzip -dc apbs-0.4.0.tar.gz | tar xvf -&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;Compile MALOC&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd ${FETK_SRC}/maloc&lt;br /&gt;
$ ./configure --prefix=${FETK_PREFIX}&amp;lt;/source&amp;gt;&lt;br /&gt;
If everything went well, then&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make; make install&amp;lt;/source&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;Go get a coffee. Compilation/installation takes about 15 minutes on a 3GHz computer with 1GB of RAM.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;Now on to compiling APBS itself&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd ${FETK_SRC}/apbs-0.4.0&lt;br /&gt;
$ ./configure --prefix=${FETK_PREFIX}&amp;lt;/source&amp;gt;&lt;br /&gt;
If all goes well:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ make all; make install&amp;lt;/source&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;No time for coffee. Takes about 5 minutes on that fast computer.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt; There will now be an APBS binary at&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/usr/local/apbs-0.4.0/bin/i686-intel-linux/apbs&amp;lt;/source&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt; Make appropriate links&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ln -s /usr/local/apbs-0.4.0/bin/i686-intel-linux/apbs /usr/local/bin/apbs&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt; Get rid of /&amp;lt;building directory dir&amp;gt;/temp_apbs&lt;br /&gt;
&amp;lt;LI&amp;gt; Open PyMOL and make sure that the APBS plugin points to /usr/local/bin/apbs&lt;br /&gt;
&amp;lt;LI&amp;gt; Rock and or Roll.&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pre-Packaged====&lt;br /&gt;
=====RPMs=====&lt;br /&gt;
&lt;br /&gt;
A variety of RPMs are available from the [http://sourceforge.net/project/showfiles.php?group_id=148472&amp;amp;package_id=163734&amp;amp;release_id=378273 APBS downloads website].  Again, please [http://agave.wustl.edu/apbs/download/ register] your use of the software if you have not yet done so.&lt;br /&gt;
&lt;br /&gt;
=====Debian packages=====&lt;br /&gt;
&lt;br /&gt;
For ubuntu and other debian linux distributions, probably the simplest thing is to download a promising looking rpm, convert it with the program [http://kitenet.net/programs/alien/ alien], and then install the [http://xanana.ucsc.edu/linux newly generated debian package] with the command&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo dpkg -i apbs*.deb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
&lt;br /&gt;
You have to install apbs and pdb2pqr. Both are masked via keywords atm. Type as root:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo sci-chemistry/pdb2pqr &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
echo sci-chemistry/apbs &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
emerge -av sci-chemistry/apbs sci-chemistry/pdb2pqr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* If the B-factor is &amp;lt;math&amp;gt;\geq 100,&amp;lt;/math&amp;gt; then APBS doesn't properly read in the PDB file and thus outputs garbage (or dies).  To fix this, set all b factors to be less than 100. &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;alter all, b=min(b,99.9)&amp;lt;/source&amp;gt;  The problem stems from how to parse a PDB file.  The PDB file originally was written when most people used FORTRAN programs, and so the file format was specified by columns, not by the more modern comma separated value format we tend to prefer today.  For the latest on the PDB format see the [http://www.wwpdb.org/docs.html new PDB format docs].&lt;br /&gt;
* APBS has problems, sometimes, in reading atoms with alternate conformations.  You can remove the alternate locations with a simple script [[removeAlt]].&lt;br /&gt;
* ObjectMapLoadDXFile-Error: as of this writing (9-23-2008) a known problem exists, and the Baker lab is working on it. It is typically caused by the use of directories with spaces in their names under Windows.&lt;br /&gt;
&lt;br /&gt;
== Problems with the bundled version of APBS ==&lt;br /&gt;
There is an issue with the freemol version of APBS shipped with PyMOL 1.2r2 for OS X. &lt;br /&gt;
&lt;br /&gt;
=== Leopard and Snow Leopard (10.5 and 10.6) ===&lt;br /&gt;
There are three fairly easy ways to resolve it&lt;br /&gt;
&lt;br /&gt;
1. Download and install the most recent (post Dec. 1 2009) version of APBS from [http://www.poissonboltzmann.org/apbs/downloads]. Then copy the apbs binary into the freemol directory (mv it to /Applications/PyMOLX11Hybrid.app/pymol/freemol/bin/apbs.exe, overwriting the version that comes installed with PyMOL).&lt;br /&gt;
&lt;br /&gt;
2. Download [[File:Libgfortran.3.dylib.bz2]], unzip it (&amp;quot;bunzip2 libgfortran.3.dylib.gz2&amp;quot;) and move it to /usr/local/lib (&amp;quot;mv libgfortran.3.dylib /usr/local/lib&amp;quot; ... on some machines, you may need &amp;quot;sudo mv libgfortran.3.dylib /usr/local/lib&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
bunzip2 libgfortran.3.dylib.gz2&lt;br /&gt;
mv libgfortran.3.dylib /usr/local/lib&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Use macports to install gcc 4.4.2 and link the appropriate library (&amp;quot;ln -s /opt/local/lib/gcc44/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib&amp;quot; ... on some machines, you may need &amp;quot;sudo ln -s /opt/local/lib/gcc44/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /opt/local/lib/gcc44/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib&lt;br /&gt;
sudo ln -s /opt/local/lib/gcc44/libgfortran.3.dylib /usr/local/lib/libgfortran.3.dylib&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you're curious, the problem is that APBS is dynamically linked, but Apple does not provide FORTRAN libraries.&lt;br /&gt;
&lt;br /&gt;
The version of libgfortran above is covered by the GNU General Public License (GPL). A copy of the GPL may be found at [http://www.gnu.org/licenses/licenses.html], and the source may be obtained from MacPorts ([http://www.macports.org/]).&lt;br /&gt;
&lt;br /&gt;
=== Tiger (10.4) ===&lt;br /&gt;
You'll need to install APBS yourself via MacPorts or via fink. Fink instructions may be found on the [[APBS]] page. Installation via MacPorts requires first installing MacPorts from [http://www.macports.org/] and then typing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo port install apbs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from the command line. This process could easily take several hours on an older machine, as MacPorts will recompile gcc, gfortran, and several other packages along the way.&lt;br /&gt;
&lt;br /&gt;
==Using APBS==&lt;br /&gt;
There is a nice tutorial on the APBS homepage: [http://www.poissonboltzmann.org/apbs/examples/visualization/apbs-electrostatics-in-pymol] For further help, there is a mailing list [https://lists.sourceforge.net/lists/listinfo/apbs-users] with the corresponding archive [http://sourceforge.net/mailarchive/forum.php?forum_name=apbs-users]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further contributions and edits are needed.==&lt;br /&gt;
&lt;br /&gt;
[[Category:Electrostatics]]&lt;br /&gt;
[[Category:Biochemical_Properties]]&lt;br /&gt;
[[Category:Plugins]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Search_pymol-users_mailing_list&amp;diff=10680</id>
		<title>Talk:Search pymol-users mailing list</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Search_pymol-users_mailing_list&amp;diff=10680"/>
		<updated>2010-09-23T08:15:13Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This link is no longer valid.  SF is &amp;quot;working on it&amp;quot; last I heard.&lt;br /&gt;
&lt;br /&gt;
The new link should work.--[[User:Karo|Karo]] 08:15, 23 September 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=PyMOL_mailing_list&amp;diff=13047</id>
		<title>PyMOL mailing list</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=PyMOL_mailing_list&amp;diff=13047"/>
		<updated>2010-09-23T08:11:46Z</updated>

		<summary type="html">&lt;p&gt;Karo: link repaired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can search the PyMol users mailing list using the mail search.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.mail-archive.com/pymol-users@lists.sourceforge.net/info.html Mail Archive]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Search_pymol-users_mailing_list&amp;diff=8760</id>
		<title>Search pymol-users mailing list</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Search_pymol-users_mailing_list&amp;diff=8760"/>
		<updated>2010-09-23T08:11:46Z</updated>

		<summary type="html">&lt;p&gt;Karo: link repaired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can search the PyMol users mailing list using the mail search.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.mail-archive.com/pymol-users@lists.sourceforge.net/info.html Mail Archive]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Cartoon&amp;diff=4959</id>
		<title>Cartoon</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Cartoon&amp;diff=4959"/>
		<updated>2010-09-21T11:08:02Z</updated>

		<summary type="html">&lt;p&gt;Karo: link repaired&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Cartoon Command==&lt;br /&gt;
===DESCRIPTION===&lt;br /&gt;
'''cartoon''' changes the default cartoon for a set of atoms.&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 cartoon type, (selection)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''type:'''&lt;br /&gt;
#skip&lt;br /&gt;
#automatic&lt;br /&gt;
#loop&lt;br /&gt;
#rectangle&lt;br /&gt;
#oval&lt;br /&gt;
#tube&lt;br /&gt;
#arrow&lt;br /&gt;
#dumbbell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200px&amp;quot; heights=&amp;quot;200px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Cartoon_skip.png|cartoon_skip; yes, blank.&lt;br /&gt;
Image:Cartoon_automatic.png|cartoon_automatic&lt;br /&gt;
Image:Cartoon_loop.png|cartoon_loop&lt;br /&gt;
Image:Cartoon_rectangle.png|cartoon_rectangle&lt;br /&gt;
Image:Cartoon_oval.png|cartoon_oval&lt;br /&gt;
Image:Cartoon_tube.png|cartoon_tube&lt;br /&gt;
Image:Cartoon_arrow.png|cartoon_arrow&lt;br /&gt;
Image:Cartoon_dumbbell.png|cartoon_dumbbell&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.cartoon(string type, string selection )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EXAMPLES===&lt;br /&gt;
 cartoon rectangle,(chain A)&lt;br /&gt;
 cartoon skip,(resi 145:156)&lt;br /&gt;
&lt;br /&gt;
===NOTES===&lt;br /&gt;
the &amp;quot;automatic&amp;quot; mode utilizes ribbons according to the information in the PDB HELIX and SHEET records.&lt;br /&gt;
&lt;br /&gt;
==Adjusting width of cartoon==&lt;br /&gt;
Try varying the following.&lt;br /&gt;
&lt;br /&gt;
For &amp;amp;beta;-strands:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cartoon_rect_length&lt;br /&gt;
cartoon_rect_width&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For &amp;amp;alpha;-helices:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cartoon_oval_length&lt;br /&gt;
cartoon_oval_width&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For loops:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cartoon_loop_radius&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For nucleic acid backbones which resemble 'loops'; however, are not classified as such by Pymol (see more about nucleic acid representation settings at bottom of page):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cartoon_tube_radius,0.8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;fancy&amp;quot; &amp;amp;alpha;-helices:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cartoon_dumbell_length&lt;br /&gt;
cartoon_dumbell_width&lt;br /&gt;
cartoon_dumbell_radius  (radius of cylinder at edge of helix ribbon)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In each case &amp;quot;length&amp;quot; refers to what some might call the width and &amp;quot;width&amp;quot; refers to what some might call the thickness.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Cartoon_ex.png|thumb|center|Cartoon Representation Example|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Forcing Exact Boundaries in Coloring Secondary Structures===&lt;br /&gt;
To force PyMol to respect secondary structural elements color-wise (PyMol smooths out colors near color chagnes for a prettier image) use the following &lt;br /&gt;
PyMol command:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set cartoon_discrete_colors, on&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Cartoon_discrete_color0.png|Discrete Coloring Off|center|thumb]] [[Image:Cartoon_discrete_color1.png|Discrete Coloring On|center|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Sausage Representation ==&lt;br /&gt;
The familiar sausage representation in PyMol is called, &amp;quot;putty&amp;quot;.  To enable the putty/sausage view simply do,&lt;br /&gt;
 show cartoon&lt;br /&gt;
 cartoon putty&lt;br /&gt;
 unset cartoon_smooth_loops&lt;br /&gt;
 unset cartoon_flat_sheets&lt;br /&gt;
&lt;br /&gt;
As of v 0.98 or so, there's a Putty option.  Use this.&lt;br /&gt;
&lt;br /&gt;
[[Image:B_factor_putty.png|thumb|Example of B-factor Putty|center|250px]]&lt;br /&gt;
&lt;br /&gt;
==Black and White Representation==&lt;br /&gt;
'''UPDATE''': This method is essentially obseleted by the new setting '''set ray_trace_mode,2'''.  More information on this at [[Ray]].&lt;br /&gt;
For those who want a nifty black and white representation of their protein try the following:&lt;br /&gt;
# Ray trace your protein of choice in a cartoon representation use a BLACK background&lt;br /&gt;
# Save the image&lt;br /&gt;
# Load the image in GIMP. [[Image:Bw1.jpeg|thumb|Black BG Ribbon|center|350px]]&lt;br /&gt;
# Desaturate or Grayscale the image. [[Image:Bw2.jpeg|thumb|Grayscale|center|350px]]&lt;br /&gt;
# Run the filter: Filter-&amp;gt;Edge-Detect-&amp;gt;Edge. [[Image:Bw3.jpeg|thumb|Edge Detect|center|350px]]&lt;br /&gt;
# Select: Layers-&amp;gt;Color-&amp;gt;Invert. [[Image:Bw4.jpeg|thumb|Invert Color|center|350px]]&lt;br /&gt;
# Different methods of edge detection will give you different results.  In the last example, I used Laplace Edge-Detect, then painted an all white layer beneath the current layer to achieve the results. [[Image:Bw5.jpeg|thumb|Other Styles|center|350px|Comments]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm sure there are other ways to do this.  If you want to include it in a publication make sure you ray traced it large enough.  For that, see [[Publication_Quality_Images|Creating Publication Quality Images]].&lt;br /&gt;
&lt;br /&gt;
==CA (Alpha Carbon) Trace==&lt;br /&gt;
If you have a structure with just a alpha carbon trace, you can get a cartoon by&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set cartoon_trace,1&lt;br /&gt;
show cartoon&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If your structure is more than just the CA backbone, the cartoon representation will look incorrect, so use it just with CA trace.&lt;br /&gt;
&lt;br /&gt;
==Various Transparency Levels==&lt;br /&gt;
[[Image:Cartoon_multi_transp.png|thumb|center|Example of Cartoon Multi-level Transparency.  The near cartoon has transparency setting '''0.2''', the segment in the BG '''0.5'''.]]&lt;br /&gt;
One can make different cartoon selections have different transparency values, in PyMol.  The trick here is to use &amp;quot;create&amp;quot; instead of &amp;quot;select&amp;quot;.  Create makes new objects that can have independent settings.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
load mol_obj.pdb&lt;br /&gt;
&lt;br /&gt;
# transfer a piece of the molecule into a new object&lt;br /&gt;
&lt;br /&gt;
create new_obj, chain A&lt;br /&gt;
remove mol_obj in new_obj&lt;br /&gt;
&lt;br /&gt;
# adjust trasparency for the new object&lt;br /&gt;
&lt;br /&gt;
set cartoon_transparency, 0.5, new_obj&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nucleic Acid Representation ==&lt;br /&gt;
[[Image:Nucleic1.png|thumb|center|Showing Nucleic Acids]]&lt;br /&gt;
To control radius of nucleic acids default backbone cartoon:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set cartoon_tube_radius,0.8   #0.5 seems close to the default setting&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To show nucleic acids in a nicer format do:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 set cartoon_ring_mode,1&lt;br /&gt;
 show cartoon&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other Nucleic Acids &amp;amp; Cartoon Settings ===&lt;br /&gt;
Here are some things to try:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set cartoon_ring_mode, 1   # (or 2 or 3)&lt;br /&gt;
set cartoon_ring_finder, 1 # (or 2 or 3 or 4)&lt;br /&gt;
set cartoon_nucleic_acid_mode, 0   # (or 1 or 2 or 3 or 4)&lt;br /&gt;
&lt;br /&gt;
set cartoon_side_chain_helper&lt;br /&gt;
rebuild&lt;br /&gt;
&lt;br /&gt;
set cartoon_ring_transparency, 0.5&lt;br /&gt;
&lt;br /&gt;
set cartoon_ladder_mode, 0 # or 1&lt;br /&gt;
&lt;br /&gt;
set cartoon_ladder_color, color-name&lt;br /&gt;
set cartoon_nucleic_acid_color, color-name&lt;br /&gt;
&lt;br /&gt;
cartoon oval&lt;br /&gt;
set cartoon_oval_width, 0.8&lt;br /&gt;
&lt;br /&gt;
cartoon rect&lt;br /&gt;
&lt;br /&gt;
cartoon dumbbell&lt;br /&gt;
set cartoon_dumbbell_width, 0.4&lt;br /&gt;
set cartoon_dumbbell_radius, 0.4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Overview of nucleic acid cartoons]]&lt;br /&gt;
&lt;br /&gt;
[[Examples of nucleic acid cartoons]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Displaying_Biochemical_Properties]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Representations|Cartoon]]&lt;br /&gt;
[[Category:Nucleic_Acids|Cartoon]]&lt;br /&gt;
[[Category:Putty]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11858</id>
		<title>Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11858"/>
		<updated>2010-09-10T08:44:21Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Ideas for PyMOL Development ===&lt;br /&gt;
&lt;br /&gt;
This page was originally developed for the 2008 Google Summer of Code competition, but seeing as PyMOL wasn't selected, this page can instead serve as a resource for ongoing PyMOL development efforts.&lt;br /&gt;
&lt;br /&gt;
== Where to Start ==&lt;br /&gt;
&lt;br /&gt;
Always start with Python and only delve down into the C code when absolutely necessary.  Although PyMOL is mostly a C-based application, much of the that code is opaque, fragile, and unforgiving. Although C code refactoring is an important project goal, such work may not be ideal since once mistake could potentially to destabilize the entire platform. &lt;br /&gt;
&lt;br /&gt;
Fortunately, the Python interpreter and the PyMOL command and selection languages make it possible to extend PyMOL safely and quickly.  Even when performance is critical, Python should be the interface between external C, C++, and Java code and PyMOL's internal C data structures.&lt;br /&gt;
&lt;br /&gt;
== Choosing a Topic ==&lt;br /&gt;
&lt;br /&gt;
The best open-source code is usually written by an end-users attempting to meet their own pressing needs.  So if you have already have a specific need which relates to PyMOL, then we strongly encourage you to follow up on that first!&lt;br /&gt;
&lt;br /&gt;
If you are looking for ideas,  then try to seek out enhancements and/or integrations that will impact the largest potential user base.  For example, imagine what new things might be useful to virtually all medicinal chemists, all structural biologists, all movie-makers, all paper-writers, and so forth.&lt;br /&gt;
&lt;br /&gt;
The ideas below are organized by category.  Right now, integration with other open-source projects seems like the approach most likely to yield significant benefit, so those ideas are first.&lt;br /&gt;
&lt;br /&gt;
== Integration Ideas (Linking Out to Useful Open-Source Tools) ==&lt;br /&gt;
&lt;br /&gt;
In most cases, depending on the need, integration can be accomplished through standalone Python scripts, through new PyMOL commands, through PyMOL Wizards, or via Tkinter plugins.&lt;br /&gt;
&lt;br /&gt;
* APBS (electrostatics calculations):  Improve the existing plugin. Michael Lerner is currently leading this effort.  See [[APBS]]&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]] [[User:Jedgold|Jedgold]] [[User:Vcpmartin|Vcpmartin]] [[User:Siderator|Siderator]] [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
:: Feel free to mention specific plugin enhancements you'd like! [[User:Mglerner|Michael Lerner]]&lt;br /&gt;
* RDKit (cheminformatics, depiction, UFF cleanup, etc.):  Lots of potential here, however C++ coding may be necessary for more advanced integration tasks. [http://www.rdkit.org RDKit home]&lt;br /&gt;
:: yea ([[User:Markvanraaij|Markvanraaij]]) / nay (0)&lt;br /&gt;
* GIMP (image manipulation):  Streamline &amp;amp; document the process of exporting images from PyMOL into GIMP and preparing them for submission to scientific Journals.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Jmol (publishing visualizations inside of web pages): Liason between PyMOL &amp;amp; Jmol projects to develop a shared molecular visualization data model compatible with both applications (meaning, being able to import/export sessions from one to the other).&lt;br /&gt;
:: yea ([[User:Tstout|tstout]] [[User:Slaw|slaw]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Firefox (plugin): Develop an PyMOL plugin compatible with Firefox.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]] [[User:Slaw|slaw]]) / nay ([[User:Tstout|tstout]])&lt;br /&gt;
* MMTK (molecular mechanics -- Python/flexible):  Develop the ability to round-trip molecular systems from PyMOL, into MMTK, and back.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* GROMACS (molecular mechanics -- C/fast) - Maybe some ideas can be shared with this guy. [http://www.kde-apps.org/content/show.php/Gromacs+GUI+?content=47665 Gromacs GUI]&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]] [[User:Mglerner|Michael Lerner]]) / nay (0)&lt;br /&gt;
* OpenOffice (escape Microsoft hegemony): Develop an PyMOL plugin.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* IPython integration (interactive shell): a robust alternative to the PyMOL command line?&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* R (statistics): PyMOL a 3D viewer environment for visualizating &amp;amp; manipulating large statistical data sets?&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
&lt;br /&gt;
Are there other key open-source packages we might specifically target for integration with PyMOL, either through GSoC or beyond?&lt;br /&gt;
&lt;br /&gt;
== High-Level Enhancement Ideas (Mostly Python-oriented) ==&lt;br /&gt;
&lt;br /&gt;
* Work on [[#More Ideas (Please add your own!)| MolViz]]&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop new plugins which automate routine tasks.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Improve the Python API documentation.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Flesh out the new &amp;quot;from pymol2 import PyMOL&amp;quot; instance-based PyMOL API.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop alternate Tkinter &amp;quot;skins&amp;quot; (for custom OEM-like applications).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop a Tkinter/TOGL widget which holds a PyMOL viewer instance.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop a PyQt widget which holds a PyMOL viewer instance.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Create a plugin-manager GUI in the style of Firefox, Rythmbox, Gedit, Eclipse. A GUI where it is easy to turn off/on plugins, configure them and see help-contents for them. Maybe also some way to paste a url to install a new Plugin.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Add a plugin for a GUI window with the same functionality as the &amp;quot;Control Panel&amp;quot; window in SwissPDB Viewer.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Extend and modify the PyMOL command language so as to be compatible with existing RasMol and/or Jmol scripts.&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay ([[User:Cowsandmilk|Cowsandmilk]] [[User:Slaw|slaw]])&lt;br /&gt;
* Enhance the Mutagenesis Wizard in order to support Nucleic acids and/or Sugars.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Better tab completion for commands&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]] [[User:Tstout|tstout]] [[User:Slaw|slaw]]) /nay(0)&lt;br /&gt;
&lt;br /&gt;
== Low-Level Enhancement Ideas (Mostly C-oriented) ==&lt;br /&gt;
&lt;br /&gt;
* Enable editing of displayed sequence alignments.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]], [[User:Aschreyer|Aschreyer]], [[User:Lucajovine|Luca Jovine]], [[User:Slaw|slaw]], [[User:Speleo3|Speleo3]]) / nay (0)&lt;br /&gt;
::: Would this then feed back to the structural alignment? [[User:Jedgold|Jedgold]]&lt;br /&gt;
::: A search function in the sequence would also be nice. [[User:Siderator|Carsten Schubert]]&lt;br /&gt;
* Add multi-line textual annotations&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Support additional annotation object including: arrow, lines, and blobs.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Add display of secondary structure into the sequence viewer.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Enable per-object Z clipping (especially in the ray tracer)&lt;br /&gt;
:: yea ([[User:Gregori|Gregori]], [[User:Xevi|Xevi]], [[User:Johnm|Johnm]], [[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
::: I would go a step further with fully customizable selection-based clipping planes (XYZ, color and transparency) ([[User:Gregori|Gregori]])&lt;br /&gt;
* Highlight H-bonds, salt bridges, Pi-stacking, Pi-cations, etc.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
* Build in a simple forcefield and energy minimizer suitable for use with Mutagenesis.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Incorporate a suite of standard NMR visualizations (restraint violations, per-residue RMS, etc.)&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Vcpmartin|Vcpmartin]], [[User:Rpetrenko|rpetrenko]], [[User:SteffenG|SteffenG]]) / nay (0)&lt;br /&gt;
* Enumeration and display of low-energy conformers.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]]) / nay (0)&lt;br /&gt;
::: This could be done by integrating RDKit, I think. [[User:Aschreyer|Aschreyer]]&lt;br /&gt;
* Automated structure grafting (poor-man's homology modeling).&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay ([[User:Jedgold|Jedgold]], [[User:Cowsandmilk|Cowsandmilk]]])&lt;br /&gt;
::: Perhaps a plugin to Modeller instead? ([[User:Jedgold|Jedgold]], [[User:Lucajovine|Luca Jovine]])&lt;br /&gt;
* Import of alignment files.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]], [[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Implement IMD (Interactive Molecular Dynamics) Interface, see http://www.ks.uiuc.edu/Research/vmd/imd/&lt;br /&gt;
:: yea ( [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Add buttons for '''Set ChainID''' and '''Renumber Residues From...''' to Edit menu or Actions (wrapper around Alter command)&lt;br /&gt;
:: yea ([[User:Sheehanj|Sheehanj]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Difficult C-level Code Refactoring Ideas ==&lt;br /&gt;
&lt;br /&gt;
* Assemble a test suite which thoroughly exercises the existing code (a prerequisite to major refactoring).&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]],[[User:Karo|Karo]]) / nay (0)&lt;br /&gt;
* Catch &amp;amp; handle memory-allocation failures gracefully (instead of crashing).&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Replace PyMOL's memory management &amp;amp; custom containers with a simple runtime object model.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Separate the View and the Controllers from the Model so that they can all run asynchronously (on multiple cores).&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Enable generalized undo of changes made to the Model.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]&amp;quot;[[User:Vcpmartin|Vcpmartin]], [[User:Lucajovine|Luca Jovine]]&amp;quot;, [[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Clean up the internal matrix handling code.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]],[[User:Karo|Karo]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Ideas Involving Proprietary APIs ==&lt;br /&gt;
&lt;br /&gt;
Since these involve closed-source APIs and infrastructure, they aren't suitable for open-source development efforts.  However, such requests are noted here for the sake of complete coverage.&lt;br /&gt;
&lt;br /&gt;
* Create a Windows port with &amp;quot;native&amp;quot; look &amp;amp; feel. &amp;lt;- Could this be done in PyQT or PyGTK?. Then it would look &amp;quot;native&amp;quot;, but be cross-platform and not proprietary.&lt;br /&gt;
:: yea (0) / nay ( [[User:Slaw|slaw]])&lt;br /&gt;
* Integrate directly via Mathematica via MathLink.&lt;br /&gt;
:: yea (0) / nay ([[User:Aschreyer|Aschreyer]])&lt;br /&gt;
* Further enhance JyMOL (Java-JNI/wrapped PyMOL)&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]], [[User:Cowsandmilk|Cowsandmilk]]  [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Integrate with Matlab.&lt;br /&gt;
:: yea (0) / nay ([[User:Aschreyer|Aschreyer]])&lt;br /&gt;
* Quicklook Plugin on the Mac&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Ideas for Plugin Developers ==&lt;br /&gt;
&lt;br /&gt;
The range of things that PyMOL plugins can do has grown by leaps and bounds over the last several years. It may be time for some new infrastructure to facilitate plugin development.&lt;br /&gt;
&lt;br /&gt;
* Plugins that span multiple files. This means 1. the ability to have them 2. the ability for users to easily install them.&lt;br /&gt;
:: yea (1) / nay (0) ([[User:Mglerner|Michael Lerner]])&lt;br /&gt;
* Config files that persist between sessions. This would be useful for things like remembering the locations of external programs, etc., without requiring the user to modify their .pymolrc.&lt;br /&gt;
:: yea (1) / nay (0) ([[User:Mglerner|Michael Lerner]])&lt;br /&gt;
&lt;br /&gt;
== More Ideas (Please add your own!) ==&lt;br /&gt;
* I often need to &amp;quot;replicate&amp;quot; previously PyMOL-made figures using newer coordinates/structures.  It would be a big help (to me), if PyMOL could produce an exported text file from the old PyMOL .pse file of graphical settings that I could then modify and apply as a pymol script to the new structure -- I'm thinking of something like an old-style MOLSCRIPT.INP file...&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
 &lt;br /&gt;
* [http://molviz.cs.toronto.edu/molviz MolViz] is a project to incorporate head tracking input into [http://pymol.sourceforge.net/ PyMol]. This is accomplished through a [[ImmersiveViz]] script written in Python to control the molecule's position using the existing [http://www.pymolwiki.org/index.php/Category:Commands PyMol API]. Related projects would include:&lt;br /&gt;
** Improving the existing [[ImmersiveViz]] PyMol plugin for more precise control of the environment.&lt;br /&gt;
** Developing new input drivers for the Wiimote form of control. This would require some bluetooth hacking.&lt;br /&gt;
** Implementing some other forms of input for head tracking, such as fisheye head tracking, IR webcam tracking, etc (refer to the end of this [[http://www.youtube.com/watch?v=ncShaY4VSac video]] for a better description).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Provide a 2D chemical depiction of the current 3D view.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Cowsandmilk|Cowsandmilk]]) / nay ([[User:Tstout|tstout]])&lt;br /&gt;
::: RDKit?&lt;br /&gt;
* Spreadsheet view with additional information (e.g. IC50's).&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Create additional documentation, screen casts, &amp;amp; tutorials.&lt;br /&gt;
:: yea ([[User:Markvanraaij|Markvanraaij]] [[User:Tstout|tstout]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Export 3D PDF images.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]]  [[User:Slaw|slaw]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Add extra &amp;quot;Single Word Selectors&amp;quot; like &amp;quot;nucleic&amp;quot;, &amp;quot;protein&amp;quot;, &amp;quot;water&amp;quot;, &amp;quot;ions&amp;quot;, &amp;quot;backbone&amp;quot; (for nucleic acids or proteins), &amp;quot;mainchain&amp;quot;, &amp;quot;sidechain&amp;quot;&lt;br /&gt;
:: yea ( [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Add functionality that allows you to select atoms based on their location (i.e. select (x_coordinate &amp;lt; 10) and (z_coordinate &amp;gt; 0))&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* set pdb_mirror option to use PDB mirrors other than RCSB for fetching structures (PDBe, PDBj); the EBI mirror is much faster from Europe for example.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* have the ability to link the TK console to the viewer so that users don't have to constantly alt+tab between what they want&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* have the ability to disable typing in the viewer and automatically type in the TK console (I like being able to cut/paste/home/end)&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* I see a lot of &amp;quot;can pymol do this&amp;quot; threads - any ideas of a good UI for a page of &amp;quot;things PyMOL can do?&amp;quot;&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* make an option where I can turn on a coordinate grid - perhaps an object that is a cuboid grid around any object in the view so I can still alter how it's rendered?&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* iPhone / Nexus One app(s)&lt;br /&gt;
:: yea (0) / nay ( [[User:Slaw|slaw]])&lt;br /&gt;
* single-color bonds between nonidentical or any spherical atoms colored specifically&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* double bonds as two parallel cylinders&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* export scenes as [http://www.khronos.org/webgl/ WebGL] / Could make mobile apps, presentation plugins obsolete&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Cowsandmilk|Cowsandmilk]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* export images in vector format&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Lucajovine|Luca Jovine]], [[User:Aschreyer|Aschreyer]], [[User:Tstout|tstout]] [[User:Slaw|slaw]] ) / nay (0)&lt;br /&gt;
* Keynote plugin&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Electron density contour sliders&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
::: May be even map the contouring level onto the wheel [[User:Siderator|Carsten Schubert]]&lt;br /&gt;
* Internal support for FFT, i.e. reading of map coefficients&lt;br /&gt;
:: yea ([[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]], [[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Automatic electron density map generation from PDB mmcif files or user-supplied MTZ files&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Aschreyer|Aschreyer]], [[User:Johnm|Johnm]],[[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Display of crystallographic symmetry and NCS axes, with possibility of showing symbols indicating what kind of axes they are&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
::: Support for labeling cell axes and origin, etc... [[User:Siderator|Carsten Schubert]], [[User:Lucajovine|Luca Jovine]]&lt;br /&gt;
* Automatic symmetry expansion to show overall crystal packing; automatic generation of scenes showing crystal packing interface details&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category:Coloring&amp;diff=3973</id>
		<title>Category:Coloring</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category:Coloring&amp;diff=3973"/>
		<updated>2010-09-09T11:25:39Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PyMOL allows very flexible coloring options, so you get that look that's &amp;quot;just right&amp;quot;.  These pages will help you find coloring-related information. Good places to start are [[Color]] and [[Advanced Coloring]] (which starts with the paragraph &amp;quot;Basic Coloring&amp;quot;).&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=CMYK&amp;diff=4360</id>
		<title>CMYK</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=CMYK&amp;diff=4360"/>
		<updated>2010-09-09T11:12:57Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
'''CMYK''' is a device-dependent colour space, i.e. the colour that is chosen to match to a particular RGB colour depends on the machine it is going to be printed on (and hence the inks that will be used in the printing).  Therefore there is no one-to-one mapping of CMYK values to RGB values (even with a  profile defining how the RGB values should be displayed).&lt;br /&gt;
&lt;br /&gt;
===Value===&lt;br /&gt;
In the real world, scientists do not have time or resources to mess with color profiles and color-calibrated hardware.  They simply want to go from screen to hardcopy knowing their colors will not be grossly distorted by their hardware, which is often consumer-grade, non-calibrated equipment.&lt;br /&gt;
&lt;br /&gt;
Though CMYK is indeed device-dependent, there are some color regions that, *in practice*, are more problematic than others when printing from an RGB source.  If you stick to safer regions of RGB space that are pragmatically captured through PyMOL's &amp;quot;CMYK&amp;quot; space command, then you will get closer to a WYSIWYG experience even in the absense of calibration.&lt;br /&gt;
&lt;br /&gt;
On the other hand, blithely working in RGB space and then relying upon automatic RGB-&amp;gt;CMYK color translations in the *absense* of color calibration for both display and printer almost always results in unacceptably poor color quality, and that is the practical real-world issue facing PyMOL users.&lt;br /&gt;
&lt;br /&gt;
===CMYK vs. RGB===&lt;br /&gt;
There's an ongoing discussion about what's better for printing from PyMol: CMYK or getting your RGB to look just right.  The merit of both are captured here:&lt;br /&gt;
&lt;br /&gt;
====Comment 1====&lt;br /&gt;
Since pymol's idea of CMYK is so limited (and from a printer's point of view probably shouldn't even exist) you are far better off getting the RGB&lt;br /&gt;
image out of pymol to look just the way you want it to (assuming a calibrated display and approprate colour profile) and then use a full-featured converter to generate the appropriate CMYK image for the device it is going to be printed on. One suggestion for a converter is GIMP (soon to be renamed something else) because it does know how to use/respect ICC profiles.&lt;br /&gt;
&lt;br /&gt;
====Response to Comment 1====&lt;br /&gt;
Unless you have calibrated hardware for both display and printer, you are definitely ''not far better off getting the RGB image out of pymol to look just the way you want it to''.    Instead, you are far better off avoiding areas of RGB color space that are difficult or impossible to handle without professional-grade color hardware, and that is the sole task PyMOL's CMYK capability is designed to help you with.&lt;br /&gt;
&lt;br /&gt;
====Response to Response to Comment 1====&lt;br /&gt;
If somebody has gotten to the point where they are worrying about their own CMYK separations then telling them to just use a reduced gamut space&lt;br /&gt;
to limit the conversion problems is less than helpful to my mind. They need to understand what is going on so they can make the decisions that&lt;br /&gt;
are necessary if they are to get the best colour reproduction on the journal pages.&lt;br /&gt;
&lt;br /&gt;
== Activating CMYK In PyMol ==&lt;br /&gt;
&lt;br /&gt;
Select&lt;br /&gt;
 Display -&amp;gt; Color Space -&amp;gt; CMYK&lt;br /&gt;
&lt;br /&gt;
Please read the above note about color spaces, too.&lt;br /&gt;
&lt;br /&gt;
[[Category:Publication_Quality|CMYK Colorspace]]&lt;br /&gt;
[[Category:Coloring|CMYK Colorspace]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11856</id>
		<title>Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11856"/>
		<updated>2010-09-07T12:30:56Z</updated>

		<summary type="html">&lt;p&gt;Karo: /* Difficult C-level Code Refactoring Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Ideas for PyMOL Development ===&lt;br /&gt;
&lt;br /&gt;
This page was originally developed for the 2008 Google Summer of Code competition, but seeing as PyMOL wasn't selected, this page can instead serve as a resource for ongoing PyMOL development efforts.&lt;br /&gt;
&lt;br /&gt;
== Where to Start ==&lt;br /&gt;
&lt;br /&gt;
Always start with Python and only delve down into the C code when absolutely necessary.  Although PyMOL is mostly a C-based application, much of the that code is opaque, fragile, and unforgiving. Although C code refactoring is an important project goal, such work may not be ideal since once mistake could potentially to destabilize the entire platform. &lt;br /&gt;
&lt;br /&gt;
Fortunately, the Python interpreter and the PyMOL command and selection languages make it possible to extend PyMOL safely and quickly.  Even when performance is critical, Python should be the interface between external C, C++, and Java code and PyMOL's internal C data structures.&lt;br /&gt;
&lt;br /&gt;
== Choosing a Topic ==&lt;br /&gt;
&lt;br /&gt;
The best open-source code is usually written by an end-users attempting to meet their own pressing needs.  So if you have already have a specific need which relates to PyMOL, then we strongly encourage you to follow up on that first!&lt;br /&gt;
&lt;br /&gt;
If you are looking for ideas,  then try to seek out enhancements and/or integrations that will impact the largest potential user base.  For example, imagine what new things might be useful to virtually all medicinal chemists, all structural biologists, all movie-makers, all paper-writers, and so forth.&lt;br /&gt;
&lt;br /&gt;
The ideas below are organized by category.  Right now, integration with other open-source projects seems like the approach most likely to yield significant benefit, so those ideas are first.&lt;br /&gt;
&lt;br /&gt;
== Integration Ideas (Linking Out to Useful Open-Source Tools) ==&lt;br /&gt;
&lt;br /&gt;
In most cases, depending on the need, integration can be accomplished through standalone Python scripts, through new PyMOL commands, through PyMOL Wizards, or via Tkinter plugins.&lt;br /&gt;
&lt;br /&gt;
* APBS (electrostatics calculations):  Improve the existing plugin. Michael Lerner is currently leading this effort.  See [[APBS]]&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]] [[User:Jedgold|Jedgold]] [[User:Vcpmartin|Vcpmartin]] [[User:Siderator|Siderator]] [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
:: Feel free to mention specific plugin enhancements you'd like! [[User:Mglerner|Michael Lerner]]&lt;br /&gt;
* RDKit (cheminformatics, depiction, UFF cleanup, etc.):  Lots of potential here, however C++ coding may be necessary for more advanced integration tasks. [http://www.rdkit.org RDKit home]&lt;br /&gt;
:: yea ([[User:Markvanraaij|Markvanraaij]]) / nay (0)&lt;br /&gt;
* GIMP (image manipulation):  Streamline &amp;amp; document the process of exporting images from PyMOL into GIMP and preparing them for submission to scientific Journals.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Jmol (publishing visualizations inside of web pages): Liason between PyMOL &amp;amp; Jmol projects to develop a shared molecular visualization data model compatible with both applications (meaning, being able to import/export sessions from one to the other).&lt;br /&gt;
:: yea ([[User:Tstout|tstout]] [[User:Slaw|slaw]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Firefox (plugin): Develop an PyMOL plugin compatible with Firefox.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]] [[User:Slaw|slaw]]) / nay ([[User:Tstout|tstout]])&lt;br /&gt;
* MMTK (molecular mechanics -- Python/flexible):  Develop the ability to round-trip molecular systems from PyMOL, into MMTK, and back.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* GROMACS (molecular mechanics -- C/fast) - Maybe some ideas can be shared with this guy. [http://www.kde-apps.org/content/show.php/Gromacs+GUI+?content=47665 Gromacs GUI]&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]] [[User:Mglerner|Michael Lerner]]) / nay (0)&lt;br /&gt;
* OpenOffice (escape Microsoft hegemony): Develop an PyMOL plugin.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* IPython integration (interactive shell): a robust alternative to the PyMOL command line?&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* R (statistics): PyMOL a 3D viewer environment for visualizating &amp;amp; manipulating large statistical data sets?&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
&lt;br /&gt;
Are there other key open-source packages we might specifically target for integration with PyMOL, either through GSoC or beyond?&lt;br /&gt;
&lt;br /&gt;
== High-Level Enhancement Ideas (Mostly Python-oriented) ==&lt;br /&gt;
&lt;br /&gt;
* Work on [[#More Ideas (Please add your own!)| MolViz]]&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop new plugins which automate routine tasks.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Improve the Python API documentation.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Flesh out the new &amp;quot;from pymol2 import PyMOL&amp;quot; instance-based PyMOL API.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop alternate Tkinter &amp;quot;skins&amp;quot; (for custom OEM-like applications).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop a Tkinter/TOGL widget which holds a PyMOL viewer instance.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Develop a PyQt widget which holds a PyMOL viewer instance.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Create a plugin-manager GUI in the style of Firefox, Rythmbox, Gedit, Eclipse. A GUI where it is easy to turn off/on plugins, configure them and see help-contents for them. Maybe also some way to paste a url to install a new Plugin.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Add a plugin for a GUI window with the same functionality as the &amp;quot;Control Panel&amp;quot; window in SwissPDB Viewer.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Extend and modify the PyMOL command language so as to be compatible with existing RasMol and/or Jmol scripts.&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay ([[User:Cowsandmilk|Cowsandmilk]] [[User:Slaw|slaw]])&lt;br /&gt;
* Enhance the Mutagenesis Wizard in order to support Nucleic acids and/or Sugars.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Better tab completion for commands&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]] [[User:Tstout|tstout]] [[User:Slaw|slaw]]) /nay(0)&lt;br /&gt;
&lt;br /&gt;
== Low-Level Enhancement Ideas (Mostly C-oriented) ==&lt;br /&gt;
&lt;br /&gt;
* Enable editing of displayed sequence alignments.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]], [[User:Aschreyer|Aschreyer]], [[User:Lucajovine|Luca Jovine]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
::: Would this then feed back to the structural alignment? [[User:Jedgold|Jedgold]]&lt;br /&gt;
::: A search function in the sequence would also be nice. [[User:Siderator|Carsten Schubert]]&lt;br /&gt;
* Add multi-line textual annotations&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Support additional annotation object including: arrow, lines, and blobs.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Add display of secondary structure into the sequence viewer.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Enable per-object Z clipping (especially in the ray tracer)&lt;br /&gt;
:: yea ([[User:Gregori|Gregori]], [[User:Xevi|Xevi]], [[User:Johnm|Johnm]], [[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
::: I would go a step further with fully customizable selection-based clipping planes (XYZ, color and transparency) ([[User:Gregori|Gregori]])&lt;br /&gt;
* Highlight H-bonds, salt bridges, Pi-stacking, Pi-cations, etc.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
* Build in a simple forcefield and energy minimizer suitable for use with Mutagenesis.&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Incorporate a suite of standard NMR visualizations (restraint violations, per-residue RMS, etc.)&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Vcpmartin|Vcpmartin]], [[User:Rpetrenko|rpetrenko]], [[User:SteffenG|SteffenG]]) / nay (0)&lt;br /&gt;
* Enumeration and display of low-energy conformers.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]]) / nay (0)&lt;br /&gt;
::: This could be done by integrating RDKit, I think. [[User:Aschreyer|Aschreyer]]&lt;br /&gt;
* Automated structure grafting (poor-man's homology modeling).&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay ([[User:Jedgold|Jedgold]], [[User:Cowsandmilk|Cowsandmilk]]])&lt;br /&gt;
::: Perhaps a plugin to Modeller instead? ([[User:Jedgold|Jedgold]], [[User:Lucajovine|Luca Jovine]])&lt;br /&gt;
* Import of alignment files.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]], [[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Implement IMD (Interactive Molecular Dynamics) Interface, see http://www.ks.uiuc.edu/Research/vmd/imd/&lt;br /&gt;
:: yea ( [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Add buttons for '''Set ChainID''' and '''Renumber Residues From...''' to Edit menu or Actions (wrapper around Alter command)&lt;br /&gt;
:: yea ([[User:Sheehanj|Sheehanj]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Difficult C-level Code Refactoring Ideas ==&lt;br /&gt;
&lt;br /&gt;
* Assemble a test suite which thoroughly exercises the existing code (a prerequisite to major refactoring).&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]],[[User:Karo|Karo]]) / nay (0)&lt;br /&gt;
* Catch &amp;amp; handle memory-allocation failures gracefully (instead of crashing).&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Replace PyMOL's memory management &amp;amp; custom containers with a simple runtime object model.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Separate the View and the Controllers from the Model so that they can all run asynchronously (on multiple cores).&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* Enable generalized undo of changes made to the Model.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]&amp;quot;[[User:Vcpmartin|Vcpmartin]], [[User:Lucajovine|Luca Jovine]]&amp;quot;, [[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
* Clean up the internal matrix handling code.&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]],[[User:Karo|Karo]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Ideas Involving Proprietary APIs ==&lt;br /&gt;
&lt;br /&gt;
Since these involve closed-source APIs and infrastructure, they aren't suitable for open-source development efforts.  However, such requests are noted here for the sake of complete coverage.&lt;br /&gt;
&lt;br /&gt;
* Create a Windows port with &amp;quot;native&amp;quot; look &amp;amp; feel. &amp;lt;- Could this be done in PyQT or PyGTK?. Then it would look &amp;quot;native&amp;quot;, but be cross-platform and not proprietary.&lt;br /&gt;
:: yea (0) / nay ( [[User:Slaw|slaw]])&lt;br /&gt;
* Integrate directly via Mathematica via MathLink.&lt;br /&gt;
:: yea (0) / nay ([[User:Aschreyer|Aschreyer]])&lt;br /&gt;
* Further enhance JyMOL (Java-JNI/wrapped PyMOL)&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]], [[User:Cowsandmilk|Cowsandmilk]]  [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Integrate with Matlab.&lt;br /&gt;
:: yea (0) / nay ([[User:Aschreyer|Aschreyer]])&lt;br /&gt;
* Quicklook Plugin on the Mac&lt;br /&gt;
:: yea ([[User:Cowsandmilk|Cowsandmilk]]) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== Ideas for Plugin Developers ==&lt;br /&gt;
&lt;br /&gt;
The range of things that PyMOL plugins can do has grown by leaps and bounds over the last several years. It may be time for some new infrastructure to facilitate plugin development.&lt;br /&gt;
&lt;br /&gt;
* Plugins that span multiple files. This means 1. the ability to have them 2. the ability for users to easily install them.&lt;br /&gt;
:: yea (1) / nay (0) ([[User:Mglerner|Michael Lerner]])&lt;br /&gt;
* Config files that persist between sessions. This would be useful for things like remembering the locations of external programs, etc., without requiring the user to modify their .pymolrc.&lt;br /&gt;
:: yea (1) / nay (0) ([[User:Mglerner|Michael Lerner]])&lt;br /&gt;
&lt;br /&gt;
== More Ideas (Please add your own!) ==&lt;br /&gt;
* I often need to &amp;quot;replicate&amp;quot; previously PyMOL-made figures using newer coordinates/structures.  It would be a big help (to me), if PyMOL could produce an exported text file from the old PyMOL .pse file of graphical settings that I could then modify and apply as a pymol script to the new structure -- I'm thinking of something like an old-style MOLSCRIPT.INP file...&lt;br /&gt;
:: yea ([[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
 &lt;br /&gt;
* [http://molviz.cs.toronto.edu/molviz MolViz] is a project to incorporate head tracking input into [http://pymol.sourceforge.net/ PyMol]. This is accomplished through a [[ImmersiveViz]] script written in Python to control the molecule's position using the existing [http://www.pymolwiki.org/index.php/Category:Commands PyMol API]. Related projects would include:&lt;br /&gt;
** Improving the existing [[ImmersiveViz]] PyMol plugin for more precise control of the environment.&lt;br /&gt;
** Developing new input drivers for the Wiimote form of control. This would require some bluetooth hacking.&lt;br /&gt;
** Implementing some other forms of input for head tracking, such as fisheye head tracking, IR webcam tracking, etc (refer to the end of this [[http://www.youtube.com/watch?v=ncShaY4VSac video]] for a better description).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Provide a 2D chemical depiction of the current 3D view.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Cowsandmilk|Cowsandmilk]]) / nay ([[User:Tstout|tstout]])&lt;br /&gt;
::: RDKit?&lt;br /&gt;
* Spreadsheet view with additional information (e.g. IC50's).&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Create additional documentation, screen casts, &amp;amp; tutorials.&lt;br /&gt;
:: yea ([[User:Markvanraaij|Markvanraaij]] [[User:Tstout|tstout]] [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Export 3D PDF images.&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]]  [[User:Slaw|slaw]]) / nay ([[User:Cowsandmilk|Cowsandmilk]])&lt;br /&gt;
* Add extra &amp;quot;Single Word Selectors&amp;quot; like &amp;quot;nucleic&amp;quot;, &amp;quot;protein&amp;quot;, &amp;quot;water&amp;quot;, &amp;quot;ions&amp;quot;, &amp;quot;backbone&amp;quot; (for nucleic acids or proteins), &amp;quot;mainchain&amp;quot;, &amp;quot;sidechain&amp;quot;&lt;br /&gt;
:: yea ( [[User:Slaw|slaw]]) / nay (0)&lt;br /&gt;
* Add functionality that allows you to select atoms based on their location (i.e. select (x_coordinate &amp;lt; 10) and (z_coordinate &amp;gt; 0))&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* set pdb_mirror option to use PDB mirrors other than RCSB for fetching structures (PDBe, PDBj); the EBI mirror is much faster from Europe for example.&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* have the ability to link the TK console to the viewer so that users don't have to constantly alt+tab between what they want&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* have the ability to disable typing in the viewer and automatically type in the TK console (I like being able to cut/paste/home/end)&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* I see a lot of &amp;quot;can pymol do this&amp;quot; threads - any ideas of a good UI for a page of &amp;quot;things PyMOL can do?&amp;quot;&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* make an option where I can turn on a coordinate grid - perhaps an object that is a cuboid grid around any object in the view so I can still alter how it's rendered?&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* iPhone / Nexus One app(s)&lt;br /&gt;
:: yea (0) / nay ( [[User:Slaw|slaw]])&lt;br /&gt;
* single-color bonds between nonidentical or any spherical atoms colored specifically&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* double bonds as two parallel cylinders&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]]) / nay (0)&lt;br /&gt;
* export scenes as [http://www.khronos.org/webgl/ WebGL] / Could make mobile apps, presentation plugins obsolete&lt;br /&gt;
:: yea ([[User:Aschreyer|Aschreyer]], [[User:Cowsandmilk|Cowsandmilk]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* export images in vector format&lt;br /&gt;
:: yea ([[User:Vvostri|Vvostri]], [[User:Lucajovine|Luca Jovine]], [[User:Aschreyer|Aschreyer]], [[User:Tstout|tstout]] [[User:Slaw|slaw]] ) / nay (0)&lt;br /&gt;
* Keynote plugin&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Electron density contour sliders&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
::: May be even map the contouring level onto the wheel [[User:Siderator|Carsten Schubert]]&lt;br /&gt;
* Internal support for FFT, i.e. reading of map coefficients&lt;br /&gt;
:: yea ([[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]], [[User:Lucajovine|Luca Jovine]]) / nay (0)&lt;br /&gt;
* Automatic electron density map generation from PDB mmcif files or user-supplied MTZ files&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Aschreyer|Aschreyer]], [[User:Johnm|Johnm]],[[User:Siderator|Carsten Schubert]], [[User:Tstout|tstout]]) / nay (0)&lt;br /&gt;
* Display of crystallographic symmetry and NCS axes, with possibility of showing symbols indicating what kind of axes they are&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;br /&gt;
::: Support for labeling cell axes and origin, etc... [[User:Siderator|Carsten Schubert]], [[User:Lucajovine|Luca Jovine]]&lt;br /&gt;
* Automatic symmetry expansion to show overall crystal packing; automatic generation of scenes showing crystal packing interface details&lt;br /&gt;
:: yea ([[User:Lucajovine|Luca Jovine]], [[User:Tstout|tstout]], [[User:Siderator|Carsten Schubert]]) / nay (0)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Origin&amp;diff=7135</id>
		<title>Origin</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Origin&amp;diff=7135"/>
		<updated>2010-09-07T11:30:10Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''origin''' sets the center of rotation about a selection.  If an object name is specified, it can be used to set the center of rotation for the object's [[Object_Matrix|TTT matrix]].&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
origin selection [, object [,position, [, state]]]&lt;br /&gt;
origin (selection)&lt;br /&gt;
origin position=[1.0,2.0,3.0]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.origin( string object-or-selection )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NOTES===&lt;br /&gt;
* state = 0 (default) use all coordinate states&lt;br /&gt;
* state = -1 use only coordinates for the current state&lt;br /&gt;
* state &amp;gt; 0  use coordinates for a specific state&lt;br /&gt;
&lt;br /&gt;
===SEE ALSO===&lt;br /&gt;
[[Zoom]], [[Orient]], [[Reset]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Origin]]&lt;br /&gt;
[[Category:States|Origin]]&lt;br /&gt;
[[Category:View Module|Origin]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Rotate&amp;diff=9588</id>
		<title>Rotate</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Rotate&amp;diff=9588"/>
		<updated>2010-09-07T11:28:55Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''rotate''' can be used to rotate the atomic coordinates of a molecular object.  Behavior differs depending on whether or not the '''object''' parameter is specified.&lt;br /&gt;
 &lt;br /&gt;
If object is '''None''', then rotate rotates the atomic coordinates according to the axes and angle for the selection and state provided.  &lt;br /&gt;
&lt;br /&gt;
If object is set to an object name, then selection and state are ignored and instead of translating the atomic coordinates, the [[Object_Matrix|object matrix]] is modified. This option is intended for use in animations.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;camera&amp;quot; option controls whether the camera or the model's axes are used to interpret the translation vector.  To move the object relative to the camera set '''camera=1''' (which is default), or to move the molecule relative to the model's geometry, set '''camera=0'''.&lt;br /&gt;
&lt;br /&gt;
If this doesn't do what you want, consider [[Turn]].&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
rotate axis, angle [,selection [,state [,camera [,object [,origin]]]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ARGUMENTS===&lt;br /&gt;
'''axis'''&lt;br /&gt;
::x, y, z, or float vector: axis about which to rotate&lt;br /&gt;
&lt;br /&gt;
'''angle'''&lt;br /&gt;
::float: degrees of rotation&lt;br /&gt;
&lt;br /&gt;
'''selection'''&lt;br /&gt;
::    string: atoms whose coordinates should be modified {default: all}&lt;br /&gt;
::    state &amp;gt; 0: only the indicated state is modified&lt;br /&gt;
::    state = 0: all states are modified&lt;br /&gt;
::    state = -1: only the current state is modified {default}&lt;br /&gt;
::    camera = 0 or 1: is the axis specific in camera coordinates? {default: 1}&lt;br /&gt;
::    object = string: object name (only if changing object matrix) {default: None}&lt;br /&gt;
::    origin = float vector: origin of rotation {default: None}&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.rotate(list-or-string axis, angle=0, string selection = &amp;quot;all&amp;quot;, int state = 0,&lt;br /&gt;
           int camera = 1, string object = None)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EXAMPLES===&lt;br /&gt;
 rotate x, 45, pept&lt;br /&gt;
 rotate [1,1,1], 10, chain A&lt;br /&gt;
&lt;br /&gt;
=====Electrostatic Map Caveat=====&lt;br /&gt;
If you have an electrostatic map and it's not rotating with the molecule as you expect it to, see the [[Cmd turn|Turn]] command.  [[Cmd turn|Turn]] moves the camera and thus the protein and map will be changed.&lt;br /&gt;
&lt;br /&gt;
===SEE ALSO===&lt;br /&gt;
[[Object_Matrix|object matrix]] [[Translate]] [[Turn]] [[Model_Space_and_Camera_Space]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Rotate]]&lt;br /&gt;
[[Category:States|Rotate]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Translate&amp;diff=5724</id>
		<title>Translate</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Translate&amp;diff=5724"/>
		<updated>2010-09-07T11:28:44Z</updated>

		<summary type="html">&lt;p&gt;Karo: Arguments added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''translate''' can be used to translate the atomic coordinates of a molecular object (move an object).  Behavior differs depending on whether or not the &amp;quot;object&amp;quot; parameter is specified.&lt;br /&gt;
&lt;br /&gt;
If object is None, then translate translates atomic coordinates according to the vector provided for the selection and in the state provided.&lt;br /&gt;
 &lt;br /&gt;
If object is set to an object name, then selection and state are ignored and instead of translating the atomic coordinates, the [[Object_Matrix|object matrix]] is modified. This option is intended for use in animations.&lt;br /&gt;
 &lt;br /&gt;
The &amp;quot;camera&amp;quot; option controls whether the camera or the model's axes are used to interpret the translation vector.  To move the object relative to the camera set '''camera=1''' (which is default), or to move the molecule relative to the model's geometry, set, '''camera=0'''.&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
translate vector [,selection [,state [,camera [,object ]]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ARGUMENTS===&lt;br /&gt;
'''axis'''&lt;br /&gt;
::x, y, z, or float vector: axis about which to rotate&lt;br /&gt;
&lt;br /&gt;
'''angle'''&lt;br /&gt;
::float: degrees of rotation&lt;br /&gt;
&lt;br /&gt;
'''selection'''&lt;br /&gt;
::    string: atoms whose coordinates should be modified {default: all}&lt;br /&gt;
::    state &amp;gt; 0: only the indicated state is modified&lt;br /&gt;
::    state = 0: all states are modified&lt;br /&gt;
::    state = -1: only the current state is modified {default}&lt;br /&gt;
::    camera = 0 or 1: is the axis specific in camera coordinates? {default: 1}&lt;br /&gt;
::    object = string: object name (only if changing object matrix) {default: None}&lt;br /&gt;
::    origin = float vector: origin of rotation {default: None}&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.translate(list vector, string selection = &amp;quot;all&amp;quot;, int state = 0,&lt;br /&gt;
              int camera = 1, string object = None)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EXAMPLES===&lt;br /&gt;
A simple example; just move the alpha-carbons one Ang. along the X-axis.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# move the alpha carbons one Ang. on the X-axis&lt;br /&gt;
translate [1,0,0], name ca&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
A slightly more complicated example.  Load two proteins, align them, and then move one away from the other to see their similarities separately.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# load 1cll and 1ggz&lt;br /&gt;
fetch 1cll 1ggz, async=0&lt;br /&gt;
&lt;br /&gt;
# align the two proteins&lt;br /&gt;
cealign 1cll, 1ggz&lt;br /&gt;
&lt;br /&gt;
# orient the proteins&lt;br /&gt;
orient&lt;br /&gt;
&lt;br /&gt;
# move 1cll above 1ggz so we can &lt;br /&gt;
# see both proteins separately&lt;br /&gt;
translate [0, 40, 0], 1cll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NOTES===&lt;br /&gt;
# if state = 0, then only visible state(s) are affected.&lt;br /&gt;
# if state = -1, then all states are affected. &lt;br /&gt;
&lt;br /&gt;
===SEE ALSO===&lt;br /&gt;
[[Rotate]], [[Move]], [[Model_Space_and_Camera_Space]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Translate]]&lt;br /&gt;
[[Category:States|Translate]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Translate&amp;diff=5723</id>
		<title>Translate</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Translate&amp;diff=5723"/>
		<updated>2010-09-07T11:23:05Z</updated>

		<summary type="html">&lt;p&gt;Karo: Tried to clarify the object option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''translate''' can be used to translate the atomic coordinates of a molecular object (move an object).  Behavior differs depending on whether or not the &amp;quot;object&amp;quot; parameter is specified.&lt;br /&gt;
&lt;br /&gt;
If object is None, then translate translates atomic coordinates according to the vector provided for the selection and in the state provided.&lt;br /&gt;
 &lt;br /&gt;
If object is set to an object name, then selection and state are ignored and instead of translating the atomic coordinates, the [[Object_Matrix|object matrix]] is modified. This option is intended for use in animations.&lt;br /&gt;
 &lt;br /&gt;
The &amp;quot;camera&amp;quot; option controls whether the camera or the model's axes are used to interpret the translation vector.  To move the object relative to the camera set '''camera=1''' (which is default), or to move the molecule relative to the model's geometry, set, '''camera=0'''.&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
translate vector [,selection [,state [,camera [,object ]]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.translate(list vector, string selection = &amp;quot;all&amp;quot;, int state = 0,&lt;br /&gt;
              int camera = 1, string object = None)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EXAMPLES===&lt;br /&gt;
A simple example; just move the alpha-carbons one Ang. along the X-axis.&lt;br /&gt;
====Example====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# move the alpha carbons one Ang. on the X-axis&lt;br /&gt;
translate [1,0,0], name ca&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
A slightly more complicated example.  Load two proteins, align them, and then move one away from the other to see their similarities separately.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# load 1cll and 1ggz&lt;br /&gt;
fetch 1cll 1ggz, async=0&lt;br /&gt;
&lt;br /&gt;
# align the two proteins&lt;br /&gt;
cealign 1cll, 1ggz&lt;br /&gt;
&lt;br /&gt;
# orient the proteins&lt;br /&gt;
orient&lt;br /&gt;
&lt;br /&gt;
# move 1cll above 1ggz so we can &lt;br /&gt;
# see both proteins separately&lt;br /&gt;
translate [0, 40, 0], 1cll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NOTES===&lt;br /&gt;
# if state = 0, then only visible state(s) are affected.&lt;br /&gt;
# if state = -1, then all states are affected. &lt;br /&gt;
&lt;br /&gt;
===SEE ALSO===&lt;br /&gt;
[[Rotate]], [[Move]], [[Model_Space_and_Camera_Space]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Translate]]&lt;br /&gt;
[[Category:States|Translate]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Rotate&amp;diff=9587</id>
		<title>Rotate</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Rotate&amp;diff=9587"/>
		<updated>2010-09-07T11:22:57Z</updated>

		<summary type="html">&lt;p&gt;Karo: Tried to clarify the object option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''rotate''' can be used to rotate the atomic coordinates of a molecular object.  Behavior differs depending on whether or not the '''object''' parameter is specified.&lt;br /&gt;
 &lt;br /&gt;
If object is '''None''', then rotate rotates the atomic coordinates according to the axes and angle for the selection and state provided.  &lt;br /&gt;
&lt;br /&gt;
If object is set to an object name, then selection and state are ignored and instead of translating the atomic coordinates, the [[Object_Matrix|object matrix]] is modified. This option is intended for use in animations.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;camera&amp;quot; option controls whether the camera or the model's axes are used to interpret the translation vector.  To move the object relative to the camera set '''camera=1''' (which is default), or to move the molecule relative to the model's geometry, set '''camera=0'''.&lt;br /&gt;
&lt;br /&gt;
If this doesn't do what you want, consider [[Turn]].&lt;br /&gt;
&lt;br /&gt;
===USAGE===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
rotate axis, angle [,selection [,state [,camera [,object [,origin]]]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ARGUMENTS===&lt;br /&gt;
'''axis'''&lt;br /&gt;
::x, y, z, or float vector: axis about which to rotate&lt;br /&gt;
&lt;br /&gt;
'''angle'''&lt;br /&gt;
::float: degrees of rotation&lt;br /&gt;
&lt;br /&gt;
'''selection'''&lt;br /&gt;
::    string: atoms whose coordinates should be modified {default: all}&lt;br /&gt;
::    state &amp;gt; 0: only the indicated state is modified&lt;br /&gt;
::    state = 0: all states are modified&lt;br /&gt;
::    state = -1: only the current state is modified {default}&lt;br /&gt;
::    camera = 0 or 1: is the axis specific in camera coordinates? {default: 1}&lt;br /&gt;
::    object = string: object name (only if rotating object matrix) {default: None}&lt;br /&gt;
::    origin = float vector: origin of rotateion {default: None}&lt;br /&gt;
&lt;br /&gt;
===PYMOL API===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.rotate(list-or-string axis, angle=0, string selection = &amp;quot;all&amp;quot;, int state = 0,&lt;br /&gt;
           int camera = 1, string object = None)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EXAMPLES===&lt;br /&gt;
 rotate x, 45, pept&lt;br /&gt;
 rotate [1,1,1], 10, chain A&lt;br /&gt;
&lt;br /&gt;
=====Electrostatic Map Caveat=====&lt;br /&gt;
If you have an electrostatic map and it's not rotating with the molecule as you expect it to, see the [[Cmd turn|Turn]] command.  [[Cmd turn|Turn]] moves the camera and thus the protein and map will be changed.&lt;br /&gt;
&lt;br /&gt;
===SEE ALSO===&lt;br /&gt;
[[Object_Matrix|object matrix]] [[Translate]] [[Turn]] [[Model_Space_and_Camera_Space]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Rotate]]&lt;br /&gt;
[[Category:States|Rotate]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Transform_selection&amp;diff=9055</id>
		<title>Transform selection</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Transform_selection&amp;diff=9055"/>
		<updated>2010-09-07T11:13:07Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
'''transform_selection''' applies a transformation matrix to a selection.  The matrix should actually be passed in as a single list -- not a list of lists.&lt;br /&gt;
&lt;br /&gt;
=== Details ===&lt;br /&gt;
When '''homogenous == 0''': the matrix needed is a 4x4 matrix, where the upper-left 3x3 quadrant is a typical rotation matrix.  The 4th row and 4th column specify the pre- and post-translation vectors.  So, you can translate+rotate+translate with this one matrix.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
=== Basic Syntax ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.transform_selection(&amp;quot;a&amp;quot;, [x,x,x,x, x,x,x,x, x,x,x,x, x,x,x,x],&lt;br /&gt;
homogenous=1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Real-World Example === &lt;br /&gt;
I wrote a structure alignment program that needs to update the coordinates of the 2nd protein by translating it, rotating it and then translating it on top of the other molecule.  It's done as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// C code&lt;br /&gt;
//&lt;br /&gt;
// ...after the magic is done, pack all the values into the TTT matrix.&lt;br /&gt;
PyObject* pyU = Py_BuildValue( &amp;quot;[f,f,f,f, f,f,f,f, f,f,f,f, f,f,f,f]&amp;quot;,&lt;br /&gt;
			   bestU[0][0], bestU[1][0], bestU[2][0], bestCOM1[0],&lt;br /&gt;
			   bestU[0][1], bestU[1][1], bestU[2][1], bestCOM1[1],&lt;br /&gt;
			   bestU[0][2], bestU[1][2], bestU[2][2], bestCOM1[2],&lt;br /&gt;
                          -bestCOM2[0], -bestCOM2[1], -bestCOM2[2], 1.);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where bestU is the transpose of the best rotation matrix, bestCOM1 is the center of mass (COM) for molecule 1, and bestCOM2 is for two.  '''pyU''' becomes '''rotMat'''.  The call in Python is then,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Python code.&lt;br /&gt;
#&lt;br /&gt;
cmd.transform_selection( mol2, rotMat, homogenous=0 );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Were I '''not''' to use bestCOM1 or bestCOM2, each of those entries would be 0.  The last element should always be 1.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[transform_odb]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Matrix_Copy&amp;diff=6944</id>
		<title>Matrix Copy</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Matrix_Copy&amp;diff=6944"/>
		<updated>2010-09-07T11:11:48Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Matrix_copy]] copies the [[Object_Matrix|object matrix]] from one object to another.&lt;br /&gt;
&lt;br /&gt;
This command is often used after a protein structure alignment to bring other related objects into the same frame of reference.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
matrix_copy source_name, target_name&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# load two molecules&lt;br /&gt;
load mol1.pdb&lt;br /&gt;
load mol2.pdb&lt;br /&gt;
&lt;br /&gt;
# load their maps&lt;br /&gt;
load map1.ccp4&lt;br /&gt;
load map2.ccp4&lt;br /&gt;
&lt;br /&gt;
# align the two molecules&lt;br /&gt;
align mol2////CA, mol1////CA&lt;br /&gt;
&lt;br /&gt;
# copy mol2's map to mol2&lt;br /&gt;
matrix_copy mol2, map2&lt;br /&gt;
&lt;br /&gt;
# show the isomesh&lt;br /&gt;
isomesh mesh1, map1&lt;br /&gt;
isomesh mesh2, map2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
[[Object_Matrix| Object Matrix]] [[Matrix_reset]], [[align]], [[fit]], and [[pair_fit]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Matrix copy]]&lt;br /&gt;
[[Category:Structure_Alignment|Matrix copy]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Get_object_matrix&amp;diff=7994</id>
		<title>Get object matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Get_object_matrix&amp;diff=7994"/>
		<updated>2010-09-07T11:08:53Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
Pymol stores a transformation matrix for each object relative to it's initial position when loaded in.  '''get_object_matrix''' will return a list of floats with that matrix for a named object.&lt;br /&gt;
&lt;br /&gt;
The matrix is 4X4, with the upper left 3x3 forming a rotation matrix, the fourth column and row representing pre-rotation and post-rotation translation vectors respectively, and the 16th element always being 1.0.&lt;br /&gt;
&lt;br /&gt;
According the pymol source code, this is an &amp;quot;unsupported command&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Syntax=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.get_object_matrix(object, state=1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.load(&amp;quot;prot1.pdb&amp;quot;, &amp;quot;prot1&amp;quot;)&lt;br /&gt;
cmd.load(&amp;quot;prot2.pdb&amp;quot;, &amp;quot;prot2&amp;quot;)&lt;br /&gt;
cmd.super(&amp;quot;prot1&amp;quot;, &amp;quot;prot2&amp;quot;) #align prot1 to prot 2&lt;br /&gt;
transformation = cmd.get_object_matrix(&amp;quot;prot1&amp;quot;) #translation and rotation to align the two proteins&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
[[Object_Matrix]] [[Transform_selection]] [[Transform_odb]] [[Matrix_copy]] &lt;br /&gt;
&lt;br /&gt;
[[Category:Commands|Get Object Matrix]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Object_Matrix&amp;diff=10662</id>
		<title>Talk:Object Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Object_Matrix&amp;diff=10662"/>
		<updated>2010-09-07T11:07:29Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with '== Translation vectors ==  I'm not sure which vector is used first and second (row or column). I found inconsistent readings in different places. --~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Translation vectors ==&lt;br /&gt;
&lt;br /&gt;
I'm not sure which vector is used first and second (row or column). I found inconsistent readings in different places. --[[User:Karo|Karo]] 11:07, 7 September 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Object_Matrix&amp;diff=7908</id>
		<title>Object Matrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Object_Matrix&amp;diff=7908"/>
		<updated>2010-09-07T11:05:12Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'Every object has an object matrix associated with it. The object matrix tells PyMOL whether the object coordinates are to be transformed before the object is displayed. The matri…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Every object has an object matrix associated with it. The object&lt;br /&gt;
matrix tells PyMOL whether the object coordinates are to be&lt;br /&gt;
transformed before the object is displayed. The matrix&lt;br /&gt;
is not a standard matrix in mathematical sense, it is something&lt;br /&gt;
PyMOL-specific, also called TTT matrix: It is 4X4, with the upper left&lt;br /&gt;
3x3 forming a rotation matrix, the fourth column and row representing&lt;br /&gt;
pre-rotation and post-rotation translation vectors respectively, and&lt;br /&gt;
the 16th element always being 1.0.  TTT stands for translation -&lt;br /&gt;
transformation - translation.&lt;br /&gt;
&lt;br /&gt;
Initially, the object matrix is the identity matrix, so no&lt;br /&gt;
transformation takes place. It is changed during structure alignment&lt;br /&gt;
(e.g. align and super). By hand, it can be changed with the commands&lt;br /&gt;
rotate, translate, and origin.&lt;br /&gt;
&lt;br /&gt;
It can be copied to other objects ([[matrix_copy]]) and reset to identity ([[matrix_reset]]). With&lt;br /&gt;
[[get_object_matrix]], the current matrix can be read out.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[rotate]], [[translate]], [[origin]], [[get_object_matrix]], [[matrix_copy]], [[matrix_reset]], [[align]], [[super]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced Issues]]&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Model_Space_and_Camera_Space&amp;diff=6974</id>
		<title>Model Space and Camera Space</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Model_Space_and_Camera_Space&amp;diff=6974"/>
		<updated>2010-09-07T09:56:40Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'Objects are defined in a Cartesian coordinate system, i.e. as xyz coordinates for each atom (or surface point or corner or...). This coordinate system is model space. To make obj…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Objects are defined in a Cartesian coordinate system, i.e. as xyz&lt;br /&gt;
coordinates for each atom (or surface point or corner or...). This&lt;br /&gt;
coordinate system is model space. To make objects visible, PyMOL&lt;br /&gt;
places a &amp;quot;camera&amp;quot; such that it sees most of the molecule. The picture&lt;br /&gt;
that is shown on the screen is the image that is taken by the&lt;br /&gt;
camera. Initially, after loading an object, the camera is placed such&lt;br /&gt;
that it looks on the object parallel to the z axis. x and y axes are&lt;br /&gt;
horizontal respectively vertical. In the beginning, the axes&lt;br /&gt;
correspond to the physical directions of the screen: x and y are&lt;br /&gt;
horizontal /vertical, z is perpendicular to the screen.  To change the&lt;br /&gt;
view, normally the camera is moved: view of all the objects is changed&lt;br /&gt;
simultaneously, the objects are not moved relative to each&lt;br /&gt;
other. After changing the view, x, y and z axes don't correspond to&lt;br /&gt;
the directions of the screen anymore.&lt;br /&gt;
&lt;br /&gt;
turn, move, center, zoom, orient and mouse action in viewing mode move the&lt;br /&gt;
camera in object space.&lt;br /&gt;
&lt;br /&gt;
For easy description of object movement relative to the camera, an&lt;br /&gt;
additional coordinate system is defined: Camera space. The camera is&lt;br /&gt;
situated in the origin of camera space, x and y are horizontal&lt;br /&gt;
respectively vertical and z is the viewing direction. Camera space&lt;br /&gt;
always corresponds to the directions of the screen.&lt;br /&gt;
&lt;br /&gt;
The relation of camera space and model space is described in the view matrix. (See&lt;br /&gt;
get_view). &lt;br /&gt;
&lt;br /&gt;
Changing the coordinates in model space is only necessary when objects shall&lt;br /&gt;
be moved relative to each other or when the transformed coordinates&lt;br /&gt;
are to be written into a file. &lt;br /&gt;
&lt;br /&gt;
Model space coordinates can be changed with the commands rotate and&lt;br /&gt;
translate, transform_selection or with the mouse in editing mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Space and File saving ==&lt;br /&gt;
&lt;br /&gt;
When  model coordinates are saved (e.g. as a pdb file), PyMOL uses&lt;br /&gt;
model space coordinates. In contrast, when an image is saved as povray&lt;br /&gt;
or vrml, camera space coordinates are used. When image files in model&lt;br /&gt;
space coordinates are needed, first choose colors and representations&lt;br /&gt;
as needed, then align camera space to model space:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set_view (\&lt;br /&gt;
     1,    0,    0,\&lt;br /&gt;
     0,    1,    0,\&lt;br /&gt;
     0,    0,    1,\&lt;br /&gt;
     0,    0,    0,\&lt;br /&gt;
     0,    0,    0,\&lt;br /&gt;
     0,    300,  1 )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After setting the view, the molecule will probably be out of sight but&lt;br /&gt;
anyway it will be saved to the file. This can be used e.g. to receive&lt;br /&gt;
a list of surface points in model space.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[turn]], [[move]], [[center]], [[zoom]], [[orient]], [[rotate]], [[translate]], [[Transform_selection]], [[Get_View]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced Issues|Camera Space/Model Space]]&lt;br /&gt;
[[Category:Concepts|Camera Space/Model Space]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Selection-expressions&amp;diff=9741</id>
		<title>Selection-expressions</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Selection-expressions&amp;diff=9741"/>
		<updated>2010-09-02T08:39:58Z</updated>

		<summary type="html">&lt;p&gt;Karo: Category added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Selection-expressions&lt;br /&gt;
&lt;br /&gt;
Selection-expressions stand for lists of atoms in arguments that are subject to PyMOL commands. You can name the selections to facilitate their re-use, or you can specify them anonymously (without names). Object and selection names may include the upper or lower case characters A/a to Z/z, numerals 0 to 9, and the underscore character (_). Characters to avoid include:&lt;br /&gt;
&lt;br /&gt;
! @ # $ % ^ &amp;amp;* ( ) ' &amp;quot; [ ] { } \ | ~ ` &amp;lt;&amp;gt; . ? / &lt;br /&gt;
&lt;br /&gt;
Selection-expressions describe the class of atoms you are referencing. Most of them require identifiers to complete the specification. For example, the selector resi references biopolymer residues by sequence number, and the identifier gives the number. The selector name references atoms according to the names described in the PDB, and the identifier gives the name (ca for alpha carbons, cb for beta carbons, etc). A handful of selection-expressions don't require identifiers, but most do.&lt;br /&gt;
&lt;br /&gt;
PyMOL uses several logical operators to increase the generality or specificity of selection-expressions. Logical combinations of selectors can get complex, so PyMOL accepts short forms and macros that express them with a minimum of keystrokes. This section describes named-selections, and then gives the syntax for making selections in a progression from simple one-word selectors to complex combinations of selectors, using macros and short forms.&lt;br /&gt;
&lt;br /&gt;
[[Category:Selecting|Selection Expressions]]&lt;br /&gt;
[[Category:Working_with_Selections|Selection Expressions]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Surface&amp;diff=10692</id>
		<title>Talk:Surface</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Surface&amp;diff=10692"/>
		<updated>2010-08-31T12:23:29Z</updated>

		<summary type="html">&lt;p&gt;Karo: Help when no surface is shown.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== No surface?==&lt;br /&gt;
If you find unwanted holes in your surface or not all atoms are shown as surface (e.g. ligands), it might be due to the ignore [[flag]] or to the [[surface_mode]]. Maybe this helps:&lt;br /&gt;
&lt;br /&gt;
http://www.mail-archive.com/pymol-users@lists.sourceforge.net/msg05586.html&lt;br /&gt;
&lt;br /&gt;
http://www.mail-archive.com/pymol-users@lists.sourceforge.net/msg00136.html&lt;br /&gt;
&lt;br /&gt;
With my examples, only the flag helped and I didn't really understand what's going on. Maybe somebody else wants to put this in the page. --[[User:Karo|Karo]] 12:23, 31 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Simple_Scripting&amp;diff=132</id>
		<title>Talk:Simple Scripting</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Simple_Scripting&amp;diff=132"/>
		<updated>2010-08-05T11:24:55Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'What is the advantage of defining a new command in a script over immediate execution of the commands when the script is run? I usually write my scripts without cmd.extend and I w…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;What is the advantage of defining a new command in a script over immediate execution of the commands when the script is run? I usually write my scripts without cmd.extend and I would like to know what I am missing...&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9607</id>
		<title>Running Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9607"/>
		<updated>2010-08-05T11:20:34Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short description for beginners on how to run scripts in PyMOL, e.g. from the [[:Category:Script_Library|Script Library]]. For help on writing scripts, look here: [[Simple_Scripting]], [[Advanced_Scripting]].&lt;br /&gt;
&lt;br /&gt;
== Saving the source code ==&lt;br /&gt;
&lt;br /&gt;
First, you have to save the source code. Copy the text in the box to a&lt;br /&gt;
text editor and save it in text format under an arbitrary file name,&lt;br /&gt;
let's say we save it as script.txt in the PyMOL working directory.&lt;br /&gt;
&lt;br /&gt;
== Python or Pymol? ==&lt;br /&gt;
&lt;br /&gt;
Then, you have to find out wheter the script you want to run is a&lt;br /&gt;
python script or a PyMOL script. Look at the source code: if the lines&lt;br /&gt;
look just as you type them in the command line in PyMOL, it is a PyMOL&lt;br /&gt;
script. Run it with @, in our example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. You can find examples in the script library: &lt;br /&gt;
[[Split_Movement]] (loads a structure from the internet and moves parts in different directions), &lt;br /&gt;
[[Show_charged]] (Selects charged residues and highlights them). &lt;br /&gt;
Any PyMOL log file would also be an example for a pymol script.&lt;br /&gt;
&lt;br /&gt;
If, in contrast, you find words as &amp;quot;import&amp;quot; in one of the first lines,&lt;br /&gt;
or &amp;quot;def&amp;quot; or &amp;quot;cmd&amp;quot; in the text body, you have a python script. Run it&lt;br /&gt;
with run. In the example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. &lt;br /&gt;
&lt;br /&gt;
Most python scripts in the script library don't start action&lt;br /&gt;
immediately but define a new command instead. You first have to run&lt;br /&gt;
the script and then you can use the command. Many script pages provide&lt;br /&gt;
hints for usage. If not, look at the bottom of the script for a line like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.extend(&amp;quot;new_command&amp;quot;,new_command)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The text in quotation marks is the new command. Enter it in the PyMOL command line.&lt;br /&gt;
 &lt;br /&gt;
You can find many examples for python scripts in the script library, e.g.:&lt;br /&gt;
[[Color_Objects]] (colors all the objects differently)&lt;br /&gt;
[[Resicolor]] (Colors residues according to their property)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example: Color_Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run color_obj.py&lt;br /&gt;
PyMOL&amp;gt;color_obj &lt;br /&gt;
 &lt;br /&gt;
Colouring objects using PyMOL defined colours&lt;br /&gt;
 &lt;br /&gt;
   obj_0001 red&lt;br /&gt;
   obj_0002 green&lt;br /&gt;
   obj_0003 blue&lt;br /&gt;
   obj_0004 yellow&lt;br /&gt;
   obj_0005 violet&lt;br /&gt;
   obj_0006 cyan&lt;br /&gt;
   obj_0007 salmon&lt;br /&gt;
   obj_0008 lime&lt;br /&gt;
   obj_0009 pink&lt;br /&gt;
   obj_0010 slate&lt;br /&gt;
   obj_0011 magenta&lt;br /&gt;
   obj_0012 orange&lt;br /&gt;
   obj_0013 marine&lt;br /&gt;
   obj_0014 olive&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9606</id>
		<title>Running Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9606"/>
		<updated>2010-08-05T11:20:13Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short description for beginners on how to run scripts in PyMOL, e.g. from the [[:Category:Script_Library|Script Library]]. For help on writing scripts, look here: [[Simple_Scripting]], [[Advanced_Scripting]].&lt;br /&gt;
&lt;br /&gt;
== Saving the source code ==&lt;br /&gt;
&lt;br /&gt;
First, you have to save the source code. Copy the text in the box to a&lt;br /&gt;
text editor and save it in text format under an arbitrary file name,&lt;br /&gt;
let's say we save it as script.txt in the PyMOL working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python or Pymol? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, you have to find out wheter the script you want to run is a&lt;br /&gt;
python script or a PyMOL script. Look at the source code: if the lines&lt;br /&gt;
look just as you type them in the command line in PyMOL, it is a PyMOL&lt;br /&gt;
script. Run it with @, in our example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. You can find examples in the script library: &lt;br /&gt;
[[Split_Movement]] (loads a structure from the internet and moves parts in different directions), &lt;br /&gt;
[[Show_charged]] (Selects charged residues and highlights them). &lt;br /&gt;
Any PyMOL log file would also be an example for a pymol script.&lt;br /&gt;
&lt;br /&gt;
If, in contrast, you find words as &amp;quot;import&amp;quot; in one of the first lines,&lt;br /&gt;
or &amp;quot;def&amp;quot; or &amp;quot;cmd&amp;quot; in the text body, you have a python script. Run it&lt;br /&gt;
with run. In the example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. &lt;br /&gt;
&lt;br /&gt;
Most python scripts in the script library don't start action&lt;br /&gt;
immediately but define a new command instead. You first have to run&lt;br /&gt;
the script and then you can use the command. Many script pages provide&lt;br /&gt;
hints for usage. If not, look at the bottom of the script for a line like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.extend(&amp;quot;new_command&amp;quot;,new_command)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The text in quotation marks is the new command. Enter it in the PyMOL command line.&lt;br /&gt;
 &lt;br /&gt;
You can find many examples for python scripts in the script library, e.g.:&lt;br /&gt;
[[Color_Objects]] (colors all the objects differently)&lt;br /&gt;
[[Resicolor]] (Colors residues according to their property)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example: Color_Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run color_obj.py&lt;br /&gt;
PyMOL&amp;gt;color_obj &lt;br /&gt;
 &lt;br /&gt;
Colouring objects using PyMOL defined colours&lt;br /&gt;
 &lt;br /&gt;
   obj_0001 red&lt;br /&gt;
   obj_0002 green&lt;br /&gt;
   obj_0003 blue&lt;br /&gt;
   obj_0004 yellow&lt;br /&gt;
   obj_0005 violet&lt;br /&gt;
   obj_0006 cyan&lt;br /&gt;
   obj_0007 salmon&lt;br /&gt;
   obj_0008 lime&lt;br /&gt;
   obj_0009 pink&lt;br /&gt;
   obj_0010 slate&lt;br /&gt;
   obj_0011 magenta&lt;br /&gt;
   obj_0012 orange&lt;br /&gt;
   obj_0013 marine&lt;br /&gt;
   obj_0014 olive&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Category_talk:Script_Library&amp;diff=4136</id>
		<title>Category talk:Script Library</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Category_talk:Script_Library&amp;diff=4136"/>
		<updated>2010-08-05T11:19:16Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Requests =&lt;br /&gt;
Please place your PyMOL script requests here.  A few other people might have the same request and someone might just code it up for free (viz. all these other scripts).  There are no guarantees that someone will write your script, but it doesn't hurt asking.&lt;br /&gt;
&lt;br /&gt;
'''ExampleScriptTitle'''&lt;br /&gt;
:: Example text of what the new awesome script is supposed to do in PyMOL.  Consider posting some contact information, so once the script is posted you are apprised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Instruction request==&lt;br /&gt;
Would it be possible to add short instructions to category page for new users how to run scripts in pymol...(?)&lt;br /&gt;
&lt;br /&gt;
Maybe this helps: [[Running_Scripts]] (I didn't dare to edit the nice yellow table :-) ) --[[User:Karo|Karo]] 11:19, 5 August 2010 (UTC) &lt;br /&gt;
&lt;br /&gt;
= Policy =&lt;br /&gt;
== Rules ==&lt;br /&gt;
We want the script library to be as valuable as possible to the public.  Therefore, please follow these rules when posting code to the wiki:&lt;br /&gt;
* Only post code if you have the legal right to do so&lt;br /&gt;
* All posted code must be released under some [http://www.opensource.org/licenses|open source license] or freer (public domain).&lt;br /&gt;
** Authors may maintain copyright&lt;br /&gt;
** Only post links to code that is not open source licensed, do not copy it onto the wiki&lt;br /&gt;
&lt;br /&gt;
== Depositing Scripts ==&lt;br /&gt;
* Create a new page for your script&lt;br /&gt;
* Please provide&lt;br /&gt;
** an overview of what the script does&lt;br /&gt;
** any usage comments or hints&lt;br /&gt;
** the source code&lt;br /&gt;
* Please add the following to the bottom of your new page:&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Script_Library]]&lt;br /&gt;
[[Category:PUT_SUBCATEGORY_NAME_HERE]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General Notes =&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Feel free to add scripts (see [[#Rules|rules]] below).&lt;br /&gt;
* Feel free to add new categories&lt;br /&gt;
* You can make script requests on this page's discussion page&lt;br /&gt;
* [http://github.com/jlec/Pymol-script-repo GIT Repository] of all our scripts: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;git clone git://github.com/jlec/Pymol-script-repo.git&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GitHub for Pymol-scripts==&lt;br /&gt;
I created a github for the pymol scripts. I think this is a good way to to collect and enlarge the collection of scripts. The repo is public accessible so contribute. If you need help on git just write me an email.&lt;br /&gt;
&lt;br /&gt;
http://github.com/jlec/Pymol-script-repo&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9605</id>
		<title>Running Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Running_Scripts&amp;diff=9605"/>
		<updated>2010-08-05T11:05:42Z</updated>

		<summary type="html">&lt;p&gt;Karo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short description for beginners on how to run scripts in PyMOL, e.g. from the [[:Category:Script_Library|Script Library]]. For help on writing scripts, look here: [[Simple_Scripting]], [[Advanced_Scripting]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Saving the source code ==&lt;br /&gt;
&lt;br /&gt;
First, you have to save the source code. Copy the text in the box to a&lt;br /&gt;
text editor and save it in text format under an arbitrary file name,&lt;br /&gt;
let's say we save it as script.txt in the PyMOL working directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python or Pymol? ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, you have to find out wheter the script you want to run is a&lt;br /&gt;
python script or a PyMOL script. Look at the source code: if the lines&lt;br /&gt;
look just as you type them in the command line in PyMOL, it is a PyMOL&lt;br /&gt;
script. Run it with @, in our example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
@script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. You can find examples in the script library: &lt;br /&gt;
[[Split_Movement]] (loads a structure from the internet and moves parts in different directions), &lt;br /&gt;
[[Show_charged]] (Selects charged residues and highlights them). &lt;br /&gt;
Any PyMOL log file would also be an example for a pymol script.&lt;br /&gt;
&lt;br /&gt;
If, in contrast, you find words as &amp;quot;import&amp;quot; in one of the first lines,&lt;br /&gt;
or &amp;quot;def&amp;quot; or &amp;quot;cmd&amp;quot; in the text body, you have a python script. Run it&lt;br /&gt;
with run. In the example, type &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run script.txt &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in the PyMOL command line. &lt;br /&gt;
&lt;br /&gt;
Most python scripts in the script library don't start action&lt;br /&gt;
immediately but define a new command instead. You first have to run&lt;br /&gt;
the script and then you can use the command. Many script pages provide&lt;br /&gt;
hints for usage. If not, look at the bottom of the script for a line like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cmd.extend(&amp;quot;new_command&amp;quot;,new_command)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The text in quotation marks is the new command. Enter it in the PyMOL command line.&lt;br /&gt;
 &lt;br /&gt;
You can find many examples for python scripts in the script library, e.g.:&lt;br /&gt;
[[Color_Objects]] (colors all the objects differently)&lt;br /&gt;
[[Resicolor]] (Colors residues according to their property)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example: Color_Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run color_obj.py&lt;br /&gt;
PyMOL&amp;gt;color_obj &lt;br /&gt;
 &lt;br /&gt;
Colouring objects using PyMOL defined colours&lt;br /&gt;
 &lt;br /&gt;
   obj_0001 red&lt;br /&gt;
   obj_0002 green&lt;br /&gt;
   obj_0003 blue&lt;br /&gt;
   obj_0004 yellow&lt;br /&gt;
   obj_0005 violet&lt;br /&gt;
   obj_0006 cyan&lt;br /&gt;
   obj_0007 salmon&lt;br /&gt;
   obj_0008 lime&lt;br /&gt;
   obj_0009 pink&lt;br /&gt;
   obj_0010 slate&lt;br /&gt;
   obj_0011 magenta&lt;br /&gt;
   obj_0012 orange&lt;br /&gt;
   obj_0013 marine&lt;br /&gt;
   obj_0014 olive&lt;br /&gt;
   ...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Running_Scripts&amp;diff=126</id>
		<title>Talk:Running Scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Running_Scripts&amp;diff=126"/>
		<updated>2010-08-05T10:55:53Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'As I needed quite a while until I found out how to run scripts I wanted to help others to save their time. The examples from the script library I linked in the text should work (…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As I needed quite a while until I found out how to run scripts I wanted to help others to save their time. The examples from the script library I linked in the text should work (at least they did when I tested them).--[[User:Karo|Karo]] 10:55, 5 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Split_Movement&amp;diff=10690</id>
		<title>Talk:Split Movement</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Split_Movement&amp;diff=10690"/>
		<updated>2010-08-05T10:54:45Z</updated>

		<summary type="html">&lt;p&gt;Karo: Created page with 'I changed &amp;quot;load&amp;quot; to &amp;quot;fetch&amp;quot;, so that the program will work even if 1FJ1.pdb is not in the working directory. With async, the interpreter waits for the molecule to be loaded befor…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I changed &amp;quot;load&amp;quot; to &amp;quot;fetch&amp;quot;, so that the program will work even if 1FJ1.pdb is not in the working directory. With async, the interpreter waits for the molecule to be loaded before executing the next command.--[[User:Karo|Karo]] 10:54, 5 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Karo</name></author>
	</entry>
</feed>