Difference between revisions of "Extractedmin2pdb.py"
Jump to navigation
Jump to search
import>Em427 |
import>Em427 |
||
Line 1: | Line 1: | ||
− | If you extracted minima from ''points.min'' file to ''extractedmin'' file you can use Python program presented below to convert this file into PDB one. Save code in |
+ | If you extracted minima from ''points.min'' file to ''extractedmin'' file you can use Python program presented below to convert this file into PDB one. Save code in extractedmin2pdb.py file, next change privileges of this file: |
− | chmod 777 |
+ | chmod 777 extractedmin2pdb.py |
and type: |
and type: |
||
− | ./ |
+ | ./extractedmin2pdb.py |
---- |
---- |
||
Line 23: | Line 23: | ||
## |
## |
||
## transform extractedmin into extractedmin.pdb |
## transform extractedmin into extractedmin.pdb |
||
− | ## ./ |
+ | ## ./extractedmin2pdb.py |
## |
## |
||
############################################################### |
############################################################### |
Revision as of 15:10, 30 April 2008
If you extracted minima from points.min file to extractedmin file you can use Python program presented below to convert this file into PDB one. Save code in extractedmin2pdb.py file, next change privileges of this file:
chmod 777 extractedmin2pdb.py
and type:
./extractedmin2pdb.py
#!/usr/bin/env python import sys import string ############################################################### ## # ## Edyta Malolepsza # ## David Wales' group, University of Cambridge # ## in case of problems please send email: em427@cam.ac.uk # ## # ############################################################### ## ## transform extractedmin into extractedmin.pdb ## ./extractedmin2pdb.py ## ############################################################### prmtop = open("coords.prmtop").read() f = string.split(prmtop, "\n") q0 = f.index("%FLAG POINTERS ") q1 = f.index("%FLAG ATOM_NAME ") q2 = f.index("%FLAG RESIDUE_LABEL ") q3 = f.index("%FLAG RESIDUE_POINTER ") ## names of tables are related to names in prmtop file atomNumber = int(string.split(f[q0+2])[0]) atomName = [] residueLabel = [] an = 0 line = 0 while (an<atomNumber): for j in range(20): if (an<atomNumber): an = an+1 atomName.append(f[q1+2+line][j*4:(j+1)*4].strip()) else: break line = line+1 for i in range(q3-q2-2): for j in range((len(f[q2+2+i])+1)/4): residueLabel.append(string.strip(f[q2+2+i][j*4:4*(j+1)])) info = open("extractedmin").read() ff = string.split(info, "\n") xyz = open('extractedmin.pdb','w') for i in range(len(ff)/(atomNumber)): mm = 1 for j in range(atomNumber): x = float(string.split(ff[atomNumber*i+j])[0]) y = float(string.split(ff[atomNumber*i+j])[1]) z = float(string.split(ff[atomNumber*i+j])[2]) if (atomName[j]=='N' and atomName[j+1]=='H'): mm = mm+1 xyz.write("%4s%7d %-4s %-4s%5d%12.3f%8.3f%8.3f\n" % ('ATOM', j+1, atomName[j], residueLabel[mm-1], mm, x, y, z)) else: xyz.write("%4s%7d %-4s %-4s%5d%12.3f%8.3f%8.3f\n" % ('ATOM', j+1, atomName[j], residueLabel[mm-1], mm, x, y, z)) xyz.write("END\n") xyz.write("\n") xyz.close()