#!/bin/bash
#The script puts each chain from a PDB file into a separate file.
#USAGE
#pdb_separate_chains <mother_file.pdb>

name_header=${1:0:$[${#1}-4]}
echo "Creating separate ${name_header}_*.pdb files for all chains in $1"
rm ${name_header}_[A-Z].pdb 
awk -v name_header=$name_header '$1~/ATOM/{atom_num++;file_name=name_header "_" $5 ".pdb"; printf("ATOM  %5d  %-3s %3s %s%4d    %8.3f%8.3f%8.3f%6.2f%6.2f          %2s\n",atom_num,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) >> file_name} $1~/TER/{atom_num=0;print "TER" >> file_name}' $1

