0
|
1
|
|
2 if [ $# != 2 ]; then
|
|
3 echo "***ERROR*** Use: $0 <TABLE> <PQR>"
|
|
4 exit -1
|
|
5 fi
|
|
6
|
|
7
|
|
8 PQR=$2
|
|
9 TABLE=$1
|
|
10
|
|
11 grep -v "REMARK" $PQR > $PQR.temp
|
|
12
|
|
13 #awk '
|
|
14 #{
|
|
15 # if(length($5 > 1)) print $5
|
|
16 #} ' $PQR.temp
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21 awk '
|
|
22
|
|
23
|
|
24 FNR==NR{
|
|
25 equivalence[$1] = $2
|
|
26 next
|
|
27 }
|
|
28
|
|
29 FNR!=NR{
|
|
30 if(substr($3,1,1) == "H"){
|
|
31
|
|
32 if(length($3) > 1){
|
|
33
|
|
34
|
|
35 print $0, "H"
|
|
36 }
|
|
37 }else{
|
|
38
|
|
39 print $0, equivalence[$3];
|
|
40
|
|
41
|
|
42
|
|
43 }
|
|
44
|
|
45 }
|
|
46 ' $TABLE $PQR.temp | sed 's/ \+/ /g' > $PQR.temp.bad
|
|
47
|
|
48 awk '
|
|
49 {
|
|
50 x=$10;
|
|
51 y=$11;
|
|
52 z=$12;
|
|
53 $10="";
|
|
54 $11="";
|
|
55 $12="";
|
|
56 if(substr($0,1,3) != "TER" && substr($0,1,3) != "END")
|
|
57 printf("%s %.2f %.2f %s\n", $0, x, y, z)
|
|
58 else
|
|
59 print $0
|
|
60 }
|
|
61 ' $PQR.temp.bad > $PQR.temp.format
|
|
62
|
|
63
|
|
64 awk '
|
|
65
|
|
66 NR==1{ x1=0; x2=0; x3=0; x4=0; x5=0; x6=0; x7=0; x8=0; x9=0; x10=0; x11=0; x12=0; x13=0; }
|
|
67
|
|
68 FNR==NR{
|
|
69 if($1 == "ATOM" || $1 == "HETATM"){
|
|
70 if(length($1) > x1) x1 = length($1);
|
|
71 if(length($2) > x2) x2 = length($2);
|
|
72 if(length($3) > x3) x3 = length($3);
|
|
73 if(length($4) > x4) x4 = length($4);
|
|
74 if(length($5) > x5) x5 = length($5);
|
|
75 if(length($6) > x6) x6 = length($6);
|
|
76 if(length($7) > x7) x7 = length($7);
|
|
77 if(length($8) > x8) x8 = length($8);
|
|
78 if(length($9) > x9) x9 = length($9);
|
|
79 if(length($10) > x10) x10 = length($10);
|
|
80 if(length($11) > x11) x11 = length($11);
|
|
81 if(length($12) > x12) x12 = length($12);
|
|
82 }
|
|
83
|
|
84 }
|
|
85
|
|
86
|
|
87 FNR!=NR{
|
|
88
|
|
89
|
|
90 #total=length($1)+3+x1+2+x3+1+x4+1+x5+6+x7+1+x8+1+x9+1+x10+1+x11+2+x11;
|
|
91 total=0;
|
|
92
|
|
93 printf("%s", $1); total+=length($1);
|
|
94 if($1=="ATOM") for(i=0; i<7-length($2); i++) { printf(" "); total+=1; }
|
|
95 if($1=="HETATM") for(i=0; i<5-length($2); i++) { printf(" "); total+=1; }
|
|
96 printf("%s", $2); total+=length($2);
|
|
97 for(i=0; i<2; i++){ printf(" "); total+=1}
|
|
98 printf("%s", $3); total+=length($3);
|
|
99 for(i=0; i<4-length($3); i++){ printf(" "); total+=1;}
|
|
100 printf("%s", $4); total+=length($4);
|
|
101 for(i=0; i<1+x4-length($4); i++){ printf(" ");total+=1;}
|
|
102 printf("%s", $5); total+=length($5);
|
|
103 for(i=0; i<3-length($5); i++){ printf(" ");total+=1;}
|
|
104 printf("%s", $6); total+=length($6);
|
|
105 for(i=0; i<(13-length($7)-length($6)); i++){ printf(" "); total+=1;}
|
|
106 printf("%s", $7); total+=length($7);
|
|
107 for(i=0; i<8-length($8); i++){ printf(" ");total+=1;}
|
|
108 printf("%s", $8); total+=length($8);
|
|
109 for(i=0; i<8-length($9); i++){ printf(" ");total+=1;}
|
|
110 printf("%s", $9); total+=length($9);
|
|
111 for(i=0; i<6-length($10); i++){ printf(" ");total+=1;}
|
|
112 printf("%s", $10); total+=length($10);
|
|
113 for(i=0; i<5-length($11); i++){ printf(" ");total+=1;}
|
|
114 printf("%s", $11); total+=length($11);
|
|
115 for(i=0; i<79-total; i++) printf(" ");
|
|
116 printf("%s", $12); total+=length($12);
|
|
117 if(length($12) < x12){
|
|
118 for(i=0; i<x12-length($12); i++){
|
|
119 #printf(" ");
|
|
120 }
|
|
121 }
|
|
122 printf("\n");
|
|
123
|
|
124
|
|
125
|
|
126
|
|
127 }
|
|
128
|
|
129 ' $PQR.temp.format $PQR.temp.format
|
|
130
|
|
131
|
|
132
|
|
133
|
|
134 rm $PQR.temp
|
|
135 rm $PQR.temp.bad
|
|
136 rm $PQR.temp.format
|
|
137
|
|
138
|
|
139
|