# Extremely simple script that reads a PDB file into the PHENIX hierarchy 
# and writes it back out.
# The resulting file should have TER cards in the right places, 
# among other improvements.

import sys
import iotbx.pdb.hierarchy

if len(sys.argv) != 2:
  import os
  s = os.path.basename(__file__)
  print "usage: python", s, "in.pdb (makes in.pdb_modified.pdb)"
  sys.exit()

in_filename = sys.argv[1]
pdb = iotbx.pdb.hierarchy.input(file_name=in_filename)

model = pdb.hierarchy.only_model()
for chain in model.chains():
  diff = 0
  for rg in chain.residue_groups():
    if rg.icode.strip() != "":
      diff += 1
      rg.icode = " "
      rg.resseq = str(rg.resseq_as_int()+diff)

out_filename = in_filename.strip('.pdb')+'_out.pdb'
pdb.hierarchy.write_pdb_file(
  file_name=out_filename,
  crystal_symmetry=pdb.input.crystal_symmetry(),
  append_end=True)

