<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?action=history&amp;feed=atom&amp;title=Path2xyz.py</id>
	<title>Path2xyz.py - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?action=history&amp;feed=atom&amp;title=Path2xyz.py"/>
	<link rel="alternate" type="text/html" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Path2xyz.py&amp;action=history"/>
	<updated>2026-04-13T09:30:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Path2xyz.py&amp;diff=1270&amp;oldid=prev</id>
		<title>Adk44: Created page with &quot;Script useful for AMBER9 and NAB users   &#039;&#039;path.info&#039;&#039; file can be converted to xyz format using Python program presented below. To do this save the code in &#039;&#039;path2xyz.py&#039;&#039; fi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wikis.ch.cam.ac.uk/ro-walesdocs/wiki/index.php?title=Path2xyz.py&amp;diff=1270&amp;oldid=prev"/>
		<updated>2019-05-13T11:07:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Script useful for AMBER9 and NAB users   &amp;#039;&amp;#039;path.info&amp;#039;&amp;#039; file can be converted to xyz format using Python program presented below. To do this save the code in &amp;#039;&amp;#039;path2xyz.py&amp;#039;&amp;#039; fi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Script useful for AMBER9 and NAB users&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;path.info&amp;#039;&amp;#039; file can be converted to xyz format using Python program presented below. To do this save the code in &amp;#039;&amp;#039;path2xyz.py&amp;#039;&amp;#039; file, change privileges of the file:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 path2xyz.py&lt;br /&gt;
&lt;br /&gt;
and type:&lt;br /&gt;
&lt;br /&gt;
 ./path2xyz.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &lt;br /&gt;
 import sys&lt;br /&gt;
 import string&lt;br /&gt;
 &lt;br /&gt;
 ###############################################################&lt;br /&gt;
 ##                                                            #&lt;br /&gt;
 ## Edyta Malolepsza                                           #&lt;br /&gt;
 ## David Wales&amp;#039; group, University of Cambridge                #&lt;br /&gt;
 ## in case of problems please send email: em427@cam.ac.uk     #&lt;br /&gt;
 ##                                                            #&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 ##&lt;br /&gt;
 ## transform path.info into path_all.xyz&lt;br /&gt;
 ## ./path2xyz.py&lt;br /&gt;
 ##&lt;br /&gt;
 ###############################################################&lt;br /&gt;
 &lt;br /&gt;
 prmtop = open(&amp;quot;coords.prmtop&amp;quot;).read()&lt;br /&gt;
 f = string.split(prmtop, &amp;quot;\n&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 q0 = f.index(&amp;quot;%FLAG POINTERS                                                                  &amp;quot;)&lt;br /&gt;
 q1 = f.index(&amp;quot;%FLAG ATOM_NAME                                                                 &amp;quot;)&lt;br /&gt;
 q2 = f.index(&amp;quot;%FLAG RESIDUE_LABEL                                                             &amp;quot;)&lt;br /&gt;
 q3 = f.index(&amp;quot;%FLAG RESIDUE_POINTER                                                           &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 ## names of tables are related to names in prmtop file&lt;br /&gt;
 &lt;br /&gt;
 atomNumber = int(string.split(f[q0+2])[0])&lt;br /&gt;
 &lt;br /&gt;
 atomName = []&lt;br /&gt;
 residueLabel = []&lt;br /&gt;
 &lt;br /&gt;
 an = 0&lt;br /&gt;
 line = 0&lt;br /&gt;
 while (an&amp;lt;atomNumber):&lt;br /&gt;
   for j in range(20):&lt;br /&gt;
     if (an&amp;lt;atomNumber):&lt;br /&gt;
       an = an+1&lt;br /&gt;
       atomName.append(f[q1+2+line][j*4:(j+1)*4].strip())&lt;br /&gt;
     else:&lt;br /&gt;
       break&lt;br /&gt;
   line = line+1&lt;br /&gt;
 &lt;br /&gt;
 for i in range(q3-q2-2):&lt;br /&gt;
   for j in range((len(f[q2+2+i])+1)/4):&lt;br /&gt;
     residueLabel.append(string.strip(f[q2+2+i][j*4:4*(j+1)]))&lt;br /&gt;
 &lt;br /&gt;
 info = open(&amp;quot;path.info&amp;quot;).read()&lt;br /&gt;
 ff = string.split(info, &amp;quot;\n&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 xyz = open(&amp;#039;path_all.xyz&amp;#039;,&amp;#039;w&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
 for i in range(len(ff)/(2+2*atomNumber)):&lt;br /&gt;
     m = atomNumber*2+2     # number of lines for each stationary points&lt;br /&gt;
     l = atomNumber+2       # number of lines before coordinates&lt;br /&gt;
 #    xyz.write(&amp;quot;%d\n%s %s\n&amp;quot; % (atomNumber, ff[m*i], ff[m*i+1])) # energy and symmetry&lt;br /&gt;
     xyz.write(&amp;quot;%d\n%s\n&amp;quot; % (atomNumber, ff[m*i])) # energy&lt;br /&gt;
     for j in range(atomNumber):&lt;br /&gt;
         xyz.write(&amp;quot;%-4s %s\n&amp;quot; % (atomName[j], ff[m*i+l+j]))&lt;br /&gt;
 &lt;br /&gt;
 xyz.write(&amp;quot;\n&amp;quot;)&lt;br /&gt;
 xyz.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: this script works when &amp;#039;&amp;#039;path.info&amp;#039;&amp;#039; file was obtain without NOFRQS keyword. If NOFRQS was used, please, change values of two variables:&lt;br /&gt;
&lt;br /&gt;
     m = atomNumber+2     # number of lines for each stationary points&lt;br /&gt;
     l = 2                # number of lines before coordinates&lt;/div&gt;</summary>
		<author><name>Adk44</name></author>
	</entry>
</feed>