Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I output a .pdb file using python script?

I'm currently in the process of manipulating a .pdb (protein data bank) file in python. My end goal is to turn the python script back into a pdb file so that I can run simulations in either VMD or PyMol.Can someone please help?

like image 849
Alicia Burns Avatar asked Aug 20 '26 12:08

Alicia Burns


1 Answers

Change each element in list to something like this inside a for/while loop over each new line This is a rough way but BioPDB reads the output in just fine. I assume you have the data that you want to write out in various arrays.

  j[0] = j[0].ljust(6)#atom#6s
  j[1] = j[1].rjust(5)#aomnum#5d
  j[2] = j[2].center(4)#atomname$#4s
  j[3] = j[3].ljust(3)#resname#1s
  j[4] = j[4].rjust(1) #Astring
  j[5] = j[5].rjust(4) #resnum
  j[6] = str('%8.3f' % (float(coords[i][0]))).rjust(8) #x
  j[7] = str('%8.3f' % (float(coords[i][1]))).rjust(8)#y
  j[8] = str('%8.3f' % (float(coords[i][2]))).rjust(8) #z\
  j[9] =str('%6.2f'%(float(j[9]))).rjust(6)#occ
  j[10]=str('%6.2f'%(float(j[10]))).ljust(6)#temp
  j[11]=j[11].rjust(12)#elname    
  f1.write("%s%s %s %s %s%s    %s%s%s%s%s%s\n"% j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11]))

then check if file written out can be read with PDBParser in BioPython as suggested by others.

  p=PDBParser(PERMISSIVE=1)
  structure=p.get_structure('test', 'test.pdb')
like image 108
sridharn Avatar answered Aug 22 '26 22:08

sridharn



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!