#!/usr/bin/env perl # Read a PDB file and change the residue numbers to be continuous. use strict; use warnings; print "\nEnter the PDB input file: "; my $inputFile = ; chomp $inputFile; unless (open(INPUTFILE, "<", $inputFile)) { die "Cannot read from <$inputFile>, $!"; } my $output_file = "my2pdb.txt"; open(PDBOUT,">>my2pdb.txt") or die "Cannot open <$output_file> for writing, $!"; my $last_residue_name = ''; my $last_residue_number = 0; while () { if (m/^ATOM/) { my @m = split; # Increment the residue number if the residue name changes if ($m[3] eq $last_residue_name) { $m[5] = $last_residue_number; } else { $m[5] = ++$last_residue_number; $last_residue_name = $m[3]; } printf PDBOUT "%4s %5s %4s %3s %1s %4s %7s %7s %7s %6s %6s\n", @m; } } exit;