-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRenumberPDB.pl
More file actions
66 lines (54 loc) · 1.31 KB
/
RenumberPDB.pl
File metadata and controls
66 lines (54 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use strict;
use Carp qw(croak);
use File::Copy;
use Cwd;
{
my ($PDB) = @ARGV;
my $ext = "_renumbered";
my $dir = getcwd;
#print $dir;
my $oldresnu;
open(FILE, '<', "$PDB.pdb") or die "Cannot open file: $!";
while (my $line=<FILE>){
if ($line =~ /^ATOM/){
substr($line, 22, 5) =~ /(\S+)/;
$oldresnu =$1 ;
#print $oldresnu ,"\n\n\n";;
last;
}
}
close FILE;
my $new_resnu;
my $t1;
my $t2;
my $count = 1;
open (OUTFILE, ">>$PDB$ext.pdb");
open(FILE1, '<', "$PDB.pdb") or die "Cannot open file: $!";
while (my $line1=<FILE1>){
if ($line1 =~ /^ATOM/){
#substr($line1, 21,1) = "A";
substr($line1, 22, 5) =~ /(\S+)/;
$new_resnu =$1 ;
if ($new_resnu eq $oldresnu){
$t1 = sprintf "%4d", $count;
substr($line1, 22, 4) = $t1;
print OUTFILE $line1;
}
else{
$count++;
$t2 =sprintf "%4d", $count;
substr($line1, 22, 4) = $t2;
print OUTFILE $line1;
$oldresnu = $new_resnu;
}
}
}
close OUTFILE;
close FILE1;
my $cmd1 = "rm $PDB.pdb";
my $cmd2 = "cp $PDB$ext.pdb $PDB.pdb";
my $cmd3 = "rm $PDB$ext.pdb";
system ($cmd1);
system ($cmd2);
system ($cmd3);
}