| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
$HackaMol::Roles::PdbRole::VERSION = '0.053'; |
|
2
|
|
|
|
|
|
|
#ABSTRACT: PdbRole of lazy attributes for HackaMol atoms |
|
3
|
|
|
|
|
|
|
use Moose::Role; |
|
4
|
19
|
|
|
19
|
|
13873
|
use Carp; |
|
|
19
|
|
|
|
|
43
|
|
|
|
19
|
|
|
|
|
157
|
|
|
5
|
19
|
|
|
19
|
|
88205
|
|
|
|
19
|
|
|
|
|
43
|
|
|
|
19
|
|
|
|
|
12393
|
|
|
6
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
has 'record_name', is => 'rw', isa => 'Str', lazy => 1, default => 'HETATM'; |
|
8
|
|
|
|
|
|
|
has 'occ', is => 'rw', isa => 'Num', lazy => 1, default => 1.0; |
|
9
|
|
|
|
|
|
|
has 'bfact', is => 'rw', isa => 'Num', lazy => 1, default => 20.0; |
|
10
|
|
|
|
|
|
|
# b_iso |
|
11
|
|
|
|
|
|
|
# b_aniso (vector) would be better here |
|
12
|
|
|
|
|
|
|
has 'bfp', is => 'rw', isa => 'Num' ; # bfactor profile |
|
13
|
|
|
|
|
|
|
# (10.1016/j.jmb.2015.09.024) |
|
14
|
|
|
|
|
|
|
has 'resname', is => 'rw', isa => 'Str', lazy => 1, default => 'UNK'; |
|
15
|
|
|
|
|
|
|
# cif label_asym_id |
|
16
|
|
|
|
|
|
|
has 'chain', is => 'rw', isa => 'Str', lazy => 1, default => ' '; |
|
17
|
|
|
|
|
|
|
# cif label_alt_id |
|
18
|
|
|
|
|
|
|
has 'altloc', is => 'rw', isa => 'Str', lazy => 1, default => ' '; |
|
19
|
|
|
|
|
|
|
has 'icode', is => 'rw', isa => 'Str', lazy => 1, default => ' '; |
|
20
|
|
|
|
|
|
|
has 'pdbid', is => 'rw', isa => 'Str', lazy => 1, default => ' '; |
|
21
|
|
|
|
|
|
|
# cif label_seq_id |
|
22
|
|
|
|
|
|
|
has 'segid', is => 'rw', isa => 'Str', lazy => 1, default => ' '; |
|
23
|
|
|
|
|
|
|
has 'iatom', is => 'rw', isa => 'Int', lazy => 1, default => 0; |
|
24
|
|
|
|
|
|
|
has 'resid', is => 'rw', isa => 'Str', lazy => 1, default => 1; |
|
25
|
|
|
|
|
|
|
has 'serial', is => 'rw', isa => 'Int', lazy => 1, default => 1; |
|
26
|
|
|
|
|
|
|
has 'sasa', is => 'rw', isa => 'Num', lazy => 1, default => 0.0; |
|
27
|
|
|
|
|
|
|
has 'model_num', is => 'rw', isa => 'Num'; # cif |
|
28
|
|
|
|
|
|
|
has 'auth_seq_id', is => 'rw', isa => 'Int'; # cif, -> author fudged resid |
|
29
|
|
|
|
|
|
|
has 'auth_comp_id', is => 'rw', isa => 'Str'; # cif, -> author fudged resname |
|
30
|
|
|
|
|
|
|
has 'auth_asym_id', is => 'rw', isa => 'Str'; # cif |
|
31
|
|
|
|
|
|
|
has 'auth_atom_id', is => 'rw', isa => 'Str'; # cif -> author fudged name |
|
32
|
|
|
|
|
|
|
has 'entity_id', is => 'rw', isa => 'Int'; # cif, e.g. virus, main chains of 1 entity |
|
33
|
|
|
|
|
|
|
has 'pdb_formal_charge', is => 'rw', isa => 'Num'; # cif, e.g. virus, main chains of 1 entity |
|
34
|
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
my %aa321 = ( |
|
36
|
|
|
|
|
|
|
ALA=>'A', ARG=>'R', ASN=>'N', ASP=>'D', CYS=>'C', |
|
37
|
|
|
|
|
|
|
GLU=>'E', GLN=>'Q', GLY=>'G', HIS=>'H', ILE=>'I', |
|
38
|
|
|
|
|
|
|
LEU=>'L', LYS=>'K', MET=>'M', PHE=>'F', PRO=>'P', |
|
39
|
|
|
|
|
|
|
SER=>'S', THR=>'T', TRP=>'W', TYR=>'Y', VAL=>'V', |
|
40
|
|
|
|
|
|
|
SEC=>'U', |
|
41
|
|
|
|
|
|
|
); |
|
42
|
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
my $self = shift; |
|
44
|
|
|
|
|
|
|
my $x_flag = shift; |
|
45
|
43
|
|
|
43
|
1
|
260
|
$x_flag = 1 unless defined($x_flag); |
|
46
|
43
|
|
|
|
|
49
|
|
|
47
|
43
|
50
|
|
|
|
80
|
my $resname = uc($self->resname); |
|
48
|
|
|
|
|
|
|
|
|
49
|
43
|
|
|
|
|
888
|
unless ( exists($aa321{$resname}) ){ |
|
50
|
|
|
|
|
|
|
carp "PDBRole> residue $resname name has no 1 letter code"; |
|
51
|
43
|
100
|
|
|
|
105
|
return ('X') if $x_flag; |
|
52
|
1
|
|
|
|
|
18
|
return ("($resname)"); |
|
53
|
1
|
50
|
|
|
|
481
|
} |
|
54
|
0
|
|
|
|
|
0
|
return ($aa321{$resname}); |
|
55
|
|
|
|
|
|
|
} |
|
56
|
42
|
|
|
|
|
140
|
#following map lifted from Bio::PDB::Structure::Atom |
|
57
|
|
|
|
|
|
|
|
|
58
|
|
|
|
|
|
|
my %pdb_atom_names = ( |
|
59
|
|
|
|
|
|
|
'C' => ' C ', |
|
60
|
|
|
|
|
|
|
'C1' => ' C1 ', |
|
61
|
|
|
|
|
|
|
'C1A' => ' C1A', |
|
62
|
|
|
|
|
|
|
'C1B' => ' C1B', |
|
63
|
|
|
|
|
|
|
'C1C' => ' C1C', |
|
64
|
|
|
|
|
|
|
'C1D' => ' C1D', |
|
65
|
|
|
|
|
|
|
'C2' => ' C2 ', |
|
66
|
|
|
|
|
|
|
'C2A' => ' C2A', |
|
67
|
|
|
|
|
|
|
'C2B' => ' C2B', |
|
68
|
|
|
|
|
|
|
'C2C' => ' C2C', |
|
69
|
|
|
|
|
|
|
'C2D' => ' C2D', |
|
70
|
|
|
|
|
|
|
'C3' => ' C3 ', |
|
71
|
|
|
|
|
|
|
'C3A' => ' C3A', |
|
72
|
|
|
|
|
|
|
'C3B' => ' C3B', |
|
73
|
|
|
|
|
|
|
'C3C' => ' C3C', |
|
74
|
|
|
|
|
|
|
'C3D' => ' C3D', |
|
75
|
|
|
|
|
|
|
'C4' => ' C4 ', |
|
76
|
|
|
|
|
|
|
'C4A' => ' C4A', |
|
77
|
|
|
|
|
|
|
'C4A' => ' C4A', |
|
78
|
|
|
|
|
|
|
'C4B' => ' C4B', |
|
79
|
|
|
|
|
|
|
'C4C' => ' C4C', |
|
80
|
|
|
|
|
|
|
'C4D' => ' C4D', |
|
81
|
|
|
|
|
|
|
'C5' => ' C5 ', |
|
82
|
|
|
|
|
|
|
'C6' => ' C6 ', |
|
83
|
|
|
|
|
|
|
'CA' => ' CA ', |
|
84
|
|
|
|
|
|
|
'CAA' => ' CAA', |
|
85
|
|
|
|
|
|
|
'CAB' => ' CAB', |
|
86
|
|
|
|
|
|
|
'CAC' => ' CAC', |
|
87
|
|
|
|
|
|
|
'CAD' => ' CAD', |
|
88
|
|
|
|
|
|
|
'CB' => ' CB ', |
|
89
|
|
|
|
|
|
|
'CBA' => ' CBA', |
|
90
|
|
|
|
|
|
|
'CBB' => ' CBB', |
|
91
|
|
|
|
|
|
|
'CBC' => ' CBC', |
|
92
|
|
|
|
|
|
|
'CBD' => ' CBD', |
|
93
|
|
|
|
|
|
|
'CD' => ' CD ', |
|
94
|
|
|
|
|
|
|
'CD1' => ' CD1', |
|
95
|
|
|
|
|
|
|
'CD2' => ' CD2', |
|
96
|
|
|
|
|
|
|
'CE' => ' CE ', |
|
97
|
|
|
|
|
|
|
'CE1' => ' CE1', |
|
98
|
|
|
|
|
|
|
'CE2' => ' CE2', |
|
99
|
|
|
|
|
|
|
'CE3' => ' CE3', |
|
100
|
|
|
|
|
|
|
'CG' => ' CG ', |
|
101
|
|
|
|
|
|
|
'CG1' => ' CG1', |
|
102
|
|
|
|
|
|
|
'CG2' => ' CG2', |
|
103
|
|
|
|
|
|
|
'CGA' => ' CGA', |
|
104
|
|
|
|
|
|
|
'CGD' => ' CGD', |
|
105
|
|
|
|
|
|
|
'CH2' => ' CH2', |
|
106
|
|
|
|
|
|
|
'CHA' => ' CHA', |
|
107
|
|
|
|
|
|
|
'CHB' => ' CHB', |
|
108
|
|
|
|
|
|
|
'CHC' => ' CHC', |
|
109
|
|
|
|
|
|
|
'CHD' => ' CHD', |
|
110
|
|
|
|
|
|
|
'CMA' => ' CMA', |
|
111
|
|
|
|
|
|
|
'CMB' => ' CMB', |
|
112
|
|
|
|
|
|
|
'CMC' => ' CMC', |
|
113
|
|
|
|
|
|
|
'CMD' => ' CMD', |
|
114
|
|
|
|
|
|
|
'CZ' => ' CZ ', |
|
115
|
|
|
|
|
|
|
'CZ2' => ' CZ2', |
|
116
|
|
|
|
|
|
|
'CZ3' => ' CZ3', |
|
117
|
|
|
|
|
|
|
'FE' => 'FE ', |
|
118
|
|
|
|
|
|
|
'H' => ' H ', |
|
119
|
|
|
|
|
|
|
'HA' => ' HA ', |
|
120
|
|
|
|
|
|
|
'HB' => ' HB ', |
|
121
|
|
|
|
|
|
|
'HG' => ' HG ', |
|
122
|
|
|
|
|
|
|
'HE' => ' HE ', |
|
123
|
|
|
|
|
|
|
'HZ' => ' HZ ', |
|
124
|
|
|
|
|
|
|
'HH' => ' HH ', |
|
125
|
|
|
|
|
|
|
'1H' => '1H ', |
|
126
|
|
|
|
|
|
|
'2H' => '2H ', |
|
127
|
|
|
|
|
|
|
'3H' => '3H ', |
|
128
|
|
|
|
|
|
|
'1HA' => '1HA ', |
|
129
|
|
|
|
|
|
|
'1HB' => '1HB ', |
|
130
|
|
|
|
|
|
|
'1HD' => '1HD ', |
|
131
|
|
|
|
|
|
|
'1HE' => '1HE ', |
|
132
|
|
|
|
|
|
|
'1HG' => '1HG ', |
|
133
|
|
|
|
|
|
|
'1HZ' => '1HZ ', |
|
134
|
|
|
|
|
|
|
'2HA' => '2HA ', |
|
135
|
|
|
|
|
|
|
'2HB' => '2HB ', |
|
136
|
|
|
|
|
|
|
'2HD' => '2HD ', |
|
137
|
|
|
|
|
|
|
'2HE' => '2HE ', |
|
138
|
|
|
|
|
|
|
'2HG' => '2HG ', |
|
139
|
|
|
|
|
|
|
'1HZ' => '1HZ ', |
|
140
|
|
|
|
|
|
|
'2HZ' => '2HZ ', |
|
141
|
|
|
|
|
|
|
'3HB' => '3HB ', |
|
142
|
|
|
|
|
|
|
'3HE' => '3HE ', |
|
143
|
|
|
|
|
|
|
'3HZ' => '3HZ ', |
|
144
|
|
|
|
|
|
|
'N' => ' N ', |
|
145
|
|
|
|
|
|
|
'NA' => ' NA ', |
|
146
|
|
|
|
|
|
|
'NB' => ' NB ', |
|
147
|
|
|
|
|
|
|
'NC' => ' NC ', |
|
148
|
|
|
|
|
|
|
'ND' => ' ND ', |
|
149
|
|
|
|
|
|
|
'N A' => ' N A', |
|
150
|
|
|
|
|
|
|
'N B' => ' N B', |
|
151
|
|
|
|
|
|
|
'N C' => ' N C', |
|
152
|
|
|
|
|
|
|
'N D' => ' N D', |
|
153
|
|
|
|
|
|
|
'N1' => ' N1 ', |
|
154
|
|
|
|
|
|
|
'N2' => ' N2 ', |
|
155
|
|
|
|
|
|
|
'N3' => ' N3 ', |
|
156
|
|
|
|
|
|
|
'ND1' => ' ND1', |
|
157
|
|
|
|
|
|
|
'ND2' => ' ND2', |
|
158
|
|
|
|
|
|
|
'NE' => ' NE ', |
|
159
|
|
|
|
|
|
|
'NE1' => ' NE1', |
|
160
|
|
|
|
|
|
|
'NE2' => ' NE2', |
|
161
|
|
|
|
|
|
|
'NH1' => ' NH1', |
|
162
|
|
|
|
|
|
|
'NH2' => ' NH2', |
|
163
|
|
|
|
|
|
|
'NZ' => ' NZ ', |
|
164
|
|
|
|
|
|
|
'O' => ' O ', |
|
165
|
|
|
|
|
|
|
'O1' => ' O1 ', |
|
166
|
|
|
|
|
|
|
'O1A' => ' O1A', |
|
167
|
|
|
|
|
|
|
'O1D' => ' O1D', |
|
168
|
|
|
|
|
|
|
'O2' => ' O2 ', |
|
169
|
|
|
|
|
|
|
'O2A' => ' O2A', |
|
170
|
|
|
|
|
|
|
'O2D' => ' O2D', |
|
171
|
|
|
|
|
|
|
'O3' => ' O3 ', |
|
172
|
|
|
|
|
|
|
'O4' => ' O4 ', |
|
173
|
|
|
|
|
|
|
'O5' => ' O5 ', |
|
174
|
|
|
|
|
|
|
'O6' => ' O6 ', |
|
175
|
|
|
|
|
|
|
'OD1' => ' OD1', |
|
176
|
|
|
|
|
|
|
'OD2' => ' OD2', |
|
177
|
|
|
|
|
|
|
'OE1' => ' OE1', |
|
178
|
|
|
|
|
|
|
'OE2' => ' OE2', |
|
179
|
|
|
|
|
|
|
'OG' => ' OG ', |
|
180
|
|
|
|
|
|
|
'OG1' => ' OG1', |
|
181
|
|
|
|
|
|
|
'OH' => ' OH ', |
|
182
|
|
|
|
|
|
|
'OXT' => ' OXT', |
|
183
|
|
|
|
|
|
|
'S' => ' S ', |
|
184
|
|
|
|
|
|
|
'SD' => ' SD ', |
|
185
|
|
|
|
|
|
|
'SG' => ' SG ' |
|
186
|
|
|
|
|
|
|
); |
|
187
|
|
|
|
|
|
|
|
|
188
|
|
|
|
|
|
|
my $self = shift; |
|
189
|
|
|
|
|
|
|
my $name = $self->name; |
|
190
|
|
|
|
|
|
|
if(exists($pdb_atom_names{$self->name})){ |
|
191
|
5
|
|
|
5
|
1
|
20
|
$self->name($pdb_atom_names{$self->name}); |
|
192
|
5
|
|
|
|
|
104
|
} |
|
193
|
5
|
50
|
|
|
|
97
|
return $name; |
|
194
|
5
|
|
|
|
|
105
|
} |
|
195
|
|
|
|
|
|
|
|
|
196
|
5
|
|
|
|
|
11
|
no Moose::Role; |
|
197
|
|
|
|
|
|
|
1; |
|
198
|
|
|
|
|
|
|
|
|
199
|
19
|
|
|
19
|
|
150
|
# added attributes for parsing a PDB file |
|
|
19
|
|
|
|
|
38
|
|
|
|
19
|
|
|
|
|
107
|
|
|
200
|
|
|
|
|
|
|
# Histidine 64 for Human Carbonic Anhydrase II from pdbid: 2CBA |
|
201
|
|
|
|
|
|
|
#some lines for reference that did not translate well into POD |
|
202
|
|
|
|
|
|
|
#my $lines_H64_2cba = ' |
|
203
|
|
|
|
|
|
|
# 1 2 3 4 5 6 7 8 |
|
204
|
|
|
|
|
|
|
#12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
|
205
|
|
|
|
|
|
|
#ATOM 504 N HIS A 64 -0.822 -1.995 6.439 1.00 10.63 N |
|
206
|
|
|
|
|
|
|
#ATOM 505 CA HIS A 64 -0.847 -2.773 7.721 1.00 10.22 C |
|
207
|
|
|
|
|
|
|
#ATOM 506 C HIS A 64 -2.270 -3.278 7.949 1.00 9.51 C |
|
208
|
|
|
|
|
|
|
#ATOM 507 O HIS A 64 -2.449 -4.225 8.736 1.00 11.94 O |
|
209
|
|
|
|
|
|
|
#ATOM 508 CB AHIS A 64 -0.335 -2.173 8.991 0.70 10.98 C |
|
210
|
|
|
|
|
|
|
#ATOM 509 CB BHIS A 64 -0.409 -1.888 8.917 0.20 9.21 C |
|
211
|
|
|
|
|
|
|
#ATOM 510 CG AHIS A 64 -0.736 -0.782 9.258 0.70 12.16 C |
|
212
|
|
|
|
|
|
|
#ATOM 511 CG BHIS A 64 0.714 -0.964 8.521 0.20 8.70 C |
|
213
|
|
|
|
|
|
|
#ATOM 512 ND1AHIS A 64 -1.795 -0.353 10.014 0.70 14.34 N |
|
214
|
|
|
|
|
|
|
#ATOM 513 ND1BHIS A 64 0.513 0.338 8.162 0.20 8.57 N |
|
215
|
|
|
|
|
|
|
#ATOM 514 CD2AHIS A 64 -0.117 0.344 8.805 0.70 12.79 C |
|
216
|
|
|
|
|
|
|
#ATOM 515 CD2BHIS A 64 2.037 -1.198 8.364 0.20 8.90 C |
|
217
|
|
|
|
|
|
|
#ATOM 516 CE1AHIS A 64 -1.809 0.971 10.061 0.70 13.80 C |
|
218
|
|
|
|
|
|
|
#ATOM 517 CE1BHIS A 64 1.691 0.868 7.814 0.20 8.65 C |
|
219
|
|
|
|
|
|
|
#ATOM 518 NE2AHIS A 64 -0.844 1.403 9.281 0.70 15.45 N |
|
220
|
|
|
|
|
|
|
#ATOM 519 NE2BHIS A 64 2.615 -0.026 7.936 0.20 6.94 N |
|
221
|
|
|
|
|
|
|
#'; |
|
222
|
|
|
|
|
|
|
# |
|
223
|
|
|
|
|
|
|
#my $ATOM_record_format = ' |
|
224
|
|
|
|
|
|
|
#Record Format: http://www.wwpdb.org/documentation/format23/sect9.html |
|
225
|
|
|
|
|
|
|
#COLUMNS DATA TYPE FIELD DEFINITION |
|
226
|
|
|
|
|
|
|
#------------------------------------------------------ |
|
227
|
|
|
|
|
|
|
# 1 - 6 Record name "ATOM " |
|
228
|
|
|
|
|
|
|
# 7 - 11 Integer serial Atom serial number. |
|
229
|
|
|
|
|
|
|
#13 - 16 Atom name Atom name. |
|
230
|
|
|
|
|
|
|
#17 Character altLoc Alternate location indicator. |
|
231
|
|
|
|
|
|
|
#18 - 20 Residue name resName Residue name. |
|
232
|
|
|
|
|
|
|
#22 Character chainID Chain identifier. |
|
233
|
|
|
|
|
|
|
#23 - 26 Integer resSeq Residue sequence number. |
|
234
|
|
|
|
|
|
|
#27 AChar iCode Code for insertion of residues. |
|
235
|
|
|
|
|
|
|
#31 - 38 Real(8.3) x Orthogonal coordinates for X in |
|
236
|
|
|
|
|
|
|
# Angstroms |
|
237
|
|
|
|
|
|
|
#39 - 46 Real(8.3) y Orthogonal coordinates for Y in |
|
238
|
|
|
|
|
|
|
# Angstroms |
|
239
|
|
|
|
|
|
|
#47 - 54 Real(8.3) z Orthogonal coordinates for Z in |
|
240
|
|
|
|
|
|
|
# Angstroms |
|
241
|
|
|
|
|
|
|
#55 - 60 Real(6.2) occupancy Occupancy. |
|
242
|
|
|
|
|
|
|
#61 - 66 Real(6.2) tempFactor Temperature factor. |
|
243
|
|
|
|
|
|
|
#77 - 78 LString(2) element Element symbol, right-justified. |
|
244
|
|
|
|
|
|
|
#79 - 80 LString(2) charge Charge on the atom. |
|
245
|
|
|
|
|
|
|
#'; |
|
246
|
|
|
|
|
|
|
# |
|
247
|
|
|
|
|
|
|
# we will add support for reading two code chains using column 21 |
|
248
|
|
|
|
|
|
|
# |
|
249
|
|
|
|
|
|
|
|
|
250
|
|
|
|
|
|
|
|
|
251
|
|
|
|
|
|
|
=pod |
|
252
|
|
|
|
|
|
|
|
|
253
|
|
|
|
|
|
|
=head1 NAME |
|
254
|
|
|
|
|
|
|
|
|
255
|
|
|
|
|
|
|
HackaMol::Roles::PdbRole - PdbRole of lazy attributes for HackaMol atoms |
|
256
|
|
|
|
|
|
|
|
|
257
|
|
|
|
|
|
|
=head1 VERSION |
|
258
|
|
|
|
|
|
|
|
|
259
|
|
|
|
|
|
|
version 0.053 |
|
260
|
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
=head1 SYNOPSIS |
|
262
|
|
|
|
|
|
|
|
|
263
|
|
|
|
|
|
|
use HackaMol::Atom; |
|
264
|
|
|
|
|
|
|
|
|
265
|
|
|
|
|
|
|
my $atom = Atom->new(Z=>6); |
|
266
|
|
|
|
|
|
|
|
|
267
|
|
|
|
|
|
|
print $atom->$_ foreach ( qw( |
|
268
|
|
|
|
|
|
|
record_name |
|
269
|
|
|
|
|
|
|
serial |
|
270
|
|
|
|
|
|
|
occ |
|
271
|
|
|
|
|
|
|
bfact |
|
272
|
|
|
|
|
|
|
resname |
|
273
|
|
|
|
|
|
|
chain |
|
274
|
|
|
|
|
|
|
altloc |
|
275
|
|
|
|
|
|
|
resid |
|
276
|
|
|
|
|
|
|
iatom |
|
277
|
|
|
|
|
|
|
pdbid |
|
278
|
|
|
|
|
|
|
segid |
|
279
|
|
|
|
|
|
|
) |
|
280
|
|
|
|
|
|
|
); |
|
281
|
|
|
|
|
|
|
|
|
282
|
|
|
|
|
|
|
foreach my $resn (qw(TRP TYR GLN ASN ETC)){ |
|
283
|
|
|
|
|
|
|
$atom->resname($resn); |
|
284
|
|
|
|
|
|
|
print $atom->aa321; |
|
285
|
|
|
|
|
|
|
} |
|
286
|
|
|
|
|
|
|
|
|
287
|
|
|
|
|
|
|
=head1 DESCRIPTION |
|
288
|
|
|
|
|
|
|
|
|
289
|
|
|
|
|
|
|
PdbRole provides atom attributes for PDB parsing. All attributes are 'rw' and |
|
290
|
|
|
|
|
|
|
lazy, so they will not contaminate the namespace unless called upon. The |
|
291
|
|
|
|
|
|
|
functionality of the PdbRole may be extended in the future. An extension |
|
292
|
|
|
|
|
|
|
(HackaMolX::PDB or HackaMol::X::PDB) will be released soon. |
|
293
|
|
|
|
|
|
|
|
|
294
|
|
|
|
|
|
|
=head1 METHODS |
|
295
|
|
|
|
|
|
|
|
|
296
|
|
|
|
|
|
|
=head2 pdb_rename |
|
297
|
|
|
|
|
|
|
|
|
298
|
|
|
|
|
|
|
no arguments. Returns the current name. Renames the atom based on names used by the PDB (if exists). This is useful for programs that render the secondary structure of molecules. |
|
299
|
|
|
|
|
|
|
|
|
300
|
|
|
|
|
|
|
=head2 aa321 |
|
301
|
|
|
|
|
|
|
|
|
302
|
|
|
|
|
|
|
returns 1 letter code for amino acid. Generated from resname attribute. throws a warning and returns 'X' if residue name is unrecognized. |
|
303
|
|
|
|
|
|
|
|
|
304
|
|
|
|
|
|
|
=head1 ATTRIBUTES |
|
305
|
|
|
|
|
|
|
|
|
306
|
|
|
|
|
|
|
=head2 record_name |
|
307
|
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
pdb cols 1-6: ATOM|HETATM. default = 'HETATM' |
|
309
|
|
|
|
|
|
|
|
|
310
|
|
|
|
|
|
|
=head2 serial |
|
311
|
|
|
|
|
|
|
|
|
312
|
|
|
|
|
|
|
pdb cols 7-11: index. default = 0 |
|
313
|
|
|
|
|
|
|
|
|
314
|
|
|
|
|
|
|
=head2 occ |
|
315
|
|
|
|
|
|
|
|
|
316
|
|
|
|
|
|
|
pdb cols 55-60: occupancy. range 0 to 1. default = 1.0 (all there) |
|
317
|
|
|
|
|
|
|
|
|
318
|
|
|
|
|
|
|
=head2 bfact |
|
319
|
|
|
|
|
|
|
|
|
320
|
|
|
|
|
|
|
pdb cols 61-66: temperature factor. see Willis and Pryor. default = 20.0 |
|
321
|
|
|
|
|
|
|
|
|
322
|
|
|
|
|
|
|
=head2 altloc |
|
323
|
|
|
|
|
|
|
|
|
324
|
|
|
|
|
|
|
pdb col 17. is AHIS and BHIS above. default = ' ' |
|
325
|
|
|
|
|
|
|
|
|
326
|
|
|
|
|
|
|
=head2 resname |
|
327
|
|
|
|
|
|
|
|
|
328
|
|
|
|
|
|
|
pdb cols 18-20: residue name. defaults to 'ALA' |
|
329
|
|
|
|
|
|
|
|
|
330
|
|
|
|
|
|
|
=head2 chain |
|
331
|
|
|
|
|
|
|
|
|
332
|
|
|
|
|
|
|
pdb cols 22. protein chain. cols 22 is the pdb specification cols 21-22 is supported by hackamol |
|
333
|
|
|
|
|
|
|
default = ' ' |
|
334
|
|
|
|
|
|
|
|
|
335
|
|
|
|
|
|
|
=head2 resid |
|
336
|
|
|
|
|
|
|
|
|
337
|
|
|
|
|
|
|
pdb cols 23-26. residue index. PDB calls is resSeq, but resid is more familiar |
|
338
|
|
|
|
|
|
|
(to me). default = 64 |
|
339
|
|
|
|
|
|
|
|
|
340
|
|
|
|
|
|
|
=head2 icode |
|
341
|
|
|
|
|
|
|
|
|
342
|
|
|
|
|
|
|
pdb cols 27. see code comments or |
|
343
|
|
|
|
|
|
|
L<http://www.wwpdb.org/documentation/format23/sect9.html> |
|
344
|
|
|
|
|
|
|
|
|
345
|
|
|
|
|
|
|
=head2 pdbid |
|
346
|
|
|
|
|
|
|
|
|
347
|
|
|
|
|
|
|
a place to store which PDB it came from |
|
348
|
|
|
|
|
|
|
|
|
349
|
|
|
|
|
|
|
=head2 segid |
|
350
|
|
|
|
|
|
|
|
|
351
|
|
|
|
|
|
|
a CHARMMish parameter that may not belong here. default = 'TIP3' |
|
352
|
|
|
|
|
|
|
|
|
353
|
|
|
|
|
|
|
=head2 iatom |
|
354
|
|
|
|
|
|
|
|
|
355
|
|
|
|
|
|
|
this is a place for the actual index. Segid does not have to start from 0 (cut |
|
356
|
|
|
|
|
|
|
and paste as above, etc). |
|
357
|
|
|
|
|
|
|
|
|
358
|
|
|
|
|
|
|
=head2 sasa |
|
359
|
|
|
|
|
|
|
|
|
360
|
|
|
|
|
|
|
Solvent accessible surface area; isa 'Num'. A place for storing results from such calculations. |
|
361
|
|
|
|
|
|
|
|
|
362
|
|
|
|
|
|
|
=head1 SEE ALSO |
|
363
|
|
|
|
|
|
|
|
|
364
|
|
|
|
|
|
|
=over 4 |
|
365
|
|
|
|
|
|
|
|
|
366
|
|
|
|
|
|
|
=item * |
|
367
|
|
|
|
|
|
|
|
|
368
|
|
|
|
|
|
|
L<http://www.pdb.org> |
|
369
|
|
|
|
|
|
|
|
|
370
|
|
|
|
|
|
|
=item * |
|
371
|
|
|
|
|
|
|
|
|
372
|
|
|
|
|
|
|
L<Bio::PDB::Structure::Atom> |
|
373
|
|
|
|
|
|
|
|
|
374
|
|
|
|
|
|
|
=back |
|
375
|
|
|
|
|
|
|
|
|
376
|
|
|
|
|
|
|
=head1 AUTHOR |
|
377
|
|
|
|
|
|
|
|
|
378
|
|
|
|
|
|
|
Demian Riccardi <demianriccardi@gmail.com> |
|
379
|
|
|
|
|
|
|
|
|
380
|
|
|
|
|
|
|
=head1 COPYRIGHT AND LICENSE |
|
381
|
|
|
|
|
|
|
|
|
382
|
|
|
|
|
|
|
This software is copyright (c) 2017 by Demian Riccardi. |
|
383
|
|
|
|
|
|
|
|
|
384
|
|
|
|
|
|
|
This is free software; you can redistribute it and/or modify it under |
|
385
|
|
|
|
|
|
|
the same terms as the Perl 5 programming language system itself. |
|
386
|
|
|
|
|
|
|
|
|
387
|
|
|
|
|
|
|
=cut |