Difference between revisions of "Useful Python Scripts"

From CUC3
Jump to navigation Jump to search
import>Ho246
 
import>Ho246
Line 1: Line 1:
 
On this script you will find (and can add!) Python scripts, that may be useful in any work-related way.
 
On this script you will find (and can add!) Python scripts, that may be useful in any work-related way.
  +
  +
== Converting .pdb files from vmd to xleap readable format ==
  +
  +
This script takes a filename as command line argument reads the respective .pdb file and converts it to an xleap
  +
readable format. The initial file is overwritten, but the original file is retained in filename.orig.
  +
<pre>
  +
#!/usr/bin/env python
  +
# -*- coding: latin1 -*-
  +
  +
import sys
  +
  +
def main():
  +
fname = sys.argv[1]
  +
  +
fin = open( fname, "r")
  +
lines = fin.readlines()
  +
fin.close()
  +
  +
lin2=[]
  +
  +
foumod=open( fname+".orig","w")
  +
fomod=open( fname,"w")
  +
  +
  +
counter=1
  +
first=True
  +
oldnum=""
  +
for l in lines:
  +
if l.find( "CRYST")==-1:
  +
l2=l.replace( " X ", " ")
  +
if len( l2)>16:
  +
if l2[13].isdigit():
  +
subs=l2[12:16]
  +
subs2=l2[13:17]
  +
l2=l2.replace( subs, subs2)
  +
  +
if (not first) and len( l2)>25:
  +
if oldnum!=l2[25]:
  +
oldnum=l2[25]
  +
print oldnum
  +
lin2.append( "TER\n")
  +
counter+=1
  +
first=False
  +
lin2.append( l2)
  +
else:
  +
counter-=1
  +
lin2.insert(-1,"TER\n")
  +
  +
for i in range( counter):
  +
lines.append( "")
  +
  +
for l,l2 in zip( lines, lin2):
  +
foumod.write( l)
  +
fomod.write( l2)
  +
  +
  +
if __name__ == "__main__":
  +
main()
  +
  +
</pre>

Revision as of 14:41, 19 August 2008

On this script you will find (and can add!) Python scripts, that may be useful in any work-related way.

Converting .pdb files from vmd to xleap readable format

This script takes a filename as command line argument reads the respective .pdb file and converts it to an xleap readable format. The initial file is overwritten, but the original file is retained in filename.orig.

#!/usr/bin/env python
# -*- coding: latin1 -*-

import sys

def main():
 	fname = sys.argv[1]
 
 	fin = open( fname, "r")
 	lines = fin.readlines()
 	fin.close()

	lin2=[]

	foumod=open( fname+".orig","w")
	fomod=open( fname,"w")


	counter=1
	first=True
	oldnum=""
	for l in lines:
		if l.find( "CRYST")==-1:
			l2=l.replace( " X ", "   ")
			if len( l2)>16:
				if l2[13].isdigit():
					subs=l2[12:16]
					subs2=l2[13:17]
					l2=l2.replace( subs, subs2)

			if (not first) and len( l2)>25:
				if oldnum!=l2[25]:
					oldnum=l2[25]
					print oldnum
					lin2.append( "TER\n")
					counter+=1
			first=False
			lin2.append( l2)
		else:
			counter-=1
	lin2.insert(-1,"TER\n")

	for i in range( counter):
		lines.append( "")

	for l,l2 in zip( lines, lin2):
		foumod.write( l)
		fomod.write( l2)


if __name__ == "__main__":
	main()