<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pymol.org/index.php?action=history&amp;feed=atom&amp;title=AngleBetweenHelices</id>
	<title>AngleBetweenHelices - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pymol.org/index.php?action=history&amp;feed=atom&amp;title=AngleBetweenHelices"/>
	<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;action=history"/>
	<updated>2026-07-09T06:47:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=13771&amp;oldid=prev</id>
		<title>Cchem: 1 revision</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=13771&amp;oldid=prev"/>
		<updated>2017-01-09T05:54:53Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:54, 9 January 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Cchem</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=13770&amp;oldid=prev</id>
		<title>Speleo3: psico</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=13770&amp;oldid=prev"/>
		<updated>2016-12-15T14:38:45Z</updated>

		<summary type="html">&lt;p&gt;psico&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:38, 15 December 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|author    = [[User:Speleo3|Thomas Holder]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|author    = [[User:Speleo3|Thomas Holder]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|license   = BSD&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|license   = BSD&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Infobox psico&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|module    =  psico.orientation&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Commands =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Commands =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;helix_orientation selection [, visualize [, sigma_cutoff [, quiet ]]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;helix_orientation_hbond selection &lt;/del&gt;[, visualize [, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;cutoff &lt;/del&gt;[, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;quiet ]&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; angle_between_helices selection1, selection2 [, method &lt;/ins&gt;[, visualize &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; helix_orientation selection &lt;/ins&gt;[, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;visualize &lt;/ins&gt;[, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sigma_cutoff &lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;loop_orientation &lt;/del&gt;selection [, visualize [, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;quiet &lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; helix_orientation_hbond &lt;/ins&gt;selection [, visualize [, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cutoff &lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;cafit_orientation &lt;/del&gt;selection [, visualize &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[, quiet ]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; loop_orientation &lt;/ins&gt;selection [, visualize ]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;angle_between_helices selection1, selection2 [, method &lt;/del&gt;[, visualize &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[, quiet ]]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; cafit_orientation selection &lt;/ins&gt;[, visualize ]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/source&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Example =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Example =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l57&quot; &gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Angle: 145.08 deg&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Angle: 145.08 deg&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== See Also ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[angle_between_domains]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Pymol-script-repo]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Pymol-script-repo]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speleo3</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=760&amp;oldid=prev</id>
		<title>Pyadmin: 13 revisions</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=760&amp;oldid=prev"/>
		<updated>2014-03-28T01:06:19Z</updated>

		<summary type="html">&lt;p&gt;13 revisions&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:06, 28 March 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Pyadmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=759&amp;oldid=prev</id>
		<title>Tlinnet at 15:00, 15 January 2012</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=759&amp;oldid=prev"/>
		<updated>2012-01-15T15:00:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:00, 15 January 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l59&quot; &gt;Line 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Pymol-script-repo]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tlinnet</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=758&amp;oldid=prev</id>
		<title>Speleo3: gallery float right</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=758&amp;oldid=prev"/>
		<updated>2011-12-11T09:53:37Z</updated>

		<summary type="html">&lt;p&gt;gallery float right&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:53, 11 December 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot; &gt;Line 6:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 6:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery perrow=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;2 &lt;/del&gt;heights=191px widths=250px&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery perrow=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1 &lt;/ins&gt;heights=191px widths=250px &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;style=&amp;quot;float:right; clear: right&amp;quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation1.png|Orientation of a helix&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation1.png|Orientation of a helix&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation2.png|Orientation of two helices, their angle that separates the two is 145.08 degrees as reported by the script&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation2.png|Orientation of two helices, their angle that separates the two is 145.08 degrees as reported by the script&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/gallery&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Calculate angle between alpha-helices or beta-sheets.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Calculate angle between alpha-helices or beta-sheets.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are four different methods implemented to fit a helix, two of them also work for sheets or loops.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are four different methods implemented to fit a helix, two of them also work for sheets or loops.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speleo3</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=757&amp;oldid=prev</id>
		<title>Speleo3: Infobox script-repo</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=757&amp;oldid=prev"/>
		<updated>2011-12-09T09:41:10Z</updated>

		<summary type="html">&lt;p&gt;Infobox script-repo&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:41, 9 December 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Infobox script-repo&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|type      = Python Module&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|filename  = anglebetweenhelices.py&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|author    = [[User:Speleo3|Thomas Holder]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|license   = BSD&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery perrow=2 heights=191px widths=250px&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;gallery perrow=2 heights=191px widths=250px&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation1.png|Orientation of a helix&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Image:Helix_orientation1.png|Orientation of a helix&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l50&quot; &gt;Line 50:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Python Code ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Template:PymolScriptRepoDownload|anglebetweenhelices.py}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Plugins]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speleo3</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=756&amp;oldid=prev</id>
		<title>Speleo3: use Template:PymolScriptRepoDownload</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=756&amp;oldid=prev"/>
		<updated>2011-12-04T11:53:40Z</updated>

		<summary type="html">&lt;p&gt;use Template:PymolScriptRepoDownload&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:53, 4 December 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l51&quot; &gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Python Code ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Python Code ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This code has been put under version control. In the project, [http://www.pymolwiki.org/index.php/Git_intro Pymol-script-repo].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For a color coded view:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; https://github.com/Pymol-Scripts/Pymol-script-repo/blob/master/anglebetweenhelices.py&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;See the raw code or download manually, by right clicking the following link here -&amp;gt; Save as: anglebetweenhelices.py&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; https://raw.github.com/Pymol-Scripts/Pymol-script-repo/master/anglebetweenhelices.py&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Template:PymolScriptRepoDownload|anglebetweenhelices.py}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Plugins]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Plugins]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Structural_Biology_Scripts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Speleo3</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=755&amp;oldid=prev</id>
		<title>Tlinnet: /* The Script */</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=755&amp;oldid=prev"/>
		<updated>2011-12-03T17:48:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;The Script&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;//wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;amp;diff=755&amp;amp;oldid=754&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Tlinnet</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=754&amp;oldid=prev</id>
		<title>Tlinnet: /* Example */</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=754&amp;oldid=prev"/>
		<updated>2011-12-03T17:46:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Example&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;gallery perrow=2 heights=191px widths=250px&amp;gt;&lt;br /&gt;
Image:Helix_orientation1.png|Orientation of a helix&lt;br /&gt;
Image:Helix_orientation2.png|Orientation of two helices, their angle that separates the two is 145.08 degrees as reported by the script&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Calculate angle between alpha-helices or beta-sheets.&lt;br /&gt;
There are four different methods implemented to fit a helix, two of them also work for sheets or loops.&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
helix_orientation selection [, visualize [, sigma_cutoff [, quiet ]]]&lt;br /&gt;
&lt;br /&gt;
helix_orientation_hbond selection [, visualize [, cutoff [, quiet ]]]&lt;br /&gt;
&lt;br /&gt;
loop_orientation selection [, visualize [, quiet ]]&lt;br /&gt;
&lt;br /&gt;
cafit_orientation selection [, visualize [, quiet ]]&lt;br /&gt;
&lt;br /&gt;
angle_between_helices selection1, selection2 [, method [, visualize [, quiet ]]]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import anglebetweenhelices&lt;br /&gt;
&lt;br /&gt;
fetch 2x19, async=0&lt;br /&gt;
select hel1, /2x19//B/23-36/&lt;br /&gt;
select hel2, /2x19//B/40-54/&lt;br /&gt;
 &lt;br /&gt;
# just calculate/visualize orientation of single alpha-helix&lt;br /&gt;
helix_orientation_hbond hel1&lt;br /&gt;
 &lt;br /&gt;
# get angle between two helices&lt;br /&gt;
angle_between_helices hel1, hel2&lt;br /&gt;
angle_between_helices hel1, hel2, method=1&lt;br /&gt;
angle_between_helices hel1, hel2, method=2&lt;br /&gt;
 &lt;br /&gt;
# get angle between beta-sheets&lt;br /&gt;
select sheet1, A/47-54/&lt;br /&gt;
select sheet6, A/146-149/&lt;br /&gt;
angle_between_helices sheet1, sheet6, method=loop_orientation&lt;br /&gt;
angle_between_helices sheet1, sheet6, method=cafit_orientation&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
PyMOL&amp;gt;angle_between_helices hel1, hel2, method=cafit_orientation&lt;br /&gt;
Using method: cafit_orientation&lt;br /&gt;
Angle: 145.08 deg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The Script =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
'''&lt;br /&gt;
(c) 2010 Thomas Holder&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
from pymol import cmd, stored, CmdException&lt;br /&gt;
from chempy import cpv&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def _vec_sum(vec_list):&lt;br /&gt;
    # this is the same as&lt;br /&gt;
    # return numpy.array(vec_list).sum(0).tolist()&lt;br /&gt;
    vec = cpv.get_null()&lt;br /&gt;
    for x in vec_list:&lt;br /&gt;
        vec = cpv.add(vec, x)&lt;br /&gt;
    return vec&lt;br /&gt;
&lt;br /&gt;
def _mean_and_std(x):&lt;br /&gt;
    # this is the same as&lt;br /&gt;
    # return (numpy.mean(x), numpy.std(x, ddof=1))&lt;br /&gt;
    N = len(x)&lt;br /&gt;
    if N &amp;lt; 2:&lt;br /&gt;
        return (x[0], 0.0)&lt;br /&gt;
    mu = sum(x)/float(N)&lt;br /&gt;
    var = sum((i - mu)**2 for i in x) / float(N - 1)&lt;br /&gt;
    return (mu, var**0.5)&lt;br /&gt;
&lt;br /&gt;
def _common_orientation(selection, vec, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
    Common part of different helix orientation functions. Does calculate&lt;br /&gt;
    the center of mass and does the visual feedback.&lt;br /&gt;
    '''&lt;br /&gt;
    stored.x = []&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name CA' % (selection),&lt;br /&gt;
            'stored.x.append([x,y,z])')&lt;br /&gt;
    if len(stored.x) &amp;lt; 2:&lt;br /&gt;
        print 'warning: count(CA) &amp;lt; 2'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    center = cpv.scale(_vec_sum(stored.x), 1./len(stored.x))&lt;br /&gt;
    if visualize:&lt;br /&gt;
        scale = cpv.distance(stored.x[0], stored.x[-1])&lt;br /&gt;
        visualize_orientation(vec, center, scale, True)&lt;br /&gt;
        cmd.zoom(selection, buffer=2)&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Center: (%.2f, %.2f, %.2f) Direction: (%.2f, %.2f, %.2f)' % tuple(center + vec)&lt;br /&gt;
    return center, vec&lt;br /&gt;
&lt;br /&gt;
def visualize_orientation(direction, center=[0,0,0], scale=1.0, symmetric=False, color='green', color2='red'):&lt;br /&gt;
    '''&lt;br /&gt;
    Draw an arrow. Helper function for &amp;quot;helix_orientation&amp;quot; etc.&lt;br /&gt;
    '''&lt;br /&gt;
    from pymol import cgo&lt;br /&gt;
    color_list = cmd.get_color_tuple(color)&lt;br /&gt;
    color2_list = cmd.get_color_tuple(color2)&lt;br /&gt;
    if symmetric:&lt;br /&gt;
        scale *= 0.5&lt;br /&gt;
    end = cpv.add(center, cpv.scale(direction, scale))&lt;br /&gt;
    radius = 0.3&lt;br /&gt;
    obj = [cgo.SAUSAGE]&lt;br /&gt;
    obj.extend(center)&lt;br /&gt;
    obj.extend(end)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        radius,&lt;br /&gt;
        0.8, 0.8, 0.8,&lt;br /&gt;
    ])&lt;br /&gt;
    obj.extend(color_list)&lt;br /&gt;
    if symmetric:&lt;br /&gt;
        start = cpv.sub(center, cpv.scale(direction, scale))&lt;br /&gt;
        obj.append(cgo.SAUSAGE)&lt;br /&gt;
        obj.extend(center)&lt;br /&gt;
        obj.extend(start)&lt;br /&gt;
        obj.extend([&lt;br /&gt;
            radius,&lt;br /&gt;
            0.8, 0.8, 0.8,&lt;br /&gt;
        ])&lt;br /&gt;
        obj.extend(color2_list)&lt;br /&gt;
    coneend = cpv.add(end, cpv.scale(direction, 4.0*radius))&lt;br /&gt;
    obj.append(cgo.CONE)&lt;br /&gt;
    obj.extend(end)&lt;br /&gt;
    obj.extend(coneend)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        radius * 1.75,&lt;br /&gt;
        0.0,&lt;br /&gt;
    ])&lt;br /&gt;
    obj.extend(color_list * 2)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        1.0, 1.0, # Caps&lt;br /&gt;
    ])&lt;br /&gt;
    cmd.load_cgo(obj, cmd.get_unused_name('oriVec'), zoom=0)&lt;br /&gt;
&lt;br /&gt;
def cafit_orientation(selection, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a peptide by least squares&lt;br /&gt;
    linear fit on CA atoms.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    cafit_orientation selection [, visualize]&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
    Requires python module &amp;quot;numpy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    import numpy&lt;br /&gt;
    stored.x = list()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name CA' % (selection),&lt;br /&gt;
            'stored.x.append([x,y,z])')&lt;br /&gt;
    x = numpy.array(stored.x)&lt;br /&gt;
    U,s,Vh = numpy.linalg.svd(x - x.mean(0))&lt;br /&gt;
    vec = cpv.normalize(Vh[0])&lt;br /&gt;
    if cpv.dot_product(vec, x[-1] - x[0]) &amp;lt; 0:&lt;br /&gt;
        vec = cpv.negate(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def loop_orientation(selection, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and approximate direction of a peptide. Works for any&lt;br /&gt;
    secondary structure.&lt;br /&gt;
    Averages direction of N(i)-&amp;gt;C(i) pseudo bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    loop_orientation selection [, visualize]&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name N+C' % (selection),&lt;br /&gt;
            'stored.x.setdefault(chain + resi, dict())[name] = x,y,z')&lt;br /&gt;
    vec = cpv.get_null()&lt;br /&gt;
    count = 0&lt;br /&gt;
    for x in stored.x.itervalues():&lt;br /&gt;
        if 'C' in x and 'N' in x:&lt;br /&gt;
            vec = cpv.add(vec, cpv.sub(x['C'], x['N']))&lt;br /&gt;
            count += 1&lt;br /&gt;
    if count == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def helix_orientation(selection, visualize=1, sigma_cutoff=1.5, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a helix as vectors. Will only work&lt;br /&gt;
    for helices and gives slightly different results than loop_orientation.&lt;br /&gt;
    Averages direction of C(i)-&amp;gt;O(i) bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    helix_orientation selection [, visualize [, sigma_cutoff]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    selection = string: atom selection of helix&lt;br /&gt;
&lt;br /&gt;
    visualize = 0 or 1: show fitted vector as arrow {default: 1}&lt;br /&gt;
&lt;br /&gt;
    sigma_cutoff = float: drop outliers outside&lt;br /&gt;
    (standard_deviation * sigma_cutoff) {default: 1.5}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    angle_between_helices, helix_orientation_hbond, loop_orientation, cafit_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet, sigma_cutoff = int(visualize), int(quiet), float(sigma_cutoff)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name C+O' % (selection),&lt;br /&gt;
            'stored.x.setdefault(chain + resi, dict())[name] = x,y,z')&lt;br /&gt;
    vec_list = []&lt;br /&gt;
    count = 0&lt;br /&gt;
    for x in stored.x.itervalues():&lt;br /&gt;
        if 'C' in x and 'O' in x:&lt;br /&gt;
            vec_list.append(cpv.sub(x['O'], x['C']))&lt;br /&gt;
            count += 1&lt;br /&gt;
    if count == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = _vec_sum(vec_list)&lt;br /&gt;
    if count &amp;gt; 2 and sigma_cutoff &amp;gt; 0:&lt;br /&gt;
        angle_list = [cpv.get_angle(vec, x) for x in vec_list]&lt;br /&gt;
        angle_mu, angle_sigma = _mean_and_std(angle_list)&lt;br /&gt;
        vec_list = [vec_list[i] for i in range(len(vec_list))&lt;br /&gt;
                if abs(angle_list[i] - angle_mu) &amp;lt; angle_sigma * sigma_cutoff]&lt;br /&gt;
        if not quiet:&lt;br /&gt;
            print 'Dropping %d outlier(s)' % (len(angle_list) - len(vec_list))&lt;br /&gt;
        vec = _vec_sum(vec_list)&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def helix_orientation_hbond(selection, visualize=1, cutoff=3.5, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a helix as vectors. Will only work&lt;br /&gt;
    for alpha helices and gives slightly different results than&lt;br /&gt;
    helix_orientation. Averages direction of O(i)-&amp;gt;N(i+4) hydrogen bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    helix_orientation selection [, visualize [, cutoff]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    cutoff = float: maximal hydrogen bond distance {default: 3.5}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet, cutoff = int(visualize), int(quiet), float(cutoff)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name N+O' % (selection),&lt;br /&gt;
            'stored.x.setdefault(resv, dict())[name] = x,y,z')&lt;br /&gt;
    vec_list = []&lt;br /&gt;
    for resi in stored.x:&lt;br /&gt;
        resi_other = resi + 4&lt;br /&gt;
        if 'O' in stored.x[resi] and resi_other in stored.x:&lt;br /&gt;
            if 'N' in stored.x[resi_other]:&lt;br /&gt;
                vec = cpv.sub(stored.x[resi_other]['N'], stored.x[resi]['O'])&lt;br /&gt;
                if cpv.length(vec) &amp;lt; cutoff:&lt;br /&gt;
                    vec_list.append(vec)&lt;br /&gt;
    if len(vec_list) == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = _vec_sum(vec_list)&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def angle_between_helices(selection1, selection2, method='helix_orientation', visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Calculates the angle between two helices&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    angle_between_helices selection1, selection2 [, method [, visualize]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    selection1 = string: atom selection of first helix&lt;br /&gt;
&lt;br /&gt;
    selection2 = string: atom selection of second helix&lt;br /&gt;
&lt;br /&gt;
    method = string: function to calculate orientation {default: helix_orientation}&lt;br /&gt;
             or int: 0: helix_orientation, 1: helix_orientation_hbond,&lt;br /&gt;
                     2: loop_orientation, 3: cafit_orientation&lt;br /&gt;
&lt;br /&gt;
    visualize = 0 or 1: show fitted vector as arrow {default: 1}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation, helix_orientation_hbond, loop_orientation, cafit_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    methods = {&lt;br /&gt;
        '0': helix_orientation,&lt;br /&gt;
        '1': helix_orientation_hbond,&lt;br /&gt;
        '2': loop_orientation,&lt;br /&gt;
        '3': cafit_orientation,&lt;br /&gt;
    }&lt;br /&gt;
    methods.update((x.__name__, x) for x in methods.values())&lt;br /&gt;
    try:&lt;br /&gt;
        orientation = methods[str(method)]&lt;br /&gt;
    except KeyError:&lt;br /&gt;
        print 'no such method:', method&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Using method:', orientation.__name__&lt;br /&gt;
    cen1, dir1 = orientation(selection1, visualize, quiet=1)&lt;br /&gt;
    cen2, dir2 = orientation(selection2, visualize, quiet=1)&lt;br /&gt;
    angle = cpv.get_angle(dir1, dir2)&lt;br /&gt;
    angle_deg = math.degrees(angle)&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Angle: %.2f deg' % (angle_deg)&lt;br /&gt;
    if visualize:&lt;br /&gt;
        cmd.zoom('(%s) or (%s)' % (selection1, selection2), buffer=2)&lt;br /&gt;
    return angle_deg&lt;br /&gt;
&lt;br /&gt;
cmd.extend('helix_orientation', helix_orientation)&lt;br /&gt;
cmd.extend('helix_orientation_hbond', helix_orientation_hbond)&lt;br /&gt;
cmd.extend('loop_orientation', loop_orientation)&lt;br /&gt;
cmd.extend('cafit_orientation', cafit_orientation)&lt;br /&gt;
cmd.extend('angle_between_helices', angle_between_helices)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Structural_Biology_Scripts]]&lt;/div&gt;</summary>
		<author><name>Tlinnet</name></author>
	</entry>
	<entry>
		<id>https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=747&amp;oldid=prev</id>
		<title>Speleo3: new page</title>
		<link rel="alternate" type="text/html" href="https://wiki.pymol.org/index.php?title=AngleBetweenHelices&amp;diff=747&amp;oldid=prev"/>
		<updated>2010-09-13T09:16:35Z</updated>

		<summary type="html">&lt;p&gt;new page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Calculate angle between alpha-helices or beta-sheets.&lt;br /&gt;
There are four different methods implemented to fit a helix, two of them also work for sheets or loops.&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
&lt;br /&gt;
* helix_orientation selection [, visualize [, sigma_cutoff [, quiet ]]]&lt;br /&gt;
* helix_orientation_hbond selection [, visualize [, cutoff [, quiet ]]]&lt;br /&gt;
* loop_orientation selection [, visualize [, quiet ]]&lt;br /&gt;
* cafit_orientation selection [, visualize [, quiet ]]&lt;br /&gt;
* angle_between_helices selection1, selection2 [, method [, visualize [, quiet ]]]&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
fetch 2x19&lt;br /&gt;
select hel1, /2x19//B/23-36/&lt;br /&gt;
select hel2, /2x19//B/40-54/&lt;br /&gt;
&lt;br /&gt;
# just calculate/visualize orientation of single alpha-helix&lt;br /&gt;
helix_orientation_hbond hel1&lt;br /&gt;
&lt;br /&gt;
# get angle between two helices&lt;br /&gt;
angle_between_helices hel1, hel2&lt;br /&gt;
angle_between_helices hel1, hel2, method=1&lt;br /&gt;
angle_between_helices hel1, hel2, method=2&lt;br /&gt;
&lt;br /&gt;
# get angle between beta-sheets&lt;br /&gt;
select sheet1, A/47-54/&lt;br /&gt;
select sheet6, A/146-149/&lt;br /&gt;
angle_between_helices sheet1, sheet6, method=loop_orientation&lt;br /&gt;
angle_between_helices sheet1, sheet6, method=cafit_orientation&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= The Script =&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
'''&lt;br /&gt;
(c) 2010 Thomas Holder&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
from pymol import cmd, stored, CmdException&lt;br /&gt;
from chempy import cpv&lt;br /&gt;
import math&lt;br /&gt;
&lt;br /&gt;
def _vec_sum(vec_list):&lt;br /&gt;
    # this is the same as&lt;br /&gt;
    # return numpy.array(vec_list).sum(0).tolist()&lt;br /&gt;
    vec = cpv.get_null()&lt;br /&gt;
    for x in vec_list:&lt;br /&gt;
        vec = cpv.add(vec, x)&lt;br /&gt;
    return vec&lt;br /&gt;
&lt;br /&gt;
def _mean_and_std(x):&lt;br /&gt;
    # this is the same as&lt;br /&gt;
    # return (numpy.mean(x), numpy.std(x, ddof=1))&lt;br /&gt;
    N = len(x)&lt;br /&gt;
    if N &amp;lt; 2:&lt;br /&gt;
        return (x[0], 0.0)&lt;br /&gt;
    mu = sum(x)/float(N)&lt;br /&gt;
    var = sum((i - mu)**2 for i in x) / float(N - 1)&lt;br /&gt;
    return (mu, var**0.5)&lt;br /&gt;
&lt;br /&gt;
def _common_orientation(selection, vec, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
    Common part of different helix orientation functions. Does calculate&lt;br /&gt;
    the center of mass and does the visual feedback.&lt;br /&gt;
    '''&lt;br /&gt;
    stored.x = []&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name CA' % (selection),&lt;br /&gt;
            'stored.x.append([x,y,z])')&lt;br /&gt;
    if len(stored.x) &amp;lt; 2:&lt;br /&gt;
        print 'warning: count(CA) &amp;lt; 2'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    center = cpv.scale(_vec_sum(stored.x), 1./len(stored.x))&lt;br /&gt;
    if visualize:&lt;br /&gt;
        scale = cpv.distance(stored.x[0], stored.x[-1])&lt;br /&gt;
        visualize_orientation(vec, center, scale, True)&lt;br /&gt;
        cmd.zoom(selection, buffer=2)&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Center: (%.2f, %.2f, %.2f) Direction: (%.2f, %.2f, %.2f)' % tuple(center + vec)&lt;br /&gt;
    return center, vec&lt;br /&gt;
&lt;br /&gt;
def visualize_orientation(direction, center=[0,0,0], scale=1.0, symmetric=False, color='green', color2='red'):&lt;br /&gt;
    '''&lt;br /&gt;
    Draw an arrow. Helper function for &amp;quot;helix_orientation&amp;quot; etc.&lt;br /&gt;
    '''&lt;br /&gt;
    from pymol import cgo&lt;br /&gt;
    color_list = cmd.get_color_tuple(color)&lt;br /&gt;
    color2_list = cmd.get_color_tuple(color2)&lt;br /&gt;
    if symmetric:&lt;br /&gt;
        scale *= 0.5&lt;br /&gt;
    end = cpv.add(center, cpv.scale(direction, scale))&lt;br /&gt;
    radius = 0.3&lt;br /&gt;
    obj = [cgo.SAUSAGE]&lt;br /&gt;
    obj.extend(center)&lt;br /&gt;
    obj.extend(end)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        radius,&lt;br /&gt;
        0.8, 0.8, 0.8,&lt;br /&gt;
    ])&lt;br /&gt;
    obj.extend(color_list)&lt;br /&gt;
    if symmetric:&lt;br /&gt;
        start = cpv.sub(center, cpv.scale(direction, scale))&lt;br /&gt;
        obj.append(cgo.SAUSAGE)&lt;br /&gt;
        obj.extend(center)&lt;br /&gt;
        obj.extend(start)&lt;br /&gt;
        obj.extend([&lt;br /&gt;
            radius,&lt;br /&gt;
            0.8, 0.8, 0.8,&lt;br /&gt;
        ])&lt;br /&gt;
        obj.extend(color2_list)&lt;br /&gt;
    coneend = cpv.add(end, cpv.scale(direction, 4.0*radius))&lt;br /&gt;
    obj.append(cgo.CONE)&lt;br /&gt;
    obj.extend(end)&lt;br /&gt;
    obj.extend(coneend)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        radius * 1.75,&lt;br /&gt;
        0.0,&lt;br /&gt;
    ])&lt;br /&gt;
    obj.extend(color_list * 2)&lt;br /&gt;
    obj.extend([&lt;br /&gt;
        1.0, 1.0, # Caps&lt;br /&gt;
    ])&lt;br /&gt;
    cmd.load_cgo(obj, cmd.get_unused_name('oriVec'), zoom=0)&lt;br /&gt;
&lt;br /&gt;
def cafit_orientation(selection, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a peptide by least squares&lt;br /&gt;
    linear fit on CA atoms.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    cafit_orientation selection [, visualize]&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
    Requires python module &amp;quot;numpy&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    import numpy&lt;br /&gt;
    stored.x = list()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name CA' % (selection),&lt;br /&gt;
            'stored.x.append([x,y,z])')&lt;br /&gt;
    x = numpy.array(stored.x)&lt;br /&gt;
    U,s,Vh = numpy.linalg.svd(x - x.mean(0))&lt;br /&gt;
    vec = cpv.normalize(Vh[0])&lt;br /&gt;
    if cpv.dot_product(vec, x[-1] - x[0]) &amp;lt; 0:&lt;br /&gt;
        vec = cpv.negate(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def loop_orientation(selection, visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and approximate direction of a peptide. Works for any&lt;br /&gt;
    secondary structure.&lt;br /&gt;
    Averages direction of N(i)-&amp;gt;C(i) pseudo bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    loop_orientation selection [, visualize]&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name N+C' % (selection),&lt;br /&gt;
            'stored.x.setdefault(chain + resi, dict())[name] = x,y,z')&lt;br /&gt;
    vec = cpv.get_null()&lt;br /&gt;
    count = 0&lt;br /&gt;
    for x in stored.x.itervalues():&lt;br /&gt;
        if 'C' in x and 'N' in x:&lt;br /&gt;
            vec = cpv.add(vec, cpv.sub(x['C'], x['N']))&lt;br /&gt;
            count += 1&lt;br /&gt;
    if count == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def helix_orientation(selection, visualize=1, sigma_cutoff=1.5, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a helix as vectors. Will only work&lt;br /&gt;
    for helices and gives slightly different results than loop_orientation.&lt;br /&gt;
    Averages direction of C(i)-&amp;gt;O(i) bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    helix_orientation selection [, visualize [, sigma_cutoff]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    selection = string: atom selection of helix&lt;br /&gt;
&lt;br /&gt;
    visualize = 0 or 1: show fitted vector as arrow {default: 1}&lt;br /&gt;
&lt;br /&gt;
    sigma_cutoff = float: drop outliers outside&lt;br /&gt;
    (standard_deviation * sigma_cutoff) {default: 1.5}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    angle_between_helices, helix_orientation_hbond, loop_orientation, cafit_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet, sigma_cutoff = int(visualize), int(quiet), float(sigma_cutoff)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name C+O' % (selection),&lt;br /&gt;
            'stored.x.setdefault(chain + resi, dict())[name] = x,y,z')&lt;br /&gt;
    vec_list = []&lt;br /&gt;
    count = 0&lt;br /&gt;
    for x in stored.x.itervalues():&lt;br /&gt;
        if 'C' in x and 'O' in x:&lt;br /&gt;
            vec_list.append(cpv.sub(x['O'], x['C']))&lt;br /&gt;
            count += 1&lt;br /&gt;
    if count == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = _vec_sum(vec_list)&lt;br /&gt;
    if count &amp;gt; 2 and sigma_cutoff &amp;gt; 0:&lt;br /&gt;
        angle_list = [cpv.get_angle(vec, x) for x in vec_list]&lt;br /&gt;
        angle_mu, angle_sigma = _mean_and_std(angle_list)&lt;br /&gt;
        vec_list = [vec_list[i] for i in range(len(vec_list))&lt;br /&gt;
                if abs(angle_list[i] - angle_mu) &amp;lt; angle_sigma * sigma_cutoff]&lt;br /&gt;
        if not quiet:&lt;br /&gt;
            print 'Dropping %d outlier(s)' % (len(angle_list) - len(vec_list))&lt;br /&gt;
        vec = _vec_sum(vec_list)&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def helix_orientation_hbond(selection, visualize=1, cutoff=3.5, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Get the center and direction of a helix as vectors. Will only work&lt;br /&gt;
    for alpha helices and gives slightly different results than&lt;br /&gt;
    helix_orientation. Averages direction of O(i)-&amp;gt;N(i+4) hydrogen bonds.&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    helix_orientation selection [, visualize [, cutoff]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    cutoff = float: maximal hydrogen bond distance {default: 3.5}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet, cutoff = int(visualize), int(quiet), float(cutoff)&lt;br /&gt;
    stored.x = dict()&lt;br /&gt;
    cmd.iterate_state(-1, '(%s) and name N+O' % (selection),&lt;br /&gt;
            'stored.x.setdefault(resv, dict())[name] = x,y,z')&lt;br /&gt;
    vec_list = []&lt;br /&gt;
    for resi in stored.x:&lt;br /&gt;
        resi_other = resi + 4&lt;br /&gt;
        if 'O' in stored.x[resi] and resi_other in stored.x:&lt;br /&gt;
            if 'N' in stored.x[resi_other]:&lt;br /&gt;
                vec = cpv.sub(stored.x[resi_other]['N'], stored.x[resi]['O'])&lt;br /&gt;
                if cpv.length(vec) &amp;lt; cutoff:&lt;br /&gt;
                    vec_list.append(vec)&lt;br /&gt;
    if len(vec_list) == 0:&lt;br /&gt;
        print 'warning: count == 0'&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    vec = _vec_sum(vec_list)&lt;br /&gt;
    vec = cpv.normalize(vec)&lt;br /&gt;
    return _common_orientation(selection, vec, visualize, quiet)&lt;br /&gt;
&lt;br /&gt;
def angle_between_helices(selection1, selection2, method='helix_orientation', visualize=1, quiet=0):&lt;br /&gt;
    '''&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
&lt;br /&gt;
    Calculates the angle between two helices&lt;br /&gt;
&lt;br /&gt;
USAGE&lt;br /&gt;
&lt;br /&gt;
    angle_between_helices selection1, selection2 [, method [, visualize]]&lt;br /&gt;
&lt;br /&gt;
ARGUMENTS&lt;br /&gt;
&lt;br /&gt;
    selection1 = string: atom selection of first helix&lt;br /&gt;
&lt;br /&gt;
    selection2 = string: atom selection of second helix&lt;br /&gt;
&lt;br /&gt;
    method = string: function to calculate orientation {default: helix_orientation}&lt;br /&gt;
             or int: 0: helix_orientation, 1: helix_orientation_hbond,&lt;br /&gt;
                     2: loop_orientation, 3: cafit_orientation&lt;br /&gt;
&lt;br /&gt;
    visualize = 0 or 1: show fitted vector as arrow {default: 1}&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
&lt;br /&gt;
    helix_orientation, helix_orientation_hbond, loop_orientation, cafit_orientation&lt;br /&gt;
    '''&lt;br /&gt;
    visualize, quiet = int(visualize), int(quiet)&lt;br /&gt;
    methods = {&lt;br /&gt;
        '0': helix_orientation,&lt;br /&gt;
        '1': helix_orientation_hbond,&lt;br /&gt;
        '2': loop_orientation,&lt;br /&gt;
        '3': cafit_orientation,&lt;br /&gt;
    }&lt;br /&gt;
    methods.update((x.__name__, x) for x in methods.values())&lt;br /&gt;
    try:&lt;br /&gt;
        orientation = methods[str(method)]&lt;br /&gt;
    except KeyError:&lt;br /&gt;
        print 'no such method:', method&lt;br /&gt;
        raise CmdException&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Using method:', orientation.__name__&lt;br /&gt;
    cen1, dir1 = orientation(selection1, visualize, quiet=1)&lt;br /&gt;
    cen2, dir2 = orientation(selection2, visualize, quiet=1)&lt;br /&gt;
    angle = cpv.get_angle(dir1, dir2)&lt;br /&gt;
    angle_deg = math.degrees(angle)&lt;br /&gt;
    if not quiet:&lt;br /&gt;
        print 'Angle: %.2f deg' % (angle_deg)&lt;br /&gt;
    if visualize:&lt;br /&gt;
        cmd.zoom('(%s) or (%s)' % (selection1, selection2), buffer=2)&lt;br /&gt;
    return angle_deg&lt;br /&gt;
&lt;br /&gt;
cmd.extend('helix_orientation', helix_orientation)&lt;br /&gt;
cmd.extend('helix_orientation_hbond', helix_orientation_hbond)&lt;br /&gt;
cmd.extend('loop_orientation', loop_orientation)&lt;br /&gt;
cmd.extend('cafit_orientation', cafit_orientation)&lt;br /&gt;
cmd.extend('angle_between_helices', angle_between_helices)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
[[Category:Structural_Biology_Scripts]]&lt;/div&gt;</summary>
		<author><name>Speleo3</name></author>
	</entry>
</feed>