
xplor.parseArguments()

import protocol
protocol.topology['protein'] = 'protein-3.2.top'
protocol.parameters['protein'] = 'protein-3.2.par'
protocol.loadPDB("model.pdb")
protocol.initTopology('ion')
protocol.initParams('ion')
protocol.initParams('extra/zn-finger.par')


import psfGen

xplor.command("""

 topology 

 AUTO ANGLe=False DIHEdral=False END 
 
! patch to create Zn (Cys)2 (His)2 
!
! 1 and 2 should be CYS 
!
! 3 and 4 should be HIS 

 presidue ZnC2H2

  delete atom 1hg end 

  delete atom 2hg end 

  delete atom 3he2 end 

  delete atom 4he2 end 

  add bond 5ZN+2 1sg 

  add bond 5ZN+2 2sg 

  add bond 5ZN+2 3ne2 

  add bond 5ZN+2 4ne2 

  add angle 1SG  5ZN+2 2SG 

  add angle 1SG  5ZN+2 3ne2 

  add angle 1SG  5ZN+2 4ne2 

  add angle 2SG  5ZN+2 3ne2

  add angle 2SG  5ZN+2 4ne2 

  add angle 3NE2 5ZN+2 4ne2  

 end 

end 
 
!add the Zn2 atom
 
segment 

setup=true 

number=401  

chain    

sequence ZN2 end  

end 

end 

!do patch   

patch ZnC2H2  reference=1=(resid 6)              

 reference=2=(resid 3)               

 reference=3=(resid 19)              

 reference=4=(resid 23)              

 reference=5=(resid 401)


end 
 

""")

try:
    protocol.addUnknownAtoms()
except protocol.CovalentViolation:
    pass


xplor.command("write psf output=test.psf end")

from pdbTool import PDBTool
PDBTool("test.pdb").write()
