BEGIN { filename = ARGV[1]; gsub(/[ ]/, "_",filename);split(filename, elems, ".");no=1;} $1 == "ATOM" || $1 == "HETATM" { chain = substr($0,22,1); if (chain ~ /[A-Za-z]/ && molecule != "prot") { molecule = "prot"; if (file!="") a[file]++; file = elems[1] "_" molecule "#" no ".pdb";content=""; } else if (chain ~ /[0-9]/ && molecule != "rna") { molecule = "rna"; if (file!="") a[file]++; file = elems[1] "_" molecule "#" no ".pdb";content=""; } } $1 == "MODEL" {no = $2;if (file!="") a[file]++;file = elems[1] "_" molecule "#" no ".pdb";content="";} $1 == "ATOM" || $1 == "HETATM" {content = content $0 "\n";} $1 == "ENDMDL" {printf("%s\n",content) > file;content="";} $1 == "TER" {printf("%s%s\n",content,$1) > file;content="";} END { if (file!="") a[file]++; for(file in a) printf("END") > file; }