<?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=Jedgold</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=Jedgold"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php/Special:Contributions/Jedgold"/>
	<updated>2026-05-25T11:27:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10472</id>
		<title>Stereo 3D Display Options</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10472"/>
		<updated>2012-09-12T17:26:58Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* iZ3D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for aggregating the latest know-how and links to current Stereo 3D display options best suited for molecular graphics applications like PyMOL.  Please strive to provide objective factual information based on first-hand experiences while using the displays for real work and teaching.&lt;br /&gt;
&lt;br /&gt;
Let's figure out together what stereo solutions work well in this brave new post-CRT world!&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
* '''[[#Active_Stereo_3D|Active Stereo 3D]]''' -- requires expensive and/or bulky shutter glasses.  For decades, this has been the standard solution for stereo 3D molecular visualization on the desktop.&lt;br /&gt;
* '''[[#Passive_Stereo_3D|Passive Stereo 3D]]''' -- requires inexpensive lightweight polarized glasses.  This is the standard solution for delivering stereo 3D to audiences of more than a small group of people.&lt;br /&gt;
* '''[[#Autostereoscopic_3D|Autostereoscopic 3D]]''' -- means that no glasses are required.  However, current autostereoscopic displays tend do not to work well for molecular graphics due to their inability to faithfully represent fine detail such as thin bonds and wire meshes.&lt;br /&gt;
&lt;br /&gt;
== Active Stereo 3D (High-Refresh) Displays ==&lt;br /&gt;
&lt;br /&gt;
This solution would be analogous to using desktop CRT monitors with shutter glasses.  &lt;br /&gt;
&lt;br /&gt;
=== LCD Displays (120 Hz)===&lt;br /&gt;
&lt;br /&gt;
* [http://us.acer.com/ac/en/US/content/model/ET.UG5HP.001 ACER GD235HZ]. 1920x1080 120Hz 2ms .&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com/3d-products/sa2311w/ Planar SA2311W].  This is a high-end 23&amp;quot; 3D-ready monitor.  The resolution is 1900x1280 and has a 2ms refresh time.  This worked well for us.&lt;br /&gt;
&lt;br /&gt;
* [http://www.engadget.com/2008/08/26/viewsonic-shows-off-a-120hz-lcd-display-for-computers ViewSonic VX2265wm] (VX2268wm in Europe) - [http://www.google.com/products?q=ViewSonic%20VX2265wm&amp;amp;btnG=Search+Froogle&amp;amp;lmode=unknown On the market] and [http://sourceforge.net/mailarchive/forum.php?thread_name=DED5C399-7534-4D3D-8B19-E3676C4F1867%40weizmann.ac.il&amp;amp;forum_name=pymol-users verified working under FC 12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.nvidia.com/object/product_GeForce_3D_VisionBundle_us.html Samsung 2233RZ] - On the market. Quad buffered stereo in Linux works with a [http://en.wikipedia.org/wiki/Nvidia_Quadro G8x based graphics core] or better Quadro FX card with the 3 pin mini din stereo connector (currently, the cheapest card that works in Linux is the Quadro FX 3700), 195.22 (or newer) nvidia linux binary driver, and the Nvidia 3d vision kit. Even though the Quadro FX 1400/3450/4000 cards have a 3 pin stereo connector, these will not work with Nvidia 3D vision since these have core versions less than G8x. For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* USB only based stereo with the 3D vision kit works only in MS Windows (e.g. with a low end Quadro FX 370 that has no 3 pin mini din stereo connector). For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* The 195.22 Nvidia linux drivers do not support the Samsung 2233RZ in Stereo mode 3 or 10 for quad buffered stereo with other stereo kits, emitters, or goggles such as those purchased from NuVision, Stereographics, or Edimensional. You cannot use NuVision, Stereographics, or Edimensional goggles with the Nvidia 3D Vision emitters. - SP&lt;br /&gt;
&lt;br /&gt;
* NVidia 3D NVision kit only supports DirectX software for GeForce (gaming cards) on Windows; users are reporting that they are not able to run PyMOL with NVision with these cards. Get a newer model low end quadro (&amp;gt; G8x graphics core) without the 3 pin mini din (e.g. Quadro 370) or with the 3 pin mini din (e.g. Quadro 3700) for Windows.&lt;br /&gt;
&lt;br /&gt;
==== NVidia NVision 3D Setup ====&lt;br /&gt;
The NVidia 3D NVision setup provides a very nice 3D experience.  You need the following to enable PyMOL to show NVision 3D on Windows.  Please review the hardware and software requirements before moving on to the installation and setup.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Hardware=====&lt;br /&gt;
* Monitor: 120 Hz LCD: a [http://www.samsung.com/us/consumer/office/monitors/specialty/LS22CMFKFV/ZA/index.idx?pagetype=prd_detail&amp;amp;returnurl=|Samsung 2233RZ] or a [http://www.viewsonic.com/products/desktop-monitors/lcd/x-series/vx2265wm-fuhzion-lcd.htm|ViewSonic Fuhzion vx2265wm]&lt;br /&gt;
* Cable: [http://images.google.com/imgres?imgurl=http://www.logicsupply.com/images/dvi_connector_types.gif&amp;amp;imgrefurl=http://www.logicsupply.com/faq&amp;amp;usg=__G2BLaVTqBN4ie8fz_LJR1zc3zBc=&amp;amp;h=261&amp;amp;w=440&amp;amp;sz=15&amp;amp;hl=en&amp;amp;start=0&amp;amp;sig2=_hFM6ICIsxPq5WIAv8BCqg&amp;amp;zoom=1&amp;amp;tbnid=NIcKIs_BW_2rmM:&amp;amp;tbnh=135&amp;amp;tbnw=228&amp;amp;ei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;prev=/images%3Fq%3Ddual%2Blink%2Bdvi%26hl%3Den%26biw%3D1475%26bih%3D1042%26gbv%3D2%26tbs%3Disch:1&amp;amp;itbs=1&amp;amp;iact=hc&amp;amp;vpx=136&amp;amp;vpy=323&amp;amp;dur=3153&amp;amp;hovh=173&amp;amp;hovw=292&amp;amp;tx=227&amp;amp;ty=74&amp;amp;oei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;esq=1&amp;amp;page=1&amp;amp;ndsp=30&amp;amp;ved=1t:429,r:6,s:0 Dual Link DVI cable]; most  120Hz monitors will come with this cable--regardless, the cable is necessary&lt;br /&gt;
* Quadro Card: recent   [http://www.nvidia.com/page/quadrofx_family.html Quadro]   series graphics card (not a GeForce card) such as an FX 380 or 570 or later.  The GeForce cards do not support windowed openGL stereo, so we do not support these series of cards for the NVision 3D solution. For linux, you must have a quadro card that has a 3 pin mini din connector. The cheapest/oldest card that will work with linux is the Quadro 3700.&lt;br /&gt;
** '''WARNING''': The Quadro FX1400 does not support 3d vision stereo on Windows7 or Linux.&lt;br /&gt;
* Emitter: [http://www.nvidia.com/object/3d-vision-main.html|GeForce 3D Vision] hardware kit (an emitter with 3D shutter glasses). For Linux, make sure your kit comes with the 3 pin mini din &amp;quot;VESA&amp;quot; to 2.5mm stereo cable to connect from the stereo output on the video card into the emitter.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Software=====&lt;br /&gt;
* Windows XP 32 bit (testing other OSs soon!), Windows Vista&lt;br /&gt;
* Latest Quadro [http://www.nvidia.com/Download/index.aspx?lang=en-us|Graphics Drivers from NVidia].&lt;br /&gt;
* Latest [http://www.nvidia.com/Download/index.aspx?lang=en-us|3D Graphics drivers for the NVision system]--under '''Product Type''' choose '''3D Vision'''.&lt;br /&gt;
&lt;br /&gt;
=====Installation Instructions=====&lt;br /&gt;
======System Setup======&lt;br /&gt;
# Install the Quadro '''Graphics Drivers''' and reboot your machines&lt;br /&gt;
# Install the NVision Installation, hooking up the 3D emitter and glasses as directed in the instructions&lt;br /&gt;
## Make sure the 3D demos work&lt;br /&gt;
## Complete the '''3D Vision Drivers''' install (I had errors/warnings about old drivers but this did't matter)&lt;br /&gt;
# Specify how to drive the 3D by, click on&lt;br /&gt;
:::'''Windows Start Button''' &amp;gt; '''Control Panel''' &amp;gt; '''NVidia Control Panel''' &amp;gt; '''Manage 3D Settings''' (tab) &amp;gt; '''Global Settings''' (tab on the right) &amp;gt; '''Base Profile''' (tab).  Then, under '''Settings''' choose '''Stereo - Display Mode'''.  Next, select '''Generic Active Stereo (with NVidia IR Emitter)'''.  If you have a DLP monitor/TV choose the corresponding DLP option.  You '''must''' also set '''Stereo - Enable''' to '''on'''. &lt;br /&gt;
&lt;br /&gt;
======Running PyMOL======&lt;br /&gt;
That's it!  PyMOL should now work in Quad Buffered 3D Stereo using the NVidia 3D NVision system.  To run PyMOL in 3D mode on:&lt;br /&gt;
*Windows&lt;br /&gt;
:: '''Start &amp;gt; PyMOL &amp;gt; PyMOL &amp;gt; PyMOL 3D Launch (last menu option) &amp;gt; PyMOL Stereo (Quad Buffered 3D)'''&lt;br /&gt;
*Linux&lt;br /&gt;
:: pymol -S -t 1&lt;br /&gt;
* Mac&lt;br /&gt;
:: Sorry, at this time the NVision system is not known to work on Macs.&lt;br /&gt;
&lt;br /&gt;
=== DLP Projection Televisions ===&lt;br /&gt;
&lt;br /&gt;
Projection televisions tend to be too large and fuzzy for desktop use.  Also, a band of about 20 pixels around on the edge of the display are invisible, and this limitation cannot be eliminated through overscan since the image must be scanned at native resolution in order to support stereo 3D.  The workaround is to shrink the PyMOL window to cover the visible portion of the screen.  It is worth noting that true 3D-capable LCDs (as distinct from 3D-capable HDTVs) do not suffer from this problem.&lt;br /&gt;
&lt;br /&gt;
Aside from the above concerns, the quality of the DLP stereo 3D effect is exceptional:  there is absolutely no ghosting or cross-talk between the two images. &lt;br /&gt;
&lt;br /&gt;
* [http://pages.samsung.com/us/dlp3d Samsung 3D-Ready DLP HDTVs] - work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Quadro driver support is still lacking as of Feb. 1st, 2009 - WLD&lt;br /&gt;
&lt;br /&gt;
* [http://www.mitsubishi-tv.com/ Mitsubishi 3D-Ready DLP HDTVs] - not yet tested, but are expected to work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  - WLD&lt;br /&gt;
&lt;br /&gt;
See [http://www.3dmovielist.com/3dhdtvs.html The 3D HDTV List] for more 3D-capable HDTV options.&lt;br /&gt;
&lt;br /&gt;
== Passive Stereo 3D Displays == &lt;br /&gt;
&lt;br /&gt;
=== One Piece Multi-layer LCD Displays ===&lt;br /&gt;
&lt;br /&gt;
Affordable!&lt;br /&gt;
&lt;br /&gt;
==== Zalman ====&lt;br /&gt;
'''iZ3D, the original supplier of Zalman display drivers has ceased operation and support as of 31 July 2012. DO NOT PURCHASE THESE MONITORS WITHOUT FURTHER CONFIRMATION of display support, the iZ3D support (required drivers, etc) is not activatable. If you do have further information, please post it here.''' [[User:Jedgold|Jedgold]] 12:21, 12 September 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
* [http://www.zalman.co.kr/eng/product/Product_read.asp?Idx=219 Zalman 22-inch 3D LCD monitor] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Great stereo quality provided that all drawn lines are at least 2 pixels thick.  Menus are a bit awkward to use while in stereo mode, but even so, this 650 USD display provides excellent 3D molecular visualization in both full-screen in windowed modes.  - WLD  ('''The Zalman ZM-M220W is DeLano Scientific's RECOMMENDED SOLUTION as of Feb 11, 2009!''').&lt;br /&gt;
* [http://www.zalman.co.kr/Eng/product/Product_Read.asp?idx=391 Zalman 24-inch 3D LCD monitor] - also works with PyMOL 1.2b3 &amp;amp; later under LINUX (Centos 5 x86_64 plain kernel + NVidia driver from ELRepo). I'm using an NVidia Quadro FX 580 (G96GL) graphics card (£125).  Monitor cost around £350. PyMOL automagically detects that quad buffered stereo is available on startup.--[[User:Bosmith|Bosmith]] 16:32, 2 December 2010 (UTC)&lt;br /&gt;
* [http://www.lg.com/us/computer-products/monitors/LG-led-monitor-D2342P-PN.jsp LG D2342P-PN]&lt;br /&gt;
===== On Linux =====&lt;br /&gt;
* setup by editing the xorg.conf file:&lt;br /&gt;
    Option &amp;quot;Stereo&amp;quot; &amp;quot;7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
in the Screen section of xorg.conf and an additional:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
        Option         &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
* launch using:&lt;br /&gt;
    pymol -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Windows =====&lt;br /&gt;
# From the Start Menu: In the &amp;quot;PyMOL&amp;quot; folder, go into the &amp;quot;Stereo 3D Launch&amp;quot; subfolder, and select &amp;quot;PyMOL Zalman 3D (By Row)&amp;quot;. You might want to control-drag a copy of that shortcut on to your desktop in order to drag &amp;amp; drop content files onto it for stereo 3D visualization&lt;br /&gt;
# From the Command Line:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;C:\Program Files\DeLano Scientific\PyMOL\PyMOLWin.exe&amp;quot; -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Mac =====&lt;br /&gt;
# MacPyMOL: Copy and rename the &amp;quot;MacPyMOL&amp;quot; application bundle to &amp;quot;MacPyMOLZalman&amp;quot;. You can then double-click on the MacPyMOLZalman icon or drop data files directly onto it to visualize content in the Zalman stereo 3D mode.&lt;br /&gt;
# PyMOL X11 Hybrid Mode: Copy and rename the &amp;quot;MacPyMOL&amp;quot; appplication bundle to &amp;quot;PyMOLX11Zalman&amp;quot;. After launching X11, you can then double-click on the PyMOLX11Zalman icon or drop data files directly onto it to visualize that content in the Zalman stereo 3D mode.&lt;br /&gt;
&lt;br /&gt;
''For all platforms, remember to toggle stereo on and off using the &amp;quot;set stereo&amp;quot; command:''&lt;br /&gt;
    set stereo, on&lt;br /&gt;
&lt;br /&gt;
==== iZ3D ====&lt;br /&gt;
* [http://www.iz3d.com IZ3D] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  However, this display exhibits far too much cross-talk and interference between the two stereo images.  Not suitable for professional use.  - WLD&lt;br /&gt;
&lt;br /&gt;
* IZ3D is closed as of 31 July 2012, and will not offer support to their products. [[User:Jedgold|Jedgold]] 12:26, 12 September 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
=== Mirror-based Multi-LCD Solutions ===&lt;br /&gt;
&lt;br /&gt;
Expensive!&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com Planar3D] &amp;quot;I have used these displays with nVidia Quadro graphics cards under both Windows and Linux running both PyMOL and Maestro.  They work well, and the stereo quality is excellent!&amp;quot; - WLD.&lt;br /&gt;
* [http://www.inition.co.uk/inition/product.php?URL_=product_stereovis_omnia_mimo&amp;amp;SubCatID_=3 Omnia MIMO]&lt;br /&gt;
&lt;br /&gt;
== Autostereoscopic LCD Displays ==&lt;br /&gt;
&lt;br /&gt;
Some autostereoscopic displays have the ability to switch between 2D and 3D display modes.  Others are built for 3D only.&lt;br /&gt;
&lt;br /&gt;
* [http://www.dti3d.com Dimension Technologies Inc.]&lt;br /&gt;
* [http://www.seereal.com SeeReal Technologies] &lt;br /&gt;
* [http://www.newsight.com/3d-products/displays.html NewSight Corp.]&lt;br /&gt;
&lt;br /&gt;
== Stereo 3D Projectors ==&lt;br /&gt;
&lt;br /&gt;
Although these displays require shutter glasses out of the box, when combined with the adapters below and a special &amp;quot;silvered&amp;quot; screen, they can be used to project Passive Stereo 3D to a large audience.&lt;br /&gt;
&lt;br /&gt;
=== Active Stereo 3D DLP Projectors ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.depthq.com DepthQ Stereoscopic] &amp;quot;The original DepthQ gave a very good stereo 3D effort with PyMOL, but I haven't seen their latest products.&amp;quot; - WLD.&lt;br /&gt;
* [http://www.christiedigital.com/AMEN/Products/christieMirageS4K.htm Christie MIRAGE S+4K SXGA+ 6500 LUMEN DLP™ STEREOSCOPIC PROJECTOR] &amp;quot;I have been very impressed with the stereo 3D effect produced by MIRAGE projectors equipped with StereoGraphic ZScreens running PyMOL under Windows with a high-end nVidia Quadro card.&amp;quot; - WLD.&lt;br /&gt;
&lt;br /&gt;
=== Passive Stereo 3D Adaptor Hardware for Active Stereo 3D Projectors ===&lt;br /&gt;
&lt;br /&gt;
These devices make it possible for a large audience to see projected stereo 3D using inexpensive polarized glasses.&lt;br /&gt;
&lt;br /&gt;
* [http://reald-corporate.com/scientific/projectorzscreen.asp RealD StereoGraphics Projection ZScreen]&lt;br /&gt;
&lt;br /&gt;
== Who Says What? ==&lt;br /&gt;
&lt;br /&gt;
If you provide a specific quote or endorsement above, please say who you are so that everyone can know the source of the information.&lt;br /&gt;
&lt;br /&gt;
* WLD = Warren L. DeLano of DeLano Scientific LLC&lt;br /&gt;
* SP = Sabuj Pattanayek of the Center For Structural Biology, Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Options]]&lt;br /&gt;
[[Category:Stereo_3D_Display]]&lt;br /&gt;
[[Category:Stereo]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10471</id>
		<title>Stereo 3D Display Options</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10471"/>
		<updated>2012-09-12T17:26:14Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Zalman */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for aggregating the latest know-how and links to current Stereo 3D display options best suited for molecular graphics applications like PyMOL.  Please strive to provide objective factual information based on first-hand experiences while using the displays for real work and teaching.&lt;br /&gt;
&lt;br /&gt;
Let's figure out together what stereo solutions work well in this brave new post-CRT world!&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
* '''[[#Active_Stereo_3D|Active Stereo 3D]]''' -- requires expensive and/or bulky shutter glasses.  For decades, this has been the standard solution for stereo 3D molecular visualization on the desktop.&lt;br /&gt;
* '''[[#Passive_Stereo_3D|Passive Stereo 3D]]''' -- requires inexpensive lightweight polarized glasses.  This is the standard solution for delivering stereo 3D to audiences of more than a small group of people.&lt;br /&gt;
* '''[[#Autostereoscopic_3D|Autostereoscopic 3D]]''' -- means that no glasses are required.  However, current autostereoscopic displays tend do not to work well for molecular graphics due to their inability to faithfully represent fine detail such as thin bonds and wire meshes.&lt;br /&gt;
&lt;br /&gt;
== Active Stereo 3D (High-Refresh) Displays ==&lt;br /&gt;
&lt;br /&gt;
This solution would be analogous to using desktop CRT monitors with shutter glasses.  &lt;br /&gt;
&lt;br /&gt;
=== LCD Displays (120 Hz)===&lt;br /&gt;
&lt;br /&gt;
* [http://us.acer.com/ac/en/US/content/model/ET.UG5HP.001 ACER GD235HZ]. 1920x1080 120Hz 2ms .&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com/3d-products/sa2311w/ Planar SA2311W].  This is a high-end 23&amp;quot; 3D-ready monitor.  The resolution is 1900x1280 and has a 2ms refresh time.  This worked well for us.&lt;br /&gt;
&lt;br /&gt;
* [http://www.engadget.com/2008/08/26/viewsonic-shows-off-a-120hz-lcd-display-for-computers ViewSonic VX2265wm] (VX2268wm in Europe) - [http://www.google.com/products?q=ViewSonic%20VX2265wm&amp;amp;btnG=Search+Froogle&amp;amp;lmode=unknown On the market] and [http://sourceforge.net/mailarchive/forum.php?thread_name=DED5C399-7534-4D3D-8B19-E3676C4F1867%40weizmann.ac.il&amp;amp;forum_name=pymol-users verified working under FC 12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.nvidia.com/object/product_GeForce_3D_VisionBundle_us.html Samsung 2233RZ] - On the market. Quad buffered stereo in Linux works with a [http://en.wikipedia.org/wiki/Nvidia_Quadro G8x based graphics core] or better Quadro FX card with the 3 pin mini din stereo connector (currently, the cheapest card that works in Linux is the Quadro FX 3700), 195.22 (or newer) nvidia linux binary driver, and the Nvidia 3d vision kit. Even though the Quadro FX 1400/3450/4000 cards have a 3 pin stereo connector, these will not work with Nvidia 3D vision since these have core versions less than G8x. For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* USB only based stereo with the 3D vision kit works only in MS Windows (e.g. with a low end Quadro FX 370 that has no 3 pin mini din stereo connector). For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* The 195.22 Nvidia linux drivers do not support the Samsung 2233RZ in Stereo mode 3 or 10 for quad buffered stereo with other stereo kits, emitters, or goggles such as those purchased from NuVision, Stereographics, or Edimensional. You cannot use NuVision, Stereographics, or Edimensional goggles with the Nvidia 3D Vision emitters. - SP&lt;br /&gt;
&lt;br /&gt;
* NVidia 3D NVision kit only supports DirectX software for GeForce (gaming cards) on Windows; users are reporting that they are not able to run PyMOL with NVision with these cards. Get a newer model low end quadro (&amp;gt; G8x graphics core) without the 3 pin mini din (e.g. Quadro 370) or with the 3 pin mini din (e.g. Quadro 3700) for Windows.&lt;br /&gt;
&lt;br /&gt;
==== NVidia NVision 3D Setup ====&lt;br /&gt;
The NVidia 3D NVision setup provides a very nice 3D experience.  You need the following to enable PyMOL to show NVision 3D on Windows.  Please review the hardware and software requirements before moving on to the installation and setup.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Hardware=====&lt;br /&gt;
* Monitor: 120 Hz LCD: a [http://www.samsung.com/us/consumer/office/monitors/specialty/LS22CMFKFV/ZA/index.idx?pagetype=prd_detail&amp;amp;returnurl=|Samsung 2233RZ] or a [http://www.viewsonic.com/products/desktop-monitors/lcd/x-series/vx2265wm-fuhzion-lcd.htm|ViewSonic Fuhzion vx2265wm]&lt;br /&gt;
* Cable: [http://images.google.com/imgres?imgurl=http://www.logicsupply.com/images/dvi_connector_types.gif&amp;amp;imgrefurl=http://www.logicsupply.com/faq&amp;amp;usg=__G2BLaVTqBN4ie8fz_LJR1zc3zBc=&amp;amp;h=261&amp;amp;w=440&amp;amp;sz=15&amp;amp;hl=en&amp;amp;start=0&amp;amp;sig2=_hFM6ICIsxPq5WIAv8BCqg&amp;amp;zoom=1&amp;amp;tbnid=NIcKIs_BW_2rmM:&amp;amp;tbnh=135&amp;amp;tbnw=228&amp;amp;ei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;prev=/images%3Fq%3Ddual%2Blink%2Bdvi%26hl%3Den%26biw%3D1475%26bih%3D1042%26gbv%3D2%26tbs%3Disch:1&amp;amp;itbs=1&amp;amp;iact=hc&amp;amp;vpx=136&amp;amp;vpy=323&amp;amp;dur=3153&amp;amp;hovh=173&amp;amp;hovw=292&amp;amp;tx=227&amp;amp;ty=74&amp;amp;oei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;esq=1&amp;amp;page=1&amp;amp;ndsp=30&amp;amp;ved=1t:429,r:6,s:0 Dual Link DVI cable]; most  120Hz monitors will come with this cable--regardless, the cable is necessary&lt;br /&gt;
* Quadro Card: recent   [http://www.nvidia.com/page/quadrofx_family.html Quadro]   series graphics card (not a GeForce card) such as an FX 380 or 570 or later.  The GeForce cards do not support windowed openGL stereo, so we do not support these series of cards for the NVision 3D solution. For linux, you must have a quadro card that has a 3 pin mini din connector. The cheapest/oldest card that will work with linux is the Quadro 3700.&lt;br /&gt;
** '''WARNING''': The Quadro FX1400 does not support 3d vision stereo on Windows7 or Linux.&lt;br /&gt;
* Emitter: [http://www.nvidia.com/object/3d-vision-main.html|GeForce 3D Vision] hardware kit (an emitter with 3D shutter glasses). For Linux, make sure your kit comes with the 3 pin mini din &amp;quot;VESA&amp;quot; to 2.5mm stereo cable to connect from the stereo output on the video card into the emitter.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Software=====&lt;br /&gt;
* Windows XP 32 bit (testing other OSs soon!), Windows Vista&lt;br /&gt;
* Latest Quadro [http://www.nvidia.com/Download/index.aspx?lang=en-us|Graphics Drivers from NVidia].&lt;br /&gt;
* Latest [http://www.nvidia.com/Download/index.aspx?lang=en-us|3D Graphics drivers for the NVision system]--under '''Product Type''' choose '''3D Vision'''.&lt;br /&gt;
&lt;br /&gt;
=====Installation Instructions=====&lt;br /&gt;
======System Setup======&lt;br /&gt;
# Install the Quadro '''Graphics Drivers''' and reboot your machines&lt;br /&gt;
# Install the NVision Installation, hooking up the 3D emitter and glasses as directed in the instructions&lt;br /&gt;
## Make sure the 3D demos work&lt;br /&gt;
## Complete the '''3D Vision Drivers''' install (I had errors/warnings about old drivers but this did't matter)&lt;br /&gt;
# Specify how to drive the 3D by, click on&lt;br /&gt;
:::'''Windows Start Button''' &amp;gt; '''Control Panel''' &amp;gt; '''NVidia Control Panel''' &amp;gt; '''Manage 3D Settings''' (tab) &amp;gt; '''Global Settings''' (tab on the right) &amp;gt; '''Base Profile''' (tab).  Then, under '''Settings''' choose '''Stereo - Display Mode'''.  Next, select '''Generic Active Stereo (with NVidia IR Emitter)'''.  If you have a DLP monitor/TV choose the corresponding DLP option.  You '''must''' also set '''Stereo - Enable''' to '''on'''. &lt;br /&gt;
&lt;br /&gt;
======Running PyMOL======&lt;br /&gt;
That's it!  PyMOL should now work in Quad Buffered 3D Stereo using the NVidia 3D NVision system.  To run PyMOL in 3D mode on:&lt;br /&gt;
*Windows&lt;br /&gt;
:: '''Start &amp;gt; PyMOL &amp;gt; PyMOL &amp;gt; PyMOL 3D Launch (last menu option) &amp;gt; PyMOL Stereo (Quad Buffered 3D)'''&lt;br /&gt;
*Linux&lt;br /&gt;
:: pymol -S -t 1&lt;br /&gt;
* Mac&lt;br /&gt;
:: Sorry, at this time the NVision system is not known to work on Macs.&lt;br /&gt;
&lt;br /&gt;
=== DLP Projection Televisions ===&lt;br /&gt;
&lt;br /&gt;
Projection televisions tend to be too large and fuzzy for desktop use.  Also, a band of about 20 pixels around on the edge of the display are invisible, and this limitation cannot be eliminated through overscan since the image must be scanned at native resolution in order to support stereo 3D.  The workaround is to shrink the PyMOL window to cover the visible portion of the screen.  It is worth noting that true 3D-capable LCDs (as distinct from 3D-capable HDTVs) do not suffer from this problem.&lt;br /&gt;
&lt;br /&gt;
Aside from the above concerns, the quality of the DLP stereo 3D effect is exceptional:  there is absolutely no ghosting or cross-talk between the two images. &lt;br /&gt;
&lt;br /&gt;
* [http://pages.samsung.com/us/dlp3d Samsung 3D-Ready DLP HDTVs] - work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Quadro driver support is still lacking as of Feb. 1st, 2009 - WLD&lt;br /&gt;
&lt;br /&gt;
* [http://www.mitsubishi-tv.com/ Mitsubishi 3D-Ready DLP HDTVs] - not yet tested, but are expected to work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  - WLD&lt;br /&gt;
&lt;br /&gt;
See [http://www.3dmovielist.com/3dhdtvs.html The 3D HDTV List] for more 3D-capable HDTV options.&lt;br /&gt;
&lt;br /&gt;
== Passive Stereo 3D Displays == &lt;br /&gt;
&lt;br /&gt;
=== One Piece Multi-layer LCD Displays ===&lt;br /&gt;
&lt;br /&gt;
Affordable!&lt;br /&gt;
&lt;br /&gt;
==== Zalman ====&lt;br /&gt;
'''iZ3D, the original supplier of Zalman display drivers has ceased operation and support as of 31 July 2012. DO NOT PURCHASE THESE MONITORS WITHOUT FURTHER CONFIRMATION of display support, the iZ3D support (required drivers, etc) is not activatable. If you do have further information, please post it here.''' [[User:Jedgold|Jedgold]] 12:21, 12 September 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
* [http://www.zalman.co.kr/eng/product/Product_read.asp?Idx=219 Zalman 22-inch 3D LCD monitor] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Great stereo quality provided that all drawn lines are at least 2 pixels thick.  Menus are a bit awkward to use while in stereo mode, but even so, this 650 USD display provides excellent 3D molecular visualization in both full-screen in windowed modes.  - WLD  ('''The Zalman ZM-M220W is DeLano Scientific's RECOMMENDED SOLUTION as of Feb 11, 2009!''').&lt;br /&gt;
* [http://www.zalman.co.kr/Eng/product/Product_Read.asp?idx=391 Zalman 24-inch 3D LCD monitor] - also works with PyMOL 1.2b3 &amp;amp; later under LINUX (Centos 5 x86_64 plain kernel + NVidia driver from ELRepo). I'm using an NVidia Quadro FX 580 (G96GL) graphics card (£125).  Monitor cost around £350. PyMOL automagically detects that quad buffered stereo is available on startup.--[[User:Bosmith|Bosmith]] 16:32, 2 December 2010 (UTC)&lt;br /&gt;
* [http://www.lg.com/us/computer-products/monitors/LG-led-monitor-D2342P-PN.jsp LG D2342P-PN]&lt;br /&gt;
===== On Linux =====&lt;br /&gt;
* setup by editing the xorg.conf file:&lt;br /&gt;
    Option &amp;quot;Stereo&amp;quot; &amp;quot;7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
in the Screen section of xorg.conf and an additional:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
        Option         &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
* launch using:&lt;br /&gt;
    pymol -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Windows =====&lt;br /&gt;
# From the Start Menu: In the &amp;quot;PyMOL&amp;quot; folder, go into the &amp;quot;Stereo 3D Launch&amp;quot; subfolder, and select &amp;quot;PyMOL Zalman 3D (By Row)&amp;quot;. You might want to control-drag a copy of that shortcut on to your desktop in order to drag &amp;amp; drop content files onto it for stereo 3D visualization&lt;br /&gt;
# From the Command Line:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;C:\Program Files\DeLano Scientific\PyMOL\PyMOLWin.exe&amp;quot; -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Mac =====&lt;br /&gt;
# MacPyMOL: Copy and rename the &amp;quot;MacPyMOL&amp;quot; application bundle to &amp;quot;MacPyMOLZalman&amp;quot;. You can then double-click on the MacPyMOLZalman icon or drop data files directly onto it to visualize content in the Zalman stereo 3D mode.&lt;br /&gt;
# PyMOL X11 Hybrid Mode: Copy and rename the &amp;quot;MacPyMOL&amp;quot; appplication bundle to &amp;quot;PyMOLX11Zalman&amp;quot;. After launching X11, you can then double-click on the PyMOLX11Zalman icon or drop data files directly onto it to visualize that content in the Zalman stereo 3D mode.&lt;br /&gt;
&lt;br /&gt;
''For all platforms, remember to toggle stereo on and off using the &amp;quot;set stereo&amp;quot; command:''&lt;br /&gt;
    set stereo, on&lt;br /&gt;
&lt;br /&gt;
==== iZ3D ====&lt;br /&gt;
* [http://www.iz3d.com IZ3D] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  However, this display exhibits far too much cross-talk and interference between the two stereo images.  Not suitable for professional use.  - WLD&lt;br /&gt;
&lt;br /&gt;
=== Mirror-based Multi-LCD Solutions ===&lt;br /&gt;
&lt;br /&gt;
Expensive!&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com Planar3D] &amp;quot;I have used these displays with nVidia Quadro graphics cards under both Windows and Linux running both PyMOL and Maestro.  They work well, and the stereo quality is excellent!&amp;quot; - WLD.&lt;br /&gt;
* [http://www.inition.co.uk/inition/product.php?URL_=product_stereovis_omnia_mimo&amp;amp;SubCatID_=3 Omnia MIMO]&lt;br /&gt;
&lt;br /&gt;
== Autostereoscopic LCD Displays ==&lt;br /&gt;
&lt;br /&gt;
Some autostereoscopic displays have the ability to switch between 2D and 3D display modes.  Others are built for 3D only.&lt;br /&gt;
&lt;br /&gt;
* [http://www.dti3d.com Dimension Technologies Inc.]&lt;br /&gt;
* [http://www.seereal.com SeeReal Technologies] &lt;br /&gt;
* [http://www.newsight.com/3d-products/displays.html NewSight Corp.]&lt;br /&gt;
&lt;br /&gt;
== Stereo 3D Projectors ==&lt;br /&gt;
&lt;br /&gt;
Although these displays require shutter glasses out of the box, when combined with the adapters below and a special &amp;quot;silvered&amp;quot; screen, they can be used to project Passive Stereo 3D to a large audience.&lt;br /&gt;
&lt;br /&gt;
=== Active Stereo 3D DLP Projectors ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.depthq.com DepthQ Stereoscopic] &amp;quot;The original DepthQ gave a very good stereo 3D effort with PyMOL, but I haven't seen their latest products.&amp;quot; - WLD.&lt;br /&gt;
* [http://www.christiedigital.com/AMEN/Products/christieMirageS4K.htm Christie MIRAGE S+4K SXGA+ 6500 LUMEN DLP™ STEREOSCOPIC PROJECTOR] &amp;quot;I have been very impressed with the stereo 3D effect produced by MIRAGE projectors equipped with StereoGraphic ZScreens running PyMOL under Windows with a high-end nVidia Quadro card.&amp;quot; - WLD.&lt;br /&gt;
&lt;br /&gt;
=== Passive Stereo 3D Adaptor Hardware for Active Stereo 3D Projectors ===&lt;br /&gt;
&lt;br /&gt;
These devices make it possible for a large audience to see projected stereo 3D using inexpensive polarized glasses.&lt;br /&gt;
&lt;br /&gt;
* [http://reald-corporate.com/scientific/projectorzscreen.asp RealD StereoGraphics Projection ZScreen]&lt;br /&gt;
&lt;br /&gt;
== Who Says What? ==&lt;br /&gt;
&lt;br /&gt;
If you provide a specific quote or endorsement above, please say who you are so that everyone can know the source of the information.&lt;br /&gt;
&lt;br /&gt;
* WLD = Warren L. DeLano of DeLano Scientific LLC&lt;br /&gt;
* SP = Sabuj Pattanayek of the Center For Structural Biology, Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Options]]&lt;br /&gt;
[[Category:Stereo_3D_Display]]&lt;br /&gt;
[[Category:Stereo]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10470</id>
		<title>Stereo 3D Display Options</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Stereo_3D_Display_Options&amp;diff=10470"/>
		<updated>2012-09-12T17:21:48Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* One Piece Multi-layer LCD Displays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for aggregating the latest know-how and links to current Stereo 3D display options best suited for molecular graphics applications like PyMOL.  Please strive to provide objective factual information based on first-hand experiences while using the displays for real work and teaching.&lt;br /&gt;
&lt;br /&gt;
Let's figure out together what stereo solutions work well in this brave new post-CRT world!&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
* '''[[#Active_Stereo_3D|Active Stereo 3D]]''' -- requires expensive and/or bulky shutter glasses.  For decades, this has been the standard solution for stereo 3D molecular visualization on the desktop.&lt;br /&gt;
* '''[[#Passive_Stereo_3D|Passive Stereo 3D]]''' -- requires inexpensive lightweight polarized glasses.  This is the standard solution for delivering stereo 3D to audiences of more than a small group of people.&lt;br /&gt;
* '''[[#Autostereoscopic_3D|Autostereoscopic 3D]]''' -- means that no glasses are required.  However, current autostereoscopic displays tend do not to work well for molecular graphics due to their inability to faithfully represent fine detail such as thin bonds and wire meshes.&lt;br /&gt;
&lt;br /&gt;
== Active Stereo 3D (High-Refresh) Displays ==&lt;br /&gt;
&lt;br /&gt;
This solution would be analogous to using desktop CRT monitors with shutter glasses.  &lt;br /&gt;
&lt;br /&gt;
=== LCD Displays (120 Hz)===&lt;br /&gt;
&lt;br /&gt;
* [http://us.acer.com/ac/en/US/content/model/ET.UG5HP.001 ACER GD235HZ]. 1920x1080 120Hz 2ms .&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com/3d-products/sa2311w/ Planar SA2311W].  This is a high-end 23&amp;quot; 3D-ready monitor.  The resolution is 1900x1280 and has a 2ms refresh time.  This worked well for us.&lt;br /&gt;
&lt;br /&gt;
* [http://www.engadget.com/2008/08/26/viewsonic-shows-off-a-120hz-lcd-display-for-computers ViewSonic VX2265wm] (VX2268wm in Europe) - [http://www.google.com/products?q=ViewSonic%20VX2265wm&amp;amp;btnG=Search+Froogle&amp;amp;lmode=unknown On the market] and [http://sourceforge.net/mailarchive/forum.php?thread_name=DED5C399-7534-4D3D-8B19-E3676C4F1867%40weizmann.ac.il&amp;amp;forum_name=pymol-users verified working under FC 12]&lt;br /&gt;
&lt;br /&gt;
* [http://www.nvidia.com/object/product_GeForce_3D_VisionBundle_us.html Samsung 2233RZ] - On the market. Quad buffered stereo in Linux works with a [http://en.wikipedia.org/wiki/Nvidia_Quadro G8x based graphics core] or better Quadro FX card with the 3 pin mini din stereo connector (currently, the cheapest card that works in Linux is the Quadro FX 3700), 195.22 (or newer) nvidia linux binary driver, and the Nvidia 3d vision kit. Even though the Quadro FX 1400/3450/4000 cards have a 3 pin stereo connector, these will not work with Nvidia 3D vision since these have core versions less than G8x. For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* USB only based stereo with the 3D vision kit works only in MS Windows (e.g. with a low end Quadro FX 370 that has no 3 pin mini din stereo connector). For more information see this forum post [http://forums.nvidia.com/index.php?showtopic=91072&amp;amp;view=findpost&amp;amp;p=968627 at the Nvidia Forums]. - SP&lt;br /&gt;
&lt;br /&gt;
* The 195.22 Nvidia linux drivers do not support the Samsung 2233RZ in Stereo mode 3 or 10 for quad buffered stereo with other stereo kits, emitters, or goggles such as those purchased from NuVision, Stereographics, or Edimensional. You cannot use NuVision, Stereographics, or Edimensional goggles with the Nvidia 3D Vision emitters. - SP&lt;br /&gt;
&lt;br /&gt;
* NVidia 3D NVision kit only supports DirectX software for GeForce (gaming cards) on Windows; users are reporting that they are not able to run PyMOL with NVision with these cards. Get a newer model low end quadro (&amp;gt; G8x graphics core) without the 3 pin mini din (e.g. Quadro 370) or with the 3 pin mini din (e.g. Quadro 3700) for Windows.&lt;br /&gt;
&lt;br /&gt;
==== NVidia NVision 3D Setup ====&lt;br /&gt;
The NVidia 3D NVision setup provides a very nice 3D experience.  You need the following to enable PyMOL to show NVision 3D on Windows.  Please review the hardware and software requirements before moving on to the installation and setup.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Hardware=====&lt;br /&gt;
* Monitor: 120 Hz LCD: a [http://www.samsung.com/us/consumer/office/monitors/specialty/LS22CMFKFV/ZA/index.idx?pagetype=prd_detail&amp;amp;returnurl=|Samsung 2233RZ] or a [http://www.viewsonic.com/products/desktop-monitors/lcd/x-series/vx2265wm-fuhzion-lcd.htm|ViewSonic Fuhzion vx2265wm]&lt;br /&gt;
* Cable: [http://images.google.com/imgres?imgurl=http://www.logicsupply.com/images/dvi_connector_types.gif&amp;amp;imgrefurl=http://www.logicsupply.com/faq&amp;amp;usg=__G2BLaVTqBN4ie8fz_LJR1zc3zBc=&amp;amp;h=261&amp;amp;w=440&amp;amp;sz=15&amp;amp;hl=en&amp;amp;start=0&amp;amp;sig2=_hFM6ICIsxPq5WIAv8BCqg&amp;amp;zoom=1&amp;amp;tbnid=NIcKIs_BW_2rmM:&amp;amp;tbnh=135&amp;amp;tbnw=228&amp;amp;ei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;prev=/images%3Fq%3Ddual%2Blink%2Bdvi%26hl%3Den%26biw%3D1475%26bih%3D1042%26gbv%3D2%26tbs%3Disch:1&amp;amp;itbs=1&amp;amp;iact=hc&amp;amp;vpx=136&amp;amp;vpy=323&amp;amp;dur=3153&amp;amp;hovh=173&amp;amp;hovw=292&amp;amp;tx=227&amp;amp;ty=74&amp;amp;oei=KHN2TL-UC8P_lgfr44nsCw&amp;amp;esq=1&amp;amp;page=1&amp;amp;ndsp=30&amp;amp;ved=1t:429,r:6,s:0 Dual Link DVI cable]; most  120Hz monitors will come with this cable--regardless, the cable is necessary&lt;br /&gt;
* Quadro Card: recent   [http://www.nvidia.com/page/quadrofx_family.html Quadro]   series graphics card (not a GeForce card) such as an FX 380 or 570 or later.  The GeForce cards do not support windowed openGL stereo, so we do not support these series of cards for the NVision 3D solution. For linux, you must have a quadro card that has a 3 pin mini din connector. The cheapest/oldest card that will work with linux is the Quadro 3700.&lt;br /&gt;
** '''WARNING''': The Quadro FX1400 does not support 3d vision stereo on Windows7 or Linux.&lt;br /&gt;
* Emitter: [http://www.nvidia.com/object/3d-vision-main.html|GeForce 3D Vision] hardware kit (an emitter with 3D shutter glasses). For Linux, make sure your kit comes with the 3 pin mini din &amp;quot;VESA&amp;quot; to 2.5mm stereo cable to connect from the stereo output on the video card into the emitter.&lt;br /&gt;
&lt;br /&gt;
=====Necessary Software=====&lt;br /&gt;
* Windows XP 32 bit (testing other OSs soon!), Windows Vista&lt;br /&gt;
* Latest Quadro [http://www.nvidia.com/Download/index.aspx?lang=en-us|Graphics Drivers from NVidia].&lt;br /&gt;
* Latest [http://www.nvidia.com/Download/index.aspx?lang=en-us|3D Graphics drivers for the NVision system]--under '''Product Type''' choose '''3D Vision'''.&lt;br /&gt;
&lt;br /&gt;
=====Installation Instructions=====&lt;br /&gt;
======System Setup======&lt;br /&gt;
# Install the Quadro '''Graphics Drivers''' and reboot your machines&lt;br /&gt;
# Install the NVision Installation, hooking up the 3D emitter and glasses as directed in the instructions&lt;br /&gt;
## Make sure the 3D demos work&lt;br /&gt;
## Complete the '''3D Vision Drivers''' install (I had errors/warnings about old drivers but this did't matter)&lt;br /&gt;
# Specify how to drive the 3D by, click on&lt;br /&gt;
:::'''Windows Start Button''' &amp;gt; '''Control Panel''' &amp;gt; '''NVidia Control Panel''' &amp;gt; '''Manage 3D Settings''' (tab) &amp;gt; '''Global Settings''' (tab on the right) &amp;gt; '''Base Profile''' (tab).  Then, under '''Settings''' choose '''Stereo - Display Mode'''.  Next, select '''Generic Active Stereo (with NVidia IR Emitter)'''.  If you have a DLP monitor/TV choose the corresponding DLP option.  You '''must''' also set '''Stereo - Enable''' to '''on'''. &lt;br /&gt;
&lt;br /&gt;
======Running PyMOL======&lt;br /&gt;
That's it!  PyMOL should now work in Quad Buffered 3D Stereo using the NVidia 3D NVision system.  To run PyMOL in 3D mode on:&lt;br /&gt;
*Windows&lt;br /&gt;
:: '''Start &amp;gt; PyMOL &amp;gt; PyMOL &amp;gt; PyMOL 3D Launch (last menu option) &amp;gt; PyMOL Stereo (Quad Buffered 3D)'''&lt;br /&gt;
*Linux&lt;br /&gt;
:: pymol -S -t 1&lt;br /&gt;
* Mac&lt;br /&gt;
:: Sorry, at this time the NVision system is not known to work on Macs.&lt;br /&gt;
&lt;br /&gt;
=== DLP Projection Televisions ===&lt;br /&gt;
&lt;br /&gt;
Projection televisions tend to be too large and fuzzy for desktop use.  Also, a band of about 20 pixels around on the edge of the display are invisible, and this limitation cannot be eliminated through overscan since the image must be scanned at native resolution in order to support stereo 3D.  The workaround is to shrink the PyMOL window to cover the visible portion of the screen.  It is worth noting that true 3D-capable LCDs (as distinct from 3D-capable HDTVs) do not suffer from this problem.&lt;br /&gt;
&lt;br /&gt;
Aside from the above concerns, the quality of the DLP stereo 3D effect is exceptional:  there is absolutely no ghosting or cross-talk between the two images. &lt;br /&gt;
&lt;br /&gt;
* [http://pages.samsung.com/us/dlp3d Samsung 3D-Ready DLP HDTVs] - work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Quadro driver support is still lacking as of Feb. 1st, 2009 - WLD&lt;br /&gt;
&lt;br /&gt;
* [http://www.mitsubishi-tv.com/ Mitsubishi 3D-Ready DLP HDTVs] - not yet tested, but are expected to work with PyMOL 1.2b3 &amp;amp; later without any special drivers.  - WLD&lt;br /&gt;
&lt;br /&gt;
See [http://www.3dmovielist.com/3dhdtvs.html The 3D HDTV List] for more 3D-capable HDTV options.&lt;br /&gt;
&lt;br /&gt;
== Passive Stereo 3D Displays == &lt;br /&gt;
&lt;br /&gt;
=== One Piece Multi-layer LCD Displays ===&lt;br /&gt;
&lt;br /&gt;
Affordable!&lt;br /&gt;
&lt;br /&gt;
==== Zalman ====&lt;br /&gt;
'''iZ3D, the maker of Zalman displays and (more importantly) Zalman display drivers has ceased operation and support as of 31 July 2012. DO NOT PURCHASE THESE MONITORS WITHOUT FURTHER CONFIRMATION, the support (required drivers, etc) do not appear to be activatable. If you do have further information, please post it here.''' [[User:Jedgold|Jedgold]] 12:21, 12 September 2012 (CDT)&lt;br /&gt;
&lt;br /&gt;
* [http://www.zalman.co.kr/eng/product/Product_read.asp?Idx=219 Zalman 22-inch 3D LCD monitor] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  Great stereo quality provided that all drawn lines are at least 2 pixels thick.  Menus are a bit awkward to use while in stereo mode, but even so, this 650 USD display provides excellent 3D molecular visualization in both full-screen in windowed modes.  - WLD  ('''The Zalman ZM-M220W is DeLano Scientific's RECOMMENDED SOLUTION as of Feb 11, 2009!''').&lt;br /&gt;
* [http://www.zalman.co.kr/Eng/product/Product_Read.asp?idx=391 Zalman 24-inch 3D LCD monitor] - also works with PyMOL 1.2b3 &amp;amp; later under LINUX (Centos 5 x86_64 plain kernel + NVidia driver from ELRepo). I'm using an NVidia Quadro FX 580 (G96GL) graphics card (£125).  Monitor cost around £350. PyMOL automagically detects that quad buffered stereo is available on startup.--[[User:Bosmith|Bosmith]] 16:32, 2 December 2010 (UTC)&lt;br /&gt;
* [http://www.lg.com/us/computer-products/monitors/LG-led-monitor-D2342P-PN.jsp LG D2342P-PN]&lt;br /&gt;
===== On Linux =====&lt;br /&gt;
* setup by editing the xorg.conf file:&lt;br /&gt;
    Option &amp;quot;Stereo&amp;quot; &amp;quot;7&amp;quot;&lt;br /&gt;
&lt;br /&gt;
in the Screen section of xorg.conf and an additional:&lt;br /&gt;
&lt;br /&gt;
    Section &amp;quot;Extensions&amp;quot;&lt;br /&gt;
        Option         &amp;quot;Composite&amp;quot; &amp;quot;Disable&amp;quot;&lt;br /&gt;
    EndSection&lt;br /&gt;
&lt;br /&gt;
* launch using:&lt;br /&gt;
    pymol -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Windows =====&lt;br /&gt;
# From the Start Menu: In the &amp;quot;PyMOL&amp;quot; folder, go into the &amp;quot;Stereo 3D Launch&amp;quot; subfolder, and select &amp;quot;PyMOL Zalman 3D (By Row)&amp;quot;. You might want to control-drag a copy of that shortcut on to your desktop in order to drag &amp;amp; drop content files onto it for stereo 3D visualization&lt;br /&gt;
# From the Command Line:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;C:\Program Files\DeLano Scientific\PyMOL\PyMOLWin.exe&amp;quot; -S -t 6&lt;br /&gt;
&lt;br /&gt;
===== On Mac =====&lt;br /&gt;
# MacPyMOL: Copy and rename the &amp;quot;MacPyMOL&amp;quot; application bundle to &amp;quot;MacPyMOLZalman&amp;quot;. You can then double-click on the MacPyMOLZalman icon or drop data files directly onto it to visualize content in the Zalman stereo 3D mode.&lt;br /&gt;
# PyMOL X11 Hybrid Mode: Copy and rename the &amp;quot;MacPyMOL&amp;quot; appplication bundle to &amp;quot;PyMOLX11Zalman&amp;quot;. After launching X11, you can then double-click on the PyMOLX11Zalman icon or drop data files directly onto it to visualize that content in the Zalman stereo 3D mode.&lt;br /&gt;
&lt;br /&gt;
''For all platforms, remember to toggle stereo on and off using the &amp;quot;set stereo&amp;quot; command:''&lt;br /&gt;
    set stereo, on&lt;br /&gt;
&lt;br /&gt;
==== iZ3D ====&lt;br /&gt;
* [http://www.iz3d.com IZ3D] - works with PyMOL 1.2b3 &amp;amp; later without any special drivers.  However, this display exhibits far too much cross-talk and interference between the two stereo images.  Not suitable for professional use.  - WLD&lt;br /&gt;
&lt;br /&gt;
=== Mirror-based Multi-LCD Solutions ===&lt;br /&gt;
&lt;br /&gt;
Expensive!&lt;br /&gt;
&lt;br /&gt;
* [http://www.planar3d.com Planar3D] &amp;quot;I have used these displays with nVidia Quadro graphics cards under both Windows and Linux running both PyMOL and Maestro.  They work well, and the stereo quality is excellent!&amp;quot; - WLD.&lt;br /&gt;
* [http://www.inition.co.uk/inition/product.php?URL_=product_stereovis_omnia_mimo&amp;amp;SubCatID_=3 Omnia MIMO]&lt;br /&gt;
&lt;br /&gt;
== Autostereoscopic LCD Displays ==&lt;br /&gt;
&lt;br /&gt;
Some autostereoscopic displays have the ability to switch between 2D and 3D display modes.  Others are built for 3D only.&lt;br /&gt;
&lt;br /&gt;
* [http://www.dti3d.com Dimension Technologies Inc.]&lt;br /&gt;
* [http://www.seereal.com SeeReal Technologies] &lt;br /&gt;
* [http://www.newsight.com/3d-products/displays.html NewSight Corp.]&lt;br /&gt;
&lt;br /&gt;
== Stereo 3D Projectors ==&lt;br /&gt;
&lt;br /&gt;
Although these displays require shutter glasses out of the box, when combined with the adapters below and a special &amp;quot;silvered&amp;quot; screen, they can be used to project Passive Stereo 3D to a large audience.&lt;br /&gt;
&lt;br /&gt;
=== Active Stereo 3D DLP Projectors ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.depthq.com DepthQ Stereoscopic] &amp;quot;The original DepthQ gave a very good stereo 3D effort with PyMOL, but I haven't seen their latest products.&amp;quot; - WLD.&lt;br /&gt;
* [http://www.christiedigital.com/AMEN/Products/christieMirageS4K.htm Christie MIRAGE S+4K SXGA+ 6500 LUMEN DLP™ STEREOSCOPIC PROJECTOR] &amp;quot;I have been very impressed with the stereo 3D effect produced by MIRAGE projectors equipped with StereoGraphic ZScreens running PyMOL under Windows with a high-end nVidia Quadro card.&amp;quot; - WLD.&lt;br /&gt;
&lt;br /&gt;
=== Passive Stereo 3D Adaptor Hardware for Active Stereo 3D Projectors ===&lt;br /&gt;
&lt;br /&gt;
These devices make it possible for a large audience to see projected stereo 3D using inexpensive polarized glasses.&lt;br /&gt;
&lt;br /&gt;
* [http://reald-corporate.com/scientific/projectorzscreen.asp RealD StereoGraphics Projection ZScreen]&lt;br /&gt;
&lt;br /&gt;
== Who Says What? ==&lt;br /&gt;
&lt;br /&gt;
If you provide a specific quote or endorsement above, please say who you are so that everyone can know the source of the information.&lt;br /&gt;
&lt;br /&gt;
* WLD = Warren L. DeLano of DeLano Scientific LLC&lt;br /&gt;
* SP = Sabuj Pattanayek of the Center For Structural Biology, Vanderbilt University&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware_Options]]&lt;br /&gt;
[[Category:Stereo_3D_Display]]&lt;br /&gt;
[[Category:Stereo]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Plugins_Tutorial&amp;diff=8162</id>
		<title>Plugins Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Plugins_Tutorial&amp;diff=8162"/>
		<updated>2012-04-23T14:20:34Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Plugins==&lt;br /&gt;
To install a plugin, simply save the plugin file and load it into PyMol with the ''Plugin -&amp;gt; Install Plugin...'' menu item. Alternatively, plugins can be installed by copying the file into the PYMOLPATH/module/pmg_tk/startup/ folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Writing Plugins: Learn By Example==&lt;br /&gt;
This tutorial is a more sophisticated version of the [[PDB Loader Service]] plugin that is bundled with PyMol.  It is a relatively simple plugin, but should prove to be a good starting point for developing new plugins.&lt;br /&gt;
&lt;br /&gt;
===Registering your Plugin===&lt;br /&gt;
First you must add your plugin to the ''Plugins'' menu.  This is most easily done in the ''__init__'' method of your plugin.  A callback, fetchPDBDialog, is added.  It is passed a reference to the main Tk app.  It will need this in order to create new content in the main Tkinter loop.  It is not strictly required in this example, but is needed in more complex interfaces.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 def __init__(self):&lt;br /&gt;
    self.menuBar.addmenuitem('Plugin', 'command',&lt;br /&gt;
                             'PDB Loader Service',&lt;br /&gt;
                             label = 'PDB Loader Service',&lt;br /&gt;
                             command = lambda s=self : fetchPDBDialog(s))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Functionality===&lt;br /&gt;
For this example we are going to dynamically download and load a pdb structure into the pymol interface.  Here is a simple method which does that given a pdbCode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 def remote(pdbCode):&lt;br /&gt;
    pdbCode = pdbCode.upper()&lt;br /&gt;
    try:&lt;br /&gt;
       pdbFile = urllib2.urlopen('http://www.rcsb.org/pdb/cgi/export.cgi/' +&lt;br /&gt;
                                 pdbCode + '.pdb.gz?format=PDB&amp;amp;pdbId=' +&lt;br /&gt;
                                 pdbCode + '&amp;amp;compression=gz')&lt;br /&gt;
       cmd.read_pdbstr(zlib.decompress(pdbFile.read()[22:], -zlib.MAX_WBITS), pdbCode)&lt;br /&gt;
    except:&lt;br /&gt;
       print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
       tkMessageBox.showerror('Invalid Code',&lt;br /&gt;
                              'You entered an invalid pdb code:' + pdbCode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Creating the Interface===&lt;br /&gt;
Now we need to write the callback method, ''fetchPDBDialog'', which creates the interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 def fetchPDBDialog(app):&lt;br /&gt;
    pdbCode = tkSimpleDialog.askstring('PDB Loader Service',&lt;br /&gt;
                                       'Please enter a 4-digit pdb code:',&lt;br /&gt;
                                       parent=app.root)&lt;br /&gt;
    remote(pdbCode)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pretty simple!  As of now you have a fully functional plugin that will prompt the user for a pdb code, download it from [http://www.rcsb.org/pdb/ RCSB], and load it into the PyMol interface.&lt;br /&gt;
&lt;br /&gt;
===Extending Plugins to the Command Line===&lt;br /&gt;
Opening the dialog can be tedious, so let's add a command line callback to make use of this new functionality.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 cmd.extend('remote', remote)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can type ''remote 1di9'', for example, to load the the corresponding pdb.&lt;br /&gt;
&lt;br /&gt;
==Full Source==&lt;br /&gt;
Here is the complete example.  You can save this file and load it into PyMol with the ''Plugin -&amp;gt; Install Plugin...'' menu item.  I also include the sample license that Warren provides for plugin developers. It is optional, of course.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Copyright Notice&lt;br /&gt;
# ================&lt;br /&gt;
# &lt;br /&gt;
# The PyMOL Plugin source code in this file is copyrighted, but you can&lt;br /&gt;
# freely use and copy it as long as you don't change or remove any of&lt;br /&gt;
# the copyright notices.&lt;br /&gt;
# &lt;br /&gt;
# ----------------------------------------------------------------------&lt;br /&gt;
# This PyMOL Plugin is Copyright (C) 2004 by Charles Moad &amp;lt;cmoad@indiana.edu&amp;gt;&lt;br /&gt;
# &lt;br /&gt;
#                        All Rights Reserved&lt;br /&gt;
# &lt;br /&gt;
# Permission to use, copy, modify, distribute, and distribute modified&lt;br /&gt;
# versions of this software and its documentation for any purpose and&lt;br /&gt;
# without fee is hereby granted, provided that the above copyright&lt;br /&gt;
# notice appear in all copies and that both the copyright notice and&lt;br /&gt;
# this permission notice appear in supporting documentation, and that&lt;br /&gt;
# the name(s) of the author(s) not be used in advertising or publicity&lt;br /&gt;
# pertaining to distribution of the software without specific, written&lt;br /&gt;
# prior permission.&lt;br /&gt;
# &lt;br /&gt;
# THE AUTHOR(S) DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,&lt;br /&gt;
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN&lt;br /&gt;
# NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR&lt;br /&gt;
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF&lt;br /&gt;
# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR&lt;br /&gt;
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR&lt;br /&gt;
# PERFORMANCE OF THIS SOFTWARE.&lt;br /&gt;
# ----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import tkSimpleDialog&lt;br /&gt;
import tkMessageBox&lt;br /&gt;
from pymol import cmd&lt;br /&gt;
import sys, urllib2, zlib&lt;br /&gt;
&lt;br /&gt;
def __init__(self):&lt;br /&gt;
   self.menuBar.addmenuitem('Plugin', 'command',&lt;br /&gt;
                            'PDB Loader Service',&lt;br /&gt;
                            label = 'PDB Loader Service',&lt;br /&gt;
                            command = lambda s=self : fetchPDBDialog(s))&lt;br /&gt;
&lt;br /&gt;
def remote(pdbCode):&lt;br /&gt;
   pdbCode = pdbCode.upper()&lt;br /&gt;
   try:&lt;br /&gt;
      pdbFile = urllib2.urlopen('http://www.rcsb.org/pdb/cgi/export.cgi/' +&lt;br /&gt;
                                pdbCode + '.pdb.gz?format=PDB&amp;amp;pdbId=' +&lt;br /&gt;
                                pdbCode + '&amp;amp;compression=gz')&lt;br /&gt;
      cmd.read_pdbstr(zlib.decompress(pdbFile.read()[22:], -zlib.MAX_WBITS), pdbCode)&lt;br /&gt;
   except:&lt;br /&gt;
      print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
      tkMessageBox.showerror('Invalid Code',&lt;br /&gt;
                             'You entered an invalid pdb code:' + pdbCode)&lt;br /&gt;
&lt;br /&gt;
def fetchPDBDialog(app):&lt;br /&gt;
   pdbCode = tkSimpleDialog.askstring('PDB Loader Service',&lt;br /&gt;
                                      'Please enter a 4-digit pdb code:',&lt;br /&gt;
                                      parent=app.root)&lt;br /&gt;
   &lt;br /&gt;
   remote(pdbCode)&lt;br /&gt;
&lt;br /&gt;
cmd.extend('remote', remote)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Developers|Plugins_Tutorial]]&lt;br /&gt;
[[Category:Plugins|Plugins_Tutorial]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=CASTp&amp;diff=879</id>
		<title>CASTp</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=CASTp&amp;diff=879"/>
		<updated>2010-11-10T20:56:13Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Note*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview =&lt;br /&gt;
The CASTpyMOL plugin allows for the visualization of surfaces and voids identified from CASTp using pyMOL.  For more information see the [http://sts-fw.bioengr.uic.edu/castp/pymol.php CASTp Website].&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
As of 2010, the CASTpyMOL plugin does not appear to be supported by the CASTp group. The plugin is only available as a precompiled .pyc file compiled with an early version of python. Thus a 'bad magic number' error is encountered when attempting to initialize CASTpyMOL_V2&lt;br /&gt;
[[User:Jedgold|Jedgold]] 20:56, 10 November 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11807</id>
		<title>Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11807"/>
		<updated>2010-01-21T16:36:13Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Low-Level Enhancement Ideas (Mostly C-oriented) */&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]]) / nay (0)&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 (0) / 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.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Firefox (plugin): Develop an PyMOL plugin compatible with Firefox.&lt;br /&gt;
:: yea (0) / nay (0)&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]]) / 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 (0) / nay (0)&lt;br /&gt;
* R (statistics): PyMOL a 3D viewer environment for visualizating &amp;amp; manipulating large statistical data sets?&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 (0) / nay (0)&lt;br /&gt;
* Improve the Python API documentation.&lt;br /&gt;
:: yea (0) / 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 (0) / 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 (0) / 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 (0) / 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 (0) / nay (0)&lt;br /&gt;
* Enhance the Mutagenesis Wizard in order to support Nucleic acids and/or Sugars.&lt;br /&gt;
:: yea (0) / 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]]) / nay (0)&lt;br /&gt;
::: Would this then feed back to the structural alignment? [[User:Jedgold|Jedgold]]&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 (0) / nay (0)&lt;br /&gt;
* Add display of secondary structure into the sequence viewer.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Enable per-object Z clipping (especially in the ray tracer)&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Hilite H-bonds, salt bridges, Pi-stacking, Pi-cations, etc.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Build in a simple forcefield and energy minimizer suitable for use with Mutagenesis.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Incorporate a suite of standard NMR visualizations (restraint violations, per-residue RMS, etc.)&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Enumeration and display of low-energy conformers.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]]) / nay (0)&lt;br /&gt;
* Automated structure grafting (poor-man's homology modeling).&lt;br /&gt;
:: yea (0) / nay ([[User:Jedgold|Jedgold]])&lt;br /&gt;
::: Perhaps a plugin to Modeller instead? [[User:Jedgold|Jedgold]]&lt;br /&gt;
* Import of alignment files.&lt;br /&gt;
:: yea ([[User:Jedgold|Jedgold]]) / nay (0)&lt;br /&gt;
* Implement IMD (Interactive Molecular Dynamics) Interface, see http://www.ks.uiuc.edu/Research/vmd/imd/&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 (0) / nay (0)&lt;br /&gt;
* Catch &amp;amp; handle memory-allocation failures gracefully (instead of crashing).&lt;br /&gt;
:: yea (0) / 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 (0) / nay (0)&lt;br /&gt;
* Enable generalized undo of changes made to the Model.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Clean up the internal matrix handling code.&lt;br /&gt;
:: yea (0) / 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 (0)&lt;br /&gt;
* Integrate directly via Mathematica via MathLink.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Further enhance JyMOL (Java-JNI/wrapped PyMOL)&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]]) / nay (0)&lt;br /&gt;
* Integrate with Matlab.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== More Ideas (Please add your own!) ==&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 (0) / nay (0)&lt;br /&gt;
* Spreadsheet view with additional information (e.g. IC50's).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Create additional documentation, screen casts, &amp;amp; tutorials.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Export 3D PDF images.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* &amp;lt;strike&amp;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;&amp;lt;/strike&amp;gt;&lt;br /&gt;
:: yea (0) / 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 (0) / 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 (0) / 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 (0)&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 (0) / nay (0)&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11806</id>
		<title>Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Ideas&amp;diff=11806"/>
		<updated>2010-01-21T16:34:00Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Integration Ideas (Linking Out to Useful Open-Source Tools) */&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]]) / nay (0)&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 (0) / 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.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Firefox (plugin): Develop an PyMOL plugin compatible with Firefox.&lt;br /&gt;
:: yea (0) / nay (0)&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]]) / 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 (0) / nay (0)&lt;br /&gt;
* R (statistics): PyMOL a 3D viewer environment for visualizating &amp;amp; manipulating large statistical data sets?&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 (0) / nay (0)&lt;br /&gt;
* Improve the Python API documentation.&lt;br /&gt;
:: yea (0) / 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 (0) / 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 (0) / 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 (0) / 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 (0) / nay (0)&lt;br /&gt;
* Enhance the Mutagenesis Wizard in order to support Nucleic acids and/or Sugars.&lt;br /&gt;
:: yea (0) / 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 (0) / nay (0)&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 (0) / nay (0)&lt;br /&gt;
* Add display of secondary structure into the sequence viewer.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Enable per-object Z clipping (especially in the ray tracer)&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Hilite H-bonds, salt bridges, Pi-stacking, Pi-cations, etc.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Build in a simple forcefield and energy minimizer suitable for use with Mutagenesis.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Incorporate a suite of standard NMR visualizations (restraint violations, per-residue RMS, etc.)&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Enumeration and display of low-energy conformers.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Automated structure grafting (poor-man's homology modeling).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Import of alignment files.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Implement IMD (Interactive Molecular Dynamics) Interface, see http://www.ks.uiuc.edu/Research/vmd/imd/&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 (0) / nay (0)&lt;br /&gt;
* Catch &amp;amp; handle memory-allocation failures gracefully (instead of crashing).&lt;br /&gt;
:: yea (0) / 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 (0) / nay (0)&lt;br /&gt;
* Enable generalized undo of changes made to the Model.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Clean up the internal matrix handling code.&lt;br /&gt;
:: yea (0) / 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 (0)&lt;br /&gt;
* Integrate directly via Mathematica via MathLink.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Further enhance JyMOL (Java-JNI/wrapped PyMOL)&lt;br /&gt;
:: yea ([[User:Inchoate|Tree]]) / nay (0)&lt;br /&gt;
* Integrate with Matlab.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
&lt;br /&gt;
== More Ideas (Please add your own!) ==&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 (0) / nay (0)&lt;br /&gt;
* Spreadsheet view with additional information (e.g. IC50's).&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Create additional documentation, screen casts, &amp;amp; tutorials.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* Export 3D PDF images.&lt;br /&gt;
:: yea (0) / nay (0)&lt;br /&gt;
* &amp;lt;strike&amp;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;&amp;lt;/strike&amp;gt;&lt;br /&gt;
:: yea (0) / 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 (0) / 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 (0) / 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 (0)&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 (0) / nay (0)&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Cealign_plugin&amp;diff=13278</id>
		<title>Cealign plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Cealign_plugin&amp;diff=13278"/>
		<updated>2009-07-17T17:43:42Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
'''Go directly to [[Cealign#Version_0.8-RBS|DOWNLOAD]]'''&lt;br /&gt;
&lt;br /&gt;
This page is the home page of the open-source CEAlign PyMOL plugin.  The CE algorithm is a fast and accurate protein structure alignment algorithm, pioneered by Drs. Shindyalov and Bourne (See &lt;br /&gt;
References).  There are a few changes from the original CE publication (See Notes).  &lt;br /&gt;
&lt;br /&gt;
The source code is implemented in C with the rotations finally done by Numpy in Python.  Because the computationally complex portion of the code is written in C, it's quick.  That is, on my machines --- relatively fast 64-bit machines --- I can align two 400+ amino acid structures in about 0.300 s with the C++ implementation.&lt;br /&gt;
&lt;br /&gt;
This plugs into PyMol very easily.  See [[Cealign#The_Code|the code]] and [[Cealign#Examples|examples]] for installation and usage.&lt;br /&gt;
&lt;br /&gt;
== Comparison to PyMol ==&lt;br /&gt;
'''Why should you use this?'''&lt;br /&gt;
&lt;br /&gt;
PyMOL's structure alignment algorithm is fast and robust.  However, its first step is to perform a sequence alignment of the two selections.  Thus, proteins in the '''twilight zone''' or those having a low sequence identity, may not align well.  Because CE is a structure-based alignment, this is not a problem.  Consider the following example.  The image at LEFT was the result of CE-aligning two proteins (1C0M chain B to 1BCO).  The result is '''152''' aligned (alpha carbons) residues (not atoms) at '''4.96 Angstroms'''.  The image on the RIGHT shows the results from PyMol's align command: an alignment of '''221 atoms''' (not residues) at an RMSD of '''15.7 Angstroms'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:cealign_ex1.png|Cealign's results (152 aligned; 4.96 Ang.)&lt;br /&gt;
Image:pymol_align.png|PyMol's results (763 atoms; 18.4 Ang. )&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit vs. optAlign ===&lt;br /&gt;
====Take Home messages====&lt;br /&gt;
* [[fit]] and [[optAlign]] perform nearly equally as well&lt;br /&gt;
* if you need an algorithm with an appropriate reference, use [[optAlign]] (references at bottom of page).&lt;br /&gt;
* [[fit]] is faster -- if you're aligning many structures, use it over [[optAlign]]&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
[[optAlign]] is a function within the [[Cealign]] package that performs the optimal superposition of two objects of equal length.  [[optAlign]] follows the Kabsch algorithm which is a closed form, and provably optimal solution to the problem.  [[fit]] on the other hand uses the Jacobi rotations to iteratively arrive at the solution of optimal superposition.  The difference in error between [[optAilgn]] and [[fit]] seems to be a non-issue (see below) as they both arrive at equivalent solutions for the rotation matrix.  The two algorithms are undertake different approaches to orthogonally diagonalizing the correlation matrix.&lt;br /&gt;
&lt;br /&gt;
PyMOL's [[fit]] is fast and works well.  If you have to use something with a known reference then check out the &amp;quot;optAlign&amp;quot; function from the qkabsch.py file that comes with this [[Calign]] package.  If not, you can just use [[fit]] and avoid installing new software.  :-)&lt;br /&gt;
&lt;br /&gt;
optAlign is slower than fit.  I just tested both on a sample NMR ensemble; and, while not an extensive validation of &amp;quot;fit&amp;quot; it shows that (1) fit is faster; and (2) fit gets the same exact RMSD as &amp;quot;optAlign&amp;quot; (when optAlign is told to use all atoms, not just CA).  To make optAlign use all atoms and not just the alpha-carbon backbones, comment out (that is, put a &amp;quot;#&amp;quot; at the start of lines 183 and 184 in qkabsch.py, where it says &amp;quot;CUT HERE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 1nmr&lt;br /&gt;
split_states 1nmr&lt;br /&gt;
delete 1nmr&lt;br /&gt;
&lt;br /&gt;
# compare fit and optAlign RMSDs&lt;br /&gt;
for x in cmd.get_names(): print cmd.fit(&amp;quot;1nmr_0001&amp;quot;, x)&lt;br /&gt;
for x in cmd.get_names(): optAlign(x, &amp;quot;1nmr_0001&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# results from fit&lt;br /&gt;
0.0&lt;br /&gt;
4.50344991684&lt;br /&gt;
5.33588504791&lt;br /&gt;
5.78613853455&lt;br /&gt;
7.25597000122&lt;br /&gt;
6.67145586014&lt;br /&gt;
3.25131297112&lt;br /&gt;
3.36766290665&lt;br /&gt;
6.74802017212&lt;br /&gt;
5.1579709053&lt;br /&gt;
5.96959495544&lt;br /&gt;
6.68093347549&lt;br /&gt;
4.13217163086&lt;br /&gt;
5.51539039612&lt;br /&gt;
6.24266338348&lt;br /&gt;
6.03838825226&lt;br /&gt;
5.01363992691&lt;br /&gt;
5.33336305618&lt;br /&gt;
6.87617444992&lt;br /&gt;
7.797062397&lt;br /&gt;
&lt;br /&gt;
#results from optAlign&lt;br /&gt;
RMSD=0.000000&lt;br /&gt;
RMSD=4.503450&lt;br /&gt;
RMSD=5.335886&lt;br /&gt;
RMSD=5.786138&lt;br /&gt;
RMSD=7.255970&lt;br /&gt;
RMSD=6.671456&lt;br /&gt;
RMSD=3.251313&lt;br /&gt;
RMSD=3.367663&lt;br /&gt;
RMSD=6.748021&lt;br /&gt;
RMSD=5.157971&lt;br /&gt;
RMSD=5.969595&lt;br /&gt;
RMSD=6.680934&lt;br /&gt;
RMSD=4.132172&lt;br /&gt;
RMSD=5.515390&lt;br /&gt;
RMSD=6.242664&lt;br /&gt;
RMSD=6.038388&lt;br /&gt;
RMSD=5.013640&lt;br /&gt;
RMSD=5.333363&lt;br /&gt;
RMSD=6.876174&lt;br /&gt;
RMSD=7.797062&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
&lt;br /&gt;
CEAlign has the semantic, and syntactic formalism of&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign MASTER, TARGET&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where a post-condition of the algorithm is that the coordinates of the '''MASTER''' protein are unchanged.  This allows for easier multi-protein alignments.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1AUE, 1BZ4&lt;br /&gt;
cealign 1AUE, 1B68&lt;br /&gt;
cealign 1AUE, 1A7V&lt;br /&gt;
cealign 1AUE, 1CPR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will superimpose all the TARGETS onto the MASTER.&lt;br /&gt;
&lt;br /&gt;
=====Examples=====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1cll and i. 42-55, 1ggz and c. A&lt;br /&gt;
cealign 1kao, 1ctq&lt;br /&gt;
cealign 1fao, 1eaz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Multiple Structure Alignments=====&lt;br /&gt;
Use the '''alignto''' command, now provided with cealign.  Just type,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
alignto PROT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to align all your proteins in PyMOL to the one called, '''PROT'''.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
See '''Changes''' for updates.  But, overall, the results here are great.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:v7_1fao_1eaz.png|EASY: 1FAO vs. 1EAZ; 96 residues, 1.28 Ang&lt;br /&gt;
Image:v7_1cbs_1hmt.png|EASY: 1CBS vs. 1HMT; 128 residues, 2.01 Ang&lt;br /&gt;
Image:v7_1a15_1b50.png|MODERATE: 1A15 vs 1B50; 56 residues, 2.54 Ang.&lt;br /&gt;
Image:v7_1oan_1s6n.png|EASY: 1OAN vs. 1S6N (state 1); 96 residues aligned to 3.83 Ang. RMSD.&lt;br /&gt;
Image:v7_1rlw_1byn.png|HARD: 1RLW to 1BYN; 104 residues; 2.21 Ang.&lt;br /&gt;
Image:v7_1ten_3hhr.png|HARD: 1TEN vs. 3HHR; 80 residues, 2.91 Ang.&lt;br /&gt;
Image:v7_2sim_1nsb.png|HARD: 2SIM vs. 1NSB; 272 residues, 4.93 Ang.&lt;br /&gt;
Image:v7_1cew_1mol.png|HARD: 1CEW vs. 1MOL; 80 residues, 4.03 Ang.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
===Mac OS X (10.5)===&lt;br /&gt;
[[Image:Cealign mac os x.png|300px|thumb|center|CEAlign running on Mac OS X (10.5)]]&lt;br /&gt;
* Install PyMOL under fink.&lt;br /&gt;
* Install Numpy for fink:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/sw/bin/fink install scipy-core-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Download and install cealign (download instructions below)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /sw/bin/python setup.py install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* In PyMOL, run the two scripts needed for cealing: &amp;quot;cealign.py&amp;quot; and &amp;quot;qkabsch.py&amp;quot;. These are located in the cealign directory you previously downloaded.&lt;br /&gt;
* Voila!&lt;br /&gt;
* Note that the above python version must match the same version that is used by PyMOL. If you are using the pre-compiled version of MacPyMOL, the above instructions won't work.&lt;br /&gt;
&lt;br /&gt;
===Windows systems===&lt;br /&gt;
====CEAlign 0.9====&lt;br /&gt;
This is a Win32 build of CEAlign 0.9 [http://pymolwiki.org/index.php/Cealign#Beta_Version_0.9]&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Christoph Gohlke's latest '''unofficial''' PyMol build: http://www.lfd.uci.edu/~gohlke/#pythonlibs&lt;br /&gt;
* &amp;quot;Python 2.6.2 Windows installer&amp;quot; from python.org: http://www.python.org/download/&lt;br /&gt;
* '''CEAlign09Win32.zip''' from: http://users.umassmed.edu/shivender.shandilya/pymol/CEAlign09Win32.zip&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Download the '''CEAlign09Win32.zip''' file&lt;br /&gt;
# Unzip the downloaded file and follow the directions as per the included README.txt&lt;br /&gt;
# Enjoy the ''awesomeness'' that is CEAlign!&lt;br /&gt;
====CEAlign 0.8====&lt;br /&gt;
This is a quick and dirty method to use CEAlign 0.8 on Win32 system with the '''official''' Pymol builds...&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Latest PyMol, installed on your system&lt;br /&gt;
* Numpy for python 2.4 -- quick download of just what's needed: http://users.umassmed.edu/shivender.shandilya/pymol/cealign08/numpy.zip&lt;br /&gt;
[Note: If this file is corrupt, you may download the latest 'Numpy for Python 2.4' directly from SourceForge.net&lt;br /&gt;
* Pre-compiled ccealign.pyd python module: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/ccealign.zip&lt;br /&gt;
* Modified pymolrc: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/pymolrc&lt;br /&gt;
* cealign.py and qkabsch.py from the Cealign-0.8-RBS package: download below&lt;br /&gt;
&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Unzip the numpy.zip file, which will give you a folder named '''numpy'''&lt;br /&gt;
# Move this entire folder to: C:\Program Files\DeLano Scientific\PyMOL\modules\  (or the corresponding location on your system)&lt;br /&gt;
# Unzip ccealign.zip, which will give you a file called  '''ccealign.pyd'''&lt;br /&gt;
# Move this pyd file to: C:\Program Files\DeLano Scientific\PyMOL\py24\DLLs\  (or the corresponding location on your system)&lt;br /&gt;
# Copy the downloaded '''pymolrc''' file to: C:\Program Files\DeLano Scientific\PyMOL\   (or the corresponding location on your system)&lt;br /&gt;
# Extract and copy the files cealign.py and qkabsch.py from the Cealign-0.8-RBS package to: C:\Program Files\DeLano Scientific\PyMOL\py24\Lib\   (or the corresponding location on your system)&lt;br /&gt;
# Run PyMol and load some molecules&lt;br /&gt;
# Run this command in Pymol: '''cealign molecule1, molecule2'''&lt;br /&gt;
# Enjoy!&lt;br /&gt;
&lt;br /&gt;
===Gentoo Linux===&lt;br /&gt;
Add the science overlay via&lt;br /&gt;
 layman -a sci&lt;br /&gt;
and emerge the cealign plugin&lt;br /&gt;
 emerge pymol-plugins-cealign&lt;br /&gt;
&lt;br /&gt;
===*nix systems===&lt;br /&gt;
====Requirements====&lt;br /&gt;
* C compiler&lt;br /&gt;
* Python 2.4+ with distutils&lt;br /&gt;
* Numpy&lt;br /&gt;
** for User-compiled PyMOL: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install&amp;lt;/source&amp;gt;&lt;br /&gt;
** for the precompiled version of PyMOL &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR_TO/pymol/ext/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Directions====&lt;br /&gt;
# uncompress the distribution file '''cealign-VERSION.tgz'''&lt;br /&gt;
# cd cealign-VERSION&lt;br /&gt;
# sudo python setup.py install  # if you installed by PyMOL by hand&lt;br /&gt;
## python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR/TO/pymol/ext/  # if you are using the precompiled binary download&lt;br /&gt;
# insert &amp;quot;run DIR_TO_CEALIGN/cealign.py&amp;quot; and &amp;quot;run DIR_TO_CEALIGN/qkabsch.py&amp;quot; into your '''.pymolrc''' file, or just run the two Python scripts by hand.&lt;br /&gt;
# load some molecules&lt;br /&gt;
# run, '''cealign molecule1, molecule2'''&lt;br /&gt;
# enjoy&lt;br /&gt;
&lt;br /&gt;
=====Pre-compiled Hackish Install=====&lt;br /&gt;
For those people that prefer to use the pre-compiled version of PyMOL, here are the basics for your install.  '''This is a poor method of installing Cealign.  I suggest users compile and install their own PyMOL.'''  The final goal is to get &lt;br /&gt;
# '''ccealign.so''' module into '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# numpy installed (get the numpy directory into (or linked into) '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# and be able to run cealign.py and qkabsch.py from PyMOL.&lt;br /&gt;
If you can do the above three steps, '''cealign''' should run from the pre-compiled PyMOL.&lt;br /&gt;
&lt;br /&gt;
In more detail, on a completely fictitious machine --- that is, I created the following commands from a fake machine and I don't expect a copy/paste of this to work '''anywhere''', but the commands should be helpful enough to those who need it:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# NOTES:&lt;br /&gt;
# This is fake code: don't copy/paste it.&lt;br /&gt;
#&lt;br /&gt;
# PYMOL='dir to precompiled PyMOL install'&lt;br /&gt;
# CEALIGN='dir where you will unpack cealign'&lt;br /&gt;
# replace lib with lib64 for x86-64&lt;br /&gt;
# install numpy&lt;br /&gt;
apt-get install numpy&lt;br /&gt;
&lt;br /&gt;
# link numpy to PyMOL&lt;br /&gt;
ln -s /usr/local/lib/python2.4/site-packages/numpy PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# download and install Cealign&lt;br /&gt;
wget http://www.pymolwiki.org/images/e/ed/Cealign-0.6.tar.bz2&lt;br /&gt;
tar -jxvf Cealign-0.6.tar.bz2&lt;br /&gt;
cd cealign-0.6&lt;br /&gt;
sudo python setup.py build&lt;br /&gt;
cp build/lib-XYZ-linux/ccealign.so PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# run pymol and try it out&lt;br /&gt;
pymol&lt;br /&gt;
run CEALIGN/cealign.py&lt;br /&gt;
run CEALIGN/qkabsch.py&lt;br /&gt;
fetch 1cew 1mol, async=0&lt;br /&gt;
cealign 1c, 1m&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
Please unpack and read the documentation.  All comments/questions should be directed to Jason Vertrees (javertre _at_ utmb ...dot... edu).  &lt;br /&gt;
&lt;br /&gt;
'''LATEST IS v0.8-RBS'''.  (Dedicated to Bryan Sutton for allowing me to use his computer for testing.)&lt;br /&gt;
&lt;br /&gt;
=== Version 0.8-RBS ===&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.tar.bz2|CE Align v0.8-RBS]] (bz2)'''&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.zip|CE Align v0.8-RBS]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
=== Beta Version 0.9 ===&lt;br /&gt;
Use at your own peril.  Please report any problems or inconsistent alignments to this discussion page, or to me directly; my email address all over this page.&lt;br /&gt;
&lt;br /&gt;
'''Improvements/Changes''':&lt;br /&gt;
* All C++&lt;br /&gt;
** So, faster&lt;br /&gt;
** comes with the dependencies built in&lt;br /&gt;
* No numpy&lt;br /&gt;
&lt;br /&gt;
''' Download: [[Media:Cealign-0.9.zip|CE Align v0.9]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
== Coming Soon ==&lt;br /&gt;
* Windows binary&lt;br /&gt;
* Linux Binaries (32bit, x86-64)&lt;br /&gt;
* Better instructions for precompiled distributions&lt;br /&gt;
* Optimization&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2008-03-25 ===&lt;br /&gt;
Pure C++ code released.  See the beta version above.&lt;br /&gt;
&lt;br /&gt;
=== 2007-04-14 ===&lt;br /&gt;
v0.8-RBS source updated.  Found the bug that had been plaguing 32-bit machines.  This should be the last release for a little while.&lt;br /&gt;
&lt;br /&gt;
Also, I provide the option of aligning based solely upon RMSD or upon the better CE-Score.  See the '''References''' for information on the '''CE Score'''.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Post your problems/solutions here.&lt;br /&gt;
&lt;br /&gt;
=== Unicode Issues in Python/Numpy ===&lt;br /&gt;
'''Problem''': Running/Installing cealign gives&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parser.py&amp;quot;,&lt;br /&gt;
line 308, in parse&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parsing.py&amp;quot;,&lt;br /&gt;
line 410, in run_file&lt;br /&gt;
  File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
    import numpy&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 36, in ?&lt;br /&gt;
    import core&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/core/__init__.py&amp;quot;, line 5, in ?&lt;br /&gt;
    import multiarray&lt;br /&gt;
ImportError: /home/byron/software/pymol/ext/lib/python2.4/site-packages/numpy/core/multiarray.so:&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where the important line is&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This problem indicates that your Numpy Unicode is using a different byte-size for unicode characters than is the Python distribution your PyMOL is running from.  For example, this can happen if you use the pre-built PyMOL and some other pre-built Numpy package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': Hand-install Numpy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LinAlg Module Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parser.py&amp;quot;, line 285, in parse&lt;br /&gt;
parsing.run_file(exp_path(args[nest][0]),pymol_names,pymol_names)&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parsing.py&amp;quot;, line 407, in run_file&lt;br /&gt;
execfile(file,global_ns,local_ns)&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 40, in ?&lt;br /&gt;
import linalg&lt;br /&gt;
ImportError: No module named linalg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': You do not have the linear algebra module installed (or Python can't find it) on your machine.  One workaround is to install [http://www.scipy.org/ Scientific Python]. (on debian/ubuntu this can be done by: sudo apt-get install python-scipy) Another is to reinstall the Numpy package from source, ensuring that you have the necessary requirements for the linear algebra module (linpack, lapack, fft, etc.).&lt;br /&gt;
&lt;br /&gt;
=== CCEAlign &amp;amp; NumPy Modules Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run cealign.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
  File &amp;quot;/usr/local/pymol/scripts/cealign-0.1/cealign.py&amp;quot;, line 59, in ?&lt;br /&gt;
    from ccealign import ccealign&lt;br /&gt;
ImportError: No module named ccealign&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
ImportError: No module named numpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': This problem occurs under [http://www.apple.com/macosx Apple Mac OS X] if (a) the Apple's python executable on your machine (/usr/bin/python, currently version 2.3.5) is superseded by [http://fink.sourceforge.net/ Fink]'s python executable (/sw/bin/python, currently version 2.5) and (b) you are using [http://delsci.com/rel/099/#MacOSX precompiled versions of PyMOL] (MacPyMOL, PyMOLX11Hybrid or PyMOL for Mac OS X/X11). These executables ignore Fink's python and instead use Apple's - so, in order to run CE Align, one must install NumPy (as well as CE Align itself) using Apple's python. To do so, first download the [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 Numpy source code archive] (currently version 1.0.1), unpack it, change directory to numpy-1.0.1 and specify the full path to Apple's python executable during installation: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;. Then, donwload the [http://www.pymolwiki.org/index.php/Cealign#The_Code CE Align source code archive] (currently version 0.2), unpack it, change directory to cealign-0.2 and finally install CE Align as follows: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;.&lt;br /&gt;
[[User:Lucajovine|Luca Jovine]] 05:11, 25 January 2007 (CST).&lt;br /&gt;
&lt;br /&gt;
=== The Function SimpAlign() is not found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;cealign 1CLL,1GGZ&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;C:\Program Files (x86)\DeLano Scientific\PyMOL/modules\pymol\parser.py&amp;quot;, line 203, in parse&lt;br /&gt;
    result=apply(kw[nest][0],args[nest],kw_args[nest])&lt;br /&gt;
  File &amp;quot;py24/Lib/cealign.py&amp;quot;, line 177, in cealign&lt;br /&gt;
    curScore = simpAlign( matA, matB, mol1, mol2, stored.mol1, stored.mol2, align=0, L=len(matA) )&lt;br /&gt;
NameError: global name 'simpAlign' is not defined&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am running PyMOL v. 0.99rc6 on Win XP Professional x64 edition version 2003 sp2 and have followed the windows install procedure as described above.&lt;br /&gt;
&lt;br /&gt;
'''Answer''': This simply means that PyMOL couldn't find the simplAlign function.  To let PyMOL know about this, you must run the following commands before running [[cealign]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run /your/path/to/cealign/qkabsch.py&lt;br /&gt;
run /your/path/to/cealign/cealign.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
but most people that use cealign would just put these two lines in their '''.pymolrc''' file.&lt;br /&gt;
&lt;br /&gt;
=== Short Alignments Don't Work ===&lt;br /&gt;
If you are trying to align fewer than 16 residues then use [[align]], [[super]], or [[optAlign]].  CE uses a window size of 8; and to build a path of more than one window, you need 2*8=16 residues.  I will insert some code to re-route small alignments to one of the aforementioned alignment algorithms.&lt;br /&gt;
&lt;br /&gt;
=== It Worked A Second Ago! ===&lt;br /&gt;
[[Image:Rewind.png|thumb|right|Showing the rewind button to rewind to state 1.]]&lt;br /&gt;
&lt;br /&gt;
If you were using cealign (or alignto) and now the commands don't work -- that is, they return an RMSD, but don't actually superimpose the objects, then you have a simple problem dealing with states.  Most likely the cause of this oddness was (1) when you issued &amp;quot;cealign prot1, prot2&amp;quot; one of them was actually an ensemble of states or (2) you are trying to align to proteins with only one state, but are not looking at state one (because the last protein you were considering had more than one state and you quit editing that protein on a state that's not state 1).  To fix this, use the rewind button to get the proteins back into state 1 &amp;amp; reissue the cealign/alignto command.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Text taken from PubMed and formatted for the wiki.  The first reference is the most important for this code.&lt;br /&gt;
&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''Protein structure alignment by incremental combinatorial extension (CE) of the optimal path.'''  ''Protein Eng.'' 1998 Sep;11(9):739-47.  PMID: 9796821 [PubMed - indexed for MEDLINE]&lt;br /&gt;
# Jia Y, Dewey TG, Shindyalov IN, Bourne PE. '''A new scoring function and associated statistical significance for structure alignment by CE.'''  ''J Comput Biol.'' 2004;11(5):787-99. PMID: 15700402 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Pekurovsky D, Shindyalov IN, Bourne PE. '''A case study of high-throughput biological data processing on parallel platforms.'''  ''Bioinformatics.'' 2004 Aug 12;20(12):1940-7. Epub 2004 Mar 25.  PMID: 15044237 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''An alternative view of protein fold space.'''  ''Proteins.'' 2000 Feb 15;38(3):247-60.  PMID: 10713986 [PubMed - indexed for MEDLINE]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
The CEAlign and all its subprograms that I wrote, are released under the open source Free BSD License (BSDL).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;br /&gt;
[[Category:Structure_Alignment|Cealign]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Cealign&amp;diff=2970</id>
		<title>Cealign</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Cealign&amp;diff=2970"/>
		<updated>2009-07-17T17:43:42Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
'''Go directly to [[Cealign#Version_0.8-RBS|DOWNLOAD]]'''&lt;br /&gt;
&lt;br /&gt;
This page is the home page of the open-source CEAlign PyMOL plugin.  The CE algorithm is a fast and accurate protein structure alignment algorithm, pioneered by Drs. Shindyalov and Bourne (See &lt;br /&gt;
References).  There are a few changes from the original CE publication (See Notes).  &lt;br /&gt;
&lt;br /&gt;
The source code is implemented in C with the rotations finally done by Numpy in Python.  Because the computationally complex portion of the code is written in C, it's quick.  That is, on my machines --- relatively fast 64-bit machines --- I can align two 400+ amino acid structures in about 0.300 s with the C++ implementation.&lt;br /&gt;
&lt;br /&gt;
This plugs into PyMol very easily.  See [[Cealign#The_Code|the code]] and [[Cealign#Examples|examples]] for installation and usage.&lt;br /&gt;
&lt;br /&gt;
== Comparison to PyMol ==&lt;br /&gt;
'''Why should you use this?'''&lt;br /&gt;
&lt;br /&gt;
PyMOL's structure alignment algorithm is fast and robust.  However, its first step is to perform a sequence alignment of the two selections.  Thus, proteins in the '''twilight zone''' or those having a low sequence identity, may not align well.  Because CE is a structure-based alignment, this is not a problem.  Consider the following example.  The image at LEFT was the result of CE-aligning two proteins (1C0M chain B to 1BCO).  The result is '''152''' aligned (alpha carbons) residues (not atoms) at '''4.96 Angstroms'''.  The image on the RIGHT shows the results from PyMol's align command: an alignment of '''221 atoms''' (not residues) at an RMSD of '''15.7 Angstroms'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:cealign_ex1.png|Cealign's results (152 aligned; 4.96 Ang.)&lt;br /&gt;
Image:pymol_align.png|PyMol's results (763 atoms; 18.4 Ang. )&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit vs. optAlign ===&lt;br /&gt;
====Take Home messages====&lt;br /&gt;
* [[fit]] and [[optAlign]] perform nearly equally as well&lt;br /&gt;
* if you need an algorithm with an appropriate reference, use [[optAlign]] (references at bottom of page).&lt;br /&gt;
* [[fit]] is faster -- if you're aligning many structures, use it over [[optAlign]]&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
[[optAlign]] is a function within the [[Cealign]] package that performs the optimal superposition of two objects of equal length.  [[optAlign]] follows the Kabsch algorithm which is a closed form, and provably optimal solution to the problem.  [[fit]] on the other hand uses the Jacobi rotations to iteratively arrive at the solution of optimal superposition.  The difference in error between [[optAilgn]] and [[fit]] seems to be a non-issue (see below) as they both arrive at equivalent solutions for the rotation matrix.  The two algorithms are undertake different approaches to orthogonally diagonalizing the correlation matrix.&lt;br /&gt;
&lt;br /&gt;
PyMOL's [[fit]] is fast and works well.  If you have to use something with a known reference then check out the &amp;quot;optAlign&amp;quot; function from the qkabsch.py file that comes with this [[Calign]] package.  If not, you can just use [[fit]] and avoid installing new software.  :-)&lt;br /&gt;
&lt;br /&gt;
optAlign is slower than fit.  I just tested both on a sample NMR ensemble; and, while not an extensive validation of &amp;quot;fit&amp;quot; it shows that (1) fit is faster; and (2) fit gets the same exact RMSD as &amp;quot;optAlign&amp;quot; (when optAlign is told to use all atoms, not just CA).  To make optAlign use all atoms and not just the alpha-carbon backbones, comment out (that is, put a &amp;quot;#&amp;quot; at the start of lines 183 and 184 in qkabsch.py, where it says &amp;quot;CUT HERE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 1nmr&lt;br /&gt;
split_states 1nmr&lt;br /&gt;
delete 1nmr&lt;br /&gt;
&lt;br /&gt;
# compare fit and optAlign RMSDs&lt;br /&gt;
for x in cmd.get_names(): print cmd.fit(&amp;quot;1nmr_0001&amp;quot;, x)&lt;br /&gt;
for x in cmd.get_names(): optAlign(x, &amp;quot;1nmr_0001&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# results from fit&lt;br /&gt;
0.0&lt;br /&gt;
4.50344991684&lt;br /&gt;
5.33588504791&lt;br /&gt;
5.78613853455&lt;br /&gt;
7.25597000122&lt;br /&gt;
6.67145586014&lt;br /&gt;
3.25131297112&lt;br /&gt;
3.36766290665&lt;br /&gt;
6.74802017212&lt;br /&gt;
5.1579709053&lt;br /&gt;
5.96959495544&lt;br /&gt;
6.68093347549&lt;br /&gt;
4.13217163086&lt;br /&gt;
5.51539039612&lt;br /&gt;
6.24266338348&lt;br /&gt;
6.03838825226&lt;br /&gt;
5.01363992691&lt;br /&gt;
5.33336305618&lt;br /&gt;
6.87617444992&lt;br /&gt;
7.797062397&lt;br /&gt;
&lt;br /&gt;
#results from optAlign&lt;br /&gt;
RMSD=0.000000&lt;br /&gt;
RMSD=4.503450&lt;br /&gt;
RMSD=5.335886&lt;br /&gt;
RMSD=5.786138&lt;br /&gt;
RMSD=7.255970&lt;br /&gt;
RMSD=6.671456&lt;br /&gt;
RMSD=3.251313&lt;br /&gt;
RMSD=3.367663&lt;br /&gt;
RMSD=6.748021&lt;br /&gt;
RMSD=5.157971&lt;br /&gt;
RMSD=5.969595&lt;br /&gt;
RMSD=6.680934&lt;br /&gt;
RMSD=4.132172&lt;br /&gt;
RMSD=5.515390&lt;br /&gt;
RMSD=6.242664&lt;br /&gt;
RMSD=6.038388&lt;br /&gt;
RMSD=5.013640&lt;br /&gt;
RMSD=5.333363&lt;br /&gt;
RMSD=6.876174&lt;br /&gt;
RMSD=7.797062&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
&lt;br /&gt;
CEAlign has the semantic, and syntactic formalism of&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign MASTER, TARGET&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where a post-condition of the algorithm is that the coordinates of the '''MASTER''' protein are unchanged.  This allows for easier multi-protein alignments.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1AUE, 1BZ4&lt;br /&gt;
cealign 1AUE, 1B68&lt;br /&gt;
cealign 1AUE, 1A7V&lt;br /&gt;
cealign 1AUE, 1CPR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will superimpose all the TARGETS onto the MASTER.&lt;br /&gt;
&lt;br /&gt;
=====Examples=====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1cll and i. 42-55, 1ggz and c. A&lt;br /&gt;
cealign 1kao, 1ctq&lt;br /&gt;
cealign 1fao, 1eaz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Multiple Structure Alignments=====&lt;br /&gt;
Use the '''alignto''' command, now provided with cealign.  Just type,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
alignto PROT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to align all your proteins in PyMOL to the one called, '''PROT'''.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
See '''Changes''' for updates.  But, overall, the results here are great.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:v7_1fao_1eaz.png|EASY: 1FAO vs. 1EAZ; 96 residues, 1.28 Ang&lt;br /&gt;
Image:v7_1cbs_1hmt.png|EASY: 1CBS vs. 1HMT; 128 residues, 2.01 Ang&lt;br /&gt;
Image:v7_1a15_1b50.png|MODERATE: 1A15 vs 1B50; 56 residues, 2.54 Ang.&lt;br /&gt;
Image:v7_1oan_1s6n.png|EASY: 1OAN vs. 1S6N (state 1); 96 residues aligned to 3.83 Ang. RMSD.&lt;br /&gt;
Image:v7_1rlw_1byn.png|HARD: 1RLW to 1BYN; 104 residues; 2.21 Ang.&lt;br /&gt;
Image:v7_1ten_3hhr.png|HARD: 1TEN vs. 3HHR; 80 residues, 2.91 Ang.&lt;br /&gt;
Image:v7_2sim_1nsb.png|HARD: 2SIM vs. 1NSB; 272 residues, 4.93 Ang.&lt;br /&gt;
Image:v7_1cew_1mol.png|HARD: 1CEW vs. 1MOL; 80 residues, 4.03 Ang.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
===Mac OS X (10.5)===&lt;br /&gt;
[[Image:Cealign mac os x.png|300px|thumb|center|CEAlign running on Mac OS X (10.5)]]&lt;br /&gt;
* Install PyMOL under fink.&lt;br /&gt;
* Install Numpy for fink:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/sw/bin/fink install scipy-core-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Download and install cealign (download instructions below)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /sw/bin/python setup.py install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* In PyMOL, run the two scripts needed for cealing: &amp;quot;cealign.py&amp;quot; and &amp;quot;qkabsch.py&amp;quot;. These are located in the cealign directory you previously downloaded.&lt;br /&gt;
* Voila!&lt;br /&gt;
* Note that the above python version must match the same version that is used by PyMOL. If you are using the pre-compiled version of MacPyMOL, the above instructions won't work.&lt;br /&gt;
&lt;br /&gt;
===Windows systems===&lt;br /&gt;
====CEAlign 0.9====&lt;br /&gt;
This is a Win32 build of CEAlign 0.9 [http://pymolwiki.org/index.php/Cealign#Beta_Version_0.9]&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Christoph Gohlke's latest '''unofficial''' PyMol build: http://www.lfd.uci.edu/~gohlke/#pythonlibs&lt;br /&gt;
* &amp;quot;Python 2.6.2 Windows installer&amp;quot; from python.org: http://www.python.org/download/&lt;br /&gt;
* '''CEAlign09Win32.zip''' from: http://users.umassmed.edu/shivender.shandilya/pymol/CEAlign09Win32.zip&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Download the '''CEAlign09Win32.zip''' file&lt;br /&gt;
# Unzip the downloaded file and follow the directions as per the included README.txt&lt;br /&gt;
# Enjoy the ''awesomeness'' that is CEAlign!&lt;br /&gt;
====CEAlign 0.8====&lt;br /&gt;
This is a quick and dirty method to use CEAlign 0.8 on Win32 system with the '''official''' Pymol builds...&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Latest PyMol, installed on your system&lt;br /&gt;
* Numpy for python 2.4 -- quick download of just what's needed: http://users.umassmed.edu/shivender.shandilya/pymol/cealign08/numpy.zip&lt;br /&gt;
[Note: If this file is corrupt, you may download the latest 'Numpy for Python 2.4' directly from SourceForge.net&lt;br /&gt;
* Pre-compiled ccealign.pyd python module: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/ccealign.zip&lt;br /&gt;
* Modified pymolrc: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/pymolrc&lt;br /&gt;
* cealign.py and qkabsch.py from the Cealign-0.8-RBS package: download below&lt;br /&gt;
&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Unzip the numpy.zip file, which will give you a folder named '''numpy'''&lt;br /&gt;
# Move this entire folder to: C:\Program Files\DeLano Scientific\PyMOL\modules\  (or the corresponding location on your system)&lt;br /&gt;
# Unzip ccealign.zip, which will give you a file called  '''ccealign.pyd'''&lt;br /&gt;
# Move this pyd file to: C:\Program Files\DeLano Scientific\PyMOL\py24\DLLs\  (or the corresponding location on your system)&lt;br /&gt;
# Copy the downloaded '''pymolrc''' file to: C:\Program Files\DeLano Scientific\PyMOL\   (or the corresponding location on your system)&lt;br /&gt;
# Extract and copy the files cealign.py and qkabsch.py from the Cealign-0.8-RBS package to: C:\Program Files\DeLano Scientific\PyMOL\py24\Lib\   (or the corresponding location on your system)&lt;br /&gt;
# Run PyMol and load some molecules&lt;br /&gt;
# Run this command in Pymol: '''cealign molecule1, molecule2'''&lt;br /&gt;
# Enjoy!&lt;br /&gt;
&lt;br /&gt;
===Gentoo Linux===&lt;br /&gt;
Add the science overlay via&lt;br /&gt;
 layman -a sci&lt;br /&gt;
and emerge the cealign plugin&lt;br /&gt;
 emerge pymol-plugins-cealign&lt;br /&gt;
&lt;br /&gt;
===*nix systems===&lt;br /&gt;
====Requirements====&lt;br /&gt;
* C compiler&lt;br /&gt;
* Python 2.4+ with distutils&lt;br /&gt;
* Numpy&lt;br /&gt;
** for User-compiled PyMOL: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install&amp;lt;/source&amp;gt;&lt;br /&gt;
** for the precompiled version of PyMOL &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR_TO/pymol/ext/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Directions====&lt;br /&gt;
# uncompress the distribution file '''cealign-VERSION.tgz'''&lt;br /&gt;
# cd cealign-VERSION&lt;br /&gt;
# sudo python setup.py install  # if you installed by PyMOL by hand&lt;br /&gt;
## python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR/TO/pymol/ext/  # if you are using the precompiled binary download&lt;br /&gt;
# insert &amp;quot;run DIR_TO_CEALIGN/cealign.py&amp;quot; and &amp;quot;run DIR_TO_CEALIGN/qkabsch.py&amp;quot; into your '''.pymolrc''' file, or just run the two Python scripts by hand.&lt;br /&gt;
# load some molecules&lt;br /&gt;
# run, '''cealign molecule1, molecule2'''&lt;br /&gt;
# enjoy&lt;br /&gt;
&lt;br /&gt;
=====Pre-compiled Hackish Install=====&lt;br /&gt;
For those people that prefer to use the pre-compiled version of PyMOL, here are the basics for your install.  '''This is a poor method of installing Cealign.  I suggest users compile and install their own PyMOL.'''  The final goal is to get &lt;br /&gt;
# '''ccealign.so''' module into '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# numpy installed (get the numpy directory into (or linked into) '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# and be able to run cealign.py and qkabsch.py from PyMOL.&lt;br /&gt;
If you can do the above three steps, '''cealign''' should run from the pre-compiled PyMOL.&lt;br /&gt;
&lt;br /&gt;
In more detail, on a completely fictitious machine --- that is, I created the following commands from a fake machine and I don't expect a copy/paste of this to work '''anywhere''', but the commands should be helpful enough to those who need it:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# NOTES:&lt;br /&gt;
# This is fake code: don't copy/paste it.&lt;br /&gt;
#&lt;br /&gt;
# PYMOL='dir to precompiled PyMOL install'&lt;br /&gt;
# CEALIGN='dir where you will unpack cealign'&lt;br /&gt;
# replace lib with lib64 for x86-64&lt;br /&gt;
# install numpy&lt;br /&gt;
apt-get install numpy&lt;br /&gt;
&lt;br /&gt;
# link numpy to PyMOL&lt;br /&gt;
ln -s /usr/local/lib/python2.4/site-packages/numpy PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# download and install Cealign&lt;br /&gt;
wget http://www.pymolwiki.org/images/e/ed/Cealign-0.6.tar.bz2&lt;br /&gt;
tar -jxvf Cealign-0.6.tar.bz2&lt;br /&gt;
cd cealign-0.6&lt;br /&gt;
sudo python setup.py build&lt;br /&gt;
cp build/lib-XYZ-linux/ccealign.so PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# run pymol and try it out&lt;br /&gt;
pymol&lt;br /&gt;
run CEALIGN/cealign.py&lt;br /&gt;
run CEALIGN/qkabsch.py&lt;br /&gt;
fetch 1cew 1mol, async=0&lt;br /&gt;
cealign 1c, 1m&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
Please unpack and read the documentation.  All comments/questions should be directed to Jason Vertrees (javertre _at_ utmb ...dot... edu).  &lt;br /&gt;
&lt;br /&gt;
'''LATEST IS v0.8-RBS'''.  (Dedicated to Bryan Sutton for allowing me to use his computer for testing.)&lt;br /&gt;
&lt;br /&gt;
=== Version 0.8-RBS ===&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.tar.bz2|CE Align v0.8-RBS]] (bz2)'''&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.zip|CE Align v0.8-RBS]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
=== Beta Version 0.9 ===&lt;br /&gt;
Use at your own peril.  Please report any problems or inconsistent alignments to this discussion page, or to me directly; my email address all over this page.&lt;br /&gt;
&lt;br /&gt;
'''Improvements/Changes''':&lt;br /&gt;
* All C++&lt;br /&gt;
** So, faster&lt;br /&gt;
** comes with the dependencies built in&lt;br /&gt;
* No numpy&lt;br /&gt;
&lt;br /&gt;
''' Download: [[Media:Cealign-0.9.zip|CE Align v0.9]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
== Coming Soon ==&lt;br /&gt;
* Windows binary&lt;br /&gt;
* Linux Binaries (32bit, x86-64)&lt;br /&gt;
* Better instructions for precompiled distributions&lt;br /&gt;
* Optimization&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2008-03-25 ===&lt;br /&gt;
Pure C++ code released.  See the beta version above.&lt;br /&gt;
&lt;br /&gt;
=== 2007-04-14 ===&lt;br /&gt;
v0.8-RBS source updated.  Found the bug that had been plaguing 32-bit machines.  This should be the last release for a little while.&lt;br /&gt;
&lt;br /&gt;
Also, I provide the option of aligning based solely upon RMSD or upon the better CE-Score.  See the '''References''' for information on the '''CE Score'''.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Post your problems/solutions here.&lt;br /&gt;
&lt;br /&gt;
=== Unicode Issues in Python/Numpy ===&lt;br /&gt;
'''Problem''': Running/Installing cealign gives&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parser.py&amp;quot;,&lt;br /&gt;
line 308, in parse&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parsing.py&amp;quot;,&lt;br /&gt;
line 410, in run_file&lt;br /&gt;
  File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
    import numpy&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 36, in ?&lt;br /&gt;
    import core&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/core/__init__.py&amp;quot;, line 5, in ?&lt;br /&gt;
    import multiarray&lt;br /&gt;
ImportError: /home/byron/software/pymol/ext/lib/python2.4/site-packages/numpy/core/multiarray.so:&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where the important line is&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This problem indicates that your Numpy Unicode is using a different byte-size for unicode characters than is the Python distribution your PyMOL is running from.  For example, this can happen if you use the pre-built PyMOL and some other pre-built Numpy package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': Hand-install Numpy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LinAlg Module Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parser.py&amp;quot;, line 285, in parse&lt;br /&gt;
parsing.run_file(exp_path(args[nest][0]),pymol_names,pymol_names)&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parsing.py&amp;quot;, line 407, in run_file&lt;br /&gt;
execfile(file,global_ns,local_ns)&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 40, in ?&lt;br /&gt;
import linalg&lt;br /&gt;
ImportError: No module named linalg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': You do not have the linear algebra module installed (or Python can't find it) on your machine.  One workaround is to install [http://www.scipy.org/ Scientific Python]. (on debian/ubuntu this can be done by: sudo apt-get install python-scipy) Another is to reinstall the Numpy package from source, ensuring that you have the necessary requirements for the linear algebra module (linpack, lapack, fft, etc.).&lt;br /&gt;
&lt;br /&gt;
=== CCEAlign &amp;amp; NumPy Modules Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run cealign.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
  File &amp;quot;/usr/local/pymol/scripts/cealign-0.1/cealign.py&amp;quot;, line 59, in ?&lt;br /&gt;
    from ccealign import ccealign&lt;br /&gt;
ImportError: No module named ccealign&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
ImportError: No module named numpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': This problem occurs under [http://www.apple.com/macosx Apple Mac OS X] if (a) the Apple's python executable on your machine (/usr/bin/python, currently version 2.3.5) is superseded by [http://fink.sourceforge.net/ Fink]'s python executable (/sw/bin/python, currently version 2.5) and (b) you are using [http://delsci.com/rel/099/#MacOSX precompiled versions of PyMOL] (MacPyMOL, PyMOLX11Hybrid or PyMOL for Mac OS X/X11). These executables ignore Fink's python and instead use Apple's - so, in order to run CE Align, one must install NumPy (as well as CE Align itself) using Apple's python. To do so, first download the [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 Numpy source code archive] (currently version 1.0.1), unpack it, change directory to numpy-1.0.1 and specify the full path to Apple's python executable during installation: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;. Then, donwload the [http://www.pymolwiki.org/index.php/Cealign#The_Code CE Align source code archive] (currently version 0.2), unpack it, change directory to cealign-0.2 and finally install CE Align as follows: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;.&lt;br /&gt;
[[User:Lucajovine|Luca Jovine]] 05:11, 25 January 2007 (CST).&lt;br /&gt;
&lt;br /&gt;
=== The Function SimpAlign() is not found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;cealign 1CLL,1GGZ&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;C:\Program Files (x86)\DeLano Scientific\PyMOL/modules\pymol\parser.py&amp;quot;, line 203, in parse&lt;br /&gt;
    result=apply(kw[nest][0],args[nest],kw_args[nest])&lt;br /&gt;
  File &amp;quot;py24/Lib/cealign.py&amp;quot;, line 177, in cealign&lt;br /&gt;
    curScore = simpAlign( matA, matB, mol1, mol2, stored.mol1, stored.mol2, align=0, L=len(matA) )&lt;br /&gt;
NameError: global name 'simpAlign' is not defined&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am running PyMOL v. 0.99rc6 on Win XP Professional x64 edition version 2003 sp2 and have followed the windows install procedure as described above.&lt;br /&gt;
&lt;br /&gt;
'''Answer''': This simply means that PyMOL couldn't find the simplAlign function.  To let PyMOL know about this, you must run the following commands before running [[cealign]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run /your/path/to/cealign/qkabsch.py&lt;br /&gt;
run /your/path/to/cealign/cealign.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
but most people that use cealign would just put these two lines in their '''.pymolrc''' file.&lt;br /&gt;
&lt;br /&gt;
=== Short Alignments Don't Work ===&lt;br /&gt;
If you are trying to align fewer than 16 residues then use [[align]], [[super]], or [[optAlign]].  CE uses a window size of 8; and to build a path of more than one window, you need 2*8=16 residues.  I will insert some code to re-route small alignments to one of the aforementioned alignment algorithms.&lt;br /&gt;
&lt;br /&gt;
=== It Worked A Second Ago! ===&lt;br /&gt;
[[Image:Rewind.png|thumb|right|Showing the rewind button to rewind to state 1.]]&lt;br /&gt;
&lt;br /&gt;
If you were using cealign (or alignto) and now the commands don't work -- that is, they return an RMSD, but don't actually superimpose the objects, then you have a simple problem dealing with states.  Most likely the cause of this oddness was (1) when you issued &amp;quot;cealign prot1, prot2&amp;quot; one of them was actually an ensemble of states or (2) you are trying to align to proteins with only one state, but are not looking at state one (because the last protein you were considering had more than one state and you quit editing that protein on a state that's not state 1).  To fix this, use the rewind button to get the proteins back into state 1 &amp;amp; reissue the cealign/alignto command.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Text taken from PubMed and formatted for the wiki.  The first reference is the most important for this code.&lt;br /&gt;
&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''Protein structure alignment by incremental combinatorial extension (CE) of the optimal path.'''  ''Protein Eng.'' 1998 Sep;11(9):739-47.  PMID: 9796821 [PubMed - indexed for MEDLINE]&lt;br /&gt;
# Jia Y, Dewey TG, Shindyalov IN, Bourne PE. '''A new scoring function and associated statistical significance for structure alignment by CE.'''  ''J Comput Biol.'' 2004;11(5):787-99. PMID: 15700402 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Pekurovsky D, Shindyalov IN, Bourne PE. '''A case study of high-throughput biological data processing on parallel platforms.'''  ''Bioinformatics.'' 2004 Aug 12;20(12):1940-7. Epub 2004 Mar 25.  PMID: 15044237 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''An alternative view of protein fold space.'''  ''Proteins.'' 2000 Feb 15;38(3):247-60.  PMID: 10713986 [PubMed - indexed for MEDLINE]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
The CEAlign and all its subprograms that I wrote, are released under the open source Free BSD License (BSDL).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;br /&gt;
[[Category:Structure_Alignment|Cealign]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Cealign_plugin&amp;diff=13277</id>
		<title>Cealign plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Cealign_plugin&amp;diff=13277"/>
		<updated>2009-07-17T17:42:42Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
'''Go directly to [[Cealign#Version_0.8-RBS|DOWNLOAD]]'''&lt;br /&gt;
&lt;br /&gt;
This page is the home page of the open-source CEAlign PyMOL plugin.  The CE algorithm is a fast and accurate protein structure alignment algorithm, pioneered by Drs. Shindyalov and Bourne (See &lt;br /&gt;
References).  There are a few changes from the original CE publication (See Notes).  &lt;br /&gt;
&lt;br /&gt;
The source code is implemented in C with the rotations finally done by Numpy in Python.  Because the computationally complex portion of the code is written in C, it's quick.  That is, on my machines --- relatively fast 64-bit machines --- I can align two 400+ amino acid structures in about 0.300 s with the C++ implementation.&lt;br /&gt;
&lt;br /&gt;
This plugs into PyMol very easily.  See [[Cealign#The_Code|the code]] and [[Cealign#Examples|examples]] for installation and usage.&lt;br /&gt;
&lt;br /&gt;
== Comparison to PyMol ==&lt;br /&gt;
'''Why should you use this?'''&lt;br /&gt;
&lt;br /&gt;
PyMOL's structure alignment algorithm is fast and robust.  However, its first step is to perform a sequence alignment of the two selections.  Thus, proteins in the '''twilight zone''' or those having a low sequence identity, may not align well.  Because CE is a structure-based alignment, this is not a problem.  Consider the following example.  The image at LEFT was the result of CE-aligning two proteins (1C0M chain B to 1BCO).  The result is '''152''' aligned (alpha carbons) residues (not atoms) at '''4.96 Angstroms'''.  The image on the RIGHT shows the results from PyMol's align command: an alignment of '''221 atoms''' (not residues) at an RMSD of '''15.7 Angstroms'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:cealign_ex1.png|Cealign's results (152 aligned; 4.96 Ang.)&lt;br /&gt;
Image:pymol_align.png|PyMol's results (763 atoms; 18.4 Ang. )&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit vs. optAlign ===&lt;br /&gt;
====Take Home messages====&lt;br /&gt;
* [[fit]] and [[optAlign]] perform nearly equally as well&lt;br /&gt;
* if you need an algorithm with an appropriate reference, use [[optAlign]] (references at bottom of page).&lt;br /&gt;
* [[fit]] is faster -- if you're aligning many structures, use it over [[optAlign]]&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
[[optAlign]] is a function within the [[Cealign]] package that performs the optimal superposition of two objects of equal length.  [[optAlign]] follows the Kabsch algorithm which is a closed form, and provably optimal solution to the problem.  [[fit]] on the other hand uses the Jacobi rotations to iteratively arrive at the solution of optimal superposition.  The difference in error between [[optAilgn]] and [[fit]] seems to be a non-issue (see below) as they both arrive at equivalent solutions for the rotation matrix.  The two algorithms are undertake different approaches to orthogonally diagonalizing the correlation matrix.&lt;br /&gt;
&lt;br /&gt;
PyMOL's [[fit]] is fast and works well.  If you have to use something with a known reference then check out the &amp;quot;optAlign&amp;quot; function from the qkabsch.py file that comes with this [[Calign]] package.  If not, you can just use [[fit]] and avoid installing new software.  :-)&lt;br /&gt;
&lt;br /&gt;
optAlign is slower than fit.  I just tested both on a sample NMR ensemble; and, while not an extensive validation of &amp;quot;fit&amp;quot; it shows that (1) fit is faster; and (2) fit gets the same exact RMSD as &amp;quot;optAlign&amp;quot; (when optAlign is told to use all atoms, not just CA).  To make optAlign use all atoms and not just the alpha-carbon backbones, comment out (that is, put a &amp;quot;#&amp;quot; at the start of lines 183 and 184 in qkabsch.py, where it says &amp;quot;CUT HERE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 1nmr&lt;br /&gt;
split_states 1nmr&lt;br /&gt;
delete 1nmr&lt;br /&gt;
&lt;br /&gt;
# compare fit and optAlign RMSDs&lt;br /&gt;
for x in cmd.get_names(): print cmd.fit(&amp;quot;1nmr_0001&amp;quot;, x)&lt;br /&gt;
for x in cmd.get_names(): optAlign(x, &amp;quot;1nmr_0001&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# results from fit&lt;br /&gt;
0.0&lt;br /&gt;
4.50344991684&lt;br /&gt;
5.33588504791&lt;br /&gt;
5.78613853455&lt;br /&gt;
7.25597000122&lt;br /&gt;
6.67145586014&lt;br /&gt;
3.25131297112&lt;br /&gt;
3.36766290665&lt;br /&gt;
6.74802017212&lt;br /&gt;
5.1579709053&lt;br /&gt;
5.96959495544&lt;br /&gt;
6.68093347549&lt;br /&gt;
4.13217163086&lt;br /&gt;
5.51539039612&lt;br /&gt;
6.24266338348&lt;br /&gt;
6.03838825226&lt;br /&gt;
5.01363992691&lt;br /&gt;
5.33336305618&lt;br /&gt;
6.87617444992&lt;br /&gt;
7.797062397&lt;br /&gt;
&lt;br /&gt;
#results from optAlign&lt;br /&gt;
RMSD=0.000000&lt;br /&gt;
RMSD=4.503450&lt;br /&gt;
RMSD=5.335886&lt;br /&gt;
RMSD=5.786138&lt;br /&gt;
RMSD=7.255970&lt;br /&gt;
RMSD=6.671456&lt;br /&gt;
RMSD=3.251313&lt;br /&gt;
RMSD=3.367663&lt;br /&gt;
RMSD=6.748021&lt;br /&gt;
RMSD=5.157971&lt;br /&gt;
RMSD=5.969595&lt;br /&gt;
RMSD=6.680934&lt;br /&gt;
RMSD=4.132172&lt;br /&gt;
RMSD=5.515390&lt;br /&gt;
RMSD=6.242664&lt;br /&gt;
RMSD=6.038388&lt;br /&gt;
RMSD=5.013640&lt;br /&gt;
RMSD=5.333363&lt;br /&gt;
RMSD=6.876174&lt;br /&gt;
RMSD=7.797062&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
&lt;br /&gt;
CEAlign has the semantic, and syntactic formalism of&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign MASTER, TARGET&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where a post-condition of the algorithm is that the coordinates of the '''MASTER''' protein are unchanged.  This allows for easier multi-protein alignments.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1AUE, 1BZ4&lt;br /&gt;
cealign 1AUE, 1B68&lt;br /&gt;
cealign 1AUE, 1A7V&lt;br /&gt;
cealign 1AUE, 1CPR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will superimpose all the TARGETS onto the MASTER.&lt;br /&gt;
&lt;br /&gt;
=====Examples=====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1cll and i. 42-55, 1ggz and c. A&lt;br /&gt;
cealign 1kao, 1ctq&lt;br /&gt;
cealign 1fao, 1eaz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Multiple Structure Alignments=====&lt;br /&gt;
Use the '''alignto''' command, now provided with cealign.  Just type,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
alignto PROT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to align all your proteins in PyMOL to the one called, '''PROT'''.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
See '''Changes''' for updates.  But, overall, the results here are great.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:v7_1fao_1eaz.png|EASY: 1FAO vs. 1EAZ; 96 residues, 1.28 Ang&lt;br /&gt;
Image:v7_1cbs_1hmt.png|EASY: 1CBS vs. 1HMT; 128 residues, 2.01 Ang&lt;br /&gt;
Image:v7_1a15_1b50.png|MODERATE: 1A15 vs 1B50; 56 residues, 2.54 Ang.&lt;br /&gt;
Image:v7_1oan_1s6n.png|EASY: 1OAN vs. 1S6N (state 1); 96 residues aligned to 3.83 Ang. RMSD.&lt;br /&gt;
Image:v7_1rlw_1byn.png|HARD: 1RLW to 1BYN; 104 residues; 2.21 Ang.&lt;br /&gt;
Image:v7_1ten_3hhr.png|HARD: 1TEN vs. 3HHR; 80 residues, 2.91 Ang.&lt;br /&gt;
Image:v7_2sim_1nsb.png|HARD: 2SIM vs. 1NSB; 272 residues, 4.93 Ang.&lt;br /&gt;
Image:v7_1cew_1mol.png|HARD: 1CEW vs. 1MOL; 80 residues, 4.03 Ang.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
===Mac OS X (10.5)===&lt;br /&gt;
[[Image:Cealign mac os x.png|300px|thumb|center|CEAlign running on Mac OS X (10.5)]]&lt;br /&gt;
* Install PyMOL under fink.&lt;br /&gt;
* Install Numpy for fink:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/sw/bin/fink install scipy-core-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Download and install cealign (download instructions below)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /sw/bin/python setup.py install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* In PyMOL, run the two scripts needed for cealing: &amp;quot;cealign.py&amp;quot; and &amp;quot;qkabsch.py&amp;quot;. These are located in the cealign directory you previously downloaded.&lt;br /&gt;
* Voila!&lt;br /&gt;
* Note that the above python version must match the same version that is used by PyMOL. If you are using the pre-compiled version of MacPyMOL, the above instructions won't work.&lt;br /&gt;
&lt;br /&gt;
===Windows systems===&lt;br /&gt;
====CEAlign 0.9====&lt;br /&gt;
This is a Win32 build of CEAlign 0.9 [http://pymolwiki.org/index.php/Cealign#Beta_Version_0.9]&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Christoph Gohlke's latest '''unofficial''' PyMol build: http://www.lfd.uci.edu/~gohlke/#pythonlibs&lt;br /&gt;
* &amp;quot;Python 2.6.2 Windows installer&amp;quot; from python.org: http://www.python.org/download/&lt;br /&gt;
* '''CEAlign09Win32.zip''' from: http://users.umassmed.edu/shivender.shandilya/pymol/CEAlign09Win32.zip&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Download the '''CEAlign09Win32.zip''' file&lt;br /&gt;
# Unzip the downloaded file and follow the directions as per the included README.txt&lt;br /&gt;
# Enjoy the ''awesomeness'' that is CEAlign!&lt;br /&gt;
====CEAlign 0.8====&lt;br /&gt;
This is a quick and dirty method to use CEAlign 0.8 on Win32 system with the '''official''' Pymol builds...&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Latest PyMol, installed on your system&lt;br /&gt;
* Numpy for python 2.4 -- quick download of just what's needed: http://users.umassmed.edu/shivender.shandilya/cealign08/numpy.zip&lt;br /&gt;
[Note: If this file is corrupt, you may download the latest 'Numpy for Python 2.4' directly from SourceForge.net&lt;br /&gt;
* Pre-compiled ccealign.pyd python module: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/ccealign.zip&lt;br /&gt;
* Modified pymolrc: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/pymolrc&lt;br /&gt;
* cealign.py and qkabsch.py from the Cealign-0.8-RBS package: download below&lt;br /&gt;
&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Unzip the numpy.zip file, which will give you a folder named '''numpy'''&lt;br /&gt;
# Move this entire folder to: C:\Program Files\DeLano Scientific\PyMOL\modules\  (or the corresponding location on your system)&lt;br /&gt;
# Unzip ccealign.zip, which will give you a file called  '''ccealign.pyd'''&lt;br /&gt;
# Move this pyd file to: C:\Program Files\DeLano Scientific\PyMOL\py24\DLLs\  (or the corresponding location on your system)&lt;br /&gt;
# Copy the downloaded '''pymolrc''' file to: C:\Program Files\DeLano Scientific\PyMOL\   (or the corresponding location on your system)&lt;br /&gt;
# Extract and copy the files cealign.py and qkabsch.py from the Cealign-0.8-RBS package to: C:\Program Files\DeLano Scientific\PyMOL\py24\Lib\   (or the corresponding location on your system)&lt;br /&gt;
# Run PyMol and load some molecules&lt;br /&gt;
# Run this command in Pymol: '''cealign molecule1, molecule2'''&lt;br /&gt;
# Enjoy!&lt;br /&gt;
&lt;br /&gt;
===Gentoo Linux===&lt;br /&gt;
Add the science overlay via&lt;br /&gt;
 layman -a sci&lt;br /&gt;
and emerge the cealign plugin&lt;br /&gt;
 emerge pymol-plugins-cealign&lt;br /&gt;
&lt;br /&gt;
===*nix systems===&lt;br /&gt;
====Requirements====&lt;br /&gt;
* C compiler&lt;br /&gt;
* Python 2.4+ with distutils&lt;br /&gt;
* Numpy&lt;br /&gt;
** for User-compiled PyMOL: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install&amp;lt;/source&amp;gt;&lt;br /&gt;
** for the precompiled version of PyMOL &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR_TO/pymol/ext/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Directions====&lt;br /&gt;
# uncompress the distribution file '''cealign-VERSION.tgz'''&lt;br /&gt;
# cd cealign-VERSION&lt;br /&gt;
# sudo python setup.py install  # if you installed by PyMOL by hand&lt;br /&gt;
## python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR/TO/pymol/ext/  # if you are using the precompiled binary download&lt;br /&gt;
# insert &amp;quot;run DIR_TO_CEALIGN/cealign.py&amp;quot; and &amp;quot;run DIR_TO_CEALIGN/qkabsch.py&amp;quot; into your '''.pymolrc''' file, or just run the two Python scripts by hand.&lt;br /&gt;
# load some molecules&lt;br /&gt;
# run, '''cealign molecule1, molecule2'''&lt;br /&gt;
# enjoy&lt;br /&gt;
&lt;br /&gt;
=====Pre-compiled Hackish Install=====&lt;br /&gt;
For those people that prefer to use the pre-compiled version of PyMOL, here are the basics for your install.  '''This is a poor method of installing Cealign.  I suggest users compile and install their own PyMOL.'''  The final goal is to get &lt;br /&gt;
# '''ccealign.so''' module into '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# numpy installed (get the numpy directory into (or linked into) '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# and be able to run cealign.py and qkabsch.py from PyMOL.&lt;br /&gt;
If you can do the above three steps, '''cealign''' should run from the pre-compiled PyMOL.&lt;br /&gt;
&lt;br /&gt;
In more detail, on a completely fictitious machine --- that is, I created the following commands from a fake machine and I don't expect a copy/paste of this to work '''anywhere''', but the commands should be helpful enough to those who need it:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# NOTES:&lt;br /&gt;
# This is fake code: don't copy/paste it.&lt;br /&gt;
#&lt;br /&gt;
# PYMOL='dir to precompiled PyMOL install'&lt;br /&gt;
# CEALIGN='dir where you will unpack cealign'&lt;br /&gt;
# replace lib with lib64 for x86-64&lt;br /&gt;
# install numpy&lt;br /&gt;
apt-get install numpy&lt;br /&gt;
&lt;br /&gt;
# link numpy to PyMOL&lt;br /&gt;
ln -s /usr/local/lib/python2.4/site-packages/numpy PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# download and install Cealign&lt;br /&gt;
wget http://www.pymolwiki.org/images/e/ed/Cealign-0.6.tar.bz2&lt;br /&gt;
tar -jxvf Cealign-0.6.tar.bz2&lt;br /&gt;
cd cealign-0.6&lt;br /&gt;
sudo python setup.py build&lt;br /&gt;
cp build/lib-XYZ-linux/ccealign.so PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# run pymol and try it out&lt;br /&gt;
pymol&lt;br /&gt;
run CEALIGN/cealign.py&lt;br /&gt;
run CEALIGN/qkabsch.py&lt;br /&gt;
fetch 1cew 1mol, async=0&lt;br /&gt;
cealign 1c, 1m&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
Please unpack and read the documentation.  All comments/questions should be directed to Jason Vertrees (javertre _at_ utmb ...dot... edu).  &lt;br /&gt;
&lt;br /&gt;
'''LATEST IS v0.8-RBS'''.  (Dedicated to Bryan Sutton for allowing me to use his computer for testing.)&lt;br /&gt;
&lt;br /&gt;
=== Version 0.8-RBS ===&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.tar.bz2|CE Align v0.8-RBS]] (bz2)'''&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.zip|CE Align v0.8-RBS]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
=== Beta Version 0.9 ===&lt;br /&gt;
Use at your own peril.  Please report any problems or inconsistent alignments to this discussion page, or to me directly; my email address all over this page.&lt;br /&gt;
&lt;br /&gt;
'''Improvements/Changes''':&lt;br /&gt;
* All C++&lt;br /&gt;
** So, faster&lt;br /&gt;
** comes with the dependencies built in&lt;br /&gt;
* No numpy&lt;br /&gt;
&lt;br /&gt;
''' Download: [[Media:Cealign-0.9.zip|CE Align v0.9]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
== Coming Soon ==&lt;br /&gt;
* Windows binary&lt;br /&gt;
* Linux Binaries (32bit, x86-64)&lt;br /&gt;
* Better instructions for precompiled distributions&lt;br /&gt;
* Optimization&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2008-03-25 ===&lt;br /&gt;
Pure C++ code released.  See the beta version above.&lt;br /&gt;
&lt;br /&gt;
=== 2007-04-14 ===&lt;br /&gt;
v0.8-RBS source updated.  Found the bug that had been plaguing 32-bit machines.  This should be the last release for a little while.&lt;br /&gt;
&lt;br /&gt;
Also, I provide the option of aligning based solely upon RMSD or upon the better CE-Score.  See the '''References''' for information on the '''CE Score'''.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Post your problems/solutions here.&lt;br /&gt;
&lt;br /&gt;
=== Unicode Issues in Python/Numpy ===&lt;br /&gt;
'''Problem''': Running/Installing cealign gives&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parser.py&amp;quot;,&lt;br /&gt;
line 308, in parse&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parsing.py&amp;quot;,&lt;br /&gt;
line 410, in run_file&lt;br /&gt;
  File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
    import numpy&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 36, in ?&lt;br /&gt;
    import core&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/core/__init__.py&amp;quot;, line 5, in ?&lt;br /&gt;
    import multiarray&lt;br /&gt;
ImportError: /home/byron/software/pymol/ext/lib/python2.4/site-packages/numpy/core/multiarray.so:&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where the important line is&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This problem indicates that your Numpy Unicode is using a different byte-size for unicode characters than is the Python distribution your PyMOL is running from.  For example, this can happen if you use the pre-built PyMOL and some other pre-built Numpy package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': Hand-install Numpy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LinAlg Module Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parser.py&amp;quot;, line 285, in parse&lt;br /&gt;
parsing.run_file(exp_path(args[nest][0]),pymol_names,pymol_names)&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parsing.py&amp;quot;, line 407, in run_file&lt;br /&gt;
execfile(file,global_ns,local_ns)&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 40, in ?&lt;br /&gt;
import linalg&lt;br /&gt;
ImportError: No module named linalg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': You do not have the linear algebra module installed (or Python can't find it) on your machine.  One workaround is to install [http://www.scipy.org/ Scientific Python]. (on debian/ubuntu this can be done by: sudo apt-get install python-scipy) Another is to reinstall the Numpy package from source, ensuring that you have the necessary requirements for the linear algebra module (linpack, lapack, fft, etc.).&lt;br /&gt;
&lt;br /&gt;
=== CCEAlign &amp;amp; NumPy Modules Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run cealign.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
  File &amp;quot;/usr/local/pymol/scripts/cealign-0.1/cealign.py&amp;quot;, line 59, in ?&lt;br /&gt;
    from ccealign import ccealign&lt;br /&gt;
ImportError: No module named ccealign&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
ImportError: No module named numpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': This problem occurs under [http://www.apple.com/macosx Apple Mac OS X] if (a) the Apple's python executable on your machine (/usr/bin/python, currently version 2.3.5) is superseded by [http://fink.sourceforge.net/ Fink]'s python executable (/sw/bin/python, currently version 2.5) and (b) you are using [http://delsci.com/rel/099/#MacOSX precompiled versions of PyMOL] (MacPyMOL, PyMOLX11Hybrid or PyMOL for Mac OS X/X11). These executables ignore Fink's python and instead use Apple's - so, in order to run CE Align, one must install NumPy (as well as CE Align itself) using Apple's python. To do so, first download the [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 Numpy source code archive] (currently version 1.0.1), unpack it, change directory to numpy-1.0.1 and specify the full path to Apple's python executable during installation: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;. Then, donwload the [http://www.pymolwiki.org/index.php/Cealign#The_Code CE Align source code archive] (currently version 0.2), unpack it, change directory to cealign-0.2 and finally install CE Align as follows: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;.&lt;br /&gt;
[[User:Lucajovine|Luca Jovine]] 05:11, 25 January 2007 (CST).&lt;br /&gt;
&lt;br /&gt;
=== The Function SimpAlign() is not found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;cealign 1CLL,1GGZ&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;C:\Program Files (x86)\DeLano Scientific\PyMOL/modules\pymol\parser.py&amp;quot;, line 203, in parse&lt;br /&gt;
    result=apply(kw[nest][0],args[nest],kw_args[nest])&lt;br /&gt;
  File &amp;quot;py24/Lib/cealign.py&amp;quot;, line 177, in cealign&lt;br /&gt;
    curScore = simpAlign( matA, matB, mol1, mol2, stored.mol1, stored.mol2, align=0, L=len(matA) )&lt;br /&gt;
NameError: global name 'simpAlign' is not defined&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am running PyMOL v. 0.99rc6 on Win XP Professional x64 edition version 2003 sp2 and have followed the windows install procedure as described above.&lt;br /&gt;
&lt;br /&gt;
'''Answer''': This simply means that PyMOL couldn't find the simplAlign function.  To let PyMOL know about this, you must run the following commands before running [[cealign]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run /your/path/to/cealign/qkabsch.py&lt;br /&gt;
run /your/path/to/cealign/cealign.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
but most people that use cealign would just put these two lines in their '''.pymolrc''' file.&lt;br /&gt;
&lt;br /&gt;
=== Short Alignments Don't Work ===&lt;br /&gt;
If you are trying to align fewer than 16 residues then use [[align]], [[super]], or [[optAlign]].  CE uses a window size of 8; and to build a path of more than one window, you need 2*8=16 residues.  I will insert some code to re-route small alignments to one of the aforementioned alignment algorithms.&lt;br /&gt;
&lt;br /&gt;
=== It Worked A Second Ago! ===&lt;br /&gt;
[[Image:Rewind.png|thumb|right|Showing the rewind button to rewind to state 1.]]&lt;br /&gt;
&lt;br /&gt;
If you were using cealign (or alignto) and now the commands don't work -- that is, they return an RMSD, but don't actually superimpose the objects, then you have a simple problem dealing with states.  Most likely the cause of this oddness was (1) when you issued &amp;quot;cealign prot1, prot2&amp;quot; one of them was actually an ensemble of states or (2) you are trying to align to proteins with only one state, but are not looking at state one (because the last protein you were considering had more than one state and you quit editing that protein on a state that's not state 1).  To fix this, use the rewind button to get the proteins back into state 1 &amp;amp; reissue the cealign/alignto command.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Text taken from PubMed and formatted for the wiki.  The first reference is the most important for this code.&lt;br /&gt;
&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''Protein structure alignment by incremental combinatorial extension (CE) of the optimal path.'''  ''Protein Eng.'' 1998 Sep;11(9):739-47.  PMID: 9796821 [PubMed - indexed for MEDLINE]&lt;br /&gt;
# Jia Y, Dewey TG, Shindyalov IN, Bourne PE. '''A new scoring function and associated statistical significance for structure alignment by CE.'''  ''J Comput Biol.'' 2004;11(5):787-99. PMID: 15700402 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Pekurovsky D, Shindyalov IN, Bourne PE. '''A case study of high-throughput biological data processing on parallel platforms.'''  ''Bioinformatics.'' 2004 Aug 12;20(12):1940-7. Epub 2004 Mar 25.  PMID: 15044237 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''An alternative view of protein fold space.'''  ''Proteins.'' 2000 Feb 15;38(3):247-60.  PMID: 10713986 [PubMed - indexed for MEDLINE]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
The CEAlign and all its subprograms that I wrote, are released under the open source Free BSD License (BSDL).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;br /&gt;
[[Category:Structure_Alignment|Cealign]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Cealign&amp;diff=2969</id>
		<title>Cealign</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Cealign&amp;diff=2969"/>
		<updated>2009-07-17T17:42:42Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
'''Go directly to [[Cealign#Version_0.8-RBS|DOWNLOAD]]'''&lt;br /&gt;
&lt;br /&gt;
This page is the home page of the open-source CEAlign PyMOL plugin.  The CE algorithm is a fast and accurate protein structure alignment algorithm, pioneered by Drs. Shindyalov and Bourne (See &lt;br /&gt;
References).  There are a few changes from the original CE publication (See Notes).  &lt;br /&gt;
&lt;br /&gt;
The source code is implemented in C with the rotations finally done by Numpy in Python.  Because the computationally complex portion of the code is written in C, it's quick.  That is, on my machines --- relatively fast 64-bit machines --- I can align two 400+ amino acid structures in about 0.300 s with the C++ implementation.&lt;br /&gt;
&lt;br /&gt;
This plugs into PyMol very easily.  See [[Cealign#The_Code|the code]] and [[Cealign#Examples|examples]] for installation and usage.&lt;br /&gt;
&lt;br /&gt;
== Comparison to PyMol ==&lt;br /&gt;
'''Why should you use this?'''&lt;br /&gt;
&lt;br /&gt;
PyMOL's structure alignment algorithm is fast and robust.  However, its first step is to perform a sequence alignment of the two selections.  Thus, proteins in the '''twilight zone''' or those having a low sequence identity, may not align well.  Because CE is a structure-based alignment, this is not a problem.  Consider the following example.  The image at LEFT was the result of CE-aligning two proteins (1C0M chain B to 1BCO).  The result is '''152''' aligned (alpha carbons) residues (not atoms) at '''4.96 Angstroms'''.  The image on the RIGHT shows the results from PyMol's align command: an alignment of '''221 atoms''' (not residues) at an RMSD of '''15.7 Angstroms'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:cealign_ex1.png|Cealign's results (152 aligned; 4.96 Ang.)&lt;br /&gt;
Image:pymol_align.png|PyMol's results (763 atoms; 18.4 Ang. )&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fit vs. optAlign ===&lt;br /&gt;
====Take Home messages====&lt;br /&gt;
* [[fit]] and [[optAlign]] perform nearly equally as well&lt;br /&gt;
* if you need an algorithm with an appropriate reference, use [[optAlign]] (references at bottom of page).&lt;br /&gt;
* [[fit]] is faster -- if you're aligning many structures, use it over [[optAlign]]&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
[[optAlign]] is a function within the [[Cealign]] package that performs the optimal superposition of two objects of equal length.  [[optAlign]] follows the Kabsch algorithm which is a closed form, and provably optimal solution to the problem.  [[fit]] on the other hand uses the Jacobi rotations to iteratively arrive at the solution of optimal superposition.  The difference in error between [[optAilgn]] and [[fit]] seems to be a non-issue (see below) as they both arrive at equivalent solutions for the rotation matrix.  The two algorithms are undertake different approaches to orthogonally diagonalizing the correlation matrix.&lt;br /&gt;
&lt;br /&gt;
PyMOL's [[fit]] is fast and works well.  If you have to use something with a known reference then check out the &amp;quot;optAlign&amp;quot; function from the qkabsch.py file that comes with this [[Calign]] package.  If not, you can just use [[fit]] and avoid installing new software.  :-)&lt;br /&gt;
&lt;br /&gt;
optAlign is slower than fit.  I just tested both on a sample NMR ensemble; and, while not an extensive validation of &amp;quot;fit&amp;quot; it shows that (1) fit is faster; and (2) fit gets the same exact RMSD as &amp;quot;optAlign&amp;quot; (when optAlign is told to use all atoms, not just CA).  To make optAlign use all atoms and not just the alpha-carbon backbones, comment out (that is, put a &amp;quot;#&amp;quot; at the start of lines 183 and 184 in qkabsch.py, where it says &amp;quot;CUT HERE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 1nmr&lt;br /&gt;
split_states 1nmr&lt;br /&gt;
delete 1nmr&lt;br /&gt;
&lt;br /&gt;
# compare fit and optAlign RMSDs&lt;br /&gt;
for x in cmd.get_names(): print cmd.fit(&amp;quot;1nmr_0001&amp;quot;, x)&lt;br /&gt;
for x in cmd.get_names(): optAlign(x, &amp;quot;1nmr_0001&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source  lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# results from fit&lt;br /&gt;
0.0&lt;br /&gt;
4.50344991684&lt;br /&gt;
5.33588504791&lt;br /&gt;
5.78613853455&lt;br /&gt;
7.25597000122&lt;br /&gt;
6.67145586014&lt;br /&gt;
3.25131297112&lt;br /&gt;
3.36766290665&lt;br /&gt;
6.74802017212&lt;br /&gt;
5.1579709053&lt;br /&gt;
5.96959495544&lt;br /&gt;
6.68093347549&lt;br /&gt;
4.13217163086&lt;br /&gt;
5.51539039612&lt;br /&gt;
6.24266338348&lt;br /&gt;
6.03838825226&lt;br /&gt;
5.01363992691&lt;br /&gt;
5.33336305618&lt;br /&gt;
6.87617444992&lt;br /&gt;
7.797062397&lt;br /&gt;
&lt;br /&gt;
#results from optAlign&lt;br /&gt;
RMSD=0.000000&lt;br /&gt;
RMSD=4.503450&lt;br /&gt;
RMSD=5.335886&lt;br /&gt;
RMSD=5.786138&lt;br /&gt;
RMSD=7.255970&lt;br /&gt;
RMSD=6.671456&lt;br /&gt;
RMSD=3.251313&lt;br /&gt;
RMSD=3.367663&lt;br /&gt;
RMSD=6.748021&lt;br /&gt;
RMSD=5.157971&lt;br /&gt;
RMSD=5.969595&lt;br /&gt;
RMSD=6.680934&lt;br /&gt;
RMSD=4.132172&lt;br /&gt;
RMSD=5.515390&lt;br /&gt;
RMSD=6.242664&lt;br /&gt;
RMSD=6.038388&lt;br /&gt;
RMSD=5.013640&lt;br /&gt;
RMSD=5.333363&lt;br /&gt;
RMSD=6.876174&lt;br /&gt;
RMSD=7.797062&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Usage ===&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
&lt;br /&gt;
CEAlign has the semantic, and syntactic formalism of&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign MASTER, TARGET&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where a post-condition of the algorithm is that the coordinates of the '''MASTER''' protein are unchanged.  This allows for easier multi-protein alignments.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1AUE, 1BZ4&lt;br /&gt;
cealign 1AUE, 1B68&lt;br /&gt;
cealign 1AUE, 1A7V&lt;br /&gt;
cealign 1AUE, 1CPR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will superimpose all the TARGETS onto the MASTER.&lt;br /&gt;
&lt;br /&gt;
=====Examples=====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
cealign 1cll and i. 42-55, 1ggz and c. A&lt;br /&gt;
cealign 1kao, 1ctq&lt;br /&gt;
cealign 1fao, 1eaz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Multiple Structure Alignments=====&lt;br /&gt;
Use the '''alignto''' command, now provided with cealign.  Just type,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
alignto PROT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to align all your proteins in PyMOL to the one called, '''PROT'''.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
See '''Changes''' for updates.  But, overall, the results here are great.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:v7_1fao_1eaz.png|EASY: 1FAO vs. 1EAZ; 96 residues, 1.28 Ang&lt;br /&gt;
Image:v7_1cbs_1hmt.png|EASY: 1CBS vs. 1HMT; 128 residues, 2.01 Ang&lt;br /&gt;
Image:v7_1a15_1b50.png|MODERATE: 1A15 vs 1B50; 56 residues, 2.54 Ang.&lt;br /&gt;
Image:v7_1oan_1s6n.png|EASY: 1OAN vs. 1S6N (state 1); 96 residues aligned to 3.83 Ang. RMSD.&lt;br /&gt;
Image:v7_1rlw_1byn.png|HARD: 1RLW to 1BYN; 104 residues; 2.21 Ang.&lt;br /&gt;
Image:v7_1ten_3hhr.png|HARD: 1TEN vs. 3HHR; 80 residues, 2.91 Ang.&lt;br /&gt;
Image:v7_2sim_1nsb.png|HARD: 2SIM vs. 1NSB; 272 residues, 4.93 Ang.&lt;br /&gt;
Image:v7_1cew_1mol.png|HARD: 1CEW vs. 1MOL; 80 residues, 4.03 Ang.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
===Mac OS X (10.5)===&lt;br /&gt;
[[Image:Cealign mac os x.png|300px|thumb|center|CEAlign running on Mac OS X (10.5)]]&lt;br /&gt;
* Install PyMOL under fink.&lt;br /&gt;
* Install Numpy for fink:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
/sw/bin/fink install scipy-core-py25&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Download and install cealign (download instructions below)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /sw/bin/python setup.py install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* In PyMOL, run the two scripts needed for cealing: &amp;quot;cealign.py&amp;quot; and &amp;quot;qkabsch.py&amp;quot;. These are located in the cealign directory you previously downloaded.&lt;br /&gt;
* Voila!&lt;br /&gt;
* Note that the above python version must match the same version that is used by PyMOL. If you are using the pre-compiled version of MacPyMOL, the above instructions won't work.&lt;br /&gt;
&lt;br /&gt;
===Windows systems===&lt;br /&gt;
====CEAlign 0.9====&lt;br /&gt;
This is a Win32 build of CEAlign 0.9 [http://pymolwiki.org/index.php/Cealign#Beta_Version_0.9]&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Christoph Gohlke's latest '''unofficial''' PyMol build: http://www.lfd.uci.edu/~gohlke/#pythonlibs&lt;br /&gt;
* &amp;quot;Python 2.6.2 Windows installer&amp;quot; from python.org: http://www.python.org/download/&lt;br /&gt;
* '''CEAlign09Win32.zip''' from: http://users.umassmed.edu/shivender.shandilya/pymol/CEAlign09Win32.zip&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Download the '''CEAlign09Win32.zip''' file&lt;br /&gt;
# Unzip the downloaded file and follow the directions as per the included README.txt&lt;br /&gt;
# Enjoy the ''awesomeness'' that is CEAlign!&lt;br /&gt;
====CEAlign 0.8====&lt;br /&gt;
This is a quick and dirty method to use CEAlign 0.8 on Win32 system with the '''official''' Pymol builds...&lt;br /&gt;
=====Requirements=====&lt;br /&gt;
* Latest PyMol, installed on your system&lt;br /&gt;
* Numpy for python 2.4 -- quick download of just what's needed: http://users.umassmed.edu/shivender.shandilya/cealign08/numpy.zip&lt;br /&gt;
[Note: If this file is corrupt, you may download the latest 'Numpy for Python 2.4' directly from SourceForge.net&lt;br /&gt;
* Pre-compiled ccealign.pyd python module: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/ccealign.zip&lt;br /&gt;
* Modified pymolrc: http://users.umassmed.edu/Shivender.Shandilya/pymol/cealign08/pymolrc&lt;br /&gt;
* cealign.py and qkabsch.py from the Cealign-0.8-RBS package: download below&lt;br /&gt;
&lt;br /&gt;
=====Directions=====&lt;br /&gt;
# Unzip the numpy.zip file, which will give you a folder named '''numpy'''&lt;br /&gt;
# Move this entire folder to: C:\Program Files\DeLano Scientific\PyMOL\modules\  (or the corresponding location on your system)&lt;br /&gt;
# Unzip ccealign.zip, which will give you a file called  '''ccealign.pyd'''&lt;br /&gt;
# Move this pyd file to: C:\Program Files\DeLano Scientific\PyMOL\py24\DLLs\  (or the corresponding location on your system)&lt;br /&gt;
# Copy the downloaded '''pymolrc''' file to: C:\Program Files\DeLano Scientific\PyMOL\   (or the corresponding location on your system)&lt;br /&gt;
# Extract and copy the files cealign.py and qkabsch.py from the Cealign-0.8-RBS package to: C:\Program Files\DeLano Scientific\PyMOL\py24\Lib\   (or the corresponding location on your system)&lt;br /&gt;
# Run PyMol and load some molecules&lt;br /&gt;
# Run this command in Pymol: '''cealign molecule1, molecule2'''&lt;br /&gt;
# Enjoy!&lt;br /&gt;
&lt;br /&gt;
===Gentoo Linux===&lt;br /&gt;
Add the science overlay via&lt;br /&gt;
 layman -a sci&lt;br /&gt;
and emerge the cealign plugin&lt;br /&gt;
 emerge pymol-plugins-cealign&lt;br /&gt;
&lt;br /&gt;
===*nix systems===&lt;br /&gt;
====Requirements====&lt;br /&gt;
* C compiler&lt;br /&gt;
* Python 2.4+ with distutils&lt;br /&gt;
* Numpy&lt;br /&gt;
** for User-compiled PyMOL: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install&amp;lt;/source&amp;gt;&lt;br /&gt;
** for the precompiled version of PyMOL &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR_TO/pymol/ext/&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Directions====&lt;br /&gt;
# uncompress the distribution file '''cealign-VERSION.tgz'''&lt;br /&gt;
# cd cealign-VERSION&lt;br /&gt;
# sudo python setup.py install  # if you installed by PyMOL by hand&lt;br /&gt;
## python setup.py install --prefix &amp;quot;&amp;quot; --root /DIR/TO/pymol/ext/  # if you are using the precompiled binary download&lt;br /&gt;
# insert &amp;quot;run DIR_TO_CEALIGN/cealign.py&amp;quot; and &amp;quot;run DIR_TO_CEALIGN/qkabsch.py&amp;quot; into your '''.pymolrc''' file, or just run the two Python scripts by hand.&lt;br /&gt;
# load some molecules&lt;br /&gt;
# run, '''cealign molecule1, molecule2'''&lt;br /&gt;
# enjoy&lt;br /&gt;
&lt;br /&gt;
=====Pre-compiled Hackish Install=====&lt;br /&gt;
For those people that prefer to use the pre-compiled version of PyMOL, here are the basics for your install.  '''This is a poor method of installing Cealign.  I suggest users compile and install their own PyMOL.'''  The final goal is to get &lt;br /&gt;
# '''ccealign.so''' module into '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# numpy installed (get the numpy directory into (or linked into) '''PYMOL/ext/lib/python2.4/site-packages'''&lt;br /&gt;
# and be able to run cealign.py and qkabsch.py from PyMOL.&lt;br /&gt;
If you can do the above three steps, '''cealign''' should run from the pre-compiled PyMOL.&lt;br /&gt;
&lt;br /&gt;
In more detail, on a completely fictitious machine --- that is, I created the following commands from a fake machine and I don't expect a copy/paste of this to work '''anywhere''', but the commands should be helpful enough to those who need it:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# NOTES:&lt;br /&gt;
# This is fake code: don't copy/paste it.&lt;br /&gt;
#&lt;br /&gt;
# PYMOL='dir to precompiled PyMOL install'&lt;br /&gt;
# CEALIGN='dir where you will unpack cealign'&lt;br /&gt;
# replace lib with lib64 for x86-64&lt;br /&gt;
# install numpy&lt;br /&gt;
apt-get install numpy&lt;br /&gt;
&lt;br /&gt;
# link numpy to PyMOL&lt;br /&gt;
ln -s /usr/local/lib/python2.4/site-packages/numpy PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# download and install Cealign&lt;br /&gt;
wget http://www.pymolwiki.org/images/e/ed/Cealign-0.6.tar.bz2&lt;br /&gt;
tar -jxvf Cealign-0.6.tar.bz2&lt;br /&gt;
cd cealign-0.6&lt;br /&gt;
sudo python setup.py build&lt;br /&gt;
cp build/lib-XYZ-linux/ccealign.so PYMOL/ext/lib/python2.4/site-packages&lt;br /&gt;
&lt;br /&gt;
# run pymol and try it out&lt;br /&gt;
pymol&lt;br /&gt;
run CEALIGN/cealign.py&lt;br /&gt;
run CEALIGN/qkabsch.py&lt;br /&gt;
fetch 1cew 1mol, async=0&lt;br /&gt;
cealign 1c, 1m&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The Code ==&lt;br /&gt;
Please unpack and read the documentation.  All comments/questions should be directed to Jason Vertrees (javertre _at_ utmb ...dot... edu).  &lt;br /&gt;
&lt;br /&gt;
'''LATEST IS v0.8-RBS'''.  (Dedicated to Bryan Sutton for allowing me to use his computer for testing.)&lt;br /&gt;
&lt;br /&gt;
=== Version 0.8-RBS ===&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.tar.bz2|CE Align v0.8-RBS]] (bz2)'''&lt;br /&gt;
* '''Download: [[Media:Cealign-0.8-RBS.zip|CE Align v0.8-RBS]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
=== Beta Version 0.9 ===&lt;br /&gt;
Use at your own peril.  Please report any problems or inconsistent alignments to this discussion page, or to me directly; my email address all over this page.&lt;br /&gt;
&lt;br /&gt;
'''Improvements/Changes''':&lt;br /&gt;
* All C++&lt;br /&gt;
** So, faster&lt;br /&gt;
** comes with the dependencies built in&lt;br /&gt;
* No numpy&lt;br /&gt;
&lt;br /&gt;
''' Download: [[Media:Cealign-0.9.zip|CE Align v0.9]] (zip)'''&lt;br /&gt;
&lt;br /&gt;
== Coming Soon ==&lt;br /&gt;
* Windows binary&lt;br /&gt;
* Linux Binaries (32bit, x86-64)&lt;br /&gt;
* Better instructions for precompiled distributions&lt;br /&gt;
* Optimization&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2008-03-25 ===&lt;br /&gt;
Pure C++ code released.  See the beta version above.&lt;br /&gt;
&lt;br /&gt;
=== 2007-04-14 ===&lt;br /&gt;
v0.8-RBS source updated.  Found the bug that had been plaguing 32-bit machines.  This should be the last release for a little while.&lt;br /&gt;
&lt;br /&gt;
Also, I provide the option of aligning based solely upon RMSD or upon the better CE-Score.  See the '''References''' for information on the '''CE Score'''.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Post your problems/solutions here.&lt;br /&gt;
&lt;br /&gt;
=== Unicode Issues in Python/Numpy ===&lt;br /&gt;
'''Problem''': Running/Installing cealign gives&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parser.py&amp;quot;,&lt;br /&gt;
line 308, in parse&lt;br /&gt;
  File &amp;quot;/home/byron/software/pymol_1.00b17/pymol/modules/pymol/parsing.py&amp;quot;,&lt;br /&gt;
line 410, in run_file&lt;br /&gt;
  File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
    import numpy&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 36, in ?&lt;br /&gt;
    import core&lt;br /&gt;
  File &amp;quot;/usr/lib/python2.4/site-packages/numpy/core/__init__.py&amp;quot;, line 5, in ?&lt;br /&gt;
    import multiarray&lt;br /&gt;
ImportError: /home/byron/software/pymol/ext/lib/python2.4/site-packages/numpy/core/multiarray.so:&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
where the important line is&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
undefined symbol: _PyUnicodeUCS4_IsWhitespace&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This problem indicates that your Numpy Unicode is using a different byte-size for unicode characters than is the Python distribution your PyMOL is running from.  For example, this can happen if you use the pre-built PyMOL and some other pre-built Numpy package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': Hand-install Numpy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LinAlg Module Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parser.py&amp;quot;, line 285, in parse&lt;br /&gt;
parsing.run_file(exp_path(args[nest][0]),pymol_names,pymol_names)&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/pymol/parsing.py&amp;quot;, line 407, in run_file&lt;br /&gt;
execfile(file,global_ns,local_ns)&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
File &amp;quot;/usr/lib/python2.4/site-packages/numpy/__init__.py&amp;quot;, line 40, in ?&lt;br /&gt;
import linalg&lt;br /&gt;
ImportError: No module named linalg&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': You do not have the linear algebra module installed (or Python can't find it) on your machine.  One workaround is to install [http://www.scipy.org/ Scientific Python]. (on debian/ubuntu this can be done by: sudo apt-get install python-scipy) Another is to reinstall the Numpy package from source, ensuring that you have the necessary requirements for the linear algebra module (linpack, lapack, fft, etc.).&lt;br /&gt;
&lt;br /&gt;
=== CCEAlign &amp;amp; NumPy Modules Not Found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;run cealign.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
  File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
  File &amp;quot;/usr/local/pymol/scripts/cealign-0.1/cealign.py&amp;quot;, line 59, in ?&lt;br /&gt;
    from ccealign import ccealign&lt;br /&gt;
ImportError: No module named ccealign&lt;br /&gt;
run qkabsch.py&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parser.py&amp;quot;, line 297, in parse&lt;br /&gt;
File &amp;quot;/home/local/warren/MacPyMOL060530/build/Deployment/MacPyMOL.app/pymol/modules/pymol/parsing.py&amp;quot;, line 408, in run_file&lt;br /&gt;
File &amp;quot;qkabsch.py&amp;quot;, line 86, in ?&lt;br /&gt;
import numpy&lt;br /&gt;
ImportError: No module named numpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution''': This problem occurs under [http://www.apple.com/macosx Apple Mac OS X] if (a) the Apple's python executable on your machine (/usr/bin/python, currently version 2.3.5) is superseded by [http://fink.sourceforge.net/ Fink]'s python executable (/sw/bin/python, currently version 2.5) and (b) you are using [http://delsci.com/rel/099/#MacOSX precompiled versions of PyMOL] (MacPyMOL, PyMOLX11Hybrid or PyMOL for Mac OS X/X11). These executables ignore Fink's python and instead use Apple's - so, in order to run CE Align, one must install NumPy (as well as CE Align itself) using Apple's python. To do so, first download the [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 Numpy source code archive] (currently version 1.0.1), unpack it, change directory to numpy-1.0.1 and specify the full path to Apple's python executable during installation: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;. Then, donwload the [http://www.pymolwiki.org/index.php/Cealign#The_Code CE Align source code archive] (currently version 0.2), unpack it, change directory to cealign-0.2 and finally install CE Align as follows: &amp;lt;tt&amp;gt;sudo /usr/bin/python setup.py install | tee install.log&amp;lt;/tt&amp;gt;.&lt;br /&gt;
[[User:Lucajovine|Luca Jovine]] 05:11, 25 January 2007 (CST).&lt;br /&gt;
&lt;br /&gt;
=== The Function SimpAlign() is not found ===&lt;br /&gt;
'''Problem''': Running CE Align gives the following error message:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;cealign 1CLL,1GGZ&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;C:\Program Files (x86)\DeLano Scientific\PyMOL/modules\pymol\parser.py&amp;quot;, line 203, in parse&lt;br /&gt;
    result=apply(kw[nest][0],args[nest],kw_args[nest])&lt;br /&gt;
  File &amp;quot;py24/Lib/cealign.py&amp;quot;, line 177, in cealign&lt;br /&gt;
    curScore = simpAlign( matA, matB, mol1, mol2, stored.mol1, stored.mol2, align=0, L=len(matA) )&lt;br /&gt;
NameError: global name 'simpAlign' is not defined&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am running PyMOL v. 0.99rc6 on Win XP Professional x64 edition version 2003 sp2 and have followed the windows install procedure as described above.&lt;br /&gt;
&lt;br /&gt;
'''Answer''': This simply means that PyMOL couldn't find the simplAlign function.  To let PyMOL know about this, you must run the following commands before running [[cealign]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
run /your/path/to/cealign/qkabsch.py&lt;br /&gt;
run /your/path/to/cealign/cealign.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
but most people that use cealign would just put these two lines in their '''.pymolrc''' file.&lt;br /&gt;
&lt;br /&gt;
=== Short Alignments Don't Work ===&lt;br /&gt;
If you are trying to align fewer than 16 residues then use [[align]], [[super]], or [[optAlign]].  CE uses a window size of 8; and to build a path of more than one window, you need 2*8=16 residues.  I will insert some code to re-route small alignments to one of the aforementioned alignment algorithms.&lt;br /&gt;
&lt;br /&gt;
=== It Worked A Second Ago! ===&lt;br /&gt;
[[Image:Rewind.png|thumb|right|Showing the rewind button to rewind to state 1.]]&lt;br /&gt;
&lt;br /&gt;
If you were using cealign (or alignto) and now the commands don't work -- that is, they return an RMSD, but don't actually superimpose the objects, then you have a simple problem dealing with states.  Most likely the cause of this oddness was (1) when you issued &amp;quot;cealign prot1, prot2&amp;quot; one of them was actually an ensemble of states or (2) you are trying to align to proteins with only one state, but are not looking at state one (because the last protein you were considering had more than one state and you quit editing that protein on a state that's not state 1).  To fix this, use the rewind button to get the proteins back into state 1 &amp;amp; reissue the cealign/alignto command.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Text taken from PubMed and formatted for the wiki.  The first reference is the most important for this code.&lt;br /&gt;
&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''Protein structure alignment by incremental combinatorial extension (CE) of the optimal path.'''  ''Protein Eng.'' 1998 Sep;11(9):739-47.  PMID: 9796821 [PubMed - indexed for MEDLINE]&lt;br /&gt;
# Jia Y, Dewey TG, Shindyalov IN, Bourne PE. '''A new scoring function and associated statistical significance for structure alignment by CE.'''  ''J Comput Biol.'' 2004;11(5):787-99. PMID: 15700402 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Pekurovsky D, Shindyalov IN, Bourne PE. '''A case study of high-throughput biological data processing on parallel platforms.'''  ''Bioinformatics.'' 2004 Aug 12;20(12):1940-7. Epub 2004 Mar 25.  PMID: 15044237 [PubMed - indexed for MEDLINE]&lt;br /&gt;
#  Shindyalov IN, Bourne PE. '''An alternative view of protein fold space.'''  ''Proteins.'' 2000 Feb 15;38(3):247-60.  PMID: 10713986 [PubMed - indexed for MEDLINE]&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
The CEAlign and all its subprograms that I wrote, are released under the open source Free BSD License (BSDL).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Script_Library]]&lt;br /&gt;
[[Category:Structure_Alignment|Cealign]]&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=Talk:Cealign&amp;diff=177</id>
		<title>Talk:Cealign</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=Talk:Cealign&amp;diff=177"/>
		<updated>2009-07-17T17:41:11Z</updated>

		<summary type="html">&lt;p&gt;Jedgold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The numpy zip file provided in the Windows section unzips with fatal errors.&lt;br /&gt;
&lt;br /&gt;
Sean&lt;br /&gt;
&lt;br /&gt;
: And the instructions to download NumpPy from sourceforge and install the folder into the /PyMol/modules/ folder result in an error when numpy is called (numpy shouldn't be called outside the source folder - apparently it needs to be called from &amp;lt;i&amp;gt;inside&amp;lt;/i&amp;gt; the folder?) [I used Numpy-1.2.1.tar.gz - maybe I need to use the superpack installer?] [[User:Jedgold|Jedgold]] 17:41, 17 July 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Jedgold</name></author>
	</entry>
</feed>